From fe7317b8e52f12a12ddfc4da22d4d751b1ec60c4 Mon Sep 17 00:00:00 2001 From: mage2-team <mage2-team@magento.com> Date: Thu, 26 Apr 2012 17:30:24 -0700 Subject: [PATCH] Update as of 4/26/2012 * Introduced `Mage_Backend` module and relocated backend area routing model there (was `Mage_Core_Controller_Varien_Router_Admin`). The "adminhtml" area is also declared in the `Mage_Backend` module. * Introduced declaration of application area in config.xml with the following requirements: * Must declare with a router class in `config/global/areas/<area_code>/routers/<router_code>/class` * May declare `config/global/areas/<area_code>/base_controller`, which would enforce any controllers that serve in this area, to be descendants of the specified class * Refined styling of the visual design editor toolbar. Subtle improvements of toolbar usability. * Fetched updates from Magento 1.x up to April 11 2012. Refer to [Magento 1 release notes](http://www.magentocommerce.com/download/release_notes) for details --- .htaccess | 10 - CHANGELOG.markdown | 9 + ....6.1.0.php => upgrade-1.6.0.0-1.6.1.0.php} | 0 .../Form/Renderer/Fieldset/Element.php | 2 +- .../Block/Cms/Page/Edit/Tab/Design.php | 6 +- .../Block/Report/Tag/Customer/Detail/Grid.php | 7 +- .../Block/Report/Tag/Popular/Detail/Grid.php | 13 +- .../Block/Report/Tag/Popular/Grid.php | 2 - .../Block/Report/Tag/Product/Detail/Grid.php | 2 +- .../Order/Create/Billing/Method/Form.php | 6 +- .../core/Mage/Adminhtml/Controller/Action.php | 2 +- .../Adminhtml/Model/Sales/Order/Create.php | 18 +- .../controllers/Catalog/ProductController.php | 7 +- .../controllers/CustomerController.php | 4 +- .../Sales/Order/CreateController.php | 11 +- .../controllers/Tax/RateController.php | 11 +- app/code/core/Mage/Adminhtml/etc/config.xml | 5 +- .../adminhtml/sales/order/create/scripts.js | 15 +- .../system/currency/rate/matrix.phtml | 2 +- .../Mage/Api/Model/Server/Adapter/Soap.php | 45 +- .../Api/Model/Server/Handler/Abstract.php | 4 +- app/code/core/Mage/Api/etc/config.xml | 1 + app/code/core/Mage/Api/etc/system.xml | 10 + .../Backend/Controller/ActionAbstract.php | 31 + .../Backend/Controller/Router/Default.php | 219 + app/code/core/Mage/Backend/Helper/Data.php | 33 + app/code/core/Mage/Backend/etc/config.xml | 47 + .../Bundle/Block/Catalog/Product/View.php | 33 +- .../Helper/Catalog/Product/Configuration.php | 50 +- .../core/Mage/Bundle/Model/Product/Type.php | 2 +- .../view/adminhtml/product/edit/bundle.phtml | 9 + .../edit/bundle/option/selection.phtml | 2 +- .../Catalog/Model/Api2/Product/Image/Rest.php | 1 + .../Api2/Product/Image/Rest/Admin/V1.php | 3 +- .../Mage/Catalog/Model/Api2/Product/Rest.php | 5 +- .../Model/Api2/Product/Rest/Admin/V1.php | 8 + .../Category/Attribute/Backend/Sortby.php | 17 +- app/code/core/Mage/Catalog/Model/Product.php | 4 +- .../core/Mage/Catalog/Model/Product/Api.php | 5 + .../Mage/Catalog/Model/Product/Api/V2.php | 5 + .../Product/Attribute/Backend/Startdate.php | 2 +- .../Mage/Catalog/Model/Resource/Category.php | 2 +- app/code/core/Mage/Catalog/etc/config.xml | 2 +- .../upgrade-1.6.0.0.14-1.6.0.0.15.php | 37 + .../Catalog/view/frontend/product/price.phtml | 18 +- .../CatalogInventory/Model/Resource/Stock.php | 75 +- .../CatalogInventory/Model/Stock/Status.php | 6 +- .../Mage/CatalogSearch/Model/Advanced.php | 6 +- .../view/frontend/images/sc_learn_62x34.png | Bin 0 -> 2293 bytes .../view/frontend/images/vbv_ltbg_71x57.png | Bin 0 -> 2498 bytes .../Checkout/Block/Multishipping/Billing.php | 8 +- .../Checkout/Block/Multishipping/Overview.php | 3 +- .../Mage/Checkout/Block/Onepage/Abstract.php | 2 +- .../Block/Onepage/Payment/Methods.php | 8 +- app/code/core/Mage/Checkout/Model/Cart.php | 14 +- .../core/Mage/Checkout/Model/Type/Onepage.php | 6 + .../controllers/MultishippingController.php | 27 +- .../controllers/OnepageController.php | 19 +- .../Mage/Checkout/view/frontend/layout.xml | 6 +- .../Mage/Core/Controller/Varien/Action.php | 18 +- .../Mage/Core/Controller/Varien/Front.php | 14 +- .../Core/Controller/Varien/Router/Admin.php | 132 - .../Core/Controller/Varien/Router/Base.php | 499 ++ .../Controller/Varien/Router/Standard.php | 282 +- app/code/core/Mage/Core/Helper/Cookie.php | 15 + app/code/core/Mage/Core/Model/Config.php | 76 + .../Mage/Core/Model/Email/Template/Filter.php | 2 +- .../Core/Model/Source/Email/Variables.php | 2 +- app/code/core/Mage/Core/etc/config.xml | 8 - app/code/core/Mage/Core/etc/jstranslator.xml | 3 + app/code/core/Mage/Core/etc/system.xml | 3 +- .../Mage/Customer/view/frontend/layout.xml | 2 +- .../Model/Convert/Action/Abstract.php | 16 +- .../Dataflow/Model/Convert/Parser/Csv.php | 2 +- .../Model/Convert/Parser/Xml/Excel.php | 2 +- .../DesignEditor/Block/Toolbar/PageType.php | 25 +- .../Mage/DesignEditor/Block/Toolbar/Skin.php | 19 - .../core/Mage/DesignEditor/Model/Layout.php | 10 + .../DesignEditor/view/frontend/css/styles.css | 255 +- .../view/frontend/images/arrow_down.png | Bin 0 -> 1056 bytes .../view/frontend/images/arrow_up.png | Bin 0 -> 980 bytes .../view/frontend/images/block.png | Bin 0 -> 3363 bytes .../view/frontend/images/button.png | Bin 0 -> 360 bytes .../view/frontend/images/button_hover.png | Bin 0 -> 360 bytes .../view/frontend/images/checked.png | Bin 0 -> 1051 bytes .../view/frontend/images/container.png | Bin 0 -> 3296 bytes .../view/frontend/images/container_hover.png} | Bin 2840 -> 3281 bytes .../frontend/images/jstree_plus_minus.png} | Bin 2864 -> 2925 bytes .../view/frontend/images/stub.png | Bin 0 -> 3353 bytes .../view/frontend/js/design_editor.js | 38 - .../DesignEditor/view/frontend/layout.xml | 9 +- .../DesignEditor/view/frontend/stub.phtml | 8 +- .../DesignEditor/view/frontend/toolbar.phtml | 23 +- .../view/frontend/toolbar/breadcrumbs.phtml | 5 +- .../view/frontend/toolbar/exit.phtml | 6 +- .../view/frontend/toolbar/highlighting.phtml | 17 +- .../view/frontend/toolbar/page_types.phtml | 48 +- .../view/frontend/toolbar/row.phtml | 4 +- .../view/frontend/toolbar/skin.phtml | 35 +- .../Model/Import/Entity/Product.php | 8 +- .../view/adminhtml/import/form/before.phtml | 9 +- app/code/core/Mage/Oauth/Helper/Data.php | 56 + app/code/core/Mage/Oauth/Model/Observer.php | 54 +- .../Adminhtml/Oauth/AuthorizeController.php | 23 +- .../Oauth/controllers/AuthorizeController.php | 23 +- .../controllers/Customer/TokenController.php | 4 +- .../core/Mage/Page/Block/Html/Notices.php | 29 - app/code/core/Mage/Page/Block/Html/Pager.php | 30 +- .../Page/view/frontend/html/notices.phtml | 10 +- .../Mage/Payment/Block/Form/Container.php | 52 +- .../Mage/Payment/Model/Method/Abstract.php | 87 +- .../core/Mage/Paypal/view/frontend/review.js | 4 +- .../core/Mage/Persistent/Model/Observer.php | 2 +- .../Model/Resource/Order/Collection.php | 70 +- .../Resource/Tag/Customer/Collection.php | 17 - .../Mage/Rss/Block/Catalog/NotifyStock.php | 31 +- app/code/core/Mage/Sales/Model/Api2/Order.php | 12 +- .../Api2/Order/{Comments.php => Comment.php} | 2 +- .../Api2/Order/{Comments => Comment}/Rest.php | 2 +- .../{Comments => Comment}/Rest/Admin/V1.php | 2 +- .../Rest/Customer/V1.php | 2 +- .../Model/Api2/Order/{Items.php => Item.php} | 2 +- .../Model/Api2/Order/{Items => Item}/Rest.php | 2 +- .../Order/{Items => Item}/Rest/Admin/V1.php | 2 +- .../{Items => Item}/Rest/Customer/V1.php | 2 +- .../Model/Order/Creditmemo/Total/Discount.php | 4 +- .../Model/Order/Invoice/Total/Discount.php | 5 +- .../Sales/Model/Order/Pdf/Total/Default.php | 19 +- app/code/core/Mage/Sales/Model/Quote.php | 63 +- .../core/Mage/Sales/Model/Quote/Payment.php | 6 +- .../Sales/Model/Resource/Order/Abstract.php | 6 +- .../Model/Resource/Report/Order/Createdat.php | 2 +- app/code/core/Mage/Sales/etc/api2.xml | 32 +- app/code/core/Mage/Sales/etc/config.xml | 882 ++- .../sales_setup/upgrade-1.6.0.7-1.6.0.8.php | 44 + .../Model/Rule/Condition/Product.php | 18 +- .../Rule/Condition/Product/Subselect.php | 2 +- .../Mage/Shipping/Model/Carrier/Tablerate.php | 13 +- .../Model/Resource/Customer/Collection.php | 64 +- .../Tag/Model/Resource/Product/Collection.php | 26 +- .../core/Mage/Tax/Model/Calculation/Rate.php | 28 +- app/code/core/Mage/Usa/etc/config.xml | 2 +- .../Block/Customer/Wishlist/Item/Options.php | 60 +- .../Wishlist/controllers/IndexController.php | 5 +- .../view/frontend/item/column/cart.phtml | 5 +- .../Block/Checkout/Payment/Method/List.php | 11 +- .../controllers/CheckoutController.php | 8 +- .../default/iphone/Mage_Bundle/layout.xml | 10 +- .../sales/order/items/renderer.phtml | 2 +- .../iphone/Mage_Catalog/category/view.phtml | 70 + .../iphone/Mage_Catalog/layer/view.phtml | 25 +- .../default/iphone/Mage_Catalog/layout.xml | 101 +- .../iphone/Mage_Catalog/navigation/top.phtml | 3 - .../Mage_Catalog/product/compare/list.phtml | 261 - .../product/compare/sidebar.phtml | 68 - .../iphone/Mage_Catalog/product/gallery.phtml | 44 +- .../iphone/Mage_Catalog/product/list.phtml | 155 +- .../Mage_Catalog/product/list/toolbar.phtml | 47 +- .../Mage_Catalog/product/list/upsell.phtml | 46 +- .../iphone/Mage_Catalog/product/price.phtml | 428 ++ .../Mage_Catalog/product/price_msrp.phtml | 46 + .../product/price_msrp_noform.phtml | 46 + .../iphone/Mage_Catalog/product/view.phtml | 154 +- .../Mage_Catalog/product/view/addto.phtml | 21 +- .../Mage_Catalog/product/view/media.phtml | 6 +- .../product/view/type/grouped_grid.phtml | 77 - .../iphone/Mage_CatalogSearch/form.mini.phtml | 14 +- .../iphone/Mage_CatalogSearch/layout.xml | 61 +- .../iphone/Mage_CatalogSearch/result.phtml | 26 +- .../default/iphone/Mage_Checkout/cart.phtml | 107 +- .../iphone/Mage_Checkout/cart/coupon.phtml | 59 - .../Mage_Checkout/cart/item/default.phtml | 446 +- .../iphone/Mage_Checkout/cart/sidebar.phtml | 79 - .../iphone/Mage_Checkout/cartheader.phtml | 100 - .../default/iphone/Mage_Checkout/layout.xml | 48 +- .../iphone/Mage_Checkout/onepage/login.phtml | 121 - .../Mage_Checkout/onepage/review/info.phtml | 27 +- .../Mage_Checkout/onepage/review/item.phtml | 401 +- .../Mage_Checkout/onepage/review/totals.phtml | 2 +- .../iphone/Mage_Checkout/success.phtml | 66 + .../default/iphone/Mage_Cms/layout.xml | 3 + .../default/iphone/Mage_Contacts/layout.xml | 20 +- .../account/dashboard/address.phtml | 45 + .../Mage_Customer/account/navigation.phtml | 48 +- .../iphone/Mage_Customer/address/book.phtml | 107 + .../iphone/Mage_Customer/form/edit.phtml | 115 - .../Mage_Customer/form/forgotpassword.phtml | 51 - .../iphone/Mage_Customer/form/login.phtml | 82 +- .../iphone/Mage_Customer/form/register.phtml | 178 - .../default/iphone/Mage_Customer/layout.xml | 52 +- .../checkout/cart/item/default.phtml | 302 + .../checkout/onepage/review/item.phtml | 254 + .../customer/products/list.phtml | 60 + .../items/renderer/downloadable.phtml | 325 ++ .../invoice/items/renderer/downloadable.phtml | 320 ++ .../order/items/renderer/downloadable.phtml | 335 ++ .../default/iphone/Mage_Newsletter/layout.xml | 65 + .../iphone/Mage_Newsletter/subscribe.phtml | 49 + .../default/iphone/Mage_Page/1column.phtml | 6 +- .../iphone/Mage_Page/html/footer.phtml | 2 +- .../iphone/Mage_Page/html/header.phtml | 33 +- .../default/iphone/Mage_Page/html/pager.phtml | 2 +- .../default/iphone/Mage_Page/layout.xml | 43 +- .../iphone/Mage_Page/template/links.phtml | 44 + .../Mage_Paypal/express/review/details.phtml | 44 + .../Mage_Paypal/express/review/review.phtml | 171 + .../checkout/onepage/login.phtml | 67 +- .../Mage_Persistent/customer/form/login.phtml | 89 +- .../customer/form/register.phtml | 189 - .../Mage_Persistent/remember_me_tooltip.phtml | 61 + .../iphone/Mage_Review/customer/list.phtml | 58 + .../default/iphone/Mage_Review/layout.xml | 16 +- .../default/iphone/Mage_Rss/layout.xml | 89 + .../Mage_Sales/billing/agreement/view.phtml | 110 + .../Mage_Sales/billing/agreements.phtml | 98 + .../iphone/Mage_Sales/billing_agreement.xml | 1 + .../default/iphone/Mage_Sales/layout.xml | 498 ++ .../Mage_Sales/order/creditmemo/items.phtml | 44 + .../creditmemo/items/renderer/default.phtml | 322 ++ .../iphone/Mage_Sales/order/history.phtml | 65 +- .../Mage_Sales/order/invoice/items.phtml | 44 + .../invoice/items/renderer/default.phtml | 312 + .../iphone/Mage_Sales/order/items.phtml | 40 +- .../order/items/renderer/default.phtml | 331 ++ .../iphone/Mage_Sales/order/recent.phtml | 19 +- .../iphone/Mage_Sales/order/totals.phtml | 6 +- .../default/iphone/Mage_Sendfriend/layout.xml | 2 +- .../default/iphone/Mage_Sendfriend/send.phtml | 148 - .../iphone/Mage_Shipping/tracking/popup.phtml | 2 +- .../default/iphone/Mage_Tag/layout.xml | 22 +- .../default/iphone/Mage_Tag/list.phtml | 18 +- .../default/iphone/Mage_Tax/order/tax.phtml | 81 + .../Mage_Wishlist/item/column/cart.phtml | 52 + .../Mage_Wishlist/item/column/image.phtml | 38 + .../Mage_Wishlist/item/column/info.phtml | 39 + .../Mage_Wishlist/item/configure/addto.phtml | 34 + .../iphone/Mage_Wishlist/item/list.phtml | 56 + .../default/iphone/Mage_Wishlist/layout.xml | 140 + .../default/iphone/Mage_Wishlist/shared.phtml | 73 + .../default/iphone/Mage_Wishlist/view.phtml | 138 +- .../default/iphone/locale/en_US/translate.csv | 7 - .../iphone/skin/default/css/custom.css | 65 + .../iphone/skin/default/css/iphone.css | 5039 ++++++----------- .../iphone/skin/default/images/arrow_left.png | Bin 0 -> 1101 bytes .../skin/default/images/arrow_left_retina.png | Bin 0 -> 1156 bytes .../skin/default/images/arrow_right.png | Bin 0 -> 1102 bytes .../default/images/arrow_right_retina.png | Bin 0 -> 1175 bytes .../skin/default/images/bg_back_btn.png | Bin 0 -> 1220 bytes .../default/images/bg_back_btn_retina.png | Bin 0 -> 1538 bytes .../iphone/skin/default/images/bg_button.png | Bin 2558 -> 0 bytes .../iphone/skin/default/images/bg_divider.png | Bin 0 -> 995 bytes .../skin/default/images/bg_divider_dark.png | Bin 0 -> 1147 bytes .../default/images/bg_divider_dark_retina.png | Bin 0 -> 1153 bytes .../skin/default/images/bg_divider_retina.png | Bin 0 -> 1019 bytes .../iphone/skin/default/images/bg_drop.jpg | Bin 12907 -> 0 bytes .../skin/default/images/bg_gradient.png | Bin 0 -> 1094 bytes .../default/images/bg_gradient_retina.png | Bin 0 -> 1096 bytes .../iphone/skin/default/images/bg_nav_brd.png | Bin 259 -> 0 bytes .../default/images/bg_nav_brd_inactive.png | Bin 869 -> 0 bytes .../skin/default/images/bg_rating_star.png | Bin 1081 -> 0 bytes .../iphone/skin/default/images/bg_shadow.png | Bin 0 -> 1100 bytes .../skin/default/images/bg_shadow_retina.png | Bin 0 -> 1089 bytes .../skin/default/images/bkg_bulletsm.gif | Bin 0 -> 46 bytes .../iphone/skin/default/images/btn_edit.png | Bin 0 -> 1321 bytes .../skin/default/images/btn_edit_retina.png | Bin 0 -> 1421 bytes .../iphone/skin/default/images/btn_remove.png | Bin 0 -> 1185 bytes .../skin/default/images/btn_remove_retina.png | Bin 0 -> 1319 bytes .../iphone/skin/default/images/btn_trash.gif | Bin 1353 -> 0 bytes .../iphone/skin/default/images/btn_trash.png | Bin 1227 -> 0 bytes .../skin/default/images/custom/arrow.png | Bin 0 -> 1037 bytes .../default/images/custom/arrow_retina.png | Bin 0 -> 1088 bytes .../skin/default/images/custom/bg_header.png | Bin 0 -> 13919 bytes .../images/custom/bg_header_retina.png | Bin 0 -> 57132 bytes .../skin/default/images/custom/bg_logo.png | Bin 0 -> 2793 bytes .../default/images/custom/bg_logo_retina.png | Bin 0 -> 5850 bytes .../iphone/skin/default/images/fabric.jpg | Bin 57452 -> 0 bytes .../iphone/skin/default/images/flip.png | Bin 3124 -> 0 bytes .../skin/default/images/front_banner.png | Bin 7355 -> 0 bytes .../iphone/skin/default/images/grid.png | Bin 946 -> 0 bytes .../skin/default/images/i_add_to_cart.png | Bin 1345 -> 0 bytes .../skin/default/images/i_add_to_wishlist.png | Bin 1240 -> 0 bytes .../iphone/skin/default/images/i_arrow.png | Bin 240 -> 0 bytes .../skin/default/images/i_arrow_small.png | Bin 1304 -> 0 bytes .../skin/default/images/i_arrow_white.png | Bin 1134 -> 0 bytes .../iphone/skin/default/images/i_cart.png | Bin 0 -> 1604 bytes .../skin/default/images/i_cart_retina.png | Bin 0 -> 1686 bytes .../iphone/skin/default/images/i_dropdown.png | Bin 1081 -> 1109 bytes .../skin/default/images/i_dropdown_retina.png | Bin 0 -> 1204 bytes .../iphone/skin/default/images/i_gallery.png | Bin 1129 -> 0 bytes .../iphone/skin/default/images/i_menu.png | Bin 0 -> 1053 bytes .../skin/default/images/i_menu_arrow.png | Bin 1036 -> 0 bytes .../skin/default/images/i_menu_cart.png | Bin 1155 -> 0 bytes .../skin/default/images/i_menu_retina.png | Bin 0 -> 1030 bytes .../skin/default/images/i_menu_search.png | Bin 1602 -> 0 bytes .../iphone/skin/default/images/i_search.png | Bin 408 -> 1244 bytes .../skin/default/images/i_search_retina.png | Bin 0 -> 1409 bytes .../iphone/skin/default/images/i_star.png | Bin 4117 -> 1705 bytes .../skin/default/images/i_star_black.png | Bin 3540 -> 0 bytes .../skin/default/images/i_star_blank.png | Bin 0 -> 1905 bytes .../default/images/i_star_blank_retina.png | Bin 0 -> 2427 bytes .../skin/default/images/i_star_retina.png | Bin 0 -> 2054 bytes .../skin/default/images/i_tell_a_friend.png | Bin 1865 -> 0 bytes .../skin/default/images/i_view_details.png | Bin 1694 -> 0 bytes .../iphone/skin/default/images/i_zoom.png | Bin 0 -> 1228 bytes .../skin/default/images/i_zoom_retina.png | Bin 0 -> 1399 bytes .../iphone/skin/default/images/list.png | Bin 946 -> 0 bytes .../iphone/skin/default/images/logo.png | Bin 3660 -> 0 bytes .../media/cell_phone_landing_banner1.jpg | Bin 0 -> 21259 bytes .../iphone/skin/default/images/nav_bg.png | Bin 958 -> 0 bytes .../iphone/skin/default/images/nextlabel.png | Bin 1374 -> 0 bytes .../iphone/skin/default/images/prevlabel.png | Bin 1241 -> 0 bytes .../skin/default/images/search_icon.png | Bin 1663 -> 0 bytes .../default/iphone/skin/default/js/iphone.js | 806 +-- .../default/modern/Mage_Checkout/layout.xml | 6 +- .../default/modern/Mage_Customer/layout.xml | 23 + app/etc/modules/Mage_Backend.xml | 38 + .../Mage/Adminhtml/Controller/ActionTest.php | 48 + .../Backend/Controller/Router/DefaultTest.php | 120 + .../Core/Controller/Varien/ActionTest.php | 26 + .../Mage/Core/Controller/Varien/FrontTest.php | 5 - .../Router/{StandardTest.php => BaseTest.php} | 46 +- .../testsuite/Mage/Core/Model/ConfigTest.php | 83 +- .../testsuite/Mage/Core/_files/etc/config.xml | 82 + .../Mage/Core/_files/load_configuration.php | 28 + .../Block/Toolbar/PageTypeTest.php | 29 +- .../DesignEditor/Block/Toolbar/SkinTest.php | 36 - .../_files/_breadcrumbs_simple_product.html | 9 +- .../testsuite/Mage/Sales/_files/quote.php | 10 + .../Customer/Wishlist/Item/OptionsTest.php | 47 + .../Varien/Db/Adapter/InterfaceTest.php | 37 + .../Mage/Checkout/Block/CartTest.php | 6 +- .../static/testsuite/Legacy/ClassesTest.php | 14 +- dev/tools/migration/factory_table_names.php | 2 +- .../factory_table_names/replace_ce.php | 2 +- lib/Varien/Data/Form/Element/Editor.php | 2 +- lib/Varien/Db/Adapter/Pdo/Mysql.php | 6 +- lib/Varien/Filter/Template.php | 44 +- pub/.htaccess | 10 + pub/js/jquery/slimScroll/slimScroll.min.js | 13 + pub/js/mage/adminhtml/browser.js | 8 +- .../mage/adminhtml/wysiwyg/tiny_mce/setup.js | 9 +- pub/js/mage/captcha.js | 30 +- pub/js/prototype/validation.js | 19 + pub/js/varien/product.js | 13 +- 344 files changed, 12233 insertions(+), 8087 deletions(-) rename app/code/core/Mage/Admin/sql/admin_setup/{mysql4-upgrade-1.6.0.0-1.6.1.0.php => upgrade-1.6.0.0-1.6.1.0.php} (100%) create mode 100644 app/code/core/Mage/Backend/Controller/ActionAbstract.php create mode 100644 app/code/core/Mage/Backend/Controller/Router/Default.php create mode 100644 app/code/core/Mage/Backend/Helper/Data.php create mode 100644 app/code/core/Mage/Backend/etc/config.xml create mode 100644 app/code/core/Mage/Catalog/sql/catalog_setup/upgrade-1.6.0.0.14-1.6.0.0.15.php mode change 100644 => 100755 app/code/core/Mage/CatalogInventory/Model/Stock/Status.php create mode 100644 app/code/core/Mage/Centinel/view/frontend/images/sc_learn_62x34.png create mode 100644 app/code/core/Mage/Centinel/view/frontend/images/vbv_ltbg_71x57.png delete mode 100644 app/code/core/Mage/Core/Controller/Varien/Router/Admin.php create mode 100644 app/code/core/Mage/Core/Controller/Varien/Router/Base.php create mode 100644 app/code/core/Mage/DesignEditor/view/frontend/images/arrow_down.png create mode 100644 app/code/core/Mage/DesignEditor/view/frontend/images/arrow_up.png create mode 100644 app/code/core/Mage/DesignEditor/view/frontend/images/block.png create mode 100644 app/code/core/Mage/DesignEditor/view/frontend/images/button.png create mode 100644 app/code/core/Mage/DesignEditor/view/frontend/images/button_hover.png create mode 100644 app/code/core/Mage/DesignEditor/view/frontend/images/checked.png create mode 100644 app/code/core/Mage/DesignEditor/view/frontend/images/container.png rename app/{design/frontend/default/iphone/skin/default/images/bg_breadcrumb_active.png => code/core/Mage/DesignEditor/view/frontend/images/container_hover.png} (79%) rename app/{design/frontend/default/iphone/skin/default/images/bg_breadcrumb.png => code/core/Mage/DesignEditor/view/frontend/images/jstree_plus_minus.png} (89%) create mode 100644 app/code/core/Mage/DesignEditor/view/frontend/images/stub.png rename app/code/core/Mage/Sales/Model/Api2/Order/{Comments.php => Comment.php} (93%) rename app/code/core/Mage/Sales/Model/Api2/Order/{Comments => Comment}/Rest.php (96%) rename app/code/core/Mage/Sales/Model/Api2/Order/{Comments => Comment}/Rest/Admin/V1.php (91%) rename app/code/core/Mage/Sales/Model/Api2/Order/{Comments => Comment}/Rest/Customer/V1.php (94%) rename app/code/core/Mage/Sales/Model/Api2/Order/{Items.php => Item.php} (93%) rename app/code/core/Mage/Sales/Model/Api2/Order/{Items => Item}/Rest.php (96%) rename app/code/core/Mage/Sales/Model/Api2/Order/{Items => Item}/Rest/Admin/V1.php (91%) rename app/code/core/Mage/Sales/Model/Api2/Order/{Items => Item}/Rest/Customer/V1.php (94%) create mode 100644 app/code/core/Mage/Sales/sql/sales_setup/upgrade-1.6.0.7-1.6.0.8.php create mode 100644 app/design/frontend/default/iphone/Mage_Catalog/category/view.phtml delete mode 100644 app/design/frontend/default/iphone/Mage_Catalog/product/compare/list.phtml delete mode 100644 app/design/frontend/default/iphone/Mage_Catalog/product/compare/sidebar.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Catalog/product/price.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Catalog/product/price_msrp.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Catalog/product/price_msrp_noform.phtml delete mode 100644 app/design/frontend/default/iphone/Mage_Catalog/product/view/type/grouped_grid.phtml delete mode 100644 app/design/frontend/default/iphone/Mage_Checkout/cart/coupon.phtml delete mode 100644 app/design/frontend/default/iphone/Mage_Checkout/cart/sidebar.phtml delete mode 100644 app/design/frontend/default/iphone/Mage_Checkout/cartheader.phtml delete mode 100644 app/design/frontend/default/iphone/Mage_Checkout/onepage/login.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Checkout/success.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Customer/account/dashboard/address.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Customer/address/book.phtml delete mode 100644 app/design/frontend/default/iphone/Mage_Customer/form/edit.phtml delete mode 100644 app/design/frontend/default/iphone/Mage_Customer/form/forgotpassword.phtml delete mode 100644 app/design/frontend/default/iphone/Mage_Customer/form/register.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Downloadable/checkout/cart/item/default.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Downloadable/checkout/onepage/review/item.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Downloadable/customer/products/list.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Downloadable/sales/order/creditmemo/items/renderer/downloadable.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Downloadable/sales/order/invoice/items/renderer/downloadable.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Downloadable/sales/order/items/renderer/downloadable.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Newsletter/layout.xml create mode 100644 app/design/frontend/default/iphone/Mage_Newsletter/subscribe.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Page/template/links.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Paypal/express/review/details.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Paypal/express/review/review.phtml delete mode 100644 app/design/frontend/default/iphone/Mage_Persistent/customer/form/register.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Persistent/remember_me_tooltip.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Review/customer/list.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Rss/layout.xml create mode 100644 app/design/frontend/default/iphone/Mage_Sales/billing/agreement/view.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Sales/billing/agreements.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Sales/layout.xml create mode 100644 app/design/frontend/default/iphone/Mage_Sales/order/creditmemo/items.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Sales/order/creditmemo/items/renderer/default.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Sales/order/invoice/items.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Sales/order/invoice/items/renderer/default.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Sales/order/items/renderer/default.phtml delete mode 100644 app/design/frontend/default/iphone/Mage_Sendfriend/send.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Tax/order/tax.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Wishlist/item/column/cart.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Wishlist/item/column/image.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Wishlist/item/column/info.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Wishlist/item/configure/addto.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Wishlist/item/list.phtml create mode 100644 app/design/frontend/default/iphone/Mage_Wishlist/layout.xml create mode 100644 app/design/frontend/default/iphone/Mage_Wishlist/shared.phtml create mode 100644 app/design/frontend/default/iphone/skin/default/css/custom.css create mode 100644 app/design/frontend/default/iphone/skin/default/images/arrow_left.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/arrow_left_retina.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/arrow_right.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/arrow_right_retina.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/bg_back_btn.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/bg_back_btn_retina.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/bg_button.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/bg_divider.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/bg_divider_dark.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/bg_divider_dark_retina.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/bg_divider_retina.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/bg_drop.jpg create mode 100644 app/design/frontend/default/iphone/skin/default/images/bg_gradient.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/bg_gradient_retina.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/bg_nav_brd.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/bg_nav_brd_inactive.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/bg_rating_star.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/bg_shadow.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/bg_shadow_retina.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/bkg_bulletsm.gif create mode 100644 app/design/frontend/default/iphone/skin/default/images/btn_edit.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/btn_edit_retina.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/btn_remove.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/btn_remove_retina.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/btn_trash.gif delete mode 100644 app/design/frontend/default/iphone/skin/default/images/btn_trash.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/custom/arrow.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/custom/arrow_retina.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/custom/bg_header.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/custom/bg_header_retina.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/custom/bg_logo.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/custom/bg_logo_retina.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/fabric.jpg delete mode 100644 app/design/frontend/default/iphone/skin/default/images/flip.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/front_banner.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/grid.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/i_add_to_cart.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/i_add_to_wishlist.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/i_arrow.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/i_arrow_small.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/i_arrow_white.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/i_cart.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/i_cart_retina.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/i_dropdown_retina.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/i_gallery.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/i_menu.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/i_menu_arrow.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/i_menu_cart.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/i_menu_retina.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/i_menu_search.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/i_search_retina.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/i_star_black.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/i_star_blank.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/i_star_blank_retina.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/i_star_retina.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/i_tell_a_friend.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/i_view_details.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/i_zoom.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/i_zoom_retina.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/list.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/logo.png create mode 100644 app/design/frontend/default/iphone/skin/default/images/media/cell_phone_landing_banner1.jpg delete mode 100644 app/design/frontend/default/iphone/skin/default/images/nav_bg.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/nextlabel.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/prevlabel.png delete mode 100644 app/design/frontend/default/iphone/skin/default/images/search_icon.png create mode 100644 app/etc/modules/Mage_Backend.xml create mode 100644 dev/tests/integration/testsuite/Mage/Adminhtml/Controller/ActionTest.php create mode 100644 dev/tests/integration/testsuite/Mage/Backend/Controller/Router/DefaultTest.php rename dev/tests/integration/testsuite/Mage/Core/Controller/Varien/Router/{StandardTest.php => BaseTest.php} (72%) create mode 100644 dev/tests/integration/testsuite/Mage/Core/_files/etc/config.xml create mode 100644 dev/tests/integration/testsuite/Mage/Core/_files/load_configuration.php create mode 100644 dev/tests/integration/testsuite/Mage/Wishlist/Block/Customer/Wishlist/Item/OptionsTest.php create mode 100644 pub/js/jquery/slimScroll/slimScroll.min.js diff --git a/.htaccess b/.htaccess index 6c164cdd9d2..e02679d64fa 100644 --- a/.htaccess +++ b/.htaccess @@ -122,16 +122,6 @@ #RewriteBase /magento/ -############################################ -## uncomment next line to enable light API calls processing - -# RewriteRule ^api/([a-z][0-9a-z_]+)/?$ api.php?type=$1 [QSA,L] - -############################################ -## rewrite API2 calls to api.php (by now it is REST only) - - RewriteRule ^api/rest api.php?type=rest [QSA,L] - ############################################ ## workaround for HTTP authorization ## in CGI environment diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index 9c27a87b2d6..433f84a63ad 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -1,3 +1,12 @@ +Update as of 4/26/2012 +====================== +* Introduced `Mage_Backend` module and relocated backend area routing model there (was `Mage_Core_Controller_Varien_Router_Admin`). The "adminhtml" area is also declared in the `Mage_Backend` module. +* Introduced declaration of application area in config.xml with the following requirements: + * Must declare with a router class in `config/global/areas/<area_code>/routers/<router_code>/class` + * May declare `config/global/areas/<area_code>/base_controller`, which would enforce any controllers that serve in this area, to be descendants of the specified class +* Refined styling of the visual design editor toolbar. Subtle improvements of toolbar usability. +* Fetched updates from Magento 1.x up to April 11 2012. Refer to [Magento 1 release notes](http://www.magentocommerce.com/download/release_notes) for details + Update as of 4/13/2012 ====================== diff --git a/app/code/core/Mage/Admin/sql/admin_setup/mysql4-upgrade-1.6.0.0-1.6.1.0.php b/app/code/core/Mage/Admin/sql/admin_setup/upgrade-1.6.0.0-1.6.1.0.php similarity index 100% rename from app/code/core/Mage/Admin/sql/admin_setup/mysql4-upgrade-1.6.0.0-1.6.1.0.php rename to app/code/core/Mage/Admin/sql/admin_setup/upgrade-1.6.0.0-1.6.1.0.php diff --git a/app/code/core/Mage/Adminhtml/Block/Catalog/Form/Renderer/Fieldset/Element.php b/app/code/core/Mage/Adminhtml/Block/Catalog/Form/Renderer/Fieldset/Element.php index 64d9bf059cd..a0f4a29436d 100644 --- a/app/code/core/Mage/Adminhtml/Block/Catalog/Form/Renderer/Fieldset/Element.php +++ b/app/code/core/Mage/Adminhtml/Block/Catalog/Form/Renderer/Fieldset/Element.php @@ -160,7 +160,7 @@ class Mage_Adminhtml_Block_Catalog_Form_Renderer_Fieldset_Element { $element = $this->getElement(); $label = $element->getLabel(); - if (empty($label)) { + if (!empty($label)) { $element->setLabel($this->__($label)); } return $element->getLabelHtml(); diff --git a/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Design.php b/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Design.php index ef65d01fb63..9ba5b7b4e66 100644 --- a/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Design.php +++ b/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Design.php @@ -89,7 +89,8 @@ class Mage_Adminhtml_Block_Cms_Page_Edit_Tab_Design 'label' => Mage::helper('Mage_Cms_Helper_Data')->__('Custom Design From'), 'image' => $this->getSkinUrl('images/grid-cal.gif'), 'format' => $dateFormatIso, - 'disabled' => $isElementDisabled + 'disabled' => $isElementDisabled, + 'class' => 'validate-date validate-date-range date-range-custom_theme-from' )); $designFieldset->addField('custom_theme_to', 'date', array( @@ -97,7 +98,8 @@ class Mage_Adminhtml_Block_Cms_Page_Edit_Tab_Design 'label' => Mage::helper('Mage_Cms_Helper_Data')->__('Custom Design To'), 'image' => $this->getSkinUrl('images/grid-cal.gif'), 'format' => $dateFormatIso, - 'disabled' => $isElementDisabled + 'disabled' => $isElementDisabled, + 'class' => 'validate-date validate-date-range date-range-custom_theme-to' )); $designFieldset->addField('custom_theme', 'select', array( diff --git a/app/code/core/Mage/Adminhtml/Block/Report/Tag/Customer/Detail/Grid.php b/app/code/core/Mage/Adminhtml/Block/Report/Tag/Customer/Detail/Grid.php index f6ab7795b86..f8cd8eb3a7f 100644 --- a/app/code/core/Mage/Adminhtml/Block/Report/Tag/Customer/Detail/Grid.php +++ b/app/code/core/Mage/Adminhtml/Block/Report/Tag/Customer/Detail/Grid.php @@ -47,7 +47,6 @@ class Mage_Adminhtml_Block_Report_Tag_Customer_Detail_Grid extends Mage_Adminhtm ->joinAttribute('original_name', 'catalog_product/name', 'entity_id') ->addCustomerFilter($this->getRequest()->getParam('id')) ->addStatusFilter(Mage_Tag_Model_Tag::STATUS_APPROVED) - ->setDescOrder('DESC') ->addStoresVisibility() ->setActiveFilter() ->addGroupByTag() @@ -62,28 +61,25 @@ class Mage_Adminhtml_Block_Report_Tag_Customer_Detail_Grid extends Mage_Adminhtm { $this->addColumn('name', array( 'header' =>Mage::helper('Mage_Reports_Helper_Data')->__('Product Name'), - 'sortable' => false, 'index' =>'original_name' )); $this->addColumn('tag_name', array( 'header' =>Mage::helper('Mage_Reports_Helper_Data')->__('Tag Name'), - 'sortable' => false, 'index' =>'tag_name' )); if (!Mage::app()->isSingleStoreMode()) { $this->addColumn('visible', array( 'header' => Mage::helper('Mage_Reports_Helper_Data')->__('Visible In'), - 'sortable' => false, 'index' => 'stores', 'type' => 'store', + 'sortable' => false, 'store_view'=> true )); $this->addColumn('added_in', array( 'header' =>Mage::helper('Mage_Reports_Helper_Data')->__('Submitted In'), - 'sortable' => false, 'index' =>'store_id', 'type' =>'store', 'store_view'=>true @@ -92,7 +88,6 @@ class Mage_Adminhtml_Block_Report_Tag_Customer_Detail_Grid extends Mage_Adminhtm $this->addColumn('created_at', array( 'header' =>Mage::helper('Mage_Reports_Helper_Data')->__('Submitted On'), - 'sortable' => false, 'width' => '140px', 'type' => 'datetime', 'index' => 'created_at' diff --git a/app/code/core/Mage/Adminhtml/Block/Report/Tag/Popular/Detail/Grid.php b/app/code/core/Mage/Adminhtml/Block/Report/Tag/Popular/Detail/Grid.php index 96d816861c8..13aca61a7d0 100644 --- a/app/code/core/Mage/Adminhtml/Block/Report/Tag/Popular/Detail/Grid.php +++ b/app/code/core/Mage/Adminhtml/Block/Report/Tag/Popular/Detail/Grid.php @@ -50,9 +50,8 @@ class Mage_Adminhtml_Block_Report_Tag_Popular_Detail_Grid extends Mage_Adminhtml /* @var $collection Mage_Reports_Model_Resource_Tag_Customer_Collection */ $collection = Mage::getResourceModel('Mage_Reports_Model_Resource_Tag_Customer_Collection'); $collection->addStatusFilter(Mage::getModel('Mage_Tag_Model_Tag')->getApprovedStatus()) - ->addTagFilter($this->getRequest()->getParam('id')) - ->addDescOrder() - ->addProductName(); + ->addTagFilter($this->getRequest()->getParam('id')) + ->addProductToSelect(); $this->setCollection($collection); @@ -69,27 +68,23 @@ class Mage_Adminhtml_Block_Report_Tag_Popular_Detail_Grid extends Mage_Adminhtml $this->addColumn('firstname', array( 'header' =>Mage::helper('Mage_Reports_Helper_Data')->__('First Name'), - 'sortable' => false, 'index' =>'firstname' )); $this->addColumn('lastname', array( 'header' =>Mage::helper('Mage_Reports_Helper_Data')->__('Last Name'), - 'sortable' => false, 'index' =>'lastname' )); $this->addColumn('product', array( 'header' =>Mage::helper('Mage_Reports_Helper_Data')->__('Product Name'), - 'sortable' => false, - 'index' =>'product' + 'index' =>'product_name' )); if (!Mage::app()->isSingleStoreMode()) { $this->addColumn('added_in', array( 'header' => Mage::helper('Mage_Reports_Helper_Data')->__('Submitted In'), - 'sortable' => false, - 'index' => 'store_id', + 'index' => 'added_in', 'type' => 'store', 'store_view'=> true )); diff --git a/app/code/core/Mage/Adminhtml/Block/Report/Tag/Popular/Grid.php b/app/code/core/Mage/Adminhtml/Block/Report/Tag/Popular/Grid.php index f8c9b57ce5f..86e9fda9d1f 100644 --- a/app/code/core/Mage/Adminhtml/Block/Report/Tag/Popular/Grid.php +++ b/app/code/core/Mage/Adminhtml/Block/Report/Tag/Popular/Grid.php @@ -65,7 +65,6 @@ class Mage_Adminhtml_Block_Report_Tag_Popular_Grid extends Mage_Adminhtml_Block_ { $this->addColumn('name', array( 'header' =>Mage::helper('Mage_Reports_Helper_Data')->__('Tag Name'), - 'sortable' =>false, 'index' =>'name' )); @@ -73,7 +72,6 @@ class Mage_Adminhtml_Block_Report_Tag_Popular_Grid extends Mage_Adminhtml_Block_ 'header' =>Mage::helper('Mage_Reports_Helper_Data')->__('Popularity'), 'width' =>'50px', 'align' =>'right', - 'sortable' =>false, 'index' =>'popularity' )); diff --git a/app/code/core/Mage/Adminhtml/Block/Report/Tag/Product/Detail/Grid.php b/app/code/core/Mage/Adminhtml/Block/Report/Tag/Product/Detail/Grid.php index 8564f6325e2..ada2d099824 100644 --- a/app/code/core/Mage/Adminhtml/Block/Report/Tag/Product/Detail/Grid.php +++ b/app/code/core/Mage/Adminhtml/Block/Report/Tag/Product/Detail/Grid.php @@ -75,7 +75,7 @@ class Mage_Adminhtml_Block_Report_Tag_Product_Detail_Grid extends Mage_Adminhtml $this->addColumn('visible', array( 'header' => Mage::helper('Mage_Reports_Helper_Data')->__('Visible In'), 'sortable' => false, - 'index' => 'stores', + 'index' => 'stores', 'type' => 'store', 'store_view'=> true )); diff --git a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Billing/Method/Form.php b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Billing/Method/Form.php index a3c16612174..8916be04f26 100644 --- a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Billing/Method/Form.php +++ b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Billing/Method/Form.php @@ -36,14 +36,12 @@ class Mage_Adminhtml_Block_Sales_Order_Create_Billing_Method_Form extends Mage_P /** * Check payment method model * + * @param Mage_Payment_Model_Method_Abstract|null $method * @return bool */ protected function _canUseMethod($method) { - if (!$method->canUseInternal()) { - return false; - } - return parent::_canUseMethod($method); + return $method && $method->canUseInternal() && parent::_canUseMethod($method); } /** diff --git a/app/code/core/Mage/Adminhtml/Controller/Action.php b/app/code/core/Mage/Adminhtml/Controller/Action.php index 62e5feec695..3aabaa7bf98 100644 --- a/app/code/core/Mage/Adminhtml/Controller/Action.php +++ b/app/code/core/Mage/Adminhtml/Controller/Action.php @@ -27,7 +27,7 @@ /** * Generic backend controller */ -class Mage_Adminhtml_Controller_Action extends Mage_Core_Controller_Varien_Action +class Mage_Adminhtml_Controller_Action extends Mage_Backend_Controller_ActionAbstract { /** * Name of "is URLs checked" flag diff --git a/app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php b/app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php index a63ef4b8b3a..58ed8f46181 100644 --- a/app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php +++ b/app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php @@ -309,6 +309,13 @@ class Mage_Adminhtml_Model_Sales_Order_Create extends Varien_Object implements M } } + $addressDiff = array_diff_assoc( + $order->getShippingAddress()->getData(), + $order->getBillingAddress()->getData() + ); + unset($addressDiff['address_type'], $addressDiff['entity_id']); + $order->getShippingAddress()->setSameAsBilling(empty($addressDiff)); + $this->_initBillingAddressFromOrder($order); $this->_initShippingAddressFromOrder($order); @@ -384,7 +391,9 @@ class Mage_Adminhtml_Model_Sales_Order_Create extends Varien_Object implements M protected function _initShippingAddressFromOrder(Mage_Sales_Model_Order $order) { - $this->getQuote()->getShippingAddress()->setCustomerAddressId(''); + $this->getQuote()->getShippingAddress() + ->setCustomerAddressId('') + ->setSameAsBilling($order->getShippingAddress()->getSameAsBilling()); Mage::helper('Mage_Core_Helper_Data')->copyFieldset( 'sales_copy_order_shipping_address', 'to_order', @@ -622,7 +631,7 @@ class Mage_Adminhtml_Model_Sales_Order_Create extends Varien_Object implements M break; } if ($removeItem) { - $this->getQuote()->removeItem($item->getId()); + $this->getQuote()->deleteItem($item); } $this->setRecollect(true); } @@ -855,8 +864,9 @@ class Mage_Adminhtml_Model_Sales_Order_Create extends Varien_Object implements M $item->getProduct()->setIsSuperMode(true); $item->getProduct()->unsSkipCheckRequiredOption(); $item->checkData(); - } else { - $this->moveQuoteItem($item->getId(), $info['action'], $itemQty); + } + if (!empty($info['action'])) { + $this->moveQuoteItem($item, $info['action'], $itemQty); } } } diff --git a/app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php b/app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php index 2e8743947a5..12cda68f4a9 100644 --- a/app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php +++ b/app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php @@ -507,8 +507,13 @@ class Mage_Adminhtml_Catalog_ProductController extends Mage_Adminhtml_Controller $product->addData($productData); /* set restrictions for date ranges */ - $product->getResource()->getAttribute('special_from_date') + $resource = $product->getResource(); + $resource->getAttribute('special_from_date') ->setMaxValue($product->getSpecialToDate()); + $resource->getAttribute('news_from_date') + ->setMaxValue($product->getNewsToDate()); + $resource->getAttribute('custom_design_from') + ->setMaxValue($product->getCustomDesignTo()); $product->validate(); /** diff --git a/app/code/core/Mage/Adminhtml/controllers/CustomerController.php b/app/code/core/Mage/Adminhtml/controllers/CustomerController.php index df2e4801712..eae0670a49d 100644 --- a/app/code/core/Mage/Adminhtml/controllers/CustomerController.php +++ b/app/code/core/Mage/Adminhtml/controllers/CustomerController.php @@ -290,7 +290,9 @@ class Mage_Adminhtml_CustomerController extends Mage_Adminhtml_Controller_Action } } - if (Mage::getSingleton('Mage_Admin_Model_Session')->isAllowed('customer/newsletter')) { + if (Mage::getSingleton('Mage_Admin_Model_Session')->isAllowed('customer/newsletter') + && !$customer->getConfirmation() + ) { $customer->setIsSubscribed(isset($data['subscription'])); } diff --git a/app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreateController.php b/app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreateController.php index 73ea214e65f..6ad631c0a3f 100644 --- a/app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreateController.php +++ b/app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreateController.php @@ -242,9 +242,6 @@ class Mage_Adminhtml_Sales_Order_CreateController extends Mage_Adminhtml_Control $this->_getOrderCreateModel()->moveQuoteItem($moveItemId, $moveTo); } - /*if ($paymentData = $this->getRequest()->getPost('payment')) { - $this->_getOrderCreateModel()->setPaymentData($paymentData); - }*/ if ($paymentData = $this->getRequest()->getPost('payment')) { $this->_getOrderCreateModel()->getQuote()->getPayment()->addData($paymentData); } @@ -481,7 +478,13 @@ class Mage_Adminhtml_Sales_Order_CreateController extends Mage_Adminhtml_Control { try { $this->_processActionData('save'); - if ($paymentData = $this->getRequest()->getPost('payment')) { + $paymentData = $this->getRequest()->getPost('payment'); + if ($paymentData) { + $paymentData['checks'] = Mage_Payment_Model_Method_Abstract::CHECK_USE_INTERNAL + | Mage_Payment_Model_Method_Abstract::CHECK_USE_FOR_COUNTRY + | Mage_Payment_Model_Method_Abstract::CHECK_USE_FOR_CURRENCY + | Mage_Payment_Model_Method_Abstract::CHECK_ORDER_TOTAL_MIN_MAX + | Mage_Payment_Model_Method_Abstract::CHECK_ZERO_TOTAL; $this->_getOrderCreateModel()->setPaymentData($paymentData); $this->_getOrderCreateModel()->getQuote()->getPayment()->addData($paymentData); } diff --git a/app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php b/app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php index a0d859455fa..a137d753704 100644 --- a/app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php +++ b/app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php @@ -70,9 +70,12 @@ class Mage_Adminhtml_Tax_RateController extends Mage_Adminhtml_Controller_Action $this->_title($this->__('New Rate')); - //This line substitutes in the form the previously entered by the user values, if any of them were wrong. $rateModel->setData(Mage::getSingleton('Mage_Adminhtml_Model_Session')->getFormData(true)); + if ($rateModel->getZipIsRange() && !$rateModel->hasTaxPostcode()) { + $rateModel->setTaxPostcode($rateModel->getZipFrom() . '-' . $rateModel->getZipTo()); + } + $this->_initAction() ->_addBreadcrumb(Mage::helper('Mage_Tax_Helper_Data')->__('Manage Tax Rates'), Mage::helper('Mage_Tax_Helper_Data')->__('Manage Tax Rates'), $this->getUrl('*/tax_rate')) ->_addBreadcrumb(Mage::helper('Mage_Tax_Helper_Data')->__('New Tax Rate'), Mage::helper('Mage_Tax_Helper_Data')->__('New Tax Rate')) @@ -136,7 +139,11 @@ class Mage_Adminhtml_Tax_RateController extends Mage_Adminhtml_Controller_Action $rateModel = Mage::getSingleton('Mage_Tax_Model_Calculation_Rate')->load($rateId); if (!$rateModel->getId()) { $this->getResponse()->setRedirect($this->getUrl("*/*/")); - return ; + return; + } + + if ($rateModel->getZipIsRange() && !$rateModel->hasTaxPostcode()) { + $rateModel->setTaxPostcode($rateModel->getZipFrom() . '-' . $rateModel->getZipTo()); } $this->_title(sprintf("%s", $rateModel->getCode())); diff --git a/app/code/core/Mage/Adminhtml/etc/config.xml b/app/code/core/Mage/Adminhtml/etc/config.xml index 25c072bac04..476e3915678 100644 --- a/app/code/core/Mage/Adminhtml/etc/config.xml +++ b/app/code/core/Mage/Adminhtml/etc/config.xml @@ -65,8 +65,9 @@ <adminhtml> <use>admin</use> <args> - <module>Mage_Adminhtml</module> - <frontName>admin</frontName> + <modules> + <Mage_Adminhtml>Mage_Adminhtml</Mage_Adminhtml> + </modules> </args> </adminhtml> </routers> diff --git a/app/code/core/Mage/Adminhtml/view/adminhtml/sales/order/create/scripts.js b/app/code/core/Mage/Adminhtml/view/adminhtml/sales/order/create/scripts.js index 08ec691d037..39a42fd63cc 100644 --- a/app/code/core/Mage/Adminhtml/view/adminhtml/sales/order/create/scripts.js +++ b/app/code/core/Mage/Adminhtml/view/adminhtml/sales/order/create/scripts.js @@ -934,7 +934,7 @@ AdminOrder.prototype = { else { new Ajax.Request(url, {parameters:params,loaderArea: indicator}); } - if (typeof productConfigure != 'undefined' && area instanceof Array && area.indexOf('items' != -1)) { + if (typeof productConfigure != 'undefined' && area instanceof Array && area.indexOf('items') != -1) { productConfigure.clean('quote_items'); } }, @@ -952,14 +952,17 @@ AdminOrder.prototype = { if(typeof this.loadingAreas == 'string'){ this.loadingAreas = [this.loadingAreas]; } - if(this.loadingAreas.indexOf('message'==-1)) this.loadingAreas.push('message'); + if(this.loadingAreas.indexOf('message') == -1) { + this.loadingAreas.push('message'); + } + for(var i=0; i<this.loadingAreas.length; i++){ var id = this.loadingAreas[i]; if($(this.getAreaId(id))){ if ('message' != id || response[id]) { var wrapper = new Element('div'); wrapper.update(response[id] ? response[id] : ''); - $(this.getAreaId(id)).update(wrapper); + $(this.getAreaId(id)).update(Prototype.Browser.IE ? wrapper.outerHTML : wrapper); } if ($(this.getAreaId(id)).callback) { this[$(this.getAreaId(id)).callback](); @@ -1105,7 +1108,6 @@ AdminOrder.prototype = { } var parentEl = el.up(1); - var parentPos = Element.cumulativeOffset(parentEl); if (show) { parentEl.removeClassName('ignore-validate'); } @@ -1125,6 +1127,7 @@ AdminOrder.prototype = { }); } + parentEl.setStyle({position: 'relative'}); el.setStyle({ display: show ? 'none' : '', position: 'absolute', @@ -1132,8 +1135,8 @@ AdminOrder.prototype = { opacity: 0.8, width: parentEl.getWidth() + 'px', height: parentEl.getHeight() + 'px', - top: parentPos[1] + 'px', - left: parentPos[0] + 'px' + top: 0, + left: 0 }); }, diff --git a/app/code/core/Mage/Adminhtml/view/adminhtml/system/currency/rate/matrix.phtml b/app/code/core/Mage/Adminhtml/view/adminhtml/system/currency/rate/matrix.phtml index 2e2961304ce..6d6a516260d 100644 --- a/app/code/core/Mage/Adminhtml/view/adminhtml/system/currency/rate/matrix.phtml +++ b/app/code/core/Mage/Adminhtml/view/adminhtml/system/currency/rate/matrix.phtml @@ -53,7 +53,7 @@ $_rates = ( $_newRates ) ? $_newRates : $_oldRates; <?php if( isset($_newRates) && $_currencyCode != $_rate && isset($_oldRates[$_currencyCode][$_rate]) ): ?> <br /><span class="old-rate"><?php echo $this->__('Old rate:') ?> <?php echo $_oldRates[$_currencyCode][$_rate] ?></span> <?php endif; ?> - </th> + </td> <?php else: ?> <td class="a-right"> <input type="text" name="rate[<?php echo $_currencyCode ?>][<?php echo $_rate ?>]" value="<?php echo ( $_currencyCode == $_rate ) ? '1.0000' : ($_value>0 ? $_value : (isset($_oldRates[$_currencyCode][$_rate]) ? $_oldRates[$_currencyCode][$_rate] : '')) ?>" <?php echo ( $_currencyCode == $_rate ) ? 'class="input-text input-text-disabled" readonly="true"' : 'class="input-text"' ?> /> diff --git a/app/code/core/Mage/Api/Model/Server/Adapter/Soap.php b/app/code/core/Mage/Api/Model/Server/Adapter/Soap.php index 48f971dd1d6..c131b1b92e9 100644 --- a/app/code/core/Mage/Api/Model/Server/Adapter/Soap.php +++ b/app/code/core/Mage/Api/Model/Server/Adapter/Soap.php @@ -64,7 +64,7 @@ class Mage_Api_Model_Server_Adapter_Soap return $this->getData('handler'); } - /** + /** * Set webservice api controller * * @param Mage_Api_Controller_Action $controller @@ -103,12 +103,11 @@ class Mage_Api_Model_Server_Adapter_Soap */ public function run() { - $apiConfigCharset = Mage::getStoreConfig("api/config/charset"); if ($this->getController()->getRequest()->getParam('wsdl') !== null) { // Generating wsdl content from template - $io = new Varien_Io_File(); + $io = new Varien_Io_File(); $io->open(array('path'=>Mage::getModuleDir('etc', 'Mage_Api'))); $wsdlContent = $io->read('wsdl.xml'); @@ -121,14 +120,11 @@ class Mage_Api_Model_Server_Adapter_Soap unset($queryParams['wsdl']); } - $wsdlConfig->setUrl( - htmlspecialchars(Mage::getUrl('*/*/*', array('_query'=>$queryParams) )) - ); + $wsdlConfig->setUrl(htmlspecialchars(Mage::getUrl('*/*/*', array('_query'=>$queryParams)))); $wsdlConfig->setName('Magento'); $wsdlConfig->setHandler($this->getHandler()); - $template->setVariables(array('wsdl'=>$wsdlConfig)); - + $template->setVariables(array('wsdl' => $wsdlConfig)); $this->getController()->getResponse() ->clearHeaders() @@ -188,9 +184,9 @@ class Mage_Api_Model_Server_Adapter_Soap } /** - * Check whether Soap extension is loaded + * Check whether Soap extension is loaded * - * @return boolean + * @return boolean */ protected function _extensionLoaded() { @@ -206,18 +202,18 @@ class Mage_Api_Model_Server_Adapter_Soap protected function getWsdlUrl($params = null, $withAuth = true) { $urlModel = Mage::getModel('Mage_Core_Model_Url') - ->setUseSession(false); + ->setUseSession(false); $wsdlUrl = $params !== null - ? $urlModel->getUrl('*/*/*', array('_current' => true, '_query' => $params)) - : $urlModel->getUrl('*/*/*'); + ? $urlModel->getUrl('*/*/*', array('_current' => true, '_query' => $params)) + : $urlModel->getUrl('*/*/*'); if( $withAuth ) { $phpAuthUser = $this->getController()->getRequest()->getServer('PHP_AUTH_USER', false); $phpAuthPw = $this->getController()->getRequest()->getServer('PHP_AUTH_PW', false); if ($phpAuthUser && $phpAuthPw) { - $wsdlUrl = sprintf("http://%s:%s@%s", $phpAuthUser, $phpAuthPw, str_replace('http://', '', $wsdlUrl ) ); + $wsdlUrl = sprintf("http://%s:%s@%s", $phpAuthUser, $phpAuthPw, str_replace('http://', '', $wsdlUrl )); } } @@ -233,24 +229,31 @@ class Mage_Api_Model_Server_Adapter_Soap protected function _instantiateServer() { $apiConfigCharset = Mage::getStoreConfig('api/config/charset'); - ini_set('soap.wsdl_cache_enabled', '0'); + $wsdlCacheEnabled = (bool) Mage::getStoreConfig('api/config/wsdl_cache_enabled'); + + if ($wsdlCacheEnabled) { + ini_set('soap.wsdl_cache_enabled', '1'); + } else { + ini_set('soap.wsdl_cache_enabled', '0'); + } + $tries = 0; do { $retry = false; try { - $this->_soap = new Zend_Soap_Server( - $this->getWsdlUrl(array("wsdl" => 1)), array('encoding' => $apiConfigCharset) - ); + $this->_soap = new Zend_Soap_Server($this->getWsdlUrl(array("wsdl" => 1)), + array('encoding' => $apiConfigCharset)); } catch (SoapFault $e) { - $importMessage = "can't import schema from 'http://schemas.xmlsoap.org/soap/encoding/'"; - if (false !== strpos($e->getMessage(), $importMessage)) { + if (false !== strpos($e->getMessage(), + "can't import schema from 'http://schemas.xmlsoap.org/soap/encoding/'") + ) { $retry = true; sleep(1); } else { throw $e; } $tries++; - } + } } while ($retry && $tries < 5); use_soap_error_handler(false); $this->_soap diff --git a/app/code/core/Mage/Api/Model/Server/Handler/Abstract.php b/app/code/core/Mage/Api/Model/Server/Handler/Abstract.php index d3082c71809..f2285c994b3 100644 --- a/app/code/core/Mage/Api/Model/Server/Handler/Abstract.php +++ b/app/code/core/Mage/Api/Model/Server/Handler/Abstract.php @@ -287,7 +287,7 @@ abstract class Mage_Api_Model_Server_Handler_Abstract throw new Mage_Api_Exception('resource_path_not_callable'); } - if (is_callable(array(&$model, $method))) { + if (method_exists(&$model, $method)) { if (isset($methodInfo->arguments) && ((string)$methodInfo->arguments) == 'array') { return $model->$method((is_array($args) ? $args : array($args))); } elseif (!is_array($args)) { @@ -400,7 +400,7 @@ abstract class Mage_Api_Model_Server_Handler_Abstract throw new Mage_Api_Exception('resource_path_not_callable'); } - if (is_callable(array(&$model, $method))) { + if (method_exists(&$model, $method)) { if (isset($methodInfo->arguments) && ((string)$methodInfo->arguments) == 'array') { $result[] = $model->$method((is_array($args) ? $args : array($args))); } elseif (!is_array($args)) { diff --git a/app/code/core/Mage/Api/etc/config.xml b/app/code/core/Mage/Api/etc/config.xml index 2492346a4a2..b9ff5454ed3 100644 --- a/app/code/core/Mage/Api/etc/config.xml +++ b/app/code/core/Mage/Api/etc/config.xml @@ -96,6 +96,7 @@ <charset>UTF-8</charset> <session_timeout>3600</session_timeout> <compliance_wsi>0</compliance_wsi> + <wsdl_cache_enabled>0</wsdl_cache_enabled> </config> </api> </default> diff --git a/app/code/core/Mage/Api/etc/system.xml b/app/code/core/Mage/Api/etc/system.xml index bc9c8e122b4..0f0034d6765 100644 --- a/app/code/core/Mage/Api/etc/system.xml +++ b/app/code/core/Mage/Api/etc/system.xml @@ -70,6 +70,16 @@ <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> </compliance_wsi> + <wsdl_cache_enabled translate="label"> + <label>Enable WSDL Cache</label> + <frontend_type>select</frontend_type> + <source_model>Mage_Adminhtml_Model_System_Config_Source_Yesno</source_model> + <backend_model>Mage_Adminhtml_Model_System_Config_Backend_Store</backend_model> + <sort_order>40</sort_order> + <show_in_default>1</show_in_default> + <show_in_website>1</show_in_website> + <show_in_store>1</show_in_store> + </wsdl_cache_enabled> </fields> </config> </groups> diff --git a/app/code/core/Mage/Backend/Controller/ActionAbstract.php b/app/code/core/Mage/Backend/Controller/ActionAbstract.php new file mode 100644 index 00000000000..db599f58581 --- /dev/null +++ b/app/code/core/Mage/Backend/Controller/ActionAbstract.php @@ -0,0 +1,31 @@ +<?php +/** + * Magento + * + * 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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category Mage + * @package Mage_Backend + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + + +abstract class Mage_Backend_Controller_ActionAbstract extends Mage_Core_Controller_Varien_Action +{ + +} diff --git a/app/code/core/Mage/Backend/Controller/Router/Default.php b/app/code/core/Mage/Backend/Controller/Router/Default.php new file mode 100644 index 00000000000..cf9e32b541a --- /dev/null +++ b/app/code/core/Mage/Backend/Controller/Router/Default.php @@ -0,0 +1,219 @@ +<?php +/** + * Magento + * + * 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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category Mage + * @package Mage_Core + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + + +class Mage_Backend_Controller_Router_Default extends Mage_Core_Controller_Varien_Router_Base +{ + /** + * Fetch default path + */ + public function fetchDefault() + { + // set defaults + $d = explode('/', $this->_getDefaultPath()); + $this->getFront()->setDefault(array( + 'module' => !empty($d[0]) ? $d[0] : '', + 'controller' => !empty($d[1]) ? $d[1] : 'index', + 'action' => !empty($d[2]) ? $d[2] : 'index' + )); + } + + /** + * Get router default request path + * @return string + */ + protected function _getDefaultPath() + { + return (string)Mage::getConfig()->getNode('default/web/default/admin'); + } + + /** + * dummy call to pass through checking + * + * @return unknown + */ + protected function _beforeModuleMatch() + { + return true; + } + + /** + * checking if we installed or not and doing redirect + * + * @return bool + */ + protected function _afterModuleMatch() + { + if (!Mage::isInstalled()) { + Mage::app()->getFrontController()->getResponse() + ->setRedirect(Mage::getUrl('install')) + ->sendResponse(); + exit; + } + return true; + } + + /** + * We need to have noroute action in this router + * not to pass dispatching to next routers + * + * @return bool + */ + protected function _noRouteShouldBeApplied() + { + return true; + } + + /** + * Check whether URL for corresponding path should use https protocol + * + * @param string $path + * @return bool + */ + protected function _shouldBeSecure($path) + { + return substr((string)Mage::getConfig()->getNode('default/web/unsecure/base_url'), 0, 5) === 'https' + || Mage::getStoreConfigFlag('web/secure/use_in_adminhtml', Mage_Core_Model_App::ADMIN_STORE_ID) + && substr((string)Mage::getConfig()->getNode('default/web/secure/base_url'), 0, 5) === 'https'; + } + + /** + * Retrieve current secure url + * + * @param Mage_Core_Controller_Request_Http $request + * @return string + */ + protected function _getCurrentSecureUrl($request) + { + return Mage::app()->getStore(Mage_Core_Model_App::ADMIN_STORE_ID) + ->getBaseUrl('link', true) . ltrim($request->getPathInfo(), '/'); + } + + /** + * Emulate custom admin url + * + * @param string $configArea + * @param bool $useRouterName + */ + public function collectRoutes($configArea, $useRouterName) + { + if ((string)Mage::getConfig()->getNode(Mage_Backend_Helper_Data::XML_PATH_USE_CUSTOM_ADMIN_PATH)) { + $customUrl = (string)Mage::getConfig()->getNode(Mage_Backend_Helper_Data::XML_PATH_CUSTOM_ADMIN_PATH); + $xmlPath = Mage_Backend_Helper_Data::XML_PATH_ADMINHTML_ROUTER_FRONTNAME; + if ((string)Mage::getConfig()->getNode($xmlPath) != $customUrl) { + Mage::getConfig()->setNode($xmlPath, $customUrl, true); + } + } + $this->_collectRoutes('admin', $useRouterName); + } + + /** + * Collect modules routers configuration from configuration + * + * @param string $configArea + * @param string $useRouterName + * @return void + */ + protected function _collectRoutes($configArea, $useRouterName) + { + $routers = array(); + $routersConfigNode = Mage::getConfig()->getNode($configArea.'/routers'); + if($routersConfigNode) { + $routers = $routersConfigNode->children(); + } + foreach ($routers as $routerName=>$routerConfig) { + $use = (string)$routerConfig->use; + if ($use == $useRouterName) { + $modules = array(); + if (isset($routerConfig->args->module)) { + $modules = array((string)$routerConfig->args->module); + } + + if ($routerConfig->args->modules) { + foreach ($routerConfig->args->modules->children() as $customModule) { + if ($customModule) { + if ($before = $customModule->getAttribute('before')) { + $position = array_search($before, $modules); + if ($position === false) { + $position = 0; + } + array_splice($modules, $position, 0, (string)$customModule); + } elseif ($after = $customModule->getAttribute('after')) { + $position = array_search($after, $modules); + if ($position === false) { + $position = count($modules); + } + array_splice($modules, $position+1, 0, (string)$customModule); + } else { + $modules[] = (string)$customModule; + } + } + } + } + + $frontName = (string)$routerConfig->args->frontName; + $this->addModule($frontName, $modules, $routerName); + } + } + } + + public function getControllerFileName($realModule, $controller) + { + /** + * Start temporary block + * TODO: Sprint#27. Delete after adminhtml refactoring + */ + if ($realModule == 'Mage_Adminhtml') { + return parent::getControllerFileName($realModule, $controller); + } + /** + * End temporary block + */ + + $parts = explode('_', $realModule); + $realModule = implode('_', array_splice($parts, 0, 2)); + $file = Mage::getModuleDir('controllers', $realModule); + return $file . DS . ucfirst($this->_area) . DS . uc_words($controller, DS) . 'Controller.php'; + } + + public function getControllerClassName($realModule, $controller) + { + /** + * Start temporary block + * TODO: Sprint#27. Delete after adminhtml refactoring + */ + if ($realModule == 'Mage_Adminhtml') { + return parent::getControllerClassName($realModule, $controller); + } + /** + * End temporary block + */ + + $parts = explode('_', $realModule); + $realModule = implode('_', array_splice($parts, 0, 2)); + return $realModule . '_' . ucfirst($this->_area) . '_' . uc_words($controller) . 'Controller'; + } +} diff --git a/app/code/core/Mage/Backend/Helper/Data.php b/app/code/core/Mage/Backend/Helper/Data.php new file mode 100644 index 00000000000..c776412379c --- /dev/null +++ b/app/code/core/Mage/Backend/Helper/Data.php @@ -0,0 +1,33 @@ +<?php +/** + * Magento + * + * 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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category Mage + * @package Mage_Backend + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +class Mage_Backend_Helper_Data extends Mage_Core_Helper_Abstract +{ + const XML_PATH_ADMINHTML_ROUTER_FRONTNAME = 'admin/routers/adminhtml/args/frontName'; + const XML_PATH_USE_CUSTOM_ADMIN_URL = 'default/admin/url/use_custom'; + const XML_PATH_USE_CUSTOM_ADMIN_PATH = 'default/admin/url/use_custom_path'; + const XML_PATH_CUSTOM_ADMIN_PATH = 'default/admin/url/custom_path'; +} diff --git a/app/code/core/Mage/Backend/etc/config.xml b/app/code/core/Mage/Backend/etc/config.xml new file mode 100644 index 00000000000..33f81448a9a --- /dev/null +++ b/app/code/core/Mage/Backend/etc/config.xml @@ -0,0 +1,47 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category Mage + * @package Mage_Backend + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<config> + <modules> + <Mage_Backend> + <version>2.0.0.0</version> + </Mage_Backend> + </modules> + <global> + <areas> + <adminhtml> + <base_controller>Mage_Backend_Controller_ActionAbstract</base_controller> + <routers> + <admin> + <class>Mage_Backend_Controller_Router_Default</class> + <!--<frontName>admin</frontName>--> + </admin> + </routers> + </adminhtml> + </areas> + </global> +</config> diff --git a/app/code/core/Mage/Bundle/Block/Catalog/Product/View.php b/app/code/core/Mage/Bundle/Block/Catalog/Product/View.php index dd7f7515f6f..264ef3a44a5 100644 --- a/app/code/core/Mage/Bundle/Block/Catalog/Product/View.php +++ b/app/code/core/Mage/Bundle/Block/Catalog/Product/View.php @@ -37,30 +37,35 @@ class Mage_Bundle_Block_Catalog_Product_View extends Mage_Catalog_Block_Product_ /** * Get tier prices (formatted) * - * @param Mage_Catalog_Model_Product $product + * @param Mage_Catalog_Model_Product|null $product * @return array */ public function getTierPrices($product = null) { - if (is_null($product)) { + if ($product === null) { $product = $this->getProduct(); } - $prices = $product->getFormatedTierPrice(); - - $taxHelper = Mage::helper('Mage_Tax_Helper_Data'); $res = array(); + + $prices = $product->getFormatedTierPrice(); if (is_array($prices)) { + $store = Mage::app()->getStore(); + $helper = Mage::helper('Mage_Tax_Helper_Data'); + $specialPrice = $product->getSpecialPrice() ? 100 - $product->getSpecialPrice() : 0; foreach ($prices as $price) { - $price['price_qty'] = $price['price_qty']*1; - $price['savePercent'] = ceil(100 - $price['price']); - $price['formated_price'] = Mage::app()->getStore()->formatPrice( - Mage::app()->getStore()->convertPrice($taxHelper->getPrice($product, $price['website_price'])) - ); - $price['formated_price_incl_tax'] = Mage::app()->getStore()->formatPrice( - Mage::app()->getStore()->convertPrice($taxHelper->getPrice($product, $price['website_price'], true)) - ); - $res[] = $price; + if ($specialPrice < $price['price']) { + $price['price_qty'] += 0; + $price['savePercent'] = ceil(100 - $price['price']); + + $priceExclTax = $helper->getPrice($product, $price['website_price']); + $price['formated_price'] = $store->formatPrice($store->convertPrice($priceExclTax)); + + $priceInclTax = $helper->getPrice($product, $price['website_price'], true); + $price['formated_price_incl_tax'] = $store->formatPrice($store->convertPrice($priceInclTax)); + + $res[] = $price; + } } } diff --git a/app/code/core/Mage/Bundle/Helper/Catalog/Product/Configuration.php b/app/code/core/Mage/Bundle/Helper/Catalog/Product/Configuration.php index d3a3fc9a2e6..4fc3a9e2dac 100644 --- a/app/code/core/Mage/Bundle/Helper/Catalog/Product/Configuration.php +++ b/app/code/core/Mage/Bundle/Helper/Catalog/Product/Configuration.php @@ -39,6 +39,7 @@ class Mage_Bundle_Helper_Catalog_Product_Configuration extends Mage_Core_Helper_ * * @param Mage_Catalog_Model_Product $product * @param int $selectionId + * * @return decimal */ public function getSelectionQty($product, $selectionId) @@ -55,6 +56,7 @@ class Mage_Bundle_Helper_Catalog_Product_Configuration extends Mage_Core_Helper_ * * @param Mage_Catalog_Model_Product_Configuration_Item_Interface $item * @param Mage_Catalog_Model_Product $selectionProduct + * * @return decimal */ public function getSelectionFinalPrice(Mage_Catalog_Model_Product_Configuration_Item_Interface $item, @@ -101,33 +103,37 @@ class Mage_Bundle_Helper_Catalog_Product_Configuration extends Mage_Core_Helper_ // get and add bundle selections collection $selectionsQuoteItemOption = $item->getOptionByCode('bundle_selection_ids'); - $selectionsCollection = $typeInstance->getSelectionsByIds( - unserialize($selectionsQuoteItemOption->getValue()), - $product - ); + $bundleSelectionIds = unserialize($selectionsQuoteItemOption->getValue()); + + if (!empty($bundleSelectionIds)) { + $selectionsCollection = $typeInstance->getSelectionsByIds( + unserialize($selectionsQuoteItemOption->getValue()), + $product + ); - $bundleOptions = $optionsCollection->appendSelections($selectionsCollection, true); - foreach ($bundleOptions as $bundleOption) { - if ($bundleOption->getSelections()) { - $option = array( - 'label' => $bundleOption->getTitle(), - 'value' => array() - ); + $bundleOptions = $optionsCollection->appendSelections($selectionsCollection, true); + foreach ($bundleOptions as $bundleOption) { + if ($bundleOption->getSelections()) { + $option = array( + 'label' => $bundleOption->getTitle(), + 'value' => array() + ); - $bundleSelections = $bundleOption->getSelections(); + $bundleSelections = $bundleOption->getSelections(); - foreach ($bundleSelections as $bundleSelection) { - $qty = $this->getSelectionQty($product, $bundleSelection->getSelectionId()) * 1; - if ($qty) { - $option['value'][] = $qty . ' x ' . $this->escapeHtml($bundleSelection->getName()) - . ' ' . Mage::helper('Mage_Core_Helper_Data')->currency( - $this->getSelectionFinalPrice($item, $bundleSelection) - ); + foreach ($bundleSelections as $bundleSelection) { + $qty = $this->getSelectionQty($product, $bundleSelection->getSelectionId()) * 1; + if ($qty) { + $option['value'][] = $qty . ' x ' . $this->escapeHtml($bundleSelection->getName()) + . ' ' . Mage::helper('Mage_Core_Helper_Data')->currency( + $this->getSelectionFinalPrice($item, $bundleSelection) + ); + } } - } - if ($option['value']) { - $options[] = $option; + if ($option['value']) { + $options[] = $option; + } } } } diff --git a/app/code/core/Mage/Bundle/Model/Product/Type.php b/app/code/core/Mage/Bundle/Model/Product/Type.php index 042dcdf7520..0460666af14 100644 --- a/app/code/core/Mage/Bundle/Model/Product/Type.php +++ b/app/code/core/Mage/Bundle/Model/Product/Type.php @@ -648,7 +648,7 @@ class Mage_Bundle_Model_Product_Type extends Mage_Catalog_Model_Product_Type_Abs $beforeQty = 0; $customOption = $product->getCustomOption('product_qty_' . $selection->getId()); - if ($customOption) { + if ($customOption && $customOption->getProduct()->getId() == $selection->getId()) { $beforeQty = (float)$customOption->getValue(); } $product->addCustomOption('product_qty_' . $selection->getId(), $qty + $beforeQty, $selection); diff --git a/app/code/core/Mage/Bundle/view/adminhtml/product/edit/bundle.phtml b/app/code/core/Mage/Bundle/view/adminhtml/product/edit/bundle.phtml index 9fbde6677e2..226d1299d3a 100644 --- a/app/code/core/Mage/Bundle/view/adminhtml/product/edit/bundle.phtml +++ b/app/code/core/Mage/Bundle/view/adminhtml/product/edit/bundle.phtml @@ -71,6 +71,15 @@ $('product_bundle_container').select('input', 'select', 'textarea', 'button').ea } }); <?php endif; ?> +Validation.add('validate-greater-zero-based-on-option', '<?php echo $this->__('Please enter a number greater 0 in this field.') ?>', function(v, el) { + var optionType = $(el).up('div.grid').previous('table.option-header').select('select.select-product-option-type')[0], + v = Number(v) || 0; + + if (optionType && (optionType.value == 'checkbox' || optionType.value == 'multi') && v <= 0) { + return false; + } + return true; +}); </script> <div><input type="hidden" name="affect_bundle_product_selections" value="1" /></div> diff --git a/app/code/core/Mage/Bundle/view/adminhtml/product/edit/bundle/option/selection.phtml b/app/code/core/Mage/Bundle/view/adminhtml/product/edit/bundle/option/selection.phtml index 4db875553be..49107fa0216 100644 --- a/app/code/core/Mage/Bundle/view/adminhtml/product/edit/bundle/option/selection.phtml +++ b/app/code/core/Mage/Bundle/view/adminhtml/product/edit/bundle/option/selection.phtml @@ -66,7 +66,7 @@ var bundleTemplateRow ='<td>' + '<input type="hidden" id="<?php echo $this->getFieldId(); ?>_{{index}}_price_scope" name="<?php echo $this->getFieldName(); ?>[{{parentIndex}}][{{index}}][default_price_scope]" value="1" />' + <?php endif; ?> <?php endif; ?> - '<td><input class="input-text required-entry validate-zero-or-greater" type="text" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][selection_qty]" value="{{selection_qty}}"></td>' + + '<td><input class="input-text required-entry validate-greater-zero-based-on-option validate-zero-or-greater" type="text" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][selection_qty]" value="{{selection_qty}}"></td>' + '<td class="qty-box"><?php echo $this->getQtyTypeSelectHtml() ?></td>' + '<td><input class="input-text required-entry validate-zero-or-greater" type="text" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][position]" value="{{position}}"></td>' + '<td class="a-center"><input onclick="bSelection.checkGroup(event)" type="{{option_type}}" class="default" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][is_default]" value="1" {{checked}}></td>' + diff --git a/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest.php b/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest.php index ab4d22305ed..6357818f450 100644 --- a/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest.php +++ b/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest.php @@ -44,6 +44,7 @@ abstract class Mage_Catalog_Model_Api2_Product_Image_Rest extends Mage_Catalog_M * @var array */ protected $_mimeTypes = array( + 'image/jpg' => 'jpg', 'image/jpeg' => 'jpg', 'image/gif' => 'gif', 'image/png' => 'png' diff --git a/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php b/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php index 5963f133823..c56410bac07 100644 --- a/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php +++ b/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php @@ -75,7 +75,8 @@ class Mage_Catalog_Model_Api2_Product_Image_Rest_Admin_V1 extends Mage_Catalog_M $this->_critical($e->getMessage(), Mage_Api2_Model_Server::HTTP_INTERNAL_ERROR); } $product = $this->_getProduct(); - $imageFileUri = $this->_getMediaGallery()->addImage($product, $apiTempDir . DS . $imageFileName); + $imageFileUri = $this->_getMediaGallery() + ->addImage($product, $apiTempDir . DS . $imageFileName, null, false, false); $ioAdapter->rmdir($apiTempDir, true); // updateImage() must be called to add image data that is missing after addImage() call $this->_getMediaGallery()->updateImage($product, $imageFileUri, $data); diff --git a/app/code/core/Mage/Catalog/Model/Api2/Product/Rest.php b/app/code/core/Mage/Catalog/Model/Api2/Product/Rest.php index c438764ca1d..eff796a98f8 100644 --- a/app/code/core/Mage/Catalog/Model/Api2/Product/Rest.php +++ b/app/code/core/Mage/Catalog/Model/Api2/Product/Rest.php @@ -201,7 +201,7 @@ abstract class Mage_Catalog_Model_Api2_Product_Rest extends Mage_Catalog_Model_A $this->_critical(self::RESOURCE_NOT_FOUND); } // check if product belongs to website current - if ($this->getRequest()->getParam('store')) { + if ($this->_getStore()->getId()) { $isValidWebsite = in_array($this->_getStore()->getWebsiteId(), $product->getWebsiteIds()); if (!$isValidWebsite) { $this->_critical(self::RESOURCE_NOT_FOUND); @@ -211,7 +211,8 @@ abstract class Mage_Catalog_Model_Api2_Product_Rest extends Mage_Catalog_Model_A if ($this->getApiUser()->getType() != Mage_Api2_Model_Auth_User_Admin::USER_TYPE) { // check if product assigned to any website and can be shown if ((!Mage::app()->isSingleStoreMode() && !count($product->getWebsiteIds())) - || !$productHelper->canShow($product)) { + || !$productHelper->canShow($product) + ) { $this->_critical(self::RESOURCE_NOT_FOUND); } } diff --git a/app/code/core/Mage/Catalog/Model/Api2/Product/Rest/Admin/V1.php b/app/code/core/Mage/Catalog/Model/Api2/Product/Rest/Admin/V1.php index 19ec8f10b94..50ce96b3635 100644 --- a/app/code/core/Mage/Catalog/Model/Api2/Product/Rest/Admin/V1.php +++ b/app/code/core/Mage/Catalog/Model/Api2/Product/Rest/Admin/V1.php @@ -160,6 +160,11 @@ class Mage_Catalog_Model_Api2_Product_Rest_Admin_V1 extends Mage_Catalog_Model_A ->setTypeId($type) ->setSku($sku); + foreach ($product->getMediaAttributes() as $mediaAttribute) { + $mediaAttrCode = $mediaAttribute->getAttributeCode(); + $product->setData($mediaAttrCode, 'no_selection'); + } + $this->_prepareDataForSave($product, $data); try { $product->validate(); @@ -201,6 +206,9 @@ class Mage_Catalog_Model_Api2_Product_Rest_Admin_V1 extends Mage_Catalog_Model_A if (isset($data['sku'])) { $product->setSku($data['sku']); } + // attribute set and product type cannot be updated + unset($data['attribute_set_id']); + unset($data['type_id']); $this->_prepareDataForSave($product, $data); try { $product->validate(); diff --git a/app/code/core/Mage/Catalog/Model/Category/Attribute/Backend/Sortby.php b/app/code/core/Mage/Catalog/Model/Category/Attribute/Backend/Sortby.php index c7473ae2d8e..a2d9b5bbfb1 100644 --- a/app/code/core/Mage/Catalog/Model/Category/Attribute/Backend/Sortby.php +++ b/app/code/core/Mage/Catalog/Model/Category/Attribute/Backend/Sortby.php @@ -44,13 +44,14 @@ class Mage_Catalog_Model_Category_Attribute_Backend_Sortby public function validate($object) { $attributeCode = $this->getAttribute()->getName(); - $postDataConfig = ($object->getData('use_post_data_config'))? $object->getData('use_post_data_config') : array(); - - $isUseConfig = false; + $postDataConfig = $object->getData('use_post_data_config'); if ($postDataConfig) { $isUseConfig = in_array($attributeCode, $postDataConfig); + } else { + $isUseConfig = false; + $postDataConfig = array(); } - + if ($this->getAttribute()->getIsRequired()) { $attributeValue = $object->getData($attributeCode); if ($this->getAttribute()->isValueEmpty($attributeValue)) { @@ -69,7 +70,7 @@ class Mage_Catalog_Model_Category_Attribute_Backend_Sortby Mage::throwException(Mage::helper('Mage_Eav_Helper_Data')->__('The value of attribute "%s" must be unique.', $label)); } } - + if ($attributeCode == 'default_sort_by') { if ($available = $object->getData('available_sort_by')) { if (!is_array($available)) { @@ -78,16 +79,16 @@ class Mage_Catalog_Model_Category_Attribute_Backend_Sortby $data = (!in_array('default_sort_by', $postDataConfig))? $object->getData($attributeCode): Mage::getStoreConfig("catalog/frontend/default_sort_by"); if (!in_array($data, $available)) { - Mage::throwException(Mage::helper('Mage_Eav_Helper_Data')->__('Default Product Listing Sort by not exists on Available Product Listing Sort By')); + Mage::throwException(Mage::helper('Mage_Eav_Helper_Data')->__('Default Product Listing Sort by does not exist in Available Product Listing Sort By.')); } } else { if (!in_array('available_sort_by', $postDataConfig)) { - Mage::throwException(Mage::helper('Mage_Eav_Helper_Data')->__('Default Product Listing Sort by not exists on Available Product Listing Sort By')); + Mage::throwException(Mage::helper('Mage_Eav_Helper_Data')->__('Default Product Listing Sort by does not exist in Available Product Listing Sort By.')); } } } - return true; + return true; } /** diff --git a/app/code/core/Mage/Catalog/Model/Product.php b/app/code/core/Mage/Catalog/Model/Product.php index 60246070aa5..5e45a51c036 100644 --- a/app/code/core/Mage/Catalog/Model/Product.php +++ b/app/code/core/Mage/Catalog/Model/Product.php @@ -1293,7 +1293,7 @@ class Mage_Catalog_Model_Product extends Mage_Catalog_Model_Abstract public function getIsSalable() { $productType = $this->getTypeInstance(); - if (is_callable(array($productType, 'getIsSalable'))) { + if (method_exists($productType, 'getIsSalable')) { return $productType->getIsSalable($this); } if ($this->hasData('is_salable')) { @@ -1836,7 +1836,7 @@ class Mage_Catalog_Model_Product extends Mage_Catalog_Model_Abstract $products = $this->_getResource()->getProductsSku($productIds); if (count($products)) { foreach ($products as $product) { - if (empty($product['sku'])) { + if (!strlen($product['sku'])) { return false; } } diff --git a/app/code/core/Mage/Catalog/Model/Product/Api.php b/app/code/core/Mage/Catalog/Model/Product/Api.php index 47b9a9fd8d2..eb5361a1fac 100644 --- a/app/code/core/Mage/Catalog/Model/Product/Api.php +++ b/app/code/core/Mage/Catalog/Model/Product/Api.php @@ -187,6 +187,11 @@ class Mage_Catalog_Model_Product_Api extends Mage_Catalog_Model_Api_Resource $product->setStockData(array('use_config_manage_stock' => 0)); } + foreach ($product->getMediaAttributes() as $mediaAttribute) { + $mediaAttrCode = $mediaAttribute->getAttributeCode(); + $product->setData($mediaAttrCode, 'no_selection'); + } + $this->_prepareDataForSave($product, $productData); try { diff --git a/app/code/core/Mage/Catalog/Model/Product/Api/V2.php b/app/code/core/Mage/Catalog/Model/Product/Api/V2.php index da8198769c6..55c5e59bd17 100644 --- a/app/code/core/Mage/Catalog/Model/Product/Api/V2.php +++ b/app/code/core/Mage/Catalog/Model/Product/Api/V2.php @@ -182,6 +182,11 @@ class Mage_Catalog_Model_Product_Api_V2 extends Mage_Catalog_Model_Product_Api $product->setStockData($_stockData); } + foreach ($product->getMediaAttributes() as $mediaAttribute) { + $mediaAttrCode = $mediaAttribute->getAttributeCode(); + $product->setData($mediaAttrCode, 'no_selection'); + } + $this->_prepareDataForSave($product, $productData); try { diff --git a/app/code/core/Mage/Catalog/Model/Product/Attribute/Backend/Startdate.php b/app/code/core/Mage/Catalog/Model/Product/Attribute/Backend/Startdate.php index 7afabc58f3b..6f4359f75c0 100644 --- a/app/code/core/Mage/Catalog/Model/Product/Attribute/Backend/Startdate.php +++ b/app/code/core/Mage/Catalog/Model/Product/Attribute/Backend/Startdate.php @@ -97,7 +97,7 @@ class Mage_Catalog_Model_Product_Attribute_Backend_Startdate extends Mage_Eav_Mo $maxValue = $date->timestamp($maxDate); if ($value > $maxValue) { - $message = Mage::helper('Mage_Catalog_Helper_Data')->__('The From Date value should be less than the To Date value.'); + $message = Mage::helper('Mage_Catalog_Helper_Data')->__('The From Date value should be less than or equal to the To Date value.'); $eavExc = new Mage_Eav_Model_Entity_Attribute_Exception($message); $eavExc->setAttributeCode($attr->getName()); throw $eavExc; diff --git a/app/code/core/Mage/Catalog/Model/Resource/Category.php b/app/code/core/Mage/Catalog/Model/Resource/Category.php index 5648a447a4d..1c9729fb30d 100755 --- a/app/code/core/Mage/Catalog/Model/Resource/Category.php +++ b/app/code/core/Mage/Catalog/Model/Resource/Category.php @@ -619,7 +619,7 @@ class Mage_Catalog_Model_Resource_Category extends Mage_Catalog_Model_Resource_A ->addAttributeToSelect('custom_layout_update') ->addAttributeToSelect('custom_apply_to_products') ->addFieldToFilter('entity_id', array('in' => $pathIds)) - ->addFieldToFilter('custom_use_parent_settings', 0) + ->addAttributeToFilter('custom_use_parent_settings', array(array('eq' => 0), array('null' => 0)), 'left') ->addFieldToFilter('level', array('neq' => 0)) ->setOrder('level', 'DESC') ->load(); diff --git a/app/code/core/Mage/Catalog/etc/config.xml b/app/code/core/Mage/Catalog/etc/config.xml index b52a1cbde72..b12a6ea7680 100644 --- a/app/code/core/Mage/Catalog/etc/config.xml +++ b/app/code/core/Mage/Catalog/etc/config.xml @@ -28,7 +28,7 @@ <config> <modules> <Mage_Catalog> - <version>1.6.0.0.14</version> + <version>1.6.0.0.15</version> </Mage_Catalog> </modules> <global> diff --git a/app/code/core/Mage/Catalog/sql/catalog_setup/upgrade-1.6.0.0.14-1.6.0.0.15.php b/app/code/core/Mage/Catalog/sql/catalog_setup/upgrade-1.6.0.0.14-1.6.0.0.15.php new file mode 100644 index 00000000000..7e925a7919f --- /dev/null +++ b/app/code/core/Mage/Catalog/sql/catalog_setup/upgrade-1.6.0.0.14-1.6.0.0.15.php @@ -0,0 +1,37 @@ +<?php +/** + * Magento + * + * 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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category Mage + * @package Mage_Catalog + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +$installer = $this; +/** @var $installer Mage_Catalog_Model_Resource_Setup */ + +foreach (array('news_from_date', 'custom_design_from') as $attributeCode) { + $installer->updateAttribute( + Mage_Catalog_Model_Product::ENTITY, + $attributeCode, + 'backend_model', + 'Mage_Catalog_Model_Product_Attribute_Backend_Startdate' + ); +} diff --git a/app/code/core/Mage/Catalog/view/frontend/product/price.phtml b/app/code/core/Mage/Catalog/view/frontend/product/price.phtml index 22429a4da8f..e67d0d53909 100644 --- a/app/code/core/Mage/Catalog/view/frontend/product/price.phtml +++ b/app/code/core/Mage/Catalog/view/frontend/product/price.phtml @@ -391,13 +391,23 @@ <?php else: /* if (!$_product->isGrouped()): */ ?> <?php - $_exclTax = $_taxHelper->getPrice($_product, $_minimalPriceValue); - $_inclTax = $_taxHelper->getPrice($_product, $_minimalPriceValue, true); + $showMinPrice = $this->getDisplayMinimalPrice(); + if ($showMinPrice && $_minimalPriceValue) { + $_exclTax = $_taxHelper->getPrice($_product, $_minimalPriceValue); + $_inclTax = $_taxHelper->getPrice($_product, $_minimalPriceValue, true); + $price = $showMinPrice ? $_minimalPriceValue : 0; + } else { + $price = $_product->getFinalPrice(); + $_exclTax = $_taxHelper->getPrice($_product, $price); + $_inclTax = $_taxHelper->getPrice($_product, $price, true); + } ?> - <?php if ($this->getDisplayMinimalPrice() && $_minimalPriceValue): ?> + <?php if ($price): ?> <div class="price-box"> - <p class="minimal-price"> + <p<?php if ($showMinPrice): ?> class="minimal-price"<?php endif ?>> + <?php if ($showMinPrice): ?> <span class="price-label"><?php echo $this->__('Starting at:') ?></span> + <?php endif ?> <?php if ($_taxHelper->displayBothPrices()): ?> <span class="price-excluding-tax"> <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Excl. Tax:') ?></span> diff --git a/app/code/core/Mage/CatalogInventory/Model/Resource/Stock.php b/app/code/core/Mage/CatalogInventory/Model/Resource/Stock.php index 9eff95199e5..d5409e85d4b 100755 --- a/app/code/core/Mage/CatalogInventory/Model/Resource/Stock.php +++ b/app/code/core/Mage/CatalogInventory/Model/Resource/Stock.php @@ -211,23 +211,20 @@ class Mage_CatalogInventory_Model_Resource_Stock extends Mage_Core_Model_Resourc protected function _initConfig() { if (!$this->_isConfig) { - $this->_isConfig = true; - $this->_isConfigManageStock = (int)Mage::getStoreConfigFlag( - Mage_CatalogInventory_Model_Stock_Item::XML_PATH_MANAGE_STOCK - ); - $this->_isConfigBackorders = (int)Mage::getStoreConfig( - Mage_CatalogInventory_Model_Stock_Item::XML_PATH_BACKORDERS - ); - $this->_configMinQty = (int)Mage::getStoreConfig( - Mage_CatalogInventory_Model_Stock_Item::XML_PATH_MIN_QTY + $configMap = array( + '_isConfigManageStock' => Mage_CatalogInventory_Model_Stock_Item::XML_PATH_MANAGE_STOCK, + '_isConfigBackorders' => Mage_CatalogInventory_Model_Stock_Item::XML_PATH_BACKORDERS, + '_configMinQty' => Mage_CatalogInventory_Model_Stock_Item::XML_PATH_MIN_QTY, + '_configNotifyStockQty' => Mage_CatalogInventory_Model_Stock_Item::XML_PATH_NOTIFY_STOCK_QTY ); - $this->_configNotifyStockQty = (int)Mage::getStoreConfig( - Mage_CatalogInventory_Model_Stock_Item::XML_PATH_NOTIFY_STOCK_QTY - ); - $this->_configTypeIds = array_keys( - Mage::helper('Mage_CatalogInventory_Helper_Data')->getIsQtyTypeIds(true) - ); - $this->_stock = Mage::getModel('Mage_CatalogInventory_Model_Stock'); + + foreach ($configMap as $field => $const) { + $this->$field = (int)Mage::getStoreConfig($const); + } + + $this->_isConfig = true; + $this->_stock = Mage::getModel('Mage_CatalogInventory_Model_Stock'); + $this->_configTypeIds = array_keys(Mage::helper('Mage_CatalogInventory_Helper_Data')->getIsQtyTypeIds(true)); } } @@ -328,4 +325,50 @@ class Mage_CatalogInventory_Model_Resource_Stock extends Mage_Core_Model_Resourc $adapter->update($this->getTable('cataloginventory_stock_item'), $value, $where); } + + /** + * Add low stock filter to product collection + * + * @param Mage_Catalog_Model_Resource_Product_Collection $collection + * @param array $fields + * @return Mage_CatalogInventory_Model_Resource_Stock + */ + public function addLowStockFilter(Mage_Catalog_Model_Resource_Product_Collection $collection, $fields) + { + $this->_initConfig(); + $adapter = $collection->getSelect()->getAdapter(); + $qtyIf = $adapter->getCheckSql( + 'invtr.use_config_notify_stock_qty', + $this->_configNotifyStockQty, + 'invtr.notify_stock_qty' + ); + $conditions = array( + array( + $adapter->prepareSqlCondition('invtr.use_config_manage_stock', 1), + $adapter->prepareSqlCondition($this->_isConfigManageStock, 1), + $adapter->prepareSqlCondition('invtr.qty', array('lt' => $qtyIf)) + ), + array( + $adapter->prepareSqlCondition('invtr.use_config_manage_stock', 0), + $adapter->prepareSqlCondition('invtr.manage_stock', 1) + ) + ); + + $where = array(); + foreach ($conditions as $k => $part) { + $where[$k] = join(' ' . Zend_Db_Select::SQL_AND . ' ', $part); + } + + $where = $adapter->prepareSqlCondition('invtr.low_stock_date', array('notnull' => true)) + . ' ' . Zend_Db_Select::SQL_AND . ' ((' + . join(') ' . Zend_Db_Select::SQL_OR .' (', $where) + . '))'; + + $collection->joinTable(array('invtr' => 'cataloginventory_stock_item'), + 'product_id = entity_id', + $fields, + $where + ); + return $this; + } } diff --git a/app/code/core/Mage/CatalogInventory/Model/Stock/Status.php b/app/code/core/Mage/CatalogInventory/Model/Stock/Status.php old mode 100644 new mode 100755 index 65f85cfb05c..77f5e84db3e --- a/app/code/core/Mage/CatalogInventory/Model/Stock/Status.php +++ b/app/code/core/Mage/CatalogInventory/Model/Stock/Status.php @@ -277,10 +277,12 @@ class Mage_CatalogInventory_Model_Stock_Status extends Mage_Core_Model_Abstract * @param int $status * @param int $stockId * @param int $websiteId + * * @return Mage_CatalogInventory_Model_Stock_Status */ - protected function _processChildren($productId, $productType, $qty = 0, $status = self::STATUS_IN_STOCK, $stockId = 1, $websiteId = null) - { + protected function _processChildren($productId, $productType, $qty = 0, $status = self::STATUS_IN_STOCK, + $stockId = 1, $websiteId = null + ) { if ($status == self::STATUS_OUT_OF_STOCK) { $this->saveProductStatus($productId, $status, $qty, $stockId, $websiteId); return $this; diff --git a/app/code/core/Mage/CatalogSearch/Model/Advanced.php b/app/code/core/Mage/CatalogSearch/Model/Advanced.php index 372d94b8a92..88b8cf5654d 100644 --- a/app/code/core/Mage/CatalogSearch/Model/Advanced.php +++ b/app/code/core/Mage/CatalogSearch/Model/Advanced.php @@ -62,11 +62,13 @@ class Mage_CatalogSearch_Model_Advanced extends Mage_Core_Model_Abstract /** * Current search engine * - * @var object | Mage_CatalogSearch_Model_Resource_Fulltext_Engine + * @var object|Mage_CatalogSearch_Model_Resource_Fulltext_Engine */ - protected $_engine = null; + protected $_engine; /** + * Found products collection + * * @var Mage_CatalogSearch_Model_Resource_Advanced_Collection */ protected $_productCollection; diff --git a/app/code/core/Mage/Centinel/view/frontend/images/sc_learn_62x34.png b/app/code/core/Mage/Centinel/view/frontend/images/sc_learn_62x34.png new file mode 100644 index 0000000000000000000000000000000000000000..d8029b48647c723ba2ca120a92ed42e6cc313676 GIT binary patch literal 2293 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 F^1qe4!p#5x literal 0 HcmV?d00001 diff --git a/app/code/core/Mage/Centinel/view/frontend/images/vbv_ltbg_71x57.png b/app/code/core/Mage/Centinel/view/frontend/images/vbv_ltbg_71x57.png new file mode 100644 index 0000000000000000000000000000000000000000..a9629acb51ded1392e8e299b3f61a0eb58531f36 GIT binary patch literal 2498 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 literal 0 HcmV?d00001 diff --git a/app/code/core/Mage/Checkout/Block/Multishipping/Billing.php b/app/code/core/Mage/Checkout/Block/Multishipping/Billing.php index 770b7e261ee..0329d91ab55 100644 --- a/app/code/core/Mage/Checkout/Block/Multishipping/Billing.php +++ b/app/code/core/Mage/Checkout/Block/Multishipping/Billing.php @@ -48,16 +48,14 @@ class Mage_Checkout_Block_Multishipping_Billing extends Mage_Payment_Block_Form_ } /** - * Check and prepare payment method model + * Check payment method model * + * @param Mage_Payment_Model_Method_Abstract|null $method * @return bool */ protected function _canUseMethod($method) { - if (!$method->canUseForMultishipping()) { - return false; - } - return parent::_canUseMethod($method); + return $method && $method->canUseForMultishipping() && parent::_canUseMethod($method); } /** diff --git a/app/code/core/Mage/Checkout/Block/Multishipping/Overview.php b/app/code/core/Mage/Checkout/Block/Multishipping/Overview.php index 8d6faedc03c..8e287300171 100644 --- a/app/code/core/Mage/Checkout/Block/Multishipping/Overview.php +++ b/app/code/core/Mage/Checkout/Block/Multishipping/Overview.php @@ -88,7 +88,6 @@ class Mage_Checkout_Block_Multishipping_Overview extends Mage_Sales_Block_Items_ $this->setData('payment', $payment); } return $this->_getData('payment'); - //return $this->getCheckout()->getQuote()->getPayment(); } public function getShippingAddresses() @@ -301,4 +300,4 @@ class Mage_Checkout_Block_Multishipping_Overview extends Mage_Sales_Block_Items_ { return 'row_' . $type; } -} \ No newline at end of file +} diff --git a/app/code/core/Mage/Checkout/Block/Onepage/Abstract.php b/app/code/core/Mage/Checkout/Block/Onepage/Abstract.php index 1e33a2ea0c7..8807c0c14ef 100644 --- a/app/code/core/Mage/Checkout/Block/Onepage/Abstract.php +++ b/app/code/core/Mage/Checkout/Block/Onepage/Abstract.php @@ -159,7 +159,7 @@ abstract class Mage_Checkout_Block_Onepage_Abstract extends Mage_Core_Block_Temp ->setValue($countryId) ->setOptions($this->getCountryOptions()); if ($type === 'shipping') { - $select->setExtraParams('onchange="shipping.setSameAsBilling(false);"'); + $select->setExtraParams('onchange="if(window.shipping)shipping.setSameAsBilling(false);"'); } return $select->getHtml(); diff --git a/app/code/core/Mage/Checkout/Block/Onepage/Payment/Methods.php b/app/code/core/Mage/Checkout/Block/Onepage/Payment/Methods.php index 998a84502e3..b9305801138 100644 --- a/app/code/core/Mage/Checkout/Block/Onepage/Payment/Methods.php +++ b/app/code/core/Mage/Checkout/Block/Onepage/Payment/Methods.php @@ -40,16 +40,14 @@ class Mage_Checkout_Block_Onepage_Payment_Methods extends Mage_Payment_Block_For } /** - * Check and prepare payment method model + * Check payment method model * + * @param Mage_Payment_Model_Method_Abstract|null * @return bool */ protected function _canUseMethod($method) { - if (!$method || !$method->canUseCheckout()) { - return false; - } - return parent::_canUseMethod($method); + return $method && $method->canUseCheckout() && parent::_canUseMethod($method); } /** diff --git a/app/code/core/Mage/Checkout/Model/Cart.php b/app/code/core/Mage/Checkout/Model/Cart.php index c92e1a8b8d1..23997d56929 100644 --- a/app/code/core/Mage/Checkout/Model/Cart.php +++ b/app/code/core/Mage/Checkout/Model/Cart.php @@ -140,21 +140,15 @@ class Mage_Checkout_Model_Cart extends Varien_Object implements Mage_Checkout_Mo */ public function init() { - $this->getQuote()->setCheckoutMethod(''); + $quote = $this->getQuote()->setCheckoutMethod(''); - /** - * If user try do checkout, reset shipping and payment data - */ if ($this->getCheckoutSession()->getCheckoutState() !== Mage_Checkout_Model_Session::CHECKOUT_STATE_BEGIN) { - $this->getQuote() - ->removeAllAddresses() - ->removePayment(); + $quote->removeAllAddresses()->removePayment(); $this->getCheckoutSession()->resetCheckout(); } - if (!$this->getQuote()->hasItems()) { - $this->getQuote()->getShippingAddress() - ->setCollectShippingRates(false) + if (!$quote->hasItems()) { + $quote->getShippingAddress()->setCollectShippingRates(false) ->removeAllShippingRates(); } diff --git a/app/code/core/Mage/Checkout/Model/Type/Onepage.php b/app/code/core/Mage/Checkout/Model/Type/Onepage.php index 8e3b055754b..c0fbb15f6aa 100644 --- a/app/code/core/Mage/Checkout/Model/Type/Onepage.php +++ b/app/code/core/Mage/Checkout/Model/Type/Onepage.php @@ -537,6 +537,12 @@ class Mage_Checkout_Model_Type_Onepage $quote->getShippingAddress()->setCollectShippingRates(true); } + $data['checks'] = Mage_Payment_Model_Method_Abstract::CHECK_USE_CHECKOUT + | Mage_Payment_Model_Method_Abstract::CHECK_USE_FOR_COUNTRY + | Mage_Payment_Model_Method_Abstract::CHECK_USE_FOR_CURRENCY + | Mage_Payment_Model_Method_Abstract::CHECK_ORDER_TOTAL_MIN_MAX + | Mage_Payment_Model_Method_Abstract::CHECK_ZERO_TOTAL; + $payment = $quote->getPayment(); $payment->importData($data); diff --git a/app/code/core/Mage/Checkout/controllers/MultishippingController.php b/app/code/core/Mage/Checkout/controllers/MultishippingController.php index beddd7fd7e1..e9d76b3160e 100644 --- a/app/code/core/Mage/Checkout/controllers/MultishippingController.php +++ b/app/code/core/Mage/Checkout/controllers/MultishippingController.php @@ -388,26 +388,6 @@ class Mage_Checkout_MultishippingController extends Mage_Checkout_Controller_Act $this->renderLayout(); } -// public function billingPostAction() -// { -// if(!$this->_validateBilling()) { -// return; -// } -// -// $payment = $this->getRequest()->getPost('payment'); -// try { -// $this->_getCheckout()->setPaymentMethod($payment); -// $this->_getState()->setActiveStep( -// Mage_Checkout_Model_Type_Multishipping_State::STEP_OVERVIEW -// ); -// $this->_redirect('*/*/overview'); -// } -// catch (Exception $e) { -// $this->_getCheckoutSession()->addError($e->getMessage()); -// $this->_redirect('*/*/billing'); -// } -// } - /** * Validation of selecting of billing address * @@ -445,7 +425,12 @@ class Mage_Checkout_MultishippingController extends Mage_Checkout_Controller_Act $this->_getState()->setActiveStep(Mage_Checkout_Model_Type_Multishipping_State::STEP_OVERVIEW); try { - $payment = $this->getRequest()->getPost('payment'); + $payment = $this->getRequest()->getPost('payment', array()); + $payment['checks'] = Mage_Payment_Model_Method_Abstract::CHECK_USE_FOR_MULTISHIPPING + | Mage_Payment_Model_Method_Abstract::CHECK_USE_FOR_COUNTRY + | Mage_Payment_Model_Method_Abstract::CHECK_USE_FOR_CURRENCY + | Mage_Payment_Model_Method_Abstract::CHECK_ORDER_TOTAL_MIN_MAX + | Mage_Payment_Model_Method_Abstract::CHECK_ZERO_TOTAL; $this->_getCheckout()->setPaymentMethod($payment); $this->_getState()->setCompleteStep( diff --git a/app/code/core/Mage/Checkout/controllers/OnepageController.php b/app/code/core/Mage/Checkout/controllers/OnepageController.php index 19cdbca55f3..55ec96b071b 100644 --- a/app/code/core/Mage/Checkout/controllers/OnepageController.php +++ b/app/code/core/Mage/Checkout/controllers/OnepageController.php @@ -312,8 +312,6 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action return; } if ($this->getRequest()->isPost()) { -// $postData = $this->getRequest()->getPost('billing', array()); -// $data = $this->_filterPostData($postData); $data = $this->getRequest()->getPost('billing', array()); $customerAddressId = $this->getRequest()->getPost('billing_address_id', false); @@ -323,7 +321,6 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action $result = $this->getOnepage()->saveBilling($data, $customerAddressId); if (!isset($result['error'])) { - /* check quote for virtual */ if ($this->getOnepage()->getQuote()->isVirtual()) { $result['goto_section'] = 'payment'; $result['update_section'] = array( @@ -383,9 +380,7 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action if ($this->getRequest()->isPost()) { $data = $this->getRequest()->getPost('shipping_method', ''); $result = $this->getOnepage()->saveShippingMethod($data); - /* - $result will have erro data if shipping method is empty - */ + // $result will contain error data if shipping method is empty if(!$result) { Mage::dispatchEvent('checkout_controller_onepage_save_shipping_method', array('request'=>$this->getRequest(), @@ -420,8 +415,6 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action return; } - // set payment to quote - $result = array(); $data = $this->getRequest()->getPost('payment', array()); $result = $this->getOnepage()->savePayment($data); @@ -507,9 +500,17 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action return; } } - if ($data = $this->getRequest()->getPost('payment', false)) { + + $data = $this->getRequest()->getPost('payment', array()); + if ($data) { + $data['checks'] = Mage_Payment_Model_Method_Abstract::CHECK_USE_CHECKOUT + | Mage_Payment_Model_Method_Abstract::CHECK_USE_FOR_COUNTRY + | Mage_Payment_Model_Method_Abstract::CHECK_USE_FOR_CURRENCY + | Mage_Payment_Model_Method_Abstract::CHECK_ORDER_TOTAL_MIN_MAX + | Mage_Payment_Model_Method_Abstract::CHECK_ZERO_TOTAL; $this->getOnepage()->getQuote()->getPayment()->importData($data); } + $this->getOnepage()->saveOrder(); $redirectUrl = $this->getOnepage()->getCheckout()->getRedirectUrl(); diff --git a/app/code/core/Mage/Checkout/view/frontend/layout.xml b/app/code/core/Mage/Checkout/view/frontend/layout.xml index 4c84168b6ec..29611182083 100644 --- a/app/code/core/Mage/Checkout/view/frontend/layout.xml +++ b/app/code/core/Mage/Checkout/view/frontend/layout.xml @@ -290,7 +290,7 @@ Multi address shipping checkout success One page checkout main layout --> - <checkout_onepage_index translate="label" type="page" parent="checkout_cart_index"> + <checkout_onepage_index translate="label" type="page" parent="default"> <label>One Page Checkout</label> <!-- Mage_Checkout --> <remove name="left"/> @@ -393,7 +393,7 @@ One page checkout order review block </reference> </checkout_onepage_review> - <checkout_onepage_success translate="label" type="page" parent="checkout_onepage_index"> + <checkout_onepage_success translate="label" type="page" parent="default"> <label>One Page Checkout Success</label> <reference name="root"> <action method="setTemplate"><template>2columns-right.phtml</template></action> @@ -402,7 +402,7 @@ One page checkout order review block <block type="Mage_Checkout_Block_Onepage_Success" name="checkout.success" template="success.phtml"/> </reference> </checkout_onepage_success> - <checkout_onepage_failure translate="label" type="page" parent="checkout_onepage_index"> + <checkout_onepage_failure translate="label" type="page" parent="default"> <label>One Page Checkout Failure</label> <reference name="root"> <action method="setTemplate"><template>2columns-right.phtml</template></action> diff --git a/app/code/core/Mage/Core/Controller/Varien/Action.php b/app/code/core/Mage/Core/Controller/Varien/Action.php index 77965532b0d..be990b5dad2 100755 --- a/app/code/core/Mage/Core/Controller/Varien/Action.php +++ b/app/code/core/Mage/Core/Controller/Varien/Action.php @@ -154,9 +154,20 @@ abstract class Mage_Core_Controller_Varien_Action { } + /** + * Set currently used area code + * @param string $areaCode + * @return Mage_Core_Controller_Varien_Action + */ + public function setCurrentArea($areaCode) + { + $this->_currentArea = $areaCode; + return $this; + } + public function hasAction($action) { - return is_callable(array($this, $this->getActionMethodName($action))); + return method_exists($this, $this->getActionMethodName($action)); } /** @@ -430,8 +441,7 @@ abstract class Mage_Core_Controller_Varien_Action { try { $actionMethodName = $this->getActionMethodName($action); - - if (!is_callable(array($this, $actionMethodName))) { + if (!method_exists($this, $actionMethodName)) { $actionMethodName = 'norouteAction'; } @@ -862,8 +872,6 @@ abstract class Mage_Core_Controller_Varien_Action $refererUrl = Mage::helper('Mage_Core_Helper_Data')->urlDecode($url); } - $refererUrl = Mage::helper('Mage_Core_Helper_Data')->escapeUrl($refererUrl); - if (!$this->_isUrlInternal($refererUrl)) { $refererUrl = Mage::app()->getStore()->getBaseUrl(); } diff --git a/app/code/core/Mage/Core/Controller/Varien/Front.php b/app/code/core/Mage/Core/Controller/Varien/Front.php index 45b7bdf6981..e3075426b46 100644 --- a/app/code/core/Mage/Core/Controller/Varien/Front.php +++ b/app/code/core/Mage/Core/Controller/Varien/Front.php @@ -127,7 +127,10 @@ class Mage_Core_Controller_Varien_Front extends Varien_Object { Mage::dispatchEvent('controller_front_init_before', array('front'=>$this)); - $routersInfo = Mage::app()->getStore()->getConfig(self::XML_STORE_ROUTERS_PATH); + $routersInfo = array_merge( + Mage::app()->getConfig()->getRouters(), + Mage::app()->getStore()->getConfig(self::XML_STORE_ROUTERS_PATH) + ); Magento_Profiler::start('collect_routers'); foreach ($routersInfo as $routerCode => $routerInfo) { @@ -135,7 +138,12 @@ class Mage_Core_Controller_Varien_Front extends Varien_Object continue; } if (isset($routerInfo['class'])) { - $router = new $routerInfo['class']; + $options = array(); + if (isset($routerInfo['area']) && isset($routerInfo['base_controller'])) { + $options['area'] = $routerInfo['area']; + $options['base_controller'] = $routerInfo['base_controller']; + } + $router = new $routerInfo['class']($options); if (isset($routerInfo['area'])) { $router->collectRoutes($routerInfo['area'], $routerCode); } @@ -201,7 +209,7 @@ class Mage_Core_Controller_Varien_Front extends Varien_Object // empty route supplied - return base url if (empty($routeName)) { $router = $this->getRouter('standard'); - } elseif ($this->getRouter('admin')->getFrontNameByRoute($routeName)) { + } elseif ($this->getRouter('admin') && $this->getRouter('admin')->getFrontNameByRoute($routeName)) { // try standard router url assembly $router = $this->getRouter('admin'); } elseif ($this->getRouter('standard')->getFrontNameByRoute($routeName)) { diff --git a/app/code/core/Mage/Core/Controller/Varien/Router/Admin.php b/app/code/core/Mage/Core/Controller/Varien/Router/Admin.php deleted file mode 100644 index 54f7a59a4be..00000000000 --- a/app/code/core/Mage/Core/Controller/Varien/Router/Admin.php +++ /dev/null @@ -1,132 +0,0 @@ -<?php -/** - * Magento - * - * 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@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @category Mage - * @package Mage_Core - * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) - */ - - -class Mage_Core_Controller_Varien_Router_Admin extends Mage_Core_Controller_Varien_Router_Standard -{ - /** - * Fetch default path - */ - public function fetchDefault() - { - // set defaults - $d = explode('/', $this->_getDefaultPath()); - $this->getFront()->setDefault(array( - 'module' => !empty($d[0]) ? $d[0] : '', - 'controller' => !empty($d[1]) ? $d[1] : 'index', - 'action' => !empty($d[2]) ? $d[2] : 'index' - )); - } - - /** - * Get router default request path - * @return string - */ - protected function _getDefaultPath() - { - return (string)Mage::getConfig()->getNode('default/web/default/admin'); - } - - /** - * dummy call to pass through checking - * - * @return unknown - */ - protected function _beforeModuleMatch() - { - return true; - } - - /** - * checking if we installed or not and doing redirect - * - * @return bool - */ - protected function _afterModuleMatch() - { - if (!Mage::isInstalled()) { - Mage::app()->getFrontController()->getResponse() - ->setRedirect(Mage::getUrl('install')) - ->sendResponse(); - exit; - } - return true; - } - - /** - * We need to have noroute action in this router - * not to pass dispatching to next routers - * - * @return bool - */ - protected function _noRouteShouldBeApplied() - { - return true; - } - - /** - * Check whether URL for corresponding path should use https protocol - * - * @param string $path - * @return bool - */ - protected function _shouldBeSecure($path) - { - return substr((string)Mage::getConfig()->getNode('default/web/unsecure/base_url'), 0, 5) === 'https' - || Mage::getStoreConfigFlag('web/secure/use_in_adminhtml', Mage_Core_Model_App::ADMIN_STORE_ID) - && substr((string)Mage::getConfig()->getNode('default/web/secure/base_url'), 0, 5) === 'https'; - } - - /** - * Retrieve current secure url - * - * @param Mage_Core_Controller_Request_Http $request - * @return string - */ - protected function _getCurrentSecureUrl($request) - { - return Mage::app()->getStore(Mage_Core_Model_App::ADMIN_STORE_ID) - ->getBaseUrl('link', true) . ltrim($request->getPathInfo(), '/'); - } - - /** - * Emulate custom admin url - * - * @param string $configArea - * @param bool $useRouterName - */ - public function collectRoutes($configArea, $useRouterName) - { - if ((string)Mage::getConfig()->getNode(Mage_Adminhtml_Helper_Data::XML_PATH_USE_CUSTOM_ADMIN_PATH)) { - $customUrl = (string)Mage::getConfig()->getNode(Mage_Adminhtml_Helper_Data::XML_PATH_CUSTOM_ADMIN_PATH); - $xmlPath = Mage_Adminhtml_Helper_Data::XML_PATH_ADMINHTML_ROUTER_FRONTNAME; - if ((string)Mage::getConfig()->getNode($xmlPath) != $customUrl) { - Mage::getConfig()->setNode($xmlPath, $customUrl, true); - } - } - parent::collectRoutes($configArea, $useRouterName); - } -} diff --git a/app/code/core/Mage/Core/Controller/Varien/Router/Base.php b/app/code/core/Mage/Core/Controller/Varien/Router/Base.php new file mode 100644 index 00000000000..0e4b6ecadc6 --- /dev/null +++ b/app/code/core/Mage/Core/Controller/Varien/Router/Base.php @@ -0,0 +1,499 @@ +<?php +/** + * Magento + * + * 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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category Mage + * @package Mage_Core + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +class Mage_Core_Controller_Varien_Router_Base extends Mage_Core_Controller_Varien_Router_Abstract +{ + protected $_modules = array(); + protected $_routes = array(); + protected $_dispatchData = array(); + + /** + * Current router belongs to the area + * + * @var string + */ + protected $_area; + + /** + * Base controller that belongs to area + * + * @var string + */ + protected $_baseController = null; + + public function __construct(array $options = array()) + { + $this->_area = null; + $this->_baseController = null; + + if (isset($options['area'])) { + $this->_area = $options['area']; + } + + if (isset($options['base_controller'])) { + $this->_baseController = $options['base_controller']; + } + + if (is_null($this->_area) || is_null($this->_baseController)) { + Mage::throwException("Not enough options to initialize router."); + } + } + + public function collectRoutes($configArea, $useRouterName) + { + $routers = array(); + $routersConfigNode = Mage::getConfig()->getNode($configArea.'/routers'); + if($routersConfigNode) { + $routers = $routersConfigNode->children(); + } + foreach ($routers as $routerName=>$routerConfig) { + $use = (string)$routerConfig->use; + if ($use == $useRouterName) { + $modules = array((string)$routerConfig->args->module); + if ($routerConfig->args->modules) { + foreach ($routerConfig->args->modules->children() as $customModule) { + if ($customModule) { + if ($before = $customModule->getAttribute('before')) { + $position = array_search($before, $modules); + if ($position === false) { + $position = 0; + } + array_splice($modules, $position, 0, (string)$customModule); + } elseif ($after = $customModule->getAttribute('after')) { + $position = array_search($after, $modules); + if ($position === false) { + $position = count($modules); + } + array_splice($modules, $position+1, 0, (string)$customModule); + } else { + $modules[] = (string)$customModule; + } + } + } + } + + $frontName = (string)$routerConfig->args->frontName; + $this->addModule($frontName, $modules, $routerName); + } + } + } + + public function fetchDefault() + { + $this->getFront()->setDefault(array( + 'module' => 'core', + 'controller' => 'index', + 'action' => 'index' + )); + } + + /** + * checking if this admin if yes then we don't use this router + * + * @return bool + */ + protected function _beforeModuleMatch() + { + if (Mage::app()->getStore()->isAdmin()) { + return false; + } + return true; + } + + /** + * dummy call to pass through checking + * + * @return bool + */ + protected function _afterModuleMatch() + { + return true; + } + + /** + * Match the request + * + * @param Zend_Controller_Request_Http $request + * @return boolean + */ + public function match(Zend_Controller_Request_Http $request) + { + //checking before even try to find out that current module + //should use this router + if (!$this->_beforeModuleMatch()) { + return false; + } + + $this->fetchDefault(); + + $front = $this->getFront(); + $path = trim($request->getPathInfo(), '/'); + + if ($path) { + $p = explode('/', $path); + } else { + $p = explode('/', $this->_getDefaultPath()); + } + + // get module name + if ($request->getModuleName()) { + $module = $request->getModuleName(); + } else { + if (!empty($p[0])) { + $module = $p[0]; + } else { + $module = $this->getFront()->getDefault('module'); + $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, ''); + } + } + if (!$module) { + if (Mage::app()->getStore()->isAdmin()) { + $module = 'admin'; + } else { + return false; + } + } + + /** + * Searching router args by module name from route using it as key + */ + $modules = $this->getModuleByFrontName($module); + + if ($modules === false) { + return false; + } + + // checks after we found out that this router should be used for current module + if (!$this->_afterModuleMatch()) { + return false; + } + + /** + * Going through modules to find appropriate controller + */ + $found = false; + foreach ($modules as $realModule) { + $request->setRouteName($this->getRouteByFrontName($module)); + + // get controller name + if ($request->getControllerName()) { + $controller = $request->getControllerName(); + } else { + if (!empty($p[1])) { + $controller = $p[1]; + } else { + $controller = $front->getDefault('controller'); + $request->setAlias( + Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, + ltrim($request->getOriginalPathInfo(), '/') + ); + } + } + + // get action name + if (empty($action)) { + if ($request->getActionName()) { + $action = $request->getActionName(); + } else { + $action = !empty($p[2]) ? $p[2] : $front->getDefault('action'); + } + } + + //checking if this place should be secure + $this->_checkShouldBeSecure($request, '/'.$module.'/'.$controller.'/'.$action); + + $controllerClassName = $this->_validateControllerClassName($realModule, $controller); + if (!$controllerClassName) { + continue; + } + + // instantiate controller class + $controllerInstance = Mage::getControllerInstance($controllerClassName, $request, $front->getResponse()); + + // instantiated controller must be a child of $this->_baseController + if (!($controllerInstance instanceof $this->_baseController)) { + continue; + } + + if (!$controllerInstance->hasAction($action)) { + continue; + } + + $found = true; + break; + } + + /** + * if we did not found any suitable + */ + if (!$found) { + if ($this->_noRouteShouldBeApplied()) { + $controller = 'index'; + $action = 'noroute'; + + $controllerClassName = $this->_validateControllerClassName($realModule, $controller); + if (!$controllerClassName) { + return false; + } + + // instantiate controller class + $controllerInstance = Mage::getControllerInstance($controllerClassName, $request, + $front->getResponse()); + + if (!$controllerInstance->hasAction($action)) { + return false; + } + } else { + return false; + } + } + + // set values only after all the checks are done + $request->setModuleName($module); + $request->setControllerName($controller); + $request->setActionName($action); + $request->setControllerModule($realModule); + + // set parameters from pathinfo + for ($i = 3, $l = sizeof($p); $i < $l; $i += 2) { + $request->setParam($p[$i], isset($p[$i+1]) ? urldecode($p[$i+1]) : ''); + } + + // dispatch action + $request->setDispatched(true); + /** + * Set current area code to controller instance + */ + $controllerInstance->setCurrentArea($this->_area); + $controllerInstance->dispatch($action); + + return true; + } + + /** + * Get router default request path + * @return string + */ + protected function _getDefaultPath() + { + return Mage::getStoreConfig('web/default/front'); + } + + /** + * Allow to control if we need to enable no route functionality in current router + * + * @return bool + */ + protected function _noRouteShouldBeApplied() + { + return false; + } + + /** + * Generating and validating class file name, + * class and if evrything ok do include if needed and return of class name + * + * @return mixed + */ + protected function _validateControllerClassName($realModule, $controller) + { + $controllerFileName = $this->getControllerFileName($realModule, $controller); + if (!$this->validateControllerFileName($controllerFileName)) { + return false; + } + + $controllerClassName = $this->getControllerClassName($realModule, $controller); + if (!$controllerClassName) { + return false; + } + + // include controller file if needed + if (!$this->_includeControllerClass($controllerFileName, $controllerClassName)) { + return false; + } + + return $controllerClassName; + } + + /** + * Include the file containing controller class if this class is not defined yet + * + * @param string $controllerFileName + * @param string $controllerClassName + * @return bool + */ + protected function _includeControllerClass($controllerFileName, $controllerClassName) + { + if (!class_exists($controllerClassName, false)) { + if (!file_exists($controllerFileName)) { + return false; + } + include $controllerFileName; + + if (!class_exists($controllerClassName, false)) { + throw Mage::exception('Mage_Core', Mage::helper('Mage_Core_Helper_Data')->__('Controller file was loaded but class does not exist')); + } + } + return true; + } + + public function addModule($frontName, $moduleName, $routeName) + { + $this->_modules[$frontName] = $moduleName; + $this->_routes[$routeName] = $frontName; + return $this; + } + + public function getModuleByFrontName($frontName) + { + if (isset($this->_modules[$frontName])) { + return $this->_modules[$frontName]; + } + return false; + } + + public function getModuleByName($moduleName, $modules) + { + foreach ($modules as $module) { + if ($moduleName === $module || (is_array($module) + && $this->getModuleByName($moduleName, $module))) { + return true; + } + } + return false; + } + + public function getFrontNameByRoute($routeName) + { + if (isset($this->_routes[$routeName])) { + return $this->_routes[$routeName]; + } + return false; + } + + public function getRouteByFrontName($frontName) + { + return array_search($frontName, $this->_routes); + } + + public function getControllerFileName($realModule, $controller) + { + $parts = explode('_', $realModule); + $realModule = implode('_', array_splice($parts, 0, 2)); + $file = Mage::getModuleDir('controllers', $realModule); + if (count($parts)) { + $file .= DS . implode(DS, $parts); + } + $file .= DS.uc_words($controller, DS).'Controller.php'; + return $file; + } + + public function validateControllerFileName($fileName) + { + if ($fileName && is_readable($fileName) && false===strpos($fileName, '//')) { + return true; + } + return false; + } + + public function getControllerClassName($realModule, $controller) + { + $class = $realModule.'_'.uc_words($controller).'Controller'; + return $class; + } + + public function rewrite(array $p) + { + $rewrite = Mage::getConfig()->getNode('global/rewrite'); + if ($module = $rewrite->{$p[0]}) { + if (!$module->children()) { + $p[0] = trim((string)$module); + } + } + if (isset($p[1]) && ($controller = $rewrite->{$p[0]}->{$p[1]})) { + if (!$controller->children()) { + $p[1] = trim((string)$controller); + } + } + if (isset($p[2]) && ($action = $rewrite->{$p[0]}->{$p[1]}->{$p[2]})) { + if (!$action->children()) { + $p[2] = trim((string)$action); + } + } + + return $p; + } + + /** + * Check that request uses https protocol if it should. + * Function redirects user to correct URL if needed. + * + * @param Mage_Core_Controller_Request_Http $request + * @param string $path + * @return void + */ + protected function _checkShouldBeSecure($request, $path = '') + { + if (!Mage::isInstalled() || $request->getPost()) { + return; + } + + if ($this->_shouldBeSecure($path) && !$request->isSecure()) { + $url = $this->_getCurrentSecureUrl($request); + if ($request->getRouteName() != 'adminhtml' && Mage::app()->getUseSessionInUrl()) { + $url = Mage::getSingleton('Mage_Core_Model_Url')->getRedirectUrl($url); + } + + Mage::app()->getFrontController()->getResponse() + ->setRedirect($url) + ->sendResponse(); + exit; + } + } + + protected function _getCurrentSecureUrl($request) + { + if ($alias = $request->getAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS)) { + return Mage::getBaseUrl('link', true).ltrim($alias, '/'); + } + + return Mage::getBaseUrl('link', true).ltrim($request->getPathInfo(), '/'); + } + + /** + * Check whether URL for corresponding path should use https protocol + * + * @param string $path + * @return bool + */ + protected function _shouldBeSecure($path) + { + return substr(Mage::getStoreConfig('web/unsecure/base_url'), 0, 5) === 'https' + || Mage::getStoreConfigFlag('web/secure/use_in_frontend') + && substr(Mage::getStoreConfig('web/secure/base_url'), 0, 5) == 'https' + && Mage::getConfig()->shouldUrlBeSecure($path); + } +} diff --git a/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php b/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php index 658b21b3aeb..8cfe0a237df 100644 --- a/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php +++ b/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php @@ -24,81 +24,19 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -class Mage_Core_Controller_Varien_Router_Standard extends Mage_Core_Controller_Varien_Router_Abstract +/** +* @TODO This is temporary router. When required areas will be created this router should be removed or renamed and become a part of an area + */ +class Mage_Core_Controller_Varien_Router_Standard extends Mage_Core_Controller_Varien_Router_Base { - protected $_modules = array(); - protected $_routes = array(); - protected $_dispatchData = array(); - - public function collectRoutes($configArea, $useRouterName) - { - $routers = array(); - $routersConfigNode = Mage::getConfig()->getNode($configArea.'/routers'); - if($routersConfigNode) { - $routers = $routersConfigNode->children(); - } - foreach ($routers as $routerName=>$routerConfig) { - $use = (string)$routerConfig->use; - if ($use == $useRouterName) { - $modules = array((string)$routerConfig->args->module); - if ($routerConfig->args->modules) { - foreach ($routerConfig->args->modules->children() as $customModule) { - if ($customModule) { - if ($before = $customModule->getAttribute('before')) { - $position = array_search($before, $modules); - if ($position === false) { - $position = 0; - } - array_splice($modules, $position, 0, (string)$customModule); - } elseif ($after = $customModule->getAttribute('after')) { - $position = array_search($after, $modules); - if ($position === false) { - $position = count($modules); - } - array_splice($modules, $position+1, 0, (string)$customModule); - } else { - $modules[] = (string)$customModule; - } - } - } - } - - $frontName = (string)$routerConfig->args->frontName; - $this->addModule($frontName, $modules, $routerName); - } - } - } - - public function fetchDefault() - { - $this->getFront()->setDefault(array( - 'module' => 'core', - 'controller' => 'index', - 'action' => 'index' - )); - } - - /** - * checking if this admin if yes then we don't use this router - * - * @return bool - */ - protected function _beforeModuleMatch() + public function __construct(array $options = array()) { - if (Mage::app()->getStore()->isAdmin()) { - return false; - } - return true; } - /** - * dummy call to pass through checking - * - * @return bool - */ - protected function _afterModuleMatch() + public function collectRoutes($configArea, $useRouterName) { - return true; + $this->_area = $configArea; + parent::collectRoutes($configArea, $useRouterName); } /** @@ -251,208 +189,4 @@ class Mage_Core_Controller_Varien_Router_Standard extends Mage_Core_Controller_V return true; } - - /** - * Get router default request path - * @return string - */ - protected function _getDefaultPath() - { - return Mage::getStoreConfig('web/default/front'); - } - - /** - * Allow to control if we need to enable no route functionality in current router - * - * @return bool - */ - protected function _noRouteShouldBeApplied() - { - return false; - } - - /** - * Generating and validating class file name, - * class and if evrything ok do include if needed and return of class name - * - * @return mixed - */ - protected function _validateControllerClassName($realModule, $controller) - { - $controllerFileName = $this->getControllerFileName($realModule, $controller); - if (!$this->validateControllerFileName($controllerFileName)) { - return false; - } - - $controllerClassName = $this->getControllerClassName($realModule, $controller); - if (!$controllerClassName) { - return false; - } - - // include controller file if needed - if (!$this->_includeControllerClass($controllerFileName, $controllerClassName)) { - return false; - } - - return $controllerClassName; - } - - /** - * Include the file containing controller class if this class is not defined yet - * - * @param string $controllerFileName - * @param string $controllerClassName - * @return bool - */ - protected function _includeControllerClass($controllerFileName, $controllerClassName) - { - if (!class_exists($controllerClassName, false)) { - if (!file_exists($controllerFileName)) { - return false; - } - include $controllerFileName; - - if (!class_exists($controllerClassName, false)) { - throw Mage::exception('Mage_Core', Mage::helper('Mage_Core_Helper_Data')->__('Controller file was loaded but class does not exist')); - } - } - return true; - } - - public function addModule($frontName, $moduleName, $routeName) - { - $this->_modules[$frontName] = $moduleName; - $this->_routes[$routeName] = $frontName; - return $this; - } - - public function getModuleByFrontName($frontName) - { - if (isset($this->_modules[$frontName])) { - return $this->_modules[$frontName]; - } - return false; - } - - public function getModuleByName($moduleName, $modules) - { - foreach ($modules as $module) { - if ($moduleName === $module || (is_array($module) - && $this->getModuleByName($moduleName, $module))) { - return true; - } - } - return false; - } - - public function getFrontNameByRoute($routeName) - { - if (isset($this->_routes[$routeName])) { - return $this->_routes[$routeName]; - } - return false; - } - - public function getRouteByFrontName($frontName) - { - return array_search($frontName, $this->_routes); - } - - public function getControllerFileName($realModule, $controller) - { - $parts = explode('_', $realModule); - $realModule = implode('_', array_splice($parts, 0, 2)); - $file = Mage::getModuleDir('controllers', $realModule); - if (count($parts)) { - $file .= DS . implode(DS, $parts); - } - $file .= DS.uc_words($controller, DS).'Controller.php'; - return $file; - } - - public function validateControllerFileName($fileName) - { - if ($fileName && is_readable($fileName) && false===strpos($fileName, '//')) { - return true; - } - return false; - } - - public function getControllerClassName($realModule, $controller) - { - $class = $realModule.'_'.uc_words($controller).'Controller'; - return $class; - } - - public function rewrite(array $p) - { - $rewrite = Mage::getConfig()->getNode('global/rewrite'); - if ($module = $rewrite->{$p[0]}) { - if (!$module->children()) { - $p[0] = trim((string)$module); - } - } - if (isset($p[1]) && ($controller = $rewrite->{$p[0]}->{$p[1]})) { - if (!$controller->children()) { - $p[1] = trim((string)$controller); - } - } - if (isset($p[2]) && ($action = $rewrite->{$p[0]}->{$p[1]}->{$p[2]})) { - if (!$action->children()) { - $p[2] = trim((string)$action); - } - } - - return $p; - } - - /** - * Check that request uses https protocol if it should. - * Function redirects user to correct URL if needed. - * - * @param Mage_Core_Controller_Request_Http $request - * @param string $path - * @return void - */ - protected function _checkShouldBeSecure($request, $path = '') - { - if (!Mage::isInstalled() || $request->getPost()) { - return; - } - - if ($this->_shouldBeSecure($path) && !$request->isSecure()) { - $url = $this->_getCurrentSecureUrl($request); - if ($request->getRouteName() != 'adminhtml' && Mage::app()->getUseSessionInUrl()) { - $url = Mage::getSingleton('Mage_Core_Model_Url')->getRedirectUrl($url); - } - - Mage::app()->getFrontController()->getResponse() - ->setRedirect($url) - ->sendResponse(); - exit; - } - } - - protected function _getCurrentSecureUrl($request) - { - if ($alias = $request->getAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS)) { - return Mage::getBaseUrl('link', true).ltrim($alias, '/'); - } - - return Mage::getBaseUrl('link', true).ltrim($request->getPathInfo(), '/'); - } - - /** - * Check whether URL for corresponding path should use https protocol - * - * @param string $path - * @return bool - */ - protected function _shouldBeSecure($path) - { - return substr(Mage::getStoreConfig('web/unsecure/base_url'), 0, 5) === 'https' - || Mage::getStoreConfigFlag('web/secure/use_in_frontend') - && substr(Mage::getStoreConfig('web/secure/base_url'), 0, 5) == 'https' - && Mage::getConfig()->shouldUrlBeSecure($path); - } } diff --git a/app/code/core/Mage/Core/Helper/Cookie.php b/app/code/core/Mage/Core/Helper/Cookie.php index 8c61fe9bd3a..0d3f670a0a0 100644 --- a/app/code/core/Mage/Core/Helper/Cookie.php +++ b/app/code/core/Mage/Core/Helper/Cookie.php @@ -43,6 +43,11 @@ class Mage_Core_Helper_Cookie extends Mage_Core_Helper_Abstract */ const XML_PATH_COOKIE_RESTRICTION = 'web/cookie/cookie_restriction'; + /** + * Cookie restriction lifetime configuration path + */ + const XML_PATH_COOKIE_RESTRICTION_LIFETIME = 'web/cookie/cookie_restriction_lifetime'; + /** * Check if cookie restriction notice should be displayed * @@ -78,4 +83,14 @@ class Mage_Core_Helper_Cookie extends Mage_Core_Helper_Abstract $unSerializedList = unserialize($serializedList); return is_array($unSerializedList) ? $unSerializedList : array(); } + + /** + * Get cookie restriction lifetime (in seconds) + * + * @return int + */ + public function getCookieRestrictionLifetime() + { + return (int)Mage::getStoreConfig(self::XML_PATH_COOKIE_RESTRICTION_LIFETIME); + } } diff --git a/app/code/core/Mage/Core/Model/Config.php b/app/code/core/Mage/Core/Model/Config.php index 93a2d77ffc5..4fd7e113aeb 100644 --- a/app/code/core/Mage/Core/Model/Config.php +++ b/app/code/core/Mage/Core/Model/Config.php @@ -181,6 +181,13 @@ class Mage_Core_Model_Config extends Mage_Core_Model_Config_Base */ protected $_allowedModules = array(); + /** + * Areas allowed to use + * + * @var array + */ + protected $_allowedAreas = null; + /** * Class construct * @@ -1526,4 +1533,73 @@ class Mage_Core_Model_Config extends Mage_Core_Model_Config_Base { return $this->getModelClassName($modelClass); } + + /** + * Get allowed areas + * + * @return array + */ + public function getAreas() + { + if (is_null($this->_allowedAreas) ) { + $this->_loadAreas(); + } + + return $this->_allowedAreas; + } + + /** + * Load allowed areas from config + * + * @return Mage_Core_Model_Config + */ + protected function _loadAreas() + { + $this->_allowedAreas = array(); + $nodeAreas = $this->getNode('global/areas'); + if (is_object($nodeAreas)) { + foreach ($nodeAreas->asArray() as $areaCode => $areaInfo) { + if (empty($areaCode) + || (!isset($areaInfo['base_controller']) || empty($areaInfo['base_controller'])) + || (!isset($areaInfo['routers']) || !is_array($areaInfo['routers'])) + ) { + continue; + } + + foreach ($areaInfo['routers'] as $routerKey => $routerInfo) { + if (empty($routerKey) || !isset($routerInfo['class'])) { + unset($areaInfo[$routerKey]); + } + } + if (empty($areaInfo['routers'])) { + continue; + } + + $this->_allowedAreas[$areaCode] = array( + 'base_controller' => $areaInfo['base_controller'], + 'routers' => $areaInfo['routers'] + ); + } + } + + return $this; + } + + /** + * Get routers from config + * + * @return array + */ + public function getRouters() + { + $routers = array(); + foreach ($this->getAreas() as $areaCode => $areaInfo) { + foreach ($areaInfo['routers'] as $routerKey => $routerInfo ) { + $routerInfo['area'] = $areaCode; + $routerInfo['base_controller'] = $areaInfo['base_controller']; + $routers[$routerKey] = $routerInfo; + } + } + return $routers; + } } diff --git a/app/code/core/Mage/Core/Model/Email/Template/Filter.php b/app/code/core/Mage/Core/Model/Email/Template/Filter.php index d2bb49d7b5b..fe3a5511aa7 100644 --- a/app/code/core/Mage/Core/Model/Email/Template/Filter.php +++ b/app/code/core/Mage/Core/Model/Email/Template/Filter.php @@ -179,7 +179,7 @@ class Mage_Core_Model_Email_Template_Filter extends Varien_Filter_Template if (isset($blockParameters['output'])) { $method = $blockParameters['output']; } - if (!isset($method) || !is_string($method) || !is_callable(array($block, $method))) { + if (!isset($method) || !is_string($method) || !method_exists($block, $method)) { $method = 'toHtml'; } return $block->$method(); diff --git a/app/code/core/Mage/Core/Model/Source/Email/Variables.php b/app/code/core/Mage/Core/Model/Source/Email/Variables.php index f28ccf54b1a..ebedfb8a3fe 100644 --- a/app/code/core/Mage/Core/Model/Source/Email/Variables.php +++ b/app/code/core/Mage/Core/Model/Source/Email/Variables.php @@ -115,7 +115,7 @@ class Mage_Core_Model_Source_Email_Variables foreach ($this->_configVariables as $variable) { $optionArray[] = array( 'value' => '{{config path="' . $variable['value'] . '"}}', - 'label' => Mage::helper('Mage_Core_Helper_Data')->__('%s', $variable['label']) + 'label' => $variable['label'] ); } if ($withGroup && $optionArray) { diff --git a/app/code/core/Mage/Core/etc/config.xml b/app/code/core/Mage/Core/etc/config.xml index a9e4a835ba0..41a4068f956 100644 --- a/app/code/core/Mage/Core/etc/config.xml +++ b/app/code/core/Mage/Core/etc/config.xml @@ -236,10 +236,6 @@ </trans_email> <web> <routers> - <admin> - <area>admin</area> - <class>Mage_Core_Controller_Varien_Router_Admin</class> - </admin> <standard> <area>frontend</area> <class>Mage_Core_Controller_Varien_Router_Standard</class> @@ -334,10 +330,6 @@ <default> <web> <routers> - <admin> - <area>admin</area> - <class>Mage_Core_Controller_Varien_Router_Admin</class> - </admin> <standard> <area>frontend</area> <class>Mage_Core_Controller_Varien_Router_Standard</class> diff --git a/app/code/core/Mage/Core/etc/jstranslator.xml b/app/code/core/Mage/Core/etc/jstranslator.xml index 4168a824889..2b61d502d36 100644 --- a/app/code/core/Mage/Core/etc/jstranslator.xml +++ b/app/code/core/Mage/Core/etc/jstranslator.xml @@ -72,6 +72,9 @@ <validate-date translate="message" module="Mage_Core"> <message>Please enter a valid date.</message> </validate-date> + <validate-date-range translate="message" module="Mage_Core"> + <message>The From Date value should be less than or equal to the To Date value.</message> + </validate-date-range> <validate-email translate="message" module="Mage_Core"> <message>Please enter a valid email address. For example johndoe@domain.com.</message> </validate-email> diff --git a/app/code/core/Mage/Core/etc/system.xml b/app/code/core/Mage/Core/etc/system.xml index 5e4e9e35058..ed19322736d 100644 --- a/app/code/core/Mage/Core/etc/system.xml +++ b/app/code/core/Mage/Core/etc/system.xml @@ -1054,7 +1054,7 @@ <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> <fields> - <use_store translate="label"> + <use_store translate="label comment"> <label>Add Store Code to Urls</label> <frontend_type>select</frontend_type> <source_model>Mage_Adminhtml_Model_System_Config_Source_Yesno</source_model> @@ -1063,6 +1063,7 @@ <show_in_default>1</show_in_default> <show_in_website>0</show_in_website> <show_in_store>0</show_in_store> + <comment><![CDATA[<strong style="color:red">Warning!</strong> When using Store Code in URLs, in some cases system may not work properly if URLs without Store Codes are specified in the third party services (e.g. PayPal etc.).]]></comment> </use_store> <redirect_to_base translate="label"> <label>Auto-redirect to Base URL</label> diff --git a/app/code/core/Mage/Customer/view/frontend/layout.xml b/app/code/core/Mage/Customer/view/frontend/layout.xml index 93722c1e3d3..099a010c415 100644 --- a/app/code/core/Mage/Customer/view/frontend/layout.xml +++ b/app/code/core/Mage/Customer/view/frontend/layout.xml @@ -161,7 +161,7 @@ New customer registration <action method="setHeaderTitle" translate="title" module="Mage_Customer"><title>Send confirmation link</title></action> </reference> <reference name="content"> - <block type="Mage_Core_Block_Template" name="accountConfirmation" template="Mage_customer::form/confirmation.phtml"/> + <block type="Mage_Core_Block_Template" name="accountConfirmation" template="Mage_Customer::form/confirmation.phtml"/> </reference> </customer_account_confirmation> diff --git a/app/code/core/Mage/Dataflow/Model/Convert/Action/Abstract.php b/app/code/core/Mage/Dataflow/Model/Convert/Action/Abstract.php index 4a226296c74..98146963208 100644 --- a/app/code/core/Mage/Dataflow/Model/Convert/Action/Abstract.php +++ b/app/code/core/Mage/Dataflow/Model/Convert/Action/Abstract.php @@ -219,22 +219,16 @@ abstract class Mage_Dataflow_Model_Convert_Action_Abstract public function run(array $args=array()) { if ($method = $this->getParam('method')) { -// print $method; - if (!is_callable(array($this->getContainer(), $method))) { - $this->getContainer()->addException('Unable to run action method: '.$method, Mage_Dataflow_Model_Convert_Exception::FATAL); + if (!method_exists($this->getContainer(), $method)) { + $this->getContainer()->addException( + 'Unable to run action method: ' . $method, + Mage_Dataflow_Model_Convert_Exception::FATAL + ); } -// printf('<pre>call %s::%s()</pre>', __CLASS__, __FUNCTION__); -// printf('<pre>call %s::%s()</pre>', get_class($this->getContainer()), $method); - -// print '<pre>CONTAINER = '; -// print get_class($this->getContainer()); -// print '</pre>'; - $this->getContainer()->addException('Starting '.get_class($this->getContainer()).' :: '.$method); if ($this->getParam('from')) { -// print '$this->getParam(\'from\') = ' . $this->getParam('from'); $this->getContainer()->setData($this->getContainer($this->getParam('from'))->getData()); } diff --git a/app/code/core/Mage/Dataflow/Model/Convert/Parser/Csv.php b/app/code/core/Mage/Dataflow/Model/Convert/Parser/Csv.php index 620d516d409..dd91d214fce 100644 --- a/app/code/core/Mage/Dataflow/Model/Convert/Parser/Csv.php +++ b/app/code/core/Mage/Dataflow/Model/Convert/Parser/Csv.php @@ -67,7 +67,7 @@ class Mage_Dataflow_Model_Convert_Parser_Csv extends Mage_Dataflow_Model_Convert return $this; } - if (!is_callable(array($adapter, $adapterMethod))) { + if (!method_exists($adapter, $adapterMethod)) { $message = Mage::helper('Mage_Dataflow_Helper_Data')->__('Method "%s" not defined in adapter %s.', $adapterMethod, $adapterName); $this->addException($message, Mage_Dataflow_Model_Convert_Exception::FATAL); return $this; diff --git a/app/code/core/Mage/Dataflow/Model/Convert/Parser/Xml/Excel.php b/app/code/core/Mage/Dataflow/Model/Convert/Parser/Xml/Excel.php index 476335c51a2..d8e57434481 100644 --- a/app/code/core/Mage/Dataflow/Model/Convert/Parser/Xml/Excel.php +++ b/app/code/core/Mage/Dataflow/Model/Convert/Parser/Xml/Excel.php @@ -68,7 +68,7 @@ class Mage_Dataflow_Model_Convert_Parser_Xml_Excel extends Mage_Dataflow_Model_C return $this; } - if (!is_callable(array($adapter, $adapterMethod))) { + if (!method_exists($adapter, $adapterMethod)) { $message = Mage::helper('Mage_Dataflow_Helper_Data')->__('Method "%s" was not defined in adapter %s.', $adapterMethod, $adapterName); $this->addException($message, Mage_Dataflow_Model_Convert_Exception::FATAL); return $this; diff --git a/app/code/core/Mage/DesignEditor/Block/Toolbar/PageType.php b/app/code/core/Mage/DesignEditor/Block/Toolbar/PageType.php index 039a161213d..d73d7ff8f7e 100644 --- a/app/code/core/Mage/DesignEditor/Block/Toolbar/PageType.php +++ b/app/code/core/Mage/DesignEditor/Block/Toolbar/PageType.php @@ -76,12 +76,33 @@ class Mage_DesignEditor_Block_Toolbar_PageType extends Mage_Core_Block_Template public function getSelectedPageType() { if ($this->_selectedPageType === null) { - $pageHandles = $this->getLayout()->getUpdate()->getPageHandles(); - $this->_selectedPageType = end($pageHandles); + $this->_selectedPageType = false; + $layoutUpdate = $this->getLayout()->getUpdate(); + $pageHandles = $layoutUpdate->getPageHandles(); + if ($pageHandles) { + $this->_selectedPageType = end($pageHandles); + } else { + foreach (array_reverse($layoutUpdate->getHandles()) as $handle) { + if ($layoutUpdate->pageTypeExists($handle)) { + $this->_selectedPageType = $handle; + break; + } + } + } } return $this->_selectedPageType; } + /** + * Retrieve label for the currently selected page type + * + * @return string|false + */ + public function getSelectedPageTypeLabel() + { + return $this->escapeHtml($this->getLayout()->getUpdate()->getPageTypeLabel($this->getSelectedPageType())); + } + /** * Set the name of the currently selected page type * diff --git a/app/code/core/Mage/DesignEditor/Block/Toolbar/Skin.php b/app/code/core/Mage/DesignEditor/Block/Toolbar/Skin.php index 806f699d51a..19b7d26526b 100644 --- a/app/code/core/Mage/DesignEditor/Block/Toolbar/Skin.php +++ b/app/code/core/Mage/DesignEditor/Block/Toolbar/Skin.php @@ -52,25 +52,6 @@ class Mage_DesignEditor_Block_Toolbar_Skin extends Mage_Core_Block_Template return $currentSkin == $skin; } - /** - * Returns string with JSON configuration for skin selector - * - * @return string - */ - public function getJsonConfig() - { - $encodedUrl = Mage::helper('Mage_Core_Helper_Url')->getEncodedUrl(); - $config = array( - 'selectId' => $this->getSelectHtmlId(), - 'changeSkinUrl' => $this->getUrl('design/editor/skin'), - 'backParams' => array( - Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $encodedUrl - ) - ); - return Mage::helper('Mage_Core_Helper_Data') - ->jsonEncode($config); - } - /** * Returns html id of the skin select control * diff --git a/app/code/core/Mage/DesignEditor/Model/Layout.php b/app/code/core/Mage/DesignEditor/Model/Layout.php index 0e82426f01c..29fdcc2d3a6 100644 --- a/app/code/core/Mage/DesignEditor/Model/Layout.php +++ b/app/code/core/Mage/DesignEditor/Model/Layout.php @@ -42,6 +42,16 @@ class Mage_DesignEditor_Model_Layout 'Mage_DesignEditor_Block_', 'Mage_Checkout_Block_Onepage_', 'Mage_Paypal_Block_Express_Review_Details', + 'Mage_Poll_Block_ActivePoll', + 'Mage_Sales_Block_Guest_Links', + 'Mage_Catalog_Block_Product_Compare_Sidebar', + 'Mage_Checkout_Block_Cart_Sidebar', + 'Mage_Wishlist_Block_Customer_Sidebar', + 'Mage_Reports_Block_Product_Viewed', + 'Mage_Reports_Block_Product_Compared', + 'Mage_Sales_Block_Reorder_Sidebar', + 'Mage_Paypal_Block_Express_Shortcut', + 'Mage_PaypalUk_Block_Express_Shortcut', ); /** diff --git a/app/code/core/Mage/DesignEditor/view/frontend/css/styles.css b/app/code/core/Mage/DesignEditor/view/frontend/css/styles.css index b8b0e1e77c0..94d388e365d 100644 --- a/app/code/core/Mage/DesignEditor/view/frontend/css/styles.css +++ b/app/code/core/Mage/DesignEditor/view/frontend/css/styles.css @@ -18,22 +18,78 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package pro_default + * @package Mage_DesignEditor * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ - -/* Visual Design Editor ================================================================== */ #vde_toolbar { + position: fixed; + margin-top: -54pt; + width: 100%; z-index: 999; - font:11px/1.35 Arial, Helvetica, sans-serif; - color:#444; - background: white; - padding-top: 5px; - padding-bottom: 5px; -} -#vde_toolbar a.vde_button { border: 1px solid #777777; background: #ffffff; text-decoration: none; padding: 0 7px 1px 7px; text-align: center; } -#vde_toolbar a.vde_button:hover { background: #eeeeee; } + font:10pt Arial, Helvetica, sans-serif; + color:#555; + text-align:left; + box-shadow:0 0 4pt 1pt #cbcbcb; +} +body { + margin-top: 54pt; +} +.vde_breadcrumbs, #vde_toolbar_row { + padding:0 3em; + height:26pt; + line-height:26pt; + vertical-align:middle; +} +.vde_breadcrumbs { + text-transform:uppercase; + background:white; +} + +#vde_toolbar_row { + background:#f0efe9; + border-top:1pt solid #dddcd8; + border-bottom:1pt solid #dddcd8; + position:relative; + z-index:100; +} + +#vde_toolbar_row .vde_toolbar_cell { + float: left; + margin-left:-11pt; + margin-right:10pt; + border-right:1pt solid transparent; + border-left:1pt solid transparent; + padding:0 10pt; + position:relative; +} +#vde_toolbar_row .vde_toolbar_cell:hover, #vde_toolbar_row .vde_toolbar_cell.active { + background-color:white; + border-right:1pt solid #deddd9; + border-left:1pt solid #deddd9; +} +#vde_toolbar_buttons { + float: right; + z-index: 1000; + position: relative; + line-height:21pt; + padding:2pt 0; +} +#vde_toolbar_buttons a.vde_button { + display:block; + border:1px solid #c9c6be; + box-shadow:0 0 1pt 0 #c9c6be; + border-radius:3pt; + padding:0 1.7em; + color:#555; + text-decoration:none; + background-image:url(../images/button.png); + background-size:contain; +} +#vde_toolbar_buttons a.vde_button:hover { + box-shadow:0 0 1pt 1pt #c9c6be; + background-image:url(../images/button_hover.png); +} #vde_toolbar .item-msg { border-style: solid; border-width: 1px; @@ -45,73 +101,156 @@ color: red; } -#vde_page_types_hierarchy { - position: absolute; - max-height: 300px; /* maximal allowed height */ - overflow-y: auto; /* display vertical scrollbar when content exceeds the maximal allowed height */ - overflow-x: hidden; /* don't display horizontal scrollbar */ - padding-right: 20px; /* make sure vertical scrollbar doesn't overlap list items */ - z-index: 1000; - text-align: left; - display: none; - border: 1px solid #aaa; - background-color: #fff; -} - .vde_element_wrapper { - margin-bottom: 1px; - padding: 4px; - border: 1px solid #4682B4; -} - -.vde_element_wrapper.vde_container { - padding-bottom: 3px; - border: 1px dashed #228B22; -} -.vde_container > .vde_element_title { - background-color: #228B22; -} -.vde_element_wrapper.vde_container.vde_draggable { - border-style: solid; + margin-bottom: 3px; + padding: 0px 2px 2px 2px; + border: 2px solid #69a8cf; + border-radius: 4px; } .vde_element_title { - margin: -4px -4px 4px -4px; - padding: 2px; - background-color: #4682B4; + margin: -2px 0px 0px -4px; + padding: 0px; + border-width: 2px 5px 6px 7px; + border-image: url(../images/block.png) 2 5 6 7 stretch stretch; + border-image-outset: fill; + -webkit-border-image: url(../images/block.png) 2 5 6 7 stretch stretch; + -moz-border-image: url(../images/block.png) 2 5 6 7 stretch stretch; color: white; - font-size: 11px; + font-size: 8pt; + font-weight: bold; max-width: 150px; - height: 13px; + height: 18px; overflow: hidden; text-align: left; - line-height: 12px; + line-height: 17px; cursor: default; } - +.vde_element_wrapper.vde_container { + border: 2px solid #7bc361; +} +.vde_container > .vde_element_title { + border-image: url(../images/container.png) 2 5 6 7 stretch stretch; + -webkit-border-image: url(../images/container.png) 2 5 6 7 stretch stretch; + -moz-border-image: url(../images/container.png) 2 5 6 7 stretch stretch; +} +.vde_element_wrapper.vde_stub { + border: 2px solid #92978d; +} +.vde_stub > .vde_element_title { + border-image: url(../images/stub.png) 2 5 6 7 stretch stretch; + -webkit-border-image: url(../images/stub.png) 2 5 6 7 stretch stretch; + -moz-border-image: url(../images/stub.png) 2 5 6 7 stretch stretch; +} .vde_container.vde_container_hover { border-color: #006400; } .vde_container.vde_container_hover > .vde_element_title { - background-color: #006400; + border-image: url(../images/container_hover.png) 2 5 6 7 stretch stretch; + -webkit-border-image: url(../images/container_hover.png) 2 5 6 7 stretch stretch; + -moz-border-image: url(../images/container_hover.png) 2 5 6 7 stretch stretch; } - .vde_placeholder { background-color: #F5F5DC; } +.vde_toolbar_cell_title { + font-weight: bold; + cursor: pointer; + padding-right:12pt; + background: url(../images/arrow_down.png) right center no-repeat; +} +.vde_toolbar_cell.active .vde_toolbar_cell_title { + background-image: url(../images/arrow_up.png); +} +.vde_toolbar_cell_value { + font-weight: normal; +} +#vde_toolbar_row .vde_toolbar_cell_content, #vde_toolbar_row .vde_toolbar_cell_content * { + color:#f0efe9; +} +.vde_toolbar_cell_content { + display: none; + position: absolute; + top:2.5em; + left:0; + background: #494949; + padding:.5em 0; + z-index: 190; + min-width:20em; + margin-top:1pt; + border-radius:0 0 5pt 5pt; + -moz-box-shadow:0 1pt 2pt 1pt #6c6c6c; + -webkit-box-shadow:0 1pt 2pt 1pt #6c6c6c; + box-shadow:0 1pt 2pt 1pt #6c6c6c; +} +.vde_toolbar_cell.active .vde_toolbar_cell_content { + display: block; +} +.vde_toolbar_cell_content > div { + white-space: nowrap; + vertical-align: middle; + padding: 0 10px; +} +.vde_toolbar_cell_content .vde_cell_list_item { + padding-left:18pt; + cursor: pointer; +} +.vde_toolbar_cell_content .vde_cell_list_group { + padding-left:5pt; + font-style:italic; + cursor:default; +} +.vde_toolbar_cell_content .vde_cell_list_item:hover, #vde_page_types_tree .jstree-clicked, #vde_page_types_tree .jstree-hovered { + background-color:#7b7b7b; +} +.vde_toolbar_cell_content .checked { + background:url(../images/checked.png) no-repeat 5pt center; +} +.vde_breadcrumbs a { + font-weight: bold; + text-decoration: none; + color: #2483c7; +} -.vde_toolbar_row { - margin-bottom: 5px; +.vde_breadcrumbs a:hover { + text-decoration: underline; } -.vde_toolbar_cell { - float: left; - padding-left: 10px; - padding-right: 10px; - border-left: 1px solid black; +.vde_breadcrumbs .vde_breadcrumbs_separator { + margin:0 0.3em; } -#vde_toolbar:after, -.vde_toolbar_row:after { - display:block; content:"."; clear:both; font-size:0; line-height:0; height:0; overflow:hidden; +#visual_design_editor_skin a { + display:block; + text-decoration:none; +} +.ui-sortable-helper { + opacity: 0.9; +} + +#vde_page_types_hierarchy .vde_toolbar_cell_content { + padding: 1em .5em 1em 0; +} +#vde_page_types_tree { + max-height: 30em; /* max allowed height */ + overflow: hidden; /* don't display native scrollbars */ + padding-right: .5em; + text-align: left; + background-color: transparent; +} +#vde_page_types_tree li { + overflow: hidden; +} +#vde_page_types_tree a { + margin-left: .5em; + padding: .5em; + width: 100%; +} +#vde_page_types_tree .jstree-clicked, #vde_page_types_tree .jstree-hovered { + border: none; +} +#vde_page_types_tree .jstree-closed > .jstree-icon { + background: url(../images/jstree_plus_minus.png) top left no-repeat; +} +#vde_page_types_tree .jstree-open > .jstree-icon { + background: url(../images/jstree_plus_minus.png) top right no-repeat; } -/* ======================================================================================= */ diff --git a/app/code/core/Mage/DesignEditor/view/frontend/images/arrow_down.png b/app/code/core/Mage/DesignEditor/view/frontend/images/arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..74b9101acd79117141a3a7bd19f723f553b82590 GIT binary patch literal 1056 zcmaJ=Pe>F|93C<={DTBbWT#<-5^Cq4t~!I;vhM8WLTk&q<WiSrXP)k`&b(>n*^Xig z+9mK1)FHYA9g;{&@Dv4>5#doX$S#%QA&}HVV4>EVb$9L1Ht^>C;rqVd_xruyyA|&~ zUsrvynjna}XqS}0a}6GqM~~qDokzzn;i&<IQ>X{_p`2_1BB;VNAfvk64-!CDhpsJv z4uYtlv}6jUVi!aO>a^@)Xh%0On;<#@jwvfyfXFoH*9<?k@nVi5HPuh``eJO%41tW+ zHEe;N;qIg|oK*ys3Y;T591#oX0Li4I4;Z%S_^G_Eh}Z5hLy>t1%KE8&Q>j>-3_%N! zKAQC^Y%52$w$NM)E3^n_NuK3chT|Ew&C9W(uT5k*vhYzjnx*!M2`N&Dg?D}`gODjQ zOfHwBbImlg`Wa3T1cv1qp7&ye*B&yE?05~kv8W&cTd_0~Y0w~DML7)zk)Og&_fyc# zlB{7D%7hEXII_ubH0!2R1jb_jhw6F>ZKDJ@@cU0;J2_+mCIM_XXes#O`WoF(rWmq- zjG&c-aG+Slcm^V9XP`-jdVDlT_G*R-b9Npdi-}RgMzW!RsN|=x0<CGP7>f9UtvuV( z-p;Wc7v_X^U#L@R=G%g-uZ@lHMXm&uK^+*V$W;%xzOr1m6?79vmVl*Q2WrHEI+;&d z)XIC|%jy-lYI!fsWw{JC!?+jw*F_hPaQC>&QrqH9squk<yWPTVy)id+3O|XvQ7M>o zKBY%~t{l6lX+Pd?1V%TxFU0)(eEsG7*$)kYmtzZ?d%IOz+c%f4tgo++?Ck8+PEJnN z{@&YFwl}|4RGhAQH&I#B_jq<@W+#2<o5$mEo}-11w+{kiqrbMd8sB`L8{<6VOWf<} zm9@1SRg0UeZzihhPkdZnj(Z+9MKbrEO;0_UwHN1wrs^O;z9Lp{htFicAKr7{Y&6_0 JJ?*?Y{s*LKWcmOA literal 0 HcmV?d00001 diff --git a/app/code/core/Mage/DesignEditor/view/frontend/images/arrow_up.png b/app/code/core/Mage/DesignEditor/view/frontend/images/arrow_up.png new file mode 100644 index 0000000000000000000000000000000000000000..002eeb9762fa6b0018ec6dc2b03f693de10ba790 GIT binary patch literal 980 zcmaJ=U2D@&7>-t_c2)+;Kv6hm;FZnE$@-PBxPGLwMKeZQwt_cHle0E#$%)CCO?%}B zlL@=?CkS4Nuz?^d=&j(bH~t8F>z$r-ZRdqGaB@C)p67ku_q^xD+Ungz{92sjxJ0$0 z)!01C#@X{T?Emuh{5qSi(sGm5$rkMzKIRG*X<<-xj5e-e!|FZ!ikCPp#@mf1ZR+<G zlQ@DAVT91}7@OmkmP5}lw=o4R+_qhnAAJ1G1KU#hjkGT6UI};XO5exz{%XVQZ=15k zFW&)6p~3_lObrk^J8qzaDnHa!*g86fJQzagw#pxyYU*pCM0^a=f|xYL3<8;yfKsBI zl5Yb^L?T2I6thVrD(S2uA~5=R7R|S|l$y3Oip6#+-=Wk~AnbO#LU&Ohej6fLmZ2y? zNlG$AGU&O~2$OEGFjmlTVEVR4ZQ_DR(P)ufs`AX~aSDz%k#&PnnOMPKXm}6_VwBPt zsO$fSI?e<g&>BAR`%mGZ(ep5@;ehP=CcC(;g(#G#lzePZ;x`D{8CP+wLnsM4!~>;z zT0mgKb}iBkhIn09s%}6H*Thv#<(YzD+m@0l6f@;qb}^TeatM`CQ7$jaD{`h-$Yr#0 zHaF&K#N2hTOUGR6gqxbmjatF+SY!?R_9JYq_{0Ijloflr7c^CG#I>e-k*0DXGXtZG z{p+H~N346I<)m%dX43fBW!>(xw!U)k<~@57m8w=~gg;sr6A7G;?c_gQ*njo-*Nvky zv-5k|C(Tp)gVTr7(af#u@j{;4AH)vlKD6kb_~qPpaH)Q9@8;3-2l;QYxlQh!Is0?( S+2!BSJFAvgwYSC1r+)yO0xjzR literal 0 HcmV?d00001 diff --git a/app/code/core/Mage/DesignEditor/view/frontend/images/block.png b/app/code/core/Mage/DesignEditor/view/frontend/images/block.png new file mode 100644 index 0000000000000000000000000000000000000000..14fa330a3322b8cb627fdf00967543f7bca8b6e3 GIT binary patch literal 3363 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 literal 0 HcmV?d00001 diff --git a/app/code/core/Mage/DesignEditor/view/frontend/images/button.png b/app/code/core/Mage/DesignEditor/view/frontend/images/button.png new file mode 100644 index 0000000000000000000000000000000000000000..0bf9ef7d7dc3d119a63be819815af42a04dd4e07 GIT binary patch literal 360 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{O!2~4hKV8-UQk(@Ik;M!Qd`Cc-ajG_-G*FPe z#M9T6{SJ$Wn5ekE+?uywA=ii!$I_CF{33>x>&|!pg?LJULN2Mr$wiq3C7Jno48oj> z%0O{0khpVxL1j^9dPWJu8vZj@Kv6!hXi;h+NU1_eW^O8j>34okpbRHSCOAK>q&%@G zl_9p^KS((@*znBa<eWsH(jtcK2e$MBg*iaN;fY0gnR)392c)011I5@O`b&$FQyISg zZ+;C^=A56Ko0?a`@a@dB{Xj7`kg|}>lAKhA74I&o14WEIT^vI=X2$kdaxo|fFt;!G zU%#p~qQAAf!}Wxt&^4LNwd_4Yh7nQ9a&-sh$DY4=E&QulE0_6$M}~rbfZ7>6UHx3v IIVCg!0GFw7Qvd(} literal 0 HcmV?d00001 diff --git a/app/code/core/Mage/DesignEditor/view/frontend/images/button_hover.png b/app/code/core/Mage/DesignEditor/view/frontend/images/button_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..026f59ba9468785886845de576afc755cedd8f3b GIT binary patch literal 360 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{O!2~4hKV8-UQk(@Ik;M!Qd`Cc-ajG_-G*FPe z#M9T6{SJ$Wn25Gy)<bQukZVMVV`)i7ei6gUb!R+)LOdlvA(zzR<f6=ilFa-(24PM` zWuQ10NZdKUpt2}4J)?wS4gVP{peP?$v?w(Zq*S3KGdGpN^gBN%P=*sE6P%w`Ql40p z$`D)dAEcZcY<OmIa!w*pX%WNr16%rm!W<ys@Wi6L%)E4l1Jcjhfnw|s{iQ|8sSIEL zH@}7{bI#ArP0cG|_;zO6exMi|NLff`Nlq%mig%aPfg;A9E{-7_GegfP3N<(g964a{ z|Nr~O8=OpMR?S%V;ZFNZP62~oqMfVVe#mCd<__BZrpn=pxT}Zqo77+#f1q{-Pgg&e IbxsLQ0QIqQPyhe` literal 0 HcmV?d00001 diff --git a/app/code/core/Mage/DesignEditor/view/frontend/images/checked.png b/app/code/core/Mage/DesignEditor/view/frontend/images/checked.png new file mode 100644 index 0000000000000000000000000000000000000000..52633ea72fe5ddf867277a72d14dbb9c3620ff84 GIT binary patch literal 1051 zcmaJ=O-K|`93QkK7ncmWWQC9M6u9%XyRI`ie(h*3H6rVRdkA!P=DAKf^TwHHJ8Kl1 zA(@x#5D1-u4iOO@BM*8oBD(c)s35557K8*LA=w+<)eda~Z{7#L-|zqX|KI=J7#chi z4mE`+iVCL&lr)(e$Os*(BmYwC>Mt@K!+lvijK*<6b0O7Zpd17#OUuJF)QsZv3)n$X zwX~VZ;;ed3(vihz0fzA{hp;KCqsw<ReG+1jgL%`I>F+D6G%yXB9*L`*>LlTWIWX(O z;n~5AK0B$42Hn*OI(&%;SP*N#x29}Q@@0BQS0d}+n5DrE1W(HJuBog#1d_;wAkJ_R zoonMkTa4jjoEQ^Zfxz(`%L^=*i13^gPe>dO${$UlxyHDZR{G1a$WEpwFm@!CEffk& zA<7^(&+?)uvYfyQLWCe9UeU&yAF;ibih=??-8CI-A{zvXS`N)%nI=wmQ?Q&pS=%d@ zi4=_WHHYOHE=Z{YRMr1OEo%?$;WXU$`%hsnQ*<Dkh8~)6b#igzEkP(pO1e<P$ju-$ zRjK081j5LhKn_R_#~B`sn6`lm-VR<>rIhVq&DLQ`k!hm9n5H4cc~Ob=a6)^#kl^_~ zzE>2)_IM%|O}59|Vo|ZeRggYoK^s@N#y&S%l^e8z<&ek<bj^#<=y#C?c2bti>R!02 zdS$Lr-3wop%MvqeaIt?~bmfS2Pq5r;Te8_}d}xzycS&0d&7peoByOgZo{axKx3#_9 zReNi#eqod^#TwUIyU!n9Unwo$S;}>Sj|bNCrRDIqrjEsDS2s^IcFkQdO6F4S=Xc!? z=kH}h3(Z^CDP#I^9Rydxw=tFDLFd7*&+mR{&=1vayxqP(cDgb8=@s=FpM0>%HohGD xar|lN=$qo@CpFiOoLxUfZCnDs7a~8Yng(k0i@dl!ue!l=P4x{bk9x=E{s3!(P{05H literal 0 HcmV?d00001 diff --git a/app/code/core/Mage/DesignEditor/view/frontend/images/container.png b/app/code/core/Mage/DesignEditor/view/frontend/images/container.png new file mode 100644 index 0000000000000000000000000000000000000000..2d38b19590241e447b58c7952a33ec72d28cef99 GIT binary patch literal 3296 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 literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_breadcrumb_active.png b/app/code/core/Mage/DesignEditor/view/frontend/images/container_hover.png similarity index 79% rename from app/design/frontend/default/iphone/skin/default/images/bg_breadcrumb_active.png rename to app/code/core/Mage/DesignEditor/view/frontend/images/container_hover.png index b7ca6b0dd1ec82f73945bfe60338e715f5455b2c..8d42bf0694de35e8dc9990c570e9aeb0493afead 100644 GIT binary patch delta 581 zcmV-L0=oT}7SS0YiBL{Q4GJ0x0000DNk~Le0000I0000Q2nGNE0J@zFI<X;h3X`M? zD}Mp}Nkl<Zc-pL#+iDY06o$XGXVO@6s7+&SEux_0B85_@@8BB<y%T#Cd;*`uJL{c- zPvAocQc!3?P--edLz~02O=kAmUd-e)qUi*GSnM^M+25>xEoRI1ZW&+$XaLWWe3qKP z8{k!vBU?{P_x+st_OM=Kb+byol0!`VwtrKH7#XcY^-n{7eLm&umm{K39~e)*`(mW= zXtT!hPMP-Q8QQWl%Q50pd0a-M#^J$X<I~&DOCzv%yS_rV)5Q)VT<B(o9fb5cJyz>g z1oi;&5vtyzhrO_5krLr884#*~=L5J%aiJrtG}K`lgVauKUR!Q#LgI=-oeQL67k@Fx zhKdfdgKRi1Dd~|zqwGB*A`P0aN0T2PO>Mp&=`_e%#YS_0GzHS|KUIW{?PVVuX=@I( z*{3$yj@Vjc=d)(hAnT?!ul<W?YWz6nvNlzbbF?&!Rs@+E=PZda@vY%#0T|oYcR?qh zSSTT4P}P|MLa|UH=myxnz6YFtet#V8=N6kU?yhgJc4uvLHw*EqZfscuhL4xQ1t%vz zXg8yMzzI-U-^%YS-OD{+D997z$@1*pxU)gvKD3X+*FO*XAAzm_H-Qpx3n&5$fcfVw z3j?4BoC96pN&pYY12+<g4@eS!OgxDwfn5Q8KxN{Pm&D&7X_!sIZSR)d?-l_7il8=> T8q*Q!00000NkvXXu0mjf*?R@k delta 134 zcmca8IYUgbGr-TCmrII^fq{Y7)59eQNQ2m{9Be?cCZ#rGqhc`^FH5?kuOkD)#=e^0 zfs-ds<kItGF!pqD45_%4^yB}3duFS;FE1|Eml&?;`uF$ucllVuFjs?~H4@8}N{&{D gDr$qw`v0GqA-`m`aLiWaqd+c$r>mdKI;Vst0AlwnaR2}S diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_breadcrumb.png b/app/code/core/Mage/DesignEditor/view/frontend/images/jstree_plus_minus.png similarity index 89% rename from app/design/frontend/default/iphone/skin/default/images/bg_breadcrumb.png rename to app/code/core/Mage/DesignEditor/view/frontend/images/jstree_plus_minus.png index c90682c5fac3e96e3f644d14788552fb568978ae..af4d3ec39a3f658d61d847920d9191b0d9383cf5 100644 GIT binary patch delta 221 zcmdlW_Et=>Gr-TCmrII^fq{Y7)59eQNUH#`5C<EOG*+(B*r-^{HF*h_PW=o|7srr_ zTS<TZ|F=J!z~sZz%)?{FzEL1(!jvgr=FgOT^zP>7=LUQ`nt%MLkgTYvbiaIIMRNh8 z+mj*<W#zy2?Ck7aOn!cTY-wU1LBBu!H14|7FK;iAc4kJW>B9K^WxXqy-hFzi&6D^r zu_r><6sY_ji%<U%+Z~H}q%|~7{MX~>o;mHA*s+T-X0H|~&R^kP!@&r2;{X553^(#s V&&6d&{RVOwJYD@<);T3K0RZ*TQ@#KI delta 157 zcmaDWwn0p>Gr-TCmrII^fq{Y7)59eQNV5PjI|mz()K7hLVWVO(7cWb?qpu?a!^Xav z-+_}SPvp{1@b+|Z45_%~b7CW}gM$deh3AX5w0q_9{8Te&xTVAvFvD%p<$DrBYmcd( z`o5|oV&j9x7D@J7LKhw$31O1T`M<;Pio9OW2~O*(lnQo+{mI<1eXK=VKpPo6UHx3v IIVCg!0673Ql>h($ diff --git a/app/code/core/Mage/DesignEditor/view/frontend/images/stub.png b/app/code/core/Mage/DesignEditor/view/frontend/images/stub.png new file mode 100644 index 0000000000000000000000000000000000000000..3c30037a3b3328ef35a3ccc07772711713c2cddd GIT binary patch literal 3353 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 literal 0 HcmV?d00001 diff --git a/app/code/core/Mage/DesignEditor/view/frontend/js/design_editor.js b/app/code/core/Mage/DesignEditor/view/frontend/js/design_editor.js index 4ef9b0cb0ef..8ed5cdc103e 100644 --- a/app/code/core/Mage/DesignEditor/view/frontend/js/design_editor.js +++ b/app/code/core/Mage/DesignEditor/view/frontend/js/design_editor.js @@ -24,44 +24,6 @@ */ (function ($) { - /** - * Class for managing skin selector control - */ - DesignEditorSkinSelector = function (config) { - this._init(config); - this._addListener(); - return this; - }; - - DesignEditorSkinSelector.prototype._init = function (config) { - this._skinControlSelector = '#' + config.selectId; - this._backParams = config.backParams; - this.changeSkinUrl = config.changeSkinUrl; - return this; - }; - - DesignEditorSkinSelector.prototype._addListener = function () { - var thisObj = this; - $(this._skinControlSelector).change( - function () {thisObj.changeSkin()} - ); - return this; - }; - - DesignEditorSkinSelector.prototype.changeSkin = function () { - var separator = /\?/.test(this.changeSkinUrl) ? '&' : '?'; - - var params = {skin: $(this._skinControlSelector).val()}; - for (var i in this._backParams) { - params[i] = this._backParams[i]; - } - - var url = this.changeSkinUrl + separator + $.param(params); - - window.location.href = url; - return this; - }; - /** * Class for design editor */ diff --git a/app/code/core/Mage/DesignEditor/view/frontend/layout.xml b/app/code/core/Mage/DesignEditor/view/frontend/layout.xml index 15eb44ecf5d..c54609a2eee 100644 --- a/app/code/core/Mage/DesignEditor/view/frontend/layout.xml +++ b/app/code/core/Mage/DesignEditor/view/frontend/layout.xml @@ -34,19 +34,18 @@ <action method="addJs"><file>Mage_DesignEditor::js/design_editor.js</file></action> <action method="addJs"><file>jquery/jstree/jquery.jstree.js</file></action> <action method="addJs"><file>jquery/jquery-ui-1.8.18.custom.min.js</file></action> + <action method="addJs"><file>jquery/slimScroll/slimScroll.min.js</file></action> <action method="addCss"><file>Mage_DesignEditor::css/styles.css</file></action> </reference> <!-- Toolbar block has been intentionally declared outside of containers to be rendered manually --> <block type="Mage_DesignEditor_Block_Toolbar" name="design_editor_toolbar" template="toolbar.phtml"> - <block type="Mage_Core_Block_Template" name="design_editor_toolbar_row1" template="Mage_DesignEditor::toolbar/row.phtml"> + <block type="Mage_DesignEditor_Block_Toolbar_Breadcrumbs" name="design_editor_toolbar_breadcrumbs" template="toolbar/breadcrumbs.phtml"/> + <block type="Mage_Core_Block_Template" name="design_editor_toolbar_row" template="Mage_DesignEditor::toolbar/row.phtml"> + <block type="Mage_DesignEditor_Block_Toolbar_PageType" name="design_editor_toolbar_page_types" template="toolbar/page_types.phtml"/> <block type="Mage_DesignEditor_Block_Toolbar_Skin" name="design_editor_toolbar_skin" template="toolbar/skin.phtml"/> <block type="Mage_Core_Block_Template" name="design_editor_toolbar_highlighting" template="Mage_DesignEditor::toolbar/highlighting.phtml"/> <block type="Mage_DesignEditor_Block_Toolbar_Exit" name="design_editor_toolbar_exit" template="toolbar/exit.phtml"/> </block> - <block type="Mage_Core_Block_Template" name="design_editor_toolbar_row2" template="Mage_DesignEditor::toolbar/row.phtml"> - <block type="Mage_DesignEditor_Block_Toolbar_Breadcrumbs" name="design_editor_toolbar_breadcrumbs" template="toolbar/breadcrumbs.phtml"/> - <block type="Mage_DesignEditor_Block_Toolbar_PageType" name="design_editor_toolbar_page_types" template="toolbar/page_types.phtml"/> - </block> </block> </design_editor_toolbar> diff --git a/app/code/core/Mage/DesignEditor/view/frontend/stub.phtml b/app/code/core/Mage/DesignEditor/view/frontend/stub.phtml index 0d5ad4dc30e..3129e4a1ff0 100644 --- a/app/code/core/Mage/DesignEditor/view/frontend/stub.phtml +++ b/app/code/core/Mage/DesignEditor/view/frontend/stub.phtml @@ -24,9 +24,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> -<div class="block-stub" style="padding:0 0 .5ex 0;margin:1px 1px 0 1ex;border:1px solid red;"> -<div style="line-height:1em;"> - <span style="background-color:black;color:white;cursor:pointer;"><?php echo $this->getNameInLayout() ?></span> -</div> -<div style="padding-top:.5ex;"><?php echo $this->getChildHtml() ?></div> +<div class="vde_element_wrapper vde_stub"> + <div class="vde_element_title"><?php echo $this->getNameInLayout() ?></div> + <div><?php echo $this->getChildHtml() ?></div> </div> diff --git a/app/code/core/Mage/DesignEditor/view/frontend/toolbar.phtml b/app/code/core/Mage/DesignEditor/view/frontend/toolbar.phtml index da44ab2512f..ab4d9a8a2f3 100644 --- a/app/code/core/Mage/DesignEditor/view/frontend/toolbar.phtml +++ b/app/code/core/Mage/DesignEditor/view/frontend/toolbar.phtml @@ -34,7 +34,24 @@ </div> <script type="text/javascript"> -jQuery(document).ready(function () { - designEditor = new DesignEditor(); -}); +(function ($) { + $(document).ready(function () { + designEditor = new DesignEditor(); + + $('.vde_toolbar_cell_title').click(function(){ + var cellElement = $(this).parents('.vde_toolbar_cell'); + var active = cellElement.hasClass('active'); + $('.vde_toolbar_cell').removeClass('active'); + if (!active) { + cellElement.addClass('active'); + cellElement.trigger('activate_toolbar_cell.vde'); + } + }); + $(document).bind('mousedown', function (e) { + if (!$(e.target).parents('.vde_toolbar_cell').length) { + $('.vde_toolbar_cell').removeClass('active'); + } + }); + }); +})(jQuery); </script> diff --git a/app/code/core/Mage/DesignEditor/view/frontend/toolbar/breadcrumbs.phtml b/app/code/core/Mage/DesignEditor/view/frontend/toolbar/breadcrumbs.phtml index 9cb21ede19d..b628db8a981 100644 --- a/app/code/core/Mage/DesignEditor/view/frontend/toolbar/breadcrumbs.phtml +++ b/app/code/core/Mage/DesignEditor/view/frontend/toolbar/breadcrumbs.phtml @@ -25,12 +25,11 @@ */ ?> <?php /** @var $this Mage_DesignEditor_Block_Toolbar_Breadcrumbs */ ?> -<div> - <span><?php echo $this->__('Current Location:'); ?></span> +<div class="vde_breadcrumbs"> <?php $isFirstItem = true; ?> <?php foreach ($this->getBreadcrumbs() as $breadcrumb) : ?> <?php if (!$isFirstItem) : ?> - <span>/</span> + <span class="vde_breadcrumbs_separator">/</span> <?php endif; ?> <?php if ($breadcrumb['url']) : ?> <a href="<?php echo $breadcrumb['url']; ?>"><?php echo $breadcrumb['label']; ?></a> diff --git a/app/code/core/Mage/DesignEditor/view/frontend/toolbar/exit.phtml b/app/code/core/Mage/DesignEditor/view/frontend/toolbar/exit.phtml index 958e9fa8f97..eb455a55fe9 100644 --- a/app/code/core/Mage/DesignEditor/view/frontend/toolbar/exit.phtml +++ b/app/code/core/Mage/DesignEditor/view/frontend/toolbar/exit.phtml @@ -24,8 +24,8 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> -<div> - <a href="<?php echo $this->getExitUrl(); ?>" title="<?php echo $this->__('Exit'); ?>" class="vde_button"> - <?php echo $this->__('Exit'); ?> +<div id="vde_toolbar_buttons"> + <a href="<?php echo $this->getExitUrl(); ?>" title="<?php echo $this->__('Quit'); ?>" class="vde_button"> + <?php echo $this->__('Quit'); ?> </a> </div> diff --git a/app/code/core/Mage/DesignEditor/view/frontend/toolbar/highlighting.phtml b/app/code/core/Mage/DesignEditor/view/frontend/toolbar/highlighting.phtml index 0bd125aa3f8..55ceeaf54d2 100644 --- a/app/code/core/Mage/DesignEditor/view/frontend/toolbar/highlighting.phtml +++ b/app/code/core/Mage/DesignEditor/view/frontend/toolbar/highlighting.phtml @@ -24,15 +24,18 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> -<div> - <input type="checkbox" checked="checked" id="vde_highlighting"/> - <label for="vde_highlighting"><?php echo $this->__('Highlight elements'); ?></label> +<div class="vde_toolbar_cell"> + <div class="vde_toolbar_cell_title"><?php echo $this->__('View Options'); ?></div> + <div class="vde_toolbar_cell_content"> + <div id="vde_highlighting" class="vde_cell_list_item checked"><?php echo $this->__('Highlight Elements'); ?></div> + </div> </div> <script type="text/javascript"> - jQuery(document).ready(function () { - jQuery('#vde_highlighting').on('click', null, function (event) { - designEditor.highlight(jQuery(this).prop('checked')); - }); +jQuery(document).ready(function () { + jQuery('#vde_highlighting').click(function(){ + jQuery(this).toggleClass('checked'); + designEditor.highlight(jQuery(this).hasClass('checked')); }); +}); </script> diff --git a/app/code/core/Mage/DesignEditor/view/frontend/toolbar/page_types.phtml b/app/code/core/Mage/DesignEditor/view/frontend/toolbar/page_types.phtml index 6447ce32241..343610bbdf2 100644 --- a/app/code/core/Mage/DesignEditor/view/frontend/toolbar/page_types.phtml +++ b/app/code/core/Mage/DesignEditor/view/frontend/toolbar/page_types.phtml @@ -25,43 +25,53 @@ */ ?> <?php /** @var $this Mage_DesignEditor_Block_Toolbar_PageType */ ?> -<div id="vde_page_types_hierarchy"> - <?php echo $this->renderPageTypes(); ?> -</div> -<div> - <?php echo $this->__('Page Type:'); ?> - <button id="vde_page_types_control"><?php echo $this->__('Select a Page Type'); ?></button> +<div id="vde_page_types_hierarchy" class="vde_toolbar_cell"> + <div class="vde_toolbar_cell_title"> + <?php echo $this->__('Page:'); ?> + <span class="vde_toolbar_cell_value"><?php echo $this->getSelectedPageTypeLabel(); ?></span> + </div> + <div class="vde_toolbar_cell_content"> + <div id="vde_page_types_tree"><?php echo $this->renderPageTypes(); ?></div> + </div> </div> <script type="text/javascript"> (function ($) { $(document).ready(function () { - $("#vde_page_types_hierarchy").jstree({ + var treeElement = $("#vde_page_types_tree"); + treeElement.jstree({ ui: { select_limit: 1, selected_parent_close: false + }, + themes: { + dots: false, + icons: false } }).bind('select_node.jstree', function (e, data) { var selectedListItem = data.rslt.obj; - $('#vde_page_types_control').text(selectedListItem.children('a').text()); - if ($(this).is(':visible')) { - $(this).hide(); + var cellElement = $(this).parents('.vde_toolbar_cell'); + cellElement.find('.vde_toolbar_cell_value').text($.trim(selectedListItem.children('a').text())); + if (cellElement.hasClass('active')) { + cellElement.removeClass('active'); window.location = selectedListItem.children('a').attr('href'); } }); - $('#vde_page_types_control').bind('click', function (event) { - var controlPos = $(this).offset(); - var controlHeight = $(this).outerHeight(); - $("#vde_page_types_hierarchy").css({ - left: controlPos.left, - top: controlPos.top + controlHeight - }).slideToggle(); - }); <?php if ($this->getSelectedPageType()) : ?> - $("#vde_page_types_hierarchy").bind('loaded.jstree', function (e, data) { + treeElement.bind('loaded.jstree', function (e, data) { var treeInstance = data.inst; treeInstance.select_node($(this).find('li[rel="<?php echo $this->getSelectedPageType(); ?>"]')); }); <?php endif; ?> + $('#vde_page_types_hierarchy').one('activate_toolbar_cell.vde', function () { + /* At the time of applying the scroll bar, the underlying element should be visible */ + treeElement.slimScroll({ + color: '#cccccc', + alwaysVisible: true, + opacity: 1, + height: 'auto', + size: 9 + }); + }); }); })(jQuery); </script> diff --git a/app/code/core/Mage/DesignEditor/view/frontend/toolbar/row.phtml b/app/code/core/Mage/DesignEditor/view/frontend/toolbar/row.phtml index 51d479e0f16..8c58c04d568 100644 --- a/app/code/core/Mage/DesignEditor/view/frontend/toolbar/row.phtml +++ b/app/code/core/Mage/DesignEditor/view/frontend/toolbar/row.phtml @@ -25,11 +25,9 @@ */ ?> <?php /** @var $this Mage_Core_Block_Template */ ?> -<div class="vde_toolbar_row"> +<div id="vde_toolbar_row"> <?php $layout = $this->getLayout(); ?> <?php foreach ($this->getChildNames() as $name): ?> - <div class="vde_toolbar_cell"> <?php echo $layout->renderElement($name) ?> - </div> <?php endforeach; ?> </div> diff --git a/app/code/core/Mage/DesignEditor/view/frontend/toolbar/skin.phtml b/app/code/core/Mage/DesignEditor/view/frontend/toolbar/skin.phtml index 0492beb0f58..ace970b6332 100644 --- a/app/code/core/Mage/DesignEditor/view/frontend/toolbar/skin.phtml +++ b/app/code/core/Mage/DesignEditor/view/frontend/toolbar/skin.phtml @@ -25,24 +25,23 @@ */ ?> <?php /** @var $this Mage_DesignEditor_Block_Toolbar_Skin */ ?> -<div class="skin-selector"> - <?php echo Mage::helper('Mage_DesignEditor_Helper_Data')->__('Skin:'); ?> - <select id="<?php echo $this->getSelectHtmlId(); ?>"> - <?php foreach ($this->getOptions() as $optGroup): ?> - <optgroup label="<?php echo $this->escapeHtml($optGroup['label']) ?>"> +<div id="skin_selector" class="vde_toolbar_cell"> + <div class="vde_toolbar_cell_title"> + <?php echo Mage::helper('Mage_DesignEditor_Helper_Data')->__('Theme:'); ?> + <span class="vde_toolbar_cell_value"><?php echo Mage::getDesign()->getDesignTheme(); ?></span> + </div> + <div class="vde_toolbar_cell_content"> + <dl id="<?php echo $this->getSelectHtmlId(); ?>"> + <?php foreach ($this->getOptions() as $optGroup): ?> + <dt class="vde_cell_list_group"><?php echo $this->escapeHtml($optGroup['label']) ?></dt> <?php foreach ($optGroup['value'] as $option): ?> - <?php $selected = $this->isSkinSelected($option['value']) ? 'selected="selected"' : ''; ?> - <option value="<?php echo $this->escapeHtml($option['value']); ?>" <?php echo $selected; ?>> - <?php echo $this->escapeHtml($option['label']); ?> - </option> + <?php $checked = $this->isSkinSelected($option['value']) ? ' checked' : '' ?> + <dd class="vde_cell_list_item<?php echo $checked ?>"> + <?php $url = $this->getUrl('design/editor/skin', array('_query' => array('skin' => $option['value']))) ?> + <a href="<?php echo $url?>"><?php echo $this->escapeHtml($option['label']); ?></a> + </dd> <?php endforeach; ?> - </optgroup> - <?php endforeach; ?> - </select> + <?php endforeach; ?> + </dl> + </div> </div> - -<script type="text/javascript"> -jQuery(document).ready(function () { - new DesignEditorSkinSelector(<?php echo $this->getJsonConfig() ?>); -}); -</script> diff --git a/app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php b/app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php index 9cae03bad8a..7ea54146ce5 100644 --- a/app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php +++ b/app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php @@ -955,10 +955,10 @@ class Mage_ImportExport_Model_Import_Entity_Product extends Mage_ImportExport_Mo $sku = $rowData[self::COL_SKU]; } foreach ($this->_linkNameToId as $linkName => $linkId) { + $productId = $this->_newSku[$sku]['entity_id']; + $productIds[] = $productId; if (isset($rowData[$linkName . 'sku'])) { - $productId = $this->_newSku[$sku]['entity_id']; - $productIds[] = $productId; - $linkedSku = $rowData[$linkName . 'sku']; + $linkedSku = $rowData[$linkName . 'sku']; if ((isset($this->_newSku[$linkedSku]) || isset($this->_oldSku[$linkedSku])) && $linkedSku != $sku) { @@ -992,7 +992,7 @@ class Mage_ImportExport_Model_Import_Entity_Product extends Mage_ImportExport_Mo if (Mage_ImportExport_Model_Import::BEHAVIOR_APPEND != $this->getBehavior() && $productIds) { $adapter->delete( $mainTable, - $adapter->quoteInto('product_id IN (?)', array_keys($productIds)) + $adapter->quoteInto('product_id IN (?)', array_unique($productIds)) ); } if ($linkRows) { diff --git a/app/code/core/Mage/ImportExport/view/adminhtml/import/form/before.phtml b/app/code/core/Mage/ImportExport/view/adminhtml/import/form/before.phtml index c29b9aa9e82..80a5973c8a7 100644 --- a/app/code/core/Mage/ImportExport/view/adminhtml/import/form/before.phtml +++ b/app/code/core/Mage/ImportExport/view/adminhtml/import/form/before.phtml @@ -107,7 +107,14 @@ break; case 'innerHTML': case 'value': - $H(pair.value).each(function(val) {if ($(val.key)) $(val.key)[pair.key] = val.value;}); + $H(pair.value).each(function(val) { + var el = $(val.key); + if (el) { + el[pair.key] = val.value; + // if element does not visible + el.offsetWidth || el.up('div.entry-edit').show(); + } + }); break; case 'removeClassName': case 'addClassName': diff --git a/app/code/core/Mage/Oauth/Helper/Data.php b/app/code/core/Mage/Oauth/Helper/Data.php index 305287439bb..f659106e28d 100644 --- a/app/code/core/Mage/Oauth/Helper/Data.php +++ b/app/code/core/Mage/Oauth/Helper/Data.php @@ -242,4 +242,60 @@ class Mage_Oauth_Helper_Data extends Mage_Core_Helper_Abstract ) ); } + + /** + * Is current authorize page is simple + * + * @return boolean + */ + protected function _getIsSimple() + { + $simple = false; + if (stristr($this->_getRequest()->getActionName(), 'simple') + || !is_null($this->_getRequest()->getParam('simple', null)) + ) { + $simple = true; + } + + return $simple; + } + + /** + * Get authorize endpoint url + * + * @param string $userType + * @return string + */ + public function getAuthorizeUrl($userType) + { + $simple = $this->_getIsSimple(); + + if (Mage_Oauth_Model_Token::USER_TYPE_CUSTOMER == $userType) { + if ($simple) { + $route = self::ENDPOINT_AUTHORIZE_CUSTOMER_SIMPLE; + } else { + $route = self::ENDPOINT_AUTHORIZE_CUSTOMER; + } + } elseif (Mage_Oauth_Model_Token::USER_TYPE_ADMIN == $userType) { + if ($simple) { + $route = self::ENDPOINT_AUTHORIZE_ADMIN_SIMPLE; + } else { + $route = self::ENDPOINT_AUTHORIZE_ADMIN; + } + } else { + throw new Exception('Invalid user type.'); + } + + return $this->_getUrl($route, array('_query' => array('oauth_token' => $this->getOauthToken()))); + } + + /** + * Retrieve oauth_token param from request + * + * @return string|null + */ + public function getOauthToken() + { + return $this->_getRequest()->getParam('oauth_token', null); + } } diff --git a/app/code/core/Mage/Oauth/Model/Observer.php b/app/code/core/Mage/Oauth/Model/Observer.php index 1cb3b4321b5..c3ef32b503a 100644 --- a/app/code/core/Mage/Oauth/Model/Observer.php +++ b/app/code/core/Mage/Oauth/Model/Observer.php @@ -33,52 +33,6 @@ */ class Mage_Oauth_Model_Observer { - /** - * Is current authorize page is simple - * - * @return boolean - */ - protected function _getIsSimple() - { - $simple = false; - if (stristr(Mage::app()->getRequest()->getActionName(), 'simple') - || !is_null(Mage::app()->getRequest()->getParam('simple', null)) - ) { - $simple = true; - } - - return $simple; - } - - /** - * Get authorize endpoint url - * - * @param string $userType - * @return string - */ - protected function _getAuthorizeUrl($userType) - { - $simple = $this->_getIsSimple(); - - if (Mage_Oauth_Model_Token::USER_TYPE_CUSTOMER == $userType) { - if ($simple) { - $route = Mage_Oauth_Helper_Data::ENDPOINT_AUTHORIZE_CUSTOMER_SIMPLE; - } else { - $route = Mage_Oauth_Helper_Data::ENDPOINT_AUTHORIZE_CUSTOMER; - } - } elseif (Mage_Oauth_Model_Token::USER_TYPE_ADMIN == $userType) { - if ($simple) { - $route = Mage_Oauth_Helper_Data::ENDPOINT_AUTHORIZE_ADMIN_SIMPLE; - } else { - $route = Mage_Oauth_Helper_Data::ENDPOINT_AUTHORIZE_ADMIN; - } - } else { - throw new Exception('Invalid user type.'); - } - - return Mage::getUrl($route, array('_query' => array('oauth_token' => $this->_getOauthToken()))); - } - /** * Retrieve oauth_token param from request * @@ -86,7 +40,7 @@ class Mage_Oauth_Model_Observer */ protected function _getOauthToken() { - return Mage::app()->getRequest()->getParam('oauth_token', null); + return Mage::helper('Mage_Oauth_Helper_Data')->getOauthToken(); } /** @@ -98,7 +52,7 @@ class Mage_Oauth_Model_Observer { if (null !== $this->_getOauthToken()) { $userType = Mage_Oauth_Model_Token::USER_TYPE_CUSTOMER; - $url = $this->_getAuthorizeUrl($userType); + $url = Mage::helper('Mage_Oauth_Helper_Data')->getAuthorizeUrl($userType); Mage::app()->getResponse() ->setRedirect($url) ->sendHeaders() @@ -116,7 +70,7 @@ class Mage_Oauth_Model_Observer { if (null !== $this->_getOauthToken()) { $userType = Mage_Oauth_Model_Token::USER_TYPE_ADMIN; - $url = $this->_getAuthorizeUrl($userType); + $url = Mage::helper('Mage_Oauth_Helper_Data')->getAuthorizeUrl($userType); Mage::app()->getResponse() ->setRedirect($url) ->sendHeaders() @@ -138,7 +92,7 @@ class Mage_Oauth_Model_Observer $session->addError($observer->getException()->getMessage()); $userType = Mage_Oauth_Model_Token::USER_TYPE_ADMIN; - $url = $this->_getAuthorizeUrl($userType); + $url = Mage::helper('Mage_Oauth_Helper_Data')->getAuthorizeUrl($userType); Mage::app()->getResponse() ->setRedirect($url) ->sendHeaders() diff --git a/app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizeController.php b/app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizeController.php index ea9df49c24a..6cd034cbd5d 100644 --- a/app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizeController.php +++ b/app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizeController.php @@ -154,11 +154,20 @@ class Mage_Oauth_Adminhtml_Oauth_AuthorizeController extends Mage_Adminhtml_Cont */ protected function _initConfirmPage($simple = false) { + /** @var $helper Mage_Oauth_Helper_Data */ + $helper = Mage::helper('Mage_Oauth_Helper_Data'); + /** @var $session Mage_Admin_Model_Session */ $session = Mage::getSingleton($this->_sessionName); - /** @var $server Mage_Oauth_Model_Server */ - $server = Mage::getModel('Mage_Oauth_Model_Server'); + /** @var $user Mage_Admin_Model_User */ + $user = $session->getData('user'); + if (!$user) { + $session->addError($this->__('Please login to proceed authorization.')); + $url = $helper->getAuthorizeUrl(Mage_Oauth_Model_Token::USER_TYPE_ADMIN); + $this->_redirectUrl($url); + return $this; + } $this->loadLayout(); @@ -167,19 +176,17 @@ class Mage_Oauth_Adminhtml_Oauth_AuthorizeController extends Mage_Adminhtml_Cont $block->setIsSimple($simple); try { - /** @var $user Mage_Admin_Model_User */ - $user = $session->getData('user'); - $token = $server->authorizeToken($user->getId(), Mage_Oauth_Model_Token::USER_TYPE_ADMIN); + /** @var $server Mage_Oauth_Model_Server */ + $server = Mage::getModel('Mage_Oauth_Model_Server'); - /** @var $helper Mage_Oauth_Helper_Data */ - $helper = Mage::helper('Mage_Oauth_Helper_Data'); + $token = $server->authorizeToken($user->getId(), Mage_Oauth_Model_Token::USER_TYPE_ADMIN); if (($callback = $helper->getFullCallbackUrl($token))) { //false in case of OOB $this->getResponse()->setRedirect($callback . ($simple ? '&simple=1' : '')); return $this; } else { - $session->addSuccess($this->__('Authorization confirmed.')); $block->setVerifier($token->getVerifier()); + $session->addSuccess($this->__('Authorization confirmed.')); } } catch (Mage_Core_Exception $e) { $block->setHasException(true); diff --git a/app/code/core/Mage/Oauth/controllers/AuthorizeController.php b/app/code/core/Mage/Oauth/controllers/AuthorizeController.php index fec87ecc416..97a50452b40 100644 --- a/app/code/core/Mage/Oauth/controllers/AuthorizeController.php +++ b/app/code/core/Mage/Oauth/controllers/AuthorizeController.php @@ -100,24 +100,31 @@ class Mage_Oauth_AuthorizeController extends Mage_Core_Controller_Front_Action */ protected function _initConfirmPage($simple = false) { - $this->loadLayout(); + /** @var $helper Mage_Oauth_Helper_Data */ + $helper = Mage::helper('Mage_Oauth_Helper_Data'); /** @var $session Mage_Customer_Model_Session */ $session = Mage::getSingleton($this->_sessionName); + if (!$session->getCustomerId()) { + $session->addError($this->__('Please login to proceed authorization.')); + $url = $helper->getAuthorizeUrl(Mage_Oauth_Model_Token::USER_TYPE_CUSTOMER); + $this->_redirectUrl($url); + return $this; + } + + $this->loadLayout(); + + /** @var $block Mage_Oauth_Block_Authorize */ + $block = $this->getLayout()->getBlock('oauth.authorize.confirm'); + $block->setIsSimple($simple); + try { /** @var $server Mage_Oauth_Model_Server */ $server = Mage::getModel('Mage_Oauth_Model_Server'); - /** @var $block Mage_Oauth_Block_Authorize */ - $block = $this->getLayout()->getBlock('oauth.authorize.confirm'); - $block->setIsSimple($simple); - /** @var $token Mage_Oauth_Model_Token */ $token = $server->authorizeToken($session->getCustomerId(), Mage_Oauth_Model_Token::USER_TYPE_CUSTOMER); - /** @var $helper Mage_Oauth_Helper_Data */ - $helper = Mage::helper('Mage_Oauth_Helper_Data'); - if (($callback = $helper->getFullCallbackUrl($token))) { //false in case of OOB $this->_redirectUrl($callback . ($simple ? '&simple=1' : '')); return $this; diff --git a/app/code/core/Mage/Oauth/controllers/Customer/TokenController.php b/app/code/core/Mage/Oauth/controllers/Customer/TokenController.php index 34661322272..0e43ac9e8be 100644 --- a/app/code/core/Mage/Oauth/controllers/Customer/TokenController.php +++ b/app/code/core/Mage/Oauth/controllers/Customer/TokenController.php @@ -45,9 +45,9 @@ class Mage_Oauth_Customer_TokenController extends Mage_Core_Controller_Front_Act /** * Customer session model * - * @var Mage_Customer_Model_Session + * @var string */ - protected $_sessionName = 'customer/session'; + protected $_sessionName = 'Mage_Customer_Model_Session'; /** * Check authentication diff --git a/app/code/core/Mage/Page/Block/Html/Notices.php b/app/code/core/Mage/Page/Block/Html/Notices.php index 43207bbb4a7..0ee78c2d254 100644 --- a/app/code/core/Mage/Page/Block/Html/Notices.php +++ b/app/code/core/Mage/Page/Block/Html/Notices.php @@ -33,13 +33,6 @@ */ class Mage_Page_Block_Html_Notices extends Mage_Core_Block_Template { - - /** - * Cookie restriction lifetime configuration path - */ - const XML_PATH_COOKIE_RESTRICTION_LIFETIME = 'web/cookie/cookie_restriction_lifetime'; - - /** * Check if noscript notice should be displayed * @@ -60,28 +53,6 @@ class Mage_Page_Block_Html_Notices extends Mage_Core_Block_Template return Mage::getStoreConfig('design/head/demonotice'); } - /** - * Get cookie restriction lifetime (in seconds) - * - * @return int - */ - public function getCookieRestrictionLifetime() - { - return (int)Mage::getStoreConfig(self::XML_PATH_COOKIE_RESTRICTION_LIFETIME); - } - - /** - * Check if cookie restriction notice should be displayed - * - * @return bool - */ - public function displayCookieRestrictionNotice() - { - $acceptedSaveCookiesWebsites = $this->_getAcceptedSaveCookiesWebsites(); - return Mage::getStoreConfig(self::XML_PATH_COOKIE_RESTRICTION) && - empty($acceptedSaveCookiesWebsites[Mage::app()->getWebsite()->getId()]); - } - /** * Get Link to cookie restriction privacy policy page * diff --git a/app/code/core/Mage/Page/Block/Html/Pager.php b/app/code/core/Mage/Page/Block/Html/Pager.php index e5ef5d0d1fe..e18ba4e2d17 100644 --- a/app/code/core/Mage/Page/Block/Html/Pager.php +++ b/app/code/core/Mage/Page/Block/Html/Pager.php @@ -83,14 +83,24 @@ class Mage_Page_Block_Html_Pager extends Mage_Core_Block_Template $this->setTemplate('Mage_Page::html/pager.phtml'); } + /** + * Return current page + * + * @return int + */ public function getCurrentPage() { - if ($page = (int) $this->getRequest()->getParam($this->getPageVarName())) { - return $page; + if (is_object($this->_collection)) { + return $this->_collection->getCurPage(); } - return 1; + return (int) $this->getRequest()->getParam($this->getPageVarName(), 1); } + /** + * Return current page limit + * + * @return int + */ public function getLimit() { if ($this->_limit !== null) { @@ -118,6 +128,12 @@ class Mage_Page_Block_Html_Pager extends Mage_Core_Block_Template return $this; } + /** + * Set collection for pagination + * + * @param Varien_Data_Collection $collection + * @return Mage_Page_Block_Html_Pager + */ public function setCollection($collection) { $this->_collection = $collection @@ -238,7 +254,9 @@ class Mage_Page_Block_Html_Pager extends Mage_Core_Block_Template } else { $half = ceil($this->_displayPages / 2); - if ($collection->getCurPage() >= $half && $collection->getCurPage() <= $collection->getLastPageNumber() - $half) { + if ($collection->getCurPage() >= $half + && $collection->getCurPage() <= $collection->getLastPageNumber() - $half + ) { $start = ($collection->getCurPage() - $half) + 1; $finish = ($start + $this->_displayPages) - 1; } @@ -501,7 +519,9 @@ class Mage_Page_Block_Html_Pager extends Mage_Core_Block_Template } else { $half = ceil($this->getFrameLength() / 2); - if ($collection->getCurPage() >= $half && $collection->getCurPage() <= $collection->getLastPageNumber() - $half) { + if ($collection->getCurPage() >= $half + && $collection->getCurPage() <= $collection->getLastPageNumber() - $half + ) { $start = ($collection->getCurPage() - $half) + 1; $end = ($start + $this->getFrameLength()) - 1; } diff --git a/app/code/core/Mage/Page/view/frontend/html/notices.phtml b/app/code/core/Mage/Page/view/frontend/html/notices.phtml index eef148f2f1c..a5b60d2138e 100644 --- a/app/code/core/Mage/Page/view/frontend/html/notices.phtml +++ b/app/code/core/Mage/Page/view/frontend/html/notices.phtml @@ -50,11 +50,19 @@ <div class="global-site-notice notice-cookie" id="notice-cookie-block" style="display: none"> <div class="notice-inner"> <p><?php echo $this->__('This website requires cookies to provide all of its features. For more information on what data is contained in the cookies, please see our <a href="%s">Privacy Policy page</a>. To accept cookies from this site, please click the Allow button below.', $this->getPrivacyPolicyLink()) ?></p> - <div class="actions"><button class="button" onclick="Mage.Cookies.set('<?php echo Mage_Core_Helper_Cookie::IS_USER_ALLOWED_SAVE_COOKIE; ?>', '<?php echo Mage::helper('Mage_Core_Helper_Cookie')->getAcceptedSaveCookiesWebsiteIds()?>', new Date(new Date().getTime() + <?php echo $this->getCookieRestrictionLifetime() ?> * 1000)); window.location.reload()"><span><span><?php echo $this->__('Allow');?></span></span></button></div> + <div class="actions"><button class="button" onclick="allowSaveCookie()"><span><span><?php echo $this->__('Allow');?></span></span></button></div> </div> </div> <script type="text/javascript"> /* <![CDATA[ */ + function allowSaveCookie() { + Mage.Cookies.set('<?php echo Mage_Core_Helper_Cookie::IS_USER_ALLOWED_SAVE_COOKIE; ?>', '<?php echo Mage::helper('Mage_Core_Helper_Cookie')->getAcceptedSaveCookiesWebsiteIds()?>', new Date(new Date().getTime() + <?php echo Mage::helper('Mage_Core_Helper_Cookie')->getCookieRestrictionLifetime() ?> * 1000)); + if (Mage.Cookies.get('<?php echo Mage_Core_Helper_Cookie::IS_USER_ALLOWED_SAVE_COOKIE; ?>')) { + window.location.reload(); + } else { + window.location.href = '<?php echo Mage::getUrl('cms/index/noCookies')?>'; + } + } $('notice-cookie-block').show(); /* ]]> */ </script> diff --git a/app/code/core/Mage/Payment/Block/Form/Container.php b/app/code/core/Mage/Payment/Block/Form/Container.php index 8d3a7df5901..c6807e187ab 100644 --- a/app/code/core/Mage/Payment/Block/Form/Container.php +++ b/app/code/core/Mage/Payment/Block/Form/Container.php @@ -27,6 +27,8 @@ /** * Base container block for payment methods forms * + * @method Mage_Sales_Model_Quote getQuote() + * * @category Mage * @package Mage_Payment * @author Magento Core Team <core@magentocommerce.com> @@ -51,27 +53,18 @@ class Mage_Payment_Block_Form_Container extends Mage_Core_Block_Template return parent::_prepareLayout(); } + /** + * Check payment method model + * + * @param Mage_Payment_Model_Method_Abstract $method + * @return bool + */ protected function _canUseMethod($method) { - if (!$method->canUseForCountry($this->getQuote()->getBillingAddress()->getCountry())) { - return false; - } - - if (!$method->canUseForCurrency($this->getQuote()->getStore()->getBaseCurrencyCode())) { - return false; - } - - /** - * Checking for min/max order total for assigned payment method - */ - $total = $this->getQuote()->getBaseGrandTotal(); - $minTotal = $method->getConfigData('min_order_total'); - $maxTotal = $method->getConfigData('max_order_total'); - - if((!empty($minTotal) && ($total < $minTotal)) || (!empty($maxTotal) && ($total > $maxTotal))) { - return false; - } - return true; + return $method->isApplicableToQuote($this->getQuote(), Mage_Payment_Model_Method_Abstract::CHECK_USE_FOR_COUNTRY + | Mage_Payment_Model_Method_Abstract::CHECK_USE_FOR_CURRENCY + | Mage_Payment_Model_Method_Abstract::CHECK_ORDER_TOTAL_MIN_MAX + ); } /** @@ -79,6 +72,7 @@ class Mage_Payment_Block_Form_Container extends Mage_Core_Block_Template * * Redeclare this method in child classes for declaring method info instance * + * @param Mage_Payment_Model_Method_Abstract $method * @return bool */ protected function _assignMethod($method) @@ -105,26 +99,24 @@ class Mage_Payment_Block_Form_Container extends Mage_Core_Block_Template } /** - * Retrieve availale payment methods + * Retrieve available payment methods * * @return array */ public function getMethods() { $methods = $this->getData('methods'); - if (is_null($methods)) { + if ($methods === null) { $quote = $this->getQuote(); $store = $quote ? $quote->getStoreId() : null; - $methods = $this->helper('Mage_Payment_Helper_Data')->getStoreMethods($store, $quote); - $total = $quote->getBaseSubtotal() + $quote->getShippingAddress()->getBaseShippingAmount(); - foreach ($methods as $key => $method) { - if ($this->_canUseMethod($method) - && ($total != 0 - || $method->getCode() == 'free' - || ($quote->hasRecurringItems() && $method->canManageRecurringProfiles()))) { + $methods = array(); + foreach ($this->helper('Mage_Payment_Helper_Data')->getStoreMethods($store, $quote) as $method) { + if ($this->_canUseMethod($method) && $method->isApplicableToQuote( + $quote, + Mage_Payment_Model_Method_Abstract::CHECK_ZERO_TOTAL + )) { $this->_assignMethod($method); - } else { - unset($methods[$key]); + $methods[] = $method; } } $this->setData('methods', $methods); diff --git a/app/code/core/Mage/Payment/Model/Method/Abstract.php b/app/code/core/Mage/Payment/Model/Method/Abstract.php index d09f62f7838..dc2e94a2ccc 100644 --- a/app/code/core/Mage/Payment/Model/Method/Abstract.php +++ b/app/code/core/Mage/Payment/Model/Method/Abstract.php @@ -31,9 +31,9 @@ */ abstract class Mage_Payment_Model_Method_Abstract extends Varien_Object { - const ACTION_ORDER = 'order'; - const ACTION_AUTHORIZE = 'authorize'; - const ACTION_AUTHORIZE_CAPTURE = 'authorize_capture'; + const ACTION_ORDER = 'order'; + const ACTION_AUTHORIZE = 'authorize'; + const ACTION_AUTHORIZE_CAPTURE = 'authorize_capture'; const STATUS_UNKNOWN = 'UNKNOWN'; const STATUS_APPROVED = 'APPROVED'; @@ -42,6 +42,19 @@ abstract class Mage_Payment_Model_Method_Abstract extends Varien_Object const STATUS_VOID = 'VOID'; const STATUS_SUCCESS = 'SUCCESS'; + /** + * Bit masks to specify different payment method checks. + * @see Mage_Payment_Model_Method_Abstract::isApplicableToQuote + */ + const CHECK_USE_FOR_COUNTRY = 1; + const CHECK_USE_FOR_CURRENCY = 2; + const CHECK_USE_CHECKOUT = 4; + const CHECK_USE_FOR_MULTISHIPPING = 8; + const CHECK_USE_INTERNAL = 16; + const CHECK_ORDER_TOTAL_MIN_MAX = 32; + const CHECK_RECURRING_PROFILES = 64; + const CHECK_ZERO_TOTAL = 128; + protected $_code; protected $_formBlockType = 'Mage_Payment_Block_Form'; protected $_infoBlockType = 'Mage_Payment_Block_Info'; @@ -631,17 +644,71 @@ abstract class Mage_Payment_Model_Method_Abstract extends Varien_Object 'quote' => $quote, )); - // disable method if it cannot implement recurring profiles management and there are recurring items in quote - if ($checkResult->isAvailable) { - $implementsRecurring = $this->canManageRecurringProfiles(); - // the $quote->hasRecurringItems() causes big performance impact, thus it has to be called last - if ($quote && !$implementsRecurring && $quote->hasRecurringItems()) { - $checkResult->isAvailable = false; - } + if ($checkResult->isAvailable && $quote) { + $checkResult->isAvailable = $this->isApplicableToQuote($quote, self::CHECK_RECURRING_PROFILES); } return $checkResult->isAvailable; } + /** + * Check whether payment method is applicable to quote + * Purposed to allow use in controllers some logic that was implemented in blocks only before + * + * @param Mage_Sales_Model_Quote $quote + * @param int|null $checksBitMask + * @return bool + */ + public function isApplicableToQuote($quote, $checksBitMask) + { + if ($checksBitMask & self::CHECK_USE_FOR_COUNTRY) { + if (!$this->canUseForCountry($quote->getBillingAddress()->getCountry())) { + return false; + } + } + if ($checksBitMask & self::CHECK_USE_FOR_CURRENCY) { + if (!$this->canUseForCurrency($quote->getStore()->getBaseCurrencyCode())) { + return false; + } + } + if ($checksBitMask & self::CHECK_USE_CHECKOUT) { + if (!$this->canUseCheckout()) { + return false; + } + } + if ($checksBitMask & self::CHECK_USE_FOR_MULTISHIPPING) { + if (!$this->canUseForMultishipping()) { + return false; + } + } + if ($checksBitMask & self::CHECK_USE_INTERNAL) { + if (!$this->canUseInternal()) { + return false; + } + } + if ($checksBitMask & self::CHECK_ORDER_TOTAL_MIN_MAX) { + $total = $quote->getBaseGrandTotal(); + $minTotal = $this->getConfigData('min_order_total'); + $maxTotal = $this->getConfigData('max_order_total'); + if (!empty($minTotal) && $total < $minTotal || !empty($maxTotal) && $total > $maxTotal) { + return false; + } + } + if ($checksBitMask & self::CHECK_RECURRING_PROFILES) { + if (!$this->canManageRecurringProfiles() && $quote->hasRecurringItems()) { + return false; + } + } + if ($checksBitMask & self::CHECK_ZERO_TOTAL) { + $total = $quote->getBaseSubtotal() + $quote->getShippingAddress()->getBaseShippingAmount(); + if ($total < 0.0001 && $this->getCode() != 'free' + && !($this->canManageRecurringProfiles() && $quote->hasRecurringItems()) + ) { + return false; + } + } + return true; + } + /** * Method that will be executed instead of authorize or capture * if flag isInitializeNeeded set to true diff --git a/app/code/core/Mage/Paypal/view/frontend/review.js b/app/code/core/Mage/Paypal/view/frontend/review.js index 20a51f5f152..bc3a8439a72 100644 --- a/app/code/core/Mage/Paypal/view/frontend/review.js +++ b/app/code/core/Mage/Paypal/view/frontend/review.js @@ -197,7 +197,7 @@ OrderReviewController.prototype = { var newId = el.id.replace('shipping:','billing:'); if (newId && $(newId) && $(newId).type != 'hidden') { $(newId).value = el.value; - $(newId).setAttribute('readonly', 'readonly'); + $(newId).setAttribute('readOnly', 'readonly'); $(newId).addClassName('local-validation'); $(newId).setStyle({opacity:.5}); $(newId).disable(); @@ -219,7 +219,7 @@ OrderReviewController.prototype = { this._clearValidation('billing'); } else { $$('[id^="billing:"]').invoke('enable'); - $$('[id^="billing:"]').invoke('removeAttribute', 'readonly'); + $$('[id^="billing:"]').each(function(el){el.removeAttribute("readOnly");}); $$('[id^="billing:"]').invoke('removeClassName', 'local-validation'); $$('[id^="billing:"]').invoke('setStyle', {opacity:1}); } diff --git a/app/code/core/Mage/Persistent/Model/Observer.php b/app/code/core/Mage/Persistent/Model/Observer.php index ee7d5452061..274ed864030 100644 --- a/app/code/core/Mage/Persistent/Model/Observer.php +++ b/app/code/core/Mage/Persistent/Model/Observer.php @@ -331,7 +331,7 @@ class Mage_Persistent_Model_Observer /** @var $controllerAction Mage_Core_Controller_Front_Action */ $controllerAction = $observer->getEvent()->getControllerAction(); - if (is_callable(array($controllerAction, 'redirectLogin'))) { + if (method_exists($controllerAction, 'redirectLogin')) { Mage::getSingleton('Mage_Core_Model_Session')->addNotice( Mage::helper('Mage_Persistent_Helper_Data')->__('To proceed to Checkout, please log in using your email address.') ); diff --git a/app/code/core/Mage/Reports/Model/Resource/Order/Collection.php b/app/code/core/Mage/Reports/Model/Resource/Order/Collection.php index f7f5bfc1e26..09a4e2a3d80 100755 --- a/app/code/core/Mage/Reports/Model/Resource/Order/Collection.php +++ b/app/code/core/Mage/Reports/Model/Resource/Order/Collection.php @@ -41,6 +41,13 @@ class Mage_Reports_Model_Resource_Order_Collection extends Mage_Sales_Model_Reso */ protected $_isLive = false; + /** + * Sales amount expression + * + * @var string + */ + protected $_salesAmountExpression; + /** * Check range for live mode * @@ -84,6 +91,40 @@ class Mage_Reports_Model_Resource_Order_Collection extends Mage_Sales_Model_Reso return $this; } + /** + * Get sales amount expression + * + * @return string + */ + protected function _getSalesAmountExpression() + { + if (is_null($this->_salesAmountExpression)) { + $adapter = $this->getConnection(); + $expressionTransferObject = new Varien_Object(array( + 'expression' => '%s - %s - %s - (%s - %s - %s)', + 'arguments' => array( + $adapter->getIfNullSql('main_table.base_total_invoiced', 0), + $adapter->getIfNullSql('main_table.base_tax_invoiced', 0), + $adapter->getIfNullSql('main_table.base_shipping_invoiced', 0), + $adapter->getIfNullSql('main_table.base_total_refunded', 0), + $adapter->getIfNullSql('main_table.base_tax_refunded', 0), + $adapter->getIfNullSql('main_table.base_shipping_refunded', 0), + ) + )); + + Mage::dispatchEvent('sales_prepare_amount_expression', array( + 'collection' => $this, + 'expression_object' => $expressionTransferObject, + )); + $this->_salesAmountExpression = vsprintf( + $expressionTransferObject->getExpression(), + $expressionTransferObject->getArguments() + ); + } + + return $this->_salesAmountExpression; + } + /** * Prepare report summary from live data * @@ -103,14 +144,7 @@ class Mage_Reports_Model_Resource_Order_Collection extends Mage_Sales_Model_Reso */ $this->getSelect()->reset(Zend_Db_Select::COLUMNS); - $expression = sprintf('%s - %s - %s - (%s - %s - %s)', - $adapter->getIfNullSql('main_table.base_total_invoiced', 0), - $adapter->getIfNullSql('main_table.base_tax_invoiced', 0), - $adapter->getIfNullSql('main_table.base_shipping_invoiced', 0), - $adapter->getIfNullSql('main_table.base_total_refunded', 0), - $adapter->getIfNullSql('main_table.base_tax_refunded', 0), - $adapter->getIfNullSql('main_table.base_shipping_refunded', 0) - ); + $expression = $this->_getSalesAmountExpression(); if ($isFilter == 0) { $this->getSelect()->columns(array( 'revenue' => new Zend_Db_Expr( @@ -387,21 +421,12 @@ class Mage_Reports_Model_Resource_Order_Collection extends Mage_Sales_Model_Reso $adapter = $this->getConnection(); - $baseTotalInvoiced = $adapter->getIfNullSql('main_table.base_total_invoiced', 0); - $baseTotalRefunded = $adapter->getIfNullSql('main_table.base_total_refunded', 0); $baseTaxInvoiced = $adapter->getIfNullSql('main_table.base_tax_invoiced', 0); $baseTaxRefunded = $adapter->getIfNullSql('main_table.base_tax_refunded', 0); $baseShippingInvoiced = $adapter->getIfNullSql('main_table.base_shipping_invoiced', 0); $baseShippingRefunded = $adapter->getIfNullSql('main_table.base_shipping_refunded', 0); - $revenueExp = sprintf('%s - %s - %s - (%s - %s - %s)', - $baseTotalInvoiced, - $baseTaxInvoiced, - $baseShippingInvoiced, - $baseTotalRefunded, - $baseTaxRefunded, - $baseShippingRefunded - ); + $revenueExp = $this->_getSalesAmountExpression(); $taxExp = sprintf('%s - %s', $baseTaxInvoiced, $baseTaxRefunded); $shippingExp = sprintf('%s - %s', $baseShippingInvoiced, $baseShippingRefunded); @@ -503,14 +528,7 @@ class Mage_Reports_Model_Resource_Order_Collection extends Mage_Sales_Model_Reso $this->setMainTable('sales_flat_order'); $this->removeAllFieldsFromSelect(); - $expr = sprintf('%s - %s - %s - (%s - %s - %s)', - $adapter->getIfNullSql('main_table.base_total_invoiced', 0), - $adapter->getIfNullSql('main_table.base_tax_invoiced', 0), - $adapter->getIfNullSql('main_table.base_shipping_invoiced', 0), - $adapter->getIfNullSql('main_table.base_total_refunded', 0), - $adapter->getIfNullSql('main_table.base_tax_refunded', 0), - $adapter->getIfNullSql('main_table.base_shipping_refunded', 0) - ); + $expr = $this->_getSalesAmountExpression(); if ($isFilter == 0) { $expr = '(' . $expr . ') * main_table.base_to_global_rate'; diff --git a/app/code/core/Mage/Reports/Model/Resource/Tag/Customer/Collection.php b/app/code/core/Mage/Reports/Model/Resource/Tag/Customer/Collection.php index 863d21f60d4..9fbb7aed61c 100755 --- a/app/code/core/Mage/Reports/Model/Resource/Tag/Customer/Collection.php +++ b/app/code/core/Mage/Reports/Model/Resource/Tag/Customer/Collection.php @@ -68,21 +68,4 @@ class Mage_Reports_Model_Resource_Tag_Customer_Collection extends Mage_Tag_Model return $countSelect; } - - /** - * Set order - * - * @param string $attribute - * @param string $dir - * @return Mage_Reports_Model_Resource_Tag_Customer_Collection - */ - public function setOrder($attribute, $dir = self::SORT_ORDER_DESC) - { - if (in_array($attribute, array('taged'))) { - $this->getSelect()->order($attribute . ' ' . $dir); - } else { - parent::setOrder($attribute, $dir); - } - return $this; - } } diff --git a/app/code/core/Mage/Rss/Block/Catalog/NotifyStock.php b/app/code/core/Mage/Rss/Block/Catalog/NotifyStock.php index 3a4c3fff0e8..3702d247a46 100644 --- a/app/code/core/Mage/Rss/Block/Catalog/NotifyStock.php +++ b/app/code/core/Mage/Rss/Block/Catalog/NotifyStock.php @@ -75,8 +75,6 @@ class Mage_Rss_Block_Catalog_NotifyStock extends Mage_Rss_Block_Abstract ); $rssObj->_addHeader($data); - $configManageStock = (int) Mage::getStoreConfigFlag( - Mage_CatalogInventory_Model_Stock_Item::XML_PATH_MANAGE_STOCK); $globalNotifyStockQty = (float) Mage::getStoreConfig( Mage_CatalogInventory_Model_Stock_Item::XML_PATH_NOTIFY_STOCK_QTY); Mage::helper('Mage_Rss_Helper_Data')->disableFlat(); @@ -84,29 +82,18 @@ class Mage_Rss_Block_Catalog_NotifyStock extends Mage_Rss_Block_Abstract $product = Mage::getModel('Mage_Catalog_Model_Product'); /* @var $collection Mage_Catalog_Model_Resource_Product_Collection */ $collection = $product->getCollection(); - $stockItemTable = $collection->getTable('cataloginventory_stock_item'); - - $adapter = $collection->getConnection(); - $stockItemWhere = '({{table}}.low_stock_date is not null) ' - . " AND ( ({{table}}.use_config_manage_stock=1 AND {$configManageStock}=1)" - . " AND {{table}}.qty < " - . $adapter->getCheckSql("{$stockItemTable}.use_config_notify_stock_qty = 1", $globalNotifyStockQty, - '{{table}}.notify_stock_qty') - . ' OR ({{table}}.use_config_manage_stock=0 AND {{table}}.manage_stock=1) )'; - + Mage::getResourceModel('Mage_CatalogInventory_Model_Resource_Stock')->addLowStockFilter($collection, array( + 'qty', + 'notify_stock_qty', + 'low_stock_date', + 'use_config' => 'use_config_notify_stock_qty' + )); $collection ->addAttributeToSelect('name', true) - ->joinTable('cataloginventory_stock_item', 'product_id=entity_id', - array( - 'qty'=>'qty', - 'notify_stock_qty'=>'notify_stock_qty', - 'use_config' => 'use_config_notify_stock_qty', - 'low_stock_date' => 'low_stock_date'), - $stockItemWhere, 'inner') + ->addAttributeToFilter('status', + array('in' => Mage::getSingleton('Mage_Catalog_Model_Product_Status')->getVisibleStatusIds()) + ) ->setOrder('low_stock_date'); - - $collection->addAttributeToFilter('status', - array('in' => Mage::getSingleton('Mage_Catalog_Model_Product_Status')->getVisibleStatusIds())); Mage::dispatchEvent('rss_catalog_notify_stock_collection_select', array('collection' => $collection)); /* diff --git a/app/code/core/Mage/Sales/Model/Api2/Order.php b/app/code/core/Mage/Sales/Model/Api2/Order.php index b1ef89738a4..56160041d86 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order.php @@ -117,9 +117,9 @@ class Mage_Sales_Model_Api2_Order extends Mage_Api2_Model_Resource { $addresses = array(); - if ($this->_isSubCallAllowed('order_addresses')) { + if ($this->_isSubCallAllowed('order_address')) { /** @var $addressesFilter Mage_Api2_Model_Acl_Filter */ - $addressesFilter = $this->_getSubModel('order_addresses', array())->getFilter(); + $addressesFilter = $this->_getSubModel('order_address', array())->getFilter(); // do addresses request if at least one attribute allowed if ($addressesFilter->getAllowedAttributes()) { /* @var $collection Mage_Sales_Model_Resource_Order_Address_Collection */ @@ -174,9 +174,9 @@ class Mage_Sales_Model_Api2_Order extends Mage_Api2_Model_Resource { $comments = array(); - if ($this->_isOrderCommentsAllowed() && $this->_isSubCallAllowed('order_comments')) { + if ($this->_isOrderCommentsAllowed() && $this->_isSubCallAllowed('order_comment')) { /** @var $commentsFilter Mage_Api2_Model_Acl_Filter */ - $commentsFilter = $this->_getSubModel('order_comments', array())->getFilter(); + $commentsFilter = $this->_getSubModel('order_comment', array())->getFilter(); // do comments request if at least one attribute allowed if ($commentsFilter->getAllowedAttributes()) { foreach ($this->_getCommentsCollection($orderIds)->getItems() as $item) { @@ -212,9 +212,9 @@ class Mage_Sales_Model_Api2_Order extends Mage_Api2_Model_Resource { $items = array(); - if ($this->_isSubCallAllowed('order_items')) { + if ($this->_isSubCallAllowed('order_item')) { /** @var $itemsFilter Mage_Api2_Model_Acl_Filter */ - $itemsFilter = $this->_getSubModel('order_items', array())->getFilter(); + $itemsFilter = $this->_getSubModel('order_item', array())->getFilter(); // do items request if at least one attribute allowed if ($itemsFilter->getAllowedAttributes()) { /* @var $collection Mage_Sales_Model_Resource_Order_Item_Collection */ diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Comments.php b/app/code/core/Mage/Sales/Model/Api2/Order/Comment.php similarity index 93% rename from app/code/core/Mage/Sales/Model/Api2/Order/Comments.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Comment.php index 73141549d76..79bf6d045d5 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Comments.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Comment.php @@ -31,6 +31,6 @@ * @package Mage_Sales * @author Magento Core Team <core@magentocommerce.com> */ -class Mage_Sales_Model_Api2_Order_Comments extends Mage_Api2_Model_Resource +class Mage_Sales_Model_Api2_Order_Comment extends Mage_Api2_Model_Resource { } diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest.php b/app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest.php similarity index 96% rename from app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest.php index 4eb7b5710aa..d44dad364ed 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest.php @@ -31,7 +31,7 @@ * @package Mage_Sales * @author Magento Core Team <core@magentocommerce.com> */ -abstract class Mage_Sales_Model_Api2_Order_Comments_Rest extends Mage_Sales_Model_Api2_Order_Comments +abstract class Mage_Sales_Model_Api2_Order_Comment_Rest extends Mage_Sales_Model_Api2_Order_Comment { /**#@+ * Parameters in request used in model (usually specified in route mask) diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest/Admin/V1.php b/app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest/Admin/V1.php similarity index 91% rename from app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest/Admin/V1.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest/Admin/V1.php index e4386b37916..92dff4ed786 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest/Admin/V1.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest/Admin/V1.php @@ -31,6 +31,6 @@ * @package Mage_Sales * @author Magento Core Team <core@magentocommerce.com> */ -class Mage_Sales_Model_Api2_Order_Comments_Rest_Admin_V1 extends Mage_Sales_Model_Api2_Order_Comments_Rest +class Mage_Sales_Model_Api2_Order_Comment_Rest_Admin_V1 extends Mage_Sales_Model_Api2_Order_Comment_Rest { } diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest/Customer/V1.php b/app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest/Customer/V1.php similarity index 94% rename from app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest/Customer/V1.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest/Customer/V1.php index cefaa5b519b..71266788c2f 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Comments/Rest/Customer/V1.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Comment/Rest/Customer/V1.php @@ -31,7 +31,7 @@ * @package Mage_Sales * @author Magento Core Team <core@magentocommerce.com> */ -class Mage_Sales_Model_Api2_Order_Comments_Rest_Customer_V1 extends Mage_Sales_Model_Api2_Order_Comments_Rest +class Mage_Sales_Model_Api2_Order_Comment_Rest_Customer_V1 extends Mage_Sales_Model_Api2_Order_Comment_Rest { /** * Load order by id diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Items.php b/app/code/core/Mage/Sales/Model/Api2/Order/Item.php similarity index 93% rename from app/code/core/Mage/Sales/Model/Api2/Order/Items.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Item.php index ff61fe82a46..d8876ac3711 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Items.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Item.php @@ -31,6 +31,6 @@ * @package Mage_Sales * @author Magento Core Team <core@magentocommerce.com> */ -class Mage_Sales_Model_Api2_Order_Items extends Mage_Api2_Model_Resource +class Mage_Sales_Model_Api2_Order_Item extends Mage_Api2_Model_Resource { } diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest.php b/app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest.php similarity index 96% rename from app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest.php index 125bf7ecf3a..b9164480aa7 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest.php @@ -31,7 +31,7 @@ * @package Mage_Sales * @author Magento Core Team <core@magentocommerce.com> */ -abstract class Mage_Sales_Model_Api2_Order_Items_Rest extends Mage_Sales_Model_Api2_Order_Items +abstract class Mage_Sales_Model_Api2_Order_Item_Rest extends Mage_Sales_Model_Api2_Order_Item { /**#@+ * Parameters in request used in model (usually specified in route) diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest/Admin/V1.php b/app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest/Admin/V1.php similarity index 91% rename from app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest/Admin/V1.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest/Admin/V1.php index b7b7d7b3156..b301734506b 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest/Admin/V1.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest/Admin/V1.php @@ -31,6 +31,6 @@ * @package Mage_Sales * @author Magento Core Team <core@magentocommerce.com> */ -class Mage_Sales_Model_Api2_Order_Items_Rest_Admin_V1 extends Mage_Sales_Model_Api2_Order_Items_Rest +class Mage_Sales_Model_Api2_Order_Item_Rest_Admin_V1 extends Mage_Sales_Model_Api2_Order_Item_Rest { } diff --git a/app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest/Customer/V1.php b/app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest/Customer/V1.php similarity index 94% rename from app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest/Customer/V1.php rename to app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest/Customer/V1.php index d793e9ecc5b..17f7c203d43 100644 --- a/app/code/core/Mage/Sales/Model/Api2/Order/Items/Rest/Customer/V1.php +++ b/app/code/core/Mage/Sales/Model/Api2/Order/Item/Rest/Customer/V1.php @@ -31,7 +31,7 @@ * @package Mage_Sales * @author Magento Core Team <core@magentocommerce.com> */ -class Mage_Sales_Model_Api2_Order_Items_Rest_Customer_V1 extends Mage_Sales_Model_Api2_Order_Items_Rest +class Mage_Sales_Model_Api2_Order_Item_Rest_Customer_V1 extends Mage_Sales_Model_Api2_Order_Item_Rest { /** * Load order by id diff --git a/app/code/core/Mage/Sales/Model/Order/Creditmemo/Total/Discount.php b/app/code/core/Mage/Sales/Model/Order/Creditmemo/Total/Discount.php index 476e8d704e6..87ffae29a99 100644 --- a/app/code/core/Mage/Sales/Model/Order/Creditmemo/Total/Discount.php +++ b/app/code/core/Mage/Sales/Model/Order/Creditmemo/Total/Discount.php @@ -82,8 +82,8 @@ class Mage_Sales_Model_Order_Creditmemo_Total_Discount extends Mage_Sales_Model_ } } - $creditmemo->setDiscountAmount($totalDiscountAmount); - $creditmemo->setBaseDiscountAmount($baseTotalDiscountAmount); + $creditmemo->setDiscountAmount(-$totalDiscountAmount); + $creditmemo->setBaseDiscountAmount(-$baseTotalDiscountAmount); $creditmemo->setGrandTotal($creditmemo->getGrandTotal() - $totalDiscountAmount); $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() - $baseTotalDiscountAmount); diff --git a/app/code/core/Mage/Sales/Model/Order/Invoice/Total/Discount.php b/app/code/core/Mage/Sales/Model/Order/Invoice/Total/Discount.php index fafd10decb9..b0a893647b9 100644 --- a/app/code/core/Mage/Sales/Model/Order/Invoice/Total/Discount.php +++ b/app/code/core/Mage/Sales/Model/Order/Invoice/Total/Discount.php @@ -83,9 +83,8 @@ class Mage_Sales_Model_Order_Invoice_Total_Discount extends Mage_Sales_Model_Ord } } - - $invoice->setDiscountAmount($totalDiscountAmount); - $invoice->setBaseDiscountAmount($baseTotalDiscountAmount); + $invoice->setDiscountAmount(-$totalDiscountAmount); + $invoice->setBaseDiscountAmount(-$baseTotalDiscountAmount); $invoice->setGrandTotal($invoice->getGrandTotal() - $totalDiscountAmount); $invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() - $baseTotalDiscountAmount); diff --git a/app/code/core/Mage/Sales/Model/Order/Pdf/Total/Default.php b/app/code/core/Mage/Sales/Model/Order/Pdf/Total/Default.php index 24d36a3d298..d2aa93e15cb 100644 --- a/app/code/core/Mage/Sales/Model/Order/Pdf/Total/Default.php +++ b/app/code/core/Mage/Sales/Model/Order/Pdf/Total/Default.php @@ -50,7 +50,14 @@ class Mage_Sales_Model_Order_Pdf_Total_Default extends Varien_Object if ($this->getAmountPrefix()) { $amount = $this->getAmountPrefix().$amount; } - $label = Mage::helper('Mage_Sales_Helper_Data')->__($this->getTitle()) . ':'; + + $title = Mage::helper('Mage_Sales_Helper_Data')->__($this->getTitle()); + if ($this->getTitleSourceField()) { + $label = $title . ' (' . $this->getTitleDescription() . '):'; + } else { + $label = $title . ':'; + } + $fontSize = $this->getFontSize() ? $this->getFontSize() : 7; $total = array( 'amount' => $amount, @@ -138,4 +145,14 @@ class Mage_Sales_Model_Order_Pdf_Total_Default extends Varien_Object { return $this->getSource()->getDataUsingMethod($this->getSourceField()); } + + /** + * Get title description from source + * + * @return mixed + */ + public function getTitleDescription() + { + return $this->getSource()->getDataUsingMethod($this->getTitleSourceField()); + } } diff --git a/app/code/core/Mage/Sales/Model/Quote.php b/app/code/core/Mage/Sales/Model/Quote.php index 9304f7d17ce..016a1277805 100644 --- a/app/code/core/Mage/Sales/Model/Quote.php +++ b/app/code/core/Mage/Sales/Model/Quote.php @@ -530,7 +530,7 @@ class Mage_Sales_Model_Quote extends Mage_Core_Model_Abstract } /** - * retrieve quote shipping address + * Retrieve quote shipping address * * @return Mage_Sales_Model_Quote_Address */ @@ -609,11 +609,40 @@ class Mage_Sales_Model_Quote extends Mage_Core_Model_Abstract return $this; } + /** + * Leave no more than one billing and one shipping address, fill them with default data + * + * @return Mage_Sales_Model_Quote + */ public function removeAllAddresses() { - foreach ($this->getAddressesCollection() as $address) { + $addressByType = array(); + $addressesCollection = $this->getAddressesCollection(); + + // mark all addresses as deleted + foreach ($addressesCollection as $address) { + $type = $address->getAddressType(); + if (!isset($addressByType[$type]) || $addressByType[$type]->getId() > $address->getId()) { + $addressByType[$type] = $address; + } $address->isDeleted(true); } + + // create new billing and shipping addresses filled with default values, set this data to existing records + foreach ($addressByType as $type => $address) { + $id = $address->getId(); + $emptyAddress = $this->_getAddressByType($type); + $address->setData($emptyAddress->getData())->setId($id)->isDeleted(false); + $emptyAddress->setDeleteImmediately(true); + } + + // remove newly created billing and shipping addresses from collection to avoid senseless delete queries + foreach ($addressesCollection as $key => $item) { + if ($item->getDeleteImmediately()) { + $addressesCollection->removeItemByKey($key); + } + } + return $this; } @@ -777,6 +806,36 @@ class Mage_Sales_Model_Quote extends Mage_Core_Model_Abstract return $this->getItemsCollection()->getItemById($itemId); } + /** + * Delete quote item. If it does not have identifier then it will be only removed from collection + * + * @param Mage_Sales_Model_Quote_Item $item + * @return Mage_Sales_Model_Quote + */ + public function deleteItem(Mage_Sales_Model_Quote_Item $item) + { + if ($item->getId()) { + $this->removeItem($item->getId()); + } else { + $quoteItems = $this->getItemsCollection(); + $items = array($item); + if ($item->getHasChildren()) { + foreach ($item->getChildren() as $child) { + $items[] = $child; + } + } + foreach ($quoteItems as $key => $quoteItem) { + foreach ($items as $item) { + if ($quoteItem->compare($item)) { + $quoteItems->removeItemByKey($key); + } + } + } + } + + return $this; + } + /** * Remove quote item by item identifier * diff --git a/app/code/core/Mage/Sales/Model/Quote/Payment.php b/app/code/core/Mage/Sales/Model/Quote/Payment.php index 55d230ba2f9..cfb9666fc07 100644 --- a/app/code/core/Mage/Sales/Model/Quote/Payment.php +++ b/app/code/core/Mage/Sales/Model/Quote/Payment.php @@ -137,11 +137,13 @@ class Mage_Sales_Model_Quote_Payment extends Mage_Payment_Model_Info /** * Payment availability related with quote totals. - * We have recollect quote totals before checking + * We have to recollect quote totals before checking */ $this->getQuote()->collectTotals(); - if (!$method->isAvailable($this->getQuote())) { + if (!$method->isAvailable($this->getQuote()) + || !$method->isApplicableToQuote($this->getQuote(), $data->getChecks()) + ) { Mage::throwException(Mage::helper('Mage_Sales_Helper_Data')->__('The requested Payment Method is not available.')); } diff --git a/app/code/core/Mage/Sales/Model/Resource/Order/Abstract.php b/app/code/core/Mage/Sales/Model/Resource/Order/Abstract.php index 911645a4d8e..63af52f7198 100755 --- a/app/code/core/Mage/Sales/Model/Resource/Order/Abstract.php +++ b/app/code/core/Mage/Sales/Model/Resource/Order/Abstract.php @@ -433,7 +433,7 @@ abstract class Mage_Sales_Model_Resource_Order_Abstract extends Mage_Sales_Model * * @param string $field * @param int $entityId - * @return int + * @return Mage_Sales_Model_Resource_Order_Abstract */ public function updateOnRelatedRecordChanged($field, $entityId) { @@ -445,13 +445,13 @@ abstract class Mage_Sales_Model_Resource_Order_Abstract extends Mage_Sales_Model $this->joinVirtualGridColumnsToSelect('main_table', $select, $column); $fieldsToUpdate = $adapter->fetchRow($select); if ($fieldsToUpdate) { - return $adapter->update( + $adapter->update( $this->getGridTable(), $fieldsToUpdate, $adapter->quoteInto($this->getGridTable() . '.' . $field . ' = ?', $entityId) ); } - return 0; + return $this; } } diff --git a/app/code/core/Mage/Sales/Model/Resource/Report/Order/Createdat.php b/app/code/core/Mage/Sales/Model/Resource/Report/Order/Createdat.php index 509c6cd448e..e3cb73fd116 100644 --- a/app/code/core/Mage/Sales/Model/Resource/Report/Order/Createdat.php +++ b/app/code/core/Mage/Sales/Model/Resource/Report/Order/Createdat.php @@ -79,7 +79,7 @@ class Mage_Sales_Model_Resource_Report_Order_Createdat extends Mage_Sales_Model_ if ($from !== null || $to !== null) { $subSelect = $this->_getTableDateRangeSelect( $this->getTable('sales_flat_order'), - 'created_at', 'updated_at', $from, $to + $aggregationField, $aggregationField, $from, $to ); } else { $subSelect = null; diff --git a/app/code/core/Mage/Sales/etc/api2.xml b/app/code/core/Mage/Sales/etc/api2.xml index fd2c0bfba99..69642c18f45 100644 --- a/app/code/core/Mage/Sales/etc/api2.xml +++ b/app/code/core/Mage/Sales/etc/api2.xml @@ -31,10 +31,16 @@ <sales translate="title" module="Mage_Api2"> <title>Sales</title> <sort_order>130</sort_order> + <children> + <sales_order translate="title" module="Mage_Api2"> + <title>Order</title> + <sort_order>150</sort_order> + </sales_order> + </children> </sales> </resource_groups> <resources> - <orders translate="title" module="Mage_Api2"> + <order translate="title" module="Mage_Api2"> <group>sales</group> <sort_order>10</sort_order> <model>Mage_Sales_Model_Api2_Order</model> @@ -154,11 +160,11 @@ </admin> </force_attributes> <versions>1</versions> - </orders> - <order_items translate="title" module="Mage_Api2"> - <group>orders</group> + </order> + <order_item translate="title" module="Mage_Api2"> + <group>sales_order</group> <sort_order>30</sort_order> - <model>Mage_Sales_Model_Api2_Order_Items</model> + <model>Mage_Sales_Model_Api2_Order_Item</model> <working_model>Mage_Sales_Model_Order_Item</working_model> <title>Order Items</title> <privileges> @@ -221,9 +227,9 @@ </route_collection> </routes> <versions>1</versions> - </order_items> - <order_addresses translate="title" module="Mage_Api2"> - <group>orders</group> + </order_item> + <order_address translate="title" module="Mage_Api2"> + <group>sales_order</group> <sort_order>40</sort_order> <model>Mage_Sales_Model_Api2_Order_Address</model> <working_model>Mage_Sales_Model_Order_Address</working_model> @@ -263,11 +269,11 @@ <address_type>Address Type</address_type> <email>Email</email> </attributes> - </order_addresses> - <order_comments translate="title" module="Mage_Api2"> - <group>orders</group> + </order_address> + <order_comment translate="title" module="Mage_Api2"> + <group>sales_order</group> <sort_order>60</sort_order> - <model>Mage_Sales_Model_Api2_Order_Comments</model> + <model>Mage_Sales_Model_Api2_Order_Comment</model> <working_model>Mage_Sales_Model_Order_Status_History</working_model> <title>Order Comments</title> <privileges> @@ -298,7 +304,7 @@ </route_collection> </routes> <versions>1</versions> - </order_comments> + </order_comment> </resources> </api2> </config> diff --git a/app/code/core/Mage/Sales/etc/config.xml b/app/code/core/Mage/Sales/etc/config.xml index 6da3492970a..b8d2d2b027d 100644 --- a/app/code/core/Mage/Sales/etc/config.xml +++ b/app/code/core/Mage/Sales/etc/config.xml @@ -28,10 +28,887 @@ <config> <modules> <Mage_Sales> - <version>1.6.0.7</version> + <version>1.6.0.8</version> </Mage_Sales> </modules> <global> + <fieldsets> + <sales_copy_order> + <customer_email> + <to_edit>*</to_edit> + </customer_email> + <customer_group_id> + <to_edit>*</to_edit> + </customer_group_id> + </sales_copy_order> + <sales_copy_order_billing_address> + <prefix> + <to_order>*</to_order> + </prefix> + <firstname> + <to_order>*</to_order> + </firstname> + <middlename> + <to_order>*</to_order> + </middlename> + <lastname> + <to_order>*</to_order> + </lastname> + <suffix> + <to_order>*</to_order> + </suffix> + <customer_address_id> + <to_order>*</to_order> + </customer_address_id> + <company> + <to_order>*</to_order> + </company> + <street> + <to_order>*</to_order> + </street> + <city> + <to_order>*</to_order> + </city> + <region> + <to_order>*</to_order> + </region> + <postcode> + <to_order>*</to_order> + </postcode> + <country_id> + <to_order>*</to_order> + </country_id> + <telephone> + <to_order>*</to_order> + </telephone> + <fax> + <to_order>*</to_order> + </fax> + <region_id> + <to_order>*</to_order> + </region_id> + </sales_copy_order_billing_address> + <sales_copy_order_shipping_address> + <prefix> + <to_order>*</to_order> + </prefix> + <firstname> + <to_order>*</to_order> + </firstname> + <middlename> + <to_order>*</to_order> + </middlename> + <lastname> + <to_order>*</to_order> + </lastname> + <suffix> + <to_order>*</to_order> + </suffix> + <customer_address_id> + <to_order>*</to_order> + </customer_address_id> + <company> + <to_order>*</to_order> + </company> + <street> + <to_order>*</to_order> + </street> + <city> + <to_order>*</to_order> + </city> + <region> + <to_order>*</to_order> + </region> + <postcode> + <to_order>*</to_order> + </postcode> + <country_id> + <to_order>*</to_order> + </country_id> + <telephone> + <to_order>*</to_order> + </telephone> + <fax> + <to_order>*</to_order> + </fax> + <region_id> + <to_order>*</to_order> + </region_id> + </sales_copy_order_shipping_address> + <sales_convert_quote> + <remote_ip> + <to_order>*</to_order> + </remote_ip> + <x_forwarded_for> + <to_order>*</to_order> + </x_forwarded_for> + <customer_id> + <to_order>*</to_order> + </customer_id> + <customer_email> + <to_order>*</to_order> + </customer_email> + <customer_prefix> + <to_order>*</to_order> + </customer_prefix> + <customer_firstname> + <to_order>*</to_order> + </customer_firstname> + <customer_middlename> + <to_order>*</to_order> + </customer_middlename> + <customer_lastname> + <to_order>*</to_order> + </customer_lastname> + <customer_suffix> + <to_order>*</to_order> + </customer_suffix> + <customer_group_id> + <to_order>*</to_order> + </customer_group_id> + <customer_tax_class_id> + <to_order>*</to_order> + </customer_tax_class_id> + <customer_note> + <to_order>*</to_order> + </customer_note> + <customer_note_notify> + <to_order>*</to_order> + </customer_note_notify> + <customer_is_guest> + <to_order>*</to_order> + </customer_is_guest> + <customer_dob> + <to_order>*</to_order> + </customer_dob> + <customer_taxvat> + <to_order>*</to_order> + </customer_taxvat> + <customer_gender> + <to_order>*</to_order> + </customer_gender> + <base_grand_total> + <to_order>quote_base_grand_total</to_order> + </base_grand_total> + <global_currency_code> + <to_order>*</to_order> + </global_currency_code> + <base_currency_code> + <to_order>*</to_order> + </base_currency_code> + <store_currency_code> + <to_order>*</to_order> + </store_currency_code> + <quote_currency_code> + <to_order>order_currency_code</to_order> + </quote_currency_code> + <store_to_base_rate> + <to_order>*</to_order> + </store_to_base_rate> + <store_to_quote_rate> + <to_order>store_to_order_rate</to_order> + </store_to_quote_rate> + <base_to_global_rate> + <to_order>*</to_order> + </base_to_global_rate> + <base_to_quote_rate> + <to_order>base_to_order_rate</to_order> + </base_to_quote_rate> + <coupon_code> + <to_order>*</to_order> + </coupon_code> + <is_virtual> + <to_order>*</to_order> + </is_virtual> + <is_multi_payment> + <to_order>*</to_order> + </is_multi_payment> + <applied_rule_ids> + <to_order>*</to_order> + </applied_rule_ids> + <items_qty> + <to_order>total_qty_ordered</to_order> + </items_qty> + </sales_convert_quote> + <sales_convert_quote_address> + <weight> + <to_order>*</to_order> + </weight> + <shipping_method> + <to_order>*</to_order> + </shipping_method> + <shipping_description> + <to_order>*</to_order> + </shipping_description> + <shipping_rate> + <to_order>*</to_order> + </shipping_rate> + <subtotal> + <to_order>*</to_order> + </subtotal> + <tax_amount> + <to_order>*</to_order> + </tax_amount> + <tax_string> + <to_order>*</to_order> + </tax_string> + <discount_amount> + <to_order>*</to_order> + </discount_amount> + <shipping_amount> + <to_order>*</to_order> + </shipping_amount> + <shipping_incl_tax> + <to_order>*</to_order> + </shipping_incl_tax> + <shipping_tax_amount> + <to_order>*</to_order> + </shipping_tax_amount> + <custbalance_amount> + <to_order>*</to_order> + </custbalance_amount> + <grand_total> + <to_order>*</to_order> + </grand_total> + <base_subtotal> + <to_order>*</to_order> + </base_subtotal> + <base_tax_amount> + <to_order>*</to_order> + </base_tax_amount> + <base_discount_amount> + <to_order>*</to_order> + </base_discount_amount> + <base_shipping_amount> + <to_order>*</to_order> + </base_shipping_amount> + <base_shipping_incl_tax> + <to_order>*</to_order> + </base_shipping_incl_tax> + <base_shipping_tax_amount> + <to_order>*</to_order> + </base_shipping_tax_amount> + <base_custbalance_amount> + <to_order>*</to_order> + </base_custbalance_amount> + <base_grand_total> + <to_order>*</to_order> + </base_grand_total> + <hidden_tax_amount> + <to_order>*</to_order> + </hidden_tax_amount> + <base_hidden_tax_amount> + <to_order>*</to_order> + </base_hidden_tax_amount> + <shipping_hidden_tax_amount> + <to_order>*</to_order> + </shipping_hidden_tax_amount> + <base_shipping_hidden_tax_amount> + <to_order>*</to_order> + </base_shipping_hidden_tax_amount> + <prefix> + <to_order_address>*</to_order_address> + <to_customer_address>*</to_customer_address> + </prefix> + <firstname> + <to_order_address>*</to_order_address> + <to_customer_address>*</to_customer_address> + </firstname> + <middlename> + <to_order_address>*</to_order_address> + <to_customer_address>*</to_customer_address> + </middlename> + <lastname> + <to_order_address>*</to_order_address> + <to_customer_address>*</to_customer_address> + </lastname> + <suffix> + <to_order_address>*</to_order_address> + <to_customer_address>*</to_customer_address> + </suffix> + <company> + <to_order_address>*</to_order_address> + <to_customer_address>*</to_customer_address> + </company> + <street_full> + <to_order_address>street</to_order_address> + </street_full> + <street> + <to_customer_address>*</to_customer_address> + </street> + <city> + <to_order_address>*</to_order_address> + <to_customer_address>*</to_customer_address> + </city> + <region> + <to_order_address>*</to_order_address> + <to_customer_address>*</to_customer_address> + </region> + <region_id> + <to_order_address>*</to_order_address> + <to_customer_address>*</to_customer_address> + </region_id> + <postcode> + <to_order_address>*</to_order_address> + <to_customer_address>*</to_customer_address> + </postcode> + <country_id> + <to_order_address>*</to_order_address> + <to_customer_address>*</to_customer_address> + </country_id> + <telephone> + <to_order_address>*</to_order_address> + <to_customer_address>*</to_customer_address> + </telephone> + <fax> + <to_order_address>*</to_order_address> + <to_customer_address>*</to_customer_address> + </fax> + <email> + <to_order_address>*</to_order_address> + <to_customer_address>*</to_customer_address> + </email> + </sales_convert_quote_address> + <sales_convert_quote_payment> + <method> + <to_order_payment>*</to_order_payment> + </method> + <additional_data> + <to_order_payment>*</to_order_payment> + </additional_data> + <additional_information> + <to_order_payment>*</to_order_payment> + </additional_information> + <po_number> + <to_order_payment>*</to_order_payment> + </po_number> + <cc_type> + <to_order_payment>*</to_order_payment> + </cc_type> + <cc_number_enc> + <to_order_payment>*</to_order_payment> + </cc_number_enc> + <cc_last4> + <to_order_payment>*</to_order_payment> + </cc_last4> + <cc_owner> + <to_order_payment>*</to_order_payment> + </cc_owner> + <cc_exp_month> + <to_order_payment>*</to_order_payment> + </cc_exp_month> + <cc_exp_year> + <to_order_payment>*</to_order_payment> + </cc_exp_year> + <cc_number> + <to_order_payment>*</to_order_payment> + </cc_number> + <cc_cid> + <to_order_payment>*</to_order_payment> + </cc_cid> + <cc_ss_issue> + <to_order_payment>*</to_order_payment> + </cc_ss_issue> + <cc_ss_start_month> + <to_order_payment>*</to_order_payment> + </cc_ss_start_month> + <cc_ss_start_year> + <to_order_payment>*</to_order_payment> + </cc_ss_start_year> + </sales_convert_quote_payment> + <sales_convert_quote_item> + <sku> + <to_order_item>*</to_order_item> + </sku> + <name> + <to_order_item>*</to_order_item> + </name> + <description> + <to_order_item>*</to_order_item> + </description> + <weight> + <to_order_item>*</to_order_item> + </weight> + <is_qty_decimal> + <to_order_item>*</to_order_item> + </is_qty_decimal> + <qty> + <to_order_item>qty_ordered</to_order_item> + </qty> + <is_virtual> + <to_order_item>*</to_order_item> + </is_virtual> + <original_price> + <to_order_item>*</to_order_item> + </original_price> + <applied_rule_ids> + <to_order_item>*</to_order_item> + </applied_rule_ids> + <additional_data> + <to_order_item>*</to_order_item> + </additional_data> + <calculation_price> + <to_order_item>price</to_order_item> + </calculation_price> + <base_calculation_price> + <to_order_item>base_price</to_order_item> + </base_calculation_price> + <tax_percent> + <to_order_item>*</to_order_item> + </tax_percent> + <tax_amount> + <to_order_item>*</to_order_item> + </tax_amount> + <tax_before_discount> + <to_order_item>*</to_order_item> + </tax_before_discount> + <base_tax_before_discount> + <to_order_item>*</to_order_item> + </base_tax_before_discount> + <tax_string> + <to_order_item>*</to_order_item> + </tax_string> + <row_weight> + <to_order_item>*</to_order_item> + </row_weight> + <row_total> + <to_order_item>*</to_order_item> + </row_total> + <base_original_price> + <to_order_item>*</to_order_item> + </base_original_price> + <base_tax_amount> + <to_order_item>*</to_order_item> + </base_tax_amount> + <base_row_total> + <to_order_item>*</to_order_item> + </base_row_total> + <discount_percent> + <to_order_item_discount>*</to_order_item_discount> + </discount_percent> + <discount_amount> + <to_order_item_discount>*</to_order_item_discount> + </discount_amount> + <base_discount_amount> + <to_order_item_discount>*</to_order_item_discount> + </base_discount_amount> + <base_cost> + <to_order_item>*</to_order_item> + </base_cost> + <store_id> + <to_order_item>*</to_order_item> + </store_id> + <hidden_tax_amount> + <to_order_item>*</to_order_item> + </hidden_tax_amount> + <base_hidden_tax_amount> + <to_order_item>*</to_order_item> + </base_hidden_tax_amount> + <is_recurring> + <to_order_item>*</to_order_item> + </is_recurring> + <is_nominal> + <to_order_item>*</to_order_item> + </is_nominal> + </sales_convert_quote_item> + <sales_convert_order> + <customer_id> + <to_quote>*</to_quote> + </customer_id> + <customer_email> + <to_quote>*</to_quote> + </customer_email> + <customer_group_id> + <to_quote>*</to_quote> + </customer_group_id> + <customer_tax_class_id> + <to_quote>*</to_quote> + </customer_tax_class_id> + <customer_taxvat> + <to_quote>*</to_quote> + </customer_taxvat> + <customer_note> + <to_quote>*</to_quote> + </customer_note> + <customer_note_notify> + <to_quote>*</to_quote> + </customer_note_notify> + <customer_is_guest> + <to_quote>*</to_quote> + </customer_is_guest> + <global_currency_code> + <to_quote>*</to_quote> + <to_invoice>*</to_invoice> + <to_shipment>*</to_shipment> + <to_cm>*</to_cm> + </global_currency_code> + <base_currency_code> + <to_quote>*</to_quote> + <to_invoice>*</to_invoice> + <to_shipment>*</to_shipment> + <to_cm>*</to_cm> + </base_currency_code> + <store_currency_code> + <to_quote>*</to_quote> + <to_invoice>*</to_invoice> + <to_shipment>*</to_shipment> + <to_cm>*</to_cm> + </store_currency_code> + <order_currency_code> + <to_quote>quote_currency_code</to_quote> + <to_invoice>*</to_invoice> + <to_shipment>*</to_shipment> + <to_cm>*</to_cm> + </order_currency_code> + <store_to_base_rate> + <to_quote>*</to_quote> + <to_invoice>*</to_invoice> + <to_shipment>*</to_shipment> + <to_cm>*</to_cm> + </store_to_base_rate> + <store_to_order_rate> + <to_quote>store_to_quote_rate</to_quote> + <to_invoice>*</to_invoice> + <to_shipment>*</to_shipment> + <to_cm>*</to_cm> + </store_to_order_rate> + <base_to_global_rate> + <to_quote>*</to_quote> + <to_invoice>*</to_invoice> + <to_shipment>*</to_shipment> + <to_cm>*</to_cm> + </base_to_global_rate> + <base_to_order_rate> + <to_quote>base_to_quote_rate</to_quote> + <to_invoice>*</to_invoice> + <to_shipment>*</to_shipment> + <to_cm>*</to_cm> + </base_to_order_rate> + <grand_total> + <to_quote>*</to_quote> + <to_quote_address_shipping>*</to_quote_address_shipping> + </grand_total> + <base_grand_total> + <to_quote>*</to_quote> + <to_quote_address_shipping>*</to_quote_address_shipping> + </base_grand_total> + <coupon_code> + <to_quote>*</to_quote> + </coupon_code> + <applied_rule_ids> + <to_quote>*</to_quote> + </applied_rule_ids> + <weight> + <to_quote_address_shipping>*</to_quote_address_shipping> + </weight> + <shipping_method> + <to_quote_address_shipping>*</to_quote_address_shipping> + </shipping_method> + <shipping_description> + <to_quote_address_shipping>*</to_quote_address_shipping> + </shipping_description> + <shipping_rate> + <to_quote_address_shipping>*</to_quote_address_shipping> + </shipping_rate> + <subtotal> + <to_quote_address_shipping>*</to_quote_address_shipping> + </subtotal> + <tax_amount> + <to_quote_address_shipping>*</to_quote_address_shipping> + </tax_amount> + <tax_string> + <to_quote_address_shipping>*</to_quote_address_shipping> + </tax_string> + <discount_amount> + <to_quote_address_shipping>*</to_quote_address_shipping> + </discount_amount> + <discount_description> + <to_invoice>*</to_invoice> + </discount_description> + <discount_description> + <to_cm>*</to_cm> + </discount_description> + <shipping_amount> + <to_quote_address_shipping>*</to_quote_address_shipping> + </shipping_amount> + <shipping_incl_tax> + <to_quote_address_shipping>*</to_quote_address_shipping> + </shipping_incl_tax> + <custbalance_amount> + <to_quote_address_shipping>*</to_quote_address_shipping> + </custbalance_amount> + <base_subtotal> + <to_quote_address_shipping>*</to_quote_address_shipping> + </base_subtotal> + <base_tax_amount> + <to_quote_address_shipping>*</to_quote_address_shipping> + </base_tax_amount> + <base_discount_amount> + <to_quote_address_shipping>*</to_quote_address_shipping> + </base_discount_amount> + <base_shipping_amount> + <to_quote_address_shipping>*</to_quote_address_shipping> + </base_shipping_amount> + <base_shipping_incl_tax> + <to_quote_address_shipping>*</to_quote_address_shipping> + </base_shipping_incl_tax> + <base_custbalance_amount> + <to_quote_address_shipping>*</to_quote_address_shipping> + </base_custbalance_amount> + <shipping_tax_amount> + <to_cm>*</to_cm> + </shipping_tax_amount> + <base_shipping_tax_amount> + <to_cm>*</to_cm> + </base_shipping_tax_amount> + </sales_convert_order> + <sales_convert_order_address> + <prefix> + <to_quote_address>*</to_quote_address> + </prefix> + <firstname> + <to_quote_address>*</to_quote_address> + </firstname> + <middlename> + <to_quote_address>*</to_quote_address> + </middlename> + <lastname> + <to_quote_address>*</to_quote_address> + </lastname> + <suffix> + <to_quote_address>*</to_quote_address> + </suffix> + <company> + <to_quote_address>*</to_quote_address> + </company> + <street_full> + <to_quote_address>street</to_quote_address> + </street_full> + <city> + <to_quote_address>*</to_quote_address> + </city> + <region> + <to_quote_address>*</to_quote_address> + </region> + <region_id> + <to_quote_address>*</to_quote_address> + </region_id> + <postcode> + <to_quote_address>*</to_quote_address> + </postcode> + <country_id> + <to_quote_address>*</to_quote_address> + </country_id> + <telephone> + <to_quote_address>*</to_quote_address> + </telephone> + <fax> + <to_quote_address>*</to_quote_address> + </fax> + </sales_convert_order_address> + <sales_convert_order_payment> + <method> + <to_quote_payment>*</to_quote_payment> + </method> + <additional_data> + <to_quote_payment>*</to_quote_payment> + </additional_data> + <additional_information> + <to_quote_payment>*</to_quote_payment> + </additional_information> + <po_number> + <to_quote_payment>*</to_quote_payment> + </po_number> + <cc_type> + <to_quote_payment>*</to_quote_payment> + </cc_type> + <cc_number_enc> + <to_quote_payment>*</to_quote_payment> + </cc_number_enc> + <cc_last4> + <to_quote_payment>*</to_quote_payment> + </cc_last4> + <cc_owner> + <to_quote_payment>*</to_quote_payment> + </cc_owner> + <cc_exp_month> + <to_quote_payment>*</to_quote_payment> + </cc_exp_month> + <cc_exp_year> + <to_quote_payment>*</to_quote_payment> + </cc_exp_year> + <cc_ss_issue> + <to_quote_payment>*</to_quote_payment> + </cc_ss_issue> + <cc_ss_start_month> + <to_quote_payment>*</to_quote_payment> + </cc_ss_start_month> + <cc_ss_start_year> + <to_quote_payment>*</to_quote_payment> + </cc_ss_start_year> + </sales_convert_order_payment> + <sales_convert_order_item> + <sku> + <to_quote_item>*</to_quote_item> + <to_invoice_item>*</to_invoice_item> + <to_shipment_item>*</to_shipment_item> + <to_cm_item>*</to_cm_item> + </sku> + <name> + <to_quote_item>*</to_quote_item> + <to_invoice_item>*</to_invoice_item> + <to_shipment_item>*</to_shipment_item> + <to_cm_item>*</to_cm_item> + </name> + <description> + <to_quote_item>*</to_quote_item> + <to_invoice_item>*</to_invoice_item> + <to_shipment_item>*</to_shipment_item> + <to_cm_item>*</to_cm_item> + </description> + <weight> + <to_quote_item>*</to_quote_item> + <to_shipment_item>*</to_shipment_item> + </weight> + <price> + <to_quote_item>custom_price</to_quote_item> + <to_invoice_item>*</to_invoice_item> + <to_shipment_item>*</to_shipment_item> + <to_cm_item>*</to_cm_item> + </price> + <discount_percent> + <to_quote_item_discount>*</to_quote_item_discount> + </discount_percent> + <discount_amount> + <to_quote_item_discount>*</to_quote_item_discount> + </discount_amount> + <tax_percent> + <to_quote_item>*</to_quote_item> + </tax_percent> + <tax_string> + <to_quote_item>*</to_quote_item> + </tax_string> + <tax_amount> + <to_quote_item>*</to_quote_item> + </tax_amount> + <row_weight> + <to_quote_item>*</to_quote_item> + </row_weight> + <row_total> + <to_quote_item>*</to_quote_item> + </row_total> + <applied_rule_ids> + <to_quote_item>*</to_quote_item> + </applied_rule_ids> + <base_discount_amount> + <to_quote_item_discount>*</to_quote_item_discount> + </base_discount_amount> + <base_tax_amount> + <to_quote_item>*</to_quote_item> + </base_tax_amount> + <base_row_total> + <to_quote_item>*</to_quote_item> + </base_row_total> + <base_price> + <to_invoice_item>base_price</to_invoice_item> + <to_shipment_item>*</to_shipment_item> + <to_cm_item>*</to_cm_item> + </base_price> + <base_cost> + <to_invoice_item>*</to_invoice_item> + <to_cm_item>*</to_cm_item> + <to_quote_item>*</to_quote_item> + </base_cost> + </sales_convert_order_item> + <customer_account> + <id> + <to_quote>customer_id</to_quote> + </id> + <email> + <to_quote>customer_email</to_quote> + </email> + <prefix> + <to_quote>customer_prefix</to_quote> + </prefix> + <firstname> + <to_quote>customer_firstname</to_quote> + </firstname> + <middlename> + <to_quote>customer_middlename</to_quote> + </middlename> + <lastname> + <to_quote>customer_lastname</to_quote> + </lastname> + <suffix> + <to_quote>customer_suffix</to_quote> + </suffix> + <group_id> + <to_quote>customer_group_id</to_quote> + </group_id> + <tax_class_id> + <to_quote>customer_tax_class_id</to_quote> + </tax_class_id> + <taxvat> + <to_quote>customer_taxvat</to_quote> + </taxvat> + <dob> + <to_quote>customer_dob</to_quote> + </dob> + <gender> + <to_quote>customer_gender</to_quote> + </gender> + </customer_account> + <customer_address> + <id> + <to_quote_address>customer_address_id</to_quote_address> + </id> + <parent_id> + <to_quote_address>customer_id</to_quote_address> + </parent_id> + <prefix> + <to_quote_address>*</to_quote_address> + </prefix> + <firstname> + <to_quote_address>*</to_quote_address> + </firstname> + <middlename> + <to_quote_address>*</to_quote_address> + </middlename> + <lastname> + <to_quote_address>*</to_quote_address> + </lastname> + <suffix> + <to_quote_address>*</to_quote_address> + </suffix> + <company> + <to_quote_address>*</to_quote_address> + </company> + <street_full> + <to_quote_address>street</to_quote_address> + </street_full> + <city> + <to_quote_address>*</to_quote_address> + </city> + <region> + <to_quote_address>*</to_quote_address> + </region> + <region_id> + <to_quote_address>*</to_quote_address> + </region_id> + <postcode> + <to_quote_address>*</to_quote_address> + </postcode> + <country_id> + <to_quote_address>*</to_quote_address> + </country_id> + <telephone> + <to_quote_address>*</to_quote_address> + </telephone> + <fax> + <to_quote_address>*</to_quote_address> + </fax> + </customer_address> + </fieldsets> <template> <email> <sales_email_order_template translate="label" module="Mage_Sales"> @@ -378,7 +1255,8 @@ <discount translate="title"> <title>Discount</title> <source_field>discount_amount</source_field> - <amount_prefix>-</amount_prefix> + <amount_prefix></amount_prefix> + <title_source_field>discount_description</title_source_field> <font_size>7</font_size> <display_zero>0</display_zero> <sort_order>200</sort_order> diff --git a/app/code/core/Mage/Sales/sql/sales_setup/upgrade-1.6.0.7-1.6.0.8.php b/app/code/core/Mage/Sales/sql/sales_setup/upgrade-1.6.0.7-1.6.0.8.php new file mode 100644 index 00000000000..eacc1b5ab42 --- /dev/null +++ b/app/code/core/Mage/Sales/sql/sales_setup/upgrade-1.6.0.7-1.6.0.8.php @@ -0,0 +1,44 @@ +<?php +/** + * Magento + * + * 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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category Mage + * @package Mage_Sales + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +/* @var $installer Mage_Sales_Model_Resource_Setup */ +$installer = $this; + +$invoiceTable = $installer->getTable('sales_flat_invoice'); +$installer->getConnection() + ->addColumn($invoiceTable, 'discount_description', array( + 'type' => Varien_Db_Ddl_Table::TYPE_TEXT, + 'length' => 255, + 'comment' => 'Discount Description' + )); + +$creditmemoTable = $installer->getTable('sales_flat_creditmemo'); +$installer->getConnection() + ->addColumn($creditmemoTable, 'discount_description', array( + 'type' => Varien_Db_Ddl_Table::TYPE_TEXT, + 'length' => 255, + 'comment' => 'Discount Description' + )); diff --git a/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product.php b/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product.php index f392a572e54..22ae2925591 100644 --- a/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product.php +++ b/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product.php @@ -56,12 +56,10 @@ class Mage_SalesRule_Model_Rule_Condition_Product extends Mage_Rule_Model_Condit */ public function validate(Varien_Object $object) { - $product = false; - if ($object->getProduct() instanceof Mage_Catalog_Model_Product) { - $product = $object->getProduct(); - } else { - $product = Mage::getModel('Mage_Catalog_Model_Product') - ->load($object->getProductId()); + /** @var Mage_Catalog_Model_Product $product */ + $product = $object->getProduct(); + if (!($product instanceof Mage_Catalog_Model_Product)) { + $product = Mage::getModel('Mage_Catalog_Model_Product')->load($object->getProductId()); } $product @@ -69,6 +67,12 @@ class Mage_SalesRule_Model_Rule_Condition_Product extends Mage_Rule_Model_Condit ->setQuoteItemPrice($object->getPrice()) // possible bug: need to use $object->getBasePrice() ->setQuoteItemRowTotal($object->getBaseRowTotal()); - return parent::validate($product); + $valid = parent::validate($product); + if (!$valid && $product->getTypeId() == Mage_Catalog_Model_Product_Type_Configurable::TYPE_CODE) { + $children = $object->getChildren(); + $valid = $children && $this->validate($children[0]); + } + + return $valid; } } diff --git a/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product/Subselect.php b/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product/Subselect.php index 8f52c0a60d0..dd7145ed881 100644 --- a/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product/Subselect.php +++ b/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product/Subselect.php @@ -113,7 +113,7 @@ class Mage_SalesRule_Model_Rule_Condition_Product_Subselect $attr = $this->getAttribute(); $total = 0; - foreach ($object->getQuote()->getAllItems() as $item) { + foreach ($object->getQuote()->getAllVisibleItems() as $item) { if (parent::validate($item)) { $total += $item->getData($attr); } diff --git a/app/code/core/Mage/Shipping/Model/Carrier/Tablerate.php b/app/code/core/Mage/Shipping/Model/Carrier/Tablerate.php index 78632ab2773..6f9f7bedee6 100644 --- a/app/code/core/Mage/Shipping/Model/Carrier/Tablerate.php +++ b/app/code/core/Mage/Shipping/Model/Carrier/Tablerate.php @@ -77,6 +77,7 @@ class Mage_Shipping_Model_Carrier_Tablerate // Free shipping by qty $freeQty = 0; if ($request->getAllItems()) { + $freePackageValue = 0; foreach ($request->getAllItems() as $item) { if ($item->getProduct()->isVirtual() || $item->getParentItem()) { continue; @@ -85,17 +86,23 @@ class Mage_Shipping_Model_Carrier_Tablerate if ($item->getHasChildren() && $item->isShipSeparately()) { foreach ($item->getChildren() as $child) { if ($child->getFreeShipping() && !$child->getProduct()->isVirtual()) { - $freeQty += $item->getQty() * ($child->getQty() - (is_numeric($child->getFreeShipping()) ? $child->getFreeShipping() : 0)); + $freeShipping = is_numeric($child->getFreeShipping()) ? $child->getFreeShipping() : 0; + $freeQty += $item->getQty() * ($child->getQty() - $freeShipping); } } } elseif ($item->getFreeShipping()) { - $freeQty += ($item->getQty() - (is_numeric($item->getFreeShipping()) ? $item->getFreeShipping() : 0)); + $freeShipping = is_numeric($item->getFreeShipping()) ? $item->getFreeShipping() : 0; + $freeQty += $item->getQty() - $freeShipping; + $freePackageValue += $item->getBaseRowTotal(); } } + $oldValue = $request->getPackageValue(); + $request->setPackageValue($oldValue - $freePackageValue); } if (!$request->getConditionName()) { - $request->setConditionName($this->getConfigData('condition_name') ? $this->getConfigData('condition_name') : $this->_default_condition_name); + $conditionName = $this->getConfigData('condition_name'); + $request->setConditionName($conditionName ? $conditionName : $this->_default_condition_name); } // Package weight and qty free shipping diff --git a/app/code/core/Mage/Tag/Model/Resource/Customer/Collection.php b/app/code/core/Mage/Tag/Model/Resource/Customer/Collection.php index 28956b76a4f..2ea3f5ae229 100755 --- a/app/code/core/Mage/Tag/Model/Resource/Customer/Collection.php +++ b/app/code/core/Mage/Tag/Model/Resource/Customer/Collection.php @@ -206,7 +206,7 @@ class Mage_Tag_Model_Resource_Customer_Collection extends Mage_Customer_Model_Re ->join( array('tr' => $tagRelationTable), 'tr.customer_id = e.entity_id', - array('tag_relation_id', 'product_id', 'active') + array('tag_relation_id', 'product_id', 'active', 'added_in' => 'store_id') ) ->join(array('t' => $tagTable), 't.tag_id = tr.tag_id', array('*')); } @@ -229,13 +229,13 @@ class Mage_Tag_Model_Resource_Customer_Collection extends Mage_Customer_Model_Re } /** - * Adds Product names to select + * Adds Product names to item * * @return Mage_Tag_Model_Resource_Customer_Collection */ public function addProductName() { - $productsId = array(); + $productsId = array(); $productsData = array(); foreach ($this->getItems() as $item) { @@ -269,23 +269,31 @@ class Mage_Tag_Model_Resource_Customer_Collection extends Mage_Customer_Model_Re } /** - * Sets order by attribute + * Adds Product names to select * - * @param string $attribute - * @param string $dir * @return Mage_Tag_Model_Resource_Customer_Collection */ - public function setOrder($attribute, $dir = 'desc') + public function addProductToSelect() { - switch( $attribute ) { - case 'name': - case 'status': - $this->getSelect()->order($attribute . ' ' . $dir); - break; - - default: - parent::setOrder($attribute, $dir); + $resource = Mage::getModel('Mage_Catalog_Model_Product')->getResource(); + + // add product attributes to select + foreach (array('name' => 'value') as $field => $fieldName) { + $attr = $resource->getAttribute($field); + $this->_select->joinLeft( + array($field => $attr->getBackend()->getTable()), + 'tr.product_id = ' . $field . '.entity_id AND ' . $field . '.attribute_id = ' . $attr->getId(), + array('product_' . $field => $fieldName) + ); } + + // add product fields + $this->_select->joinLeft( + array('p' => $this->getTable('catalog_product_entity')), + 'tr.product_id = p.entity_id', + array('product_sku' => 'sku') + ); + return $this; } @@ -329,4 +337,30 @@ class Mage_Tag_Model_Resource_Customer_Collection extends Mage_Customer_Model_Re } } + /** + * Treat "order by" items as attributes to sort + * + * @return Mage_Tag_Model_Resource_Customer_Collection + */ + protected function _renderOrders() + { + if (!$this->_isOrdersRendered) { + parent::_renderOrders(); + + $orders = $this->getSelect() + ->getPart(Zend_Db_Select::ORDER); + + $appliedOrders = array(); + foreach ($orders as $order) { + $appliedOrders[$order[0]] = true; + } + + foreach ($this->_orders as $field => $direction) { + if (empty($appliedOrders[$field])) { + $this->_select->order(new Zend_Db_Expr($field . ' ' . $direction)); + } + } + } + return $this; + } } diff --git a/app/code/core/Mage/Tag/Model/Resource/Product/Collection.php b/app/code/core/Mage/Tag/Model/Resource/Product/Collection.php index 3c477f16135..5a5fcbbdf93 100755 --- a/app/code/core/Mage/Tag/Model/Resource/Product/Collection.php +++ b/app/code/core/Mage/Tag/Model/Resource/Product/Collection.php @@ -407,18 +407,28 @@ class Mage_Tag_Model_Resource_Product_Collection extends Mage_Catalog_Model_Reso } /** - * Set attribute order + * Treat "order by" items as attributes to sort * - * @param string $attribute - * @param string $dir * @return Mage_Tag_Model_Resource_Product_Collection */ - public function setOrder($attribute, $dir = 'desc') + protected function _renderOrders() { - if ($attribute == 'popularity') { - $this->getSelect()->order($attribute . ' ' . $dir); - } else { - parent::setOrder($attribute, $dir); + if (!$this->_isOrdersRendered) { + parent::_renderOrders(); + + $orders = $this->getSelect() + ->getPart(Zend_Db_Select::ORDER); + + $appliedOrders = array(); + foreach ($orders as $order) { + $appliedOrders[$order[0]] = true; + } + + foreach ($this->_orders as $field => $direction) { + if (empty($appliedOrders[$field])) { + $this->_select->order(new Zend_Db_Expr($field . ' ' . $direction)); + } + } } return $this; } diff --git a/app/code/core/Mage/Tax/Model/Calculation/Rate.php b/app/code/core/Mage/Tax/Model/Calculation/Rate.php index 4a2badc4e61..b66a5825bdd 100644 --- a/app/code/core/Mage/Tax/Model/Calculation/Rate.php +++ b/app/code/core/Mage/Tax/Model/Calculation/Rate.php @@ -70,14 +70,36 @@ class Mage_Tax_Model_Calculation_Rate extends Mage_Core_Model_Abstract */ protected function _beforeSave() { + if ($this->getCode() === '' || $this->getTaxCountryId() === '' || $this->getRate() === '' + || $this->getZipIsRange() && ($this->getZipFrom() === '' || $this->getZipTo() === '') + ) { + Mage::throwException(Mage::helper('Mage_Tax_Helper_Data')->__('Please fill all required fields with valid information.')); + } + + if (!is_numeric($this->getRate()) || $this->getRate() <= 0) { + Mage::throwException(Mage::helper('Mage_Tax_Helper_Data')->__('Rate Percent should be a positive number.')); + } + if ($this->getZipIsRange()) { - $zipFrom = substr($this->getZipFrom(), 0, 9); - $zipTo = substr($this->getZipTo(), 0, 9); + $zipFrom = $this->getZipFrom(); + $zipTo = $this->getZipTo(); + + if (strlen($zipFrom) > 9 || strlen($zipTo) > 9) { + Mage::throwException(Mage::helper('Mage_Tax_Helper_Data')->__('Maximum zip code length is 9.')); + } + + if (!is_numeric($zipFrom) || !is_numeric($zipTo) || $zipFrom < 0 || $zipTo < 0) { + Mage::throwException(Mage::helper('Mage_Tax_Helper_Data')->__('Zip code should not contain characters other than digits.')); + } + + if ($zipFrom > $zipTo) { + Mage::throwException(Mage::helper('Mage_Tax_Helper_Data')->__('Range To should be equal or greater than Range From.')); + } + $this->setTaxPostcode($zipFrom . '-' . $zipTo); } else { $taxPostCode = $this->getTaxPostcode(); - // postcode must be not longer than 10 symbols if (strlen($taxPostCode) > 10) { $taxPostCode = substr($taxPostCode, 0, 10); } diff --git a/app/code/core/Mage/Usa/etc/config.xml b/app/code/core/Mage/Usa/etc/config.xml index 8e1ec074601..d95018daae2 100644 --- a/app/code/core/Mage/Usa/etc/config.xml +++ b/app/code/core/Mage/Usa/etc/config.xml @@ -177,7 +177,7 @@ <usps> <active>0</active> <sallowspecific>0</sallowspecific> - <allowed_methods>Bound Printed Matter,Express Mail,Express Mail Flat Rate Envelope,Express Mail Flat Rate Envelope Hold For Pickup,Express Mail Flat-Rate Envelope Sunday/Holiday Guarantee,Express Mail Hold For Pickup,Express Mail International,Express Mail International Flat Rate Envelope,Express Mail PO to PO,Express Mail Sunday/Holiday Guarantee,First-Class Mail International Large Envelope,First-Class Mail International Letters,First-Class Mail International Package,First-Class Mail International Parcel,First-Class,First-Class Mail,First-Class Mail Flat,First-Class Mail Large Envelope,First-Class Mail International,First-Class Mail Letter,First-Class Mail Parcel,First-Class Mail Package,Global Express Guaranteed (GXG),Global Express Guaranteed Non-Document Non-Rectangular,Global Express Guaranteed Non-Document Rectangular,Library Mail,Media Mail,Parcel Post,Priority Mail,Priority Mail Small Flat Rate Box,Priority Mail Medium Flat Rate Box,Priority Mail Large Flat Rate Box,Priority Mail Flat Rate Box,Priority Mail Flat Rate Envelope,Priority Mail International,Priority Mail International Flat Rate Box,Priority Mail International Flat Rate Envelope,Priority Mail International Small Flat Rate Box,Priority Mail International Medium Flat Rate Box,Priority Mail International Large Flat Rate Box,USPS GXG Envelopes</allowed_methods> + <allowed_methods>Bound Printed Matter,Express Mail,Express Mail Flat Rate Envelope,Express Mail Flat Rate Envelope Hold For Pickup,Express Mail Flat-Rate Envelope Sunday/Holiday Guarantee,Express Mail Hold For Pickup,Express Mail International,Express Mail International Flat Rate Envelope,Express Mail PO to PO,Express Mail Sunday/Holiday Guarantee,First-Class Mail International Large Envelope,First-Class Mail International Letter,First-Class Mail International Package,First-Class Mail International Parcel,First-Class,First-Class Mail,First-Class Mail Flat,First-Class Mail Large Envelope,First-Class Mail International,First-Class Mail Letter,First-Class Mail Parcel,First-Class Mail Package,Global Express Guaranteed (GXG),Global Express Guaranteed Non-Document Non-Rectangular,Global Express Guaranteed Non-Document Rectangular,Library Mail,Media Mail,Parcel Post,Priority Mail,Priority Mail Small Flat Rate Box,Priority Mail Medium Flat Rate Box,Priority Mail Large Flat Rate Box,Priority Mail Flat Rate Box,Priority Mail Flat Rate Envelope,Priority Mail International,Priority Mail International Flat Rate Box,Priority Mail International Flat Rate Envelope,Priority Mail International Small Flat Rate Box,Priority Mail International Medium Flat Rate Box,Priority Mail International Large Flat Rate Box,USPS GXG Envelopes</allowed_methods> <container>VARIABLE</container> <cutoff_cost/> <free_method/> diff --git a/app/code/core/Mage/Wishlist/Block/Customer/Wishlist/Item/Options.php b/app/code/core/Mage/Wishlist/Block/Customer/Wishlist/Item/Options.php index dcb8f64ac8a..57f63081939 100644 --- a/app/code/core/Mage/Wishlist/Block/Customer/Wishlist/Item/Options.php +++ b/app/code/core/Mage/Wishlist/Block/Customer/Wishlist/Item/Options.php @@ -84,34 +84,56 @@ class Mage_Wishlist_Block_Customer_Wishlist_Item_Options extends Mage_Wishlist_B } /** - * Render block html + * Retrieve product configured options * - * @return string + * @return array */ - protected function _toHtml() + public function getConfiguredOptions() { - $cfg = $this->getOptionsRenderCfg($this->getItem()->getProduct()->getTypeId()); - if (!$cfg) { - return ''; + $item = $this->getItem(); + $data = $this->getOptionsRenderCfg($item->getProduct()->getTypeId()); + if (empty($data['helper']) + || !$this->helper($data['helper']) instanceof Mage_Catalog_Helper_Product_Configuration_Interface + ) { + Mage::throwException($this->__("Helper for wishlist options rendering doesn't implement required interface.")); } - $helper = Mage::helper($cfg['helper']); - if (!($helper instanceof Mage_Catalog_Helper_Product_Configuration_Interface)) { - Mage::throwException($this->__("Helper for wishlist options rendering doesn't implement required interface.")); + return $this->helper($data['helper'])->getOptions($item); + } + + /** + * Retrieve block template + * + * @return string + */ + public function getTemplate() + { + $template = parent::getTemplate(); + if ($template) { + return $template; } - if ($cfg['template']) { - $template = $cfg['template']; - } else { - $cfgDefault = $this->getOptionsRenderCfg('default'); - if (!$cfgDefault) { - return ''; - } - $template = $cfgDefault['template']; + $item = $this->getItem(); + if (!$item) { + return ''; } + $data = $this->getOptionsRenderCfg($item->getProduct()->getTypeId()); + if (empty($data['template'])) { + $data = $this->getOptionsRenderCfg('default'); + } + + return empty($data['template']) ? '' : $data['template']; + } + + /** + * Render block html + * + * @return string + */ + protected function _toHtml() + { + $this->setOptionList($this->getConfiguredOptions()); - $this->setTemplate($template) - ->setOptionList($helper->getOptions($this->getItem())); return parent::_toHtml(); } } diff --git a/app/code/core/Mage/Wishlist/controllers/IndexController.php b/app/code/core/Mage/Wishlist/controllers/IndexController.php index 38ebd227196..e90f31a9e91 100644 --- a/app/code/core/Mage/Wishlist/controllers/IndexController.php +++ b/app/code/core/Mage/Wishlist/controllers/IndexController.php @@ -349,7 +349,10 @@ class Mage_Wishlist_IndexController extends Mage_Wishlist_Controller_Abstract // Extract new values $description = (string) $description; - if (!strlen($description)) { + + if ($description == Mage::helper('Mage_Wishlist_Helper_Data')->defaultCommentString()) { + $description = ''; + } elseif (!strlen($description)) { $description = $item->getDescription(); } diff --git a/app/code/core/Mage/Wishlist/view/frontend/item/column/cart.phtml b/app/code/core/Mage/Wishlist/view/frontend/item/column/cart.phtml index 84c266a3f70..f1e1b0b7a6e 100644 --- a/app/code/core/Mage/Wishlist/view/frontend/item/column/cart.phtml +++ b/app/code/core/Mage/Wishlist/view/frontend/item/column/cart.phtml @@ -28,9 +28,12 @@ /* @var Mage_Wishlist_Model_Item $item */ $item = $this->getItem(); $product = $item->getProduct(); +$options = $this->getChildBlock('customer.wishlist.item.options') + ->setItem($item) + ->getConfiguredOptions(); ?> <div class="cart-cell"> -<?php echo $this->getPriceHtml($product);?> +<?php echo $this->getPriceHtml($product, empty($options));?> <div class="add-to-cart-alt"> <?php if ($item->canHaveQty() && $item->getProduct()->isVisibleInSiteVisibility()): ?> <input type="text" class="input-text qty validate-not-negative-number" name="qty[<?php echo $item->getId() ?>]" value="<?php echo $this->getAddToCartQty($item) * 1 ?>" /> diff --git a/app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/List.php b/app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/List.php index 957cbe354e8..72615e14464 100644 --- a/app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/List.php +++ b/app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/List.php @@ -293,17 +293,12 @@ class Mage_XmlConnect_Block_Checkout_Payment_Method_List extends Mage_Payment_Bl /** * Check and prepare payment method model * - * @param mixed $method + * @param Mage_Payment_Model_Method_Abstract $method * @return bool */ protected function _canUseMethod($method) { - if (!($method instanceof Mage_Payment_Model_Method_Abstract) - || !$method->canUseCheckout() - || !$method->isAvailable($this->getQuote()) - ) { - return false; - } - return parent::_canUseMethod($method); + return ($method instanceof Mage_Payment_Model_Method_Abstract) && $method->canUseCheckout() + && $method->isAvailable($this->getQuote()) && parent::_canUseMethod($method); } } diff --git a/app/code/core/Mage/XmlConnect/controllers/CheckoutController.php b/app/code/core/Mage/XmlConnect/controllers/CheckoutController.php index 8547d9ba40d..6a37a7b34ff 100644 --- a/app/code/core/Mage/XmlConnect/controllers/CheckoutController.php +++ b/app/code/core/Mage/XmlConnect/controllers/CheckoutController.php @@ -459,7 +459,13 @@ class Mage_XmlConnect_CheckoutController extends Mage_XmlConnect_Controller_Acti return; } } - if ($data = $this->getRequest()->getPost('payment', false)) { + $data = $this->getRequest()->getPost('payment', array()); + if ($data) { + $data['checks'] = Mage_Payment_Model_Method_Abstract::CHECK_USE_CHECKOUT + | Mage_Payment_Model_Method_Abstract::CHECK_USE_FOR_COUNTRY + | Mage_Payment_Model_Method_Abstract::CHECK_USE_FOR_CURRENCY + | Mage_Payment_Model_Method_Abstract::CHECK_ORDER_TOTAL_MIN_MAX + | Mage_Payment_Model_Method_Abstract::CHECK_ZERO_TOTAL; $this->getOnepage()->getQuote()->getPayment()->importData($data); } $this->getOnepage()->saveOrder(); diff --git a/app/design/frontend/default/iphone/Mage_Bundle/layout.xml b/app/design/frontend/default/iphone/Mage_Bundle/layout.xml index b5729173d4a..4810bce2eda 100644 --- a/app/design/frontend/default/iphone/Mage_Bundle/layout.xml +++ b/app/design/frontend/default/iphone/Mage_Bundle/layout.xml @@ -20,7 +20,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default + * @package default_iphone * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ @@ -92,12 +92,6 @@ Adding custom product price block </reference> </default> - <wishlist_index_index> - <reference name="customer.wishlist"> - <action method="addOptionsRenderCfg"><type>bundle</type><helper>Mage_Bundle_Helper_Catalog_Product_Configuration</helper></action> - </reference> - </wishlist_index_index> - <catalog_product_view> <reference name="catalog.product.related"> <action method="addPriceBlockType"><type>bundle</type><block>Mage_Bundle_Block_Catalog_Product_Price</block><template>catalog/product/price.phtml</template></action> @@ -219,7 +213,7 @@ Additional block for bundle product type <reference name="product.info.options.wrapper.bottom"> <remove name="product.tierprices" /> <block type="Mage_Bundle_Block_Catalog_Product_View" name="bundle.tierprices" as="tierprices" before="-" template="catalog/product/view/tierprices.phtml"/> - <block type="Mage_CatalogInventory_Block_Qtyincrements" name="product.info.extrahint" as="extrahint" template="qtyincrements.phtml"/> + <block type="Mage_CatalogInventory_Block_Qtyincrements" name="product.info.qtyincrements" before="-" template="qtyincrements.phtml"/> </reference> <reference name="product.clone_prices"> <action method="addPriceBlockType"><type>bundle</type><block>Mage_Bundle_Block_Catalog_Product_Price</block><template>catalog/product/view/price.phtml</template></action> diff --git a/app/design/frontend/default/iphone/Mage_Bundle/sales/order/items/renderer.phtml b/app/design/frontend/default/iphone/Mage_Bundle/sales/order/items/renderer.phtml index b71b5b2f6d9..042072586cd 100644 --- a/app/design/frontend/default/iphone/Mage_Bundle/sales/order/items/renderer.phtml +++ b/app/design/frontend/default/iphone/Mage_Bundle/sales/order/items/renderer.phtml @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default + * @package default_iphone * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/default/iphone/Mage_Catalog/category/view.phtml b/app/design/frontend/default/iphone/Mage_Catalog/category/view.phtml new file mode 100644 index 00000000000..63f5702798c --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Catalog/category/view.phtml @@ -0,0 +1,70 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** + * Category view template + * + * @see Mage_Catalog_Block_Category_View + */ +?> +<?php + $_helper = $this->helper('Mage_Catalog_Helper_Output'); + $_category = $this->getCurrentCategory(); + $_categoryTitle = '<div class="category-title page-title"><h1>'.$_helper->categoryAttribute($_category, $_category->getName(), 'name').'</h1></div>'; + $_imgUrl = $_category->getImageUrl(); + $_imgHtml = ''; + if ($_imgUrl) { + $_imgHtml = '<p class="category-image"><img src="'.$_imgUrl.'" alt="'.$this->escapeHtml($_category->getName()).'" title="'.$this->escapeHtml($_category->getName()).'" /></p>'; + $_imgHtml = $_helper->categoryAttribute($_category, $_imgHtml, 'image'); + } +?> +<?php echo $this->getMessagesBlock()->toHtml() ?> +<div class="category-view"> + <?php if($_imgUrl): ?> + <?php echo $_imgHtml ?> + <?php endif; ?> + + <?php if($_description=$this->getCurrentCategory()->getDescription()): ?> + <div class="category-description std"> + <?php echo $_helper->categoryAttribute($_category, $_description, 'description') ?> + </div> + <?php endif; ?> + + <?php if($this->isContentMode()): ?> + <?php echo $_categoryTitle ?> + <?php echo $this->getCmsBlockHtml() ?> + + <?php elseif($this->isMixedMode()): ?> + <?php echo $this->getCmsBlockHtml() ?> + <?php echo $_categoryTitle ?> + <?php echo $this->getProductListHtml() ?> + + <?php else: ?> + <?php echo $_categoryTitle ?> + <?php echo $this->getProductListHtml() ?> + <?php endif; ?> +</div> diff --git a/app/design/frontend/default/iphone/Mage_Catalog/layer/view.phtml b/app/design/frontend/default/iphone/Mage_Catalog/layer/view.phtml index 9bf8a22920b..7ed0fa57ed4 100644 --- a/app/design/frontend/default/iphone/Mage_Catalog/layer/view.phtml +++ b/app/design/frontend/default/iphone/Mage_Catalog/layer/view.phtml @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default + * @package default_iphone * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ @@ -32,23 +32,24 @@ */ ?> <?php if($this->canShowBlock()): ?> -<div class="filters-block-wrap"> - <div class="filters-block"> - <h3><?php echo $this->__('Shop By') ?></h3> - <div class="block-content"> - <?php echo $this->getStateHtml() ?> - <?php if($this->canShowOptions()): ?> - <?php $_filters = $this->getFilters() ?> - <?php foreach ($_filters as $_filter): ?> +<div class="filters-block"> + <?php echo $this->getStateHtml() ?> + <?php if ($this->getLayer()->getState()->getFilters()): ?> + <div class="actions"><a href="<?php echo $this->getClearUrl() ?>"><?php echo $this->__('Clear All') ?></a></div> + <?php endif; ?> + <div class="block-content"> + <?php if($this->canShowOptions()): ?> + <h3><?php echo $this->__('Shop By') ?></h3> + <?php $_filters = $this->getFilters() ?> + <?php foreach ($_filters as $_filter): ?> <?php if($_filter->getItemsCount()): ?> <dl> <dt><?php echo $this->__($_filter->getName()) ?></dt> <dd><?php echo $_filter->getHtml() ?></dd> </dl> <?php endif; ?> - <?php endforeach; ?> - <?php endif; ?> - </div> + <?php endforeach; ?> + <?php endif; ?> </div> </div> <?php endif; ?> diff --git a/app/design/frontend/default/iphone/Mage_Catalog/layout.xml b/app/design/frontend/default/iphone/Mage_Catalog/layout.xml index af844b8ba37..e4fe5e3bf86 100644 --- a/app/design/frontend/default/iphone/Mage_Catalog/layout.xml +++ b/app/design/frontend/default/iphone/Mage_Catalog/layout.xml @@ -31,6 +31,8 @@ Supported layout update handles (action): Supported layout update handles (special): - default +- catalog_category_default +- catalog_category_layered - catalog_product_view --> @@ -41,29 +43,13 @@ Default layout, loads most of the pages --> <default> + <!-- Mage_Catalog --> - <reference name="top.menu"> - <block type="Mage_Catalog_Block_Navigation" name="catalog.topnav" template="navigation/top.phtml"/> - </reference> - <reference name="header"> - <block type="Mage_Catalog_Block_Product_Compare_Sidebar" name="catalogCompareLink" template="product/compare/sidebar.phtml"/> - </reference> - <reference name="left"> - <block type="Mage_Core_Block_Template" name="left.permanent.callout" template="Mage_Page::callouts/left_col.phtml"> - <action method="setImgSrc"><src>images/media/col_left_callout.jpg</src></action> - <action method="setImgAlt" translate="alt" module="Mage_Catalog"><alt>Our customer service is available 24/7. Call us at (555) 555-0123.</alt></action> - <action method="setLinkUrl"><url>checkout/cart</url></action> - </block> - </reference> - <reference name="right"> - <block type="Mage_Core_Block_Template" name="right.permanent.callout" template="Mage_Page::callouts/right_col.phtml"> - <action method="setImgSrc"><src>images/media/col_right_callout.jpg</src></action> - <action method="setImgAlt" translate="alt" module="Mage_Catalog"><alt>Keep your eyes open for our special Back to School items and save A LOT!</alt></action> + <reference name="top.container"> + <block type="Mage_Cms_Block_Block" name="cms.top.callout" before="-"> + <action method="setBlockId"><block_id>top_callout</block_id></action> </block> </reference> - <reference name="footer_links"> - <action method="addLink" translate="label title" module="Mage_Catalog" ifconfig="catalog/seo/site_map"><label>Site Map</label><url helper="Mage_Catalog_Helper_Map::getCategoryUrl" /><title>Site Map</title></action> - </reference> <block type="Mage_Catalog_Block_Product_Price_Template" name="catalog_product_price_template" /> </default> @@ -73,10 +59,39 @@ Category default layout --> <catalog_category_view translate="label" type="page" parent="default"> - <label>Catalog Category</label> + <label>Catalog Category (Non-Anchor)</label> <reference name="content"> <block type="Mage_Catalog_Block_Category_View" name="category.products" template="category/view.phtml"> <block type="Mage_Catalog_Block_Product_List" name="product_list" template="product/list.phtml"> + <block type="Mage_Catalog_Block_Product_List_Toolbar" name="product_list_toolbar" template="product/list/toolbar.phtml"> + <block type="Mage_Page_Block_Html_Pager" name="product_list_toolbar_pager"/> + <!-- The following code shows how to set your own pager increments --> + <!-- + <action method="setDefaultListPerPage"><limit>4</limit></action> + <action method="setDefaultGridPerPage"><limit>9</limit></action> + <action method="addPagerLimit"><mode>list</mode><limit>2</limit></action> + <action method="addPagerLimit"><mode>list</mode><limit>4</limit></action> + <action method="addPagerLimit"><mode>list</mode><limit>6</limit></action> + <action method="addPagerLimit"><mode>list</mode><limit>8</limit></action> + <action method="addPagerLimit" translate="label"><mode>list</mode><limit>all</limit><label>All</label></action> + --> + </block> + <action method="setToolbarBlockName"><name>product_list_toolbar</name></action> + </block> + </block> + </reference> + </catalog_category_view> + +<!-- +Category layered navigation layout +--> + + <catalog_category_view_type_layered translate="label"> + <label>Catalog Category (Anchor)</label> + <reference name="content"> + <block type="Mage_Catalog_Block_Category_View" name="category.products" template="category/view.phtml"> + <block type="Mage_Catalog_Block_Product_List" name="product_list" template="product/list.phtml"> + <!-- <action method="addReviewSummaryTemplate"><type>default</type><template>review/helper/su.phtml</template></action> --> <block type="Mage_Catalog_Block_Product_List_Toolbar" name="product_list_toolbar" template="product/list/toolbar.phtml"> <block type="Mage_Page_Block_Html_Pager" name="product_list_toolbar_pager"/> <!-- The following code shows how to set your own pager increments --> @@ -102,39 +117,10 @@ Category default layout <action method="setToolbarBlockName"><name>product_list_toolbar</name></action> </block> </block> - </reference> - </catalog_category_view> - - <catalog_category_view_type_default translate="label" type="page" parent="catalog_category_view"> - <label>Non Anchor Catalog Category</label> - <reference name="left"> - <block type="Mage_Catalog_Block_Navigation" name="catalog.leftnav" after="currency" template="navigation/left.phtml"/> - </reference> - </catalog_category_view_type_default> - - <catalog_category_view_type_default_without_children translate="label" type="page" parent="catalog_category_view_type_default"> - <label>Non Anchor Catalog Category Without Subcategories</label> - <remove name="right.reports.product.viewed" /> - <reference name="right"> - <block type="Mage_Reports_Block_Product_Viewed" before="right.permanent.callout" name="left.reports.product.viewed" template="product_viewed.phtml" /> - </reference> - </catalog_category_view_type_default_without_children> - - <catalog_category_view_type_layered translate="label" type="page" parent="catalog_category_view"> - <label>Anchor Catalog Category</label> - <reference name="left"> - <block type="Mage_Catalog_Block_Layer_View" name="catalog.leftnav" after="currency" template="layer/view.phtml"/> + <block type="Mage_Catalog_Block_Layer_View" name="catalog.leftnav" after="-" template="layer/view.phtml"/> </reference> </catalog_category_view_type_layered> - <catalog_category_view_type_layered_without_children> - <label>Anchor Catalog Category Without Subcategories</label> - <remove name="right.reports.product.viewed" /> - <reference name="right"> - <block type="Mage_Reports_Block_Product_Viewed" before="right.permanent.callout" name="left.reports.product.viewed" template="product_viewed.phtml" /> - </reference> - </catalog_category_view_type_layered_without_children> - <!-- Compare products page --> @@ -204,10 +190,10 @@ Product view </block> <block type="Mage_Catalog_Block_Product_View" name="product.info.addto" as="addto" template="product/view/addto.phtml"/> <block type="Mage_Catalog_Block_Product_View" name="product.info.addtocart" as="addtocart" template="product/view/addtocart.phtml"/> - <block type="Mage_Catalog_Block_Product_View" name="product.info.addtocart.bottom" as="addtocartbottom" template="product/view/addtocartbottom.phtml"/> <container name="product.info.extrahint" as="extrahint" label="Product View Extra Hint"/> + <block type="Mage_Catalog_Block_Product_List_Related" name="catalog.product.related" before="-" template="product/list/related.phtml"/> <block type="Mage_Catalog_Block_Product_View" name="product.info.options.wrapper" as="product_options_wrapper" template="product/view/options/wrapper.phtml" translate="label"> <label>Info Column Options Wrapper</label> <block type="Mage_Core_Block_Template" name="options_js" template="Mage_Catalog::product/view/options/js.phtml"/> @@ -223,8 +209,7 @@ Product view <label>Bottom Block Options Wrapper</label> <action method="insert"><element>product.tierprices</element></action> <block type="Mage_Catalog_Block_Product_View" name="product.clone_prices" as="prices" template="product/view/price_clone.phtml"/> - <action method="append"><element>product.info.addtocart.bottom</element></action> - <action method="append"><element>product.info.addto</element></action> + <action method="append"><element>product.info.addtocart</element></action> </block> <block type="Mage_Core_Block_Template_Facade" name="product.info.container1" as="container1"> @@ -243,9 +228,6 @@ Product view <action method="unsetCallChild"><child>container2</child><call>ifEquals</call><if>0</if><key>alias_in_layout</key><key>options_container</key></action> </block> </reference> - <reference name="right"> - <block type="Mage_Catalog_Block_Product_List_Related" name="catalog.product.related" before="-" template="product/list/related.phtml"/> - </reference> </catalog_product_view> <!-- @@ -276,8 +258,6 @@ Additional block dependant on product type <block type="Mage_Catalog_Block_Product_View_Type_Grouped" name="product.info.grouped" as="product_type_data" template="product/view/type/grouped.phtml"> <container name="product.info.grouped.extra" as="product_type_data_extra" label="Product Extra Info"/> </block> - <block type="Mage_Catalog_Block_Product_View_Type_Grouped" name="product.info.grouped.grid" as="product_type_data_grid" template="product/view/type/grouped_grid.phtml"> - </block> </reference> </catalog_product_view_type_grouped> <catalog_product_view_type_virtual translate="label" module="Mage_Catalog" type="page" parent="catalog_product_view"> @@ -298,6 +278,7 @@ Product additional images gallery popup <!-- Mage_Catalog --> <reference name="root"> <action method="setTemplate"><template>1column.phtml</template></action> + <action method="setMyClass"><value>product-gallery-view</value></action> </reference> <reference name="content"> <block type="Mage_Catalog_Block_Product_Gallery" name="catalog_product_gallery" template="product/gallery.phtml"/> @@ -330,6 +311,7 @@ SEO Site Map <reference name="head"> <action method="setTitle" translate="title" module="Mage_Catalog"><title>Site Map</title></action> </reference> + <update handle="catalog_seo_sitemap" /> <reference name="seo.sitemap.container"> <action method="setTitle" translate="title" module="Mage_Catalog"><title>Categories</title></action> <block type="Mage_Catalog_Block_Seo_Sitemap_Category" name="seo.sitemap.sitemap" as="sitemap" after="pager_top" template="seo/sitemap.phtml"> @@ -376,5 +358,4 @@ SEO Site Map <action method="addLink" translate="label title" module="Mage_Catalog"><label>Categories Sitemap</label><url helper="Mage_Catalog_Helper_Map::getCategoryUrl"/><title>Categories Sitemap</title></action> </reference> </catalog_seo_sitemap_product> - </layout> diff --git a/app/design/frontend/default/iphone/Mage_Catalog/navigation/top.phtml b/app/design/frontend/default/iphone/Mage_Catalog/navigation/top.phtml index de8d3510af1..3094ca623b5 100644 --- a/app/design/frontend/default/iphone/Mage_Catalog/navigation/top.phtml +++ b/app/design/frontend/default/iphone/Mage_Catalog/navigation/top.phtml @@ -39,9 +39,6 @@ * string If specified wraps children list in div with this class */ ?> -<div class="front-banner"> - <img src="<?php echo $this->getSkinUrl('images/front_banner.png') ?>" height="120" alt="<?php echo $this->__('Front Banner')?>" /> -</div> <?php $_menu = $this->renderCategoriesMenuHtml(0,'level-top') ?> <?php if($_menu): ?> <div class="nav-wrap"> diff --git a/app/design/frontend/default/iphone/Mage_Catalog/product/compare/list.phtml b/app/design/frontend/default/iphone/Mage_Catalog/product/compare/list.phtml deleted file mode 100644 index 9b3f34f0516..00000000000 --- a/app/design/frontend/default/iphone/Mage_Catalog/product/compare/list.phtml +++ /dev/null @@ -1,261 +0,0 @@ -<?php -/** - * Magento - * - * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @category design - * @package base_default - * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) - */ -/* @var $this Mage_Catalog_Block_Product_Compare_List */ -?> -<?php -$_imageSize = $this->getVar('product_compare_small_image_size', 'Mage_Catalog'); -?> -<?php $_total=$this->getItems()->getSize() ?> -<?php if($_total): ?> - <table class="data-table compare-table" id="product_comparison"> - <?php $_i=0 ?> - <?php foreach($this->getItems() as $_item): ?> - <?php if($_i++%10==0): ?> - <col width="1" /> - <?php endif; ?> - <col width="<?php echo floor(100/$_total); ?>%" /> - <?php endforeach; ?> - <tbody> - <tr class="product-shop-row"> - <?php $_i=0 ?> - <?php foreach($this->getItems() as $_item): ?> - <?php if($_i++%10==0): ?> - <th> - <div class="compare-back-link"> - <a href="javascript:history.back(1);">Back</a> - </div> - <a href="#" onclick="removeAll(event, '<?php echo $this->helper('Mage_Catalog_Helper_Product_Compare')->getClearListUrl(); ?>');" class="compare-clear-all">Clear All</a> - </th> - <?php endif; ?> - <td> - <a class="product-image" href="#" onclick="setLocation('<?php echo $this->getProductUrl($_item) ?>', true)" title="<?php echo $this->stripTags($_item->getName(), null, true) ?>"> - <img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($_item, 'small_image')->resize($_imageSize); ?>" width="<?php echo $_imageSize ?>" height="<?php echo $_imageSize ?>" alt="<?php echo $this->stripTags($_item->getName(), null, true) ?>" /> - </a> - <span class="loader" style="display:none;"></span> - <a href="#" class="btn-remove" onclick="removeItem(event, '<?php echo $this->helper('Mage_Catalog_Helper_Product_Compare')->getRemoveUrl($_item) ?>', this);"><img src="<?php echo $this->getSkinUrl('images/btn_trash.png') ?>" height="10" width="10" /></a> - <h2 class="product-name"><a href="#" onclick="setLocation('<?php echo $this->getProductUrl($_item) ?>', true)" title="<?php echo $this->stripTags($_item->getName(), null, true) ?>"><?php echo $this->helper('Mage_Catalog_Helper_Output')->productAttribute($_item, $_item->getName(), 'name') ?></a></h2> - <?php echo $this->getReviewsSummaryHtml($_item, 'short') ?> - <?php echo $this->getPriceHtml($_item, true, '-compare-list-top') ?> - <?php if($_item->isSaleable()): ?> - <p><button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->helper('Mage_Catalog_Helper_Product_Compare')->getAddToCartUrl($_item) ?>', true)"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></p> - <?php else: ?> - <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p> - <?php endif; ?> - <?php if ($this->helper('Mage_Wishlist_Helper_Data')->isAllow()) : ?> - <ul class="add-to-links"> - <li><a href="#" class="link-wishlist" onclick="setLocation('<?php echo $this->getAddToWishlistUrl($_item) ?>', true)"><?php echo $this->__('Add to Wishlist') ?></a></li> - </ul> - <?php endif; ?> - </td> - <?php endforeach; ?> - </tr> - </tbody> - <tbody> - <?php foreach ($this->getAttributes() as $_attribute): ?> - <tr> - <?php $_i=0 ?> - <?php foreach($this->getItems() as $_item): ?> - <?php if($_i++%10==0): ?> - <th><span class="nobr"><?php echo $_attribute->getStoreLabel() ?></span></th> - <?php endif; ?> - <td> - <div class="content"> - <?php switch ($_attribute->getAttributeCode()) { - case "price": ?> - <?php echo $this->getPriceHtml($_item, true, '-compare-list-' . $_attribute->getCode()) ?> - <?php break; - case "small_image": ?> - <img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($_item, 'small_image')->resize($_imageSize); ?>" width="<?php echo $_imageSize ?>" height="<?php echo $_imageSize ?>" alt="<?php echo $this->escapeHtml($_item->getName()) ?>" title="<?php echo $this->escapeHtml($_item->getName()) ?>" /> - <?php break; - case "date": - echo substr($this->getProductAttributeValue($_item, $_attribute),0,10); - break; - default: ?> - <?php echo $this->helper('Mage_Catalog_Helper_Output')->productAttribute($_item, $this->getProductAttributeValue($_item, $_attribute), $_attribute->getAttributeCode()) ?> - <?php break; - } ?> - </div> - </td> - <?php endforeach; ?> - </tr> - <?php endforeach; ?> - </tbody> - <tbody> - <tr class="add-to-row"> - <?php $_i=0 ?> - <?php foreach($this->getItems() as $_item): ?> - <?php if($_i++%10==0): ?> - <th> </th> - <?php endif; ?> - <td> - <?php echo $this->getPriceHtml($_item, true, '-compare-list-bottom') ?> - <?php if($_item->isSaleable()): ?> - <p><button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->helper('Mage_Catalog_Helper_Product_Compare')->getAddToCartUrl($_item) ?>', true)"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></p> - <?php else: ?> - <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p> - <?php endif; ?> - <?php if ($this->helper('Mage_Wishlist_Helper_Data')->isAllow()) : ?> - <ul class="add-to-links"> - <li><a href="#" class="link-wishlist" onclick="setLocation('<?php echo $this->getAddToWishlistUrl($_item) ?>', true)"><?php echo $this->__('Add to Wishlist') ?></a></li> - </ul> - <?php endif; ?> - </td> - <?php endforeach; ?> - </tr> - </tbody> - </table> - <div class="buttons-set"> - <span class="please-wait" id="compare-list-please-wait" style="display:none;"> - <img src="<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif') ?>" alt="<?php echo $this->__('Please wait...') ?>" title="<?php echo $this->__('Please wait...') ?>" class="v-middle" /> <?php echo $this->__('Please wait...') ?> - </span> - </div> - <script type="text/javascript"> - document.observe("dom:loaded", function() { - (function () { - var compare_table = $('product_comparison'); - - compare_table.on('click', 'th', function (e, elem) { - if ( elem.hasClassName('collapsible') ) { - elem.toggleClassName('collapsed'); - } - elem.nextSiblings().each(function (td) { - td.toggleClassName('collapsed'); - }); - }); - compare_table.select('th').each(function(th) { - if ( th.getDimensions().height > 30 && th.down('span') ) { - th.addClassName('collapsible'); - } - }); - - if ( compare_table.select('.product-shop-row td').length > 1 ) { - - compare_table.select('.product-shop-row td').each(function (td) { - td.insert({ 'top' : new Element('span', { 'class' : 'move-right' }) }); - td.insert({ 'top' : new Element('span', { 'class' : 'move-left' }) }); - }); - compare_table.on('click', '.move-right', function (e, elem) { - var index = elem.up('td').cellIndex + 1; - compare_table.select('tr td:nth-child(' + index + ')').each(function (td) { - if ( td.next() ) { - //td.addClassName('move-right-animation'); - //td.next().addClassName('move-left-animation'); - var clone = td.clone(true); - td.next().setStyle({ 'webkitTransform' : 'translate3d(100%, 0, 0)' }).addClassName('moved-left').insert({ after : clone.setStyle({ 'webkitTransform' : 'translate3d(-100%, 0, 0)' }).addClassName('moved-right') }); - td.remove(); - - setTimeout(function () { - $$('.moved-right').invoke('addClassName', 'move-right-animation-scale'); - $$('.moved-left').invoke('addClassName', 'move-left-animation'); - }, 1); - } - }); - compare_table.addClassName('hide-controls'); - }); - - compare_table.on('webkitTransitionEnd', 'td', function(e, elem) { - elem.writeAttribute('style', ''); - var classArray = elem.classNames().toArray(); - for (var index = 0, len = classArray.size(); index < len; ++index) { - if(classArray[index] !== 'collapsed'){ - elem.removeClassName(classArray[index]); - } - } - compare_table.removeClassName('hide-controls'); - }) - - compare_table.on('click', '.move-left', function (e, elem) { - var index = elem.up('td').cellIndex + 1; - compare_table.select('tr td:nth-child(' + index + ')').each(function (td) { - if ( td.previous() && td.previous().cellIndex !== 0 ) { - var clone = td.clone(true); - td.previous().setStyle({ 'webkitTransform' : 'translate3d(-100%, 0, 0)' }).addClassName('moved-right').insert({ before : clone.setStyle({ 'webkitTransform' : 'translate3d(100%, 0, 0)' }).addClassName('moved-left') }); - td.remove(); - - setTimeout(function () { - $$('.moved-right').invoke('addClassName', 'move-right-animation'); - $$('.moved-left').invoke('addClassName', 'move-left-animation-scale'); - }, 1); - } - }); - compare_table.addClassName('hide-controls'); - }); - - } - - }()); - }); - - - function _removeColumn (item) { - var tdIndex = item.up('td').cellIndex - 1, - tbl = $('product_comparison'); - - if ( tbl.rows[0].cells.length - 1 > 1 ) { - tbl.select('tr').each(function (tr) { - tr.select('td')[tdIndex].remove(); - }); - } else { - window.location.href = document.referrer; - } - } - - /** - * Send remove item request, after that reload windows - */ - function removeItem (e, url, item) { - e.preventDefault(); - new Ajax.Request(url, { - parameters: {isAjax: 1, method: 'POST'}, - onLoading: function() { - item.hide().up('td').select('.loader')[0].show(); - }, - onSuccess: function() { - _removeColumn(item) - }, - onFailure: item.show() - }); - } - - function removeAll (e, url) { - e.preventDefault(); - new Ajax.Request(url, { - parameters: {isAjax: 1, method: 'POST'}, - onLoading: function() { - }, - onSuccess: function() { - window.location.href = document.referrer; - } - }); - - } - - </script> -<?php else: ?> - <script type="text/javascript"> - window.location.href = document.referrer; - </script> -<?php endif; ?> diff --git a/app/design/frontend/default/iphone/Mage_Catalog/product/compare/sidebar.phtml b/app/design/frontend/default/iphone/Mage_Catalog/product/compare/sidebar.phtml deleted file mode 100644 index 1befcfc2460..00000000000 --- a/app/design/frontend/default/iphone/Mage_Catalog/product/compare/sidebar.phtml +++ /dev/null @@ -1,68 +0,0 @@ -<?php -/** - * Magento - * - * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @category design - * @package base_default - * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) - */ -/* @var $this Mage_Catalog_Block_Product_Compare_Sidebar */ -?> -<?php -$_helper = $this->helper('Mage_Catalog_Helper_Product_Compare'); -$_items = $_helper->getItemCount() > 0 ? $_helper->getItemCollection() : null; -?> -<?php if($_helper->getItemCount() > 0): ?> - <li> - <a class="compare-clear" href="<?php echo $_helper->getClearListUrl() ?>" onclick="return confirm('<?php echo $this->__('Are you sure you would like to remove all products from your comparison?') ?>');"><?php echo $this->__('Clear All') ?></a> - <a href="<?php echo $_helper->getListUrl() ?>"><?php echo $this->__('Compare Products') ?> <?php echo $this->__('(%d)', $_helper->getItemCount()) ?></a> - </li> -<?php endif; ?> -<!-- -<div class="block block-list block-compare"> - <div class="block-title"> - <strong><span><?php echo $this->__('Compare Products') ?> - <?php if($_helper->getItemCount() > 0): ?> - <small><?php echo $this->__('(%d)', $_helper->getItemCount()) ?></small> - <?php endif; ?> - </span></strong> - </div> - <div class="block-content"> - <?php if($_helper->getItemCount() > 0): ?> - <ol id="compare-items"> - <?php foreach($_items as $_index => $_item): ?> - <li class="item"> - <input type="hidden" class="compare-item-id" value="<?php echo $_item->getId() ?>" /> - <a href="<?php echo $_helper->getRemoveUrl($_item) ?>" title="<?php echo $this->__('Remove This Item') ?>" class="btn-remove" onclick="return confirm('<?php echo $this->__('Are you sure you would like to remove this item from the compare products?') ?>');"><?php echo $this->__('Remove This Item') ?></a> - <p class="product-name"><a href="<?php echo $this->getProductUrl($_item) ?>"><?php echo $this->helper('Mage_Catalog_Helper_Output')->productAttribute($_item, $_item->getName(), 'name') ?></a></p> - </li> - <?php endforeach; ?> - </ol> - <script type="text/javascript">decorateList('compare-items')</script> - <div class="actions"> - <a href="<?php echo $_helper->getClearListUrl() ?>" onclick="return confirm('<?php echo $this->__('Are you sure you would like to remove all products from your comparison?') ?>');"><?php echo $this->__('Clear All') ?></a> - <button type="button" title="<?php echo $this->__('Compare') ?>" class="button" onclick="popWin('<?php echo $_helper->getListUrl() ?>','compare','top:0,left:0,width=820,height=600,resizable=yes,scrollbars=yes')"><span><span><?php echo $this->__('Compare') ?></span></span></button> - </div> - <?php else: ?> - <p class="empty"><?php echo $this->__('You have no items to compare.') ?></p> - <?php endif; ?> - </div> -</div> ---> diff --git a/app/design/frontend/default/iphone/Mage_Catalog/product/gallery.phtml b/app/design/frontend/default/iphone/Mage_Catalog/product/gallery.phtml index 2e6adceb1bf..70d94feb792 100644 --- a/app/design/frontend/default/iphone/Mage_Catalog/product/gallery.phtml +++ b/app/design/frontend/default/iphone/Mage_Catalog/product/gallery.phtml @@ -26,27 +26,23 @@ ?> <?php $__helper = $this->helper('Mage_Catalog_Helper_Output'); ?> <?php $_product = $this->getProduct(); ?> -<?php $_imageSize = $this->getVar('product_base_image_size', 'Mage_Catalog'); ?> -<section role="main"> - <div class="breadcrumbs"> - <ul> - <li class="home"><a href="javascript:history.back(1);" title="Go to Home Page"><?php echo $this->__('Back') ?></a></li> - <li class="product"><strong><?php echo $__helper->productAttribute($_product, $_product->getName(), 'name') ?></strong></li> - </ul> - </div> - <a href="<?php echo $this->helper('Mage_Checkout_Helper_Cart')->getAddUrl($_product) ?>" class="add-to-cart">Add to Cart</a> - <div class="product-gallery"> - <span class="next">Next</span> - <span class="prev">Prev</span> - <ul> - <li> - <img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($_product, 'image')->resize($_imageSize) ?>" height="<?php echo $_imageSize ?>" alt="<?php echo $this->escapeHtml($this->getImageLabel()) ?>" title="<?php echo $this->escapeHtml($this->getImageLabel()) ?>" /> - </li> - <?php foreach ($this->getProduct()->getMediaGalleryImages() as $_image): ?> - <li> - <img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->resize($_imageSize); ?>" height="<?php echo $_imageSize ?>" alt="<?php echo $this->escapeHtml($_image->getLabel()) ?>" /> - </li> - <?php endforeach; ?> - </ul> - </div> -</section> \ No newline at end of file +<div class="product-gallery" id="product-gallery"> + <ul> + <li> + <img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($_product, 'image')->resize(300) ?>" height="300" alt="<?php echo $this->escapeHtml($this->getImageLabel()) ?>" title="<?php echo $this->escapeHtml($this->getImageLabel()) ?>" /> + </li> + <?php foreach ($this->getProduct()->getMediaGalleryImages() as $_image): ?> + <li> + <img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->resize(300); ?>" height="300" alt="<?php echo $this->escapeHtml($_image->getLabel()) ?>" /> + </li> + <?php endforeach; ?> + </ul> +</div> +<div class="buttons-set"> + <a href="<?php echo $this->helper('Mage_Checkout_Helper_Cart')->getAddUrl($_product) ?>">Add to Cart</a> +</div> +<script type="text/javascript"> + document.observe("dom:loaded", function() { + var gallery = new zoomGallery($('product-gallery')); + }); +</script> diff --git a/app/design/frontend/default/iphone/Mage_Catalog/product/list.phtml b/app/design/frontend/default/iphone/Mage_Catalog/product/list.phtml index 235ed790112..fceba230cc1 100644 --- a/app/design/frontend/default/iphone/Mage_Catalog/product/list.phtml +++ b/app/design/frontend/default/iphone/Mage_Catalog/product/list.phtml @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default + * @package default_iphone * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ @@ -40,125 +40,38 @@ <p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p> <?php else: ?> <?php echo $this->getToolbarHtml() ?> - <?php if($this->getMode()!='grid'): ?> - <div class="category-products"> - <?php $_collectionSize = $_productCollection->count() ?> - <?php $_columnCount = $this->getColumnCount(); ?> - <ul class="c-list"> - <?php $i=0; foreach ($_productCollection as $_product): ?> - <li> - <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>"> - <div class="wrap"> - <div class="product-image"> - <img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($_product, 'small_image')->resize($_imageSize); ?>" width="65" height="65" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /> - </div> - <div class="product-shop"> - <header> - <h1><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1> - <?php echo $this->getPriceHtml($_product, true) ?> - <?php if(!$_product->isSaleable()): ?> - <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p> - <?php endif; ?> - </header> - </div> + <div class="category-products"> + <?php $_collectionSize = $_productCollection->count() ?> + <?php $_columnCount = $this->getColumnCount(); ?> + <ul class="c-list"> + <?php $i=0; foreach ($_productCollection as $_product): ?> + <li> + <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>"> + <div class="wrap"> + <div class="product-image"> + <img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($_product, 'small_image')->resize(130); ?>" width="65" height="65" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /> + </div> + <div class="product-shop"> + <header> + <h1><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1> + <?php echo $this->getPriceHtml($_product, true) ?> + </header> </div> - </a> - <div class="actions"> - <ul> - <li><a href="<?php echo $_product->getProductUrl() ?>" class="i-view-details"><i></i><?php echo $this->__('View Details') ?></a></li> - <li><a href="<?php echo $this->getUrl('catalog/product/gallery', array('id'=>$_product->getId())) ?>" class="i-view-gallery"><i></i><?php echo $this->__('View Gallery') ?></a></li> - <li><a href="<?php echo $this->helper('Mage_Catalog_Helper_Product')->getEmailToFriendUrl($_product) ?>" class="i-send-friend"><i></i><?php echo $this->__('Tell a Friend') ?></a></li> - <?php if ($this->helper('Mage_Wishlist_Helper_Data')->isAllow()) : ?> - <li><a href="<?php echo $this->helper('Mage_Wishlist_Helper_Data')->getAddUrl($_product) ?>" class="i-send-wishlist"><i></i><?php echo $this->__('Add to Wishlist') ?></a></li> - <?php endif; ?> - <li><a href="<?php echo $this->getAddToCartUrl($_product) ?>" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>'); return false;" class="i-add-to-cart"><i></i><?php echo $this->__('Add to Cart') ?></a></li> - </ul> </div> - </li> - <?php endforeach ?> - </ul> - </div> - <?php else: ?> - <div class="category-products"> - <?php $_collectionSize = $_productCollection->count() ?> - <?php $_columnCount = $this->getColumnCount(); ?> - <table class="c-grid" cellspacing="0"> - <tbody> - <?php $index = 1 ?> - <?php $i=0; foreach ($_productCollection as $key=>$_product): ?> - <?php if ($index % 2): ?> - <tr> - <?php endif; ?> - <div class="cell"> - <div class="position-wrap"> - <div class="cloned-wrap"> - <div class="wrap"> - <div class="product-image"> - <img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($_product, 'small_image')->resize($_imageSize); ?>" width="65" height="65" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /> - </div> - <div class="product-shop"> - <header> - <h1><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1> - <?php echo $this->getPriceHtml($_product, true) ?> - <?php if(!$_product->isSaleable()): ?> - <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p> - <?php endif; ?> - </header> - </div> - </div> - <div class="product-shop"> - <header> - <h1><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1> - <?php echo $this->getPriceHtml($_product, true) ?> - <?php if(!$_product->isSaleable()): ?> - <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p> - <?php endif; ?> - </header> - </div> - <div class="front"> - <span class="i-flip"></span> - <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>"> - <div class="wrap"> - <div class="product-image"> - <img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($_product, 'small_image')->resize($_imageSize); ?>" width="65" height="65" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /> - </div> - <div class="product-shop"> - <header> - <h1><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1> - <?php echo $this->getPriceHtml($_product, true) ?> - <?php if(!$_product->isSaleable()): ?> - <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p> - <?php endif; ?> - </header> - </div> - </div> - </a> - </div> - </div> - </a> - </td> - <?php if ($i % 2): ?> - </tr> - <?php endif; ?> - <?php $index++ ?> - <?php endforeach ?> - </tbody> - </table> - </div> - <script> - document.observe('dom:loaded', function () { - $('c-grid').addClassName('ready'); - - $('c-grid').on('click', ".i-flip", function(e, n) { - var par = n.up('.flip-block'); - e.preventDefault(); - par.toggleClassName('active'); - }); - - $('c-grid').select('.front').each(function (n) { - n.setStyle({'height' :n.up('.cell').getDimensions().height - 1 + 'px'}); - }); - }); - </script> - <?php endif; ?> -<?php endif; ?> \ No newline at end of file + </a> + <div class="actions" style="display:none;"> + <ul> + <li><a href="<?php echo $_product->getProductUrl() ?>" class="i-view-details"><i></i><?php echo $this->__('View Details') ?></a></li> + <li><a href="<?php echo $this->getUrl('catalog/product/gallery', array('id'=>$_product->getId())) ?>" class="i-view-gallery"><i></i><?php echo $this->__('View Gallery') ?></a></li> + <li><a href="<?php echo $this->helper('Mage_Catalog_Helper_Product')->getEmailToFriendUrl($_product) ?>" class="i-send-friend"><i></i><?php echo $this->__('Tell a Friend') ?></a></li> + <?php if ($this->helper('Mage_Wishlist_Helper_Data')->isAllow()) : ?> + <li><a href="<?php echo $this->helper('Mage_Wishlist_Helper_Data')->getAddUrl($_product) ?>" class="i-send-wishlist"><i></i><?php echo $this->__('Add to Wishlist') ?></a></li> + <?php endif; ?> + <li><a href="<?php echo $this->getAddToCartUrl($_product) ?>" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>'); return false;" class="i-add-to-cart"><i></i><?php echo $this->__('Add to Cart') ?></a></li> + </ul> + </div> + </li> + <?php endforeach ?> + </ul> + </div> +<?php endif; ?> diff --git a/app/design/frontend/default/iphone/Mage_Catalog/product/list/toolbar.phtml b/app/design/frontend/default/iphone/Mage_Catalog/product/list/toolbar.phtml index e07735a8b20..6c3b6749b3c 100644 --- a/app/design/frontend/default/iphone/Mage_Catalog/product/list/toolbar.phtml +++ b/app/design/frontend/default/iphone/Mage_Catalog/product/list/toolbar.phtml @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default + * @package default_iphone * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ @@ -49,50 +49,23 @@ <?php if( $this->isExpanded() ): ?> <div class="sorter"> <div class="sort-by"> - <label><?php echo $this->__('Sort By') ?></label> - <select onchange="setLocation(this.value)"> + <?php if($this->getCurrentDirection() == 'desc'): ?> + <a class="order asc" href="<?php echo $this->getOrderUrl(null, 'asc') ?>" title="<?php echo $this->__('Set Ascending Direction') ?>"> </a> + <?php else: ?> + <a class="order desc" href="<?php echo $this->getOrderUrl(null, 'desc') ?>" title="<?php echo $this->__('Set Descending Direction') ?>"> </a> + <?php endif; ?> + <label for="sort_by"><?php echo $this->__('Sort') ?></label> + <span class="sort-by-wrap"> + <select id="sort_by" onchange="setLocation(this.value)"> <?php foreach($this->getAvailableOrders() as $_key=>$_order): ?> <option value="<?php echo $this->getOrderUrl($_key, 'asc') ?>"<?php if($this->isOrderCurrent($_key)): ?> selected="selected"<?php endif; ?>> <?php echo $this->__($_order) ?> </option> <?php endforeach; ?> </select> - <?php if($this->getCurrentDirection() == 'desc'): ?> - <a class="order asc" href="<?php echo $this->getOrderUrl(null, 'asc') ?>" title="<?php echo $this->__('Set Ascending Direction') ?>"> </a> - <?php else: ?> - <a class="order desc" href="<?php echo $this->getOrderUrl(null, 'desc') ?>" title="<?php echo $this->__('Set Descending Direction') ?>"> </a> - <?php endif; ?> + </span> </div> </div> <?php endif; ?> </div> -<?php if( $this->isExpanded() ): ?> - <div class="toolbar"> - <div class="limiter"> - <label><?php echo $this->__('Show') ?></label> - <select onchange="setLocation(this.value)"> - <?php foreach ($this->getAvailableLimit() as $_key=>$_limit): ?> - <option value="<?php echo $this->getLimitUrl($_key) ?>"<?php if($this->isLimitCurrent($_key)): ?> selected="selected"<?php endif ?>> - <?php echo $_limit ?> - </option> - <?php endforeach; ?> - </select> <?php echo $this->__('per page') ?> - </div> - <?php if( $this->isEnabledViewSwitcher() ): ?> - <p class="view-mode"> - <?php $_modes = $this->getModes(); ?> - <?php if($_modes && count($_modes)>1): ?> - <label><?php echo $this->__('View as') ?> </label> - <?php foreach ($this->getModes() as $_code=>$_label): ?> - <?php if($this->isModeActive($_code)): ?> - <strong title="<?php echo $_label ?>" class="disabled <?php echo strtolower($_code); ?>"><?php echo $_label ?></strong> - <?php else: ?> - <a href="<?php echo $this->getModeUrl($_code) ?>" title="<?php echo $_label ?>" class="<?php echo strtolower($_code); ?>"><?php echo $_label ?></a> - <?php endif; ?> - <?php endforeach; ?> - <?php endif; ?> - </p> - </div> -<?php endif; ?> -<?php endif; ?> <?php endif ?> diff --git a/app/design/frontend/default/iphone/Mage_Catalog/product/list/upsell.phtml b/app/design/frontend/default/iphone/Mage_Catalog/product/list/upsell.phtml index 9c0df625992..2ee53f87567 100644 --- a/app/design/frontend/default/iphone/Mage_Catalog/product/list/upsell.phtml +++ b/app/design/frontend/default/iphone/Mage_Catalog/product/list/upsell.phtml @@ -19,35 +19,29 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default + * @package default_iphone * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> <?php if(count($this->getItemCollection()->getItems())): ?> - <div class="up-sell-box carousel"> - <div class="controls"> - <span class="prev disabled"></span> - <span class="next"></span> - </div> - <h2 class="up-sell-heading"><?php echo $this->__('You May Also Like') ?></h2> - <ul class="up-sell carousel-items"><!- - <?php $this->resetItemsIterator() ?> - <?php for($_i=0;$_i<$this->getRowCount();$_i++): ?> - <?php for($_j=0;$_j<$this->getColumnCount();$_j++): ?> - <?php if($_link=$this->getIterableItem()): ?> - -><li> - <a href="<?php echo $_link->getProductUrl() ?>" title="<?php echo $this->escapeHtml($_link->getName()) ?>"> - <div class="product-image"><img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($_link, 'small_image')->resize($this->getVar('product_upsell_small_image_size', 'Mage_Catalog')) ?>" alt="<?php echo $this->escapeHtml($_link->getName()) ?>" title="<?php echo $this->escapeHtml($_link->getName()) ?>"></div> - <h5><?php echo $this->escapeHtml($_link->getName()) ?></h5> - <div class="price-box"> - <span class="regular-price"><span class="price"><?php echo $this->getPriceHtml($_link, true, '-upsell') ?></span></span> - </div> - </a> - </li><!- - <?php endif; ?> - <?php endfor; ?> - <?php endfor; ?> - -></ul> +<div class="box-collateral box-up-sell"> + <div class="box-title"> + <h2><?php echo $this->__('You May Also Like') ?></h2> </div> -<?php endif ?> \ No newline at end of file + <ul class="products-grid" id="upsell-product-list"><!- + <?php $this->resetItemsIterator() ?> + <?php for($_i=0;$_i<$this->getRowCount();$_i++): ?> + <?php for($_j=0;$_j<$this->getColumnCount();$_j++): ?> + <?php if($_link=$this->getIterableItem()): ?> + -><li class="item"> + <a href="<?php echo $_link->getProductUrl() ?>" class="product-image"><img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($_link, 'small_image')->resize(135) ?>" width="135" height="135" alt="<?php echo $this->escapeHtml($_link->getName()) ?>" title="<?php echo $this->escapeHtml($_link->getName()) ?>" /></a> + <h3 class="product-name"><a href="<?php echo $_link->getProductUrl() ?>"><?php echo $this->escapeHtml($_link->getName()) ?></a></h3> + <?php echo $this->getPriceHtml($_link, true, '-upsell') ?> + </li><!- + <?php endif; ?> + <?php endfor; ?> + <?php endfor; ?> + -></ul> +</div> +<?php endif ?> diff --git a/app/design/frontend/default/iphone/Mage_Catalog/product/price.phtml b/app/design/frontend/default/iphone/Mage_Catalog/product/price.phtml new file mode 100644 index 00000000000..65643c82101 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Catalog/product/price.phtml @@ -0,0 +1,428 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> + +<?php +/** + * Template for displaying product price in different places (products grid, product view page etc) + * + * @see Mage_Catalog_Block_Product_Abstract + */ +?> +<?php + $_coreHelper = $this->helper('Mage_Core_Helper_Data'); + $_weeeHelper = $this->helper('Mage_Weee_Helper_Data'); + $_taxHelper = $this->helper('Mage_Tax_Helper_Data'); + /* @var $_coreHelper Mage_Core_Helper_Data */ + /* @var $_weeeHelper Mage_Weee_Helper_Data */ + /* @var $_taxHelper Mage_Tax_Helper_Data */ + + $_product = $this->getProduct(); + $_storeId = $_product->getStoreId(); + $_id = $_product->getId(); + $_weeeSeparator = ''; + $_simplePricesTax = ($_taxHelper->displayPriceIncludingTax() || $_taxHelper->displayBothPrices()); + $_minimalPriceValue = $_product->getMinimalPrice(); + $_minimalPrice = $_taxHelper->getPrice($_product, $_minimalPriceValue, $_simplePricesTax); +?> + +<?php if (!$_product->isGrouped()): ?> + <?php $_weeeTaxAmount = $_weeeHelper->getAmountForDisplay($_product); ?> + <?php if ($_weeeHelper->typeOfDisplay($_product, array(Mage_Weee_Model_Tax::DISPLAY_INCL_DESCR, Mage_Weee_Model_Tax::DISPLAY_EXCL_DESCR_INCL, 4))): ?> + <?php $_weeeTaxAmount = $_weeeHelper->getAmount($_product); ?> + <?php $_weeeTaxAttributes = $_weeeHelper->getProductWeeeAttributesForDisplay($_product); ?> + <?php endif; ?> + <?php $_weeeTaxAmountInclTaxes = $_weeeTaxAmount; ?> + <?php if ($_weeeHelper->isTaxable() && !$_taxHelper->priceIncludesTax($_storeId)): ?> + <?php $_attributes = $_weeeHelper->getProductWeeeAttributesForRenderer($_product, null, null, null, true); ?> + <?php $_weeeTaxAmountInclTaxes = $_weeeHelper->getAmountInclTaxes($_attributes); ?> + <?php endif; ?> + + <div class="price-box"> + <?php $_price = $_taxHelper->getPrice($_product, $_product->getPrice()) ?> + <?php $_regularPrice = $_taxHelper->getPrice($_product, $_product->getPrice(), $_simplePricesTax) ?> + <?php $_finalPrice = $_taxHelper->getPrice($_product, $_product->getFinalPrice()) ?> + <?php $_finalPriceInclTax = $_taxHelper->getPrice($_product, $_product->getFinalPrice(), true) ?> + <?php $_weeeDisplayType = $_weeeHelper->getPriceDisplayType(); ?> + <?php if ($_finalPrice >= $_price): ?> + <?php if ($_taxHelper->displayBothPrices()): ?> + <?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 0)): // including ?> + <span class="price-excluding-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Excl. Tax:') ?></span> + <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, false) ?> + </span> + </span> + <span class="price-including-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Incl. Tax:') ?></span> + <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?> + </span> + </span> + <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 1)): // incl. + weee ?> + <span class="price-excluding-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Excl. Tax:') ?></span> + <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, false) ?> + </span> + </span> + <span class="price-including-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Incl. Tax:') ?></span> + <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?> + </span> + <span class="weee">( + <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?> + <?php echo $_weeeSeparator; ?> + <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?> + <?php $_weeeSeparator = ' + '; ?> + <?php endforeach; ?> + )</span> + </span> + <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 4)): // incl. + weee ?> + <span class="price-excluding-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Excl. Tax:') ?></span> + <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, false) ?> + </span> + </span> + <span class="price-including-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Incl. Tax:') ?></span> + <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?> + </span> + <span class="weee">( + <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?> + <?php echo $_weeeSeparator; ?> + <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount() + $_weeeTaxAttribute->getTaxAmount(), true, true); ?> + <?php $_weeeSeparator = ' + '; ?> + <?php endforeach; ?> + )</span> + </span> + <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 2)): // excl. + weee + final ?> + <span class="price-excluding-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Excl. Tax:') ?></span> + <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_price, true, false) ?> + </span> + </span> + <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?> + <span class="weee"> + <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?> + </span> + <?php endforeach; ?> + <span class="price-including-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Incl. Tax:') ?></span> + <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?> + </span> + </span> + <?php else: ?> + <span class="price-excluding-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Excl. Tax:') ?></span> + <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php if ($_finalPrice == $_price): ?> + <?php echo $_coreHelper->currency($_price, true, false) ?> + <?php else: ?> + <?php echo $_coreHelper->currency($_finalPrice, true, false) ?> + <?php endif; ?> + </span> + </span> + <span class="price-including-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Incl. Tax:') ?></span> + <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPriceInclTax, true, false) ?> + </span> + </span> + <?php endif; ?> + <?php else: ?> + <?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 0)): // including ?> + <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, true) ?> + </span> + <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 1)): // incl. + weee ?> + <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, true) ?> + </span> + <span class="weee">( + <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?> + <?php echo $_weeeSeparator; ?> + <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?> + <?php $_weeeSeparator = ' + '; ?> + <?php endforeach; ?> + )</span> + <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 4)): // incl. + weee ?> + <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, true) ?> + </span> + <span class="weee">( + <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?> + <?php echo $_weeeSeparator; ?> + <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount() + $_weeeTaxAttribute->getTaxAmount(), true, true); ?> + <?php $_weeeSeparator = ' + '; ?> + <?php endforeach; ?> + )</span> + <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 2)): // excl. + weee + final ?> + <span class="regular-price"><?php echo $_coreHelper->currency($_price,true,true) ?></span><br /> + <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?> + <span class="weee"> + <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?> + </span> + <?php endforeach; ?> + <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, true) ?> + </span> + <?php else: ?> + <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php if ($_finalPrice == $_price): ?> + <?php echo $_coreHelper->currency($_price, true, true) ?> + <?php else: ?> + <?php echo $_coreHelper->currency($_finalPrice, true, true) ?> + <?php endif; ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php else: /* if ($_finalPrice == $_price): */ ?> + <?php $_originalWeeeTaxAmount = $_weeeHelper->getOriginalAmount($_product); ?> + + <?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 0)): // including ?> + <p class="old-price"> + <span class="price-label"><?php echo $this->__('Regular Price:') ?></span> + <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_regularPrice + $_originalWeeeTaxAmount, true, false) ?> + </span> + </p> + + <?php if ($_taxHelper->displayBothPrices()): ?> + <p class="special-price"> + <span class="price-label"><?php echo $this->__('Special Price:') ?></span> + <span class="price-excluding-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Excl. Tax:') ?></span> + <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPrice + $_weeeTaxAmount, true, false) ?> + </span> + </span> + <span class="price-including-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Incl. Tax:') ?></span> + <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?> + </span> + </span> + </p> + <?php else: ?> + <p class="special-price"> + <span class="price-label"><?php echo $this->__('Special Price:') ?></span> + <span class="price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPrice + $_weeeTaxAmountInclTaxes, true, false) ?> + </span> + </p> + <?php endif; ?> + + <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 1)): // incl. + weee ?> + <p class="old-price"> + <span class="price-label"><?php echo $this->__('Regular Price:') ?></span> + <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_regularPrice + $_originalWeeeTaxAmount, true, false) ?> + </span> + </p> + + <p class="special-price"> + <span class="price-label"><?php echo $this->__('Special Price:') ?></span> + <span class="price-excluding-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Excl. Tax:') ?></span> + <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPrice + $_weeeTaxAmount, true, false) ?> + </span> + </span> + <span class="weee">( + <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?> + <?php echo $_weeeSeparator; ?> + <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?> + <?php $_weeeSeparator = ' + '; ?> + <?php endforeach; ?> + )</span> + <span class="price-including-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Incl. Tax:') ?></span> + <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?> + </span> + </span> + </p> + <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 4)): // incl. + weee ?> + <p class="old-price"> + <span class="price-label"><?php echo $this->__('Regular Price:') ?></span> + <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_regularPrice + $_originalWeeeTaxAmount, true, false) ?> + </span> + </p> + + <p class="special-price"> + <span class="price-label"><?php echo $this->__('Special Price:') ?></span> + <span class="price-excluding-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Excl. Tax:') ?></span> + <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPrice + $_weeeTaxAmount, true, false) ?> + </span> + </span> + <span class="weee">( + <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?> + <?php echo $_weeeSeparator; ?> + <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount() + $_weeeTaxAttribute->getTaxAmount(), true, true); ?> + <?php $_weeeSeparator = ' + '; ?> + <?php endforeach; ?> + )</span> + <span class="price-including-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Incl. Tax:') ?></span> + <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?> + </span> + </span> + </p> + <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 2)): // excl. + weee + final ?> + <p class="old-price"> + <span class="price-label"><?php echo $this->__('Regular Price:') ?></span> + <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_regularPrice, true, false) ?> + </span> + </p> + + <p class="special-price"> + <span class="price-label"><?php echo $this->__('Special Price:') ?></span> + <span class="price-excluding-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Excl. Tax:') ?></span> + <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPrice, true, false) ?> + </span> + </span> + <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?> + <span class="weee"> + <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?> + </span> + <?php endforeach; ?> + <span class="price-including-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Incl. Tax:') ?></span> + <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?> + </span> + </span> + </p> + <?php else: // excl. ?> + <p class="old-price"> + <span class="price-label"><?php echo $this->__('Regular Price:') ?></span> + <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_regularPrice, true, false) ?> + </span> + </p> + + <?php if ($_taxHelper->displayBothPrices()): ?> + <p class="special-price"> + <span class="price-label"><?php echo $this->__('Special Price:') ?></span> + <span class="price-excluding-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Excl. Tax:') ?></span> + <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPrice, true, false) ?> + </span> + </span> + <span class="price-including-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Incl. Tax:') ?></span> + <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPriceInclTax, true, false) ?> + </span> + </span> + </p> + <?php else: ?> + <p class="special-price"> + <span class="price-label"><?php echo $this->__('Special Price:') ?></span> + <span class="price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_finalPrice, true, false) ?> + </span> + </p> + <?php endif; ?> + <?php endif; ?> + + <?php endif; /* if ($_finalPrice == $_price): */ ?> + + <?php if ($this->getDisplayMinimalPrice() && $_minimalPriceValue && $_minimalPriceValue < $_product->getFinalPrice()): ?> + + <?php $_minimalPriceDisplayValue = $_minimalPrice; ?> + <?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, array(0, 1, 4))): ?> + <?php $_minimalPriceDisplayValue = $_minimalPrice + $_weeeTaxAmount; ?> + <?php endif; ?> + + <?php if ($this->getUseLinkForAsLowAs()):?> + <span class="minimal-price-link"> + <?php else:?> + <span class="minimal-price-link"> + <?php endif?> + <span class="label"><?php echo $this->__('As low as:') ?></span> + <span class="price" id="product-minimal-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_minimalPriceDisplayValue, true, false) ?> + </span> + <?php if ($this->getUseLinkForAsLowAs()):?> + </span> + <?php else:?> + </span> + <?php endif?> + <?php endif; /* if ($this->getDisplayMinimalPrice() && $_minimalPrice && $_minimalPrice < $_finalPrice): */ ?> + </div> + +<?php else: /* if (!$_product->isGrouped()): */ ?> + <?php + $_exclTax = $_taxHelper->getPrice($_product, $_minimalPriceValue); + $_inclTax = $_taxHelper->getPrice($_product, $_minimalPriceValue, true); + ?> + <?php if ($this->getDisplayMinimalPrice() && $_minimalPriceValue): ?> + <div class="price-box"> + <p class="minimal-price"> + <span class="price-label"><?php echo $this->__('Starting at:') ?></span> + <?php if ($_taxHelper->displayBothPrices()): ?> + <span class="price-excluding-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Excl. Tax:') ?></span> + <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_exclTax, true, false) ?> + </span> + </span> + <span class="price-including-tax"> + <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->__('Incl. Tax:') ?></span> + <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_inclTax, true, false) ?> + </span> + </span> + <?php else: ?> + <?php + $_showPrice = $_inclTax; + if (!$_taxHelper->displayPriceIncludingTax()) { + $_showPrice = $_exclTax; + } + ?> + <span class="price" id="product-minimal-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> + <?php echo $_coreHelper->currency($_showPrice, true, false) ?> + </span> + <?php endif; ?> + </p> + </div> + <?php endif; /* if ($this->getDisplayMinimalPrice() && $_minimalPrice): */ ?> +<?php endif; /* if (!$_product->isGrouped()): */ ?> diff --git a/app/design/frontend/default/iphone/Mage_Catalog/product/price_msrp.phtml b/app/design/frontend/default/iphone/Mage_Catalog/product/price_msrp.phtml new file mode 100644 index 00000000000..1732a85020a --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Catalog/product/price_msrp.phtml @@ -0,0 +1,46 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> + +<?php +/** + * Template for displaying product price at catalog and sidebars + * + * @var $this Mage_Catalog_Block_Product_Price + */ +?> +<?php + /** @var $_product Mage_Catalog_Model_Product */ + $_product = $this->getProduct(); + $_msrpPrice = ""; +?> + <div class="price-box map-info"> + <?php $_price = $this->helper('Mage_Tax_Helper_Data')->getPrice($_product, $_product->getMsrp()) ?> + <?php if ($_product->getMsrp()): ?> + <?php $_msrpPrice = $this->helper('Mage_Core_Helper_Data')->currency($_product->getMsrp(),true,true) ?> + <span class="old-price" id="product-price-<?php echo $_product->getId() ?><?php echo $this->getIdSuffix() ?>"><?php echo $_msrpPrice ?></span> + <?php endif; ?> + </div> diff --git a/app/design/frontend/default/iphone/Mage_Catalog/product/price_msrp_noform.phtml b/app/design/frontend/default/iphone/Mage_Catalog/product/price_msrp_noform.phtml new file mode 100644 index 00000000000..1732a85020a --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Catalog/product/price_msrp_noform.phtml @@ -0,0 +1,46 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> + +<?php +/** + * Template for displaying product price at catalog and sidebars + * + * @var $this Mage_Catalog_Block_Product_Price + */ +?> +<?php + /** @var $_product Mage_Catalog_Model_Product */ + $_product = $this->getProduct(); + $_msrpPrice = ""; +?> + <div class="price-box map-info"> + <?php $_price = $this->helper('Mage_Tax_Helper_Data')->getPrice($_product, $_product->getMsrp()) ?> + <?php if ($_product->getMsrp()): ?> + <?php $_msrpPrice = $this->helper('Mage_Core_Helper_Data')->currency($_product->getMsrp(),true,true) ?> + <span class="old-price" id="product-price-<?php echo $_product->getId() ?><?php echo $this->getIdSuffix() ?>"><?php echo $_msrpPrice ?></span> + <?php endif; ?> + </div> diff --git a/app/design/frontend/default/iphone/Mage_Catalog/product/view.phtml b/app/design/frontend/default/iphone/Mage_Catalog/product/view.phtml index f3b4954c3b0..10768290a21 100644 --- a/app/design/frontend/default/iphone/Mage_Catalog/product/view.phtml +++ b/app/design/frontend/default/iphone/Mage_Catalog/product/view.phtml @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default + * @package default_iphone * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ @@ -38,76 +38,78 @@ </script> <div id="messages_product_view"><?php echo $this->getMessagesBlock()->getGroupedHtml() ?></div> <div class="product-view"> - <div class="product-essential"> - <form action="<?php echo $this->getSubmitUrl($_product) ?>" method="post" id="product_addtocart_form"<?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>> + <form action="<?php echo $this->getSubmitUrl($_product) ?>" method="post" id="product_addtocart_form"<?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>> + <div class="no-display"> <input type="hidden" name="product" value="<?php echo $_product->getId() ?>" /> <input type="hidden" name="related_product" id="related-products-field" value="" /> - <div class="product-shop"> - <div class="wrap"> - <div class="product-image-and-actions"> - <?php echo $this->getChildHtml('media') ?> - </div> - <div class="product-desc"> - <h1><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1> + </div> + <div class="product-essential"> + + <div class="product-img-box"> + <?php echo $this->getChildHtml('media') ?> + </div> + + <div class="product-shop"> + <div class="product-main-info"> + <div class="product-name"> + <h1><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1> + </div> + <?php echo $this->getChildHtml('alert_urls') ?> <?php echo $this->getChildHtml('product_type_data') ?> - <?php echo $this->getReviewsSummaryHtml($_product, false, true)?> - <?php if (!$this->hasOptions()):?> - <?php if ($_product->getTypeId() != Mage_Catalog_Model_Product_Type_Grouped::TYPE_CODE) :?> - <fieldset class="add-to-cart-box"> - <?php if($_product->isSaleable()): ?> - <?php echo $this->getChildHtml('addtocart') ?> - <?php endif; ?> - </fieldset> - <?php endif; ?> - <?php endif; ?> </div> - </div> - <?php if ($_product->isSaleable() && $this->hasOptions()):?> - <?php echo $this->getChildChildHtml('container1') ?> - <?php endif;?> - <?php if (!$this->hasOptions() && $_product->getTypeId() != Mage_Catalog_Model_Product_Type_Grouped::TYPE_CODE) :?> - <?php echo $this->getChildHtml('addto') ?> - <?php endif; ?> - <?php if ($_product->getTypeId() == Mage_Catalog_Model_Product_Type_Grouped::TYPE_CODE) :?> - <div class="grouped-grid"> - <?php echo $this->getChildHtml('product_type_data_grid') ?> - <?php if ($_product->getTypeId() == Mage_Catalog_Model_Product_Type_Grouped::TYPE_CODE) :?> - <fieldset class="add-to-cart-box"> + <?php echo $this->getTierPriceHtml() ?> + <?php echo $this->getChildHtml('extrahint') ?> + + <?php if (!$this->hasOptions()):?> + <div class="add-to-box"> <?php if($_product->isSaleable()): ?> <?php echo $this->getChildHtml('addtocart') ?> <?php endif; ?> - </fieldset> - <?php endif; ?> - </div> - <?php echo $this->getChildHtml('addto') ?> - <?php endif; ?> - </div> - <div class="product-collateral"> - <?php $layout = $this->getLayout(); ?> - <?php foreach ($this->getGroupChildNames('detailed_info') as $name):?> - <?php $html = $layout->renderElement($name); ?> - <?php if (!$html) continue; ?> - <?php $alias = $layout->getElementAlias($name); ?> - <div class="box-collateral <?php echo "box-{$alias}"?>"> - <?php if ($title = $this->getChildData($alias, 'title')):?> - <h2><?php echo $this->escapeHtml($title); ?></h2> - <?php endif;?> - <?php echo $html; ?> </div> - <?php endforeach;?> + <?php echo $this->getChildHtml('extra_buttons') ?> + <?php else:?> + <?php if ($_product->isSaleable() && $this->hasOptions() && $this->getChildChildHtml('container1') ):?> + <div class="options-container-small"> + <?php echo $this->getChildChildHtml('container1') ?> + </div> + <?php endif;?> + <?php endif; ?> + + <?php echo $this->getChildHtml('other');?> + </div> + + </div> + + <div class="product-collateral"> + + <?php $layout = $this->getLayout(); ?> + <?php foreach ($this->getGroupChildNames('detailed_info', 'getChildHtml') as $name):?> + <?php $html = $layout->renderElement($name); ?> + <?php $alias = $layout->getElementAlias($name); ?> + <div class="box-collateral <?php echo "box-{$alias}"?>"> + <?php if ($title = $this->getChildData($alias, 'title')):?> + <h2><?php echo $this->escapeHtml($title); ?></h2> + <?php endif;?> + <?php echo $html; ?> </div> - <?php echo $this->getChildHtml('giftcard_form'); ?> - <?php if ($_product->isSaleable() && $this->hasOptions()):?> + <?php if ($alias == 'description'): ?> + <div class="product-add-to"><?php echo $this->getChildHtml('addto') ?></div> + <?php endif; ?> + <?php endforeach;?> + + </div> + + <div class="product-review"><?php echo $this->getReviewsSummaryHtml($_product, false, true)?></div> + + <?php if ($_product->isSaleable() && $this->hasOptions() && $this->getChildChildHtml('container2') ):?> + <div class="options-container-big"> <?php echo $this->getChildChildHtml('container2') ?> - <?php endif;?> - </form> - </div> - <div class="product-collateral"> - <?php if ($this->getChildHtml('upsell_products')):?> - <div class="collateral-box"><?php echo $this->getChildHtml('upsell_products') ?></div> + </div> <?php endif;?> - <?php echo $this->getChildHtml('product_additional_data') ?> - </div> + </form> + <?php echo $this->getChildHtml('upsell_products') ?> + <?php echo $this->getChildHtml('productTagList') ?> + <?php echo $this->getChildHtml('product_additional_data') ?> </div> <script type="text/javascript"> @@ -123,16 +125,27 @@ } var e = null; try { - if ( window.WebKitCSSMatrix ) { - var originalImg = $$('.product-image-wrap .product-image img')[0]; - originalImg.up('.product-image-wrap').insert(originalImg.clone().addClassName('cloned')); - setTimeout(function () {$$('.cloned')[0].setStyle({'webkitTransform' : 'translate3d(' + (document.body.offsetWidth - 190) + 'px, -150px, 2px) scale(0) rotate(200deg)'});}, 1); - $$('.product-image-wrap .cloned')[0].observe('webkitTransitionEnd', function(e) { - this.form.submit(); - }.bind(this)); + var transformValue = {}; + + if ( Modernizr.csstransforms3d ) { + transformValue[Modernizr.prefixed('transform')] = 'translate3d(-82px, -106px, 2px) scale(0) rotate(200deg)'; + } else if ( Modernizr.csstransforms ) { + transformValue[Modernizr.prefixed('transform')] = 'translate(-82px, -106px) scale(0) rotate(200deg)'; } else { this.form.submit(); + return false; } + + var originalImg = $$('.product-image-wrap .product-image img')[0]; + originalImg.up('.product-image-wrap').insert(originalImg.clone().addClassName('cloned')); + + setTimeout(function () { + $$('.cloned')[0].setStyle(transformValue); + }, 1); + $$('.product-image-wrap .cloned')[0].observe(transEndEventName, function(e) { + this.form.submit(); + }.bind(this)); + } catch (e) { } this.form.action = oldUrl; @@ -152,13 +165,6 @@ delete Validation.methods['required-entry']; delete Validation.methods['validate-one-required']; delete Validation.methods['validate-one-required-by-name']; - // Remove custom datetime validators - for (var methodName in Validation.methods) { - if (methodName.match(/^validate-datetime-.*/i)) { - delete Validation.methods[methodName]; - } - } - if (this.validator.validate()) { if (url) { this.form.action = url; diff --git a/app/design/frontend/default/iphone/Mage_Catalog/product/view/addto.phtml b/app/design/frontend/default/iphone/Mage_Catalog/product/view/addto.phtml index 7a29901d510..e9a60577b0b 100644 --- a/app/design/frontend/default/iphone/Mage_Catalog/product/view/addto.phtml +++ b/app/design/frontend/default/iphone/Mage_Catalog/product/view/addto.phtml @@ -27,17 +27,12 @@ <?php $_product = $this->getProduct(); ?> <?php $_wishlistSubmitUrl = $this->helper('Mage_Wishlist_Helper_Data')->getAddUrl($_product); ?> -<ul class="product-actions"> - <?php if ($this->helper('Mage_Wishlist_Helper_Data')->isAllow()) : ?> - <li><a href="<?php echo $_wishlistSubmitUrl ?>" onclick="productAddToCartForm.submitLight(this, '<?php echo $_wishlistSubmitUrl ?>'); return false;" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li> - <?php endif; ?> - <?php - $_compareUrl = $this->helper('Mage_Catalog_Helper_Product_Compare')->getAddUrl($_product); - ?> - <?php if($_compareUrl) : ?> - <li><a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li> - <?php endif; ?> - <?php if ($this->canEmailToFriend()): ?> - <li><a href="<?php echo $this->helper('Mage_Catalog_Helper_Product')->getEmailToFriendUrl($_product) ?>"><?php echo $this->__('Email to Friend') ?></a></li> - <?php endif; ?> + +<ul class="add-to-links"> +<?php if ($this->helper('Mage_Wishlist_Helper_Data')->isAllow()) : ?> + <li><a href="<?php echo $_wishlistSubmitUrl ?>" onclick="productAddToCartForm.submitLight(this, this.href); return false;" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li> +<?php endif; ?> +<?php if ($this->canEmailToFriend()): ?> + <li><a href="<?php echo $this->helper('Mage_Catalog_Helper_Product')->getEmailToFriendUrl($_product) ?>"><?php echo $this->__('Email to Friend') ?></a></li> +<?php endif; ?> </ul> diff --git a/app/design/frontend/default/iphone/Mage_Catalog/product/view/media.phtml b/app/design/frontend/default/iphone/Mage_Catalog/product/view/media.phtml index 8b2a813bdf5..4962bd91064 100644 --- a/app/design/frontend/default/iphone/Mage_Catalog/product/view/media.phtml +++ b/app/design/frontend/default/iphone/Mage_Catalog/product/view/media.phtml @@ -36,18 +36,16 @@ ?> <div class="product-image-wrap"> <div class="product-image"> - <span class="prev"></span> - <span class="next"></span> <ul><!-- --><li> <?php - $_img = '<a href="'.$this->getGalleryUrl($_image).'"><img src="'.$this->helper('Mage_Catalog_Helper_Image')->init($_product, 'image')->resize(480).'" width="240" alt="'.$this->escapeHtml($this->getImageLabel()).'" title="'.$this->escapeHtml($this->getImageLabel()).'" /></a>'; + $_img = '<a href="'.$this->getGalleryUrl().'"><img src="'.$this->helper('Mage_Catalog_Helper_Image')->init($_product, 'image')->resize(290).'" width="145" alt="'.$this->escapeHtml($this->getImageLabel()).'" title="'.$this->escapeHtml($this->getImageLabel()).'" /></a>'; echo $_helper->productAttribute($_product, $_img, 'image'); ?> </li><!-- <?php if (count($this->getGalleryImages()) > 0): ?> <?php foreach ($this->getGalleryImages() as $_image): ?> - --><li><a href="<?php echo $this->getGalleryUrl($_image) ?>" title="<?php echo $this->escapeHtml($_image->getLabel()) ?>"><img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->resize(300); ?>" width="150" height="150" alt="<?php echo $this->escapeHtml($_image->getLabel()) ?>" /></a></li><!-- + --><li><a href="<?php echo $this->getGalleryUrl($_image) ?>" title="<?php echo $this->escapeHtml($_image->getLabel()) ?>"><img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->resize(290); ?>" width="145" height="145" alt="<?php echo $this->escapeHtml($_image->getLabel()) ?>" /></a></li><!-- <?php endforeach; ?> <?php endif; ?> --></ul> diff --git a/app/design/frontend/default/iphone/Mage_Catalog/product/view/type/grouped_grid.phtml b/app/design/frontend/default/iphone/Mage_Catalog/product/view/type/grouped_grid.phtml deleted file mode 100644 index 361fc7e2adb..00000000000 --- a/app/design/frontend/default/iphone/Mage_Catalog/product/view/type/grouped_grid.phtml +++ /dev/null @@ -1,77 +0,0 @@ -<?php -/** - * Magento - * - * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @category design - * @package base_default - * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) - */ -?> -<?php $this->setPreconfiguredValue(); ?> -<?php $_product = $this->getProduct(); ?> -<?php $_associatedProducts = $this->getAssociatedProducts(); ?> -<?php $_hasAssociatedProducts = count($_associatedProducts) > 0; ?> -<table class="data-table grouped-items-table"> - <col /> - <col /> - <col width="1" /> - <thead> - <tr> - <th><?php echo $this->__('Product Name') ?></th> - <?php if ($this->getCanShowProductPrice($_product)): ?> - <th><?php echo $this->__('Price') ?></th> - <?php endif; ?> - <?php if ($_product->isSaleable()): ?> - <th><?php echo $this->__('Qty') ?></th> - <?php endif; ?> - </tr> - </thead> - <tbody> - <?php if ($_hasAssociatedProducts): ?> - <?php foreach ($_associatedProducts as $_item): ?> - <?php $_finalPriceInclTax = $this->helper('Mage_Tax_Helper_Data')->getPrice($_item, $_item->getFinalPrice(), true) ?> - <tr> - <td><?php echo $this->escapeHtml($_item->getName()) ?></td> - <?php if ($this->getCanShowProductPrice($_product)): ?> - <td> - <?php if ($this->getCanShowProductPrice($_item)): ?> - <?php echo $this->getPriceHtml($_item, true) ?> - <?php echo $this->getTierPriceHtml($_item) ?> - <?php endif; ?> - </td> - <?php endif; ?> - <?php if ($_product->isSaleable()): ?> - <td> - <?php if ($_item->isSaleable()) : ?> - <input type="text" name="super_group[<?php echo $_item->getId() ?>]" maxlength="12" value="<?php echo $_item->getQty()*1 ?>" title="<?php echo $this->__('Qty') ?>" class="input-text qty" /> - <?php else: ?> - <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p> - <?php endif; ?> - </td> - <?php endif; ?> - </tr> - <?php endforeach; ?> - <?php else: ?> - <tr> - <td colspan="<?php if ($_product->isSaleable()): ?>4<?php else : ?>3<?php endif; ?>"><?php echo $this->__('No options of this product are available.') ?></td> - </tr> - <?php endif; ?> - </tbody> -</table> diff --git a/app/design/frontend/default/iphone/Mage_CatalogSearch/form.mini.phtml b/app/design/frontend/default/iphone/Mage_CatalogSearch/form.mini.phtml index 7526290880c..5879baa3d7a 100644 --- a/app/design/frontend/default/iphone/Mage_CatalogSearch/form.mini.phtml +++ b/app/design/frontend/default/iphone/Mage_CatalogSearch/form.mini.phtml @@ -23,7 +23,17 @@ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ +/* @var $this Mage_Core_Block_Template */ +/* @var $catalogSearchHelper Mage_CatalogSearch_Helper_Data */ +$catalogSearchHelper = $this->helper('Mage_CatalogSearch_Helper_Data'); ?> -<form action="<?php echo $this->helper('Mage_CatalogSearch_Helper_Data')->getResultUrl() ?>" method="get"> - <input type="search" name="<?php echo $this->helper('Mage_CatalogSearch_Helper_Data')->getQueryParamName() ?>" id="search" placeholder="Search" /> +<form id="search_mini_form" action="<?php echo $catalogSearchHelper->getResultUrl() ?>" method="get"> + <input type="search" name="<?php echo $this->helper('Mage_CatalogSearch_Helper_Data')->getQueryParamName() ?>" id="search" placeholder="Search" maxlength="<?php echo $catalogSearchHelper->getMaxQueryLength();?>"/> + <div id="search_autocomplete" class="search-autocomplete"></div> </form> +<script type="text/javascript"> + //<![CDATA[ + var searchForm = new Varien.searchForm('search_mini_form', 'search', '<?php echo $this->__('Search') ?>'); + searchForm.initAutocomplete('<?php echo $catalogSearchHelper->getSuggestUrl() ?>', 'search_autocomplete'); + //]]> +</script> diff --git a/app/design/frontend/default/iphone/Mage_CatalogSearch/layout.xml b/app/design/frontend/default/iphone/Mage_CatalogSearch/layout.xml index 0eadd612bfb..56e906fe93e 100644 --- a/app/design/frontend/default/iphone/Mage_CatalogSearch/layout.xml +++ b/app/design/frontend/default/iphone/Mage_CatalogSearch/layout.xml @@ -32,27 +32,14 @@ <reference name="header"> <block type="Mage_Core_Block_Template" name="top.search" as="topSearch" template="Mage_CatalogSearch::form.mini.phtml"/> </reference> - <reference name="footer_links"> - <action method="addLink" translate="label title" module="Mage_CatalogSearch" ifconfig="catalog/seo/search_terms"> - <label>Search Terms</label> - <url helper="Mage_CatalogSearch_Helper_Data::getSearchTermUrl" /> - <title>Search Terms</title> - </action> - <action method="addLink" translate="label title" module="Mage_CatalogSearch"> - <label>Advanced Search</label> - <url helper="Mage_CatalogSearch_Helper_Data::getAdvancedSearchUrl" /> - <title>Advanced Search</title> - </action> - </reference> </default> - <catalogsearch_result_index translate="label" type="page" parent="default"> + <catalogsearch_result_index translate="label"> <label>Quick Search Form</label> <reference name="root"> <action method="setTemplate"><template>1column.phtml</template></action> </reference> <reference name="left"> - <block type="Mage_CatalogSearch_Block_Layer" name="catalogsearch.leftnav" after="currency" template="Mage_Catalog::layer/view.phtml"/> </reference> <reference name="content"> <block type="Mage_CatalogSearch_Block_Result" name="search.result" template="result.phtml"> @@ -60,27 +47,24 @@ <block type="Mage_Catalog_Block_Product_List_Toolbar" name="product_list_toolbar" template="product/list/toolbar.phtml"> <block type="Mage_Page_Block_Html_Pager" name="product_list_toolbar_pager"/> </block> - <action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action> - <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action> - <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action> - <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action> - <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action> <action method="setToolbarBlockName"><name>product_list_toolbar</name></action> </block> <action method="setListOrders"/> <action method="setListModes"/> <action method="setListCollection"/> </block> + <block type="Mage_CatalogSearch_Block_Layer" name="catalogsearch" after="-" template="Mage_Catalog::layer/view.phtml"/> </reference> </catalogsearch_result_index> - <catalogsearch_advanced_index translate="label" type="page" parent="default"> + <catalogsearch_advanced_index translate="label" module="Mage_CatalogSearch" type="page" parent="default"> <label>Advanced Search Form</label> <!-- Mage_Catalogsearch --> <reference name="root"> <action method="setTemplate"><template>1column.phtml</template></action> </reference> <reference name="head"> + <action method="setTitle" translate="title" module="Mage_CatalogSearch"><title>Advanced Search</title></action> <action method="addCss"><file>calendar/calendar-win2k-1.css</file><params/><!--<if/><condition>can_load_calendar_js</condition>--></action> <action method="addJs"><file>calendar/calendar.js</file><!--<params/><if/><condition>can_load_calendar_js</condition>--></action> <action method="addJs"><file>calendar/calendar-setup.js</file><!--<params/><if/><condition>can_load_calendar_js</condition>--></action> @@ -95,12 +79,12 @@ Advanced search results --> - <catalogsearch_advanced_result translate="label" type="page" parent="catalogsearch_advanced_index"> + <catalogsearch_advanced_result translate="label" module="Mage_CatalogSearch" type="page" parent="catalogsearch_advanced_index"> <label>Advanced Search Result</label> <update handle="page_two_columns_right" /> <!-- Mage_Catalogsearch --> <reference name="root"> - <action method="setTemplate"><template>2columns-right.phtml</template></action> + <action method="setTemplate"><template>1column.phtml</template></action> </reference> <reference name="content"> <block type="Mage_CatalogSearch_Block_Advanced_Result" name="catalogsearch_advanced_result" template="advanced/result.phtml"> @@ -108,11 +92,6 @@ Advanced search results <block type="Mage_Catalog_Block_Product_List_Toolbar" name="product_list_toolbar" template="product/list/toolbar.phtml"> <block type="Mage_Page_Block_Html_Pager" name="product_list_toolbar_pager"/> </block> - <action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action> - <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action> - <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action> - <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action> - <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action> <action method="setToolbarBlockName"><name>product_list_toolbar</name></action> </block> <action method="setListOrders"/> @@ -122,40 +101,20 @@ Advanced search results </reference> </catalogsearch_advanced_result> - <catalogsearch_term_popular translate="label" type="page" parent="default"> + <catalogsearch_term_popular translate="label" module="Mage_CatalogSearch" type="page" parent="default"> <label>Popular Search Terms</label> <remove name="right"/> <remove name="left"/> + <reference name="head"> + <action method="setTitle" translate="title" module="Mage_CatalogSearch"><title>Search Terms</title></action> + </reference> <reference name="root"> <action method="setTemplate"><template>1column.phtml</template></action> </reference> <reference name="content"> <block type="Mage_CatalogSearch_Block_Term" name="seo.searchterm" template="term.phtml"/> - <block type="Mage_Page_Block_Html_Breadcrumbs" name="breadcrumbs" as="breadcrumbs" before="-"> - <action method="addCrumb" translate="crumbName" module="Mage_Catalog"> - <crumbName>home</crumbName> - <crumbInfo> - <label>Home</label> - <title>Home</title> - <link>/</link> - </crumbInfo> - </action> - <action method="addCrumb" translate="crumbName" module="Mage_Catalog"> - <crumbName>categories</crumbName> - <crumbInfo> - <label>Categories</label> - <title>Categories</title> - </crumbInfo> - </action> - </block> </reference> </catalogsearch_term_popular> - <catalogsearch_ajax_suggest translate="label" module="Mage_CatalogSearch" type="page" parent="ajax_index"> - <label>Catalog Quick Search Form Suggestions</label> - <reference name="root"> - <block type="Mage_CatalogSearch_Block_Autocomplete" name="autocomplete"/> - </reference> - </catalogsearch_ajax_suggest> </layout> diff --git a/app/design/frontend/default/iphone/Mage_CatalogSearch/result.phtml b/app/design/frontend/default/iphone/Mage_CatalogSearch/result.phtml index f8c4c77c9f7..f34104959f7 100644 --- a/app/design/frontend/default/iphone/Mage_CatalogSearch/result.phtml +++ b/app/design/frontend/default/iphone/Mage_CatalogSearch/result.phtml @@ -19,30 +19,18 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default + * @package default_iphone * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> <?php if($this->getResultCount()): ?> <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> -<!-- <div class="page-title"> <?php if ($this->helper('Mage_Rss_Helper_Catalog')->getTagFeedUrl()): ?> <a href="<?php echo $this->helper('Mage_Rss_Helper_Catalog')->getTagFeedUrl() ?>" class="nobr link-rss"><?php echo $this->__('Subscribe to Feed') ?></a> <?php endif; ?> <h1><?php echo ($this->getHeaderText() || $this->getHeaderText() === false) ? $this->getHeaderText() : $this->__("Search results for '%s'", $this->helper('Mage_CatalogSearch_Helper_Data')->getEscapedQueryText()) ?></h1> -</div> ---> -<div class="breadcrumbs"> - <ul> - <li class="home"> - <a href="http://kd.varien.com/dev/andrey.poplavskiy/magento/index.php/" title="Go to Home Page">Home</a> - </li> - <li class="search"> - <strong><?php echo ($this->getHeaderText() || $this->getHeaderText() === false) ? $this->getHeaderText() : $this->__("Results for: %s", $this->helper('Mage_CatalogSearch_Helper_Data')->getEscapedQueryText()) ?></strong> - </li> - </ul> </div> <?php if ($messages = $this->getNoteMessages()):?> <p class="note-msg"> @@ -53,21 +41,9 @@ <?php endif; ?> <?php echo $this->getProductListHtml() ?> <?php else: ?> -<!-- <div class="page-title"> <h1><?php echo ($this->getHeaderText() || $this->getHeaderText() === false) ? $this->getHeaderText() : $this->__("Search results for '%s'", $this->helper('Mage_CatalogSearch_Helper_Data')->getEscapedQueryText()) ?></h1> </div> ---> -<div class="breadcrumbs"> - <ul> - <li class="home"> - <a href="http://kd.varien.com/dev/andrey.poplavskiy/magento/index.php/" title="Go to Home Page">Home</a> - </li> - <li class="search"> - <strong><?php echo ($this->getHeaderText() || $this->getHeaderText() === false) ? $this->getHeaderText() : $this->__("Results for: %s", $this->helper('Mage_CatalogSearch_Helper_Data')->getEscapedQueryText()) ?></strong> - </li> - </ul> -</div> <p class="note-msg"> <?php echo ($this->getNoResultText()) ? $this->getNoResultText() : $this->__('Your search returns no results.') ?> <?php if ($messages = $this->getNoteMessages()):?> diff --git a/app/design/frontend/default/iphone/Mage_Checkout/cart.phtml b/app/design/frontend/default/iphone/Mage_Checkout/cart.phtml index a0a430f089f..567c88f38fc 100644 --- a/app/design/frontend/default/iphone/Mage_Checkout/cart.phtml +++ b/app/design/frontend/default/iphone/Mage_Checkout/cart.phtml @@ -31,62 +31,63 @@ * @see Mage_Checkout_Block_Cart */ ?> -<div class="cart cart-shared"> - <div class="breadcrumbs"> - <ul> - <li class="home"> - <a href="<?php echo $this->getContinueShoppingUrl() ?>" title="<?php echo $this->__('Continue Shopping') ?>"><?php echo $this->__('Continue Shopping') ?></a> - </li> - <li class="product"><strong><?php echo $this->__('Cart') ?></strong></li> - </ul> - </div> - <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> +<div class="cart"> <?php echo $this->getChildHtml('form_before') ?> - <form id="shopping-cart-form" action="<?php echo $this->getUrl('checkout/cart/updatePost') ?>" method="post"> - <table id="shopping-cart-table" class="data-table cart-table" cellspacing="0"> - <colgroup> - <col width="60" /> - <col width="*" /> - <col width="80" /> - <col width="*" /> - <col width="30" /> - </colgroup> - <tbody> - <?php foreach($this->getItems() as $_item): ?> - <?php echo $this->getItemHtml($_item) ?> - <?php endforeach ?> - </tbody> - </table> + <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> + <?php if(!$this->hasError() && count($this->getItems()) > 1): ?> + <ul class="checkout-types"> + <?php foreach ($this->getMethods('methods') as $method): ?> + <?php $methodHtml = $this->getMethodHtml($method); ?> + <?php if ($methodHtml): ?> + <li><?php echo $methodHtml; ?></li> + <?php endif; ?> + <?php endforeach; ?> + </ul> + <?php endif; ?> + <form action="<?php echo $this->getUrl('checkout/cart/updatePost') ?>" method="post"> + <fieldset> + <table id="shopping-cart-table" class="data-table cart-table"> + <tfoot> + <tr> + <td colspan="2" class="a-right"> + <button type="submit" name="update_cart_action" value="update_qty" title="<?php echo $this->__('Update Shopping Cart'); ?>" class="button btn-update"><?php echo $this->__('Update Shopping Cart'); ?></button> + <!--<button type="submit" name="update_cart_action" value="empty_cart" title="<?php echo $this->__('Clear Shopping Cart'); ?>" class="button btn-update" id="empty_cart_button"><?php echo $this->__('Clear Shopping Cart'); ?></button>--> + </td> + </tr> + </tfoot> + <tbody> + <?php foreach($this->getItems() as $_item): ?> + <?php echo $this->getItemHtml($_item) ?> + <?php endforeach ?> + </tbody> + </table> + </fieldset> </form> - <div class="remove-all-button"> - <a href="#"><?php echo $this->__('Remove All')?></a> + <?php echo $this->getChildHtml('shopping.cart.table.after'); ?> + <div class="cart-collaterals<?php if($this->getChildHtml('crosssell')) echo ' cross-inside'; ?>"> + <?php echo $this->getChildHtml('crosssell') ?> + <div class="deals"> + <?php /* Extensions placeholder */ ?> + <?php echo $this->getChildHtml('checkout.cart.extra') ?> + <?php echo $this->getChildHtml('checkout_cart_widget') ?> + <?php echo $this->getChildHtml('coupon') ?> + <?php echo $this->getChildHtml('giftcards') ?> + <?php echo $this->getChildHtml('giftregistry.cart.link') ?> + </div> + <?php if (!$this->getIsVirtual()): echo $this->getChildHtml('shipping'); endif; ?> </div> - - <div class="deals"> - <?php echo $this->getChildHtml('coupon') ?> - <?php echo $this->getChildHtml('giftcards') ?> + <div class="totals"> + <?php echo $this->getChildHtml('totals'); ?> </div> + <?php if(!$this->hasError()): ?> + <ul class="checkout-types"> + <?php foreach ($this->getMethods('methods') as $method): ?> + <?php $methodHtml = $this->getMethodHtml($method); ?> + <?php if ($methodHtml): ?> + <li><?php echo $methodHtml; ?></li> + <?php endif; ?> + <?php endforeach; ?> + </ul> + <?php endif; ?> - <div class="cart-footer"> - <div class="totals"> - <?php echo $this->getChildHtml('totals'); ?> - </div> - <?php if(!$this->hasError()): ?> - <ul class="checkout-types"> - <?php foreach ($this->getMethods('methods') as $method): ?> - <?php if ($methodHtml = $this->getMethodHtml($method)): ?> - <li><?php echo $methodHtml; ?></li> - <?php endif; ?> - <?php endforeach; ?> - </ul> - <?php endif; ?> - <button type="submit" title="<?php echo $this->__('Update Cart') ?>" id="update-cart"><?php echo $this->__('Update Cart') ?></button> - </div> - <script type="text/javascript"> - document.observe("dom:loaded", function() { - $("update-cart").observe("click", function() { - $("shopping-cart-form").submit(); - }); - }); - </script> </div> diff --git a/app/design/frontend/default/iphone/Mage_Checkout/cart/coupon.phtml b/app/design/frontend/default/iphone/Mage_Checkout/cart/coupon.phtml deleted file mode 100644 index aa133ba604c..00000000000 --- a/app/design/frontend/default/iphone/Mage_Checkout/cart/coupon.phtml +++ /dev/null @@ -1,59 +0,0 @@ -<?php -/** - * Magento - * - * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @category design - * @package base_default - * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) - */ -?> -<div class="discount"> - <h2><?php echo $this->__('Discount Codes') ?></h2> - <div class="discount-form"> - <form id="discount-coupon-form" action="<?php echo $this->getUrl('checkout/cart/couponPost') ?>" method="post"> - <label for="coupon_code"><?php echo $this->__('Enter your coupon code if you have one.') ?></label> - <input type="hidden" name="remove" id="remove-coupone" value="0" /> - <div class="input-box"> - <input class="input-text" id="coupon_code" name="coupon_code" value="<?php echo $this->escapeHtml($this->getCouponCode()) ?>" /> - </div> - <div class="buttons-set"> - <button type="button" title="<?php echo $this->__('Apply Coupon') ?>" class="button" onclick="discountForm.submit(false)" value="<?php echo $this->__('Apply Coupon') ?>"><?php echo $this->__('Apply Coupon') ?></button> - </div> - <?php if(strlen($this->getCouponCode())): ?> - <a href="#" onclick="discountForm.submit(true); return false" value="<?php echo $this->__('Cancel Coupon') ?>"><?php echo $this->__('Cancel Coupon') ?></a> - <?php endif;?> - </form> - </div> - <script type="text/javascript"> - //<![CDATA[ - var discountForm = new VarienForm('discount-coupon-form'); - discountForm.submit = function (isRemove) { - if (isRemove) { - $('coupon_code').removeClassName('required-entry'); - $('remove-coupone').value = "1"; - } else { - $('coupon_code').addClassName('required-entry'); - $('remove-coupone').value = "0"; - } - return VarienForm.prototype.submit.bind(discountForm)(); - } - //]]> - </script> -</div> diff --git a/app/design/frontend/default/iphone/Mage_Checkout/cart/item/default.phtml b/app/design/frontend/default/iphone/Mage_Checkout/cart/item/default.phtml index 9416e111625..bcc43885d10 100644 --- a/app/design/frontend/default/iphone/Mage_Checkout/cart/item/default.phtml +++ b/app/design/frontend/default/iphone/Mage_Checkout/cart/item/default.phtml @@ -24,245 +24,281 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> -<?php $_item = $this->getItem()?> -<?php $canApplyMsrp = Mage::helper('Mage_Catalog_Helper_Data')->canApplyMsrp($_item->getProduct(), Mage_Catalog_Model_Product_Attribute_Source_Msrp_Type::TYPE_BEFORE_ORDER_CONFIRM); ?> -<tr> - <td><?php if ($this->hasProductUrl()):?><a href="<?php echo $this->getProductUrl() ?>" title="<?php echo $this->escapeHtml($this->getProductName()) ?>" class="product-image"><?php endif;?><img src="<?php echo $this->getProductThumbnailUrl() ?>" width="<?php echo $this->getThumbnailSize()?>" height="<?php echo $this->getThumbnailSize()?>" alt="<?php echo $this->escapeHtml($this->getProductName()) ?>" /><?php if ($this->hasProductUrl()):?></a><?php endif;?></td> - <td> - <h2 class="product-name"> - <?php if ($this->hasProductUrl()):?> - <a href="<?php echo $this->getProductUrl() ?>"><?php echo $this->escapeHtml($this->getProductName()) ?></a> - <?php else: ?> - <?php echo $this->escapeHtml($this->getProductName()) ?> - <?php endif; ?> - </h2> - <?php if ($_options = $this->getOptionList()):?> - <dl class="item-options"> - <?php foreach ($_options as $_option) : ?> - <?php $_formatedOptionValue = $this->getFormatedOptionValue($_option) ?> - <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> - <dd<?php if (isset($_formatedOptionValue['full_view'])): ?> class="truncated"<?php endif; ?>><?php echo $_formatedOptionValue['value'] ?> - <?php if (isset($_formatedOptionValue['full_view'])): ?> - <div class="truncated_full_value"> - <dl class="item-options"> - <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> - <dd><?php echo $_formatedOptionValue['full_view'] ?></dd> - </dl> - </div> - <?php endif; ?> - </dd> - <?php endforeach; ?> - </dl> - <?php endif;?> - <?php if ($messages = $this->getMessages()): ?> +<?php +$_item = $this->getItem(); +$isVisibleProduct = $_item->getProduct()->isVisibleInSiteVisibility(); +$canApplyMsrp = Mage::helper('Mage_Catalog_Helper_Data')->canApplyMsrp($_item->getProduct(), Mage_Catalog_Model_Product_Attribute_Source_Msrp_Type::TYPE_BEFORE_ORDER_CONFIRM); +$messages = $this->getMessages(); +$_options = $this->getOptionList(); +?> + +<?php if ($messages): ?> +<tr class="messages"> + <td colspan="2"> <?php foreach ($messages as $message): ?> - <p class="item-msg <?php echo $message['type'] ?>">* <?php echo $message['text'] ?></p> + <p class="item-msg <?php echo $message['type'] ?>">* <?php echo $this->escapeHtml($message['text']) ?></p> <?php endforeach; ?> - <?php endif; ?> - <?php if ($addtInfoBlock = $this->getProductAdditionalInformationBlock()):?> - <?php echo $addtInfoBlock->setItem($_item)->toHtml() ?> + </td> +</tr> +<?php endif; ?> +<tr> +<td> + + <?php if ($this->hasProductUrl()):?> + <a href="<?php echo $this->getProductUrl() ?>" title="<?php echo $this->escapeHtml($this->getProductName()) ?>" class="product-image"><?php endif;?><img src="<?php echo $this->getProductThumbnail()->resize(114); ?>" width="57" height="57" alt="<?php echo $this->escapeHtml($this->getProductName()) ?>" /><?php if ($this->hasProductUrl()):?></a> <?php endif;?> - <?php if ($canApplyMsrp): ?> - <span class="cart-price"> - <span class="cart-msrp-unit"><?php echo $this->__('See price before order confirmation.'); ?></span> - <?php $helpLinkId = 'cart-msrp-help-' . $_item->getId(); ?> - <a id="<?php echo $helpLinkId ?>" href="#" class="map-help-link"><?php echo $this->__("What's this?"); ?></a> - <script type="text/javascript"> - Catalog.Map.addHelpLink($('<?php echo $helpLinkId ?>'), "<?php echo $this->__("What's this?") ?>"); - </script> - </span> - <?php else: ?> + <?php if ($isVisibleProduct && $this->getOptionList()): ?> + <p><a class="link-edit" href="<?php echo $this->getConfigureUrl() ?>" title="<?php echo $this->__('Edit item parameters') ?>"><?php echo $this->__('Edit') ?></a></p> + <?php endif ?> - <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> - <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->getIncExcText(false) ?></span> - <?php endif; ?> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?> - <?php else: ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()) ?> - <?php endif; ?> - </span> - - <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> - <div class="cart-tax-info" id="eunit-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount'],true,true); ?></span> - <?php endforeach; ?> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span> - <?php endforeach; ?> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </div> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <div class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> - <span class="weee"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>: <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?></span> - </div> - <?php endif; ?> - <?php endif; ?> +</td> - <?php endif; ?> +<td> - <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> - <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->getIncExcText(true) ?></span> - <?php endif; ?> - <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getPriceInclTax($_item); ?> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> +<a href="<?php echo $this->getDeleteUrl()?>" title="<?php echo $this->__('Remove item')?>" class="btn-remove btn-remove2"><?php echo $this->__('Remove item')?></a> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl-$_item->getWeeeTaxDisposition()) ?> - <?php endif; ?> +<h2 class="product-name"> + <?php if ($this->hasProductUrl()):?> + <a href="<?php echo $this->getProductUrl() ?>"><?php echo $this->escapeHtml($this->getProductName()) ?></a> + <?php else: ?> + <?php echo $this->escapeHtml($this->getProductName()) ?> + <?php endif; ?> +</h2> + +<?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?> +<?php if ($addInfoBlock): ?> + <?php echo $addInfoBlock->setItem($_item)->toHtml() ?> + <?php endif;?> + +<div class="price-box"> - </span> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> - - <div class="cart-tax-info" id="unit-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount'],true,true); ?></span> - <?php endforeach; ?> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span> - <?php endforeach; ?> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span> - <?php endforeach; ?> +<div class="qty-wrap"> + <input name="cart[<?php echo $_item->getId() ?>][qty]" value="<?php echo $this->getQty() ?>" size="4" title="<?php echo $this->__('Qty') ?>" class="input-text qty" maxlength="12" /> + <span<?php if ($this->getQty() == 1) echo ' style="display:none;"' ?>>×</span> +</div> + +<div class="cart-price-box"<?php if ($this->getQty() == 1) echo ' style="display:none;"' ?>> + + <?php if ($canApplyMsrp): ?> + <span class="cart-price"> + <span class="cart-msrp-unit"><?php echo $this->__('See price before order confirmation.'); ?></span> + <?php $helpLinkId = 'cart-msrp-help-' . $_item->getId(); ?> + <a id="<?php echo $helpLinkId ?>" href="#" class="map-help-link"><?php echo $this->__("What's this?"); ?></a> + <script type="text/javascript"> + Catalog.Map.addHelpLink($('<?php echo $helpLinkId ?>'), "<?php echo $this->__("What's this?") ?>"); + </script> + </span> + <?php else: ?> + + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> <?php endif; ?> - </div> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?> + <?php else: ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()) ?> + <?php endif; ?> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <div class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> - <span class="weee"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>: <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?></span> - </div> - <?php endif; ?> + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="eunit-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> <?php endif; ?> - <?php endif; ?> + </div> - <?php endif; //Can apply MSRP ?> - </td> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="weee"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>: <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?></span> + </div> + <?php endif; ?> + <?php endif; ?> - <td class="a-center item-qty"> - <b><?php echo $this->__('Qty'); ?></b><input name="cart[<?php echo $_item->getId() ?>][qty]" value="<?php echo $this->getQty() ?>" size="4" title="<?php echo $this->__('Qty') ?>" class="input-text qty" maxlength="12" /> - </td> - <td class="a-left"> - <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->getIncExcText(false) ?></span> <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax()): ?> - <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getPriceInclTax($_item); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?> <?php else: ?> - <span class="cart-price"> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl-$_item->getWeeeTaxDisposition()) ?> <?php endif; ?> - <?php if ($canApplyMsrp): ?> - <span class="cart-msrp-subtotal">--</span> - <?php else: ?> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()) ?> + </span> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="unit-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> <?php endif; ?> - <?php endif; ?> + </div> - </span> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> - - <div class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount'],true,true); ?></span> - <?php endforeach; ?> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span> - <?php endforeach; ?> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span> - <?php endforeach; ?> - <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="weee"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>: <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?></span> </div> - - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <div class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> - <span class="weee"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>: <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> - </div> <?php endif; ?> + <?php endif; ?> + + <?php endif; ?> + <?php endif; ?> + +</div> + +<div class="cart-price-box"> + + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax() && !$_item->getNoSubtotal()): ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if ($canApplyMsrp): ?> + <span class="cart-msrp-subtotal">--</span> + <?php else: ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> + <?php else: ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()) ?> <?php endif; ?> <?php endif; ?> - <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> - <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->getIncExcText(true) ?></span> + </span> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> <?php endif; ?> - <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getSubtotalInclTax($_item); ?> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> - <?php else: ?> - <span class="cart-price"> + </div> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="weee"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>: <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> + </div> <?php endif; ?> + <?php endif; ?> + + <?php endif; ?> + + <?php if (($this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()) && !$_item->getNoSubtotal()): ?> - <?php if ($canApplyMsrp): ?> - <span class="cart-msrp-subtotal">--</span> - <?php else: ?> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getSubtotalInclTax($_item); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> <?php else: ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> + <span class="cart-price"> <?php endif; ?> - <?php endif; ?> - </span> - - <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> - <div class="cart-tax-info" id="subtotal-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount'],true,true); ?></span> - <?php endforeach; ?> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span> - <?php endforeach; ?> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </div> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <div class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> - <span class="weee"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>: <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - </div> - <?php endif; ?> + <?php if ($canApplyMsrp): ?> + <span class="cart-msrp-subtotal">--</span> + <?php else: ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> + <?php else: ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> <?php endif; ?> <?php endif; ?> - </td> - <td class="a-center"> - <a href="<?php echo $this->getDeleteUrl() ?>" class="item-remove"><img src="<?php echo $this->getSkinUrl('images/btn_trash.png') ?>" width="10" height="10" alt="<?php echo $this->__('Remove item')?>" /></a> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="subtotal-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> + <?php endif; ?> + </div> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="weee"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>: <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> + </div> + <?php endif; ?> + <?php endif; ?> + + <?php endif; ?> + +</div> + +</div> + +</td> +</tr> +<?php if ($_options):?> +<tr class="product-options"> + <td colspan="2"> + <span class="toggle" onclick="$(this).next('.product-options').toggle(); return false;">Show Options</span> + <div class="product-options" style="display:none;"> + <dl class="item-options"> + <?php foreach ($_options as $_option) : ?> + <?php $_formatedOptionValue = $this->getFormatedOptionValue($_option) ?> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <?php if (isset($_formatedOptionValue['full_view'])): ?> + <dd><?php echo $_formatedOptionValue['full_view'] ?></dd> + <?php else: ?> + <dd><?php echo $_formatedOptionValue['value'] ?></dd> + <?php endif; ?> + <?php endforeach; ?> + </dl> + </div> </td> </tr> +<?php endif;?> diff --git a/app/design/frontend/default/iphone/Mage_Checkout/cart/sidebar.phtml b/app/design/frontend/default/iphone/Mage_Checkout/cart/sidebar.phtml deleted file mode 100644 index 99c569716b9..00000000000 --- a/app/design/frontend/default/iphone/Mage_Checkout/cart/sidebar.phtml +++ /dev/null @@ -1,79 +0,0 @@ -<?php -/** - * Magento - * - * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @category design - * @package base_default - * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) - */ - -/** - * Shoping cart sidebar - * - * @see Mage_Checkout_Block_Cart_Sidebar - */ - -?> -<?php if ($this->getIsNeedToDisplaySideBar()):?> -<?php $_cartQty = $this->getSummaryCount() ?> -<div class="block block-cart <?php echo $_cartQty == 0 ? 'cart-empty' : '' ?>"> - <div class="block-content"> - <?php $_items = $this->getRecentItems() ?> - <?php if(count($_items)): ?> - <ol id="cart-sidebar" class="mini-products-list"> - <?php foreach($_items as $_item): ?> - <?php echo $this->getItemHtml($_item) ?> - <?php endforeach; ?> - </ol> - <script type="text/javascript">decorateList('cart-sidebar', 'none-recursive')</script> - <?php else: ?> - <p class="empty"><?php echo $this->__('You have no items in your shopping cart.') ?></p> - <?php endif ?> - - <?php if ($_cartQty>0): ?> - <div class="summary-wrap"> - <div class="summary"> - <?php if ($_cartQty==1): ?> - <p class="amount"><?php echo $this->__('There is <a href="%s">1 item</a> in your cart.', $this->getUrl('checkout/cart')) ?></p> - <?php else: ?> - <p class="amount"><?php echo $this->__('There are <a href="%s">%s items</a> in your cart.', $this->getUrl('checkout/cart'), $_cartQty) ?></p> - <?php endif ?> - <p class="subtotal"> - <?php if ($this->canApplyMsrp()): ?> - <span class="map-cart-sidebar-total"><?php echo $this->__('ORDER TOTAL WILL BE DISPLAYED BEFORE YOU SUBMIT THE ORDER'); ?></span> - <?php else: ?> - <span class="label"><?php echo $this->__('Cart Subtotal:') ?></span> <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($this->getSubtotal()) ?> - <?php if ($_subtotalInclTax = $this->getSubtotalInclTax()): ?> - <br />(<?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($_subtotalInclTax) ?> <?php echo Mage::helper('Mage_Tax_Helper_Data')->getIncExcText(true) ?>) - <?php endif; ?> - <?php endif; ?> - </p> - </div> - <?php if($_cartQty && $this->isPossibleOnepageCheckout()): ?> - <div class="actions"> - <?php echo $this->getChildHtml('extra_actions') ?> - <button type="button" title="<?php echo $this->__('Checkout') ?>" class="button" onclick="setLocation('<?php echo $this->getCheckoutUrl() ?>')"><span><span><?php echo $this->__('Checkout') ?></span></span></button> - </div> - <?php endif ?> - </div> - <?php endif ?> - </div> -</div> -<?php endif;?> diff --git a/app/design/frontend/default/iphone/Mage_Checkout/cartheader.phtml b/app/design/frontend/default/iphone/Mage_Checkout/cartheader.phtml deleted file mode 100644 index 61af0e3b004..00000000000 --- a/app/design/frontend/default/iphone/Mage_Checkout/cartheader.phtml +++ /dev/null @@ -1,100 +0,0 @@ -<?php -/** - * Magento - * - * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @category design - * @package default_iphone - * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) - */ -?> -<?php -/** - * Shopping cart template - * - * @see Mage_Checkout_Block_Cart - */ -?> -<div class="cart-wrap"> - <div class="cart-wrap-content"> - <div class="cart cart-shared"> - <div class="breadcrumbs"> - <ul> - <li class="home"> - <a href="<?php echo $this->getContinueShoppingUrl() ?>" title="<?php echo $this->__('Continue Shopping') ?>"><?php echo $this->__('Continue Shopping') ?></a> - </li> - <li class="product"><strong><?php echo $this->__('Cart') ?></strong></li> - </ul> - </div> - <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> - <?php echo $this->getChildHtml('form_before') ?> - <form id="shopping-cart-form" action="<?php echo $this->getUrl('checkout/cart/updatePost') ?>" method="post"> - <div class="cart-table-wrap"> - <span id="remove-all" class="remove-all item-remove"><img src="<?php echo $this->getSkinUrl('images/btn_trash.png') ?>" width="10" height="10" alt="<?php echo $this->__('Remove All')?>" /></span> - <table id="shopping-cart-table" class="data-table cart-table" cellspacing="0"> - <colgroup> - <col width="60" /> - <col width="*" /> - <col width="80" /> - <col width="*" /> - <col width="30" /> - </colgroup> - <tbody> - <?php foreach($this->getItems() as $_item): ?> - <?php echo $this->getItemHtml($_item) ?> - <?php endforeach ?> - </tbody> - </table> - </div> - </form> - <div class="remove-all-button"> - <a href="#"><?php echo $this->__('Remove All')?></a> - </div> - - <div class="deals"> - <?php echo $this->getChildHtml('coupon') ?> - <?php echo $this->getChildHtml('giftcards') ?> - </div> - - <div class="cart-footer"> - <div class="totals"> - <?php echo $this->getChildHtml('totals'); ?> - </div> - <?php if(!$this->hasError()): ?> - <ul class="checkout-types"> - <?php foreach ($this->getMethods('methods') as $method): ?> - <?php if ($methodHtml = $this->getMethodHtml($method)): ?> - <li><?php echo $methodHtml; ?></li> - <?php endif; ?> - <?php endforeach; ?> - </ul> - <?php endif; ?> - <button type="submit" title="<?php echo $this->__('Update Cart') ?>" id="update-cart"><?php echo $this->__('Update Cart') ?></button> - </div> - - <script type="text/javascript"> - document.observe("dom:loaded", function() { - $("update-cart").observe("click", function() { - $("shopping-cart-form").submit(); - }); - }); - </script> - </div> - </div> -</div> diff --git a/app/design/frontend/default/iphone/Mage_Checkout/layout.xml b/app/design/frontend/default/iphone/Mage_Checkout/layout.xml index d038f68b651..95fe0ec898a 100644 --- a/app/design/frontend/default/iphone/Mage_Checkout/layout.xml +++ b/app/design/frontend/default/iphone/Mage_Checkout/layout.xml @@ -33,49 +33,13 @@ Default layout, loads most of the pages --> <default> + <!-- Mage_Checkout --> <reference name="top.links"> <block type="Mage_Checkout_Block_Links" name="checkout_cart_link"> - <action method="addCartLink"></action> <action method="addCheckoutLink"></action> </block> </reference> - <reference name="right"> - <block type="Mage_Checkout_Block_Cart_Sidebar" name="cart_sidebar" template="cart/sidebar.phtml" before="-"> - <action method="addItemRender"><type>simple</type><block>Mage_Checkout_Block_Cart_Item_Renderer</block><template>cart/sidebar/default.phtml</template></action> - <action method="addItemRender"><type>grouped</type><block>Mage_Checkout_Block_Cart_Item_Renderer_Grouped</block><template>cart/sidebar/default.phtml</template></action> - <action method="addItemRender"><type>configurable</type><block>Mage_Checkout_Block_Cart_Item_Renderer_Configurable</block><template>cart/sidebar/default.phtml</template></action> - <container name="cart_sidebar.extra_actions" as="extra_actions" label="Shopping Cart Sidebar Extra Actions" module="Mage_Checkout"/> - </block> - </reference> - <reference name="header"> - <block type="Mage_Checkout_Block_Cart" name="checkout.cart" as="topCart"> - <action method="setCartTemplate"><value>cartheader.phtml</value></action> - <action method="setEmptyTemplate"><value>cart/no_items_header.phtml</value></action> - <action method="chooseTemplate"/> - <action method="addItemRender"><type>simple</type><block>Mage_Checkout_Block_Cart_Item_Renderer</block><template>cart/item/default.phtml</template></action> - <action method="addItemRender"><type>grouped</type><block>Mage_Checkout_Block_Cart_Item_Renderer_Grouped</block><template>cart/item/default.phtml</template></action> - <action method="addItemRender"><type>configurable</type><block>Mage_Checkout_Block_Cart_Item_Renderer_Configurable</block><template>cart/item/default.phtml</template></action> - <remove name="checkout.cart.breadcrumbs"/> - - <container name="checkout.cart.top_methods" as="top_methods" label="Payment Methods Before Checkout Button"> - <block type="Mage_Checkout_Block_Onepage_Link" name="checkout.cart.methods.onepage" template="onepage/link.phtml"/> - </container> - - <container name="checkout.cart.form.before" as="form_before" label="Shopping Cart Form Before" htmlTag="div"/> - - <container name="checkout.cart.methods" as="methods" label="Payment Methods After Checkout Button"> - <block type="Mage_Checkout_Block_Onepage_Link" name="checkout.cart.methods.onepage" template="onepage/link.phtml"/> - <block type="Mage_Checkout_Block_Multishipping_Link" name="checkout.cart.methods.multishipping" template="multishipping/link.phtml"/> - </container> - - <block type="Mage_Checkout_Block_Cart_Coupon" name="checkout.cart.coupon" as="coupon" template="cart/coupon.phtml"/> - <block type="Mage_Checkout_Block_Cart_Shipping" name="checkout.cart.shipping" as="shipping" template="cart/shipping.phtml"/> - <block type="Mage_Checkout_Block_Cart_Crosssell" name="checkout.cart.crosssell" as="crosssell" template="cart/crosssell.phtml"/> - - <block type="Mage_Checkout_Block_Cart_Totals" name="checkout.cart.totals" as="totals" template="cart/totals.phtml"/> - </block> - </reference> </default> <checkout_cart_index translate="label" type="page" parent="default"> @@ -103,12 +67,10 @@ Default layout, loads most of the pages <container name="checkout.cart.methods" as="methods" label="Payment Methods After Checkout Button"> <block type="Mage_Checkout_Block_Onepage_Link" name="checkout.cart.methods.onepage" template="onepage/link.phtml"/> - <block type="Mage_Checkout_Block_Multishipping_Link" name="checkout.cart.methods.multishipping" template="multishipping/link.phtml"/> </container> <block type="Mage_Checkout_Block_Cart_Coupon" name="checkout.cart.coupon" as="coupon" template="cart/coupon.phtml"/> - <block type="Mage_Checkout_Block_Cart_Shipping" name="checkout.cart.shipping" as="shipping" template="cart/shipping.phtml"/> - <block type="Mage_Checkout_Block_Cart_Crosssell" name="checkout.cart.crosssell" as="crosssell" template="cart/crosssell.phtml"/> + <block type="Mage_Checkout_Block_Cart_Totals" name="checkout.cart.totals" as="totals" template="cart/totals.phtml"/> </block> </reference> @@ -324,12 +286,6 @@ One page checkout main layout <reference name="root"> <action method="setTemplate"><template>1column.phtml</template></action> </reference> - <reference name="right"> - <action method="unsetChildren"></action> - <container name="checkout.progress.wrapper" label="Checkout Progress Wrapper" htmlTag="div" htmlId="checkout-progress-wrapper"> - <block type="Mage_Checkout_Block_Onepage_Progress" name="checkout.progress" before="-" template="onepage/progress.phtml"/> - </container> - </reference> <reference name="content"> <block type="Mage_Checkout_Block_Onepage" name="checkout.onepage" template="onepage.phtml"> <block type="Mage_Checkout_Block_Onepage_Login" name="checkout.onepage.login" as="login" template="onepage/login.phtml"> diff --git a/app/design/frontend/default/iphone/Mage_Checkout/onepage/login.phtml b/app/design/frontend/default/iphone/Mage_Checkout/onepage/login.phtml deleted file mode 100644 index cede25986c2..00000000000 --- a/app/design/frontend/default/iphone/Mage_Checkout/onepage/login.phtml +++ /dev/null @@ -1,121 +0,0 @@ -<?php -/** - * Magento - * - * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @category design - * @package base_default - * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) - */ -?> -<div class="col2-set"> - <?php echo $this->getChildHtml('login_before')?> - <div class="col-1"> - <h3><?php if( $this->isAllowedGuestCheckout() ): ?><?php echo $this->__('Checkout as a Guest or Register') ?><?php else: ?><?php echo $this->__('Register to Create an Account') ?><?php endif; ?></h3> - <?php if( $this->isAllowedGuestCheckout() ): ?> - <p><?php echo $this->__('Register with us for future convenience:') ?></p> - <?php else: ?> - <p><strong><?php echo $this->__('Register and save time!') ?></strong><br /> - <?php echo $this->__('Register with us for future convenience:') ?></p> - <ul> - <li><?php echo $this->__('Fast and easy check out') ?></li> - <li><?php echo $this->__('Easy access to your order history and status') ?></li> - </ul> - <?php endif; ?> - <?php if( $this->isAllowedGuestCheckout() ): ?> - <ul class="form-list"> - <?php if( $this->isAllowedGuestCheckout() ): ?> - <li class="control"> - <input type="radio" name="checkout_method" id="login:guest" value="guest"<?php if($this->getQuote()->getCheckoutMethod()==Mage_Checkout_Model_Type_Onepage::METHOD_GUEST): ?> checked="checked"<?php endif; ?> class="radio" /><label for="login:guest"><?php echo $this->__('Checkout as Guest') ?></label> - </li> - <?php endif; ?> - <li class="control"> - <input type="radio" name="checkout_method" id="login:register" value="register"<?php if($this->getQuote()->getCheckoutMethod()==Mage_Checkout_Model_Type_Onepage::METHOD_REGISTER || !$this->isAllowedGuestCheckout()): ?> checked="checked"<?php endif ?> class="radio" /><label for="login:register"><?php echo $this->__('Register') ?></label> - </li> - </ul> - <h4><?php echo $this->__('Register and save time!') ?></h4> - <p><?php echo $this->__('Register with us for future convenience:') ?></p> - <ul class="ul"> - <li><?php echo $this->__('Fast and easy check out') ?></li> - <li><?php echo $this->__('Easy access to your order history and status') ?></li> - </ul> - <?php else: ?> - <input type="hidden" name="checkout_method" id="login:register" value="register" checked="checked" /> - <?php endif; ?> - </div> - <div class="col-2"> - <h3><?php echo $this->__('Login') ?></h3> - <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> - <form id="login-form" action="<?php echo $this->getPostAction() ?>" method="post"> - <fieldset> - <h4><?php echo $this->__('Already registered?') ?></h4> - <p><?php echo $this->__('Please log in below:') ?></p> - <ul class="form-list"> - <li> - <label for="login-email" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label> - <div class="input-box"> - <input type="email" class="input-text required-entry validate-email" id="login-email" name="login[username]" value="<?php echo $this->escapeHtml($this->getUsername()) ?>" /> - </div> - </li> - <li> - <label for="login-password" class="required"><em>*</em><?php echo $this->__('Password') ?></label> - <div class="input-box"> - <input type="password" class="input-text required-entry" id="login-password" name="login[password]" /> - </div> - </li> - <?php echo $this->getChildHtml('form.additional.info'); ?> - </ul> - </fieldset> - </form> - </div> -</div> -<div class="col2-set"> - <div class="col-1"> - <div class="buttons-set"> - <p class="required"> </p> - <button type="button" class="button" onclick="checkout.setMethod();"><span><span><?php echo ($this->isAllowedGuestCheckout() ? $this->__('Continue') : $this->__('Register')) ?></span></span></button> - </div> - </div> - <div class="col-2"> - <div class="buttons-set"> - <p class="required"><?php echo $this->__('* Required Fields') ?></p> - <a href="<?php echo $this->getUrl('customer/account/forgotpassword') ?>" class="f-left"><?php echo $this->__('Forgot your password?') ?></a> - <button type="submit" class="button" onclick="onepageLogin(this)"><span><span><?php echo $this->__('Login') ?></span></span></button> - </div> - </div> -</div> -<script type="text/javascript"> -//<![CDATA[ - var loginForm = new VarienForm('login-form', true); - $('login-email').observe('keypress', bindLoginPost); - $('login-password').observe('keypress', bindLoginPost); - function bindLoginPost(evt){ - if (evt.keyCode == Event.KEY_RETURN) { - loginForm.submit(); - } - } - function onepageLogin(button) - { - if(loginForm.validator && loginForm.validator.validate()){ - button.disabled = true; - loginForm.submit(); - } - } -//]]> -</script> diff --git a/app/design/frontend/default/iphone/Mage_Checkout/onepage/review/info.phtml b/app/design/frontend/default/iphone/Mage_Checkout/onepage/review/info.phtml index 845f2ac6755..d44a49d5afe 100644 --- a/app/design/frontend/default/iphone/Mage_Checkout/onepage/review/info.phtml +++ b/app/design/frontend/default/iphone/Mage_Checkout/onepage/review/info.phtml @@ -19,48 +19,29 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default + * @package default_iphone * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> <?php echo $this->getChildHtml('items_before'); ?> <div id="checkout-review-table-wrapper"> - <table class="data-table" id="checkout-review-table"> - <col /> - <col width="1" /> - <col width="1" /> - <col width="1" /> + <table class="data-table cart-table-items" id="checkout-review-table"> + <?php echo $this->getChildHtml('totals'); ?> <thead> <tr> <th><?php echo $this->__('Product Name') ?></th> - <th class="a-center"><?php echo $this->__('Price') ?></th> - <th class="a-center"><?php echo $this->__('Qty') ?></th> - <th class="a-center"><?php echo $this->__('Subtotal') ?></th> + <th class="a-right"><?php echo $this->__('Subtotal') ?></th> </tr> - <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> - <!-- - <tr> - <th class="a-right"><?php echo $this->helper('Mage_Tax_Helper_Data')->getIncExcTaxLabel(false) ?></th> - <th><?php echo $this->helper('Mage_Tax_Helper_Data')->getIncExcTaxLabel(true) ?></th> - <th class="a-right"><?php echo $this->helper('Mage_Tax_Helper_Data')->getIncExcTaxLabel(false) ?></th> - <th><?php echo $this->helper('Mage_Tax_Helper_Data')->getIncExcTaxLabel(true) ?></th> - </tr> - --> - <?php endif; ?> </thead> - <?php echo $this->getChildHtml('totals'); ?> - <tbody> <?php foreach($this->getItems() as $_item): ?> <?php echo $this->getItemHtml($_item)?> <?php endforeach ?> - </tbody> </table> </div> <?php echo $this->getChildHtml('items_after'); ?> <script type="text/javascript"> //<![CDATA[ - decorateTable('checkout-review-table'); truncateOptions(); //]]> </script> diff --git a/app/design/frontend/default/iphone/Mage_Checkout/onepage/review/item.phtml b/app/design/frontend/default/iphone/Mage_Checkout/onepage/review/item.phtml index ea22111a739..7d2c6dbf967 100644 --- a/app/design/frontend/default/iphone/Mage_Checkout/onepage/review/item.phtml +++ b/app/design/frontend/default/iphone/Mage_Checkout/onepage/review/item.phtml @@ -25,217 +25,220 @@ */ ?> <?php $_item = $this->getItem()?> -<tr> - <td><h3 class="product-name"><?php echo $this->escapeHtml($this->getProductName()) ?></h3> - <?php if ($_options = $this->getOptionList()):?> - <dl class="item-options"> - <?php foreach ($_options as $_option) : ?> - <?php $_formatedOptionValue = $this->getFormatedOptionValue($_option) ?> - <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> - <dd<?php if (isset($_formatedOptionValue['full_view'])): ?> class="truncated"<?php endif; ?>><?php echo $_formatedOptionValue['value'] ?> - <?php if (isset($_formatedOptionValue['full_view'])): ?> - <div class="truncated_full_value"> - <dl class="item-options"> - <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> - <dd><?php echo $_formatedOptionValue['full_view'] ?></dd> - </dl> - </div> - <?php endif; ?> - </dd> - <?php endforeach; ?> - </dl> - <?php endif;?> - <?php if ($addtInfoBlock = $this->getProductAdditionalInformationBlock()):?> - <?php echo $addtInfoBlock->setItem($_item)->toHtml() ?> - <?php endif;?> - </td> - <td class="a-right"> - <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?> - <?php else: ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()) ?> - <?php endif; ?> - - </span> - - - <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> - - <div class="cart-tax-info" id="eunit-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <small> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <small> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span><br /> +<tbody> + <tr> + <td colspan="2"> + <h3 class="product-name"><?php echo $this->escapeHtml($this->getProductName()) ?></h3> + + <?php if ($_options = $this->getOptionList()):?> + <dl class="item-options"> + <?php foreach ($_options as $_option) : ?> + <?php $_formatedOptionValue = $this->getFormatedOptionValue($_option) ?> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <dd<?php if (isset($_formatedOptionValue['full_view'])): ?> class="truncated"<?php endif; ?>><?php echo $_formatedOptionValue['value'] ?> + <?php if (isset($_formatedOptionValue['full_view'])): ?> + <div class="truncated_full_value"> + <dl class="item-options"> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <dd><?php echo $_formatedOptionValue['full_view'] ?></dd> + </dl> + </div> + <?php endif; ?> + </dd> <?php endforeach; ?> - </small> + </dl> + <?php endif;?> + + <?php if ($addtInfoBlock = $this->getProductAdditionalInformationBlock()):?> + <?php echo $addtInfoBlock->setItem($_item)->toHtml() ?> + <?php endif;?> + + </td> + </tr> + <tr> + <td class="a-left"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> <?php endif; ?> - </div> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <div class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> - <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?></span> - </div> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> - <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->getIncExcText(true) ?></span> - <?php endif; ?> - <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getPriceInclTax($_item); ?> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl-$_item->getWeeeTaxDisposition()) ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?> + <?php else: ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="eunit-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></small></span><br /> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + </div> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?></span> + </div> + <?php endif; ?> + <?php endif; ?> <?php endif; ?> - - </span> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> - - <div class="cart-tax-info" id="unit-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <small> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <small> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax()): ?> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getPriceInclTax($_item); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> <?php endif; ?> - </div> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <div class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> - <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?></span> - </div> - <?php endif; ?> - <?php endif; ?> - </td> - <?php endif; ?> - <td class="a-center"><?php echo $_item->getQty() ?></td> - <td class="a-right"> - <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()) ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?> + <?php else: ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl-$_item->getWeeeTaxDisposition()) ?> + <?php endif; ?> + + </span> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="unit-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></small></span><br /> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + </div> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?></span> + </div> + <?php endif; ?> + <?php endif; ?> <?php endif; ?> - - </span> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> - - <div class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <small> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <small> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> + </td> + <td class="a-right"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> <?php endif; ?> - </div> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <div class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> - <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> - </div> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> - <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo $this->helper('Mage_Tax_Helper_Data')->getIncExcText(true) ?></span> - <?php endif; ?> - <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getSubtotalInclTax($_item); ?> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> + <?php else: ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()) ?> + <?php endif; ?> + + </span> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + </div> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> + </div> + <?php endif; ?> + <?php endif; ?> <?php endif; ?> - </span> - + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax()): ?> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> - - <div class="cart-tax-info" id="subtotal-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <small> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <small> - <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getSubtotalInclTax($_item); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> <?php endif; ?> - </div> - <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> - <div class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> - <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - </div> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> + <?php else: ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="subtotal-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + </div> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> + </div> + <?php endif; ?> + <?php endif; ?> <?php endif; ?> - <?php endif; ?> - </td> - <?php endif; ?> -</tr> + </td> + </tr> +</tbody> diff --git a/app/design/frontend/default/iphone/Mage_Checkout/onepage/review/totals.phtml b/app/design/frontend/default/iphone/Mage_Checkout/onepage/review/totals.phtml index c046c6b937e..8a70977a477 100644 --- a/app/design/frontend/default/iphone/Mage_Checkout/onepage/review/totals.phtml +++ b/app/design/frontend/default/iphone/Mage_Checkout/onepage/review/totals.phtml @@ -30,7 +30,7 @@ ?> <?php if ($this->getTotals()): ?> <tfoot> - <?php $_colspan = 3; ?> + <?php $_colspan = 0; ?> <?php echo $this->renderTotals(null, $_colspan); ?> <?php echo $this->renderTotals('footer', $_colspan); ?> <?php if ($this->needDisplayBaseGrandtotal()):?> diff --git a/app/design/frontend/default/iphone/Mage_Checkout/success.phtml b/app/design/frontend/default/iphone/Mage_Checkout/success.phtml new file mode 100644 index 00000000000..741725b9dfd --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Checkout/success.phtml @@ -0,0 +1,66 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<div class="page-title"> + <h1><?php echo $this->__('Your order has been received') ?></h1> +</div> +<div class="checkout-success"> + <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> + <h2 class="sub-title"><?php echo $this->__('Thank you for your purchase!') ?></h2> + + <?php if ($this->getOrderId()):?> + <?php if ($this->getCanViewOrder()) :?> + <p><?php echo $this->__('Your order # is: %s.', sprintf('<a href="%s">%s</a>', $this->escapeHtml($this->getViewOrderUrl()), $this->escapeHtml($this->getOrderId()))) ?></p> + <?php else :?> + <p><?php echo $this->__('Your order # is: %s.', $this->escapeHtml($this->getOrderId())) ?></p> + <?php endif;?> + <p><?php echo $this->__('You will receive an order confirmation email with details of your order and a link to track its progress.') ?></p> + <?php if ($this->getCanViewOrder() && $this->getCanPrintOrder()) :?> + <p> + <?php echo $this->__('Click <a href="%s" onclick="this.target=\'_blank\'">here to print</a> a copy of your order confirmation.', $this->getPrintUrl()) ?> + <?php echo $this->getChildHtml() ?> + </p> + <?php endif;?> + <?php endif;?> + + <?php if ($this->getAgreementRefId()): ?> + <p><?php echo $this->__('Your billing agreement # is: %s.', sprintf('<a href="%s">%s</a>', $this->escapeHtml($this->getAgreementUrl()), $this->escapeHtml($this->getAgreementRefId())))?></p> + <?php endif;?> + + <?php if ($profiles = $this->getRecurringProfiles()):?> + <p><?php echo $this->__('Your recurring payment profiles:'); ?></p> + <ul class="disc"> + <?php foreach($profiles as $profile):?> + <?php $profileIdHtml = ($this->getCanViewProfiles() ? sprintf('<a href="%s">%s</a>', $this->escapeHtml($this->getProfileUrl($profile)), $this->escapeHtml($this->getObjectData($profile, 'reference_id'))) : $this->escapeHtml($this->getObjectData($profile, 'reference_id')));?> + <li><?php echo $this->__('Payment profile # %s: "%s".', $profileIdHtml, $this->escapeHtml($this->getObjectData($profile, 'schedule_description')))?></li> + <?php endforeach;?> + </ul> + <?php endif;?> + + <div class="buttons-set"> + <button type="button" class="button" title="<?php echo $this->__('Continue Shopping') ?>" onclick="window.location='<?php echo $this->getUrl() ?>'"><span><span><?php echo $this->__('Continue Shopping') ?></span></span></button> + </div> +</div> diff --git a/app/design/frontend/default/iphone/Mage_Cms/layout.xml b/app/design/frontend/default/iphone/Mage_Cms/layout.xml index 550835c455f..d9b26766cf6 100644 --- a/app/design/frontend/default/iphone/Mage_Cms/layout.xml +++ b/app/design/frontend/default/iphone/Mage_Cms/layout.xml @@ -55,6 +55,9 @@ Default layout, loads most of the pages <cms_index_index translate="label" type="page" parent="cms_page_view"> <label>CMS Home Page</label> + <reference name="root"> + <container name="homepage.banner" label="Home Page Banner(Mobile)" htmlTag="div" htmlClass="front-banner"/> + </reference> <reference name="content"> <block type="Mage_Catalog_Block_Navigation" name="hp_nav" template="navigation/top.phtml" /> </reference> diff --git a/app/design/frontend/default/iphone/Mage_Contacts/layout.xml b/app/design/frontend/default/iphone/Mage_Contacts/layout.xml index 275055cdceb..2455e6f68fe 100644 --- a/app/design/frontend/default/iphone/Mage_Contacts/layout.xml +++ b/app/design/frontend/default/iphone/Mage_Contacts/layout.xml @@ -34,29 +34,15 @@ <contacts_index_index translate="label" type="page" parent="default"> <label>Contact Us Form</label> + <reference name="head"> + <action method="setTitle" translate="title" module="Mage_Contacts"><title>Contact Us</title></action> + </reference> <reference name="root"> <action method="setTemplate"><template>1column.phtml</template></action> <action method="setHeaderTitle" translate="title" module="Mage_Contacts"><title>Contact Us</title></action> </reference> <reference name="content"> <block type="Mage_Core_Block_Template" name="contactForm" template="Mage_Contacts::form.phtml"/> - <block type="Mage_Page_Block_Html_Breadcrumbs" name="breadcrumbs" as="breadcrumbs" before="-"> - <action method="addCrumb" translate="crumbName" module="Mage_Catalog"> - <crumbName>home</crumbName> - <crumbInfo> - <label>Home</label> - <title>Home</title> - <link>/</link> - </crumbInfo> - </action> - <action method="addCrumb" translate="crumbName" module="Mage_Catalog"> - <crumbName>categories</crumbName> - <crumbInfo> - <label>Categories</label> - <title>Categories</title> - </crumbInfo> - </action> - </block> </reference> </contacts_index_index> </layout> diff --git a/app/design/frontend/default/iphone/Mage_Customer/account/dashboard/address.phtml b/app/design/frontend/default/iphone/Mage_Customer/account/dashboard/address.phtml new file mode 100644 index 00000000000..4246c412559 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Customer/account/dashboard/address.phtml @@ -0,0 +1,45 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<div class="col2-set"> + <h2 class="sub-title"><?php echo $this->__('Address Book') ?> <span class="separator">|</span> <a href="<?php echo $this->getAddressBookUrl() ?>"><?php echo $this->__('Manage Addresses') ?></a></h2> + <div class="col-1"> + <div class="info-box"> + <h3 class="box-title"><?php echo $this->__('Default Billing Address') ?> <span class="separator">|</span> <a href="<?php echo $this->getPrimaryBillingAddressEditUrl() ?>"><?php echo $this->__('Edit') ?></a></h3> + <address class="box-content"> + <?php echo $this->getPrimaryBillingAddressHtml() ?> + </address> + </div> + </div> + <div class="col-2"> + <div class="info-box"> + <h3 class="box-title"><?php echo $this->__('Default Shipping Address') ?> <span class="separator">|</span> <a href="<?php echo $this->getPrimaryShippingAddressEditUrl() ?>"><?php echo $this->__('Edit') ?></a></h3> + <address class="box-content"> + <?php echo $this->getPrimaryShippingAddressHtml() ?> + </address> + </div> + </div> +</div> diff --git a/app/design/frontend/default/iphone/Mage_Customer/account/navigation.phtml b/app/design/frontend/default/iphone/Mage_Customer/account/navigation.phtml index 9b146c8d444..bdc5772ecb9 100644 --- a/app/design/frontend/default/iphone/Mage_Customer/account/navigation.phtml +++ b/app/design/frontend/default/iphone/Mage_Customer/account/navigation.phtml @@ -19,44 +19,18 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default + * @package default_iphone * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> -<div class="block block-account" id="account-navigation"> - <div class="block-title"> - <strong><span><?php echo $this->__('My Account'); ?></span></strong> - </div> - <div class="block-content"> - <ul> - <?php $_links = $this->getLinks(); ?> - <?php $_index = 1; ?> - <?php $_count = count($_links); ?> - <?php foreach ($_links as $_link): ?> - <?php $_last = ($_index++ >= $_count); ?> - <?php if ($this->isActive($_link)): ?> - <li class="current<?php echo ($_last ? ' last' : '') ?>"><strong><?php echo $_link->getLabel() ?></strong></li> - <?php else: ?> - <li<?php echo ($_last ? ' class="last"' : '') ?>><a href="<?php echo $_link->getUrl() ?>"><?php echo $_link->getLabel() ?></a></li> - <?php endif; ?> - <?php endforeach; ?> - </ul> - </div> - <a href="#" class="back" id="hide-links">Back</a> -</div> -<a href="#" class="show-links" id="show-links">Show()</a> -<script type="text/javascript"> -//<![CDATA[ - document.observe('dom:loaded', function () { - $('show-links').observe('click', function (e) { - $('account-navigation').setStyle({ 'left' : 0 }); - e.preventDefault(); - }); - $('hide-links').observe('click', function (e) { - $('account-navigation').setStyle({ 'left' : '-100%' }); - e.preventDefault(); - }); - }); -//]]> -</script> +<?php $_links = $this->getLinks(); ?> +<?php $_index = 1; ?> +<?php $_count = count($_links); ?> +<?php foreach ($_links as $_link): ?> + <?php if ($this->isActive($_link)): ?> + <li class="account-links"><strong><?php echo $_link->getLabel() ?></strong></li> + <?php else: ?> + <li class="account-links"><a href="<?php echo $_link->getUrl() ?>"><?php echo $_link->getLabel() ?></a></li> + <?php endif; ?> +<?php endforeach; ?> diff --git a/app/design/frontend/default/iphone/Mage_Customer/address/book.phtml b/app/design/frontend/default/iphone/Mage_Customer/address/book.phtml new file mode 100644 index 00000000000..4a6169d63bb --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Customer/address/book.phtml @@ -0,0 +1,107 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** + * Temlate for Mage_Customer_Block_Address_Book block + * @var $test Mage_Customer_Block_Address_Book + */ +?> +<div class="page-title title-buttons"> + <h1><?php echo $this->__('Address Book') ?></h1> + <button type="button" title="<?php echo $this->__('Add New Address') ?>" class="button" onclick="window.location='<?php echo $this->getAddAddressUrl() ?>';"><span><span><?php echo $this->__('Add New Address') ?></span></span></button> +</div> +<?php echo $this->getMessagesBlock()->getGroupedHtml() ?> +<div class="col2-set addresses-list"> + <div class="col-1 addresses-primary"> + <h2 class="sub-title"><?php echo $this->__('Default Addresses') ?></h2> + <ol> + <?php if($_pAddsses = Mage::getSingleton('Mage_Customer_Model_Session')->getCustomer()->getDefaultBilling()): ?> + <li class="info-box"> + <h3 class="box-title"><?php echo $this->__('Default Billing Address') ?> <span class="separator">|</span> <a href="<?php echo $this->getAddressEditUrl(Mage::getSingleton('Mage_Customer_Model_Session')->getCustomer()->getAddressById($_pAddsses)) ?>"><?php echo $this->__('Edit') ?></a></h3> + <address class="box-content"> + <?php echo $this->getAddressHtml(Mage::getSingleton('Mage_Customer_Model_Session')->getCustomer()->getAddressById($_pAddsses)) ?> + </address> + </li> + <?php else: ?> + <li class="info-box"> + <h3 class="box-title"><?php echo $this->__('Default Billing Address') ?></h3> + <p class="box-content"><?php echo $this->__('You have no default billing address in your address book.') ?></p> + </li> + <?php endif ?> + + <?php if($_pAddsses = Mage::getSingleton('Mage_Customer_Model_Session')->getCustomer()->getDefaultShipping()): ?> + <li class="info-box"> + <h3 class="box-title"><?php echo $this->__('Default Shipping Address') ?> <span class="separator">|</span> <a href="<?php echo $this->getAddressEditUrl(Mage::getSingleton('Mage_Customer_Model_Session')->getCustomer()->getAddressById($_pAddsses)) ?>"><?php echo $this->__('Edit') ?></a></h3> + <address class="box-content"> + <?php echo $this->getAddressHtml(Mage::getSingleton('Mage_Customer_Model_Session')->getCustomer()->getAddressById($_pAddsses)) ?> + </address> + </li> + <?php else: ?> + <li class="info-box"> + <h3 class="box-title"><?php echo $this->__('Default Shipping Address') ?></h3> + <p class="box-content"><?php echo $this->__('You have no default shipping address in your address book.') ?></p> + </li> + <?php endif ?> + </ol> + </div> + <div class="col-2 addresses-additional"> + <h2 class="sub-title"><?php echo $this->__('Additional Address Entries') ?></h2> + <ol> + <?php if($_pAddsses = $this->getAdditionalAddresses()): ?> + <?php foreach($_pAddsses as $_address): ?> + <li class="item"> + <address> + <?php echo $this->getAddressHtml($_address) ?><br /> + </address> + <p class="actions"> + <a href="<?php echo $this->getUrl('customer/address/edit', array('id'=>$_address->getId())) ?>"><?php echo $this->__('Edit Address') ?></a> + <span class="separator">|</span> + <a href="#" onclick="return deleteAddress('<?php echo $_address->getId() ?>');"><?php echo $this->__('Delete Address') ?></a> + </p> + </li> + <?php endforeach; ?> + <?php else: ?> + <li class="item empty"> + <p><?php echo $this->__('You have no additional address entries in your address book.') ?></p> + </li> + <?php endif ?> + </ol> + </div> +</div> +<div class="buttons-set"> + <p class="back-link"><a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>"><small>« </small><?php echo $this->__('Back') ?></a></p> +</div> +<script type="text/javascript"> +//<![CDATA[ + function deleteAddress(addressId) { + if(confirm('<?php echo $this->__('Are you sure you want to delete this address?') ?>')) { + window.location='<?php echo $this->getDeleteUrl() ?>id/'+addressId; + } + return false; + } +//]]> +</script> diff --git a/app/design/frontend/default/iphone/Mage_Customer/form/edit.phtml b/app/design/frontend/default/iphone/Mage_Customer/form/edit.phtml deleted file mode 100644 index ff8c568f787..00000000000 --- a/app/design/frontend/default/iphone/Mage_Customer/form/edit.phtml +++ /dev/null @@ -1,115 +0,0 @@ -<?php -/** - * Magento - * - * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @category design - * @package base_default - * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) - */ -?> -<div class="page-title"> - <h1><?php echo $this->__('Edit Account Information') ?></h1> -</div> -<div class="account-edit"> - <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> - <form action="<?php echo $this->getUrl('customer/account/editPost') ?>" method="post" id="form-validate"> - <div class="fieldset"> - <?php echo $this->getBlockHtml('formkey')?> - <h2 class="legend"><?php echo $this->__('Account Information') ?></h2> - <ul class="form-list"> - <li class="fields"> - <?php echo $this->getLayout()->createBlock('Mage_Customer_Block_Widget_Name')->setObject($this->getCustomer())->toHtml() ?> - </li> - <li> - <label for="email" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label> - <div class="input-box"> - <input type="email" name="email" id="email" value="<?php echo $this->escapeHtml($this->getCustomer()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="input-text required-entry validate-email" /> - </div> - </li> - <?php $_dob = $this->getLayout()->createBlock('Mage_Customer_Block_Widget_Dob') ?> - <?php if ($_dob->isEnabled()): ?> - <li><?php echo $_dob->setDate($this->getCustomer()->getDob())->toHtml() ?></li> - <?php endif ?> - <?php $_taxvat = $this->getLayout()->createBlock('Mage_Customer_Block_Widget_Taxvat') ?> - <?php if ($_taxvat->isEnabled()): ?> - <li><?php echo $_taxvat->setTaxvat($this->getCustomer()->getTaxvat())->toHtml() ?></li> - <?php endif ?> - <?php $_gender = $this->getLayout()->createBlock('Mage_Customer_Block_Widget_Gender') ?> - <?php if ($_gender->isEnabled()): ?> - <li><?php echo $_gender->setGender($this->getCustomer()->getGender())->toHtml() ?></li> - <?php endif ?> - <li class="control"> - <input type="checkbox" name="change_password" id="change_password" value="1" onclick="setPasswordForm(this.checked)" title="<?php echo $this->__('Change Password') ?>"<?php if($this->getCustomer()->getChangePassword()==1): ?> checked="checked"<?php endif; ?> class="checkbox" /><label for="change_password"><?php echo $this->__('Change Password') ?></label> - </li> - </ul> - </div> - <div class="fieldset" style="display:none;"> - <h2 class="legend"><?php echo $this->__('Change Password') ?></h2> - <ul class="form-list"> - <li> - <label for="current_password" class="required"><em>*</em><?php echo $this->__('Current Password') ?></label> - <div class="input-box"> - <input type="password" title="<?php echo $this->__('Current Password') ?>" class="input-text" name="current_password" id="current_password" /> - </div> - </li> - <li class="fields"> - <div class="field"> - <label for="password" class="required"><em>*</em><?php echo $this->__('New Password') ?></label> - <div class="input-box"> - <input type="password" title="<?php echo $this->__('New Password') ?>" class="input-text validate-password" name="password" id="password" /> - </div> - </div> - <div class="field"> - <label for="confirmation" class="required"><em>*</em><?php echo $this->__('Confirm New Password') ?></label> - <div class="input-box"> - <input type="password" title="<?php echo $this->__('Confirm New Password') ?>" class="input-text validate-cpassword" name="confirmation" id="confirmation" /> - </div> - </div> - </li> - </ul> - </div> - <div class="buttons-set"> - <p class="required"><?php echo $this->__('* Required Fields') ?></p> - <button type="submit" title="<?php echo $this->__('Save') ?>" class="button"><span><span><?php echo $this->__('Save') ?></span></span></button> - </div> - </form> -</div> -<script type="text/javascript"> -//<![CDATA[ - var dataForm = new VarienForm('form-validate', true); - function setPasswordForm(arg){ - if(arg){ - $('current_password').up(3).show(); - $('current_password').addClassName('required-entry'); - $('password').addClassName('required-entry'); - $('confirmation').addClassName('required-entry'); - - }else{ - $('current_password').up(3).hide(); - $('current_password').removeClassName('required-entry'); - $('password').removeClassName('required-entry'); - $('confirmation').removeClassName('required-entry'); - } - } - <?php if($this->getCustomer()->getChangePassword()): ?> - setPasswordForm(true); - <?php endif; ?> -//]]> -</script> diff --git a/app/design/frontend/default/iphone/Mage_Customer/form/forgotpassword.phtml b/app/design/frontend/default/iphone/Mage_Customer/form/forgotpassword.phtml deleted file mode 100644 index 0b49f2c0820..00000000000 --- a/app/design/frontend/default/iphone/Mage_Customer/form/forgotpassword.phtml +++ /dev/null @@ -1,51 +0,0 @@ -<?php -/** - * Magento - * - * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @category design - * @package default_iphone - * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) - */ -?> -<div class="forgot-password"> - <h1> - <a href="<?php echo $this->helper('Mage_Customer_Helper_Data')->getLoginUrl() ?>"><?php echo $this->__('Back to Login') ?></a> - <?php echo $this->__('Retrieve Password') ?> - </h1> - <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> - <form action="<?php echo $this->getUrl('*/*/forgotpasswordpost') ?>" method="post" id="form-validate"> - <h2><?php echo $this->__('Retrieve your password here') ?></h2> - <ul class="form-list"> - <li> - <label for="email_address" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label> - <div class="input-box"> - <input type="text" name="email" alt="email" id="email_address" class="input-text required-entry validate-email" value="<?php echo $this->escapeHtml($this->getEmailValue()) ?>" /> - </div> - </li> - <?php echo $this->getChildHtml('form.additional.info'); ?> - </ul> - <input type="submit" value="<?php echo $this->__('Submit') ?>" /> - </form> -</div> -<script type="text/javascript"> -//<![CDATA[ - var dataForm = new VarienForm('form-validate', true); -//]]> -</script> diff --git a/app/design/frontend/default/iphone/Mage_Customer/form/login.phtml b/app/design/frontend/default/iphone/Mage_Customer/form/login.phtml index 6aa88f55b9f..a6d2ac1f717 100644 --- a/app/design/frontend/default/iphone/Mage_Customer/form/login.phtml +++ b/app/design/frontend/default/iphone/Mage_Customer/form/login.phtml @@ -31,37 +31,55 @@ * @see Mage_Customer_Block_Form_Login */ ?> -<div class="login-box"> - <div class="registered-users"> - <h1><?php echo $this->__('Log in') ?></h1> - <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> - <form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form"> - <h2><?php echo $this->__('Registered Users') ?></h2> - <ul class="form-list"> - <li> - <label for="email"><?php echo $this->__('Enter your email') ?>:</label> - <input type="email" class="required-entry validate-email" name="login[username]" id="email" value="<?php echo $this->escapeHtml($this->getUsername()) ?>" placeholder="<?php echo $this->__('Email Address') ?>" /> - </li> - <li> - <label for="pass"><?php echo $this->__('Enter your password') ?>:</label> - <input type="password" class="required-entry validate-password" name="login[password]" id="pass" placeholder="<?php echo $this->__('Password') ?>" /> - </li> - <?php echo $this->getChildHtml('form.additional.info'); ?> - </ul> - <a href="<?php echo $this->getForgotPasswordUrl() ?>"><?php echo $this->__('Forgot your password?') ?></a> - <div class="login-button"> - <input type="submit" value="<?php echo $this->__('Log In') ?>" /> - </div> - </form> - </div> - <div class="new-users"> - <h2><?php echo $this->__('New Customers') ?></h2> - <a href="<?php echo $this->getCreateAccountUrl() ?>"><input type="submit" value="<?php echo $this->__('Create an Account') ?>" /></a> - <p><?php echo $this->__('By creating an account with our store, you will be able to move through the checkout process faster, store multiple shipping addresses, view and track your orders in your account and more.') ?></p> +<div class="account-login"> + <div class="page-title"> + <h1><?php echo $this->__('Login or Create an Account') ?></h1> </div> + <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> + <?php /* Extensions placeholder */ ?> + <?php echo $this->getChildHtml('customer.form.login.extra')?> + <form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form"> + <div class="col2-set"> + <div class="col-1 registered-users"> + <div class="content"> + <h2><?php echo $this->__('Registered Customers') ?></h2> + <ul class="form-list"> + <li> + <label for="email" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label> + <div class="input-box"> + <input type="text" name="login[username]" value="<?php echo $this->escapeHtml($this->getUsername()) ?>" id="email" class="input-text required-entry validate-email" title="<?php echo $this->__('Email Address') ?>" /> + </div> + </li> + <li> + <label for="pass" class="required"><em>*</em><?php echo $this->__('Password') ?></label> + <div class="input-box"> + <input type="password" name="login[password]" class="input-text required-entry validate-password" id="pass" title="<?php echo $this->__('Password') ?>" /> + </div> + </li> + <li class="note"> + <a href="<?php echo $this->getForgotPasswordUrl() ?>" class="f-left"><?php echo $this->__('Forgot Your Password?') ?></a> + </li> + <?php echo $this->getChildHtml('form.additional.info'); ?> + <li class="buttons-set"> + <button type="submit" class="button" title="<?php echo $this->__('Login') ?>" name="send" id="send2"><?php echo $this->__('Login') ?></button> + </li> + </ul> + <p class="required"><?php echo $this->__('* Required Fields') ?></p> + </div> + </div> + <div class="col-2 new-users"> + <div class="content"> + <h2><?php echo $this->__('New Customers') ?></h2> + <div class="buttons-set"> + <button type="button" title="<?php echo $this->__('Create an Account') ?>" class="button" onclick="window.location='<?php echo $this->getCreateAccountUrl() ?>';"><span><span><?php echo $this->__('Create an Account') ?></span></span></button> + </div> + </div> + </div> + </div> + </form> + <script type="text/javascript"> + //<![CDATA[ + var dataForm = new VarienForm('login-form', true); + //]]> + </script> </div> -<script type="text/javascript"> -//<![CDATA[ - var dataForm = new VarienForm('login-form', true); -//]]> -</script> diff --git a/app/design/frontend/default/iphone/Mage_Customer/form/register.phtml b/app/design/frontend/default/iphone/Mage_Customer/form/register.phtml deleted file mode 100644 index 02bea7ac036..00000000000 --- a/app/design/frontend/default/iphone/Mage_Customer/form/register.phtml +++ /dev/null @@ -1,178 +0,0 @@ -<?php -/** - * Magento - * - * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @category design - * @package base_default - * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) - */ -?> -<?php -/** - * Create account form template - * - * @see Mage_Customer_Block_Form_Register - */ -?> - -<div class="new-customer"> - <h1><?php echo $this->__('New Customer') ?></h1> - <form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="form-validate"> - <fieldset> - <input type="hidden" name="success_url" value="<?php echo $this->getSuccessUrl() ?>" /> - <input type="hidden" name="error_url" value="<?php echo $this->getErrorUrl() ?>" /> - <?php echo $this->getChildHtml('form_fields_before')?> - <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> - <div class="personal-information"> - <h2><?php echo $this->__('Personal Information') ?></h2> - <ul class="form-list"> - <li> - <label for="firstname"><?php echo $this->__('First name') ?>:</label> - <input type="text" name="firstname" id="firstname" class="input-text required-entry" placeholder="First Name" /> - </li> - <li> - <label for="lastname"><?php echo $this->__('Last name') ?>:</label> - <input type="text" name="lastname" id="lastname" class="input-text required-entry" placeholder="Last Name" /> - </li> - <li> - <label for="email_adress"><?php echo $this->__('Email') ?>:</label> - <input type="email" name="email" id="email_adress" placeholder="Email Address" /> - </li> - <?php if ($this->isNewsletterEnabled()): ?> - <li><label for="is_subscribed"><input type="checkbox" name="is_subscribed" id="is_subscribed" title="<?php echo $this->__('Sign Up for Newsletter') ?>" <?php if($this->getFormData()->getIsSubscribed()): ?> checked="checked"<?php endif; ?> /> <?php echo $this->__('Sign Up for Newsletter') ?></label></li> - <?php endif ?> - </ul> - </div> - <?php if($this->getShowAddressFields()): ?> - <div class="fieldset"> - <input type="hidden" name="create_address" value="1" /> - <h2 class="legend"><?php echo $this->__('Address Information') ?></h2> - <ul class="form-list"> - <li class="fields"> - <div class="field"> - <label for="company"><?php echo $this->__('Company') ?></label> - <div class="input-box"> - <input type="text" name="company" id="company" value="<?php echo $this->escapeHtml($this->getFormData()->getCompany()) ?>" title="<?php echo $this->__('Company') ?>" class="input-text" /> - </div> - </div> - <div class="field"> - <label for="telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label> - <div class="input-box"> - <input type="text" name="telephone" id="telephone" value="<?php echo $this->escapeHtml($this->getFormData()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text required-entry" /> - </div> - </div> - </li> - <li class="wide"> - <label for="street_1" class="required"><em>*</em><?php echo $this->__('Street Address') ?></label> - <div class="input-box"> - <input type="text" name="street[]" value="<?php echo $this->escapeHtml($this->getFormData()->getStreet(1)) ?>" title="<?php echo $this->__('Street Address') ?>" id="street_1" class="input-text required-entry" /> - </div> - </li> - <?php for ($_i=2, $_n=$this->helper('Mage_Customer_Helper_Address')->getStreetLines(); $_i<=$_n; $_i++): ?> - <li class="wide"> - <div class="input-box"> - <input type="text" name="street[]" value="<?php echo $this->escapeHtml($this->getFormData()->getStreet($_i)) ?>" title="<?php echo $this->__('Street Address %s', $_i) ?>" id="street_<?php echo $_i?>" class="input-text" /> - </div> - </li> - <?php endfor ?> - <li class="fields"> - <div class="field"> - <label for="city" class="required"><em>*</em><?php echo $this->__('City') ?></label> - <div class="input-box"> - <input type="text" name="city" value="<?php echo $this->escapeHtml($this->getFormData()->getCity()) ?>" title="<?php echo $this->__('City') ?>" class="input-text required-entry" id="city" /> - </div> - </div> - <div class="field"> - <label for="region_id" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label> - <div class="input-box"> - <select id="region_id" name="region_id" title="<?php echo $this->__('State/Province') ?>" class="validate-select" style="display:none;"> - <option value=""><?php echo $this->__('Please select region, state or province') ?></option> - </select> - <script type="text/javascript"> - //<![CDATA[ - $('region_id').setAttribute('defaultValue', "<?php echo $this->getFormData()->getRegionId() ?>"); - //]]> - </script> - <input type="text" id="region" name="region" value="<?php echo $this->escapeHtml($this->getRegion()) ?>" title="<?php echo $this->__('State/Province') ?>" class="input-text" style="display:none;" /> - </div> - </div> - </li> - <li class="fields"> - <div class="field"> - <label for="zip" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label> - <div class="input-box"> - <input type="text" name="postcode" value="<?php echo $this->escapeHtml($this->getFormData()->getPostcode()) ?>" title="<?php echo $this->__('Zip/Postal Code') ?>" id="zip" class="input-text validate-zip-international required-entry" /> - </div> - </div> - <div class="field"> - <label for="country" class="required"><em>*</em><?php echo $this->__('Country') ?></label> - <div class="input-box"> - <?php echo $this->getCountryHtmlSelect() ?> - </div> - </div> - </li> - </ul> - <input type="hidden" name="default_billing" value="1" /> - <input type="hidden" name="default_shipping" value="1" /> - </div> - <?php endif; ?> - <div class="fieldset"> - <ul class="form-list"> - <?php $_dob = $this->getLayout()->createBlock('Mage_Customer_Block_Widget_Dob') ?> - <?php if ($_dob->isEnabled()): ?> - <li><?php echo $_dob->setDate($this->getFormData()->getDob())->toHtml() ?></li> - <?php endif ?> - <?php $_taxvat = $this->getLayout()->createBlock('Mage_Customer_Block_Widget_Taxvat') ?> - <?php if ($_taxvat->isEnabled()): ?> - <li><?php echo $_taxvat->setTaxvat($this->getFormData()->getTaxvat())->toHtml() ?></li> - <?php endif ?> - <?php $_gender = $this->getLayout()->createBlock('Mage_Customer_Block_Widget_Gender') ?> - <?php if ($_gender->isEnabled()): ?> - <li><?php echo $_gender->setGender($this->getFormData()->getGender())->toHtml() ?></li> - <?php endif ?> - </ul> - </div> - <div class="login-information"> - <h2><?php echo $this->__('Login Information') ?></h2> - <ul class="form-list"> - <li> - <label for="password"><?php echo $this->__('Password') ?>:</label> - <input type="password" name="password" id="password" class="required-entry validate-password" placeholder="<?php echo $this->__('Password') ?>" /> - </li> - <li> - <label for="confirmation"><?php echo $this->__('Confirm password') ?>:</label> - <input type="password" name="confirmation" id="confirmation" class="required-entry validate-cpassword" placeholder="<?php echo $this->__('Confirm Password') ?>" /> - </li> - <?php echo $this->getChildHtml('form.additional.info'); ?> - </ul> - <a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>"><?php echo $this->__('Back') ?></a> - <input type="submit" value="<?php echo $this->__('Create') ?>" /> - </div> - </fieldset> - </form> -</div> -<script type="text/javascript"> -//<![CDATA[ - var dataForm = new VarienForm('form-validate', true); - <?php if($this->getShowAddressFields()): ?> - new RegionUpdater('country', 'region', 'region_id', <?php echo $this->helper('Mage_Directory_Helper_Data')->getRegionJson() ?>, undefined, 'zip'); - <?php endif; ?> -//]]> -</script> diff --git a/app/design/frontend/default/iphone/Mage_Customer/layout.xml b/app/design/frontend/default/iphone/Mage_Customer/layout.xml index 44138521f5a..45b5fa2621f 100644 --- a/app/design/frontend/default/iphone/Mage_Customer/layout.xml +++ b/app/design/frontend/default/iphone/Mage_Customer/layout.xml @@ -47,19 +47,15 @@ Default layout, loads most of the pages --> <default> + <!-- Mage_Customer --> <reference name="top.links"> - <block type="Mage_Customer_Block_Account_Link" name="account_links"> - <action method="addAccountLink"><target>top.links</target><position>10</position></action> - <action method="addAuthLink"><target>top.links</target><position>100</position></action> - </block> + <action method="addLink" translate="label title" module="Mage_Customer"><label>My Account</label><url helper="Mage_Customer_Helper_Data::getAccountUrl"/><title>My Account</title><prepare/><urlParams/><position>10</position></action> + </reference> + <reference name="account.links"> + <action method="addLink" translate="label title before_text" module="Mage_Customer"><label>Register</label><url helper="Mage_Customer_Helper_Data::getRegisterUrl" /><title>Register</title><prepare/><urlParams/><position>100</position></action> </reference> </default> - -<!-- -Layout for customer login page ---> - <customer_account_login translate="label" type="page" parent="customer_account"> <label>Customer Account Login Form</label> <!-- Mage_Customer --> @@ -117,6 +113,9 @@ New customer registration <remove name="right"/> <remove name="left"/> + <reference name="head"> + <action method="setTitle" translate="title" module="Mage_Customer"><title>Forgot Your Password</title></action> + </reference> <reference name="root"> <action method="setTemplate"><template>1column.phtml</template></action> <action method="setHeaderTitle" translate="title" module="Mage_Customer"><title>Password forgotten</title></action> @@ -126,6 +125,29 @@ New customer registration </reference> </customer_account_forgotpassword> + <customer_account_resetpassword translate="label"> + <label>Reset a Password</label> + <remove name="right"/> + <remove name="left"/> + + <reference name="head"> + <action method="setTitle" translate="title" module="Mage_Customer"> + <title>Reset a Password</title> + </action> + </reference> + <reference name="root"> + <action method="setTemplate"> + <template>1column.phtml</template> + </action> + <action method="setHeaderTitle" translate="title" module="Mage_Customer"> + <title>Reset a Password</title> + </action> + </reference> + <reference name="content"> + <block type="Mage_Customer_Block_Account_Resetpassword" name="resetPassword" template="form/resetforgottenpassword.phtml"/> + </reference> + </customer_account_resetpassword> + <customer_account_confirmation translate="label" type="page" parent="customer_account"> <label>Customer Account Confirmation</label> <remove name="right"/> @@ -168,18 +190,18 @@ Customer account pages, rendered for all tabs in dashboard <action method="setTemplate"><template>1column.phtml</template></action> </reference> - <reference name="content"> - <container name="my.account.wrapper" label="My Account Wrapper" htmlTag="div" htmlClass="my-account"/> - </reference> - - <reference name="content"> + <reference name="top.links"> <block type="Mage_Customer_Block_Account_Navigation" name="customer_account_navigation" before="-" template="account/navigation.phtml"> + <action method="setPosition"><value>20</value></action> <action method="addLink" translate="label" module="Mage_Customer"><name>account</name><path>customer/account/</path><label>Account Dashboard</label></action> <action method="addLink" translate="label" module="Mage_Customer"><name>account_edit</name><path>customer/account/edit/</path><label>Account Information</label></action> <action method="addLink" translate="label" module="Mage_Customer"><name>address_book</name><path>customer/address/</path><label>Address Book</label></action> </block> - <remove name="tags_popular"/> + <action method="addLinkBlock"><blockName>customer_account_navigation</blockName></action> + </reference> + <reference name="content"> + <container name="my.account.wrapper" label="My Account Wrapper" htmlTag="div" htmlClass="my-account"/> </reference> </customer_account> diff --git a/app/design/frontend/default/iphone/Mage_Downloadable/checkout/cart/item/default.phtml b/app/design/frontend/default/iphone/Mage_Downloadable/checkout/cart/item/default.phtml new file mode 100644 index 00000000000..42ccf3f519c --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Downloadable/checkout/cart/item/default.phtml @@ -0,0 +1,302 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php + $_item = $this->getItem(); + $canApplyMsrp = Mage::helper('Mage_Catalog_Helper_Data')->canApplyMsrp($_item->getProduct(), Mage_Catalog_Model_Product_Attribute_Source_Msrp_Type::TYPE_BEFORE_ORDER_CONFIRM); + $messages = $this->getMessages(); + $_options = $this->getOptionList(); + $links = $this->getLinks(); +?> +<?php if ($messages): ?> +<tr class="messages"> + <td colspan="2"> + <?php foreach ($messages as $message): ?> + <div class="shopping-cart-item-message <?php echo $message['type'] ?>"> + * <?php echo $this->escapeHtml($message['text']) ?> + </div> + <?php endforeach; ?> + </td> +</tr> +<?php endif; ?> +<tr> + <td> + <a href="<?php echo $this->getProductUrl() ?>" class="product-image" title="<?php echo $this->escapeHtml($this->getProductName()) ?>"> + <img src="<?php echo $this->getProductThumbnail()->resize(75); ?>" alt="<?php echo $this->escapeHtml($this->getProductName()) ?>" /> + </a> + + <a class="link-edit" href="<?php echo $this->getConfigureUrl() ?>" title="<?php echo $this->__('Edit item parameters') ?>"><?php echo $this->__('Edit') ?></a> + </td> + + <td> + <a href="<?php echo $this->getDeleteUrl() ?>" title="<?php echo $this->__('Remove Item')?>" class="btn-remove btn-remove2"><?php echo $this->__('Remove Item') ?></a> + + <h2 class="product-name"><a href="<?php echo $this->getProductUrl() ?>"><?php echo $this->escapeHtml($this->getProductName()) ?></a></h2> + + <div class="price-box"> + + <div class="qty-wrap"> + <input name="cart[<?php echo $_item->getId() ?>][qty]" value="<?php echo $this->getQty() ?>" size="4" title="<?php echo $this->__('Qty') ?>" class="input-text qty" maxlength="12" /> + <span<?php if ($this->getQty() == 1) echo ' style="display:none;"' ?>>×</span> + </div> + + <div class="cart-price-box"<?php if ($this->getQty() == 1) echo ' style="display:none;"' ?>> + + <?php if ($canApplyMsrp): ?> + <span class="cart-price"> + <span class="cart-msrp-unit"><?php echo $this->__('See price before order confirmation.'); ?></span> + <?php $helpLinkId = 'cart-msrp-help-' . $_item->getId(); ?> + <a id="<?php echo $helpLinkId ?>" href="#" class="map-help-link"><?php echo $this->__("What's this?"); ?></a> + <script type="text/javascript"> + Catalog.Map.addHelpLink($('<?php echo $helpLinkId ?>'), "<?php echo $this->__("What's this?") ?>"); + </script> + </span> + <?php else: ?> + + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?> + <?php else: ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="eunit-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> + <?php endif; ?> + </div> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="weee"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>: <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?></span> + </div> + <?php endif; ?> + <?php endif; ?> + + <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax()): ?> + + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getPriceInclTax($_item); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?> + <?php else: ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl-$_item->getWeeeTaxDisposition()) ?> + <?php endif; ?> + + </span> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="unit-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> + <?php endif; ?> + </div> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="weee"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>: <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?></span> + </div> + <?php endif; ?> + <?php endif; ?> + + <?php endif; ?> + <?php endif; ?> + + </div> + + <div class="cart-price-box"> + + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax() && !$_item->getNoSubtotal()): ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if ($canApplyMsrp): ?> + <span class="cart-msrp-subtotal">--</span> + <?php else: ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> + <?php else: ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()) ?> + <?php endif; ?> + <?php endif; ?> + + </span> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> + <?php endif; ?> + </div> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="weee"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>: <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> + </div> + <?php endif; ?> + <?php endif; ?> + + <?php endif; ?> + + <?php if (($this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()) && !$_item->getNoSubtotal()): ?> + + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getSubtotalInclTax($_item); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if ($canApplyMsrp): ?> + <span class="cart-msrp-subtotal">--</span> + <?php else: ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> + <?php else: ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> + <?php endif; ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="subtotal-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="weee"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span> + <?php endforeach; ?> + <?php endif; ?> + </div> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="weee"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>: <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> + </div> + <?php endif; ?> + <?php endif; ?> + + <?php endif; ?> + + </div> + + </div> + + <!-- downloadable --> + <?php if ($links): ?> + <div class="downloadable"> + <dl class="item-options"> + <dt><?php echo $this->getLinksTitle() ?></dt> + <?php foreach ($links as $link): ?> + <dd><?php echo $this->escapeHtml($link->getTitle()); ?></dd> + <?php endforeach; ?> + </dl> + </div> + <?php endif; ?> + <!-- EOF downloadable --> + + </td> +</tr> +<?php if ($_options):?> +<tr class="product-options"> + <td colspan="2"> + <span class="toggle" onclick="$(this).next().toggle(); return false;">Show Options</span> + <div class="product-options" style="display:none;"> + <dl class="item-options"> + <?php foreach ($_options as $_option) : ?> + <?php $_formatedOptionValue = $this->getFormatedOptionValue($_option) ?> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <?php if (isset($_formatedOptionValue['full_view'])): ?> + <dd><?php echo $_formatedOptionValue['full_view'] ?></dd> + <?php else: ?> + <dd><?php echo $_formatedOptionValue['value'] ?></dd> + <?php endif; ?> + <?php endforeach; ?> + </dl> + </div> + </td> +</tr> +<?php endif;?> diff --git a/app/design/frontend/default/iphone/Mage_Downloadable/checkout/onepage/review/item.phtml b/app/design/frontend/default/iphone/Mage_Downloadable/checkout/onepage/review/item.phtml new file mode 100644 index 00000000000..fd385fdf1b1 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Downloadable/checkout/onepage/review/item.phtml @@ -0,0 +1,254 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php $_item = $this->getItem()?> +<tbody> + <tr> + <td colspan="2"> + <h3 class="product-name"><?php echo $this->escapeHtml($this->getProductName()) ?></h3> + <!-- item custom options --> + <?php if ($_options = $this->getOptionList()):?> + <dl class="item-options"> + <?php foreach ($_options as $_option) : ?> + <?php $_formatedOptionValue = $this->getFormatedOptionValue($_option) ?> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <dd<?php if (isset($_formatedOptionValue['full_view'])): ?> class="truncated"<?php endif; ?>><?php echo $_formatedOptionValue['value'] ?> + <?php if (isset($_formatedOptionValue['full_view'])): ?> + <div class="truncated_full_value"> + <dl class="item-options"> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <dd><?php echo $_formatedOptionValue['full_view'] ?></dd> + </dl> + </div> + <?php endif; ?> + </dd> + <?php endforeach; ?> + </dl> + <?php endif;?> + <?php if ($links = $this->getLinks()): ?> + <dl class="item-options"> + <dt><?php echo $this->getLinksTitle() ?></dt> + <?php foreach ($links as $link): ?> + <dd><?php echo $this->escapeHtml($link->getTitle()); ?></dd> + <?php endforeach; ?> + </dl> + <?php endif; ?> + <!-- EOF downloadable --> + </td> + </tr> + <tr> + <td class="a-left"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <div class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?> + <?php else: ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()) ?> + <?php endif; ?> + + </div> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="eunit-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></small></span><br /> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + </div> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?></span> + </div> + <?php endif; ?> + <?php endif; ?> + + <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getPriceInclTax($_item); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <div class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?> + <?php else: ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl-$_item->getWeeeTaxDisposition()) ?> + <?php endif; ?> + + </div> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="unit-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></small></span><br /> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['amount_incl_tax'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + </div> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?></span> + </div> + <?php endif; ?> + <?php endif; ?> + <?php endif; ?> + </td> + </tr> + <tr> + <td class="a-left"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <div class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> + <?php else: ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()) ?> + <?php endif; ?> + + </div> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + </div> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> + </div> + <?php endif; ?> + <?php endif; ?> + + <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax() || $this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getSubtotalInclTax($_item); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <div class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, array(0, 1, 4), 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> + <?php else: ?> + <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> + <?php endif; ?> + + </div> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item)): ?> + + <div class="cart-tax-info" id="subtotal-item-tax-details<?php echo $_item->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 1, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 4, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::helper('Mage_Checkout_Helper_Data')->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + </div> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($_item, 2, 'sales') && $_item->getWeeeTaxAppliedAmount()): ?> + <div class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $_item->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->helper('Mage_Checkout_Helper_Data')->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> + </div> + <?php endif; ?> + <?php endif; ?> + + <?php endif; ?> + </td> + </tr> +</tbody> diff --git a/app/design/frontend/default/iphone/Mage_Downloadable/customer/products/list.phtml b/app/design/frontend/default/iphone/Mage_Downloadable/customer/products/list.phtml new file mode 100644 index 00000000000..5175c24fe20 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Downloadable/customer/products/list.phtml @@ -0,0 +1,60 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** + * @see Mage_Downloadable_Block_Customer_Products_List + */ +?> +<?php $_items = $this->getItems(); ?> +<div class="page-title"> + <h1><?php echo Mage::helper('Mage_Downloadable_Helper_Data')->__('My Downloadable Products') ?></h1> +</div> +<div class="downloadable-products-history"> + <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> + <?php if(count($_items)): ?> + <ol class="list"> + <?php $_odd = ''; ?> + <?php foreach ($_items as $_item): ?> + <li class="list-item"> + <dl> + <dt><?php echo $this->escapeHtml($_item->getPurchased()->getProductName()) ?> - <a href="<?php echo $this->getDownloadUrl($_item) ?>" title="<?php echo Mage::helper('Mage_Downloadable_Helper_Data')->__('Start Download') ?>" <?php echo $this->getIsOpenInNewWindow()?'onclick="this.target=\'_blank\'"':''; ?>><?php echo $this->escapeHtml($_item->getLinkTitle()); ?></a></dt> + <dd><strong><?php echo Mage::helper('Mage_Downloadable_Helper_Data')->__('Order #') ?></strong> <a href="<?php echo $this->getOrderViewUrl($_item->getPurchased()->getOrderId()) ?>" title="<?php echo Mage::helper('Mage_Downloadable_Helper_Data')->__('View Order') ?>"><?php echo $_item->getPurchased()->getOrderIncrementId() ?></a></dd> + <dd><strong><?php echo Mage::helper('Mage_Downloadable_Helper_Data')->__('Date') ?></strong> <span class="nobr"><?php echo $this->formatDate($_item->getPurchased()->getCreatedAt()) ?></span></dd> + <dd><strong><?php echo Mage::helper('Mage_Downloadable_Helper_Data')->__('Status') ?></strong> <em><?php echo Mage::helper('Mage_Downloadable_Helper_Data')->__(ucfirst($_item->getStatus())) ?></em></dd> + <dd><strong><?php echo Mage::helper('Mage_Downloadable_Helper_Data')->__('Remaining Downloads') ?></strong> <?php echo $this->getRemainingDownloads($_item) ?></dd> + </dl> + </li> + <?php endforeach; ?> + </ol> + <?php else: ?> + <p><?php echo Mage::helper('Mage_Downloadable_Helper_Data')->__('You have not purchased any downloadable products yet.'); ?></p> + <?php endif; ?> + <?php echo $this->getChildHtml('pager'); ?> + <div class="buttons-set"> + <p class="back-link"><a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>"><small>« </small><?php echo $this->__('Back') ?></a></p> + </div> +</div> diff --git a/app/design/frontend/default/iphone/Mage_Downloadable/sales/order/creditmemo/items/renderer/downloadable.phtml b/app/design/frontend/default/iphone/Mage_Downloadable/sales/order/creditmemo/items/renderer/downloadable.phtml new file mode 100644 index 00000000000..70403804101 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Downloadable/sales/order/creditmemo/items/renderer/downloadable.phtml @@ -0,0 +1,325 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php $_item = $this->getItem() ?> +<?php $_order = $this->getItem()->getOrderItem()->getOrder() ?> +<tr id="order-item-row-<?php echo $_item->getId() ?>"> + <th><?php echo $this->__('Product Name') ?></th> + <td><h4 class="product-name"><?php echo $this->escapeHtml($_item->getName()) ?></h4> + <?php if($_options = $this->getItemOptions()): ?> + <dl class="item-options"> + <?php foreach ($_options as $_option) : ?> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <?php if (!$this->getPrintStatus()): ?> + <?php $_formatedOptionValue = $this->getFormatedOptionValue($_option) ?> + <dd<?php if (isset($_formatedOptionValue['full_view'])): ?> class="truncated"<?php endif; ?>><?php echo $_formatedOptionValue['value'] ?> + <?php if (isset($_formatedOptionValue['full_view'])): ?> + <div class="truncated_full_value"> + <dl class="item-options"> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <dd><?php echo $_formatedOptionValue['full_view'] ?></dd> + </dl> + </div> + <?php endif; ?> + </dd> + <?php else: ?> + <dd><?php echo $this->escapeHtml( (isset($_option['print_value']) ? $_option['print_value'] : $_option['value']) ) ?></dd> + <?php endif; ?> + <?php endforeach; ?> + </dl> + <?php endif; ?> + + <!-- downloadable --> + <?php if ($links = $this->getLinks()): ?> + <dl class="item-options"> + <dt><?php echo $this->getLinksTitle() ?></dt> + <?php foreach ($links->getPurchasedItems() as $link): ?> + <dd><?php echo $this->escapeHtml($link->getLinkTitle()); ?></dd> + <?php endforeach; ?> + </dl> + <?php endif; ?> + <!-- EOF downloadable --> + + <?php echo $this->escapeHtml($_item->getDescription()) ?> + <?php if($this->helper('Mage_GiftMessage_Helper_Message')->getIsMessagesAvailable('order_item', $_item->getOrderItem()) && $_item->getGiftMessageId()): ?> + <br /><a href="#" id="order-item-gift-message-link-<?php echo $_item->getId() ?>" class="giftmessage-preview-link expand" onclick="return giftMessageToogle('<?php echo $_item->getId() ?>')"><?php echo $this->__('Gift Message') ?></a> + <?php endif; ?> + </td> +</tr> +<tr> + <th><?php echo $this->__('SKU') ?></th> + <td><?php echo $this->escapeHtml(Mage::helper('Mage_Core_Helper_String')->splitInjection($this->getSku())) ?></td> +</tr> +<tr> + <th><?php echo $this->__('Price') ?></th> + <td> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax()): ?> + <span class="price-excl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <br /> + <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax()): ?> + <span class="price-incl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getPriceInclTax($this->getItem()); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="unit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <?php endif; ?> + </td> +</tr> +<tr> + <th><?php echo $this->__('Qty') ?></th> + <td><?php echo $_item->getQty()*1 ?></td> +</tr> +<tr> + <th><?php echo $this->__('Subtotal') ?></th> + <td> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax()): ?> + <span class="price-excl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <br /> + <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax()): ?> + <span class="price-incl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getSubtotalInclTax($this->getItem()); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> + <?php endif; ?> + + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + + </span> + <?php endif; ?> + </td> +</tr> + <th><?php echo $this->__('Discount Amount') ?></th> + <td><?php echo $_order->formatPrice(-$_item->getDiscountAmount()) ?></td> +</tr> +<tr> + <th><?php echo $this->__('Row Total') ?></th> + <td> + <?php echo $_order->formatPrice($_item->getRowTotal()-$_item->getDiscountAmount()+$_item->getTaxAmount()+$_item->getWeeeTaxAppliedRowAmount()) ?> + </td> +</tr> diff --git a/app/design/frontend/default/iphone/Mage_Downloadable/sales/order/invoice/items/renderer/downloadable.phtml b/app/design/frontend/default/iphone/Mage_Downloadable/sales/order/invoice/items/renderer/downloadable.phtml new file mode 100644 index 00000000000..ff4baebcb48 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Downloadable/sales/order/invoice/items/renderer/downloadable.phtml @@ -0,0 +1,320 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php $_item = $this->getItem() ?> +<?php $_order = $this->getItem()->getOrderItem()->getOrder() ?> +<tr class="border" id="order-item-row-<?php echo $_item->getId() ?>"> + <th><?php echo $this->__('Product Name') ?></th> + <td><h4 class="product-name"><?php echo $this->escapeHtml($_item->getName()) ?></h4> + <?php if($_options = $this->getItemOptions()): ?> + <dl class="item-options"> + <?php foreach ($_options as $_option) : ?> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <?php if (!$this->getPrintStatus()): ?> + <?php $_formatedOptionValue = $this->getFormatedOptionValue($_option) ?> + <dd<?php if (isset($_formatedOptionValue['full_view'])): ?> class="truncated"<?php endif; ?>> + <?php echo $_formatedOptionValue['value'] ?> + <?php if (isset($_formatedOptionValue['full_view'])): ?> + <div class="truncated_full_value"> + <dl class="item-options"> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <dd><?php echo $_formatedOptionValue['full_view'] ?></dd> + </dl> + </div> + <?php endif; ?> + </dd> + <?php else: ?> + <dd><?php echo $this->escapeHtml( (isset($_option['print_value']) ? $_option['print_value'] : $_option['value']) ) ?></dd> + <?php endif; ?> + <?php endforeach; ?> + </dl> + <?php endif; ?> + + <!-- downloadable --> + <?php if ($links = $this->getLinks()): ?> + <dl class="item-options"> + <dt><?php echo $this->getLinksTitle() ?></dt> + <?php foreach ($links->getPurchasedItems() as $link): ?> + <dd><?php echo $this->escapeHtml($link->getLinkTitle()); ?></dd> + <?php endforeach; ?> + </dl> + <?php endif; ?> + <!-- EOF downloadable --> + + <?php echo $this->escapeHtml($_item->getDescription()) ?> + <?php if($this->helper('Mage_GiftMessage_Helper_Message')->getIsMessagesAvailable('order_item', $_item->getOrderItem()) && $_item->getGiftMessageId()): ?> + <br /><a href="#" id="order-item-gift-message-link-<?php echo $_item->getId() ?>" class="giftmessage-preview-link expand" onclick="return giftMessageToogle('<?php echo $_item->getId() ?>')"><?php echo $this->__('Gift Message') ?></a> + <?php endif; ?> + </td> +</tr> +<tr> + <th><?php echo $this->__('SKU') ?></th> + <td><?php echo $this->escapeHtml(Mage::helper('Mage_Core_Helper_String')->splitInjection($this->getSku())) ?></td> +</tr> +<tr> + <th class="a-right"><?php echo $this->__('Price') ?></th> + <td class="a-right nowrap"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax()): ?> + <span class="price-excl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <br /> + <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax()): ?> + <span class="price-incl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getPriceInclTax($this->getItem()); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="unit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <?php endif; ?> + </td> +</tr> +<tr> + <th class="a-center"><?php echo $this->__('Qty') ?></th> + <td class="a-center"><?php echo $_item->getQty()*1 ?> </td> +</tr> +<tr> + <th class="a-right"><?php echo $this->__('Subtotal') ?></th> + <td class="a-right nowrap"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax()): ?> + <span class="price-excl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <br /> + <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax()): ?> + <span class="price-incl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getSubtotalInclTax($this->getItem()); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + + + + </span> + <?php endif; ?> + </td> +</tr> diff --git a/app/design/frontend/default/iphone/Mage_Downloadable/sales/order/items/renderer/downloadable.phtml b/app/design/frontend/default/iphone/Mage_Downloadable/sales/order/items/renderer/downloadable.phtml new file mode 100644 index 00000000000..7d121dfee38 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Downloadable/sales/order/items/renderer/downloadable.phtml @@ -0,0 +1,335 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php + $_item = $this->getItem(); + $_options = $this->getItemOptions(); + $links = $this->getLinks(); +?> +<tr class="border" id="order-item-row-<?php echo $_item->getId() ?>"> + <th><?php echo $this->__('Product Name') ?></th> + <td><h3 class="product-name"><?php echo $this->escapeHtml($_item->getName()) ?></h3> + <?php if($_options): ?> + <dl class="item-options"> + <?php foreach ($_options as $_option) : ?> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <?php if (!$this->getPrintStatus()): ?> + <?php $_formatedOptionValue = $this->getFormatedOptionValue($_option) ?> + <dd<?php if (isset($_formatedOptionValue['full_view'])): ?> class="truncated"<?php endif; ?>> + <?php echo $_formatedOptionValue['value'] ?> + <?php if (isset($_formatedOptionValue['full_view'])): ?> + <div class="truncated_full_value"> + <dl class="item-options"> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <dd><?php echo $_formatedOptionValue['full_view'] ?></dd> + </dl> + </div> + <?php endif; ?> + </dd> + <?php else: ?> + <dd><?php echo $this->escapeHtml( (isset($_option['print_value']) ? $_option['print_value'] : $_option['value']) ) ?></dd> + <?php endif; ?> + <?php endforeach; ?> + </dl> + <?php endif; ?> + + <!-- downloadable --> + <?php if ($links): ?> + <dl class="item-options"> + <dt><?php echo $this->getLinksTitle() ?></dt> + <?php foreach ($links->getPurchasedItems() as $link): ?> + <dd><?php echo $this->escapeHtml($link->getLinkTitle()); ?></dd> + <?php endforeach; ?> + </dl> + <?php endif; ?> + <!-- EOF downloadable --> + + <?php echo $this->escapeHtml($_item->getDescription()) ?> + <?php if($this->helper('Mage_GiftMessage_Helper_Message')->getIsMessagesAvailable('order_item', $_item) && $_item->getGiftMessageId()): ?> + <br /><a href="#" id="order-item-gift-message-link-<?php echo $_item->getId() ?>" class="giftmessage-preview-link expand" onclick="return giftMessageToogle('<?php echo $_item->getId() ?>')"><?php echo $this->__('Gift Message') ?></a> + <?php endif; ?> + </td> +</tr> +<tr> + <th><?php echo $this->__('SKU') ?></th> + <td><?php echo $this->escapeHtml(Mage::helper('Mage_Core_Helper_String')->splitInjection($this->getSku())) ?></td> +</tr> +<tr> + <th class="a-right"><?php echo $this->__('Price') ?></th> + <td class="a-right nowrap"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax()): ?> + <span class="price-excl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <br /> + <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax()): ?> + <span class="price-incl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getPriceInclTax($this->getItem()); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="unit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <?php endif; ?> + </td> +</tr> +<tr> + <th class="a-center"><?php echo $this->__('Qty') ?></th> + <td class="a-right nowrap"> + <span class="nobr"> + <?php if ($this->getItem()->getQtyOrdered() > 0): ?> + <?php echo $this->__('Ordered'); ?>: <strong><?php echo $this->getItem()->getQtyOrdered()*1 ?></strong><br /> + <?php endif; ?> + <?php if ($this->getItem()->getQtyShipped() > 0): ?> + <?php echo $this->__('Shipped'); ?>: <strong><?php echo $this->getItem()->getQtyShipped()*1 ?></strong><br /> + <?php endif; ?> + <?php if ($this->getItem()->getQtyCanceled() > 0): ?> + <?php echo $this->__('Canceled'); ?>: <strong><?php echo $this->getItem()->getQtyCanceled()*1 ?></strong><br /> + <?php endif; ?> + <?php if ($this->getItem()->getQtyRefunded() > 0): ?> + <?php echo $this->__('Refunded'); ?>: <strong><?php echo $this->getItem()->getQtyRefunded()*1 ?></strong><br /> + <?php endif; ?> + </span> + </td> +</tr> +<tr> + <th class="a-right"><?php echo $this->__('Subtotal') ?></th> + <td class="a-right nowrap"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displayCartPriceExclTax()): ?> + <span class="price-excl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <br /> + <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displayCartPriceInclTax()): ?> + <span class="price-incl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displayCartBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getSubtotalInclTax($this->getItem()); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <?php endif; ?> + </td> +</tr> diff --git a/app/design/frontend/default/iphone/Mage_Newsletter/layout.xml b/app/design/frontend/default/iphone/Mage_Newsletter/layout.xml new file mode 100644 index 00000000000..c67c89bb9b3 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Newsletter/layout.xml @@ -0,0 +1,65 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +--> +<layout version="0.1.0"> + +<!-- +Default layout, loads most of the pages +--> + + <default> + + <!-- Mage_Newsletter --> + <reference name="footer"> + <block type="Mage_Newsletter_Block_Subscribe" name="footer.newsletter" as="footer.newsletter" template="subscribe.phtml"/> + </reference> + + </default> + +<!-- +Customer account pages, rendered for all tabs in dashboard +--> + + <customer_account> + <!-- Mage_Newsletter --> + <reference name="customer_account_navigation"> + <action method="addLink" translate="label" module="Mage_Newsletter"><name>newsletter</name><path>newsletter/manage/</path><label>Newsletter Subscriptions</label></action> + </reference> + </customer_account> + + <newsletter_manage_index translate="label"> + <label>Customer My Account Newsletter Subscriptions</label> + <update handle="customer_account"/> + <reference name="my.account.wrapper"> + <block type="Mage_Customer_Block_Newsletter" name="customer_newsletter"> + <container name="customer.newsletter.form.before" as="form_before" label="Newsletter Subscription Form Before"/> + </block> + </reference> + </newsletter_manage_index> + +</layout> diff --git a/app/design/frontend/default/iphone/Mage_Newsletter/subscribe.phtml b/app/design/frontend/default/iphone/Mage_Newsletter/subscribe.phtml new file mode 100644 index 00000000000..849732875ed --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Newsletter/subscribe.phtml @@ -0,0 +1,49 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<div class="block block-subscribe"> + <div class="block-title"> + <strong><span><?php echo $this->__('Newsletter') ?></span></strong> + </div> + <form action="<?php echo $this->getFormActionUrl() ?>" method="post" id="newsletter-validate-detail"> + <div class="block-content"> + <div class="form-subscribe-header"> + <label for="newsletter"><?php echo $this->__('Sign Up for Our Newsletter:') ?></label> + </div> + <div class="input-box"> + <input type="text" name="email" id="newsletter" title="<?php echo $this->__('Sign up for our newsletter') ?>" placeholder="Enter Your Email" class="input-text required-entry validate-email" /> + </div> + <div class="actions"> + <button type="submit" title="<?php echo $this->__('Subscribe') ?>" class="button"><?php echo $this->__('Subscribe') ?></button> + </div> + </div> + </form> + <script type="text/javascript"> + //<![CDATA[ + var newsletterSubscriberFormDetail = new VarienForm('newsletter-validate-detail'); + //]]> + </script> +</div> diff --git a/app/design/frontend/default/iphone/Mage_Page/1column.phtml b/app/design/frontend/default/iphone/Mage_Page/1column.phtml index e2e6d84c912..506eb5d8c37 100644 --- a/app/design/frontend/default/iphone/Mage_Page/1column.phtml +++ b/app/design/frontend/default/iphone/Mage_Page/1column.phtml @@ -29,13 +29,15 @@ <head> <?php echo $this->getChildHtml('head') ?> </head> -<body <?php echo $this->getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>> +<body <?php echo $this->getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?> onunload=""> <?php echo $this->getChildHtml('after_body_start') ?> <?php echo $this->getChildHtml('global_notices') ?> <?php echo $this->getChildHtml('header') ?> - <section role="main"> + <section role="main" class="<?php echo $this->getMyClass() ?>"> <?php echo $this->getChildHtml('breadcrumbs') ?> + <?php echo $this->getChildHtml('global_messages') ?> + <?php echo $this->getChildHtml('homepage.banner') ?> <?php echo $this->getChildHtml('content') ?> </section> diff --git a/app/design/frontend/default/iphone/Mage_Page/html/footer.phtml b/app/design/frontend/default/iphone/Mage_Page/html/footer.phtml index 267a560dbc6..57b4d65b31f 100644 --- a/app/design/frontend/default/iphone/Mage_Page/html/footer.phtml +++ b/app/design/frontend/default/iphone/Mage_Page/html/footer.phtml @@ -26,5 +26,5 @@ ?> <footer> <?php echo $this->getChildHtml() ?> - <p class="legality"><?php echo $this->getCopyright() ?></p> </footer> +<address class="copyright"><span class="logo"><img src="<?php echo $this->getSkinUrl(Mage::getStoreConfig('design/header/logo_src'))?>" width="21" alt=""/></span><?php echo $this->getCopyright() ?></address> diff --git a/app/design/frontend/default/iphone/Mage_Page/html/header.phtml b/app/design/frontend/default/iphone/Mage_Page/html/header.phtml index ab52bb9d36c..091320e20ce 100644 --- a/app/design/frontend/default/iphone/Mage_Page/html/header.phtml +++ b/app/design/frontend/default/iphone/Mage_Page/html/header.phtml @@ -28,34 +28,25 @@ */ ?> <?php $_cartItems = $this->helper('Mage_Checkout_Helper_Cart')->getSummaryCount(); ?> +<div class="header-bg"> + <a class="header-logo" href="<?php echo $this->getUrl('') ?>"></a> +</div> <header> - <div class="store-logo"> - <a href="<?php echo $this->getUrl('') ?>" id="home-link"> - <img src="<?php echo $this->getLogoSrc() ?>" alt="<?php echo $this->getLogoAlt() ?>" /> - </a> - </div> <div class="menu-wrapper"> <dl id="menu"> - <dt class="search dropdown"><a href="#">Search</a></dt> - <dd class="search-box"> - <?php echo $this->getChildHtml('topSearch') ?> - </dd> - <dt class="cart"> - <span>Cart</span> - <?php echo $_cartItems > 0 ? '<span>'.$_cartItems.'</span>' : ''; ?> - </dt> <dt class="menu dropdown"><a href="#">Menu</a></dt> <dd class="menu-box"> - <ul> - <li class="welcome-msg"><?php echo $this->getWelcome() ?> <?php echo $this->getAdditionalHtml() ?></li> - <?php echo $this->getChildHtml('topLinks') ?> - <?php echo $this->getChildHtml('store_switcher') ?> - <?php echo $this->getChildHtml('store_language') ?> - <?php echo $this->getChildHtml('catalogCompareLink') ?> - </ul> + <?php echo $this->getChildHtml('topLinks') ?> + <?php echo $this->getChildHtml('checkoutLinks') ?> + <?php echo $this->getChildHtml('accountLinks') ?> </dd> + <dt class="cart-icon <?php echo $this->getInCart() ? 'active' : '' ?>"> + <a href="<?php echo $this->getUrl('checkout/cart'); ?>">Cart</a> + <?php echo $_cartItems > 0 ? '<span>'.$_cartItems.'</span>' : ''; ?> + </dt> + <dd></dd> </dl> + <div class="search"><?php echo $this->getChildHtml('topSearch') ?></div> </div> - <?php echo $this->getChildHtml('accountLinks') ?> </header> <?php echo $this->getChildHtml('topCart') ?> diff --git a/app/design/frontend/default/iphone/Mage_Page/html/pager.phtml b/app/design/frontend/default/iphone/Mage_Page/html/pager.phtml index c355747833f..005354d89d9 100644 --- a/app/design/frontend/default/iphone/Mage_Page/html/pager.phtml +++ b/app/design/frontend/default/iphone/Mage_Page/html/pager.phtml @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default + * @package default_iphone * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/default/iphone/Mage_Page/layout.xml b/app/design/frontend/default/iphone/Mage_Page/layout.xml index 0dbd99b8a49..92c70514618 100644 --- a/app/design/frontend/default/iphone/Mage_Page/layout.xml +++ b/app/design/frontend/default/iphone/Mage_Page/layout.xml @@ -44,7 +44,6 @@ Default layout, loads most of the pages <action method="addJs"><file>scriptaculous/slider.js</file></action> <action method="addJs"><file>varien/js.js</file></action> <action method="addJs"><file>varien/form.js</file></action> - <action method="addJs"><file>Mage_Page::menu.js</file></action> <action method="addJs"><file>mage/translate.js</file></action> <action method="addJs"><file>Mage_Page::js/cookies.js</file></action> <action method="addJs"><file>js/iphone.js</file></action> @@ -52,6 +51,9 @@ Default layout, loads most of the pages <action method="addJs"><file>js/modernizr.js</file></action> <block type="Mage_Page_Block_Js_Cookie" name="js_cookies" template="js/cookie.phtml"/> + + <action method="addCss"><file>css/iphone.css</file></action> + <action method="addCss"><file>css/custom.css</file></action> </block> <container name="after_body_start" as="after_body_start" label="Page Top"/> @@ -59,19 +61,25 @@ Default layout, loads most of the pages <block type="Mage_Page_Block_Html_Notices" name="global_notices" as="global_notices" template="html/notices.phtml" /> <block type="Mage_Page_Block_Html_Header" name="header" as="header"> + <block type="Mage_Page_Block_Template_Links" name="account.links" as="accountLinks"/> <block type="Mage_Page_Block_Template_Links" name="top.links" as="topLinks"/> - <block type="Mage_Page_Block_Switch" name="store_language" as="store_language" template="switch/languages.phtml"/> - <block type="Mage_Page_Block_Switch" name="store_switcher" as="store_switcher" template="switch/stores.phtml"/> - <container name="top.menu" as="topMenu" label="Navigation Bar"/> + <block type="Mage_Page_Block_Template_Links" name="checkout.links" as="checkoutLinks"/> + <container name="top.menu" as="topMenu" label="Navigation Bar"> + <block type="Mage_Page_Block_Html_Topmenu" name="catalog.topnav" template="html/topmenu.phtml"/> + </container> <container name="top.container" as="topContainer" label="Page Header" htmlTag="div" htmlClass="top-container"/> </block> <block type="Mage_Page_Block_Html_Breadcrumbs" name="breadcrumbs" as="breadcrumbs"/> + <container name="left" as="left" label="Left Column"/> + <block type="Mage_Core_Block_Messages" name="global_messages" as="global_messages"/> <block type="Mage_Core_Block_Messages" name="messages" as="messages"/> <container name="content" as="content" label="Main Content Area"/> + <container name="right" as="right" label="Right Column"/> + <block type="Mage_Page_Block_Html_Footer" name="footer" as="footer" template="html/footer.phtml"> <container name="bottom.container" as="bottomContainer" label="Page Footer" htmlTag="div" htmlClass="bottom-container"/> <block type="Mage_Page_Block_Template_Links" name="footer_links" as="footer_links" template="template/links.phtml"/> @@ -86,6 +94,28 @@ Default layout, loads most of the pages <block type="Mage_Page_Block_Html" name="root" output="1" template="page_part.phtml"/> </ajax_index> + <print translate="label" module="Mage_Page"> + <label>All Pages (Print Version)</label> + <!-- Mage_Page --> + <block type="Mage_Page_Block_Html" name="root" output="1" template="print.phtml"> + + <block type="Mage_Page_Block_Html_Head" name="head" as="head"> + <action method="addJs"><script>prototype/prototype.js</script></action> + <action method="addJs"><script>mage/translate.js</script></action> + <action method="addJs"><script>lib/ccard.js</script></action> + <action method="addJs"><script>prototype/validation.js</script></action> + <action method="addJs"><script>varien/js.js</script></action> + + <action method="addCss"><stylesheet>css/styles.css</stylesheet></action> + <action method="addCss"><file>css/styles-ie.css</file><params/><if>lt IE 8</if></action> + <action method="addCss"><stylesheet>css/print.css</stylesheet><params>media="print"</params></action> + </block> + + <container name="content" as="content" label="Main Content Area (Print Version)"/> + + </block> + </print> + <!-- Custom page layout handles --> <page_empty translate="label" type="page" parent="default"> <label>All Empty Layout Pages</label> @@ -93,6 +123,7 @@ Default layout, loads most of the pages <action method="setTemplate"><template>empty.phtml</template></action> <!-- Mark root page block that template is applied --> <action method="setIsHandle"><applied>1</applied></action> + <action method="setLayoutCode"><name>empty</name></action> </reference> </page_empty> @@ -102,6 +133,7 @@ Default layout, loads most of the pages <action method="setTemplate"><template>1column.phtml</template></action> <!-- Mark root page block that template is applied --> <action method="setIsHandle"><applied>1</applied></action> + <action method="setLayoutCode"><name>one_column</name></action> </reference> </page_one_column> @@ -111,6 +143,7 @@ Default layout, loads most of the pages <action method="setTemplate"><template>1column.phtml</template></action> <!-- Mark root page block that template is applied --> <action method="setIsHandle"><applied>1</applied></action> + <action method="setLayoutCode"><name>two_columns_left</name></action> </reference> </page_two_columns_left> @@ -120,6 +153,7 @@ Default layout, loads most of the pages <action method="setTemplate"><template>1column.phtml</template></action> <!-- Mark root page block that template is applied --> <action method="setIsHandle"><applied>1</applied></action> + <action method="setLayoutCode"><name>two_columns_right</name></action> </reference> </page_two_columns_right> @@ -129,6 +163,7 @@ Default layout, loads most of the pages <action method="setTemplate"><template>1column.phtml</template></action> <!-- Mark root page block that template is applied --> <action method="setIsHandle"><applied>1</applied></action> + <action method="setLayoutCode"><name>three_columns</name></action> </reference> </page_three_columns> </layout> diff --git a/app/design/frontend/default/iphone/Mage_Page/template/links.phtml b/app/design/frontend/default/iphone/Mage_Page/template/links.phtml new file mode 100644 index 00000000000..2db2fc4bbbb --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Page/template/links.phtml @@ -0,0 +1,44 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** + * @see Mage_Page_Block_Template_Links + */ +?> +<?php $_links = $this->getLinks(); ?> +<?php if(count($_links)>0): ?> +<?php ksort($_links); ?> +<ul class="links"<?php if($this->getName()): ?> id="<?php echo $this->getName() ?>"<?php endif;?>> + <?php foreach($_links as $_link): ?> + <?php if ($_link instanceof Mage_Core_Block_Abstract):?> + <?php echo $_link->toHtml() ?> + <?php else: ?> + <li<?php if($_link->getIsFirst()||$_link->getIsLast()): ?> class="<?php if($_link->getIsFirst()): ?>first<?php endif; ?><?php if($_link->getIsLast()): ?> last<?php endif; ?>"<?php endif; ?> <?php echo $_link->getLiParams() ?>><?php echo $_link->getBeforeText() ?><a href="<?php echo $_link->getUrl() ?>" title="<?php echo $_link->getTitle() ?>" <?php echo $_link->getAParams() ?>><?php echo $_link->getLabel() ?></a><?php echo $_link->getAfterText() ?></li> + <?php endif;?> + <?php endforeach; ?> +</ul> +<?php endif; ?> diff --git a/app/design/frontend/default/iphone/Mage_Paypal/express/review/details.phtml b/app/design/frontend/default/iphone/Mage_Paypal/express/review/details.phtml new file mode 100644 index 00000000000..641e10593e2 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Paypal/express/review/details.phtml @@ -0,0 +1,44 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +/** + * @see Mage_Paypal_Block_Express_Review_Details + */ +?> +<table id="details-table" class="data-table"> + <thead> + <tr> + <th><?php echo $this->__('Product Name') ?></th> + <th><?php echo $this->__('Subtotal') ?></th> + </tr> + </thead> +<?php echo $this->getChildHtml('totals'); ?> + <tbody> + <?php foreach($this->getItems() as $_item): ?> + <?php echo $this->getItemHtml($_item) ?> + <?php endforeach ?> + </tbody> +</table> diff --git a/app/design/frontend/default/iphone/Mage_Paypal/express/review/review.phtml b/app/design/frontend/default/iphone/Mage_Paypal/express/review/review.phtml new file mode 100644 index 00000000000..f82cec0f310 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Paypal/express/review/review.phtml @@ -0,0 +1,171 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +/** @var $this Mage_Paypal_Block_Express_Review */ + +$billingBlock = $this->getChildBlock('billing')->setFieldNamePrefix('billing')->setHideEmailAddress(true); +$shippingAddress = $this->getShippingAddress(); +?> +<div class="page-title"> + <h1><?php echo $this->__('Review Order') ?></h1> +</div> +<?php echo $this->getMessagesBlock()->toHtml() ?> +<script type="text/javascript"> +//<![CDATA[ + var countryRegions = <?php echo $this->helper('Mage_Directory_Helper_Data')->getRegionJson() ?> +//]]> +</script> +<div class="paypal-review-order"> + <h2 class="sub-title"> + Please confirm your addresses + </h2> + <form method="post" id="order_review_form" action="<?php echo $this->getPlaceOrderUrl() ?>"> + <?php if(!$billingBlock->isCustomerLoggedIn()): ?> + <div class="info-set"> + <h2 class="legend"><?php echo $this->__('Customer Information') ?></h2> + <ul class="form-list form-list-narrow"> + <li id="customer-info-form" class="address-form"> + <div class="field"> + <label for="customer:email" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label> + <div class="input-box"> + <input type="text" name="customer-email" id="customer:email" value="<?php echo $this->escapeHtml($billingBlock->getAddress()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="input-text validate-email required-entry" /> + </div> + </div> + </li> + </ul> + </div> + <?php endif ?> + <div class="info-set"> + <div class="col-1" id="billing-address"> + <h2 class="legend"><?php echo $this->__('Billing Address') ?></h2> + <?php if ($shippingAddress): ?> + <?php echo $billingBlock->setShowAsShippingCheckbox(true)->toHtml(); ?> + <?php else: ?> + <?php echo $billingBlock->toHtml(); ?> + <?php endif; ?> + </div> + <?php if ($shippingAddress): ?> + <div class="col-2" id="shipping-address"> + <h2 class="legend"><?php echo $this->__('Shipping Address') ?></h2> + <?php echo $this->getChildBlock('shipping')->setFieldNamePrefix('shipping')->setHideEmailAddress(true)->toHtml(); ?> + </div> + </div> + + <div class="info-set"> + <div class="col-2"> + <div class="box paypal-shipping-method"> + <div class="box-title"> + <h3><?php echo $this->__('Shipping Method') ?></h3> + </div> + <div class="box-content"> + <?php echo $this->getChildBlock('shipping_method')->toHtml(); ?> + </div> + </div> + </div> + <?php endif; ?> + </div> + + <div class="info-set"> + <h2 class="legend"><?php echo $this->__('Items in Your Shopping Cart') ?><span class="separator"> | </span><a href="<?php echo $this->getUrl('checkout/cart') ?>"><?php echo $this->__('Edit Shopping Cart') ?></a></h2> + <div id="details-reload"> + <?php echo $this->getChildHtml('details') ?> + </div> + </div> + <?php echo $this->getChildHtml('agreements'); ?> + <div class="buttons-set buttons-set-order" id="review-buttons-container"> + <button type="button" id="review_button" value="<?php echo $this->__('Place Order') ?>" class="button btn-checkout"><span><span><?php echo $this->__('Place Order') ?></span></span></button> + <button type="button" id="review_submit" value="<?php echo $this->__('Place Order') ?>" class="button btn-checkout"><span><span><?php echo $this->__('Place Order') ?></span></span></button> + <button type="button" id="update_order" class="button btn-checkout"><span><span><?php echo $this->__('Update Order Data') ?></span></span></button> + <span class="please-wait" id="review-please-wait" style="display:none;"> + <img src="<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif') ?>" alt="<?php echo $this->__('Submitting order information...') ?>" title="<?php echo $this->__('Submitting order information...') ?>" class="v-middle" /> <?php echo $this->__('Submitting order information...') ?> + </span> + </div> + </form> +</div> +<script type="text/javascript"> +//<![CDATA[ +// submit buttons are not needed when submitting with ajax +$('review_submit').hide(); +if ($('update_shipping_method_submit')) { + $('update_shipping_method_submit').hide(); +} + +<?php if ($this->getUseAjax()):?> + OrderReviewController.prototype._submitOrder = function() { + if (this._canSubmitOrder) { + if (this._pleaseWait) { + this._pleaseWait.show(); + } + new Ajax.Request(this.form.action, { + parameters: {isAjax: 1, method: 'POST'}, + onSuccess: function(transport) { + try{ + response = eval('(' + transport.responseText + ')'); + } catch (e) { + response = {}; + } + if (response.redirect) { + setLocation(response.redirect); + return; + } + if (response.success) { + setLocation('<?php echo $this->getSuccessUrl()?>'); + return; + } else { + var msg = response.error_messages; + if (typeof(msg)=='object') { + msg = msg.join("\n"); + } + if (msg) { + $('review-please-wait').hide(); + alert(msg); + return; + } + } + $('review-please-wait').hide(); + alert('<?php echo $this->jsQuoteEscape($this->__('Unknown Error. Please try again later.')); ?>'); + return; + }, + onFailure: function(){ + alert('<?php echo $this->jsQuoteEscape($this->__('Server Error. Please try again.')) ?>'); + $('review-please-wait').hide(); + } + }); + } + } +<?php endif ?> +PayPalExpressAjax = new OrderReviewController($('order_review_form'), $('review_button'), + 'shipping_method', null, 'details-reload' +); +PayPalExpressAjax.addPleaseWait($('review-please-wait')); +PayPalExpressAjax.setShippingAddressContainer($('shipping-address')); +PayPalExpressAjax.setShippingMethodContainer('shipping-method-container'); +PayPalExpressAjax.shippingMethodsUpdateUrl = '<?php echo $this->escapeHtml($this->getUpdateShippingMethodsUrl()) ?>'; +PayPalExpressAjax.setUpdateButton($('update_order'),'<?php echo $this->escapeHtml($this->getUpdateOrderSubmitUrl()) ?>','details-reload'); +if ($('billing:as_shipping')) { + PayPalExpressAjax.setCopyElement($('billing:as_shipping')); +} +//]]> +</script> diff --git a/app/design/frontend/default/iphone/Mage_Persistent/checkout/onepage/login.phtml b/app/design/frontend/default/iphone/Mage_Persistent/checkout/onepage/login.phtml index a3cf012887b..e9c1446a2ac 100644 --- a/app/design/frontend/default/iphone/Mage_Persistent/checkout/onepage/login.phtml +++ b/app/design/frontend/default/iphone/Mage_Persistent/checkout/onepage/login.phtml @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default + * @package default_iphone * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ @@ -33,40 +33,42 @@ /** @var $this Mage_Checkout_Block_Onepage_Login */ ?> <div class="col2-set"> - <?php echo $this->getChildHtml('login_before')?> - <div class="checkout-login col-2"> + <div class="col-1"> + <h4><?php echo $this->__('Login') ?></h4> <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> <form id="login-form" action="<?php echo $this->getPostAction() ?>" method="post"> <fieldset> - <h4><?php echo $this->__('Already registered?') ?></h4> - <p><?php echo $this->__('Please log in below:') ?></p> + <p><?php echo $this->__('Already registered? Please log in below:') ?></p> <ul class="form-list"> <li> - <label for="login-email" class="required"><?php echo $this->__('Email Address') ?></label> + <label for="login-email" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label> <div class="input-box"> - <input type="email" class="input-text required-entry validate-email" id="login-email" name="login[username]" value="<?php echo $this->escapeHtml($this->getUsername()) ?>" /> + <input type="text" class="input-text required-entry validate-email" id="login-email" name="login[username]" value="<?php echo $this->escapeHtml($this->getUsername()) ?>" /> </div> </li> <li> - <label for="login-password" class="required"><?php echo $this->__('Password') ?></label> + <label for="login-password" class="required"><em>*</em><?php echo $this->__('Password') ?></label> <div class="input-box"> <input type="password" class="input-text required-entry" id="login-password" name="login[password]" /> </div> </li> <?php echo $this->getChildHtml('form.additional.info'); ?> <?php echo $this->getChildHtml('persistent.remember.me'); ?> + <li class="note"> + <a href="<?php echo $this->getUrl('customer/account/forgotpassword') ?>" class="f-left"><?php echo $this->__('Forgot your password?') ?></a> + </li> + <li class="buttons-set"> + <button type="submit" class="button" onclick="onepageLogin(this)"><span><span><?php echo $this->__('Login') ?></span></span></button> + </li> </ul> <input name="context" type="hidden" value="checkout" /> </fieldset> </form> - <div class="buttons-set"> - <button type="submit" class="button" onclick="onepageLogin(this)"><span><span><?php echo $this->__('Login') ?></span></span></button> - <a href="<?php echo $this->getUrl('customer/account/forgotpassword') ?>" class="f-left"><?php echo $this->__('Forgot your password?') ?></a> - </div> </div> - <div class="checkout-register col-1"> - <h3><?php if( $this->isAllowedGuestCheckout() ): ?><?php echo $this->__('Checkout as a Guest or Register') ?><?php else: ?><?php echo $this->__('Register to Create an Account') ?><?php endif; ?></h3> - <?php if( $this->isAllowedGuestCheckout() ): ?> + <?php echo $this->getChildHtml('login_before')?> + <div class="col-2"> + <h4><?php if( $this->getQuote()->isAllowedGuestCheckout() ): ?><?php echo $this->__('Checkout as a Guest or Register') ?><?php else: ?><?php echo $this->__('Register to Create an Account') ?><?php endif; ?></h4> + <?php if( $this->getQuote()->isAllowedGuestCheckout() ): ?> <p><?php echo $this->__('Register with us for future convenience:') ?></p> <?php else: ?> <p><strong><?php echo $this->__('Register and save time!') ?></strong><br /> @@ -86,15 +88,18 @@ <li class="control"> <input type="radio" name="checkout_method" id="login:register" value="register"<?php if($this->getQuote()->getCheckoutMethod()==Mage_Checkout_Model_Type_Onepage::METHOD_REGISTER || !$this->isAllowedGuestCheckout()): ?> checked="checked"<?php endif ?> class="radio" /><label for="login:register"><?php echo $this->__('Register') ?></label> </li> + <li class="buttons-set"> + <?php if ($this->getQuote()->isAllowedGuestCheckout()): ?> + <button id="onepage-guest-register-button" type="button" class="button" onclick="checkout.setMethod();"><span><span><?php echo $this->__('Continue') ?></span></span></button> + <?php elseif ($this->helper('Mage_Checkout_Helper_Data')->isCustomerMustBeLogged()): ?> + <button id="onepage-guest-register-button" type="button" class="button" onclick="window.location='<?php echo $this->helper('Mage_Checkout_Helper_Url')->getRegistrationUrl();?>'"><span><span><?php echo $this->__('Register') ?></span></span></button> + <?php else: ?> + <form action="<?php echo $this->getUrl('persistent/index/saveMethod'); ?>"> + <button id="onepage-guest-register-button" type="submit" class="button"><span><span><?php echo $this->__('Register') ?></span></span></button> + </form> + <?php endif; ?> + </li> </ul> - <!-- - <h4><?php echo $this->__('Register and save time!') ?></h4> - <p><?php echo $this->__('Register with us for future convenience:') ?></p> - <ul class="ul"> - <li><?php echo $this->__('Fast and easy check out') ?></li> - <li><?php echo $this->__('Easy access to your order history and status') ?></li> - </ul> - --> <?php else: ?> <input type="hidden" name="checkout_method" id="login:register" value="register" checked="checked" /> <?php endif; ?> @@ -102,22 +107,6 @@ </div> <div class="col2-set"> <div class="col-1"> - <div class="buttons-set"> - <!-- - <p class="required"> </p> - --> - <?php if ($this->isAllowedGuestCheckout()): ?> - <button id="onepage-guest-register-button" type="button" class="button" onclick="checkout.setMethod();"><span><span><?php echo $this->__('Continue') ?></span></span></button> - <?php elseif ($this->helper('Mage_Checkout_Helper_Data')->isCustomerMustBeLogged()): ?> - <button id="onepage-guest-register-button" type="button" class="button" onclick="window.location='<?php echo $this->helper('Mage_Checkout_Helper_Url')->getRegistrationUrl();?>'"><span><span><?php echo $this->__('Register') ?></span></span></button> - <?php else: ?> - <form action="<?php echo $this->getUrl('persistent/index/saveMethod'); ?>"> - <button id="onepage-guest-register-button" type="submit" class="button"><span><span><?php echo $this->__('Register') ?></span></span></button> - </form> - <?php endif; ?> - </div> - </div> - <div class="col-2"> </div> </div> <script type="text/javascript"> diff --git a/app/design/frontend/default/iphone/Mage_Persistent/customer/form/login.phtml b/app/design/frontend/default/iphone/Mage_Persistent/customer/form/login.phtml index 25ee9b1d37c..ef6b92f86dc 100644 --- a/app/design/frontend/default/iphone/Mage_Persistent/customer/form/login.phtml +++ b/app/design/frontend/default/iphone/Mage_Persistent/customer/form/login.phtml @@ -28,52 +28,59 @@ /** * Customer login form template * - * @see app/design/frontend/default/iphone/template/customer/form/login.phtml + * @see app/design/frontend/base/default/template/customer/form/login.phtml */ /** @var $this Mage_Customer_Block_Form_Login */ ?> -<div class="breadcrumbs"> - <ul> - <li class="home"> - <a href="#" onclick="javascript:history.back(1); return false;" title="Continue Shopping">Back</a> - </li> - <li><strong>Log In</strong></li> - </ul> -</div> -<div class="login-box"> - <div class="registered-users"> - <h1><?php echo $this->__('Log In') ?></h1> - <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> - <form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form"> - <h2><?php echo $this->__('Registered Users') ?></h2> - <ul class="form-list"> - <li> - <label for="email" class="required"><?php echo $this->__('Email Address') ?></label> - <input type="email" name="login[username]" value="<?php echo $this->escapeHtml($this->getUsername()) ?>" id="email" class="input-text required-entry validate-email" title="<?php echo $this->__('Email Address') ?>" /> - </li> - <li> - <label for="pass" class="required"><?php echo $this->__('Password') ?></label> - <input type="password" name="login[password]" class="input-text required-entry validate-password" id="pass" title="<?php echo $this->__('Password') ?>" /> - </li> - <?php echo $this->getChildHtml('form.additional.info'); ?> - <?php echo $this->getChildHtml('persistent.remember.me'); ?> - </ul> - <?php echo $this->getChildHtml('persistent.remember.me.tooltip'); ?><a href="<?php echo $this->getForgotPasswordUrl() ?>"><?php echo $this->__('Forgot your password?') ?></a> - <div class="login-button"> - <input type="submit" value="<?php echo $this->__('Log In') ?>" /> - </div> - <?php if (Mage::helper('Mage_Checkout_Helper_Data')->isContextCheckout()): ?> - <input name="context" type="hidden" value="checkout" /> - <?php endif; ?> - </form> +<div class="account-login"> + <div class="page-title"> + <h1><?php echo $this->__('Login or Create an Account') ?></h1> </div> - <div class="new-users"> - <div class="new-users-box"> - <h2><?php echo $this->__('New Customers') ?></h2> - <a href="<?php echo Mage::helper('Mage_Persistent_Helper_Data')->getCreateAccountUrl($this->getCreateAccountUrl()) ?>"><input type="submit" value="<?php echo $this->__('Create an Account') ?>" /></a> - <p><?php echo $this->__('By creating an account with our store, you will be able to move through the checkout process faster, store multiple shipping addresses, view and track your orders in your account and more.') ?></p> + <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> + <form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form"> + <div class="col2-set"> + <div class="col-1 registered-users"> + <div class="content"> + <h2><?php echo $this->__('Registered Customers') ?></h2> + <ul class="form-list"> + <li> + <label for="email" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label> + <div class="input-box"> + <input type="text" name="login[username]" value="<?php echo $this->escapeHtml($this->getUsername()) ?>" id="email" class="input-text required-entry validate-email" title="<?php echo $this->__('Email Address') ?>" /> + </div> + </li> + <li> + <label for="pass" class="required"><em>*</em><?php echo $this->__('Password') ?></label> + <div class="input-box"> + <input type="password" name="login[password]" class="input-text required-entry validate-password" id="pass" title="<?php echo $this->__('Password') ?>" /> + </div> + </li> + <li class="note"> + <a href="<?php echo $this->getForgotPasswordUrl() ?>" class="f-left"><?php echo $this->__('Forgot Your Password?') ?></a> + </li> + <?php echo $this->getChildHtml('form.additional.info'); ?> + <?php echo $this->getChildHtml('persistent.remember.me'); ?> + <li class="buttons-set"> + <button type="submit" class="button" title="<?php echo $this->__('Login') ?>" name="send" id="send2"><?php echo $this->__('Login') ?></button> + </li> + </ul> + <p class="required"><?php echo $this->__('* Required Fields') ?></p> + <?php echo $this->getChildHtml('persistent.remember.me.tooltip'); ?> + </div> + </div> + <div class="col-2 new-users"> + <div class="content"> + <h2><?php echo $this->__('New Customers') ?></h2> + <div class="buttons-set"> + <button type="button" title="<?php echo $this->__('Create an Account') ?>" class="button" onclick="window.location='<?php echo Mage::helper('Mage_Persistent_Helper_Data')->getCreateAccountUrl($this->getCreateAccountUrl()) ?>';"><?php echo $this->__('Create an Account') ?></button> + </div> + </div> + </div> </div> - </div> + <?php if (Mage::helper('Mage_Checkout_Helper_Data')->isContextCheckout()): ?> + <input name="context" type="hidden" value="checkout" /> + <?php endif; ?> + </form> <script type="text/javascript"> //<![CDATA[ var dataForm = new VarienForm('login-form', true); diff --git a/app/design/frontend/default/iphone/Mage_Persistent/customer/form/register.phtml b/app/design/frontend/default/iphone/Mage_Persistent/customer/form/register.phtml deleted file mode 100644 index d7921e9be51..00000000000 --- a/app/design/frontend/default/iphone/Mage_Persistent/customer/form/register.phtml +++ /dev/null @@ -1,189 +0,0 @@ -<?php -/** - * Magento - * - * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @category design - * @package base_default - * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) - */ -?> -<?php -/** - * Create account form template - * - * @see app/design/frontend/base/default/template/customer/form/register.phtml - */ -/** @var $this Mage_Customer_Block_Form_Register */ -?> -<div class="breadcrumbs"> - <ul> - <li class="home"> - <a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>"><?php echo $this->__('Back') ?></a> - </li> - <li><strong><?php echo $this->__('New Customer') ?></strong></li> - </ul> -</div> -<div class="new-customer"> - <form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="form-validate"> - <fieldset> - <input type="hidden" name="success_url" value="<?php echo $this->getSuccessUrl() ?>" /> - <input type="hidden" name="error_url" value="<?php echo $this->getErrorUrl() ?>" /> - <?php echo $this->getChildHtml('form_fields_before')?> - <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> - <div class="personal-information"> - <h2><?php echo $this->__('Personal Information') ?></h2> - <ul class="form-list"> - <li> - <?php echo $this->getLayout()->createBlock('Mage_Customer_Block_Widget_Name')->setObject($this->getFormData())->setForceUseCustomerAttributes(true)->toHtml() ?> - </li> - <li> - <label for="email_address" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label> - <div class="input-box"> - <input type="email" name="email" id="email_address" value="<?php echo $this->escapeHtml($this->getFormData()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="input-text validate-email required-entry" /> - </div> - </li> - <?php if ($this->isNewsletterEnabled()): ?> - <li> - <label for="is_subscribed"> - <input type="checkbox" name="is_subscribed" title="<?php echo $this->__('Sign Up for Newsletter') ?>" value="1" id="is_subscribed"<?php if($this->getFormData()->getIsSubscribed()): ?> checked="checked"<?php endif; ?> class="checkbox" /> <?php echo $this->__('Sign Up for Newsletter') ?> - </label> - </li> - <?php endif ?> - <?php $_dob = $this->getLayout()->createBlock('Mage_Customer_Block_Widget_Dob') ?> - <?php if ($_dob->isEnabled()): ?> - <li><?php echo $_dob->setDate($this->getFormData()->getDob())->toHtml() ?></li> - <?php endif ?> - <?php $_taxvat = $this->getLayout()->createBlock('Mage_Customer_Block_Widget_Taxvat') ?> - <?php if ($_taxvat->isEnabled()): ?> - <li><?php echo $_taxvat->setTaxvat($this->getFormData()->getTaxvat())->toHtml() ?></li> - <?php endif ?> - <?php $_gender = $this->getLayout()->createBlock('Mage_Customer_Block_Widget_Gender') ?> - <?php if ($_gender->isEnabled()): ?> - <li><?php echo $_gender->setGender($this->getFormData()->getGender())->toHtml() ?></li> - <?php endif ?> - </ul> - </div> - <?php if($this->getShowAddressFields()): ?> - <div class="fieldset"> - <input type="hidden" name="create_address" value="1" /> - <h2 class="legend"><?php echo $this->__('Address Information') ?></h2> - <ul class="form-list"> - <li class="fields"> - <div class="field"> - <label for="company"><?php echo $this->__('Company') ?></label> - <div class="input-box"> - <input type="text" name="company" id="company" value="<?php echo $this->escapeHtml($this->getFormData()->getCompany()) ?>" title="<?php echo $this->__('Company') ?>" class="input-text" /> - </div> - </div> - <div class="field"> - <label for="telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label> - <div class="input-box"> - <input type="text" name="telephone" id="telephone" value="<?php echo $this->escapeHtml($this->getFormData()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text required-entry" /> - </div> - </div> - </li> - <li class="wide"> - <label for="street_1" class="required"><em>*</em><?php echo $this->__('Street Address') ?></label> - <div class="input-box"> - <input type="text" name="street[]" value="<?php echo $this->escapeHtml($this->getFormData()->getStreet(1)) ?>" title="<?php echo $this->__('Street Address') ?>" id="street_1" class="input-text required-entry" /> - </div> - </li> - <?php for ($_i=2, $_n=$this->helper('Mage_Customer_Helper_Address')->getStreetLines(); $_i<=$_n; $_i++): ?> - <li class="wide"> - <div class="input-box"> - <input type="text" name="street[]" value="<?php echo $this->escapeHtml($this->getFormData()->getStreet($_i)) ?>" title="<?php echo $this->__('Street Address %s', $_i) ?>" id="street_<?php echo $_i?>" class="input-text" /> - </div> - </li> - <?php endfor ?> - <li class="fields"> - <div class="field"> - <label for="city" class="required"><em>*</em><?php echo $this->__('City') ?></label> - <div class="input-box"> - <input type="text" name="city" value="<?php echo $this->escapeHtml($this->getFormData()->getCity()) ?>" title="<?php echo $this->__('City') ?>" class="input-text required-entry" id="city" /> - </div> - </div> - <div class="field"> - <label for="region_id" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label> - <div class="input-box"> - <select id="region_id" name="region_id" title="<?php echo $this->__('State/Province') ?>" class="validate-select" style="display:none;"> - <option value=""><?php echo $this->__('Please select region, state or province') ?></option> - </select> - <script type="text/javascript"> - //<![CDATA[ - $('region_id').setAttribute('defaultValue', "<?php echo $this->getFormData()->getRegionId() ?>"); - //]]> - </script> - <input type="text" id="region" name="region" value="<?php echo $this->escapeHtml($this->getRegion()) ?>" title="<?php echo $this->__('State/Province') ?>" class="input-text" style="display:none;" /> - </div> - </div> - </li> - <li class="fields"> - <div class="field"> - <label for="zip" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label> - <div class="input-box"> - <input type="text" name="postcode" value="<?php echo $this->escapeHtml($this->getFormData()->getPostcode()) ?>" title="<?php echo $this->__('Zip/Postal Code') ?>" id="zip" class="input-text validate-zip-international required-entry" /> - </div> - </div> - <div class="field"> - <label for="country" class="required"><em>*</em><?php echo $this->__('Country') ?></label> - <div class="input-box"> - <?php echo $this->getCountryHtmlSelect() ?> - </div> - </div> - </li> - </ul> - <input type="hidden" name="default_billing" value="1" /> - <input type="hidden" name="default_shipping" value="1" /> - </div> - <?php endif; ?> - <div class="login-information"> - <h2 class="legend"><?php echo $this->__('Login Information') ?></h2> - <ul class="form-list"> - <li> - <label for="password"><?php echo $this->__('Password') ?></label> - <input type="password" name="password" id="password" title="<?php echo $this->__('Password') ?>" class="input-text required-entry validate-password" /> - </li> - <li> - <label for="confirmation"><?php echo $this->__('Confirm Password') ?></label> - <input type="password" name="confirmation" title="<?php echo $this->__('Confirm Password') ?>" id="confirmation" class="input-text required-entry validate-cpassword" /> - </li> - <?php echo $this->getChildHtml('form.additional.info'); ?> - <?php echo $this->getChildHtml('persistent.remember.me'); ?> - </ul> - <input type="submit" value="<?php echo $this->__('Create') ?>" /> - <?php echo $this->getChildHtml('persistent.remember.me.tooltip'); ?> - </div> - - <?php if (Mage::helper('Mage_Checkout_Helper_Data')->isContextCheckout()): ?> - <input name="context" type="hidden" value="checkout" /> - <?php endif; ?> - - </fieldset> - </form> -</div> - -<script type="text/javascript"> -//<![CDATA[ - var dataForm = new VarienForm('form-validate', true); - <?php if($this->getShowAddressFields()): ?> - new RegionUpdater('country', 'region', 'region_id', <?php echo $this->helper('Mage_Directory_Helper_Data')->getRegionJson() ?>, undefined, 'zip'); - <?php endif; ?> -//]]> -</script> diff --git a/app/design/frontend/default/iphone/Mage_Persistent/remember_me_tooltip.phtml b/app/design/frontend/default/iphone/Mage_Persistent/remember_me_tooltip.phtml new file mode 100644 index 00000000000..61757370f84 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Persistent/remember_me_tooltip.phtml @@ -0,0 +1,61 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** + * "Remember Me" popup template (when click on "What's this?") + * + */ +/** @var $this Mage_Core_Block_Template */ +?> + +<div id="remember-me-popup" class="remember-me-popup" style="display:none;"> + <div class="remember-me-popup-body"> + <p>Checking "Remember Me" will let you access your shopping cart on this computer when you are logged out</p> + <a href="#" class="remember-me-popup-close button" title="<?php echo $this->__('Close') ?>"><?php echo $this->__('Close') ?></a> + </div> +</div> +<script type="text/javascript"> +//<![CDATA[ + function toggleRememberMepopup(e){ + if($('remember-me-popup')){ + $('remember-me-popup').setStyle({'top' : e.pointerY() + 'px'}).toggle(); + } + Event.stop(event); + } + + document.observe("dom:loaded", function() { + new Insertion.Bottom($$('body')[0], $('remember-me-popup')); + + $$('.remember-me-popup-close').each(function(element){ + Event.observe(element, 'click', toggleRememberMepopup); + }) + $$('#remember-me-box a').each(function(element) { + Event.observe(element, 'click', toggleRememberMepopup); + }); + }); +//]]> +</script> diff --git a/app/design/frontend/default/iphone/Mage_Review/customer/list.phtml b/app/design/frontend/default/iphone/Mage_Review/customer/list.phtml new file mode 100644 index 00000000000..835b9072f80 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Review/customer/list.phtml @@ -0,0 +1,58 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<div class="page-title"> + <h1><?php echo $this->__('My Product Reviews') ?></h1> +</div> +<div class="review-history"> + <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> + <?php if( $this->getCollection() && $this->count()): ?> + <?php echo $this->getToolbarHtml() ?> + <ol class="list"> + <?php foreach ($this->getCollection() as $_review): ?> + <li class="list-item"> + <dl> + <dt> + <h2 class="product-name"><a href="<?php echo $this->getProductLink() ?>id/<?php echo $_review->getEntityPkValue() ?>"><?php echo $this->escapeHtml($_review->getName()) ?></a></h2> + <span class="date">(<?php echo $this->dateFormat($_review->getReviewCreatedAt()); ?>)</span> + </dt> + <?php if($_review->getSum()): ?> + <dd> + <div class="rating-box"> + <div class="rating" style="width:<?php echo ( $_review->getSum() / $_review->getCount() ) ?>%;"></div> + </div> + </dd> + <?php endif; ?> + <dd><?php echo $this->helper('Mage_Review_Helper_Data')->getDetailHtml($_review->getDetail()) ?></dd> + <dd><a href="<?php echo $this->getReviewLink() ?>id/<?php echo $_review->getReviewId() ?>"><?php echo $this->__('View Details') ?></a></dd> + </dl> + </li> + <?php endforeach; ?> + </ol> + <?php else: ?> + <p><?php echo $this->__('You have submitted no reviews.') ?></p> + <?php endif; ?> +</div> diff --git a/app/design/frontend/default/iphone/Mage_Review/layout.xml b/app/design/frontend/default/iphone/Mage_Review/layout.xml index aeeba8989fc..8b0f527b30f 100644 --- a/app/design/frontend/default/iphone/Mage_Review/layout.xml +++ b/app/design/frontend/default/iphone/Mage_Review/layout.xml @@ -69,6 +69,7 @@ Product reviews page <label>Catalog Product Reviews List</label> <reference name="root"> <action method="setTemplate"><template>1column.phtml</template></action> + <action method="setMyClass"><value>review-product-page</value></action> </reference> <reference name="head"> <action method="addJs"><file>varien/product.js</file></action> @@ -76,21 +77,6 @@ Product reviews page </reference> <reference name="content"> <block type="Mage_Review_Block_Product_View" name="product.info" template="Mage_Catalog::product/view.phtml"> - <block type="Mage_Catalog_Block_Product_View_Media" name="product.info.media" as="media" template="product/view/media.phtml"> - <action method="disableGallery"/> - </block> - <block type="Mage_Catalog_Block_Product_View" name="product.info.addto" as="addto" template="product/view/addto.phtml"/> - <block type="Mage_Catalog_Block_Product_View" name="product.info.addtocart" as="addtocart" template="product/view/addtocart.phtml"> - <!-- workaround: a better place for this code is in paypal.xml --> - <container name="review.product.info.addtocart.paypal.wrapper" label="PayPal Express Checkout Shortcut Wrapper" module="Mage_Paypal" htmlTag="div"> - <block type="Mage_Paypal_Block_Express_Shortcut" name="review.product.info.addtocart.paypal" template="express/shortcut.phtml"> - <action method="setIsInCatalogProduct"><value>1</value></action> - </block> - </container> - </block> - - <block type="Mage_Catalog_Block_Product_View" name="product.tierprices" as="tierprices" template="product/view/tierprices.phtml"/> - <block type="Mage_Core_Block_Template" name="product.info.other" as="other" template="Mage_Review::product/view/other.phtml"/> <block type="Mage_Page_Block_Html_Pager" name="product_review_list.toolbar" /> <block type="Mage_Core_Block_Template" name="product_review_list.count" template="Mage_Review::product/view/count.phtml" /> <block type="Mage_Review_Block_Product_View_List" name="product.info.product_additional_data" as="product_additional_data" template="product/view/list.phtml"> diff --git a/app/design/frontend/default/iphone/Mage_Rss/layout.xml b/app/design/frontend/default/iphone/Mage_Rss/layout.xml new file mode 100644 index 00000000000..650ad247571 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Rss/layout.xml @@ -0,0 +1,89 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<layout version="0.1.0"> + <!-- + Default layout, loads most of the pages + --> + <default> + <block type="Mage_Rss_Block_List" name="head_rss" ifconfig="rss/config/active" /> + </default> + + <rss_index_index translate="label"> + <label>RSS Feeds List</label> + <reference name="root"> + <action method="setTemplate"><template>2columns-right.phtml</template></action> + </reference> + <reference name="content"> + <block type="Mage_Rss_Block_List" name="rss.list" template="list.phtml"/> + </reference> + </rss_index_index> + + <rss_index_nofeed> + <block type="Mage_Core_Block_Template" name="root" output="toHtml" template="Mage_Rss::nofeed.phtml"/> + </rss_index_nofeed> + + <rss_index_wishlist> + <block type="Mage_Rss_Block_Wishlist" name="rss.wishlist" output="toHtml"> + <action method="addPriceBlockType"><type>msrp_rss</type><block>Mage_Catalog_Block_Product_Price</block><template>Mage_Wishlist::render/item/price_msrp_rss.phtml</template></action> + </block> + </rss_index_wishlist> +<!-- +Catalog layout +--> + <rss_catalog_new> + <block type="Mage_Rss_Block_Catalog_New" output="toHtml" name="rss.catalog.new"> + <action method="addPriceBlockType"><type>msrp_rss</type><block>Mage_Catalog_Block_Product_Price</block><template>product/price_msrp_rss.phtml</template></action> + </block> + </rss_catalog_new> + + <rss_catalog_special> + <block type="Mage_Rss_Block_Catalog_Special" output="toHtml" name="rss.catalog.special" /> + </rss_catalog_special> + + <rss_catalog_salesrule> + <block type="Mage_Rss_Block_Catalog_Salesrule" output="toHtml" name="rss.catalog.salesrule" /> + </rss_catalog_salesrule> + + <rss_catalog_tag> + <block type="Mage_Rss_Block_Catalog_Tag" output="toHtml" name="rss.catalog.tag"> + <action method="addPriceBlockType"><type>msrp_rss</type><block>Mage_Catalog_Block_Product_Price</block><template>product/price_msrp_rss.phtml</template></action> + </block> + </rss_catalog_tag> + + <rss_catalog_category> + <block type="Mage_Rss_Block_Catalog_Category" output="toHtml" name="rss.catalog.category"> + <action method="addPriceBlockType"><type>msrp_rss</type><block>Mage_Catalog_Block_Product_Price</block><template>product/price_msrp_rss.phtml</template></action> + </block> + </rss_catalog_category> +<!-- +Order layout +--> + <rss_order_status> + <block type="Mage_Rss_Block_Order_Status" output="toHtml" name="rss.order.status"/> + </rss_order_status> +</layout> diff --git a/app/design/frontend/default/iphone/Mage_Sales/billing/agreement/view.phtml b/app/design/frontend/default/iphone/Mage_Sales/billing/agreement/view.phtml new file mode 100644 index 00000000000..48097bf1430 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Sales/billing/agreement/view.phtml @@ -0,0 +1,110 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php /* @var $this Mage_Sales_Block_Billing_Agreement_View */ ?> +<div class="page-title title-buttons"> + <h1><?php echo $this->__('Billing Agreement # <span>%s</span>', $this->escapeHtml($this->getReferenceId())) ?></h1> + <?php if ($this->getCanCancel()): ?> + <a href="<?php echo $this->getCancelUrl() ?>" onclick="if( confirm('<?php echo $this->__('Are you sure you want to do this?') ?>') ) { window.location.href = '<?php echo $this->getCancelUrl() ?>'; } return false;"><?php echo $this->__('Cancel') ?></a> + <?php endif; ?> +</div> +<?php echo $this->getMessagesBlock()->getGroupedHtml() ?> +<div class="billing-agreements"> + <div class="info-box"> + <h2 class="box-title"><?php echo $this->__('Agreement Information') ?></h2> + <div class="box-content"> + <table class="info-table"> + <tbody> + <tr> + <th><?php echo $this->__('Reference ID:') ?></th> + <td><span class="nobr"><?php echo $this->escapeHtml($this->getReferenceId()); ?></span></td> + </tr> + <tr> + <th><?php echo $this->__('Status:') ?></th> + <td><?php echo $this->getAgreementStatus() ?></td> + </tr> + <tr> + <th><?php echo $this->__('Created:') ?></th> + <td><?php echo $this->escapeHtml($this->getAgreementCreatedAt()) ?></td> + </tr> + <?php if($this->getAgreementUpdatedAt()): ?> + <tr> + <th><?php echo $this->__('Updated:') ?></th> + <td><?php echo $this->escapeHtml($this->getAgreementUpdatedAt()); ?></td> + </tr> + <?php endif; ?> + <tr> + <th><?php echo $this->__('Payment Method:') ?></th> + <td><?php echo $this->getPaymentMethodTitle() ?></td> + </tr> + </tbody> + </table> + </div> + </div> + <?php $relatedOrders = $this->getRelatedOrders() ?> + <?php if(count($relatedOrders) > 0): ?> + <?php echo $this->getChildHtml('pager'); ?> + <h2 class="table-caption"><?php echo $this->__('Related Orders') ?></h2> + <table class="data-table" id="related-orders-table"> + <col width="1" /> + <col width="1" /> + <col /> + <col width="1" /> + <col width="1" /> + <col width="1" /> + <thead> + <tr> + <th><span class="nobr"><?php echo $this->__('Order #') ?></span></th> + <th><?php echo $this->__('Date') ?></th> + <th><?php echo $this->__('Ship To') ?></th> + <th><span class="nobr"><?php echo $this->__('Order Total') ?></span></th> + <th><span class="nobr"><?php echo $this->__('Order Status') ?></span></th> + <th> </th> + </tr> + </thead> + <tbody> + <?php foreach ($relatedOrders as $order): ?> + <tr> + <td><?php echo $this->getOrderItemValue($order, 'order_increment_id') ?></td> + <td><span class="nobr"><?php echo $this->getOrderItemValue($order, 'created_at') ?></span></td> + <td><?php echo $this->getOrderItemValue($order, 'shipping_address') ?></td> + <td><?php echo $this->getOrderItemValue($order, 'order_total') ?></td> + <td><em><?php echo $this->getOrderItemValue($order, 'status_label') ?></em></td> + <td class="a-center"> + <span class="nobr"> + <a href="<?php echo $this->getOrderItemValue($order, 'view_url') ?>"><?php echo $this->__('View Order') ?></a> + </span> + </td> + </tr> + <?php endforeach; ?> + </tbody> + </table> + <script type="text/javascript">decorateTable('related-orders-table');</script> + <?php endif; ?> + <div class="buttons-set"> + <p class="back-link"><a href="<?php echo $this->getBackUrl() ?>"><small>« </small><?php echo $this->__('Back to Billing Agreements') ?></a></p> + </div> +</div> diff --git a/app/design/frontend/default/iphone/Mage_Sales/billing/agreements.phtml b/app/design/frontend/default/iphone/Mage_Sales/billing/agreements.phtml new file mode 100644 index 00000000000..dfc61596227 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Sales/billing/agreements.phtml @@ -0,0 +1,98 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php /* @var $this Mage_Sales_Block_Billing_Agreements */ ?> +<div class="page-title"> + <h1><?php echo $this->__('Billing Agreements') ?></h1> +</div> + +<?php echo $this->getMessagesBlock()->getGroupedHtml() ?> + +<div class="billing-agreements"> + <?php $billingAgreements = $this->getBillingAgreements(); ?> + <?php if (count($billingAgreements) > 0): ?> + <?php echo $this->getChildHtml('pager'); ?> + <table id="billing-agreements" class="info-table"> + <tbody> + <?php foreach($billingAgreements as $item): ?> + <tr> + <th><span class="nobr"><?php echo $this->__('Reference ID'); ?></span></th> + </tr> + <td><span class="nobr"><?php echo $this->getItemValue($item, 'reference_id') ?></span></td> + </tr> + <th><?php echo $this->__('Status'); ?></th> + </tr> + <td><?php echo $this->getItemValue($item, 'status') ?></td> + <tr> + <th><span class="nobr"><?php echo $this->__('Created At'); ?></span></th> + </tr> + <td><span class="nobr"><?php echo $this->getItemValue($item, 'created_at') ?></span></td> + </tr> + <tr> + <th><span class="nobr"><?php echo $this->__('Updated At'); ?></span></th> + </tr> + <td><span class="nobr"><?php echo $this->getItemValue($item, 'updated_at') ?></span></td> + </tr> + <th><span class="nobr"><?php echo $this->__('Payment Method'); ?></span></th> + </tr> + <td><?php echo $this->getItemValue($item, 'payment_method_label') ?></td> + <tr> + <td><a href="<?php echo $this->getItemValue($item, 'edit_url') ?>"><?php echo $this->__('View') ?></a></td> + </tr> + <?php endforeach; ?> + </tbody> + </table> + <?php else: ?> + <p><?php echo $this->__('There are no billing agreements yet.')?></p> + <?php endif; ?> + + <?php $paymentMethods = $this->getWizardPaymentMethodOptions() ?> + <?php if ($paymentMethods): ?> + <div class="info-box"> + <h2 class="box-title"><?php echo $this->__('New Billing Agreement') ?></h2> + <form action="<?php echo $this->getCreateUrl() ?>" method="post"> + <div class="box-content"> + <p><?php echo $this->__('You will be redirected to the payment system website.') ?></p> + <ul class="form-list"> + <li> + <select id="payment_method" name="payment_method"> + <option value=""><?php echo $this->__('-- Please Select --') ?></option> + <?php foreach ($paymentMethods as $code => $title): ?> + <option value="<?php echo $code ?>"><?php echo $title ?></option> + <?php endforeach; ?> + </select> + <button type="submit" class="button"><span><span><?php echo $this->__('Create...') ?></span></span></button> + </li> + </ul> + </div> + </form> + </div> + <?php endif; ?> + + <div class="buttons-set"> + <p class="back-link"><a href="<?php echo $this->escapeHtml($this->getBackUrl()) ?>"><small>« </small><?php echo $this->__('Back') ?></a></p> + </div> +</div> diff --git a/app/design/frontend/default/iphone/Mage_Sales/billing_agreement.xml b/app/design/frontend/default/iphone/Mage_Sales/billing_agreement.xml index 2beaeaa1612..e34e4a2cf6a 100644 --- a/app/design/frontend/default/iphone/Mage_Sales/billing_agreement.xml +++ b/app/design/frontend/default/iphone/Mage_Sales/billing_agreement.xml @@ -43,6 +43,7 @@ <update handle="customer_account"/> <reference name="root"> <action method="setTemplate"><template>1column.phtml</template></action> + <action method="setMyClass"><value>billing-agreement-view</value></action> </reference> <reference name="my.account.wrapper"> <block type="Mage_Sales_Block_Billing_Agreement_View" name="customer.account.billing.agreement" template="billing/agreement/view.phtml"/> diff --git a/app/design/frontend/default/iphone/Mage_Sales/layout.xml b/app/design/frontend/default/iphone/Mage_Sales/layout.xml new file mode 100644 index 00000000000..9464bb8e973 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Sales/layout.xml @@ -0,0 +1,498 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +--> +<layout version="0.1.0"> + +<!-- +Customer account pages, rendered for all tabs in dashboard +--> + + + <checkout_onepage_index> + <remove name="sale.reorder.sidebar"/> + </checkout_onepage_index> + <checkout_onepage_reorder> + <reference name="right"> + <action method="unsetChild"><name>reorder</name></action> + </reference> + </checkout_onepage_reorder> + + <customer_account> + <!-- Mage_Sales --> + <reference name="customer_account_navigation"> + <action method="addLink" translate="label" module="Mage_Sales"><name>orders</name><path>sales/order/history/</path><label>My Orders</label></action> + </reference> + <reference name="left"> + <block type="Mage_Sales_Block_Reorder_Sidebar" name="sale.reorder.sidebar" as="reorder" template="reorder/sidebar.phtml"/> + </reference> + + </customer_account> + +<!-- +Customer account home dashboard layout +--> + + <customer_account_index> + <!-- Mage_Sales --> + <!--remove name="customer_account_dashboard_top"/--> + <reference name="customer_account_dashboard"> + <block type="Mage_Sales_Block_Order_Recent" name="customer_account_dashboard_top" as="top" template="order/recent.phtml"/> + </reference> + + </customer_account_index> + + <sales_order_history translate="label"> + <label>Customer My Account Order History</label> + <update handle="customer_account"/> + <reference name="my.account.wrapper"> + <block type="Mage_Sales_Block_Order_History" name="sales.order.history"> + <container name="sales.order.history.info" as="info" label="Order History Info"/> + </block> + <block type="Mage_Customer_Block_Account_Dashboard" name="customer.account.link.back" template="account/link/back.phtml"/> + </reference> + </sales_order_history> + + + <sales_order_view translate="label"> + <label>Customer My Account Order View</label> + <update handle="customer_account"/> + <reference name="my.account.wrapper"> + <block type="Mage_Sales_Block_Order_Info" as="info" name="sales.order.info"> + <block type="Mage_Sales_Block_Order_Info_Buttons" as="buttons" name="sales.order.info.buttons" /> + </block> + <block type="Mage_Sales_Block_Order_View" name="sales.order.view"> + <block type="Mage_Sales_Block_Order_Items" name="order_items" template="order/items.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/items/renderer/default.phtml</template></action> + <action method="addItemRender"><type>grouped</type><block>Mage_Sales_Block_Order_Item_Renderer_Grouped</block><template>order/items/renderer/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Totals" name="order_totals" template="order/totals.phtml"> + <action method="setLabelProperties"><value>colspan="4" class="a-right"</value></action> + <action method="setValueProperties"><value>class="last a-right"</value></action> + <block type="Mage_Tax_Block_Sales_Order_Tax" name="tax" template="order/tax.phtml" /> + </block> + </block> + </block> + </reference> + <reference name="sales.order.info"> + <action method="addLink" translate="label" module="Mage_Sales"><name>view</name><path></path><label>Order Information</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>invoice</name><path>*/*/invoice</path><label>Invoices</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>shipment</name><path>*/*/shipment</path><label>Shipments</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>creditmemo</name><path>*/*/creditmemo</path><label>Refunds</label></action> + </reference> + <container name="additional.product.info" label="Additional Product Info"/> + </sales_order_view> + + <sales_order_invoice translate="label"> + <label>Customer My Account Order Invoice View</label> + <update handle="customer_account"/> + <reference name="my.account.wrapper"> + <block type="Mage_Sales_Block_Order_Info" as="info" name="sales.order.info"> + <block type="Mage_Sales_Block_Order_Info_Buttons" as="buttons" name="sales.order.info.buttons" /> + </block> + <block type="Mage_Sales_Block_Order_Invoice" name="sales.order.invoice"> + <block type="Mage_Sales_Block_Order_Invoice_Items" name="invoice_items" template="order/invoice/items.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/invoice/items/renderer/default.phtml</template></action> + <action method="addItemRender"><type>grouped</type><block>Mage_Sales_Block_Order_Item_Renderer_Grouped</block><template>order/invoice/items/renderer/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Invoice_Totals" name="invoice_totals" template="order/totals.phtml"> + <action method="setLabelProperties"><value>colspan="4" class="a-right"</value></action> + <action method="setValueProperties"><value>class="last a-right"</value></action> + <block type="Mage_Tax_Block_Sales_Order_Tax" name="tax" template="order/tax.phtml" /> + </block> + <block type="Mage_Sales_Block_Order_Comments" name="invoice_comments" template="order/comments.phtml" /> + </block> + </block> + </reference> + <reference name="sales.order.info"> + <action method="addLink" translate="label" module="Mage_Sales"><name>view</name><path>*/*/view</path><label>Order Information</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>invoice</name><path></path><label>Invoices</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>shipment</name><path>*/*/shipment</path><label>Shipments</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>creditmemo</name><path>*/*/creditmemo</path><label>Refunds</label></action> + </reference> + <container name="additional.product.info" label="Additional Product Info" /> + </sales_order_invoice> + + <sales_order_shipment translate="label"> + <label>Customer My Account Order Shipment View</label> + <update handle="customer_account"/> + <reference name="my.account.wrapper"> + <block type="Mage_Sales_Block_Order_Info" as="info" name="sales.order.info"> + <block type="Mage_Sales_Block_Order_Info_Buttons" as="buttons" name="sales.order.info.buttons" /> + </block> + <block type="Mage_Sales_Block_Order_Shipment" name="sales.order.shipment"> + <block type="Mage_Sales_Block_Order_Shipment_Items" name="shipment_items" template="order/shipment/items.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/shipment/items/renderer/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Comments" name="shipment_comments" template="order/comments.phtml" /> + </block> + </block> + </reference> + <reference name="sales.order.info"> + <action method="addLink" translate="label" module="Mage_Sales"><name>view</name><path>*/*/view</path><label>Order Information</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>invoice</name><path>*/*/invoice</path><label>Invoices</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>shipment</name><path></path><label>Shipments</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>creditmemo</name><path>*/*/creditmemo</path><label>Refunds</label></action> + </reference> + <container name="additional.product.info" label="Additional Product Info" /> + </sales_order_shipment> + + <sales_order_creditmemo translate="label"> + <label>Customer My Account Order Creditmemo View</label> + <update handle="customer_account"/> + <reference name="my.account.wrapper"> + <block type="Mage_Sales_Block_Order_Info" as="info" name="sales.order.info"> + <block type="Mage_Sales_Block_Order_Info_Buttons" as="buttons" name="sales.order.info.buttons" /> + </block> + <block type="Mage_Sales_Block_Order_Creditmemo" name="sales.order.creditmemo"> + <block type="Mage_Sales_Block_Order_Creditmemo_Items" name="creditmemo_items" template="order/creditmemo/items.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/creditmemo/items/renderer/default.phtml</template></action> + <action method="addItemRender"><type>grouped</type><block>Mage_Sales_Block_Order_Item_Renderer_Grouped</block><template>order/creditmemo/items/renderer/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Creditmemo_Totals" name="creditmemo_totals" template="order/totals.phtml"> + <action method="setLabelProperties"><value>colspan="6" class="a-right"</value></action> + <action method="setValueProperties"><value>class="a-right"</value></action> + <block type="Mage_Tax_Block_Sales_Order_Tax" name="tax" template="order/tax.phtml"/> + </block> + <block type="Mage_Sales_Block_Order_Comments" name="creditmemo_comments" template="order/comments.phtml" /> + </block> + </block> + </reference> + <reference name="sales.order.info"> + <action method="addLink" translate="label" module="Mage_Sales"><name>view</name><path>*/*/view</path><label>Order Information</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>invoice</name><path>*/*/invoice</path><label>Invoices</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>shipment</name><path>*/*/shipment</path><label>Shipments</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>creditmemo</name><path></path><label>Refunds</label></action> + </reference> + <container name="additional.product.info" label="Additional Product Info" /> + </sales_order_creditmemo> + + <sales_order_reorder> + <update handle="customer_account"/> + <reference name="content"> + <block type="Mage_Sales_Block_Order_View" name="sales.order.view"/> + </reference> + </sales_order_reorder> + + <sales_order_print translate="label"> + <label>Sales Order Print View</label> + <reference name="content"> + <block type="Mage_Sales_Block_Order_Print" name="sales.order.print" template="order/print.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/items/renderer/default.phtml</template></action> + <action method="addItemRender"><type>grouped</type><block>Mage_Sales_Block_Order_Item_Renderer_Grouped</block><template>order/items/renderer/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Totals" name="order_totals" template="order/totals.phtml"> + <action method="setLabelProperties"><value>colspan="4" class="a-right"</value></action> + <action method="setValueProperties"><value>class="last a-right"</value></action> + <block type="Mage_Tax_Block_Sales_Order_Tax" name="tax" template="order/tax.phtml"> + <action method="setIsPlaneMode"><value>1</value></action> + </block> + </block> + </block> + </reference> + <container name="additional.product.info" label="Additional Product Info" /> + </sales_order_print> + + <sales_order_printinvoice translate="label"> + <label>Sales Invoice Print View</label> + <reference name="content"> + <block type="Mage_Sales_Block_Order_Print_Invoice" name="sales.order.print.invoice" template="order/print/invoice.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/invoice/items/renderer/default.phtml</template></action> + <action method="addItemRender"><type>grouped</type><block>Mage_Sales_Block_Order_Item_Renderer_Grouped</block><template>order/invoice/items/renderer/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Invoice_Totals" name="invoice_totals" template="order/totals.phtml"> + <action method="setLabelProperties"><value>colspan="4" class="a-right"</value></action> + <action method="setValueProperties"><value>class="last a-right"</value></action> + <block type="Mage_Tax_Block_Sales_Order_Tax" name="tax" template="order/tax.phtml" /> + </block> + </block> + </reference> + <container name="additional.product.info" label="Additional Product Info" /> + </sales_order_printinvoice> + + <sales_order_printshipment translate="label"> + <label>Sales Shipment Print View</label> + <reference name="content"> + <block type="Mage_Sales_Block_Order_Print_Shipment" name="sales.order.print.shipment" template="order/print/shipment.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/shipment/items/renderer/default.phtml</template></action> + </block> + </reference> + <container name="additional.product.info" label="Additional Product Info" /> + </sales_order_printshipment> + + <sales_order_printcreditmemo> + <reference name="content"> + <block type="Mage_Sales_Block_Order_Print_Creditmemo" name="sales.order.print.creditmemo" template="order/print/creditmemo.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/creditmemo/items/renderer/default.phtml</template></action> + <action method="addItemRender"><type>grouped</type><block>Mage_Sales_Block_Order_Item_Renderer_Grouped</block><template>order/creditmemo/items/renderer/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Creditmemo_Totals" name="creditmemo_totals" template="order/totals.phtml"> + <action method="setLabelProperties"><value>colspan="6" class="a-right"</value></action> + <action method="setValueProperties"><value>class="a-right"</value></action> + <block type="Mage_Tax_Block_Sales_Order_Tax" name="tax" template="order/tax.phtml"/> + </block> + </block> + </reference> + <container name="additional.product.info" label="Additional Product Info"/> + </sales_order_printcreditmemo> + +<!-- +Email layouts section +--> + <sales_email_order_items> + <block type="Mage_Sales_Block_Order_Email_Items" name="items" template="email/items.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Email_Items_Order_Default</block><template>email/items/order/default.phtml</template></action> + <action method="addItemRender"><type>grouped</type><block>Mage_Sales_Block_Order_Email_Items_Order_Grouped</block><template>email/items/order/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Totals" name="order_totals" template="order/totals.phtml"> + <action method="setLabelProperties"><value>colspan="3" align="right" style="padding:3px 9px"</value></action> + <action method="setValueProperties"><value>align="right" style="padding:3px 9px"</value></action> + <block type="Mage_Tax_Block_Sales_Order_Tax" name="tax" template="order/tax.phtml"> + <action method="setIsPlaneMode"><value>1</value></action> + </block> + </block> + </block> + <container name="additional.product.info" label="Additional Product Info" /> + </sales_email_order_items> + + <sales_email_order_invoice_items> + <block type="Mage_Sales_Block_Order_Email_Invoice_Items" name="items" template="email/invoice/items.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Email_Items_Default</block><template>email/items/invoice/default.phtml</template></action> + <action method="addItemRender"><type>grouped</type><block>Mage_Sales_Block_Order_Email_Items_Order_Grouped</block><template>email/items/invoice/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Invoice_Totals" name="invoice_totals" template="order/totals.phtml"> + <action method="setLabelProperties"><value>colspan="3" align="right" style="padding:3px 9px"</value></action> + <action method="setValueProperties"><value>align="right" style="padding:3px 9px"</value></action> + <block type="Mage_Tax_Block_Sales_Order_Tax" name="tax" template="order/tax.phtml"/> + </block> + </block> + <container name="additional.product.info" label="Additional Product Info"/> + </sales_email_order_invoice_items> + + <sales_email_order_shipment_items> + <block type="Mage_Sales_Block_Order_Email_Shipment_Items" name="items" template="email/shipment/items.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Email_Items_Default</block><template>email/items/shipment/default.phtml</template></action> + </block> + <container name="additional.product.info" label="Additional Product Info"/> + </sales_email_order_shipment_items> + + <sales_email_order_creditmemo_items> + <block type="Mage_Sales_Block_Order_Email_Creditmemo_Items" name="items" template="email/creditmemo/items.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Email_Items_Default</block><template>email/items/creditmemo/default.phtml</template></action> + <action method="addItemRender"><type>grouped</type><block>Mage_Sales_Block_Order_Email_Items_Order_Grouped</block><template>email/items/creditmemo/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Creditmemo_Totals" name="creditmemo_totals" template="order/totals.phtml"> + <action method="setLabelProperties"><value>colspan="3" align="right" style="padding:3px 9px"</value></action> + <action method="setValueProperties"><value>align="right" style="padding:3px 9px"</value></action> + <block type="Mage_Tax_Block_Sales_Order_Tax" name="tax" template="order/tax.phtml"/> + </block> + </block> + <container name="additional.product.info" label="Additional Product Info"/> + </sales_email_order_creditmemo_items> + +<!-- +Guest +--> + + <sales_guest_form translate="label"> + <label>Returns</label> + <reference name="root"> + <action method="setTemplate"><template>1column.phtml</template></action> + </reference> + <reference name="content"> + <block type="Mage_Sales_Block_Widget_Guest_Form" name="guest.form" template="guest/form.phtml"/> + </reference> + </sales_guest_form> + + + <sales_guest_view translate="label"> + <label>Customer My Account Order View</label> + <reference name="root"> + <action method="setTemplate"><template>1column.phtml</template></action> + </reference> + <reference name="content"> + <block type="Mage_Sales_Block_Order_Info" as="info" name="sales.order.info"> + <block type="Mage_Sales_Block_Order_Info_Buttons" as="buttons" name="sales.order.info.buttons" /> + </block> + <block type="Mage_Sales_Block_Order_View" name="sales.order.view"> + <block type="Mage_Sales_Block_Order_Items" name="order_items" template="order/items.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/items/renderer/default.phtml</template></action> + <action method="addItemRender"><type>grouped</type><block>Mage_Sales_Block_Order_Item_Renderer_Grouped</block><template>order/items/renderer/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Totals" name="order_totals" template="order/totals.phtml"> + <action method="setLabelProperties"><value>colspan="4" class="a-right"</value></action> + <action method="setValueProperties"><value>class="last a-right"</value></action> + <block type="Mage_Tax_Block_Sales_Order_Tax" name="tax" template="order/tax.phtml" /> + </block> + </block> + </block> + </reference> + <reference name="sales.order.info"> + <action method="addLink" translate="label" module="Mage_Sales"><name>view</name><path></path><label>Order Information</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>invoice</name><path>*/*/invoice</path><label>Invoices</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>shipment</name><path>*/*/shipment</path><label>Shipments</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>creditmemo</name><path>*/*/creditmemo</path><label>Refunds</label></action> + </reference> + </sales_guest_view> + + <sales_guest_invoice translate="label"> + <label>Customer My Account Order Invoice View</label> + <reference name="root"> + <action method="setTemplate"><template>1column.phtml</template></action> + </reference> + <reference name="content"> + <block type="Mage_Sales_Block_Order_Info" as="info" name="sales.order.info"> + <block type="Mage_Sales_Block_Order_Info_Buttons" as="buttons" name="sales.order.info.buttons" /> + </block> + <block type="Mage_Sales_Block_Order_Invoice" name="sales.order.invoice"> + <block type="Mage_Sales_Block_Order_Invoice_Items" name="invoice_items" template="order/invoice/items.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/invoice/items/renderer/default.phtml</template></action> + <action method="addItemRender"><type>grouped</type><block>Mage_Sales_Block_Order_Item_Renderer_Grouped</block><template>order/invoice/items/renderer/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Invoice_Totals" name="invoice_totals" template="order/totals.phtml"> + <action method="setLabelProperties"><value>colspan="4" class="a-right"</value></action> + <action method="setValueProperties"><value>class="last a-right"</value></action> + <block type="Mage_Tax_Block_Sales_Order_Tax" name="tax" template="order/tax.phtml" /> + </block> + <block type="Mage_Sales_Block_Order_Comments" name="invoice_comments" template="order/comments.phtml" /> + </block> + </block> + </reference> + <reference name="sales.order.info"> + <action method="addLink" translate="label" module="Mage_Sales"><name>view</name><path>*/*/view</path><label>Order Information</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>invoice</name><path></path><label>Invoices</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>shipment</name><path>*/*/shipment</path><label>Shipments</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>creditmemo</name><path>*/*/creditmemo</path><label>Refunds</label></action> + </reference> + </sales_guest_invoice> + + <sales_guest_shipment translate="label"> + <label>Customer My Account Order Shipment View</label> + <reference name="root"> + <action method="setTemplate"><template>1column.phtml</template></action> + </reference> + <reference name="content"> + <block type="Mage_Sales_Block_Order_Info" as="info" name="sales.order.info"> + <block type="Mage_Sales_Block_Order_Info_Buttons" as="buttons" name="sales.order.info.buttons" /> + </block> + <block type="Mage_Sales_Block_Order_Shipment" name="sales.order.shipment"> + <block type="Mage_Sales_Block_Order_Shipment_Items" name="shipment_items" template="order/shipment/items.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/shipment/items/renderer/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Comments" name="shipment_comments" template="order/comments.phtml" /> + </block> + </block> + </reference> + <reference name="sales.order.info"> + <action method="addLink" translate="label" module="Mage_Sales"><name>view</name><path>*/*/view</path><label>Order Information</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>invoice</name><path>*/*/invoice</path><label>Invoices</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>shipment</name><path></path><label>Shipments</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>creditmemo</name><path>*/*/creditmemo</path><label>Refunds</label></action> + </reference> + </sales_guest_shipment> + + <sales_guest_creditmemo translate="label"> + <label>Customer My Account Order Creditmemo View</label> + <reference name="root"> + <action method="setTemplate"><template>1column.phtml</template></action> + </reference> + <reference name="content"> + <block type="Mage_Sales_Block_Order_Info" as="info" name="sales.order.info"> + <block type="Mage_Sales_Block_Order_Info_Buttons" as="buttons" name="sales.order.info.buttons" /> + </block> + <block type="Mage_Sales_Block_Order_Creditmemo" name="sales.order.creditmemo"> + <block type="Mage_Sales_Block_Order_Creditmemo_Items" name="creditmemo_items" template="order/creditmemo/items.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/creditmemo/items/renderer/default.phtml</template></action> + <action method="addItemRender"><type>grouped</type><block>Mage_Sales_Block_Order_Item_Renderer_Grouped</block><template>order/creditmemo/items/renderer/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Creditmemo_Totals" name="creditmemo_totals" template="order/totals.phtml"> + <action method="setLabelProperties"><value>colspan="6" class="a-right"</value></action> + <action method="setValueProperties"><value>class="a-right"</value></action> + <block type="Mage_Tax_Block_Sales_Order_Tax" name="tax" template="order/tax.phtml"/> + </block> + <block type="Mage_Sales_Block_Order_Comments" name="creditmemo_comments" template="order/comments.phtml" /> + </block> + </block> + </reference> + <reference name="sales.order.info"> + <action method="addLink" translate="label" module="Mage_Sales"><name>view</name><path>*/*/view</path><label>Order Information</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>invoice</name><path>*/*/invoice</path><label>Invoices</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>shipment</name><path>*/*/shipment</path><label>Shipments</label></action> + <action method="addLink" translate="label" module="Mage_Sales"><name>creditmemo</name><path></path><label>Refunds</label></action> + </reference> + </sales_guest_creditmemo> + + <sales_guest_reorder> + <reference name="root"> + <action method="setTemplate"><template>1column.phtml</template></action> + </reference> + <reference name="content"> + <block type="Mage_Sales_Block_Order_View" name="sales.order.view"/> + </reference> + </sales_guest_reorder> + + <sales_guest_print translate="label"> + <label>Sales Order Print View</label> + <reference name="content"> + <block type="Mage_Sales_Block_Order_Print" name="sales.order.print" template="order/print.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/items/renderer/default.phtml</template></action> + <action method="addItemRender"><type>grouped</type><block>Mage_Sales_Block_Order_Item_Renderer_Grouped</block><template>order/items/renderer/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Totals" name="order_totals" template="order/totals.phtml"> + <action method="setLabelProperties"><value>colspan="4" class="a-right"</value></action> + <action method="setValueProperties"><value>class="last a-right"</value></action> + <block type="Mage_Tax_Block_Sales_Order_Tax" name="tax" template="order/tax.phtml"> + <action method="setIsPlaneMode"><value>1</value></action> + </block> + </block> + </block> + </reference> + </sales_guest_print> + + <sales_guest_printinvoice translate="label"> + <label>Sales Invoice Print View</label> + <reference name="content"> + <block type="Mage_Sales_Block_Order_Print_Invoice" name="sales.order.print.invoice" template="order/print/invoice.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/invoice/items/renderer/default.phtml</template></action> + <action method="addItemRender"><type>grouped</type><block>Mage_Sales_Block_Order_Item_Renderer_Grouped</block><template>order/invoice/items/renderer/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Invoice_Totals" name="invoice_totals" template="order/totals.phtml"> + <action method="setLabelProperties"><value>colspan="4" class="a-right"</value></action> + <action method="setValueProperties"><value>class="last a-right"</value></action> + <block type="Mage_Tax_Block_Sales_Order_Tax" name="tax" template="order/tax.phtml" /> + </block> + </block> + </reference> + </sales_guest_printinvoice> + + <sales_guest_printshipment translate="label"> + <label>Sales Shipment Print View</label> + <reference name="content"> + <block type="Mage_Sales_Block_Order_Print_Shipment" name="sales.order.print.shipment" template="order/print/shipment.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/shipment/items/renderer/default.phtml</template></action> + </block> + </reference> + </sales_guest_printshipment> + + <sales_guest_printcreditmemo> + <reference name="content"> + <block type="Mage_Sales_Block_Order_Print_Creditmemo" name="sales.order.print.creditmemo" template="order/print/creditmemo.phtml"> + <action method="addItemRender"><type>default</type><block>Mage_Sales_Block_Order_Item_Renderer_Default</block><template>order/creditmemo/items/renderer/default.phtml</template></action> + <action method="addItemRender"><type>grouped</type><block>Mage_Sales_Block_Order_Item_Renderer_Grouped</block><template>order/creditmemo/items/renderer/default.phtml</template></action> + <block type="Mage_Sales_Block_Order_Creditmemo_Totals" name="creditmemo_totals" template="order/totals.phtml"> + <action method="setLabelProperties"><value>colspan="6" class="a-right"</value></action> + <action method="setValueProperties"><value>class="a-right"</value></action> + <block type="Mage_Tax_Block_Sales_Order_Tax" name="tax" template="order/tax.phtml"/> + </block> + </block> + </reference> + </sales_guest_printcreditmemo> +</layout> diff --git a/app/design/frontend/default/iphone/Mage_Sales/order/creditmemo/items.phtml b/app/design/frontend/default/iphone/Mage_Sales/order/creditmemo/items.phtml new file mode 100644 index 00000000000..544704feae3 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Sales/order/creditmemo/items.phtml @@ -0,0 +1,44 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php $_order = $this->getOrder() ?> +<p class="order-links"><a href="<?php echo $this->getPrintAllCreditmemosUrl($_order) ?>" onclick="this.target='_blank'" class="link-print"><?php echo $this->__('Print All Refunds') ?></a></p> +<?php foreach ($_order->getCreditmemosCollection() as $_creditmemo): ?> +<h2 class="sub-title"><?php echo $this->__('Refund #') ?><?php echo $_creditmemo->getIncrementId(); ?> <span class="separator">|</span> <a href="<?php echo $this->getPrintCreditmemoUrl($_creditmemo) ?>" onclick="this.target='_blank'" class="link-print"><?php echo $this->__('Print Refund') ?></a></h2> +<h3 class="table-caption"><?php echo $this->__('Items Refunded') ?></h3> +<table class="data-table" id="my-refund-table-<?php echo $_creditmemo->getId(); ?>"> + <tfoot> + <?php echo $this->getTotalsHtml($_creditmemo);?> + </tfoot> + <?php $_items = $_creditmemo->getAllItems(); ?> + <?php $_count = count($_items) ?> + <?php foreach ($_items as $_item): ?> + <?php if ($_item->getOrderItem()->getParentItem()) continue; ?> + <?php echo $this->getItemHtml($_item) ?> + <?php endforeach; ?> +</table> +<?php echo $this->getCommentsHtml($_creditmemo)?> +<?php endforeach; ?> diff --git a/app/design/frontend/default/iphone/Mage_Sales/order/creditmemo/items/renderer/default.phtml b/app/design/frontend/default/iphone/Mage_Sales/order/creditmemo/items/renderer/default.phtml new file mode 100644 index 00000000000..27c06d3636b --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Sales/order/creditmemo/items/renderer/default.phtml @@ -0,0 +1,322 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php $_item = $this->getItem() ?> +<?php $_order = $this->getItem()->getOrderItem()->getOrder() ?> +<tbody> + <tr class="border" id="order-item-row-<?php echo $_item->getId() ?>"> + <th><?php echo $this->__('Product Name') ?></th> + <td><h4 class="product-name"><?php echo $this->escapeHtml($_item->getName()) ?></h4> + <?php if($_options = $this->getItemOptions()): ?> + <dl class="item-options"> + <?php foreach ($_options as $_option) : ?> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <?php if (!$this->getPrintStatus()): ?> + <?php $_formatedOptionValue = $this->getFormatedOptionValue($_option) ?> + <dd<?php if (isset($_formatedOptionValue['full_view'])): ?> class="truncated"<?php endif; ?>><?php echo $_formatedOptionValue['value'] ?> + <?php if (isset($_formatedOptionValue['full_view'])): ?> + <div class="truncated_full_value"> + <dl class="item-options"> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <dd><?php echo $_formatedOptionValue['full_view'] ?></dd> + </dl> + </div> + <?php endif; ?> + </dd> + <?php else: ?> + <dd><?php echo $this->escapeHtml( (isset($_option['print_value']) ? $_option['print_value'] : $_option['value']) ) ?></dd> + <?php endif; ?> + <?php endforeach; ?> + </dl> + <?php endif; ?> + <?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?> + <?php if ($addInfoBlock) :?> + <?php echo $addInfoBlock->setItem($_item->getOrderItem())->toHtml(); ?> + <?php endif; ?> + <?php echo $this->escapeHtml($_item->getDescription()) ?> + <?php if($this->helper('Mage_GiftMessage_Helper_Message')->getIsMessagesAvailable('order_item', $_item->getOrderItem()) && $_item->getGiftMessageId()): ?> + <a href="#" id="order-item-gift-message-link-<?php echo $_item->getId() ?>" class="gift-message-link" onclick="return giftMessageToogle('<?php echo $_item->getId() ?>')"><?php echo $this->__('Gift Message') ?></a> + <?php endif; ?> + </td> + </tr> + <tr> + <th><?php echo $this->__('SKU') ?></th> + <td><?php echo $this->escapeHtml(Mage::helper('Mage_Core_Helper_String')->splitInjection($this->getSku())) ?></td> + </tr> + <th class="a-right"><?php echo $this->__('Price') ?></th> + <td class="a-right"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displaySalesPriceExclTax()): ?> + <span class="price-excl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <br /> + <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displaySalesPriceInclTax()): ?> + <span class="price-incl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getPriceInclTax($this->getItem()); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="unit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <?php endif; ?> + </td> + </tr> + <tr> + <th class="a-center"><?php echo $this->__('Qty') ?></th> + <td class="a-center"><?php echo $_item->getQty()*1 ?></td> + </tr> + <tr> + <th class="a-right"><?php echo $this->__('Subtotal') ?></th> + <td class="a-right"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displaySalesPriceExclTax()): ?> + <span class="price-excl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <br /> + <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displaySalesPriceInclTax()): ?> + <span class="price-incl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getSubtotalInclTax($this->getItem()); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + + + + </span> + <?php endif; ?> + </td> + </tr> + <tr> + <th class="a-center wrap"><?php echo $this->__('Discount Amount') ?></th> + <td class="a-right"><?php echo $_order->formatPrice(-$_item->getDiscountAmount()) ?></td> + </tr> + <tr> + <th class="a-right wrap"><?php echo $this->__('Row Total') ?></th> + <td class="last a-right"> + <?php echo $_order->formatPrice($_item->getRowTotal()-$_item->getDiscountAmount()+$_item->getTaxAmount()+$_item->getWeeeTaxAppliedRowAmount()) ?> + </td> + </tr> +</tbody> diff --git a/app/design/frontend/default/iphone/Mage_Sales/order/history.phtml b/app/design/frontend/default/iphone/Mage_Sales/order/history.phtml index eb38f82e984..a6bf965eb2a 100644 --- a/app/design/frontend/default/iphone/Mage_Sales/order/history.phtml +++ b/app/design/frontend/default/iphone/Mage_Sales/order/history.phtml @@ -24,42 +24,37 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> -<?php echo $this->getMessagesBlock()->getGroupedHtml() ?> <?php $_orders = $this->getOrders(); ?> <div class="page-title"> <h1><?php echo $this->__('My Orders') ?></h1> </div> -<?php echo $this->getPagerHtml(); ?> -<?php if($_orders->getSize()): ?> -<table class="data-table" id="my-orders-table"> - <col width="1" /> - <col width="1" /> - <col /> - <col width="1" /> - <col width="1" /> - <thead> - <tr> - <th><?php echo $this->__('Order #') ?></th> - <th><?php echo $this->__('Date') ?></th> - <th><span class="nobr"><?php echo $this->__('Order Total') ?></span></th> - <th><span class="nobr"><?php echo $this->__('Order Status') ?></span></th> - <th> </th> - </tr> - </thead> - <tbody> - <?php $_odd = ''; ?> - <?php foreach ($_orders as $_order): ?> - <tr> - <td><a href="<?php echo $this->getViewUrl($_order) ?>"><?php echo $_order->getRealOrderId() ?></a></td> - <td><span class="nobr"><?php echo $this->formatDate($_order->getCreatedAtStoreDate()) ?></span></td> - <td><?php echo $_order->formatPrice($_order->getGrandTotal()) ?></td> - <td><em><?php echo $_order->getStatusLabel() ?></em></td> - </tr> - <?php endforeach; ?> - </tbody> -</table> -<script type="text/javascript">decorateTable('my-orders-table');</script> -<?php echo $this->getPagerHtml(); ?> -<?php else: ?> - <p><?php echo $this->__('You have placed no orders.'); ?></p> -<?php endif ?> +<div class="recent-orders"> + <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> + <?php echo $this->getChildHtml('info');?> + <?php echo $this->getPagerHtml(); ?> + <?php if($_orders->getSize()): ?> + <table class="data-table" id="my-orders-table"> + <thead> + <tr> + <th><?php echo $this->__('Order #') ?></th> + <th><?php echo $this->__('Date') ?></th> + <th><span class="nobr"><?php echo $this->__('Total') ?></span></th> + <th><span class="nobr"><?php echo $this->__('Status') ?></span></th> + </tr> + </thead> + <tbody> + <?php $_odd = ''; ?> + <?php foreach ($_orders as $_order): ?> + <tr> + <td><a href="<?php echo $this->getViewUrl($_order) ?>"><?php echo $_order->getRealOrderId() ?></a></td> + <td><span class="nobr"><?php echo $this->formatDate($_order->getCreatedAtStoreDate()) ?></span></td> + <td><?php echo $_order->formatPrice($_order->getGrandTotal()) ?></td> + <td><em><?php echo $_order->getStatusLabel() ?></em></td> + </tr> + <?php endforeach; ?> + </tbody> + </table> + <?php else: ?> + <p><?php echo $this->__('You have placed no orders.'); ?></p> + <?php endif ?> +</div> diff --git a/app/design/frontend/default/iphone/Mage_Sales/order/invoice/items.phtml b/app/design/frontend/default/iphone/Mage_Sales/order/invoice/items.phtml new file mode 100644 index 00000000000..e817192a178 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Sales/order/invoice/items.phtml @@ -0,0 +1,44 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php $_order = $this->getOrder() ?> +<p class="order-links"><a href="<?php echo $this->getPrintAllInvoicesUrl($_order) ?>" onclick="this.target='_blank'" class="link-print"><?php echo $this->__('Print All Invoices') ?></a></p> +<?php foreach ($_order->getInvoiceCollection() as $_invoice): ?> +<h2 class="sub-title"><?php echo $this->__('Invoice #') ?><?php echo $_invoice->getIncrementId(); ?> <span class="separator">|</span> <a href="<?php echo $this->getPrintInvoiceUrl($_invoice) ?>" onclick="this.target='_blank'" class="link-print"><?php echo $this->__('Print Invoice') ?></a></h2> +<h3 class="table-caption"><?php echo $this->__('Items Invoiced') ?></h3> +<table class="data-table" id="my-invoice-table-<?php echo $_invoice->getId(); ?>"> + <tfoot> + <?php echo $this->getInvoiceTotalsHtml($_invoice)?> + </tfoot> + <?php $_items = $_invoice->getAllItems(); ?> + <?php $_count = count($_items) ?> + <?php foreach ($_items as $_item): ?> + <?php if ($_item->getOrderItem()->getParentItem()) continue; ?> + <?php echo $this->getItemHtml($_item) ?> + <?php endforeach; ?> +</table> +<?php echo $this->getInvoiceCommentsHtml($_invoice)?> +<?php endforeach; ?> diff --git a/app/design/frontend/default/iphone/Mage_Sales/order/invoice/items/renderer/default.phtml b/app/design/frontend/default/iphone/Mage_Sales/order/invoice/items/renderer/default.phtml new file mode 100644 index 00000000000..c0526a6f1a7 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Sales/order/invoice/items/renderer/default.phtml @@ -0,0 +1,312 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php $_item = $this->getItem() ?> +<?php $_order = $this->getItem()->getOrderItem()->getOrder() ?> +<tbody> + <tr class="border" id="order-item-row-<?php echo $_item->getId() ?>"> + <th><?php echo $this->__('Product Name') ?></th> + <td><h4 class="product-name"><?php echo $this->escapeHtml($_item->getName()) ?></h4> + <?php if($_options = $this->getItemOptions()): ?> + <dl class="item-options"> + <?php foreach ($_options as $_option) : ?> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <?php if (!$this->getPrintStatus()): ?> + <?php $_formatedOptionValue = $this->getFormatedOptionValue($_option) ?> + <dd<?php if (isset($_formatedOptionValue['full_view'])): ?> class="truncated"<?php endif; ?>> + <?php echo $_formatedOptionValue['value'] ?> + <?php if (isset($_formatedOptionValue['full_view'])): ?> + <div class="truncated_full_value"> + <dl class="item-options"> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <dd><?php echo $_formatedOptionValue['full_view'] ?></dd> + </dl> + </div> + <?php endif; ?> + </dd> + <?php else: ?> + <dd><?php echo $this->escapeHtml( (isset($_option['print_value']) ? $_option['print_value'] : $_option['value']) ) ?></dd> + <?php endif; ?> + <?php endforeach; ?> + </dl> + <?php endif; ?> + <?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?> + <?php if ($addInfoBlock) :?> + <?php echo $addInfoBlock->setItem($_item->getOrderItem())->toHtml(); ?> + <?php endif; ?> + <?php echo $this->escapeHtml($_item->getDescription()) ?> + <?php if($this->helper('Mage_GiftMessage_Helper_Message')->getIsMessagesAvailable('order_item', $_item->getOrderItem()) && $_item->getGiftMessageId()): ?> + <a href="#" id="order-item-gift-message-link-<?php echo $_item->getId() ?>" class="gift-message-link" onclick="return giftMessageToogle('<?php echo $_item->getId() ?>')"><?php echo $this->__('Gift Message') ?></a> + <?php endif; ?> + </td> + </tr> + <th><?php echo $this->__('SKU') ?></th> + <td><?php echo $this->escapeHtml(Mage::helper('Mage_Core_Helper_String')->splitInjection($this->getSku())) ?></td> + </tr> + <th class="a-right"><?php echo $this->__('Price') ?></th> + <td class="a-right"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displaySalesPriceExclTax()): ?> + <span class="price-excl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <br /> + <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displaySalesPriceInclTax()): ?> + <span class="price-incl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getPriceInclTax($this->getItem()); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="unit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <?php endif; ?> + </td> + </tr> + <tr> + <th class="a-center"><span class="nobr"><?php echo $this->__('Qty Invoiced') ?></span></th> + <td class="a-center"><?php echo $_item->getQty()*1 ?> </td> + </tr> + <tr> + <th class="a-right"><?php echo $this->__('Subtotal') ?></th> + <td class="a-right"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displaySalesPriceExclTax()): ?> + <span class="price-excl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <br /> + <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displaySalesPriceInclTax()): ?> + <span class="price-incl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getSubtotalInclTax($this->getItem()); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + + + + </span> + <?php endif; ?> + </td> + </tr> +</tbody> diff --git a/app/design/frontend/default/iphone/Mage_Sales/order/items.phtml b/app/design/frontend/default/iphone/Mage_Sales/order/items.phtml index 632b2c1a612..ac00c816984 100644 --- a/app/design/frontend/default/iphone/Mage_Sales/order/items.phtml +++ b/app/design/frontend/default/iphone/Mage_Sales/order/items.phtml @@ -19,13 +19,13 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default + * @package default_iphone * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> <?php $_order = $this->getOrder() ?> -<table class="data-table" id="my-orders-table" summary="<?php echo $this->__('Items Ordered') ?>" cellspacing="0" cellpadding="0"> +<table class="data-table" id="my-orders-table" summary="<?php echo $this->__('Items Ordered') ?>"> <tfoot> <?php echo $this->getChildHtml('order_totals') ?> </tfoot> @@ -34,40 +34,6 @@ <?php $_count = $_items->count(); ?> <?php foreach ($_items as $_item): ?> <?php if ($_item->getParentItem()) continue; ?> - <tbody class="collapsed"> - <?php echo $this->getItemHtml($_item) ?> - <?php if($this->helper('Mage_GiftMessage_Helper_Message')->getIsMessagesAvailable('order_item', $_item) && $_item->getGiftMessageId()): ?> - <tr class="border<?php echo ($_index++ > $_count ?' last':'') ?>" id="order-item-gift-message-<?php echo $_item->getId() ?>" style="display:none;"> - <?php $_giftMessage=$this->helper('Mage_GiftMessage_Helper_Message')->getGiftMessageForEntity($_item); ?> - <td class="gift-message-row" colspan="2"> - <a href="#" title="<?php echo $this->__('Close') ?>" onclick="return giftMessageToogle('<?php echo $_item->getId() ?>');" class="btn-close"><?php echo $this->__('Close') ?></a> - <dl class="gift-message"> - <dt><strong><?php echo $this->__('From:') ?></strong> <?php echo $this->escapeHtml($_giftMessage->getRecipient()) ?></dt> - <dt><strong><?php echo $this->__('To:') ?></strong> <?php echo $this->escapeHtml($_giftMessage->getSender()) ?></dt> - <dd><?php echo $this->helper('Mage_GiftMessage_Helper_Message')->getEscapedGiftMessage($_item) ?></dd> - </dl> - </td> - </tr> - <?php endif ?> - </tbody> + <?php echo $this->getItemHtml($_item) ?> <?php endforeach; ?> </table> -<script type="text/javascript"> - document.observe("dom:loaded", function() { - $('my-orders-table').on('click', 'tbody tr:fisrt-child', function(e, elem) { - - var tbody = elem.up('tbody'); - - if ( !tbody.hasClassName('collapsed') ) { - tbody.toggleClassName('collapsed'); - return - } - - $('my-orders-table').select('tbody').each(function (tbody) { - tbody.addClassName('collapsed'); - }); - - tbody.removeClassName('collapsed'); - }); - }); -</script> diff --git a/app/design/frontend/default/iphone/Mage_Sales/order/items/renderer/default.phtml b/app/design/frontend/default/iphone/Mage_Sales/order/items/renderer/default.phtml new file mode 100644 index 00000000000..44c4bc8a7f9 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Sales/order/items/renderer/default.phtml @@ -0,0 +1,331 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php + $_item = $this->getItem(); + $_options = $this->getItemOptions(); +?> +<tbody> + <tr class="border" id="order-item-row-<?php echo $_item->getId() ?>"> + <th><?php echo $this->__('Product Name') ?></th> + <td><h3 class="product-name"><?php echo $this->escapeHtml($_item->getName()) ?></h3> + <?php if($_options): ?> + <dl class="item-options"> + <?php foreach ($_options as $_option) : ?> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <?php if (!$this->getPrintStatus()): ?> + <?php $_formatedOptionValue = $this->getFormatedOptionValue($_option) ?> + <dd<?php if (isset($_formatedOptionValue['full_view'])): ?> class="truncated"<?php endif; ?>> + <?php echo $_formatedOptionValue['value'] ?> + <?php if (isset($_formatedOptionValue['full_view'])): ?> + <div class="truncated_full_value"> + <dl class="item-options"> + <dt><?php echo $this->escapeHtml($_option['label']) ?></dt> + <dd><?php echo $_formatedOptionValue['full_view'] ?></dd> + </dl> + </div> + <?php endif; ?> + </dd> + <?php else: ?> + <dd> + <?php echo nl2br($this->escapeHtml( (isset($_option['print_value']) ? $_option['print_value'] : $_option['value']) )) ?> + </dd> + <?php endif; ?> + <?php endforeach; ?> + </dl> + <?php endif; ?> + <?php $addtInfoBlock = $this->getProductAdditionalInformationBlock(); ?> + <?php if ($addtInfoBlock) :?> + <?php echo $addtInfoBlock->setItem($_item)->toHtml(); ?> + <?php endif; ?> + <?php echo $this->escapeHtml($_item->getDescription()) ?> + <?php if($this->helper('Mage_GiftMessage_Helper_Message')->getIsMessagesAvailable('order_item', $_item) && $_item->getGiftMessageId()): ?> + <a href="#" id="order-item-gift-message-link-<?php echo $_item->getId() ?>" class="gift-message-link" onclick="return giftMessageToogle('<?php echo $_item->getId() ?>')"><?php echo $this->__('Gift Message') ?></a> + <?php endif; ?> + </td> + </tr> + <tr> + <th><?php echo $this->__('SKU') ?></th> + <td><?php echo $this->escapeHtml(Mage::helper('Mage_Core_Helper_String')->splitInjection($this->getSku())) ?></td> + </tr> + <th class="a-right"><?php echo $this->__('Price') ?></th> + <td class="a-right"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displaySalesPriceExclTax()): ?> + <span class="price-excl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <br /> + <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displaySalesPriceInclTax()): ?> + <span class="price-incl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getPriceInclTax($this->getItem()); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="unit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('unit-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <?php endif; ?> + </td> + </tr> + <tr> + <th class="a-center"><?php echo $this->__('Qty') ?></th> + <td class="a-right"> + <span class="nobr"> + <?php if ($this->getItem()->getQtyOrdered() > 0): ?> + <?php echo $this->__('Ordered'); ?>: <strong><?php echo $this->getItem()->getQtyOrdered()*1 ?></strong><br /> + <?php endif; ?> + <?php if ($this->getItem()->getQtyShipped() > 0): ?> + <?php echo $this->__('Shipped'); ?>: <strong><?php echo $this->getItem()->getQtyShipped()*1 ?></strong><br /> + <?php endif; ?> + <?php if ($this->getItem()->getQtyCanceled() > 0): ?> + <?php echo $this->__('Canceled'); ?>: <strong><?php echo $this->getItem()->getQtyCanceled()*1 ?></strong><br /> + <?php endif; ?> + <?php if ($this->getItem()->getQtyRefunded() > 0): ?> + <?php echo $this->__('Refunded'); ?>: <strong><?php echo $this->getItem()->getQtyRefunded()*1 ?></strong><br /> + <?php endif; ?> + </span> + </td> + </tr> + <th class="a-right"><?php echo $this->__('Subtotal') ?></th> + <td class="a-right"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displaySalesPriceExclTax()): ?> + <span class="price-excl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + </span> + <br /> + <?php endif; ?> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices() || $this->helper('Mage_Tax_Helper_Data')->displaySalesPriceInclTax()): ?> + <span class="price-incl-tax"> + <?php if ($this->helper('Mage_Tax_Helper_Data')->displaySalesBothPrices()): ?> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-price"> + <?php endif; ?> + <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span> + <?php if (!Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + </span> + <?php endif; ?> + <?php endif; ?> + <?php $_incl = $this->helper('Mage_Checkout_Helper_Data')->getSubtotalInclTax($this->getItem()); ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <?php else: ?> + <span class="cart-price"> + <?php endif; ?> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> + <?php else: ?> + <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> + <?php endif; ?> + + </span> + + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem())): ?> + + <span class="cart-tax-info" id="subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display:none;"> + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> + <?php endforeach; ?> + </small> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></small></span> + <?php endforeach; ?> + <?php elseif (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <small> + <?php foreach (Mage::helper('Mage_Weee_Helper_Data')->getApplied($this->getItem()) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + </span> + + <?php if (Mage::helper('Mage_Weee_Helper_Data')->typeOfDisplay($this->getItem(), 2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> + <span class="cart-tax-total" onclick="taxToggle('subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>', this, 'cart-tax-total-expanded');"> + <span class="nobr"><?php echo Mage::helper('Mage_Weee_Helper_Data')->__('Total incl. tax'); ?>:<br /> <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?></span> + </span> + <?php endif; ?> + <?php endif; ?> + + + + </span> + <?php endif; ?> + </td> + </tr> +</tbody> diff --git a/app/design/frontend/default/iphone/Mage_Sales/order/recent.phtml b/app/design/frontend/default/iphone/Mage_Sales/order/recent.phtml index 36aa40b80b7..3f546b04668 100644 --- a/app/design/frontend/default/iphone/Mage_Sales/order/recent.phtml +++ b/app/design/frontend/default/iphone/Mage_Sales/order/recent.phtml @@ -24,30 +24,25 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> -<div class="box-account box-recent"> +<div class="info-box recent-orders"> <?php $_orders = $this->getOrders(); ?> - <div class="box-head"> - <h2><?php echo $this->__('Recent Orders') ?></h2> - <?php if( sizeof($_orders->getItems()) > 0 ): ?><a href="<?php echo $this->getUrl('sales/order/history') ?>"><?php echo $this->__('View All') ?></a><?php endif; ?> - </div> + <h3 class="box-title"><?php echo $this->__('Recent Orders') ?><?php if( sizeof($_orders->getItems()) > 0 ): ?> <span class="separator">|</span> <a href="<?php echo $this->getUrl('sales/order/history') ?>"><?php echo $this->__('View All') ?></a><?php endif; ?></h3> + <div class="box-content"> + <?php echo $this->getChildHtml()?> <?php if( sizeof($_orders->getItems()) > 0 ): ?> <table class="data-table" id="my-orders-table"> - <col width="1" /> - <col width="1" /> - <col /> - <col width="1" /> <thead> <tr> <th><?php echo $this->__('Order #') ?></th> <th><?php echo $this->__('Date') ?></th> - <th><span class="nobr"><?php echo $this->__('Order Total') ?></span></th> + <th><span class="nobr"><?php echo $this->__('Total') ?></span></th> <th><?php echo $this->__('Status') ?></th> </tr> </thead> <tbody> <?php foreach ($_orders as $_order): ?> <tr> - <td><a href="<?php echo $this->getViewUrl($_order) ?>"><?php echo $_order->getRealOrderId() ?></a></td> + <td><a href="<?php echo $this->getViewUrl($_order) ?>" class="nobr"><?php echo $_order->getRealOrderId() ?></a></td> <td><span class="nobr"><?php echo $this->formatDate($_order->getCreatedAtStoreDate()) ?></span></td> <td><?php echo $_order->formatPrice($_order->getGrandTotal()) ?></td> <td><em><?php echo $_order->getStatusLabel() ?></em></td> @@ -55,8 +50,8 @@ <?php endforeach; ?> </tbody> </table> - <script type="text/javascript">decorateTable('my-orders-table')</script> <?php else: ?> <p><?php echo $this->__('You have placed no orders.'); ?></p> <?php endif; ?> + </div> </div> diff --git a/app/design/frontend/default/iphone/Mage_Sales/order/totals.phtml b/app/design/frontend/default/iphone/Mage_Sales/order/totals.phtml index b4c21123539..dd7396c4742 100644 --- a/app/design/frontend/default/iphone/Mage_Sales/order/totals.phtml +++ b/app/design/frontend/default/iphone/Mage_Sales/order/totals.phtml @@ -19,7 +19,7 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default + * @package default_iphone * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ @@ -35,9 +35,9 @@ <tr class="<?php echo $_code?>"> <td> <?php if ($_total->getStrong()):?> - <strong><?php echo $_total->getLabel()?></strong> + <strong><?php echo $this->escapeHtml($_total->getLabel());?></strong> <?php else:?> - <?php echo $_total->getLabel()?> + <?php echo $this->escapeHtml($_total->getLabel());?> <?php endif?> </td> <td> diff --git a/app/design/frontend/default/iphone/Mage_Sendfriend/layout.xml b/app/design/frontend/default/iphone/Mage_Sendfriend/layout.xml index fdbb527b3b7..fed5a02d0a4 100644 --- a/app/design/frontend/default/iphone/Mage_Sendfriend/layout.xml +++ b/app/design/frontend/default/iphone/Mage_Sendfriend/layout.xml @@ -29,7 +29,7 @@ <sendfriend_product_send translate="label" type="page" parent="catalog_product_view"> <label>Catalog Product Email to a Friend</label> <reference name="root"> - <action method="setTemplate"><template>1column.phtml</template></action> + <action method="setMyClass"><value>send-to-friend</value></action> </reference> <reference name="head"> <action method="addJs"><file>varien/product.js</file></action> diff --git a/app/design/frontend/default/iphone/Mage_Sendfriend/send.phtml b/app/design/frontend/default/iphone/Mage_Sendfriend/send.phtml deleted file mode 100644 index 5d02f145a95..00000000000 --- a/app/design/frontend/default/iphone/Mage_Sendfriend/send.phtml +++ /dev/null @@ -1,148 +0,0 @@ -<?php -/** - * Magento - * - * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @category design - * @package base_default - * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) - */ -/* @var $this Mage_Sendfriend_Block_Send */ -/** - * Send to friend form - * - * @see Mage_Sendfriend_Block_Send - */ -?> -<script type="text/javascript"> -//<![CDATA[ - i=0; - var recipCount = 1; - var maxRecip = <?php echo $this->getMaxRecipients() ?>; - function remove_recipient(i){ - $('recipients_name'+i).up(2).remove(); - recipCount--; - if(recipCount<maxRecip && maxRecip != 0) { - $('add_recipient_button').show(); - $('max_recipient_message').hide(); - } - return false; - } - - function add_recipient(){ - ul = $('recipients_options'); - var li_mail = Element.extend(document.createElement("LI")); - li_mail.addClassName('fields additional-row'); - li_mail.innerHTML = '<a href="delete_email" title="<?php echo $this->__('Remove Email') ?>" onclick="remove_recipient('+i+'); return false" class="btn-remove"><?php echo $this->__('x') ?><\/a>' - li_mail.innerHTML += '<div class="field"><label for="recipients_name'+i+'" class="required"><em>*<\/em><?php echo $this->__('Name:') ?><\/label><div class="input-box"><input name="recipients[name][]" type="text" class="input-text required-entry" id="recipients_name'+i+'" /><\/div>'; - li_mail.innerHTML += '<div class="field"><label for="recipients_email'+i+'" class="required"><em>*<\/em><?php echo $this->__('Email Address:') ?><\/label><div class="input-box"><input name="recipients[email][]" value="" title="<?php echo $this->__('Email Address') ?>" id="recipients_email'+i+'" type="text" class="input-text required-entry validate-email" /><\/div><\/div>'; - i++; - recipCount++; - if(recipCount>=maxRecip && maxRecip != 0) { - $('add_recipient_button').hide(); - $('max_recipient_message').show(); - } - - ul.appendChild(li_mail); - } -//]]> -</script> - -<div class="breadcrumbs"> - <ul> - <li class="home"> - <a href="#" onclick="javascript:history.back(1); return false;" title="Continue Shopping">Back</a> - </li> - <li><strong><?php echo $this->__('Email to a Friend') ?></strong></li> - </ul> -</div> - -<div class="send-friend"> - <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> - <form action="<?php echo $this->getSendUrl() ?>" method="post" id="product_sendtofriend_form"> - <div class="fieldset"> - <?php if (1 < $this->getMaxRecipients()): ?> - <p id="add_recipient_button"> - <button type="button" onclick="add_recipient();" class="button"><span><span><?php echo $this->__('+') ?></span></span></button> - </p> - <?php endif; ?> - <h2 class="legend"><?php echo $this->__('Recipient:') ?></h2> - <ul class="form-list" id="recipients_options"> - <li class="fields"> - <div class="field"> - <label for="recipients_name" class="required"><em>*</em><?php echo $this->__('Name:') ?></label> - <div class="input-box"> - <input name="recipients[name][]" type="text" class="input-text required-entry" id="recipients_name" /> - </div> - </div> - <div class="field"> - <label for="recipients_email" class="required"><em>*</em><?php echo $this->__('Email Address:') ?></label> - <div class="input-box"> - <input name="recipients[email][]" value="" title="<?php echo $this->__('Email Address') ?>" id="recipients_email" type="text" class="input-text required-entry validate-email" /> - </div> - </div> - </li> - </ul> - </div> - <div id="max_recipient_message" style="display:none;"> - <?php if ($this->getMaxRecipients()): ?> - <p class="limit"><?php echo $this->__('Maximum %d email addresses allowed.', $this->getMaxRecipients()) ?></p> - <?php endif; ?> - </div> - <div class="fieldset sender-fieldset"> - <?php echo $this->getBlockHtml('formkey')?> - <h2 class="legend"><?php echo $this->__('Sender:') ?></h2> - <ul class="form-list" id="sender_options"> - <li class="fields"> - <div class="field"> - <label for="sender_name" class="required"><em>*</em><?php echo $this->__('Name:') ?></label> - <div class="input-box"> - <input name="sender[name]" value="<?php echo $this->escapeHtml($this->getUserName()) ?>" title="<?php echo $this->__('Name') ?>" id="sender_name" type="text" class="input-text required-entry" /> - </div> - </div> - <div class="field"> - <label for="sender_email" class="required"><em>*</em><?php echo $this->__('Email:') ?></label> - <div class="input-box"> - <input name="sender[email]" value="<?php echo $this->escapeHtml($this->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" id="sender_email" type="text" class="input-text required-entry validate-email" /> - </div> - </div> - </li> - <li class="wide"> - <label for="sender_message" class="required"><em>*</em><?php echo $this->__('Message:') ?></label> - <div class="input-box"> - <textarea name="sender[message]" class="input-text required-entry" id="sender_message" cols="3" rows="3"><?php echo $this->escapeHtml($this->getMessage())?></textarea> - </div> - </li> - </ul> - </div> - <div class="buttons-set"> - <button type="submit" class="button<?php if (!$this->canSend()):?> disabled<?php endif ?>"<?php if (!$this->canSend()):?> disabled="disabled"<?php endif ?>><span><span><?php echo $this->__('Send Email') ?></span></span></button> - </div> - </form> - <script type="text/javascript"> - //<![CDATA[ - var productSendtofriendForm = new VarienForm('product_sendtofriend_form'); - productSendtofriendForm.submit = function() { - if(this.validator.validate()) { - this.form.submit(); - } - }.bind(productSendtofriendForm); - //]]> - </script> -</div> diff --git a/app/design/frontend/default/iphone/Mage_Shipping/tracking/popup.phtml b/app/design/frontend/default/iphone/Mage_Shipping/tracking/popup.phtml index 41efb6b26f6..892cb69a05d 100644 --- a/app/design/frontend/default/iphone/Mage_Shipping/tracking/popup.phtml +++ b/app/design/frontend/default/iphone/Mage_Shipping/tracking/popup.phtml @@ -46,7 +46,7 @@ <?php if ($track->getCarrierTitle()): ?> <tr> <td class="first label"><?php echo $this->__('Carrier:'); ?></td> - <td><?php echo $this->escapeHtml($track->getCarrierTitle()); ?></td> + <td><?php echo $track->getCarrierTitle(); ?></td> </tr> <?php endif; ?> <?php if($track->getErrorMessage()): ?> diff --git a/app/design/frontend/default/iphone/Mage_Tag/layout.xml b/app/design/frontend/default/iphone/Mage_Tag/layout.xml index 0f74c46b113..f43d972d41c 100644 --- a/app/design/frontend/default/iphone/Mage_Tag/layout.xml +++ b/app/design/frontend/default/iphone/Mage_Tag/layout.xml @@ -39,17 +39,6 @@ Default layout, loads most of the pages </reference> </default> -<!-- -Customer account pages, rendered for all tabs in dashboard ---> - - <customer_account> - <!-- Mage_Tag --> - <reference name="customer_account_navigation"> - <action method="addLink" translate="label" module="Mage_Tag"><name>tags</name><path>tag/customer/</path><label>My Tags</label></action> - </reference> - </customer_account> - <!-- Customer account home dashboard layout --> @@ -62,14 +51,6 @@ Customer account home dashboard layout </reference> </customer_account_index> - <catalog_product_view> - <reference name="product.info.additional"> - <block type="Mage_Tag_Block_Product_List" name="product_tag_list" before="-" template="list.phtml"> - <container name="product.tag.list.list.before" as="list_before" label="Tags List Before" htmlTag="div"/> - </block> - </reference> - </catalog_product_view> - <!-- All tags page --> @@ -88,6 +69,9 @@ All tags page <tag_product_list translate="label" type="page" parent="tag_list_index"> <label>Tagged Products List</label> <!-- Mage_Tag --> + <reference name="root"> + <action method="setMyClass"><value>product-tags-list</value></action> + </reference> <reference name="content"> <block type="Mage_Tag_Block_Product_Result" name="tag_products" template="Mage_CatalogSearch::result.phtml"> <block type="Mage_Catalog_Block_Product_List" name="search_result_list" template="product/list.phtml"> diff --git a/app/design/frontend/default/iphone/Mage_Tag/list.phtml b/app/design/frontend/default/iphone/Mage_Tag/list.phtml index 65f4b758b5d..239df8a263d 100644 --- a/app/design/frontend/default/iphone/Mage_Tag/list.phtml +++ b/app/design/frontend/default/iphone/Mage_Tag/list.phtml @@ -24,12 +24,16 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> -<?php if( $this->getCount() ): ?> -<div class="collateral-box"> - <div class="head"><h4><?php echo $this->__('Product Tags') ?></h4></div> - <?php echo $this->getChildHtml('list_before')?> - <div class="tags-list"> - <?php echo $this->renderTags('<a href="%1$s">%2$s</a> <span>(%3$s)</span>') ?> - </div> +<?php if($this->getCount()): ?> +<div class="box-collateral box-tags"> + <div class="box-title"> + <h2><?php echo $this->__('Product Tags'); ?></h2> + </div> + <?php echo $this->getChildHtml('list_before')?> + <div class="box-content"> + <ul id="<?php echo $this->getUniqueHtmlId('tags-list_'); ?>" class="tags-list"> + <?php echo $this->renderTags('<li><a href="%1$s">%2$s</a> (%3$s)</li>') ?> + </ul> + </div> </div> <?php endif; ?> diff --git a/app/design/frontend/default/iphone/Mage_Tax/order/tax.phtml b/app/design/frontend/default/iphone/Mage_Tax/order/tax.phtml new file mode 100644 index 00000000000..75edfc1ae4c --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Tax/order/tax.phtml @@ -0,0 +1,81 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php + $_order = $this->getOrder(); + $_source = $this->getSource(); + $_fullInfo = $_order->getFullTaxInfo(); + global $taxIter; $taxIter++; +?> +<?php ?> + +<?php if ($this->displayFullSummary()): ?> +<?php $isTop = 1; ?> + <?php if ($_fullInfo) foreach ($_fullInfo as $info): ?> + <?php if (isset($info['hidden']) && $info['hidden']) continue; ?> + <?php + $percent = $info['percent']; + $amount = $info['amount']; + $rates = $info['rates']; + $isFirst = 1; + ?> + <?php foreach ($rates as $rate): ?> + <tr class="summary-details-<?php echo $taxIter; ?> summary-details<?php if ($isTop): echo ' summary-details-first'; endif; ?>"<?php if (!$this->getIsPlaneMode()):?> style="display:none;"<?php endif;?>> + <td <?php echo $this->getLabelProperties()?>> + <?php echo $this->escapeHtml($rate['title']); ?> + <?php if (!is_null($rate['percent'])): ?> + (<?php echo (float)$rate['percent']; ?>%) + <?php endif; ?> + <br /> + </td> + <?php if ($isFirst): ?> + <td <?php echo $this->getValueProperties()?> rowspan="<?php echo count($rates); ?>"> + <?php echo $_order->formatPrice($amount); ?> + </td> + <?php endif; ?> + </tr> + <?php $isFirst = 0; ?> + <?php $isTop = 0; ?> + <?php endforeach; ?> + <?php endforeach; ?> +<?php endif;?> + +<?php if ($this->displayFullSummary() && $_fullInfo && !$this->getIsPlaneMode()): ?> +<tr class="summary-total" onclick="expandDetails(this, '.summary-details-<?php echo $taxIter;?>')"> +<?php elseif ($this->displayFullSummary() && $_fullInfo && $this->getIsPlaneMode()): ?> +<tr class="show-details"> +<?php else: ?> +<tr> +<?php endif; ?> + <td> + <?php if ($this->displayFullSummary()): ?> + <div class="summary-collapse"><?php echo $this->__('Tax'); ?></div> + <?php else: ?> + <?php echo $this->__('Tax'); ?> + <?php endif;?> + </td> + <td <?php echo $this->getValueProperties()?>><?php echo $_order->formatPrice($_source->getTaxAmount()) ?></td> +</tr> diff --git a/app/design/frontend/default/iphone/Mage_Wishlist/item/column/cart.phtml b/app/design/frontend/default/iphone/Mage_Wishlist/item/column/cart.phtml new file mode 100644 index 00000000000..2809ad40a51 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Wishlist/item/column/cart.phtml @@ -0,0 +1,52 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +/* @var $this Mage_Wishlist_Block_Customer_Wishlist_Item_Column_Cart */ +/* @var Mage_Wishlist_Model_Item $item */ +$item = $this->getItem(); +$product = $item->getProduct(); +?> +<h3 class="product-name"><a href="<?php echo $this->getProductUrl($item) ?>" title="<?php echo $this->escapeHtml($product->getName()) ?>"><?php echo $this->escapeHtml($product->getName()) ?></a></h3> +<div class="cart-cell"> + <?php echo $this->getPriceHtml($product);?> + <div class="add-to-cart-alt"> + <?php if ($item->canHaveQty() && $item->getProduct()->isVisibleInSiteVisibility()): ?> + <input type="text" class="input-text qty validate-not-negative-number" name="qty[<?php echo $item->getId() ?>]" value="<?php echo $this->getAddToCartQty($item) * 1 ?>" /> + <?php endif; ?> + <?php if ($product->isSaleable()): ?> + <button type="button" title="<?php echo $this->__('Add to Cart') ?>" onclick="addWItemToCart(<?php echo $item->getId()?>);" class="button btn-cart"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button> + <?php else: ?> + <?php if ($product->getIsSalable()): ?> + <p class="availability in-stock"><span><?php echo $this->__('In stock') ?></span></p> + <?php else: ?> + <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p> + <?php endif; ?> + <?php endif; ?> + </div> + <?php foreach($this->getChildNames() as $childName):?> + <?php echo $this->getChildHtml($childName, false);?> + <?php endforeach;?> +</div> diff --git a/app/design/frontend/default/iphone/Mage_Wishlist/item/column/image.phtml b/app/design/frontend/default/iphone/Mage_Wishlist/item/column/image.phtml new file mode 100644 index 00000000000..55f75c36eaa --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Wishlist/item/column/image.phtml @@ -0,0 +1,38 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +/* @var Mage_Wishlist_Model_Item $item */ +$item = $this->getItem(); +$product = $item->getProduct(); +?> +<div class="product-image"> + <a href="<?php echo $this->getProductUrl($item) ?>" title="<?php echo $this->escapeHtml($product->getName()) ?>"> + <img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($product, 'small_image')->resize(226); ?>" width="113" alt="<?php echo $this->escapeHtml($product->getName()) ?>" /> + </a> + <?php if ($product->isVisibleInSiteVisibility()): ?> + <a class="link-edit" href="<?php echo $this->getItemConfigureUrl($item) ?>"><?php echo $this->__('Edit') ?></a> + <?php endif ?> +</div> diff --git a/app/design/frontend/default/iphone/Mage_Wishlist/item/column/info.phtml b/app/design/frontend/default/iphone/Mage_Wishlist/item/column/info.phtml new file mode 100644 index 00000000000..8c8743790b1 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Wishlist/item/column/info.phtml @@ -0,0 +1,39 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +/* @var Mage_Wishlist_Model_Item $item */ +$item = $this->getItem(); +$product = $item->getProduct(); +?> +<?php if($this->getChildNames()): ?> + <div class="item-manage"> + <?php foreach($this->getChildNames() as $childName):?> + <?php echo $this->getChildHtml($childName, false);?> + <?php endforeach;?> + </div> +<?php endif; ?> +<div class="description std"><div class="inner"><?php echo $this->escapeHtml($this->stripTags($product->getShortDescription()));?></div></div> +<textarea name="description[<?php echo $item->getWishlistItemId() ?>]" rows="3" cols="5" onfocus="focusComment(this)" onblur="focusComment(this)" placeholder="<?php echo $this->__('Comment') ?>"><?php echo ($this->escapeHtml($item->getDescription())) ?></textarea> diff --git a/app/design/frontend/default/iphone/Mage_Wishlist/item/configure/addto.phtml b/app/design/frontend/default/iphone/Mage_Wishlist/item/configure/addto.phtml new file mode 100644 index 00000000000..188b3c008c0 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Wishlist/item/configure/addto.phtml @@ -0,0 +1,34 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> + +<?php $_wishlistItem = $this->getWishlistItem(); ?> +<?php $_wishlistSubmitUrl = $this->helper('Mage_Wishlist_Helper_Data')->getUpdateUrl($_wishlistItem); ?> +<ul class="add-to-links"> +<?php if ($this->helper('Mage_Wishlist_Helper_Data')->isAllow()) : ?> + <li><a href="<?php echo $_wishlistSubmitUrl ?>" onclick="productAddToCartForm.submitLight(this, this.href); return false;" class="link-compare"><?php echo $this->__('Update Wishlist') ?></a></li> +<?php endif; ?> +</ul> diff --git a/app/design/frontend/default/iphone/Mage_Wishlist/item/list.phtml b/app/design/frontend/default/iphone/Mage_Wishlist/item/list.phtml new file mode 100644 index 00000000000..c9c6010fb35 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Wishlist/item/list.phtml @@ -0,0 +1,56 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php + $columns = $this->getColumns(); +?> +<table class="data-table" id="wishlist-table"> + <tbody> + <?php if (count($this->getItems())): ?> + <?php foreach ($this->getItems() as $item): ?> + <tr id="item_<?php echo $item->getId();?>"> + <td> + <?php foreach ($columns as $column): ?> + <?php $column->setItem($item); echo $column->toHtml($item);?> + <?php endforeach; ?> + </td> + </tr> + <?php endforeach ?> + <?php else: ?> + <td colspan="<?php echo count($columns);?>" class="wishlist-empty"><?php echo $this->__('This Wishlist has no Items');?></td> + <?php endif; ?> + </tbody> +</table> +<?php foreach ($columns as $column): ?> + <?php echo $column->getAdditionalHtml();?> +<?php endforeach; ?> +<script type="text/javascript"> +//<![CDATA[ +<?php foreach ($columns as $column): ?> + <?php echo $column->getJs();?> +<?php endforeach; ?> +//]]> +</script> diff --git a/app/design/frontend/default/iphone/Mage_Wishlist/layout.xml b/app/design/frontend/default/iphone/Mage_Wishlist/layout.xml new file mode 100644 index 00000000000..e6b86883d66 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Wishlist/layout.xml @@ -0,0 +1,140 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +--> +<layout version="0.1.0"> + +<!-- +Default layout, loads most of the pages +--> + + <default> + <reference name="top.links"> + <block type="Mage_Wishlist_Block_Links" name="wishlist_link" /> + <action method="addLinkBlock"><blockName>wishlist_link</blockName></action> + </reference> + + <!-- Mage_Wishlist --> + <reference name="right"> + <block type="Mage_Wishlist_Block_Customer_Sidebar" name="wishlist_sidebar" as="wishlist" after="cart_sidebar" template="sidebar.phtml" /> + </reference> + </default> + +<!-- +Customer account pages, rendered for all tabs in dashboard +--> + + <customer_account> + <!-- Mage_Wishlist --> + <reference name="customer_account_navigation"> + <action method="addLink" translate="label" module="Mage_Wishlist" ifconfig="wishlist/general/active"><name>wishlist</name><path>wishlist/</path><label>My Wishlist</label></action> + </reference> + </customer_account> + +<!-- +Customer account home dashboard layout +--> + + <customer_account_index> + + <reference name="right"> + <action method="unsetChild"><name>wishlist</name></action> + </reference> + </customer_account_index> + +<!-- +Wishlist pages +--> + + <wishlist_index_index translate="label"> + <label>Customer My Account My Wishlist</label> + <!-- Mage_Wishlist --> + <update handle="customer_account"/> + <reference name="my.account.wrapper"> + <block type="Mage_Wishlist_Block_Customer_Wishlist" name="customer.wishlist" template="view.phtml"> + <action method="setTitle" translate="title"> + <title>My Wishlist</title> + </action> + <block type="Mage_Wishlist_Block_Customer_Wishlist_Items" name="customer.wishlist.items" as="items" template="item/list.phtml"> + <block type="Mage_Wishlist_Block_Customer_Wishlist_Item_Column_Remove" name="customer.wishlist.item.remove" template="item/column/remove.phtml"></block> + <block type="Mage_Wishlist_Block_Customer_Wishlist_Item_Column_Image" name="customer.wishlist.item.image" template="item/column/image.phtml"></block> + <block type="Mage_Wishlist_Block_Customer_Wishlist_Item_Column_Cart" name="customer.wishlist.item.cart" template="item/column/cart.phtml"> + <action method="setTitle" translate="title"> + <title>Add to Cart</title> + </action> + <block type="Mage_Wishlist_Block_Customer_Wishlist_Item_Options" name="customer.wishlist.item.options"/> + </block> + <block type="Mage_Wishlist_Block_Customer_Wishlist_Item_Column_Comment" name="customer.wishlist.item.info" template="item/column/info.phtml"> + <action method="setTitle" translate="title"> + <title>Product Details and Comment</title> + </action> + </block> + </block> + <container name="customer.wishlist.buttons" as="control_buttons" label="Customer Wishlist Buttons"> + <block type="Mage_Wishlist_Block_Customer_Wishlist_Button" name="customer.wishlist.button.share" template="button/share.phtml" /> + <block type="Mage_Wishlist_Block_Customer_Wishlist_Button" name="customer.wishlist.button.toCart" template="button/tocart.phtml" /> + <block type="Mage_Wishlist_Block_Customer_Wishlist_Button" name="customer.wishlist.button.update" template="button/update.phtml" /> + </container> + </block> + </reference> + <reference name="right"> + <action method="unsetChild"><name>wishlist_customer_sidebar</name></action> + </reference> + </wishlist_index_index> + + <wishlist_index_share translate="label"> + <label>Customer My Account Wishlist Sharing Form</label> + <!-- Mage_Wishlist --> + <update handle="customer_account" /> + <reference name="my.account.wrapper"> + <block type="Mage_Wishlist_Block_Customer_Sharing" name="wishlist.sharing" template="sharing.phtml" /> + </reference> + <reference name="right"> + <action method="unsetChild"><name>wishlist_customer_sidebar</name></action> + </reference> + </wishlist_index_share> + + <wishlist_index_configure translate="label"> + <label>Configure Wishlist Item</label> + <update handle="catalog_product_view" /> + <reference name="product.info"> + <block type="Mage_Wishlist_Block_Item_Configure" name="product.info.addto" as="addto" template="item/configure/addto.phtml" /> + </reference> + <reference name="product.info.options.wrapper.bottom"> + <action method="unsetChild"><name>product.info.addto</name></action> + <action method="append"><block>product.info.addto</block></action> + </reference> + </wishlist_index_configure> + + <wishlist_shared_index translate="label"> + <label>Customer Shared Wishlist View</label> + <!-- Mage_Wishlist --> + <reference name="content"> + <block type="Mage_Wishlist_Block_Share_Wishlist" name="customer.wishlist" template="shared.phtml" /> + </reference> + </wishlist_shared_index> +</layout> diff --git a/app/design/frontend/default/iphone/Mage_Wishlist/shared.phtml b/app/design/frontend/default/iphone/Mage_Wishlist/shared.phtml new file mode 100644 index 00000000000..0a6d611f7d8 --- /dev/null +++ b/app/design/frontend/default/iphone/Mage_Wishlist/shared.phtml @@ -0,0 +1,73 @@ +<?php +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +/* @var $this Mage_Wishlist_Block_Share_Wishlist */ +?> +<div class="my-wishlist"> + <div class="page-title"> + <h1><?php echo $this->escapeHtml($this->getHeader()) ?></h1> + </div> + <div class="wishlist-view"> + <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> + <?php if ($this->hasWishlistItems()): ?> + <form action="<?php echo $this->getUrl('*/*/update') ?>" method="post"> + <fieldset> + <table class="data-table" id="wishlist-table"> + <?php foreach($this->getWishlistItems() as $item): ?> + <?php + $product = $item->getProduct(); + $isVisibleProduct = $product->isVisibleInSiteVisibility(); + ?> + <tr> + <td> + <a class="product-image" href="<?php echo $this->getProductUrl($item) ?>" title="<?php echo $this->escapeHtml($product->getName()) ?>"><img src="<?php echo $this->helper('Mage_Catalog_Helper_Image')->init($product, 'small_image')->resize(113, 113); ?>" width="113" height="113" alt="<?php echo $this->escapeHtml($product->getName()) ?>" /></a> + <h2 class="product-name"><a href="<?php echo $this->getProductUrl($item) ?>"><?php echo $this->escapeHtml($product->getName()) ?></a></h2> + <?php echo $this->getPriceHtml($product) ?> + <?php echo $this->getDetailsHtml($item) ?> + + <?php if ($product->isSaleable()): ?> + <?php if ($isVisibleProduct): ?> + <a href="<?php echo $this->getSharedItemAddToCartUrl($item) ?>"><?php echo $this->__('Add to Cart') ?></a> + <?php endif ?> + <?php endif; ?> + <p><a href="<?php echo $this->getAddToWishlistUrl($item) ?>" onclick="setLocation(this.href); return false;" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></p> + + <div class="comment"><?php echo $this->getEscapedDescription($item) ?></div> + </td> + </tr> + <?php endforeach ?> + </table> + </fieldset> + <?php if($this->isSaleable()):?> + <div class="buttons-set"> + <button type="button" title="<?php echo $this->__('Add All to Cart') ?>" onclick="setLocation('<?php echo $this->getUrl('*/*/allcart', array('_current'=>true)) ?>')" class="button"><?php echo $this->__('Add All to Cart') ?></button> + </div> + <?php endif;?> + </form> + <?php else: ?> + <p><?php echo $this->__('Wishlist is empty now.') ?></p> + <?php endif ?> + </div> +</div> diff --git a/app/design/frontend/default/iphone/Mage_Wishlist/view.phtml b/app/design/frontend/default/iphone/Mage_Wishlist/view.phtml index 83abfa92a84..0f4f90727bb 100644 --- a/app/design/frontend/default/iphone/Mage_Wishlist/view.phtml +++ b/app/design/frontend/default/iphone/Mage_Wishlist/view.phtml @@ -19,113 +19,51 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default + * @package default_iphone * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ /* @var $this Mage_Wishlist_Block_Customer_Wishlist */ ?> <?php if ($this->helper('Mage_Wishlist_Helper_Data')->isAllow()) : ?> -<div class="my-wishlist"> - <h1><?php echo $this->__('My Wishlist') ?></h1> + <div class="my-wishlist"> + <div class="page-title title-buttons"> + <h1><?php echo $this->getTitle(); ?></h1> + </div> + <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> - <?php echo $this->getMessagesBlock()->getGroupedHtml() ?> - <?php if ($this->hasWishlistItems()): ?> - <form id="wishlist-view-form" action="<?php echo $this->getUrl('*/*/update') ?>" method="post"> - <span id="remove-all-wishlist" class="remove-all item-remove"><img src="<?php echo $this->getSkinUrl('images/btn_trash.png') ?>" width="10" height="10" alt="<?php echo $this->__('Remove All')?>" /></span> - <?php echo $this->getBlockHtml('formkey')?> - <ul id="wishlist-list"> - <?php foreach ($this->getWishlistItems() as $item): ?> - <?php - $product = $item->getProduct(); - $isVisibleProduct = $product->isVisibleInSiteVisibility(); - ?> - <li> - <a href="<?php echo $this->getProductUrl($item) ?>" title="<?php echo $this->escapeHtml($product->getName()) ?>"><img src="<?php echo $this->getImageUrl($product); ?>" width="<?php echo $this->getImageSize()?>" height="<?php echo $this->getImageSize()?>" alt="<?php echo $this->escapeHtml($item->getName()) ?>" /></a> - <div class="wishlist-item"> - <h2> - <a href="<?php echo $this->getItemRemoveUrl($item) ?>" title="<?php echo $this->__('Remove') ?>" onclick="return confirmRemoveWishlistItem();" class="btn-remove"><img src="<?php echo $this->getSkinUrl('images/btn_trash.png') ?>" width="10" height="10" alt="<?php echo $this->__('Remove item')?>" /></a> - <?php if ($isVisibleProduct): ?> - <a class="btn-edit" href="<?php echo $this->getItemConfigureUrl($item) ?>"><?php echo $this->__('E') ?></a> - <?php endif ?> - <a href="<?php echo $this->getProductUrl($item) ?>"><?php echo $this->escapeHtml($product->getName()) ?></a> - </h2> - <?php echo $this->getPriceHtml($product) ?> - <?php echo $this->getDetailsHtml($item) ?> - <?php if ($isVisibleProduct): ?> - <span class="qty-holder"> - <b><?php echo $this->__('Qty') ?>:</b> - <input type="text" class="input-text qty" name="qty[<?php echo $item->getId() ?>]" value="<?php echo $this->getAddToCartQty($item) * 1 ?>" /> - </span> - <?php endif; ?> - <?php if ($product->isSaleable()): ?> - <?php if ($isVisibleProduct): ?> - <button type="button" title="<?php echo $this->__('Add to Cart') ?>" onclick="addWItemToCart(<?php echo $item->getId(); ?>)" class="button btn-cart"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button> - <?php endif ?> - <?php else: ?> - <span><?php echo $this->__('Out of stock') ?></span> - <?php endif; ?> - <textarea style="display:none;" name="description[<?php echo $item->getWishlistItemId() ?>]" rows="3" cols="5" onfocus="focusComment(this)" onblur="focusComment(this)" title="<?php echo $this->__('Comment') ?>"><?php echo $this->getCommentValue($item); ?></textarea> - </div> - </li> - <?php endforeach ?> - </ul> - <ul class="buttons-set"> - <li> - <button type="submit" class="update-wishlist" title="<?php echo $this->__('Update Wishlist') ?>" name="do"><?php echo $this->__('Update Wishlist') ?></button> - </li> - <li class="remove-all-button"> - <a href="#"><?php echo $this->__('Remove All')?></a> - </li> - <?php if($this->isSaleable()):?> - <li><span class="add-all-to-cart" title="<?php echo $this->__('Add All to Cart') ?>" onclick="addAllWItemsToCart()"><?php echo $this->__('Add All to Cart') ?></span></li> - <?php endif;?> - </ul> + <form id="wishlist-view-form" action="<?php echo $this->getUrl('*/*/update', array('wishlist_id' => $this->getWishlistInstance()->getId())) ?>" method="post"> + <?php echo $this->getChildHtml('top'); ?> + <fieldset> + <?php if ($this->hasWishlistItems()): ?> + <?php echo $this->getBlockHtml('formkey');?> + <?php $this->getChildBlock('items')->setItems($this->getWishlistItems()); ?> + <?php echo $this->getChildHtml('items');?> + <?php else: ?> + <p class="wishlist-empty"><?php echo $this->__('You have no items in your wishlist.') ?></p> + <?php endif ?> + <div class="buttons-set"> + <?php echo $this->getChildHtml('control_buttons');?> + </div> + </fieldset> </form> - <?php else: ?> - <p style="padding:0 10px;"><?php echo $this->__('You have no items in your wishlist.') ?></p> - <?php endif ?> - <script type="text/javascript"> - //<![CDATA[ - function confirmRemoveWishlistItem() { - return confirm('<?php echo $this->__('Are you sure you want to remove this product from your wishlist?') ?>'); - } - function focusComment(obj) { - if( obj.value == '<?php echo $this->helper('Mage_Wishlist_Helper_Data')->defaultCommentString() ?>' ) { - obj.value = ''; - } else if( obj.value == '' ) { - obj.value = '<?php echo $this->helper('Mage_Wishlist_Helper_Data')->defaultCommentString() ?>'; + <script type="text/javascript"> + //<![CDATA[ + var wishlistForm = new Validation($('wishlist-view-form')); + function addAllWItemsToCart() { + var url = '<?php echo $this->getUrl('*/*/allcart', array('wishlist_id' => $this->getWishlistInstance()->getId())) ?>'; + var separator = (url.indexOf('?') >= 0) ? '&' : '?'; + $$('#wishlist-view-form .qty').each( + function (input, index) { + url += separator + input.name + '=' + encodeURIComponent(input.value); + separator = '&'; + } + ); + setLocation(url); } - } - - function addWItemToCart(itemId) { - var url = '<?php echo $this->getItemAddToCartUrl('%item%') ?>'; - url = url.gsub('%item%', itemId); - var form = $('wishlist-view-form'); - if (form) { - var input = form['qty[' + itemId + ']']; - if (input) { - var separator = (url.indexOf('?') >= 0) ? '&' : '?'; - url += separator + input.name + '=' + encodeURIComponent(input.value); - } - } - setLocation(url); - } - - function addAllWItemsToCart() { - var url = '<?php echo $this->getUrl('*/*/allcart') ?>'; - var separator = (url.indexOf('?') >= 0) ? '&' : '?'; - $$('#wishlist-view-form .qty').each( - function (input, index) { - url += separator + input.name + '=' + encodeURIComponent(input.value); - separator = '&'; - } - ); - setLocation(url); - } - //]]> - </script> -</div> -<a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>"><small>« </small><?php echo $this->__('Back') ?></a> -<?php endif ?> \ No newline at end of file + //]]> + </script> + </div> + <?php echo $this->getChildHtml('bottom'); ?> +<?php endif ?> diff --git a/app/design/frontend/default/iphone/locale/en_US/translate.csv b/app/design/frontend/default/iphone/locale/en_US/translate.csv index 5caac30b890..e69de29bb2d 100644 --- a/app/design/frontend/default/iphone/locale/en_US/translate.csv +++ b/app/design/frontend/default/iphone/locale/en_US/translate.csv @@ -1,7 +0,0 @@ -"My Account","Account" -"My Wishlist","Wishlist" -"My Wishlist (%d item)","Wishlist (%d)" -"My Wishlist (%d items)","Wishlist (%d)" -"My Cart","Cart" -"My Cart (%s item)","Cart (%s)" -"My Cart (%s items)","Cart (%s)" \ No newline at end of file diff --git a/app/design/frontend/default/iphone/skin/default/css/custom.css b/app/design/frontend/default/iphone/skin/default/css/custom.css new file mode 100644 index 00000000000..bfb3395549c --- /dev/null +++ b/app/design/frontend/default/iphone/skin/default/css/custom.css @@ -0,0 +1,65 @@ +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category design + * @package default_iphone + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +/* Theme options */ + +/* Links Color */ +a { color:#1394ca; } + +/* Main color */ +body > header, +body > footer ul, +body > address.copyright { background-color:#e76212; } + +/* Button Color */ +.more-button, +.btn-checkout, +.account-login button, +.add-to-links > li > a, +.cart-table tfoot button, +.opc .buttons-set button, +.checkout-success button, +.box-reviews .buttons-set button, +.my-account .form-buttons button, +#contactForm .buttons-set button, +.giftregistry .buttons-set button, +.wishlist-view .buttons-set button, +.send-to-friend .buttons-set button, +.account-create .buttons-set button, +.add-to-links > li .split-button strong, +.catalog-product-gallery .buttons-set a, +.my-account .my-rewards .buttons-set button, +.my-account .my-wishlist .buttons-set button, +.product-view .product-shop .add-to-box button, +.popup-block .block-content .buttons-set button, +.customer-account-forgotpassword .buttons-set button, +.product-view .product-options-bottom .add-to-cart button, +.my-account .billing-agreements .box-content .form-list select + button { background-color:#e76212; } + +/* Main Page Navigation links color */ +#nav-container li a { color:#111; } + +/* Buttons background color */ +.form-subscribe button { background:green; } \ No newline at end of file diff --git a/app/design/frontend/default/iphone/skin/default/css/iphone.css b/app/design/frontend/default/iphone/skin/default/css/iphone.css index 99ab8ab30c3..08cc9565a05 100644 --- a/app/design/frontend/default/iphone/skin/default/css/iphone.css +++ b/app/design/frontend/default/iphone/skin/default/css/iphone.css @@ -31,70 +31,243 @@ form, fieldset, ul, li, dl, dt, dd { background:transparent; border:0; font-size:100%; margin:0; outline:0; padding:0; vertical-align:baseline; } img { vertical-align:bottom; } ul { list-style:none; } -a { color:#000; text-decoration:none; } -input, select { font-size:14px; vertical-align:middle; } +a { color:#1394ca; text-decoration:none; } /* Page -----------------------------*/ -html { -webkit-text-size-adjust:none; } +html { -webkit-text-size-adjust:none; overflow-y:scroll; } html, body { height:100%; } -body { background:#fefefe; font:12px/18px HelveticaNeue, Helvetica, sans-serif; min-height:100%; } -h1 { font-size:14px; font-weight:bold; line-height:14px; text-align:center; } -h2 { font-size:12px; font-weight:normal; line-height:20px; } - -button:active { position:relative; top:1px; left:1px; } +body { background:#fff; font:15px/18px HelveticaNeue, Helvetica, sans-serif; min-height:100%; } legend { display:none; } -.messages .notice-msg, -.messages .error-msg, -.messages .success-msg { - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #FFE38D), color-stop(100%, #FFD040)); - background:-o-linear-gradient(top, #FFE38D 0%, #FFD040 100%); +.std { clear:both; margin:10px 0; } + +.a-left { text-align:left; } +.a-center { text-align:center; } +.a-right { text-align:right; } + +.global-site-notice { background:#444; border-bottom:1px solid #333; color:#fff; font-size:13px; padding:10px; text-shadow:0 1px 0 #111; } +.global-site-notice p { margin:0 0 10px; } +.global-site-notice a { color:#f90; text-decoration:underline; text-shadow:none; } +.global-site-notice .actions { text-align:center; } +.global-site-notice .actions button { background:none; border:1px solid #ccc; color:#fff; cursor:pointer; padding:5px 10px; text-shadow:0 1px 0 #333; } + +input.input-text, +input[type="text"], +input[type="password"], +input[type="email"] { + background:#fff; + border:1px solid #e4e4e4; + border-radius:2px; + font-size:15px; + margin:0; + padding:5px; + width:100%; + -webkit-appearance:none; + -webkit-box-sizing:border-box; + box-sizing:border-box; + -webkit-box-shadow:inset 1px 1px 3px rgba(0, 0, 0, .05); + -moz-box-shadow:inset 1px 1px 3px rgba(0, 0, 0, .05); + box-shadow:inset 1px 1px 3px rgba(0, 0, 0, .05); +} + +textarea { + border:1px solid; + border-color:#e4e4e4; + border-radius:2px; padding:5px; - color:#222; + font:15px/18px HelveticaNeue, Helvetica, sans-serif; + height:100px; + width:100%; + resize:vertical; + -webkit-appearance:none; + -webkit-box-sizing:border-box; + box-sizing:border-box; + -webkit-box-shadow:inset 1px 1px 3px rgba(0, 0, 0, .05); + -moz-box-shadow:inset 1px 1px 3px rgba(0, 0, 0, .05); + box-shadow:inset 1px 1px 3px rgba(0, 0, 0, .05); +} + + +select, .select-multiple { + background:url(../images/i_dropdown.png) no-repeat right #fefefe; + border:1px solid #e4e4e4; + -webkit-border-radius:2px; + -moz-border-radius:2px; + border-radius:2px; + color:#333; + font:15px/18px HelveticaNeue, Helvetica, sans-serif; + padding:5px 30px 5px 5px; + width:100%; + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + -webkit-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, .1); + -moz-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, .1); + box-shadow:inset 1px 1px 1px rgba(0, 0, 0, .1); +} +select:disabled { background:#f5f5f5; } +.select-multiple-wrap { position:relative; } +.select-multiple { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; position:relative; } +.select-multiple-options-wrap { + background:#fff; + border:1px solid #e4e4e4; + border-radius:2px; + position:absolute; + top:-5px; + left:-5px; + right:-5px; + visibility:hidden; + -webkit-box-shadow:0 3px 6px rgba(0, 0, 0, .25); + -moz-box-shadow:0 3px 6px rgba(0, 0, 0, .25); + box-shadow:0 3px 6px rgba(0, 0, 0, .25); + z-index:1; +} +.select-multiple-options-wrap .select-heading { + border-bottom:1px solid #e4e4e4; + color:#424242; font-weight:bold; - text-shadow:0 1px 0 #eee; - -webkit-box-shadow:0 3px 3px #ccc; - box-shadow:0 3px 3px #ccc; + font-size:15px; + line-height:20px; + padding:10px; + white-space:nowrap; + overflow:hidden; + text-overflow:ellipsis; } -.messages .error-msg { - color:#fff; - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35)); - background-image:-o-linear-gradient(top, #ee5f5b 0%, #c43c35 100%); - text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25); -} -.messages .success-msg { - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957)); - background-image:-o-linear-gradient(top, #62c462 0%, #57a957 100%); - border:solid #3D773D; - border-width:1px 0; - color:#fff; - text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25); - margin-bottom:10px; +.select-multiple-options-wrap .select-close { + cursor:pointer; + color:#999; + display:inline-block; + float:right; + font-size:18px; + line-height:1; + text-align:center; + height:20px; + width:20px; +} +.select-multiple .selected-counter { + background:#fff; + color:#999; + display:inline-block; + font-size:12px; + font-weight:bold; + padding:2px 5px 5px 10px; + position:absolute; + top:3px; + bottom:0; + right:25px; +} +.select-multiple-options { + list-style:none; + margin:0 auto; + padding:0; +} +.select-multiple-options li { + border-bottom:1px solid #e4e4e4; + cursor:pointer; + margin:0 !important; + padding:10px 10px 10px 38px; + position:relative; +} +.select-multiple-options li.active { + background:#f5f5f5; +} +.select-multiple-options li:after { + content:''; + display:block; + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAKCAYAAABv7tTEAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDAxRDg0NzcxQjdEMTFFMUE1RjVCOUQyODJGQTNDMEMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDAxRDg0NzgxQjdEMTFFMUE1RjVCOUQyODJGQTNDMEMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEMDFEODQ3NTFCN0QxMUUxQTVGNUI5RDI4MkZBM0MwQyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEMDFEODQ3NjFCN0QxMUUxQTVGNUI5RDI4MkZBM0MwQyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv02V7QAAABZSURBVHjalM5BDoAwCATAfUXj/7/Dbzx43QppCW0U5bAh0AwUJPEnItIA8K4lcCqyFMFlfRXo3B/m4AsY8n8GmIF56dhhBgyNzREyA44e4CtYUIQZ0HQBBgCyITMDEAMA1AAAAABJRU5ErkJggg==) no-repeat 0 0; + height:10px; + width:13px; + position:absolute; + top:15px; + left:15px; + opacity:0.2; +} +.select-multiple-options li.active:after { + opacity:1; +} +.select-multiple-options li:last-child { + border-bottom:none; +} +.select-multiple-options li + li { + border-top:1px linear #fff; } +.pager select { width:auto; } + +a.btn-remove, + .btn-remove2 { background:url(../images/btn_remove.png) no-repeat center; display:inline-block; overflow:hidden; text-indent:-100%; height:25px; width:25px; } +a.link-edit { background:url(../images/btn_edit.png) no-repeat left; display:inline-block; font-size:11px; font-weight:normal; line-height:18px; padding:0 0 0 23px; } + +.reward-message, +.messages .note-msg, +.messages .error-msg, +.messages .notice-msg, +.messages .success-msg { background:#444; color:#fff; padding:10px; text-shadow:0 1px 0 #111; } + .no-display { display:none; } .nobr { white-space:nowrap; } +.window-overlay { display:none; } + +.map-popup, +.popup-block, +.remember-me-popup { + background:#fcfcfc; + position:absolute; + left:15px !important; + right:15px !important; + margin:-18px 0 0; + padding:15px; + -webkit-box-shadow:0 2px 6px rgba(0, 0, 0, .25); + -moz-box-shadow:0 2px 6px rgba(0, 0, 0, .25); + box-shadow:0 2px 6px rgba(0, 0, 0, .25); +} +.popup-block { background:#fff; display:none; position:fixed; top:50%; left:50%; margin:-60px 0 0 -140px; width:250px; } +.popup-block .form-list { margin:0 0 15px; } +.popup-block .block-title { display:none; } +.popup-block .buttons-set button { display:inline-block !important; margin-right:1px !important; width:49% !important; } +.popup-block.active { display:block; } + +.map-popup-close { float:right; } +.map-popup-heading { margin:0 0 10px; } + +.remember-me-popup-body { line-height:20px; } +.remember-me-popup-close { + background:#fff; + border:1px solid #e4e4e4; + color:#424242; + display:block; + margin:15px auto 0; + text-align:center; + font-weight:bold; + font-variant:small-caps; + text-transform:lowercase; + text-shadow:0 -1px 0 #eee; + padding:5px 10px; + width:100px; + -webkit-box-shadow:0 1px 2px rgba(0, 0, 0, .1); + -moz-box-shadow:0 1px 2px rgba(0, 0, 0, .1); + box-shadow:0 1px 2px rgba(0, 0, 0, .1); } + +#remember-me-box a { font-weight:bold; border-bottom:1px dashed; } + /* Header -----------------------------*/ body > header { - background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#999999), color-stop(50%,#504f50), color-stop(51%,#282728), color-stop(100%,#110f0f)); - background-image:-webkit-linear-gradient(top, #999999 0%,#504f50 50%,#282728 51%,#110f0f 100%); - background-image:-o-linear-gradient(top, #999999 0%, #504f50 50%,#282728 51%, #110f0f 100%); - background-color:#222; + background:url(../images/bg_gradient.png) repeat-x 0 0; /* Theme color1 */ box-sizing:border-box; display:table; - padding:5px; position:relative; width:100%; - -webkit-box-shadow:0 3px 3px rgba(0, 0, 0, 0.25); - box-shadow:0 3px 3px rgba(0, 0, 0, 0.25); - z-index:100; - height:34px; + height:45px; + z-index:102; -webkit-user-select:none; -webkit-transform:translate3d(0, 0, 1px); -webkit-transform-style:preserve-3d; @@ -107,89 +280,25 @@ body > header.no-shadow { box-shadow:none; } -.cart-wrap { - background:#111; - position:absolute; - top:0; - left:0; - right:0; - padding:2px; - z-index:99; - visibility:hidden; - -webkit-box-shadow:0 0 5px rgba(0, 0, 0, 0.5); - box-shadow:0 0 5px rgba(0, 0, 0, 0.5); - -webkit-transform:translate3d(0, -100%, 0); -} -.cart-wrap:after { - content:''; - display:block; - position:absolute; - margin-top:44px; -} - -.cart-wrap .cart-shared { - margin:0; -} - -.cart-wrap.animate { - -webkit-backface-visibility:hidden; - -webkit-transition:-webkit-transform 300ms ease-out; -} - -.cart-wrap.cart-short .cart-wrap-content #discount-coupon-form, -.cart-wrap.cart-short .cart-wrap-content .cart-footer { - display:none; -} - -.cart-wrap-content { - background:#fefefe; - color:#222; - padding:5px 10px 0; - overflow:hidden; - position:relative; - z-index:1; - -webkit-box-shadow:inset 0 0 3px rgba(0, 0, 0, 0.25); - box-shadow:inset 0 0 3px rgba(0, 0, 0, 0.25); -} - -.cart-wrap-content .page-title { - background:none; - border:none; - margin:0 -10px 0; - -webkit-box-shadow:none; - box-shadow:none; -} - -.cart-wrap-content .cart-empty { - text-align:center; - padding-bottom:5px; -} +.global-site-notice { -webkit-transform:translate3d(0, 0, 1px); } -.cart-wrap-content .breadcrumbs, -.cart-wrap-content .messages { - display:none; -} +.cart-empty { padding:15px; } -.cart-wrap-content .cart-shared .cart-table { - margin:0; +.header-bg { + background:url(../images/custom/bg_header.png) no-repeat center #fff; + height:45px; + -webkit-user-select:none; + -webkit-transform:translate3d(0, 0, 1px); + -webkit-transform-style:preserve-3d; + -webkit-tap-highlight-color:rgba(0,0,0,0); + -webkit-touch-callout:none; } -.cart-wrap-content .cart-footer .checkout-types li button { - padding:5px 10px; -} +.header-bg .header-logo { background:url(../images/custom/bg_logo.png) no-repeat 0 0; display:block; height:45px; position:absolute; width:100%; } -body > header .store-logo, body > header .menu-wrapper { - display:table-cell; - vertical-align:middle; - width:70%; -} -body > header .store-logo { - width:30%; -} - -body > header .store-logo img { - height:34px; + display:table; + width:100%; } body > header .menu-wrapper { @@ -197,26 +306,25 @@ body > header .menu-wrapper { } body > header dl { - display:table; - float:right; - background:rgba(0,0,0,0.2); - border:1px solid #666; - border-radius:5px; - white-space:nowrap; + display:table-cell; + min-width:100px; + width:100px; + vertical-align:top; } body > header dt, body > header dd { - display:inline-block; + display:block; } +body > header dt { background:url(../images/bg_divider.png) no-repeat right; float:left; padding:0 1px 0 0; height:45px; text-indent:-100%; width:49px; } + body > header dd { position:absolute; top:0; left:0; padding:10px; white-space:normal; - width:100%; margin-top:44px; visibility:hidden; -webkit-box-sizing:border-box; @@ -228,151 +336,98 @@ body > header dd { body > header dd { -webkit-transform:translate3d(0, -100%, -1px); } } -body > header dd.search-box { - background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333), to(#000)); - background-image:-o-linear-gradient(top, #333 0%, #000 100%); - background-color:#333; - border-top:1px solid #666; - padding:7px 5px; - -webkit-transition:-webkit-transfrom 300ms linear; +body > header .search { + display:table-cell; + padding:5px 15px; + vertical-align:middle; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-results-button, +input[type="search"]::-webkit-search-results-decoration { + display: none; } -body > header dd.search-box input { +body > header .search input { + background:url(../images/i_search.png) no-repeat 8px 6px #fff; border:none; + box-sizing:border-box; + color:#949494; outline:none; - background:url(../images/search_icon.png) no-repeat 8px 7px #fff; - -webkit-background-size:14px 14px; - background-size:14px 14px; - -webkit-background-origin:padding-box; - background-origin:padding-box; - padding:5px 10px 5px 25px; + font-size:18px; + line-height:1; margin:0; + padding:4px 5px 4px 30px; width:100%; - border-radius:14px; - -webkit-box-sizing:border-box; - box-sizing:border-box; - -webkit-border-radius:14px; - border-radius:14px; + + border-radius:15px; + -webkit-appearance:none; - -webkit-box-shadow:inset 0 1px 3px #000; - box-shadow:inset 0 1px 3px #000; + appearance:none; + + -webkit-box-shadow:inset 0 1px 1px #555; + -moz-box-shadow:inset 0 1px 1px #555; + box-shadow:inset 0 1px 1px #555; } -body > header dt a { - color:#fff; - text-decoration:none; - display:inline-block; - line-height:32px; - padding:0 25px; +.search-autocomplete { + background:#333; } - -body > header dt.active a, -body > header dt.active span:first-child { - background-color:#333; - border:solid #666; - border-width:1px 1px 0; - margin:-1px -1px -8px; - padding:1px 25px 8px; - position:relative; - line-height:30px; - border-top-left-radius:5px; - border-top-right-radius:5px; - -webkit-background-clip:padding-box; - background-clip:padding-box; +.search-autocomplete li { + color:#fff; + font-size:14px; + padding:5px; } +.search-autocomplete li + li { border-bottom:1px solid #999; } +.search-autocomplete .amount { background:#fff; border-radius:15px; color:#111; display:inline-block; font-size:8px; margin-right:10px; padding:0 5px; vertical-align:middle; } -body > header dt.search > a { - background-image:url(../images/i_menu_search.png); - background-position:18px 10px; - background-repeat:no-repeat; - text-indent:-999em; -} +body > header dt a {} -body > header dt.cart:before, -body > header dt.cart:after { - content:''; - display:inline-block; - vertical-align:middle; - height:20px; - width:1px; - background:#666; -} +body > header dt.cart-icon { position:relative; white-space:nowrap; overflow:hidden; } +body > header dt.cart-icon > a { background:url(../images/i_cart.png) no-repeat center; display:block; height:45px; } -body > header dt.cart { - position:relative; -} +body > header dt.menu > a { background:url(../images/i_menu.png) no-repeat center; display:block; height:45px; position:relative; } -body > header dt.cart > span:first-child { - display:inline-block; - line-height:32px; - width:50px; - background-image:url(../images/i_menu_cart.png); - background-position:center 10px; - background-repeat:no-repeat; - text-indent:-999em; -} -body > header dt.active span:first-child { - margin:-1px -6px -7px; - padding:0 30px 7px; - width:0; -} +body > header dt.cart-icon.active > a, +body > header dt.menu.active > a { background-color:rgba(0, 0, 0, .10); } -body > header dt.cart > span:nth-child(2), +body > header dt.cart-icon > span:nth-child(2), body > header .badge { - background-image:-webkit-gradient( - linear, - 0 0, - 0 100%, - color-stop(1, #af0002), - color-stop(0.62, #e1262f), - color-stop(0.6, #e75159), - color-stop(0, #f6bec1) - ); - background-image:-o-linear-gradient(top, #f6bec1 0%, #e75159 60%, #e1262f 62%, #af0002 100%); - border:2px solid #fff; - border-radius:15px; + background:none; display:inline-block; color:#fff; - font-size:14px; + height:auto; + font-size:12px; font-weight:bold; line-height:14px; - padding:0 4px 2px; position:absolute; - right:-5px; - top:-5px; - -webkit-box-shadow:0 3px 3px rgba(0, 0, 0, 0.5); - box-shadow:0 3px 3px rgba(0, 0, 0, 0.5); - -webkit-background-clip:padding-box; - background-clip:padding-box; + text-indent:0; + right:4px; + top:4px; z-index:100; + text-shadow:0 1px 0 #444; } + body > header dt.menu .badge { top:1px; right:5px; } -body > header dt.menu > a { - background-image:none; - text-shadow:0 -1px 0 rgba(0, 0, 0, 0.8); - font-size:12px; - font-weight:bold; - position:relative; -} - body > header dd.menu-box { - background:#000; - border-top:1px solid #666; - color:#fff; padding:0; -webkit-transition:-webkit-transfrom 300ms linear; + -webkit-box-shadow:3px 3px 3px rgba(0, 0, 0, .2); + -moz-box-shadow:3px 3px 3px rgba(0, 0, 0, .2); + box-shadow:3px 3px 3px rgba(0, 0, 0, .2); } -body > header dd.menu-box a { - background-image:-webkit-gradient(linear,0 0,0 100%,from(#333),to(#000)); - background-image:-o-linear-gradient(top, #333 0%, #000 100%); - border-bottom:2px solid #585858; - color:#fff; +body > header dd.menu-box a, +body > header dd.menu-box strong { + background-color:rgba(255, 255, 255, .92) !important; + color:#444444; + font-size:18px; padding:10px; display:block; } @@ -396,13 +451,8 @@ body > header dd.menu-box .badge { -webkit-box-shadow:0 3px 3px rgba(0, 0, 0, 0.5), inset 0 3px 3px rgba(255, 255, 255, 0.35); box-shadow:0 3px 3px rgba(0, 0, 0, 0.5), inset 0 3px 3px rgba(255, 255, 255, 0.35); } -body > header dd.menu-box .links a:hover { - -webkit-box-shadow:inset 0 8px 8px rgba(0, 0, 0, .75); - box-shadow:inset 0 8px 8px rgba(0, 0, 0, .75); -} body > header dd.menu-box .welcome-msg { - background:url(../images/bg_drop.jpg) repeat-x 0 0; border-bottom:2px solid #585858; font-weight:bold; padding:10px; @@ -465,7 +515,6 @@ body > nav ul { body > nav li { border-width:0 7px 0 7px; - -webkit-border-image:url(../images/bg_nav_brd_inactive.png) 0 7 0 repeat stretch; display:table-cell; text-align:center; text-shadow:0 1px 1px rgba(0, 0, 0, 0.8); @@ -501,7 +550,6 @@ body > nav span { body > nav .active { border-width:0 12px 0 12px; - -webkit-border-image:url(../images/bg_nav_brd.png) 0 13 0 13 stretch stretch; font-weight:bold; } @@ -511,76 +559,65 @@ body > nav .active a { text-shadow:0 1px 1px #ccc; } - -/* Search Block ------------------------------*/ -/* -.search-box { background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#f5f5f5)); margin:-5px 0 0; padding:8px 10px; } -.search-box span { background:#fff; border-radius:15px; display:inline-block; -webkit-box-shadow:inset 0 1px 3px rgba( 0, 0, 0, 0.5 ); position:relative; width:100%; } -.search-box input { background:url(../images/i_search.png) no-repeat 7px 5px; border:none; font-size:16px; padding-left:25px; width:100%; -webkit-appearance:none; } -*/ - - /* Footer -----------------------------*/ -body > footer { - background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f6f6f6), to(#fff)); - background-image:-o-linear-gradient(top, #f3f3f3 0%, #fff 100%); - min-height:100px; - padding:10px; -} - -body > footer { padding:10px; } -body > footer ul { - font-size:12px; - text-align:center; - } - body > footer ul li { - display:inline; - margin:0 2px; - } - body > footer ul li a { - display:inline-block; - padding:2px; - } - - -body > footer select { - background:url(../images/i_dropdown.png) no-repeat right #fefefe; - border:1px solid; - border-color:#e1e1e1; - border-radius:2px; - color:#333; - font-size:15px; - padding:3px 20px 3px 7px; - width:49%; +body > footer { min-height:100px; } +body > address.copyright { color:#fff; line-height:18px; padding:15px; } +body > address.copyright .logo { float:left; margin:0 10px 0 0; } +body > footer ul { line-height:27px; padding:10px 15px 0; overflow:hidden; } +body > footer ul + ul { padding:0 15px 10px; } +body > footer ul li { box-sizing:border-box; float:left; width:50%; } +body > footer ul li a { color:#fff; display:inline-block; padding:2px; } + +.block-subscribe { padding:10px 15px; } +.block-subscribe .block-title { display:none; } +.block-subscribe .form-subscribe-header { margin:0 0 5px; padding-left:12px; } +.block-subscribe .input-box { display:inline-block; vertical-align:top; width:60%; } +.block-subscribe .input-box input { border-radius:15px; border-color:#ccc; font-size:18px; padding:5px 10px; } +.block-subscribe .validation-advice { padding:10px 0 0 12px; width:150%; } +.block-subscribe .actions { display:inline-block; vertical-align:top; width:38%; } +.block-subscribe button { + border:none; + -webkit-border-radius:20px; + -moz-border-radius:20px; + border-radius:20px; + color:#fff; + font-size:18px; + padding:5px 10px; + vertical-align:top; + -webkit-appearance:none; - -webkit-box-sizing:border-box; + appearance:none; } -body > footer p { border-top:1px solid rgba(204, 204, 204, 0.3); color:#999; font-size:12px; margin:8px -10px 0; line-height:14px; padding:8px 10px 0; text-align:center; } - -.form-subscribe .form-subscribe-header { display:none; } /* Content -----------------------------*/ -body > section { border-bottom:1px solid #ccc; padding:0 10px 10px; } body > section:before, body > section:after { content: ""; display: table; } body > section:after { clear:both; } body > section img { max-width:100%; } body > section > .category-image { margin:0 -10px; } body > section > .category-image img { min-width:100%; } +body > section > .std, +body > section > form > .fieldset { margin:0; padding:15px; } +body > section > form > .buttons-set { padding:15px; } +body > section > form > .buttons-set p.required { font-size:10px; line-height:12px; margin:10px 0; text-align:right; } +body > section > form > .required { padding:15px; } +body > section > form > .fieldset h2 { color:#424242; font-size:18px; line-height:22px; margin:0 0 15px; } + +.front-banner { + text-align:center; +} +.page-sitemap { padding:15px; } +.page-sitemap .page-title { display:none; } /* Categories -----------------------------*/ .nav-wrap { overflow:hidden; - margin:0 -10px -10px; } #nav-container { - background:url(../images/nav_bg.png) repeat 0 0; overflow:hidden; - margin:0 0 -1px; padding:0 0 1px; position:relative; width:9000px; @@ -591,3238 +628,1472 @@ body > section > .category-image img { min-width:100%; } } #nav-container ul > li > ul { display:none; } #nav-container:after { content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0; } -#nav-container ul { font-size:16px; margin:0; width:100%; float:left; } -#nav-container li { border-top:1px solid #ccc; } -#nav-container li:last-child { border-top:1px solid #ccc; } -#nav-container li.subcategory-header { padding:10px; background:#E8E8E8; text-align:center; font-weight:bold; } -#nav-container li.subcategory-header .button-wrap { - float:left; - margin:-5px 10px 0; - position:absolute; +#nav-container ul { font-size:21px; margin:0; width:100%; float:left; } +#nav-container li.subcategory-header { background:url(../images/bg_gradient.png) repeat-x 0 0 #d9d9d9; height:28px; padding:6px 10px; text-align:center; font-weight:bold; } +#nav-container li.subcategory-header span { color:#414141; line-height:28px; } +#nav-container li.subcategory-header .button-wrap { float:left; position:absolute; } +#nav-container li.subcategory-header .button-wrap button { + background:url(../images/bg_back_btn.png) no-repeat right top; + border:none; + height:27px; + width:47px; + color:#fff; + display:inline-block; + font-size:11px; + font-weight:bold; + line-height:27px; + margin:0; + padding:0 0 0 7px; + position:relative; + z-index:3; + -webkit-appearance:none; + appearance:none; } #nav-container li a { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#eee)); - background:-o-linear-gradient(top, #fff 0, #eee 100%); + background-color:#fff !important; display:block; } #nav-container li a span { - background:url(../images/i_arrow_small.png) no-repeat right; + background:url(../images/custom/arrow.png) no-repeat right; display:block; - padding:10px; - -webkit-background-size:8px 12px; - background-size:8px 12px; + line-height:20px; + padding:10px 15px; -webkit-background-origin:content-box; - background-origin:content-box; + background-origin:content-box; } /* Form-list -----------------------------*/ -.form-list li { margin-bottom:8px; } -.form-list input.input-text, -.form-list input[type="text"], -.form-list input[type="password"], -.form-list input[type="email"] { - background:#fefefe; - border:1px solid; - border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; - border-radius:5px; - font-size:18px; - margin:0; - padding:5px; - width:100%; - -webkit-appearance:none; - -webkit-box-sizing:border-box; - box-sizing:border-box; - -webkit-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); - box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); -} +.form-list li { margin:0 0 15px; } +.form-list li:last-child { margin:0; } +.form-list label { color:#424242; display:block; font-weight:bold; margin:0 0 2px; } +.form-list label em { color:#f9721f; margin-right:2px; } +.form-list .field { margin:0 0 15px; } +.form-list .field:last-child { margin:0; } +.form-list .add-row .btn-remove { float:right; } +.form-list .add-row .btn-remove a { vertical-align:top; } +.form-list .control .input-box { vertical-align:top; } +.form-list .control .input-box, +.form-list .control label { display:inline-block; } +.form-list .control label { max-width:90%; } +.form-list .validation-advice { font-size:14px; padding:2px 0; } +.form-list img[src*="calendar.gif"] { position:absolute; padding:7px; } +.form-list input.datetime-picker { padding-left:30px; } +.form-list input[type="radio"] + label { display:inline-block; } .form-list input[type="text"]::-webkit-input-placeholder, .form-list input[type="password"]::-webkit-input-placeholder, .form-list input[type="email"]::-webkit-input-placeholder { color:#444; } -.form-list textarea { - border:1px solid; - border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; - border-radius:5px; - padding:5px; - font-size:18px; - height:100px; - width:100%; - resize:vertical; - -webkit-appearance:none; - -webkit-box-sizing:border-box; - box-sizing:border-box; - -webkit-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); - box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); -} -input[type="submit"] { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#dbdbdb)); - background:-o-linear-gradient(top, #fdfdfd 0%, #dbdbdb 100%); - border:1px solid #dbdbdb; - border-radius:10px; - font-size:16px; - font-weight:normal; - margin:0; - padding:8px 5px; - text-transform:small-caps; - text-shadow:0 0 1px #fff; - vertical-align:middle; - -webkit-appearance:none; - -webkit-box-shadow:0 1px 1px #8a8a8a; - box-shadow:0 1px 1px #8a8a8a; - -webkit-background-clip:padding-box; - background-clip:padding-box; -} +/*--------------------------*/ input[type="checkbox"] { background:url(../images/bg_checkbox.png) no-repeat 0 0; - border:1px solid; - border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; + border:1px solid #e4e4e4; border-radius:2px; - height:20px; margin:0 3px 0 0; - vertical-align:top; + height:20px; width:20px; + vertical-align:top; -webkit-appearance:none; } input[type="checkbox"]:checked { background-position:0 -19px; } -select, .select-multiple { - background:url(../images/i_dropdown.png) no-repeat right #fefefe; - border:1px solid; - border-color:#e1e1e1; - border-radius:2px; - color:#333; - font-size:15px; - padding:3px 30px 3px 7px; - -webkit-appearance:none; - -moz-appearance:none; - appearance:none; - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; + +/* Account +-----------------------------*/ +.account-login .col-1, +.account-login .col-2, +.account-create .fieldset, +.customer-account-forgotpassword .fieldset, +.customer-account-logoutsuccess .page-title + p { padding:15px; } +.account-login h2, +.account-login .legend, +.account-create .legend { color:#424242; font-size:18px; font-weight:bold; margin:0 0 15px; } +.account-login .legend + p { display:none; } +.account-login p.required, +.account-create p.required, +.customer-account-forgotpassword p.required { font-size:10px; line-height:12px; margin:10px 0 0; text-align:right; } +.account-create p.required, +.customer-account-forgotpassword p.required { padding:0 15px 15px; } + +.account-create .buttons-set, +.customer-account-forgotpassword .buttons-set { padding:0 15px 15px; } +.account-create .buttons-set .back-link, +.customer-account-forgotpassword .buttons-set .back-link { display:none; } + +.customer-account-forgotpassword .fieldset p { margin:0 0 10px; } + +/* Captcha +-----------------------------*/ +.captcha-image { position:relative; } +.captcha-image .captcha-img { border:1px solid #e1e1e1; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px; } +.captcha-reload { position:absolute; top:5px; left:0; padding:10px; } + +/* Breadcrumbs +-----------------------------*/ +.breadcrumbs { display:none; } +.product-tags-list .page-title h1, +.catalogsearch-result-index .page-title h1 { padding-right:55px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } +.catalogsearch-result-index .page-title h1 { padding-right:85px; } + +.page-title { + background-color:#fff !important; + color:#424242; + height:25px; + margin:0; + padding:10px 15px; } -.select-multiple { - max-width:100%; + +.page-title h1 { + font-size:18px; + line-height:25px; + text-align:left; overflow:hidden; - text-overflow:ellipsis; white-space:nowrap; - position:relative; + text-overflow:ellipsis; +} + +/* Catalog List +-----------------------------*/ +.category-description { display:none; margin:0; padding:10px; } + +.more { padding:15px 10px; text-align:center; } +.more-button { background:url(../images/bg_gradient.png) repeat-x #1394ca center; color:#fff; font-size:21px; line-height:25px; display:inline-block; padding:5px 25px; position:relative; vertical-align:top; } +.more-button.loading:before { background:url(../images/loader.gif) no-repeat center; background-size:24px 24px; content:''; display:inline-block; height:24px; width:24px; left:-30px; position:absolute; } + +.filters-block ol, +.filters-block li, +.filters-block dl, +.filters-block dt, +.filters-block dd { + margin:0; + padding:0; +} + +.filters-block-wrap {} + +.filters-block { color:#424242; margin:0; padding:10px 10px 15px; } +.filters-block dl { display:inline-block; vertical-align:top; width:49%; } + +@media(orientation:landscape) { + .filters-block dl { width:33%; } } -.select-multiple-wrap { + +.filters-block dt { color:#424242; font-weight:bold; margin:8px 0 0; } +.filters-block h3 { color:#424242; font-size:18px; line-height:20px; } +.filters-block .currently { color:#424242; } +.filters-block .actions { margin:0 0 18px; } +.filters-block .currently .block-subtitle { font-weight:bold; font-size:18px; line-height:20px; margin:5px 0 8px; } +.filters-block .currently .btn-remove { height:20px; width:20px; vertical-align:top; } +.filters-block .currently li { line-height:20px; } +.filters-block dd {} +.filters-block ol { list-style:none; line-height:17px; width:99%; } +.filters-block li { padding:9px 0; } +.filters-block a { color:#1394ca; font-weight:bold; } + +.toolbar { + font-size:12px; + padding:7px 5px 3px; + height:35px; + overflow:hidden; + text-align:right; position:relative; + top:-45px; + margin:0 0 -45px; } -.select-multiple-options-wrap { - background:#fefefe; - border:1px solid #a2a2a2; - border-radius:2px; - position:absolute; - top:0; - left:0; - right:0; - visibility:hidden; - -webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.35); - box-shadow:0 0 3px rgba(0, 0, 0, 0.35); - -webkit-tap-highlight-color:rgba(0,0,0,0); - z-index:1; +.toolbar .pager, +.toolbar .pager .amount, +.toolbar .pager .pages, +.toolbar .limiter { + float:right; } -.select-multiple-options-wrap .select-heading { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#d4d4d4)); - background:-o-linear-gradient(top, #eee 0%, #d4d4d4 100%); - border-bottom:1px solid #a2a2a2; - color:#444; +.toolbar .amount, +.toolbar .view-mode { + line-height:23px; + padding:0 4px; +} +.toolbar .view-mode label { font-weight:bold; - font-size:13px; - text-transform:uppercase; - text-shadow:0 1px 0 #fff; - padding:5px; - white-space:nowrap; - overflow:hidden; - text-overflow:ellipsis; + position:relative; + top:1px; + vertical-align:middle; } -.select-multiple-options-wrap .select-close { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#bbb)); - background:-o-linear-gradient(top, #eee 0%, #bbb 100%); - border:1px solid #a2a2a2; - cursor:pointer; - color:#222; - -webkit-border-radius:4px; - -moz-border-radius:4px; +.toolbar .pager { display:none; } +.toolbar .pager .pages strong { + margin-right:5px; + vertical-align:middle; +} +.toolbar .pager .pages select +.toolbar .limiter select { + background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#dedede)); + background:-o-linear-gradient(top, #fff 0%, #dedede 100%); + border:1px solid #bbb; border-radius:4px; + color:#707070; + margin:0; + padding:5px 10px; font-size:12px; - display:inline-block; - margin-right:8px; - line-height:20px; - text-align:center; - height:20px; - width:20px; - -webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow:0 1px 2px rgba(0, 0, 0, 0.05); + line-height:17px; + vertical-align:middle; + -webkit-box-shadow:0 0 5px rgba(0, 0, 0, 0.15); + box-shadow:0 0 5px rgba(0, 0, 0, 0.15); + -webkit-background-clip:padding-box; + background-clip:padding-box; } -.select-multiple .selected-counter { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#ebebeb), to(#fff)); - background:-o-linear-gradient(top, #ebebeb 0%, #bbb 100%); - border-left:1px solid #c2c2c2; - color:#4d4d4d; - display:inline-block; - font-size:12px; - font-weight:bold; - line-height:23px; - text-shadow:0 1px 0 #fff; - padding:0 8px; - position:absolute; - top:0; - bottom:0; - right:25px; +.toolbar .limiter select { + vertical-align:baseline; } -.select-multiple .selected-counter:before { - background:-webkit-gradient(linear, 0 0, 100% 0, color-stop(0.05, rgba(255, 255, 255, 0.5)), color-stop(1, rgb(255, 255, 255))); - content:''; +.toolbar .sort-by-wrap { position:absolute; - left:-41px; - top:0; - bottom:0; - width:40px; + top:7px; + right:5px; } -.select-multiple-options { - list-style:none; - margin:0 auto; - padding:0; +.toolbar .sort-by select { + background:none; + border:none; + margin:0; + padding:4px 5px 5px; + opacity:0; + width:50px; + max-width:50px; + vertical-align:middle; } -.select-multiple-options li { - border-bottom:1px solid #ccc; - cursor:pointer; +.toolbar .sort-by > label { + background:url(../images/bg_gradient.png) repeat-x 0 0 #4c4c4c; + background-size:1px 30px; + color:#fff; + display:inline-block; + font-size:14px; + font-weight:bold; + line-height:30px; + padding:0 11px; + text-align:center; + vertical-align:middle; + width:28px; + -webkit-border-radius:5px; + -moz-border-radius:5px; + border-radius:5px; + -webkit-box-shadow:0 0 5px rgba(0, 0, 0, 0.15); + box-shadow:0 0 5px rgba(0, 0, 0, 0.15); +} + +.toolbar .order { + background:url(../images/bg_gradient.png) repeat-x 0 0 #4c4c4c; + background-size:1px 30px; + display:inline-block; + vertical-align:top; + border-radius:5px; + vertical-align:top; + text-align:center; margin:0; - padding:5px 5px 5px 33px; position:relative; - -webkit-transition:background 300ms linear; + line-height:30px; + height:30px; + width:30px; + text-indent:-999em; + -webkit-box-shadow:0 0 5px rgba(0, 0, 0, 0.15); + box-shadow:0 0 5px rgba(0, 0, 0, 0.15); } -.select-multiple-options li:after { +.toolbar .order:after { content:''; - display:block; - background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAKCAYAAABv7tTEAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDAxRDg0NzcxQjdEMTFFMUE1RjVCOUQyODJGQTNDMEMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDAxRDg0NzgxQjdEMTFFMUE1RjVCOUQyODJGQTNDMEMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEMDFEODQ3NTFCN0QxMUUxQTVGNUI5RDI4MkZBM0MwQyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEMDFEODQ3NjFCN0QxMUUxQTVGNUI5RDI4MkZBM0MwQyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv02V7QAAABZSURBVHjalM5BDoAwCATAfUXj/7/Dbzx43QppCW0U5bAh0AwUJPEnItIA8K4lcCqyFMFlfRXo3B/m4AsY8n8GmIF56dhhBgyNzREyA44e4CtYUIQZ0HQBBgCyITMDEAMA1AAAAABJRU5ErkJggg==) no-repeat 0 0; - height:10px; - width:13px; position:absolute; - top:9px; - left:10px; - opacity:0.2; -} -.select-multiple-options li.active:after { - opacity:1; + top:10px; + z-index:2; + font-size:0; + line-height:0; + width:0; } -.select-multiple-options li:last-child { - border-bottom:none; +.toolbar .order.asc:after { + border-left:5px solid transparent; + border-right:5px solid transparent; + border-bottom:10px solid #fff; + right:10px; } -.select-multiple-options li + li { - border-top:1px linear #fff; +.toolbar .order.desc:after { + border-left:5px solid transparent; + border-right:5px solid transparent; + border-top:10px solid #fff; + right:10px; } -.select-multiple-options .active { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#e5e5e5)); -} -input[type="text"] { - background:#fefefe; - border:1px solid; - border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; - border-radius:2px; - font-size:18px; - margin:0; - padding:5px; - width:100%; - -webkit-appearance:none; - -webkit-box-sizing:border-box; - box-sizing:border-box; - -webkit-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); - box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); -} - -.send-friend { - display:block; - border:1px solid #D1D1D1; - margin:3px -7px -7px; - padding:9px; - border-radius:2px 2px 5px 5px; - background:-webkit-gradient(linear, 0 0, 0 100%,color-stop(0, #FCFDFD), color-stop(0.8, #EEEEEE), color-stop(1, #E8E9E9)); - background:-o-linear-gradient(top, #FCFDFD 0%, #eee 80%, #E8E9E9 100%); -} - -.send-friend h2 { - font-size:16px; line-height:16px; font-weight:bold; margin:0 0 5px; color:#333; -} - -.send-friend label { - display:block; - font-size:14px; - padding:0 0 3px; - font-weight:bold; - color:#5E5E5E; -} - -.send-friend label em { - display:none; -} - -.send-friend textarea { - border:1px solid; - border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; - border-radius:5px; - padding:5px; - font-size:18px; - height:100px; - width:100%; - -webkit-appearance:none; - -webkit-box-sizing:border-box; - box-sizing:border-box; - -webkit-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); - box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); -} - -.send-friend .field { - margin:0 0 6px; +.toolbar a { + color:#707070; } -.send-friend .additional-row { - border-top:1px solid #ccc; +.c-list > li { + background-color:#fff !important; + color:#424242; position:relative; - margin:16px 0 0; - padding:10px 0 0; -} - -.send-friend .sender-fieldset { - padding-top:10px; -} - -.send-friend #add_recipient_button { - float:right; -} - -.send-friend .btn-remove { - position:absolute; - top:31px; - right:0; -} - -#add_recipient_button button, -.send-friend .btn-remove { - font-family:Arial; - margin:0; - padding:3px 6px; - border:1px solid #CECECE; - border-radius:2px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#FEFEFE), to(#EEE)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - text-transform: small-caps; - color:#333; - font-size:24px; - line-height:20px; - text-shadow:0 1px 0 #fff; - -webkit-box-shadow:0 0 5px #ccc; - box-shadow:0 0 5px #ccc; -} - -.send-friend .btn-remove { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#e4776f), to(#d83a2e)); - background:-o-linear-gradient(top, #e4776f 0%, #d83a2e 100%); - color:#fff; - border:none; - border-left:1px solid #ccc; - border-radius:0 5px 5px 0; - padding:5px 8px 8px; - text-shadow:0 1px 0 #333; - -webkit-box-shadow:none; - box-shadow:none; - width:initial; - height:initial; -} - -.send-friend button[type="submit"] { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - padding:5px 20px; - font-size:14px; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; -} - -#max_recipient_message { - padding:10px 0; - font-size:16px; - font-weight:bold; -} - -/* Account Create ------------------------------*/ -.account-create h2 { - font-size:16px; - font-weight:bold; - margin:0 0 4px; -} -.account-create .form-list label { - font-weight:bold; -} -.account-create .form-list label em { - display:none; -} -.account-create .form-list .control .input-box { - display:inline-block; - vertical-align:middle; + border-bottom:1px solid #ebe9eb; } - -/* Account ------------------------------*/ -.login-box { margin:0 -10px -10px; padding:10px; } -.login-box form h2, -.login-box .new-users h2 { font-size:16px; line-height:16px; font-weight:bold; margin:0 0 10px; color:#333; } -.login-box form { +.c-list > li:last-child { display:block; border-bottom:none; } +.c-list > li > a { + background:url(../images/custom/arrow.png) no-repeat right; + -webkit-background-origin:content-box; + background-origin:content-box; + color:#2f2f2f; display:block; - border:1px solid #D1D1D1; - margin:-6px -7px -7px; - padding:9px; - border-radius:2px 2px 5px 5px; - background:-webkit-gradient(linear, 0 0, 0 100%,color-stop(0, #FCFDFD), color-stop(0.8, #eee), color-stop(1, #E8E9E9)); - background:-o-linear-gradient(top, #FCFDFD 0%, #eee 80%, #E8E9E9 100%); -} -.login-box form:after { content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0; } -.login-box form label { display:block; padding:0 0 3px; font-weight:bold; color:#5E5E5E; } -.login-box form > a { font-weight:bold; color:#F4641E; } -.login-box form .login-button { margin:7px 0 0; } -.login-box form .login-button input { - padding:5px 20px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - font-size:14px; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9f9f9f; - box-shadow:0 3px 3px 0 #9f9f9f; - -webkit-background-clip:padding-box; - background-clip:padding-box; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -.login-box .required { font-size:12px; line-height:16px; margin:8px 0 0; } -.login-box .registered-users { margin:0 0 10px; } -.login-box .registered-users input[type="submit"] + a { text-decoration:underline; vertical-align:middle; } -.login-box .registered-users h1 { display:none; background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); border:solid #999; border-width:1px 0; border-top-color:#ccc; text-shadow:0 1px 0 #fff; margin:0 -10px 10px; padding:10px; -webkit-box-shadow:0 3px 3px #eee; box-shadow:0 3px 3px #eee; } -.login-box .new-users { display:block; border:1px solid #D1D1D1; margin:-6px -7px -7px; padding:9px; border-radius:2px 2px 5px 5px; background:-webkit-gradient(linear, 0 0, 0 100%,color-stop(0, #FCFDFD), color-stop(0.8, #EEEEEE), color-stop(1, #E8E9E9)); } -.login-box .new-users p { padding:9px 0 0; } -.login-box .new-users input[type="submit"] { - padding:5px 20px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - font-size:14px; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -.customer-account-login .messages { margin:-10px -10px 10px; } -.customer-account-login .messages .error-msg { - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#f85032), color-stop(50%,#f16f5c), color-stop(51%,#f6290c), color-stop(71%,#f02f17), color-stop(100%,#e73827)); - background:-o-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #f02f17 71%, #e73827 100%); - color:#fff; padding:10px; - font-size:16px; - font-weight:bold; - text-align:center; - text-shadow:0 1px #222; - -webkit-box-shadow:none; - box-shadow:none; + -webkit-user-select:none; + user-select:none; + -webkit-touch-callout:none; + touch-callout:none; + -webkit-tap-highlight-color:rgba(0,0,0,0); } -.customer-account-logoutsuccess .page-title { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); - background:-o-linear-gradient(top, #fff 0%, #ccc 100%); - border:solid #999; - border-width:1px 0; - border-top-color:#ccc; - margin:0 -10px 10px; - padding:10px; +.c-list > li > a:after { + content:"."; + display:block; + clear:both; + visibility:hidden; + line-height:0; + height:0; } +.c-list h1 { font-size:16px; line-height:20px; font-weight:bold; } +.c-list .cloned-wrap { position:absolute; padding:10px; opacity:0; } +.c-list .cloned-wrap .product-image img { -webkit-box-shadow:none; box-shadow:none; } +.c-list .product-image { float:left; margin-right:10px; -webkit-transform:translate3d(0,0,0); } +.c-list .product-shop { overflow:hidden; padding:0 30px 0 0; } +.c-list .product-shop h1 { font-weight:bold; text-align:left; margin:0 0 7px; } +.c-list .product-shop .price-box { margin:0 0 5px; } -#remember-me-box a { font-weight:bold; border-bottom:1px dashed; } -#remember-me-box label { display:inline; margin-right:10px; } -#remember-me-popup { - background-position:top center; - background-image:-webkit-gradient(radial, center -99%, 125, center -99%, 200, from(#fff), to(#0c1e4d)); - border:2px solid rgba(255, 255, 255, 0.95); - border-radius:7px; - font-size:14px; - color:#fff; - font-weight:bold; - position:absolute; - top:50%; left:50%; - margin:-25% 0 0 -120px; - padding:10px; - width:220px; - text-shadow:0 -1px 1px rgba(0, 0, 0, 0.8); - -webkit-box-shadow:0 2px 14px rgba(0, 0, 0, 0.5); - box-shadow:0 2px 14px rgba(0, 0, 0, 0.5); - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -#remember-me-popup h3 { margin-bottom:5px; text-align:center; } -#window-overlay, -.remember-me-popup-close { display:none; } -.remember-me-popup-body .remember-me-popup-close-button { text-align:center !important; } -.remember-me-popup-body .remember-me-popup-close { - background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #757d90), color-stop(50%, #343f5c), color-stop(51%, #162344), color-stop(100%, #232f4e)); - color:#fff; - border:1px solid #131e3a; - border-radius:5px; - display:inline-block; - margin:10px 0 0; - padding:5px 15px; - text-align:center !important; - -webkit-box-shadow:0 1px 0 rgba(255, 255, 255, 0.25), inset 0 1px 0 rgba(0, 0, 0, 0.75); - box-shadow:0 1px 0 rgba(255, 255, 255, 0.25), inset 0 1px 0 rgba(0, 0, 0, 0.75); - -webkit-background-clip:padding-box; - background-clip:padding-box; +.to-cart-animate { + -webkit-animation:bounce-rotate 200ms infinite } -/* Forgot password ------------------------------*/ -.forgot-password { margin:-10px; padding:10px; color:#333; } -.forgot-password h1 { - background: -webkit-gradient(linear, 0 0, 0 100%, from(white), to(#CCC)); - background:-o-linear-gradient(top, #fff 0%, #ccc 100%); - border: solid #999; - border-top-color: #CCC; - text-shadow: 0 1px 0 white; - margin:0 -10px; - padding: 10px; - -webkit-box-shadow: 0 3px 3px #eee; - box-shadow: 0 3px 3px #eee; - border-width: 1px 0; -} -.forgot-password a { float:left; font-size:12px; } -.forgot-password h2 { font-size:16px; font-weight:bold; padding:0 0 0 5px; margin:0 0 7px; } -.forgot-password label { padding:0 0 0 5px; font-weight:bold; } -.forgot-password input[type="email"] { - background:#fefefe; - border:1px solid; - border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; - border-radius:2px; - font-size:18px; - margin:3x 0 8px; - padding:5px; - width:100%; - -webkit-appearance:none; - -webkit-box-sizing:border-box; - box-sizing:border-box; - -webkit-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); - box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); -} -.forgot-password form { display:block; border:1px solid #D1D1D1; margin:3px -7px -7px; padding:9px 9px 30px; border-radius:2px 2px 5px 5px; background:-webkit-gradient(linear, 0 0, 0 100%,color-stop(0, #FCFDFD), color-stop(0.8, #EEEEEE), color-stop(1, #E8E9E9)); } -.forgot-password form:after { content: "."; display:block; clear:both; visibility:hidden; line-height:0; height:0; } -.forgot-password input[type="submit"] { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - margin:5px 0 0; - padding:5px 20px; - font-size:14px; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); +.drop-start { -webkit-transform:scale(1.2); opacity:0.9; } + +@-webkit-keyframes bounce-rotate { + 0% { -webkit-transform:rotate(3deg) skew(1deg) scale(1.2); } + 25% { -webkit-transform:rotate(0) skew(0) scale(1.2); } + 50% { -webkit-transform:rotate(-3deg) skew(-1deg) scale(1.2); } + 75% { -webkit-transform:rotate(0) skew(0) scale(1.2); } + 100% { -webkit-transform:rotate(3deg) skew(1deg) scale(1.2); } } -/* New Customer ------------------------------*/ -.new-customer { margin:0 -10px -10px; padding:10px; color:#333; } -.new-customer h1 { background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); background:-o-linear-gradient(top, #fff 0%, #ccc 100%); border:solid #999; border-width:1px 0; border-top-color:#ccc; text-shadow:0 1px 0 #fff; margin:0 -10px 10px; padding:10px; -webkit-box-shadow:0 3px 3px #eee; box-shadow:0 3px 3px #eee; } -.new-customer h2 { font-size:16px; line-height:16px; font-weight:bold; margin:0 0 7px 0; color:#333; } -.new-customer form { display:block; border:1px solid #D1D1D1; margin:-6px -7px -7px; padding:9px; border-radius:2px 2px 5px 5px; background:-webkit-gradient(linear, 0 0, 0 100%,color-stop(0, #FCFDFD), color-stop(0.8, #EEEEEE), color-stop(1, #E8E9E9)); background:-o-linear-gradient(top, #FCFDFD 0%, #eee 80%, #E8E9E9 100%); } -.new-customer form:after { content: "."; display:block; clear:both; visibility:hidden; line-height:0; height:0; } -.new-customer form label { font-weight:bold; } -.new-customer form label em { display:none; } -.new-customer .personal-information { border-bottom:1px solid #ccc; padding:0 0 10px; } -.new-customer .personal-information .field { margin-bottom:8px; } -.new-customer .login-information { border-top:1px solid #fff; padding-top:10px; } -.new-customer .login-information input[type="submit"], -.new-customer .login-information > a { padding:5px 20px; background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); font-size:14px; color:#FFF; border:1px solid #FFF; border-radius:5px; -webkit-box-shadow:0 3px 3px 0 #9F9F9F; box-shadow:0 3px 3px 0 #9F9F9F; text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); } -.new-customer .login-information input[type="submit"] { margin:0; } -.new-customer .login-information > a { float:left; display:block; } - -/* Edit Account Settings +/* Product Info Box -----------------------------*/ -.account-edit {} -/* Breadcrumbs ------------------------------*/ -.breadcrumbs { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#e5e5e5)); - background:-o-linear-gradient(top, #fff 0%, #e5e5e5 100%); - border-bottom:1px solid #ccc; - height:40px; - margin:0 -10px 0; -} -.breadcrumbs ul { padding:10px; line-height:20px; position:relative; } -.breadcrumbs ul a { color:#666; } -.breadcrumbs ul span, -.breadcrumbs ul li[class*="category"] { display:none; } -.breadcrumbs ul li.home, -.catalog-product-view .breadcrumbs li:nth-last-child(2), -.catalog-category-view .breadcrumbs li:nth-last-child(2), -.review-product-list .breadcrumbs li:nth-last-child(2) { display:none; top:7px; left:20px; position:absolute; } -.breadcrumbs ul li:last-child { display:block; font-size:16px; font-weight:bold; text-align:center; text-shadow:0 1px 0 #fff; margin:0 auto; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; width:50%; } - -/* Back Button ------------------------------*/ -#nav-container li.subcategory-header .button-wrap:before { - content:''; - background:url(../images/bg_button.png) no-repeat left top; - -webkit-background-size:100px 28px; - background-size:100px 28px; - height:28px; - width:28px; - position:absolute; - top:0; - left:-13px; - z-index:2; -} -#nav-container li.subcategory-header button { - color:#2f2f2f; - background:url(../images/bg_button.png) no-repeat right top; - background-size:100px 28px; - display:inline-block; - font-size:11px; - text-shadow:0 1px 0 rgba(255, 255, 255, 0.5); - line-height:15px; - margin:0 ; - padding:6px 9px 7px 2px; - position:relative; - border:none; - font-weight:bold; - z-index:3; - -webkit-appearance:none; - max-width:50px; - overflow:hidden; - white-space:nowrap; - text-overflow:ellipsis; -} +.price-box .price-including-tax, +.price-box .price-excluding-tax { display:block; } +.price-box .price-including-tax .price { font-weight:bold; } + +.product-view {} +.product-view .product-name h1 { color:#424242; font-size:18px; font-weight:bold; text-align:left; line-height:20px; margin:0 0 9px; } +.product-view .product-image-wrap { padding:10px; position:relative; } +.product-view .product-image { position:relative;; } +.product-view .product-image li { text-align:center; } +.product-view .product-image li a { display:block; } + +.product-view .product-image-wrap img { position:relative; } +.product-view .product-image-wrap img.cloned { position:absolute; top:10px; left:50%; margin:0 0 0 -72px; -webkit-transition:all ease-in 400ms; -moz-transition:all ease-in 400ms; -o-transition:all ease-in 400ms; transition:all ease-in 400ms; } +.product-view .product-image-wrap img.animate { z-index:101; } + +.product-view .product-shop { padding:15px; } +.product-view .product-shop .buttons-set { margin:10px 0 0; } +.product-view .product-shop .product-main-info .price-box { color:#424242; font-size:18px; line-height:26px; margin:10px 0; } +.product-view .product-shop .product-main-info .price-box-bundle .price-box {} +.product-view .product-shop .product-main-info .item-options { margin:10px 0 0; } +.product-view .product-shop .product-main-info .item-options dt { color:#424242; font-style:15px; font-weight:bold; } +.product-view .product-shop .product-main-info + .options-container-small { margin:15px 0 0; } + +.product-view .product-shop .availability { color:#424242; font-size:13px; font-weight:bold; margin:0 0 9px; } +.product-view .product-shop .availability span { font-weight:normal; } +.product-view .product-shop .tier-prices { margin:10px 0; } + +.product-view .product-shop .add-to-box {} +.product-view .product-shop .add-to-box .qty, +.product-view .product-shop .add-to-box label { display:none; } +.product-view .price-box .price-label { vertical-align:baseline; } +.product-view .price-box .old-price { color:#ccc; } +.product-view .price-box .special-price .price-label { color:#222; } +.product-view .price-box .special-price .price { font-weight:bold; } + +.product-view .add-to-cart label[for="qty"], +.product-view .add-to-cart input.qty { display:none; } + +.product-view .product-img-box .product-image:before { background:url(../images/i_zoom.png) no-repeat 0 0; content:''; display:block; position:absolute; top:15px; right:25px; height:14px; width:14px; } +.product-view .product-img-box .controls .prev, +.product-view .product-img-box .controls .next { height:auto; top:40px; bottom:40px; width:auto; z-index:101; } +.product-view .product-img-box .controls .prev { left:0; right:80%; } +.product-view .product-img-box .controls .next { left:80%; right:0; } + +.product-view .short-description { margin:0; padding:15px; } + +.product-view .product-add-to { padding:0 15px 15px; } + +.send-friend .fieldset, +.send-friend .buttons-set { padding:15px; } +.send-friend .buttons-set .back-link { display:none; } +.send-friend .fieldset .btn-remove { float:right; position:relative; top:-4px; right:-4px; } +.send-friend .fieldset .legend { color:#424242; font-size:18px; margin:0 0 10px; } +.send-friend #max_recipient_message, +.send-friend #add_recipient_button { margin:10px 0 0; } -.catalogsearch-result-index .page-title { display:none; } -.catalogsearch-result-index .breadcrumbs:first-child { display:none; } -.catalogsearch-result-index .note-msg { padding:10px 0 0; } +.product-collateral { clear:both; } +.product-collateral .box-collateral { padding:15px; } -/* Catalog List ------------------------------*/ -section .category-title { display:none; } +.product-collateral .box-additional { background:none; padding:0; } +.product-collateral .box-additional h2 { display:none; } +.product-collateral .box-additional .data-table { color:#424242; border-collapse:collapse; width:100%; } +.product-collateral .box-additional .data-table th, +.product-collateral .box-additional .data-table td { padding:15px; text-align:left !important; vertical-align:top; } +.product-collateral .box-additional .data-table th { font-weight:bold; } -.filters-block ol, -.filters-block li, -.filters-block dl, -.filters-block dt, -.filters-block dd { - margin:0; - padding:0; -} +.rating-box { background:url(../images/i_star_blank.png) repeat-x center left; height:18px; width:100px; } +.rating-box .rating { height:18px; background:url(../images/i_star.png) repeat-x center left; } -.filters-block-wrap { -} +.product-view .rating-box { margin:0 0 10px; } +.product-view .rating-links { color:#666; text-align:right; } +.product-view .rating-links a { color:#1394ca; display:inline-block; text-decoration:underline; } +.product-view .rating-links a:first-child { float:left; margin-right:10px; } +.product-view .rating-links .separator { display:none; } -.filters-block { - background:url(../images/fabric.jpg) no-repeat 0 0; - border-top:1px solid #ccc; - font-size:13px; - margin:10px -10px -10px; - padding:10px 10px 15px; -} +.product-view .box-description .std { margin:0; } -.filters-block dl { - display:inline-block; - vertical-align:top; - width:49%; -} +.product-view .product-shop .add-to-box button, +.product-view .product-options-bottom .add-to-cart button { background:url(../images/bg_gradient.png) repeat-x 0 0 #1394ca; color:#fff; font-size:24px; display:block; border:0; height:45px; line-height:45px; margin:15px 0 0; padding:0; -webkit-appearance:none; appearance:none; text-shadow:0 -1px 0 rgba(0, 0, 0, .45); width:100%; } +.product-view .product-options-bottom .add-to-cart + .add-to-links { margin:10px 0 0; } +.product-view .product-options-bottom .add-to-cart + .add-to-links li:first-child a { width:100%; } -@media(orientation:landscape) { - .filters-block dl { - width:33%; - } -} +.paypal-logo { text-align:center; } +.paypal-or { display:block; padding:10px 0; text-align:center; } -.filters-block dt { - color:#555; - font-size:13px; - font-weight:bold; - text-shadow:0 1px 0 #f6f6f6; - text-transform:uppercase; - margin:8px 0 0; -} +/* Carousel */ -.filters-block h3 { - color:#444; - font-size:15px; - text-shadow:0 1px 0 #f6f6f6; -} +.carousel-wrap {} +.carousel-wrap li { display:inline-block; vertical-align:top; white-space:normal; } +.carousel-wrap .box-title { max-width:80%; } +.carousel-wrap .ratings { display:none; } +.carousel-wrap .carousel-items { white-space:nowrap; -webkit-transition:all 150ms linear; -moz-transition:all 250ms linear; -o-transition:all 250ms linear; transition:all 250ms linear; } +.carousel-wrap .carousel-items-wrap { overflow:hidden; } -.filters-block .currently { - position:relative; - z-index:2; -} +@media all and (-webkit-transform-3d) { +.carousel-wrap .carousel-items { -webkit-transform:translateX(0); -webkit-perspective:1000; -webkit-backface-visibility:hidden; } +} + +.box-up-sell { position:relative; padding:15px; } +.box-up-sell h2 { color:#424242; font-size:18px; font-weight:bold; line-height:25px; margin:0 0 10px; } +.box-up-sell .item { color:#424242; font-size:15px; line-height:18px; } +.box-up-sell .item a { color:#424242; } +.box-up-sell .item h3 { max-height:36px; margin:0 0 5px; overflow:hidden; text-overflow:ellipsis; width:100%; } +.box-up-sell .item img { margin:0 0 5px; } +.box-up-sell .price-box .price { font-weight:bold; } +.box-up-sell .product-image {} +.box-up-sell .controls { background:url(../images/bg_divider_dark.png) no-repeat center; position:absolute; top:15px; right:15px; height:24px; width:49px; } + +.controls .prev, +.controls .next { display:block; position:absolute; top:0; right:0; height:24px; width:24px; } +.controls .prev { background:url(../images/arrow_left.png) no-repeat center; } +.controls .next { background:url(../images/arrow_right.png) no-repeat center; } +.controls .prev.disabled, +.controls .next.disabled { opacity:.25; } +.controls .prev { right:25px; } + +.counter { padding:5px 0 0; text-align:center; } +.counter span { margin:0 2px; } +.counter span:before { content:'\2022'; color:#ddd; font-size:20px; display:inline-block; -webkit-text-stroke:1px #ddd; } +.counter span.active:before { color:#fff; } + +.product-shop .grouped-items-table { border:none; border-spacing:0; font-size:15px; margin:0; -webkit-border-radius:0; width:100%; } +.product-shop .grouped-items-table th, +.product-shop .grouped-items-table td { padding:5px 0; } +.product-shop .grouped-items-table th { display:none; } +.product-shop .grouped-items-table td { background:none; border:none; border-bottom:1px solid #e4e4e4; text-align:left; vertical-align:middle; } +.product-shop .grouped-items-table tr:last-child td { border-bottom:none; } +.product-shop .grouped-items-table input.qty { text-align:center; width:40px; } + +/* ------------ */ + +.product-view .box-tags { padding:15px; } +.product-view .box-tags a { color:#1394ca; display:inline-block; font-weight:bold; } +.product-view .box-tags li { display:inline; margin-right:10px; } +.product-view .box-tags h2 { color:#424242; font-size:18px; font-weight:bold; margin:0 0 10px; } +.product-view .box-tags h3, +.product-view .form-add-tags { display:none; } + +/* ------------ */ + +.add-to-links { display:table; font-size:12px; margin:0; position:relative; width:100%; text-align:center; } +.add-to-links > li { display:table-cell; text-align:center; line-height:1; vertical-align:top; } +.add-to-links > li > a, +.add-to-links > li .split-button strong { background:url(../images/bg_gradient.png) repeat-x 0 0 #1394ca; background-size:auto 30px; color:#fff; display:inline-block; font-weight:normal; height:30px; line-height:30px; text-shadow:0 -1px 0 rgba(0, 0, 0, .45); width:99.5%; } +.add-to-links > li .split-button strong + a { display:block; height:30px; margin:0 0 -30px; position:relative; top:-30px; overflow:hidden; text-indent:-200%; } +.add-to-links > li .split-button.active .list-container { display:block; } +.add-to-links > li .split-button .list-container { border:1px solid #e4e4e4; display:none; position:absolute; top:0; left:0; text-align:left; } +.add-to-links > li .split-button .list-container li { background:#fff; border-bottom:1px solid #e4e4e4; height:30px; line-height:30px; padding:0 10px; box-shadow:0 0 3px rgba(0, 0, 0, .15); } +.add-to-links > li .split-button .list-container li:last-child { border:none; } +.add-to-links > li .split-button .list-container .new { background:#e4e4e4; color:#424242; text-shadow:0 1px 0 #fff; } +.add-to-links > li .split-button .list-container .new:before { content:'+'; display:inline-block; margin-right:5px; } +.add-to-links .separator { display:none; } + +.product-view .options-container-big .product-options { padding:15px; } +.product-view .options-container-big .product-options-bottom { position:relative; padding:0 15px 15px; } +.product-view .options-container-small .product-options {} +.product-view .options-container-small .product-options-bottom .price-box, +.product-view .options-container-small .product-options-bottom .price-box { display:none; } + +.product-view .product-options dt { margin:0 0 10px; } +.product-view .product-options dt label { color:#424242; font-size:15px; font-weight:bold; } +.product-view .product-options dt label em { color:#f9721f; margin-right:5px; } +.product-view .product-options dd { font-size:14px; border-bottom:1px solid #ccc; padding:0 0 15px; } +.product-view .product-options dd + dt { padding:15px 0 0; } +.product-view .product-options dd:last-child { border:none; padding:0; } +.product-view .product-options dd:last-child .input-box { margin:0; } +.product-view .product-options select { width:100%; } +.product-view .product-options input.qty { width:20%; } +.product-view .product-options input.qty:disabled { background:#f5f5f5; } +.product-view .product-options .input-box { margin:0 0 10px; } +.product-view .product-options .qty-holder { display:block; margin:5px 0 0; } +.product-view .product-options .qty-holder label, +.product-view .product-options .qty-holder label + input { vertical-align:middle; } +.product-view .product-options .options-list {} +.product-view .product-options .options-list li { margin:0 0 8px; } +.product-view .product-options .options-list li:last-child { margin:0; } +.product-view .product-options .options-list input, +.product-view .product-options .options-list input + label, +.product-view .product-options .options-list input + .label { vertical-align:middle; } +.product-view .product-options .options-list input { float:left; margin-right:10px; } +.product-view .product-options .options-list input + label, +.product-view .product-options .options-list input + .label { display:table; } +.product-view .product-options .options-list a { text-decoration:underline; } + +.giftcard-send-form { padding:15px 0 0; } +.giftcard-send-form em { color:#f9721f; } +.giftcard-send-form label { color:#424242; display:block; font-size:15px; font-weight:bold; } +.giftcard-send-form .gift-card-amount-field { padding:0; } -.filters-block .currently .block-subtitle { - color:#555; - font-weight:bold; - font-size:13px; - text-shadow:0 1px 0 #f6f6f6; - text-transform:uppercase; - margin:5px 0 0; -} - -.filters-block .currently .btn-remove { - background-image:url(../images/btn_trash.png); - background-size:10px 10px; - background-repeat:no-repeat; - background-position:center; - float:none; - display:inline-block; - vertical-align:middle; - top:-2px; - text-indent:-999em; - margin-right:2px; -} +.giftcard-amount-form .notice { padding:5px 0 10px; text-align:right; } +.giftcard-amount-form .notice span { float:left; font-size:12px; display:block; } +.giftcard-amount-form .notice span:last-child { float:none; } -.filters-block .currently .actions { - float:right; - margin:-24px 0 0; -} +.product-view .product-options-bottom .required { font-size:10px; line-height:12px; margin:10px 0 0; text-align:right; } +.product-view .product-options-bottom .price-box { color:#424242; font-size:18px; line-height:24px; font-weight:bold; } +.product-view .product-options-bottom .price-box .price-label { font-weight:normal; } -.filters-block .currently ol { - font-size:14px; - line-height:16px; -} +.catalog-product-gallery .buttons-set { padding:10px; } +.catalog-product-gallery .buttons-set a { text-align:center; } +.catalog-product-gallery .product-gallery { background-color:#fff !important; padding:10px 0 0; position:relative; overflow:hidden; height:300px; width:100%; } +.catalog-product-gallery .product-gallery .prev, +.catalog-product-gallery .product-gallery .next { background-color:#fff; background-position:center; border:1px solid #e4e4e4; border-radius:100%; box-shadow:0 0 3px rgba(0, 0, 0, .15); top:50%; z-index:101; } +.catalog-product-gallery .product-gallery .prev { right:80%; } +.catalog-product-gallery .product-gallery .next { left:80%; } +.catalog-product-gallery .product-gallery ul { display:table; width:200%; } +.catalog-product-gallery .product-gallery li { display:table-cell; padding:0; text-align:center; overflow:hidden; max-width:100%; } +.catalog-product-gallery .product-gallery li img { vertical-align:bottom; } -.filters-block .currently li { - padding:5px 0; -} +.catalog-product-gallery .add-to-cart {} +/* Catalog Search */ -.filters-block dd { -} +.catalogsearch-result-index .note-msg { padding:15px; } + +/* Product review +-----------------------------*/ -.filters-block ol { - list-style:none; -} - -.filters-block li { - text-shadow:0 1px 0 #f6f6f6; -} - -.filters-block a { - color:#fb6b36; -} -.toolbar { - background:#d7d7d7; - color:#707070; - border-bottom:1px solid #a0a0a0; - font-size:12px; - margin:1px -10px 0; - padding:5px; - overflow:hidden; - text-shadow:0 1px 0 #fff; -} -.toolbar .pager, -.toolbar .pager .amount, -.toolbar .pager .pages, -.toolbar .limiter { - float:right; -} -.toolbar .amount, -.toolbar .view-mode { - line-height:23px; - padding:0 4px; -} -.toolbar .view-mode label { - font-weight:bold; - position:relative; - top:1px; - vertical-align:middle; -} -.toolbar .pager .pages strong { - margin-right:5px; - vertical-align:middle; -} -.toolbar .pager .pages select, -.toolbar .sort-by select, -.toolbar .limiter select { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#dedede)); - background:-o-linear-gradient(top, #fff 0%, #dedede 100%); - border:1px solid #bbb; - border-radius:4px; - color:#707070; - margin:0; - padding:5px 10px; - font-size:12px; - line-height:17px; - vertical-align:middle; - -webkit-box-shadow:0 0 5px rgba(0, 0, 0, 0.15); - box-shadow:0 0 5px rgba(0, 0, 0, 0.15); - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -.toolbar .limiter select { - vertical-align:baseline; -} -.toolbar .sort-by select { - font-weight:bold; - padding:5px 10px 5px 51px; - vertical-align:middle; -} -.toolbar .sort-by select:after { - content:'1'; -} -.toolbar .sort-by > label { - position:absolute; - margin:6px 0 0 8px; - vertical-align:middle; -} -.toolbar .sort-by > a, -.toolbar .sort-by > a img { - vertical-align:middle; -} -.toolbar .prev-page, -.toolbar .next-page, -.toolbar .order, -.toolbar .order, -.toolbar .grid, -.toolbar .list { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#dedede)); - background:-o-linear-gradient(top, #fff 0%, #dedede 100%); - border:1px solid #bbb; - border-radius:5px; - display:inline-block; - vertical-align:top; - text-align:center; - line-height:23px; - position:relative; - height:27px; - width:27px; - text-indent:-999em; - -webkit-box-shadow:0 0 5px rgba(0, 0, 0, 0.15); - box-shadow:0 0 5px rgba(0, 0, 0, 0.15); - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -.toolbar .grid:after, -.toolbar .list:after { - background:url(../images/grid.png) no-repeat 0 0; - content:''; - display:inline-block; - position:absolute; - top:8px; - left:8px; - height:11px; - width:11px; -} -.toolbar .list:after { - background:url(../images/list.png) no-repeat 0 0; -} -.toolbar .prev-page.disabled, -.toolbar .next-page.disabled, -.toolbar .grid.disabled, -.toolbar .list.disabled { - opacity:0.5; -} -.toolbar .prev-page:after, -.toolbar .next-page:after, -.toolbar .order:after { - content:''; - position:absolute; - top:9px; - z-index:2; - font-size:0; - line-height:0; - width:0; -} -.toolbar .prev-page:after { - border-top:5px solid transparent; - border-right:10px solid #000; - border-bottom:5px solid transparent; - right:9px; -} - -.toolbar .next-page:after { - border-top:5px solid transparent; - border-left:10px solid #000; - border-bottom:5px solid transparent; - left:10px; -} -.toolbar .order.asc:after { - border-left:5px solid transparent; - border-right:5px solid transparent; - border-bottom:10px solid #000; - right:9px; -} -.toolbar .order.desc:after { - border-left:5px solid transparent; - border-right:5px solid transparent; - border-top:10px solid #000; - right:9px; -} -.toolbar a { - color:#707070; -} -.toolbar .sort-order img { - vertical-align:top; -} - -.category-products { - margin:0 -10px -10px; -} - -.c-list > li { - position:relative; - border-bottom:1px solid #ebe9eb; -} -.c-list > li:last-child { display:block; border-bottom:none; } -.c-list > li > a { - background:url(../images/i_arrow_small.png) no-repeat right #fff; - -webkit-background-size:8px 12px; - background-size:8px 12px; - -webkit-background-origin:content-box; - background-origin:content-box; - color:#2f2f2f; - display:block; - padding:10px; - -webkit-user-select:none; - user-select:none; - -webkit-touch-callout:none; - touch-callout:none; - -webkit-tap-highlight-color:rgba(0,0,0,0); -} -.c-list > li > a:after { - content:"."; - display:block; - clear:both; - visibility:hidden; - line-height:0; - height:0; -} -.c-list li > .actions { - padding:0 5px 0 90px; - position:absolute; - left:0; - top:10px; - bottom:10px; - width:100%; - z-index:0; - -webkit-box-sizing:border-box; - box-sizing:border-box; -} - -.csstransforms .c-list li > .actions { - -moz-transform:translate(-100%, 0); - -webkit-transform:translate(-100%, 0); - -o-transform:translate(-100%, 0); - transform:translate(-100%, 0); -} - -.csstransforms .c-list > li.animated > .actions { - -moz-transition:all .5s linear; - -webkit-transition:all .5s linear; - -o-transition:all .5s linear; - transition:all .5s linear; - -moz-transform:translate(0, 0); - -webkit-transform:translate(0, 0); - -o-transform:translate(0, 0); - transform:translate(0, 0); -} - -.csstransforms .c-list > li.end-animation > .actions { - -moz-transition:all .5s linear; - -webkit-transition:all .5s linear; - -o-transition:all .5s linear; - transition:all .5s linear; - -moz-transform:translate(-100%, 0); - -webkit-transform:translate(-100%, 0); - -o-transform:translate(-100%, 0); - transform:translate(-100%, 0); -} - -.csstransforms3d .c-list li > .actions { - -webkit-perspective:1000; - -webkit-backface-visibility:hidden; - -webkit-transform:translateX(-100%); -} - -.csstransforms3d .c-list > li.animated > .actions { - -webkit-animation:bounce 500ms; - -webkit-transform:translateX(0); -} - -.csstransforms3d .c-list > li.end-animation > .actions { - -webkit-transition:all 250ms linear; - -webkit-transform:translateX(-100%); -} - -@-webkit-keyframes bounce { - 0% { -webkit-transform:translateX(-100%); - -webkit-animation-timing-function:ease-in; } - - 50% { -webkit-transform:translateX(10%); - -webkit-animation-timing-function:ease-out; } - - 100% { -webkit-transform:translateX(0); } -} - -.c-list li > .actions ul { - border:1px solid; - border-color:#ddd #d4d4d4 #ccc; - border-radius:2px; - display:table; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F1F1F1), to(#E0DFE0)); - background:-o-linear-gradient(top, #F1F1F1 0%, #E0DFE0 100%); - width:100%; - height:73px; - -webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.1); - box-shadow:0 0 3px rgba(0, 0, 0, 0.1); -} - -@media(orientation:landscape) { - .c-list li > .actions ul { - } -} - -.c-list li > .actions ul li { - display:table-cell; - text-align:center; - line-height:1; -} -.c-list li > .actions ul li a { - display:inline-block; - padding:3px; - max-width:44px; - font-size:10px; - color:#4B4B4B; - text-shadow:0 1px 0 #fff; -} - -.c-list li > .actions i { - display:inline-block; - border-radius:2px; - margin-bottom:2px; - height:37px; - width:37px; - clear:both; - border:1px solid #cdcdcd; -} - -.c-list li > .actions .i-view-details i { - background:url(../images/i_view_details.png) no-repeat #fff top; -} - -.c-list li > .actions .i-add-to-cart i { - background:url(../images/i_add_to_cart.png) no-repeat #fff top; -} - -.c-list li > .actions .i-view-gallery i { - background:url(../images/i_gallery.png) no-repeat #fff top; -} - -.c-list li > .actions .i-send-friend i { - background:url(../images/i_tell_a_friend.png) no-repeat #fff top; -} - -.c-list li > .actions .i-send-wishlist i { - background:url(../images/i_add_to_wishlist.png) no-repeat #fff top; -} - -.c-list h1 { font-size:16px; font-weight:bold; } -.c-list .cloned-wrap, -.c-grid .cloned-wrap { position:absolute; padding:10px; opacity:0; } -.c-list .cloned-wrap .product-image img, -.c-grid .cloned-wrap .product-image img { -webkit-box-shadow:none; box-shadow:none; } -.c-list .product-image { float:left; margin-right:10px; -webkit-transform:translate3d(0,0,0); } -.c-list .product-image img, -.c-grid .product-image img { background:#fff; border:1px solid #ccc; border-radius:1px; padding:3px; -webkit-box-shadow:0 1px 5px rgba(0,0,0,0.28); box-shadow:0 1px 5px rgba(0,0,0,0.28); } -.c-list .product-shop { overflow:hidden; padding-right:30px; } -.c-list .product-shop h1 { font-size:14px; font-weight:bold; text-align:left; margin:5px 0 7px; } -.c-list .product-shop .price-box { font-size:11px; margin:0 0 5px; } - -.c-grid { - background:#eee; - display:table; - border-collapse:collapse; - border-spacing:0; - margin:-1px 0 0; - width:100%; - -webkit-tap-highlight-color:rgba(0,0,0,0); -} -.c-grid .row { - display:table-row; -} -.c-grid .cell { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#eee)); - background:-o-linear-gradient(top, #fff 0%, #eee 100%); - display:table-cell; - position:relative; - border:1px solid #ccc; - vertical-align:top; - width:50%; -} -.c-grid.ready .cell { - background:#ccc; - -webkit-box-shadow:inset 0 -10px 10px rgba(0, 0, 0, 0.25), inset 0 10px 10px rgba(0, 0, 0, 0.25), inset -10px 0 10px rgba(0, 0, 0, 0.25), inset 10px 0 10px rgba(0, 0, 0, 0.25); - box-shadow:inset 0 -10px 10px rgba(0, 0, 0, 0.25), inset 0 10px 10px rgba(0, 0, 0, 0.25), inset -10px 0 10px rgba(0, 0, 0, 0.25), inset 10px 0 10px rgba(0, 0, 0, 0.25); - -webkit-touch-callout:none; -} -@media all and (-webkit-transform-3d) { - .c-grid.ready .cell { background:url(data:image/png;base64,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); } -} -.c-grid .position-wrap { - position:relative; -} -.c-grid .row .cell:first-child { border-left:0; } -.c-grid .row .cell:last-child { border-right:0; } -.c-grid .row:last-child .cell { - border-bottom:0; -} -.c-grid .row .cell:only-child { - border-right:1px solid #ccc; -} -.c-grid .i-flip { - background:url(../images/flip.png) no-repeat 25px 10px; - background-size:15px 15px; - margin-left:-50px; - float:right; - height:50px; - width:50px; - position:relative; - z-index:1; - -webkit-backface-visibility:hidden; -} -.c-grid .flip-block-wrap { - -webkit-perspective:1000; -} -.c-grid .flip-block { - display:inline-block; - height:100%; - width:100%; -} -.c-grid .flip-block .wrap { - padding:15px 10px 10px;; -} -.c-grid .flip-block.active { -} -.c-grid .cloned-wrap { - top:0; - left:0; - height:100%; - width:100%; - opacity:0; - padding:0; -} -.c-grid .cloned-wrap .wrap { - padding:15px 10px 10px; - -webkit-transition:-webkit-transform linear 200ms; -} - -.to-cart-animate { - -webkit-animation:bounce-rotate 200ms infinite -} - -.drop-start { -webkit-transform:scale(1.2); opacity:0.9; } - -@-webkit-keyframes bounce-rotate { - 0% { -webkit-transform:rotate(3deg) skew(1deg) scale(1.2); } - 25% { -webkit-transform:rotate(0) skew(0) scale(1.2); } - 50% { -webkit-transform:rotate(-3deg) skew(-1deg) scale(1.2); } - 75% { -webkit-transform:rotate(0) skew(0) scale(1.2); } - 100% { -webkit-transform:rotate(3deg) skew(1deg) scale(1.2); } -} - -.c-grid .flip-block .front { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#eee)); - background:-o-linear-gradient(top, #fff 0%, #eee 100%); -} -.c-grid .flip-block .front, -.c-grid .flip-block .back { - display:inline-block; - height:100%; - width:100%; - position:relative; - -webkit-backface-visibility:hidden; -} -.c-grid .flip-block .back { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#eee)); - background:-o-linear-gradient(top, #fff 0%, #eee 100%); - position:absolute; -} -.c-grid .flip-block.active .back { - z-index:1; -} -@media all and (-webkit-transform-3d) { - .c-grid .flip-block { - -webkit-transform-style:preserve-3d; - -webkit-transition:ease-in-out 600ms; - } - .c-grid .flip-block.active { - -webkit-transform:rotateY(180deg); - } - .c-grid .flip-block .back { - -webkit-transform:rotateY(180deg) translate3d(0, 0, 1px); - } -} -.c-grid .back-face { padding:10px; } -.c-grid .back-face .rating-box { display:inline-block; } -.c-grid .back-face .rating-links { margin:-2px 0 2px; } -.c-grid .back-face .rating-links a { color:#fb6b36; text-decoration:underline; } -.c-grid .back-face .price-box { font-size:12px; margin:5px 0 10px; } -.c-grid .back-face .price-box .special-price .price { font-weight:bold; } -.c-grid .back-face .add-to-cart { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - border:1px solid #fff; - border-radius:5px; - color:#fff; - font-size:11px; - font-weight:bold; - margin-left:-2px; - padding:5px 10px; - text-shadow:0 1px 0 #999; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -.c-grid .back-face .rating-links .separator, -.c-grid .back-face .rating-links .separator + a { - display:none; -} -.c-grid .product-shop, -.c-grid .product-image { - text-align:center; -} -.c-grid .product-shop h1 { - margin-bottom:5px; -} - -/* Product Info Box ------------------------------*/ -.catalog-product-view .messages { margin:0 -10px 0; } -.product-view { padding:0 0 0; } -.product-shop { padding:8px 0 0; } -.product-shop a { color:#fb6b36; text-decoration:underline; } -.product-shop .item-options { margin:0 0 10px; } -.product-shop .item-options dt { font-weight:bold; } -.product-shop .product-image-and-actions { float:left; margin:0 10px 0 0; } -.product-shop .product-image-wrap { position:relative; max-width:150px; } -.product-shop .product-image { position:relative; } -.product-shop .product-image:before { - content:''; - display:block; - background:url(../images/search_icon.png) no-repeat 0 0; - -webkit-background-size:14px 14px; - background-size:14px 14px; - -webkit-background-origin:padding-box; - background-origin:padding-box; - position:absolute; - top:7px; - right:7px; - height:14px; - width:14px; - z-index:1; -} -.product-shop .product-image-wrap img { -webkit-border-radius:1px; -webkit-box-shadow:0 0 3px #D1D1D1; box-shadow:0 0 3px #D1D1D1; -webkit-transition:-webkit-transform ease-in 300ms; position:relative; } -.product-shop .product-image-wrap img.animate { z-index:101; } -.product-shop .product-image-wrap img.cloned { position:absolute; top:0; left:0; } -.product-shop .product-image .carousel-items li { padding:2px 2px 0; } -.product-shop .product-image .more-views { padding:3px 0 0 0; } -.product-shop .wrap:before, .product-shop .wrap:after { content: ""; display: table; } -.product-shop .wrap:after { clear:both; } - - -.product-view .add-to-links, -.product-actions { display:table; overflow:hidden; margin:5px 0 0; padding:5px 0; width:100%; text-align:center; } -.product-view .add-to-links li, -.product-actions li { display:table-cell; text-align:center; line-height:1; } -.product-view .add-to-links li + li, -.product-actions li + li { border-left:1px solid #fb6b36; } -.product-view .add-to-links li a, -.product-actions li a { color:#fb6b36; font-weight:bold; text-decoration:none; } -.product-view .add-to-links .separator { display:none; } -.product-essential p.required { color:#F9721F; } -.product-essential h1 { font-size:16px; text-align:left; font-weight:bold; margin-bottom:0; line-height:1.3; } -.product-essential .availability { color:#3b3b3b; font-size:13px; font-weight:bold; margin:0 0 3px; } -.product-essential .availability span { font-weight:normal; } -.product-essential .product-options dt label { font-size:14px; font-weight:bold; } -.product-essential .product-options dt label em { float:left; margin:0 4px 0 0; color:#F9721F; } -.product-essential .product-options dd { border-bottom:1px solid #bbb; padding:0 0 10px; } -.product-essential .product-options dd + dt { border-top:1px solid rgba(255, 255, 255, 0.75); padding:10px 0 0; } -.product-essential .product-options dd:last-child { border:none; } -.product-essential .product-options select { width:100%; } -.product-essential .product-options input[type=text] { font-size:12px; width:20%; } -.product-essential .product-options input[type=text]:disabled { background:#ddd; } -.product-essential .product-options .qty-holder { display:block; margin:5px 0 0; } -.product-essential .product-options .options-list li { padding:10px 0 0; } -.product-essential .product-options .options-list a { color:#fb6b36; text-decoration:underline; } - -.product-essential .product-options-bottom { background:#fefefe; position:relative; } -.product-essential .product-options-bottom .required { margin:10px 0; } -.product-essential .product-options-bottom .price-box { float:right; max-width:50%; } -.product-essential .product-options-bottom .price-box .price-as-configured { text-align:right; } -.product-essential .product-options-bottom .price-box .price-as-configured .price { display:block; font-size:18px; line-height:26px; text-shadow:0 1px 0 #fff; text-align:right; } -.product-essential .product-options-bottom .add-to-cart { float:left; width:50%; } -.product-essential .product-options-bottom .add-to-cart label { display:inline-block; font-size:14px; font-weight:bold; vertical-align:middle; } -.product-essential .product-options-bottom .add-to-cart input[type=text] { display:inline-block; width:40px; font-size:12px; vertical-align:middle; } -.product-essential .product-options-bottom button { - display:block; - padding:5px 20px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - font-size:14px; - color:#FFF; - clear:both; - float:right; - border:1px solid #FFF; - border-radius:5px; - margin:10px 0; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; -} -.product-shop .price-box { overflow:hidden; } - .product-shop .price-box .price-label { vertical-align:baseline; } - .product-shop .price-box .old-price { color:#ccc; } - .product-shop .price-box .special-price .price-label { color:#222; } - .product-shop .price-box .special-price .price { font-weight:bold; } - - .price-box .price-excluding-tax, - .price-box .price-including-tax { display:block; } - .price-box .price-excluding-tax .label, - .price-box .price-including-tax .label { font-weight:bold; } - -.product-shop .product-desc { display:table;} -.product-shop .product-desc .ratings { overflow:hidden; } -.product-shop .product-desc .ratings, -.product-shop .product-desc .ratings a { color:#FB6B36; } -.rating-box { background:url(../images/i_star_black.png) repeat-x center left; background-size:15px 15px; width:75px; height:15px; margin:3px 0; } -.rating-box .rating { height:15px; background:url(../images/i_star.png) repeat-x center left; background-size:15px 15px; } - -.product-shop .product-options-bottom .price-box { font-size:14px; text-align:right; } -.product-shop .product-options-bottom .price-box .price { font-weight:bold; } -.product-shop .product-options-bottom .add-to-cart label, -.product-shop .product-options-bottom .add-to-cart input[type=text] { vertical-align:middle; margin:0; } -.product-shop .product-options-bottom .product-actions { margin:5px 0 10px; } -.product-shop .product-options-bottom .product-actions li { display:table-cell; } - -.product-shop .add-to-cart-box { padding:5px 0; } -.product-shop .add-to-cart-box label { vertical-align:middle; } -.product-shop .add-to-cart-box .qty { border:1px solid #ccc; border-radius:3px; font-size:12px; font-weight:bold; margin:0 0 0 5px; padding:4px 5px; -webkit-appearance:none; -webkit-background-clip:padding-box; background-clip:padding-box; width:35px; -webkit-box-sizing:content-box; box-sizing:content-box; vertical-align:middle; } -.product-shop .add-to-cart-box button { - clear:both; - display:block; - margin:0; - padding:5px 20px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - font-size:14px; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -.product-shop .add-to-cart-box input + button { margin-top:10px; } -@media (orientation: landscape) { - .product-shop .add-to-cart-box button { clear:none; display:inline-block; margin:0 0 0 10px; } -} - -.product-shop .product-image-and-actions .actions { margin:15px 0 0; } -.product-shop .product-image-and-actions .actions a { display:block; text-align:center; width:100px; margin:5px 0 0; padding:4px 10px; background:-webkit-gradient(linear, 0 0, 0 100%, from(#FFF), to(#C1C3C4)); background:-o-linear-gradient(top, #FFF 0%, #C1C3C4 100%); font-size:12px; font-weight:bold; color:#636363; border:1px solid #FFF; border-radius:5px; -webkit-box-shadow:0 0 3px 0 #9F9F9F; box-shadow:0 0 3px 0 #9F9F9F; } -.product-shop .product-image-and-actions .actions a:last-child { margin:5px 0 10px; } - -#product-options-wrapper dl, .giftcard-send-form { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F6F6F6), to(#C5C5C5)); - background:-o-linear-gradient(top, #F6F6F6 0%, #C5C5C5 100%); - margin:10px 0; - padding:5px 10px; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 0 3px 0 #9F9F9F; - box-shadow:0 0 3px 0 #9F9F9F; -} - -/* -.product-essential .product-options dt label { font-size:14px; font-weight:bold; } -.product-essential .product-options dt label em { float:left; margin:0 4px 0 0; color:#F9721F; } -.product-essential .product-options dd { border-bottom:1px solid #bbb; padding:0 0 10px; } -.product-essential .product-options dd + dt { border-top:1px solid rgba(255, 255, 255, 0.75); padding:10px 0 0; } -.product-essential .product-options dd:last-child { border:none; } -.product-essential .product-options select { width:100%; } -.product-essential .product-options input[type=text] { font-size:12px; width:20%; } -.product-essential .product-options input[type=text]:disabled { background:#ddd; } -.product-essential .product-options .qty-holder { display:block; margin:5px 0 0; } -.product-essential .product-options .options-list li { padding:10px 0 0; } -*/ - -.giftcard-send-form em { color:#f9721f; margin:0 4px 0 0; } -.giftcard-send-form label { display:block; font-size:14px; font-weight:bold; margin:0 0 2px; } -.giftcard-send-form select { font-size:18px; width:100%; } -.giftcard-send-form li { border-bottom:1px solid #bbb; margin:0; padding:0 0 8px; } -.giftcard-send-form li + li { border-top:1px solid rgba(255, 255, 255, 0.75); padding:8px 0 0; } -.giftcard-send-form li:last-child { border-bottom:none; } -.giftcard-send-form .field { margin-bottom:8px; } -.giftcard-send-form .gift-card-amount-field { padding:0; } -.giftcard-send-form .notice { text-align:right; } -.giftcard-send-form .notice span { float:left; font-size:11px; display:block; } -.giftcard-send-form .notice span:last-child { float:none; } - -#product-attribute-specs-table { width:100%; border-collapse:collapse; } -#product-attribute-specs-table th, -#product-attribute-specs-table td { padding:2px; vertical-align:middle; text-align:left !important; } -#product-attribute-specs-table tr:nth-child(odd) td, -#product-attribute-specs-table tr:nth-child(odd) th { background:#f6f6f6; } - -.grouped-items-table { border:1px solid #ccc; font-size:11px; line-height:13px; margin:0 0 5px; -webkit-border-radius:5px; } -.grouped-items-table th { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f6f6f6), to(#ccc)); - background:-o-linear-gradient(top, #f6f6f6 0%, #ccc 100%); - border-bottom:1px solid #bbb; - padding:2px 2px 3px; -} -.grouped-items-table td { border-bottom:1px solid #ccc; vertical-align:top; } -.grouped-items-table input { width:20px; } -.grouped-items-table .price-box { margin:0; } -.grouped-items-table .price-excluding-tax, -.grouped-items-table .price-including-tax { display:block; } - -.product-shop .grouped-grid { - border:1px solid #fff; - padding:5px 10px 10px; - margin:10px 0 0; - border-radius:5px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f6f6f6), to(#c5c5c5)); - background:-o-linear-gradient(top, #f6f6f6 0%, #c5c5c5 100%); - -webkit-box-shadow:0 0 3px 0 #9F9F9F; - box-shadow:0 0 3px 0 #9F9F9F; -} - -.product-shop .grouped-grid .add-to-cart-box { - padding:5px 0 2px; - text-align:right; -} - -.product-shop .grouped-grid .add-to-cart-box button { - display:inline-block; -} - -.product-shop .grouped-items-table { border:none; border-spacing:0; font-size:12px; margin:0; -webkit-border-radius:0; width:100%; } -.product-shop .grouped-items-table th, -.product-shop .grouped-items-table td { padding:5px 0; } -.product-shop .grouped-items-table th { background:none; border:none; text-align:left; } -.product-shop .grouped-items-table td { background:none; border:none; border-top:1px solid rgba(255, 255, 255, 0.75); border-bottom:1px solid #bbb; text-align:left; vertical-align:middle; } -.product-shop .grouped-items-table tr:first-child td { border-top:none; } -.product-shop .grouped-items-table tr:last-child td { border-bottom:none; } - -.product-shop .grouped-items-table input.qty { - border:1px solid #bababa; - border-radius:3px; - font-size:12px; - font-weight:bold; - padding:4px 5px; - vertical-align:middle; - width:25px; - -webkit-appearance:none; - -webkit-background-clip:padding-box; - background-clip:padding-box; - -webkit-box-sizing:content-box; - box-sizing:content-box; -} - -.catalog-product-gallery .product-gallery { - padding:10px 0 0; - position:relative; - overflow:hidden; - height:300px; - width:100%; -} - -.catalog-product-gallery .product-gallery ul { - display:table; - width:200%; -} -.catalog-product-gallery .product-gallery li { - display:table-cell; - padding:0; - text-align:center; - overflow:hidden; - max-width:100%; -} -.catalog-product-gallery .product-gallery li img { - vertical-align:bottom; - -webkit-box-shadow:0 0 6px rgba(0, 0, 0, 0.25); - box-shadow:0 0 6px rgba(0, 0, 0, 0.25); -} -.catalog-product-gallery .product-gallery .prev, -.catalog-product-gallery .product-gallery .next { - display:none; - position:absolute; - top:10px; - bottom:25px; - z-index:10; - width:50%; -} -.catalog-product-gallery .product-gallery .prev { - left:0; -} -.catalog-product-gallery .product-gallery .next { - left:50%; -} - -.catalog-product-gallery .add-to-cart { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - display:inline-block; - padding:4px 7px 5px; - font-size:12px; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - position:absolute; - top:50px; - right:5px; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); - -webkit-background-clip:padding-box; -} - -.product-collateral { clear:both; } -.product-collateral .box-description { padding:10px 0 0; } -.product-collateral .box-additional h2 { margin:0 0 10px; } -.product-collateral .collateral-box { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F6F6F6), to(#C5C5C5)); - background:-o-linear-gradient(top, #F6F6F6 0%, #C5C5C5 100%); - padding:5px 10px; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 0 3px 0 #9F9F9F; - box-shadow:0 0 3px 0 #9F9F9F; -} -.product-collateral h2, -.product-collateral h4 { font-size:14px; font-weight:bold; } -.product-specs { font-size:14px; text-align:justify; word-spacing:-0.2ex; } - - .up-sell-box { position:relative; } - .up-sell-box .up-sell-heading { font-size:13px; line-height:24px; height:24px; font-weight:bold; margin:0; padding:5px 0 10px; text-shadow:0 1px 0 #fff; } - .up-sell-box .prev, - .up-sell-box .next { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#dcdcdc)); - background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%); - border:1px solid #bebebe; - display:block; - position:absolute; - top:5px; - right:5px; - height:24px; - width:24px; - -webkit-border-radius:5px; - border-radius:5px; - z-index:1; - } - .up-sell-box .prev.disabled, - .up-sell-box .next.disabled { opacity:0.5; } - .up-sell-box .prev:after, - .up-sell-box .next:after { content:''; position:absolute; top:7px; z-index:2; font-size:0; line-height:0; width:0; } - .up-sell-box .prev { right:35px; } - .up-sell-box .prev:after { border-top:5px solid transparent; border-right:10px solid #000; border-bottom:5px solid transparent; right:8px; } - .up-sell-box .next:after { border-top:5px solid transparent; border-left:10px solid #000; border-bottom:5px solid transparent; left:8px; } - .carousel-wrap { overflow:hidden; position:relative; width:100%; } - .carousel-wrap .carousel-items { white-space:nowrap; -webkit-transition:all 150ms linear; -moz-transition:all 250ms linear; -o-transition:all 250ms linear; transition:all 250ms linear; } - @media all and (-webkit-transform-3d) { - .carousel-wrap .carousel-items { -webkit-transform:translateX(0); -webkit-perspective:1000; -webkit-backface-visibility:hidden; } - } - .carousel-wrap li { display:inline-block; vertical-align:top; padding:0 5px; white-space:normal; -webkit-box-sizing:border-box; box-sizing:border-box; } - .up-sell-box .product-image { background:#fff; display:inline-block; padding:3px; border:1px solid #ccc; -webkit-box-shadow:0 1px 2px #999; box-shadow:0 1px 2px #999; text-align:center; } - .up-sell-box .up-sell h5 { font-size:12px; line-height:17px; margin:5px 0; } - .up-sell-box .up-sell .price-box { font-size:12px; line-height:17px; } - .up-sell li .price-box { font-weight:bold; } - - .counter { padding:5px 0 0; text-align:center; } - .counter span { margin:0 2px; } - .counter span:before { content:'\2022'; color:#ddd; font-size:20px; display:inline-block; -webkit-text-stroke:1px #ddd; } - .counter span.active:before { color:#fff; } - -.collateral-box { margin:16px 0 0; } - .collateral-box .tags-list { font-size:12px; padding:10px; } - .collateral-box .tags-list a { font-weight:bold; color:#F4641E; } - .collateral-box .tags-list span { margin-right:5px; } - - -.compare-back-link { - position:absolute; - padding:0 0 0 10px; - z-index:10; -} -.compare-clear-all, -.compare-back-link a { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#ddd), to(#eee)); - background:-o-linear-gradient(top, #ddd 0%, #eee 100%); - color:#000; - text-shadow:1px 1px 0 #fff; - display:inline-block; - border:1px solid #999; - border-left:0; - padding:5px 10px 5px 5px; - -webkit-border-radius:0 5px 5px 0; - position:relative; - z-index:4; - -webkit-transform:scale(0.95); -} -.compare-clear-all { - color:#fff; - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f85032), color-stop(50%, #f16f5c), color-stop(51%, #f6290c), color-stop(71%, #f02f17), color-stop(100%, #e73827)); - background:-o-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #f02f17 71%, #e73827 100%); - border:1px solid #777; - border-radius:5px; - display:inline-block; - font-weight:normal; - padding:5px 10px; - margin-left:60px; - position:static; - text-shadow:0 1px 0 #000; -} -.compare-back-link:before { - content:''; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#ddd), to(#eee)); - background:-o-linear-gradient(top, #ddd 0%, #eee 100%); - border:1px solid #999; - height:18px; - width:18px; - position:absolute; - top:5px; - left:1px; - -webkit-transform:rotate(45deg) scale(1.001); - z-index:3; -} -.compare-table { border-collapse:collapse; border-spacing:0; table-layout:fixed; -webkit-backface-visibility:hidden; } -.compare-table th, -.compare-table td { background:#fff; border:1px solid #ccc; padding:5px 15px; vertical-align:top; } -.compare-table td a { color:#fb6b36; } -.compare-table th { background:url(../images/fabric.jpg) repeat; border:none; -webkit-box-shadow:inset -3px 0 3px -3px #ccc; box-shadow:inset -3px 0 3px -3px #ccc; text-shadow:1px 1px 1px #fff; text-align:left; position:relative; padding:5px 10px 5px 10px; } -.compare-table tr:nth-child(even) td { background:#f6f6f6; } -.compare-table .move-left, -.compare-table .move-right { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#eee)); - background:-o-linear-gradient(top, #fff 0%, #eee 100%); - border:1px solid #c4c4c4; - border-radius:5px; - display:inline-block; - padding:5px 10px; - position:relative; - height:16px; - width:10px; - -webkit-box-shadow:0 0 2px rgba(0, 0, 0, 0.15); - box-shadow:0 0 2px rgba(0, 0, 0, 0.15); -} -.compare-table .move-left:after, -.compare-table .move-right:after { content:''; position:absolute; top:8px; z-index:2; font-size:0; line-height:0; width:0; } -.compare-table .move-left:after { border-top:5px solid transparent; border-right:10px solid #888; border-bottom:5px solid transparent; right:11px; } -.compare-table .move-right:after { border-top:5px solid transparent; border-left:10px solid #888; border-bottom:5px solid transparent; left:11px; } -.compare-table .move-right { - float:right; -} -.compare-table.hide-controls .moved-right .move-right, -.compare-table.hide-controls .moved-right .move-left, -.compare-table.hide-controls .moved-left .move-right, -.compare-table.hide-controls .moved-left .move-left { - visibility:hidden; -} -.compare-table .nobr { display:block; padding:1px 20px 1px 10px; white-space:nowrap; position:relative; text-shadow:1px 1px 0 #fff; } -.compare-table .product-shop-row td:last-child .move-right, -.compare-table .product-shop-row td:nth-child(2) .move-left { visibility:hidden; } -.compare-table .product-shop-row td:only-of-type .move-left, -.compare-table .product-shop-row td:only-of-type .move-right { display:none; } -.compare-table .move-right-animation, -.compare-table .move-left-animation { - -webkit-transition:-webkit-transform 300ms linear; - -webkit-transform:translate3d(0, 0, -5px) !important; -} -.compare-table .move-right-animation-scale, -.compare-table .move-left-animation-scale { - -webkit-transition:-webkit-transform 300ms linear; - -webkit-transform:translate3d(0, 0, 5px) !important; -} -.compare-table .collapsible .nobr { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f6f6f6), to(#bbb)); - background:-o-linear-gradient(top, #f6f6f6 0%, #bbb 100%); - border:1px solid #aaa; - border-radius:7px; - -webkit-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.15), 0 1px 0 #fff; - box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.15), 0 1px 0 #fff; -} -.compare-table .collapsible .nobr:active, -.compare-table .collapsible.collapsed .nobr { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#ddd), to(#ccc)); - background:-o-linear-gradient(top, #ddd 0%, #ccc 100%); -} -.compare-table .collapsible .nobr:before { - content:''; - background:url(../images/i_arrow_white.png) no-repeat 0 0; - background-size:10px 10px; - height:10px; - width:10px; - display:inline-block; - margin-left:-15px; - position:absolute; - top:5px; - left:100%; - -webkit-transition:all 300ms linear; - -webkit-transform:rotate(180deg); -} -.compare-table .collapsible.collapsed .nobr:before { -webkit-transform:rotate(0deg); } -.compare-table .collapsed .content { height:18px; max-width:125px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } -.compare-table .product-name { font-size:13px; font-weight:bold; line-height:16px; margin:0 10px 5px 0; overflow:hidden; } -.compare-table .product-name a { color:#000; } -.compare-table .btn-cart { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - border:1px solid #fff; - border-radius:5px; - color:#fff; - font-size:11px; - font-weight:bold; - margin-left:-2px; - margin-bottom:7px; - padding:5px 10px; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -.compare-table .btn-remove { -webkit-transform:translate3d(0, 0, 0); } -.compare-table .product-image { background:#fff; display:inline-block; margin:4px 0 10px; padding:3px; position:relative; border:1px solid #ccc; -webkit-box-shadow:0 1px 2px #ccc; box-shadow:0 1px 2px #ccc; text-align:center; } -.compare-table .product-image img {} -.compare-table .loader { background:url(../images/loader.gif) no-repeat center rgba(0, 0, 0, 0.05); background-size:20px 20px; float:right; height:20px; width:20px; } - -@-webkit-keyframes rotate { - from { - -webkit-transform: rotate(0deg); - } - to { - -webkit-transform: rotate(360deg); - } -} -.compare-table .btn-remove:before { - background:initial; -} -.compare-table .rotate { - -webkit-animation-name: rotate; - -webkit-animation-duration: 1s; - -webkit-animation-iteration-count: infinite; - -webkit-animation-timing-function: linear; -} - -/* Product review ------------------------------*/ -.review-product-list {} -.review-product-list .breadcrumbs .product { display:none; } -.review-product-list label { display:inline-block; font-weight:bold; padding:0 0 5px; } -.review-product-list label em { margin:0 5px 0 0; color: #F4641E; } -.review-product-list .rating-box { width:75px; height:15px; margin:3px 0; } -.review-product-list .rating-box .rating { height:15px; } -.review-product-list textarea { - border:1px solid; - border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; - border-radius:5px; - padding:5px; - font-size:18px; - height:100px; - width:100%; - -webkit-appearance:none; - -webkit-box-sizing:border-box; - box-sizing:border-box; - -webkit-box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); - box-shadow:inset 1px 1px 1px rgba(0, 0, 0, 0.1); -} -.review-product-list .pager, -.review-product-list .form-add h2, -.review-product-list .form-add h3, -.review-product-list .form-add h4 em { display:none; } -.review-product-list .form-add h4 { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#e5e5e5)); - background:-o-linear-gradient(top, #fff 0%, #e5e5e5 100%); - border-bottom:1px solid #ccc; - border-radius:5px 5px 0 0; - margin:0 -10px 0; - padding:10px; - text-shadow:1px 1px #fff; -} -.review-product-list .form-add { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#eee)); - background:-o-linear-gradient(top, #fff 0%, #eee 100%); - border:1px solid #ccc; - margin:10px 0 5px; - padding:0 10px 15px; - border-radius:5px; - -webkit-box-shadow:0 1px 3px #ccc; - box-shadow:0 1px 3px #ccc; -} -.review-product-list .form-add .form-list li:nth-child(2) { margin:15px 0 0; } -.review-product-list .box-reviews h2 { margin-bottom:6px; } -.review-product-list .box-reviews dl { border-radius:5px; padding:10px 10px 0; -webkit-box-shadow:0 1px 3px #ccc; box-shadow:0 1px 3px #ccc; } -.review-product-list .box-reviews dt { padding:0 0 5px; } -.review-product-list .box-reviews dt a, -.review-product-list .box-reviews dt h3 { display:block; font-size:13px; font-weight:bold; } -.review-product-list .box-reviews dd { overflow:hidden; } -.review-product-list .box-reviews dd:last-child { border:none; padding:0 0 10px; } -.review-product-list .box-reviews dd .date { color:#666; font-size:11px; display:block; } -@media(orientation:landscape) { - .review-product-list .box-reviews dd table { - float:right; - margin:-3px 0 0 10px; - } -} -.review-product-list .ratings-table { border-spacing:0; } -.review-product-list .ratings-table th { padding-right:5px; } -.review-table-wrap { - padding:10px 0 0; -} -.review-product-list .box-reviews dd + dt:before, -.review-table-wrap:after { - content:''; - background:-webkit-gradient(linear, left top, right top, color-stop(0%,#fff), color-stop(25%,#ccc), color-stop(75%,#ccc), color-stop(100%,#fff)); - background:-o-linear-gradient(top, #fff 0%, #ccc 22%, #fff 100%); - display:block; - height:1px; - width:100%; - margin:10px 0; - } -#product-review-table { border-spacing:0; margin:0; width:100%; -webkit-tap-highlight-color:rgba(0,0,0,0); } -#product-review-table thead th { display:none; font-size:0; line-height:0; vertical-align:top; } -#product-review-table thead th span { display:none; } -#product-review-table thead th:before { content:''; display:inline-block; font-size:12px; line-height:1; vertical-align:middle; } -#product-review-table thead th:nth-child(2):before { content:'1'; } -#product-review-table thead th:nth-child(3):before { content:'2'; } -#product-review-table thead th:nth-child(4):before { content:'3'; } -#product-review-table thead th:nth-child(5):before { content:'4'; } -#product-review-table thead th:nth-child(6):before { content:'5'; } -#product-review-table tbody th { font-size:13px; text-align:left; width:30px; } -#product-review-table tbody td { text-align:center; } -#product-review-table tbody td input { background:url(../images/i_star.png) no-repeat center; border:none; background-size:15px 15px; display:inline-block; height:25px; width:25px; opacity:0.25; margin:0; -webkit-appearance:none; -webkit-transition:all 100ms ease-in-out; } -#product-review-table tbody td input:checked, -#product-review-table tbody td.checked input { opacity:1; } -.review-product-list .buttons-set button { - padding:5px 10px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - font-size:14px; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} - -/* Product Review Page ------------------------------*/ -.my-account .product-review .product-img-box {} -.my-account .product-review .product-img-box > * { display:none; } -.my-account .product-review .product-img-box > a { display:block; float:left; margin-right:10px; } -.my-account .product-review .product-img-box img { -webkit-border-radius:1px; -webkit-box-shadow:0 0 3px #D1D1D1; box-shadow:0 0 3px #D1D1D1; } -.my-account .product-review .product-details h2 { font-size:16px; font-weight:bold; line-height:1.3; margin:0; } -.my-account .product-review .product-details h3 { font-size:13px; margin:2px 0; } -.my-account .product-review .product-details dl { clear:left; padding:10px 0 0; } -.my-account .product-review .product-details dt { font-weight:bold; } -.my-account .product-review .ratings-table, -.review-product-list .ratings-table { border-collapse:collapse; margin:0 0 5px; border-spacing:0; } -.my-account .product-review .ratings-table th, -.review-product-list .ratings-table { color:#222; line-height:1; text-align:left; padding:4px 5px 4px 0; } -.my-account .product-review .buttons-set, -.review-customer-index .buttons-set, -.customer-address-form .back-link { position:absolute; top:51px; left:20px; } -.my-account .product-review .buttons-set .back-link, -.review-customer-index .buttons-set .back-link, -.customer-address-form .buttons-set .back-link { float:none; padding:0; } -.my-account .product-review .buttons-set .back-link small, -.review-customer-index .buttons-set .back-link small, -.customer-address-form .buttons-set .back-link small { display:none; } - -.review-customer-index section[role="main"] { padding-bottom:0; } -.review-customer-index .my-account .page-title { margin-bottom:0; } -.review-customer-index .pager { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - overflow:hidden; - margin:0 -10px; - padding:5px 10px; - text-align:right; -} -.review-customer-index .pager .amount { float:left; line-height:30px; } -.review-customer-index .pager select { width:60px; } -.review-customer-index .my-reviews-table-wrap { margin:0 -10px; } -.review-customer-index table { font-size:12px; line-height:16px; border-collapse:collapse; width:100%; } -.review-customer-index table th, -.review-customer-index table td { border:solid #eee; border-width:1px 0; padding:7px 5px; } -.review-customer-index table td { vertical-align:top; } -.review-customer-index table tr:first-child td { border-top:1px solid #ccc; } -.review-customer-index table tr:last-child td { border-bottom:1px solid #ccc; } -.review-customer-index table tr td:last-child { text-align:center; width:100px; } -.review-customer-index table h2 { font-size:14px; font-weight:bold; line-height:16px; } - - -/* Cart ------------------------------*/ -.cart-shared { margin:0 0 -10px; } -.cart-shared .page-title { background:#eee; border:solid #ccc; border-width:1px 0; margin:0 -10px 10px; padding:10px; text-align:left; -webkit-box-shadow:none; box-shadow:none; } -.cart-shared .page-title h1 { display:block; margin:0 auto; line-height:30px; text-shadow:0 1px 1px #fff; text-align:center; } -.cart-shared .page-title a { background:#ccc; border:1px solid #bbb; display:block; float:left; margin:-30px 0 0; font-size:11px; font-weight:bold; padding:5px 10px; -webkit-border-radius:4px; text-shadow:none; } -.cart-shared .label, -.cart-shared .weee .price { display:block; font-weight:bold; white-space:nowrap; } -.cart-shared .messages { margin:10px 0 7px; } -.cart-shared fieldset { border-bottom:1px solid #ccc; margin:0 -10px; padding:0 10px 5px; } -.remove-all-button { display:none; padding:10px 5px 15px; text-align:center; } -.remove-all-button a { - background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35)); - background:-o-linear-gradient(top, #ee5f5b 0%, #c43c35 100%); - border:1px solid #fff; - color:#fff; - font-weight:bold; - border-radius:5px; - display:inline-block; - padding:5px 0; - width:100%; - -webkit-box-shadow:0 3px 3px 0 #9f9f9f; - box-shadow:0 3px 3px 0 #9f9f9f; - text-shadow:0 -1px 2px rgba(0, 0, 0, 0.25); -} -.cart-shared .remove-all-button { border-bottom:1px solid #eae8ea; } -.my-wishlist .remove-all-button { float:left; padding:0 8px 0 0; } -.my-wishlist .remove-all-button a { font-size:11px; padding:5px; box-sizing:border-box; -webkit-box-sizing:border-box; } - -.cart-table-wrap { - position:relative; -} -.cart-table-wrap .item-remove { - display:none; - position:absolute; - top:9px; - right:10px; -} -.cart-table-wrap.grouped-items { - padding:0 0 20px; -} -.cart-table-wrap.grouped-items .item-remove { - display:block; -} -.cart-table-wrap.grouped-items .cart-table .product-image { - position:absolute; - top:10px; - left:0; -} -.cart-table-wrap.grouped-items .cart-table td { - border:0; - padding:7px 7px 0 0; -} -.cart-table-wrap.grouped-items .cart-table .product-name { - margin:0; -} -.cart-table-wrap.grouped-items .cart-table td:last-child, -.cart-table-wrap.grouped-items .cart-table .item-options, -.cart-table-wrap.grouped-items .cart-table .item-qty, -.cart-table-wrap.grouped-items .cart-table .cart-price, -.cart-table-wrap.grouped-items .cart-table .price-box, -.cart-table-wrap.grouped-items .cart-table .label { - display:none; -} - -.cart-shared .cart-table { margin:3px 0 0; width:100%; } -.cart-shared .cart-table, -.cart-shared .cart-table .product-name { font-size:12px; } -.cart-shared .cart-table th, -.cart-shared .cart-table td { border-bottom:1px solid #EAE8EA; font-size:11px; padding:7px 7px 14px 0; } -.cart-shared .cart-table td:last-child { padding-right:0; } -.cart-shared .cart-table th { background:#ddd; font-weight:normal; } -.cart-shared .cart-table th:first-child { -webkit-border-top-left-radius:5px; } -.cart-shared .cart-table th:last-child { -webkit-border-top-right-radius:5px; } -.cart-shared .cart-table tr:last-child td { border:0; } -.cart-shared .cart-table .odd { background:#eee; } -.cart-shared .cart-table td b + input { vertical-align:middle; } -.cart-shared .cart-table td input { border:1px solid #ccc; border-radius:3px; font-size:12px; font-weight:bold; margin:0 0 0 10px; padding:4px 5px; -webkit-appearance:none; -webkit-background-clip:padding-box; width:25px; -webkit-box-sizing:content-box; } -.cart-shared .cart-table tfoot td { padding:0; vertical-align:top; } -.cart-shared .cart-table tfoot button { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#333), to(#111)); - background:-o-linear-gradient(top, #333 0%, #111 100%); - border:none; - color:#fff; - font-size:13px; - font-weight:bold; - padding:8px 10px; - text-shadow:0 1px 0 #000; - -webkit-border-radius:0 0 5px 5px; - width:100%; -} -.cart-shared .cart-table tbody td { vertical-align:top; } -.cart-shared .cart-table .product-name { margin:0 0 10px; } -.cart-shared .cart-table .product-name a { font-size:12px; color:#2f2f2f; } -.cart-shared .cart-table .product-image img { border:1px solid #FFF; -webkit-box-shadow:1px 1px 3px 0 #ccc; box-shadow:1px 1px 3px 0 #ccc; } -.cart-shared .cart-table .item-remove, .btn-remove, .item-remove { - background:#e10000; - border-radius:8px; - display:block; - float:right; - position:relative; - top:2px; - padding:3px; - height:10px; - width:10px; - -webkit-background-clip:padding-box; -} -.cart-shared .totals .btn-remove { - background:none; - padding:0; - height:auto; - width:auto; - top:3px; - margin-left:2px; -} -.cart-shared .cart-table .item-remove:before, -.btn-remove:before, -.item-remove:before { - content:''; - background:#fff; - border-radius:9px; - -webkit-box-shadow:0 0 6px #888; - box-shadow:0 0 6px #888; - display:block; - position:absolute; - top:-2px; - left:-2px; - height:20px; - width:20px; - z-index:-1; -} -.cart-shared .cart-table .item-remove img, -.btn-remove img, -.item-remove img { vertical-align:top; } - -.cart-shared .cart-table .product-name { font-size:11px; line-height:13px; font-weight:bold; } - -.cart-shared .totals table { border-spacing:0; font-size:12px; width:100%; } -.cart-shared .totals td { padding:2px; } -.cart-shared .totals .summary-total td[colspan="1"] { text-align:right; } -.cart-shared .totals .summary-collapse { cursor:pointer; text-decoration:underline; } -.cart-shared .discount, -.cart-shared .giftcard { font-size:12px; margin:0 -10px 20px; padding:10px 15px 15px; } -.cart-shared .giftcard a, -.cart-shared .discount a { display:inline-block; padding:5px 0; text-decoration:underline; } -.cart-shared .discount h2, -.cart-shared .giftcard h2 { font-size:12px; font-weight:bold; margin:0; text-shadow:0 1px 0 #fff; } -.cart-shared .giftcard label, -.cart-shared .discount label { display:none; } -.cart-shared .giftcard .input-box, -.cart-shared .discount .input-box { display:inline-block; } -.cart-shared .giftcard .input-box input, -.cart-shared .discount .input-box input { - border:1px solid #CAC8C8; - border-radius:2px; - font-size:11px; - line-height:1; - padding:5px 10px; - width:140px; - -webkit-appearance:none; - appearance:none; - -webkit-box-shadow:inset 0 1px 2px #ccc; - box-shadow:inset 0 1px 2px #ccc; - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -.cart-shared .discount + .giftcard { margin-top:-30px; } -.cart-shared .discount .buttons-set { display:inline-block; vertical-align:top; margin:-1px 0 0; } -.cart-shared .giftcard button, -.cart-shared .discount .buttons-set button { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#E2E2E2), to(#9D9D9D)); - background:-o-linear-gradient(top, #E2E2E2 0%, #9D9D9D 100%); - border:1px solid #FFF; - border-radius:5px; - color:#fff; - font-size:11px; - font-weight:bold; - margin:0; - padding:6px 10px; - vertical-align:top; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; - text-shadow:0 -1px 2px rgba(0, 0, 0, 0.25); -} -.cart-shared .checkout-types { float:right; width:65%; } -.cart-shared .checkout-types li { text-align:right; } -.cart-shared .checkout-types li:first-child {margin:0 0 10px; } -.cart-shared .checkout-types li button { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - clear:both; - display:block; - float:right; - margin:10px 0; - padding:5px 20px; - font-size:14px; - font-weight:bold; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -#update-cart { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#E2E2E2), to(#9D9D9D)); - background:-o-linear-gradient(top, #E2E2E2 0%, #9D9D9D 100%); - float:left; - margin:10px 0; - padding:5px 10px; - font-size:14px; - font-weight:bold; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; - text-shadow:0 -1px 2px rgba(0, 0, 0, 0.25); -} -.cart-shared .checkout-types .paypal-or { color:#333; display:block; padding:0 0 5px; text-shadow:0 0 1px #fff; } -.cart-shared .checkout-types li:nth-child(3) > a { display:inline-block; margin:10px 0 0; padding:10px; } - -.cart-shared .cart-footer { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#FDFDFD), to(#CFD0D1)); - background:-o-linear-gradient(top, #FDFDFD 0%, #CFD0D1 100%); - margin:0 -10px; - padding:10px; - -webkit-box-shadow: 0px 0px 10px 0px #222; - box-shadow: 0px 0px 10px 0px #222; -} -.cart-shared .cart-footer:after { content:"."; display:block; clear:both; visibility:hidden; line-height:0; height:0; } - -.checkout-agreements { - list-style:none; - margin:0; - padding:0; -} - -.checkout-agreements .agreement-content { - background:#fff; - border-radius:2px; - -webkit-border-radius:5px; - margin:10px 0; - padding:10px; - max-height:250px; - overflow:auto; - -webkit-box-shadow:inset 0 0 3px #000; - box-shadow:inset 0 0 3px #000; -} - -.checkout-agreements .agree { - margin:10px 0; -} - -.std { clear:both; margin:10px 0; } -.a-left { text-align:left; } -.a-center { text-align:center; } -.a-right { text-align:right; } - -.page-title { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); - background:-o-linear-gradient(top, #fff 0%, #ccc 100%); - border:solid #999; - border-width:1px 0; - border-top-color:#ccc; - text-shadow:0 1px 0 #fff; - margin:0 -10px 10px; - padding:10px; - -webkit-box-shadow:0 3px 3px #eee; - box-shadow:0 3px 3px #eee; -} +.product-review { padding:15px; } +.product-review .product-img-box { text-align:center; } + +.box-reviews .box-title, +.box-reviews .box-content .product-name { display:none; } +.box-reviews .box-content { padding:15px; } +.box-reviews .form-list { margin:0 0 10px; } +.box-reviews p.required { font-size:10px; line-height:12px; margin:10px 0 0; text-align:right; } +.box-reviews .form-add h4 { display:none; } + +#product-reviews-list { display:none; } +#customer-reviews:target #product-reviews-list { display:block; } + +.ratings-table { margin:0 0 10px; } +.ratings-table th, +.ratings-table td.label { color:#424242; font-weight:bold; text-align:left; } +.ratings-table th, +.ratings-table td { padding:3px 15px 5px 0; } +.ratings-table td { vertical-align:middle; } + +#product-review-table { margin:10px 0; } +#product-review-table thead th { display:none; } +#product-review-table tbody th { color:#424242; text-align:left; padding:0 5px 5px 0; } +#product-review-table tbody td input { background:url(../images/i_star.png) no-repeat center; border:none; display:inline-block; height:18px; width:20px; opacity:0.25; margin:0; -webkit-appearance:none; -webkit-transition:all 100ms ease-in-out; } +#product-review-table tbody td input:checked, +#product-review-table tbody td.checked input { opacity:1; } +.review-product-list .breadcrumbs .product { display:none; } +.review-product-list label { display:inline-block; font-weight:bold; padding:0 0 5px; } +.review-product-list label em { margin:0 5px 0 0; color: #F4641E; } +.review-product-list .pager { display:none; } + +.product-view .box-reviews { padding:15px; } +.product-view .box-reviews h2 { color:#424242; font-size:18px; margin:0 0 15px; } +.product-view .box-reviews h3 { margin:10px 0; } +.product-view .box-reviews dl { margin:0 0 15px; } +.product-view .box-reviews dt { color:#666; font-size:12px; margin:0 0 10px; } +.product-view .box-reviews dt h3 { color:#424242; display:inline; font-size:15px; } +.product-view .box-reviews dd { margin:0 0 20px; } +.product-view .box-reviews dd:last-child { margin:0; } +.product-view .box-reviews dd .date { color:#666; font-size:11px; display:block; } +.product-view .box-reviews dd + dt { border-top:1px solid #e4e4e4; padding:20px 0 0; } + +.review-product-page .product-review, +.review-product-page .product-essential { display:none; } /* User account ------------------------------*/ -.show-links { position:absolute; top:53px; left:10px; z-index:99; } -.my-account { margin:0; } -.my-account .messages { margin:-10px -10px 10px; padding:0; } -.my-account .messages .success-msg { margin-bottom:0; } -.my-account .messages .success-msg a { color:#fff; } -.my-account .breadcrumbs {} -.my-account .welcome-msg { margin:0 0 10px; } - -.customer-account-index .my-account .messages { margin:0; padding:0; } - -.my-account .box { margin-bottom:10px; } -.my-account .box-account { background:#fff; padding:0 0 10px; } -.my-account .info-box { padding-bottom:0; } -.my-account .info-box .box-head { margin-bottom:0; } -.my-account .info-box .box-title { padding:5px 10px; } -.my-account .info-box .box-content { border:1px solid #aaa; padding:10px; margin:0 0 10px; } -.my-account .info-box .col2-set:nth-child(3) .col-1, -.my-account .info-box .col2-set:nth-child(3) .col-2 { display:inline-block; vertical-align:top; width:49%; } -.my-account .box-content a { text-decoration:underline; } -.my-account .dashboard .reviews ol { list-style:none; margin:0; padding:0; } -.my-account .dashboard .reviews .number { float:left; margin:0 10px 0 0; } -.my-account .dashboard .reviews .details { display:table; } -.my-account .dashboard .reviews .details p { display:inline; vertical-align:middle; } -.my-account .dashboard .reviews .details .rating-box { display:inline-block; vertical-align:middle; margin:0; } - -.my-account .my-wishlist { margin:0 -10px; } - -.my-account .page-title { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); - background:-o-linear-gradient(top, #fff 0%, #ccc 100%); - border:solid #999; - border-width:1px 0; - border-top-color:#ccc; - margin:0 -10px 10px; - padding:10px; - -webkit-box-shadow:0 3px 3px #eee; - box-shadow:0 3px 3px #eee; - text-shadow:0 1px 0 #fff; -} - -.my-account .box-head { - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffb76b), color-stop(50%, #ffa73d), color-stop(51%, #ff7c00), color-stop(100%, #ff7f04)); - background:-o-linear-gradient(top, #ffb76b 0%, #ffa73d 50%, #ff7c00 51%, #ff7f04 100%); - border-bottom:1px solid #999; - padding:7px 10px 8px; - position:relative; -} -.my-account .box-head a { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#fff)); - background:-o-linear-gradient(top, #eee 0%, #fff 100%); - font-weight:bold; - position:absolute; - padding:2px 10px; - top:3px; - right:5px; - -webkit-border-radius:4px; - border-radius:4px; - -webkit-box-shadow:inset 0 0 2px #000; - box-shadow:inset 0 0 2px #000; - text-shadow:0 1px 0 #fff; -} -.my-account .box-head h2 { color:#f6f6f6; font-weight:bold; text-shadow:0 0 3px #333; line-height:1; } - -.my-account .box-recent .data-table { border-spacing:0; width:100%; } -.my-account .box-recent .data-table th, -.my-account .box-recent .data-table td { padding:2px 5px; } -.my-account .box-recent .data-table th { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#ccc)); - background:-o-linear-gradient(top, #eee 0%, #ccc 100%); - border-bottom:1px solid #aaa; - text-shadow:0 1px 0 #fff; -} -.my-account .box-recent .data-table tr:nth-child(odd) { background:#f6f6f6; } -.my-account .box-recent .data-table tr td:nth-child(3) { text-align:center; } -.my-account .box-recent .data-table tr td:first-child a { - display:block; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#fff)); - background:-o-linear-gradient(top, #eee 0%, #fff 100%); - font-weight:bold; - margin:4px 0; - padding:2px 10px; - -webkit-border-radius:4px; - border-radius:4px; - -webkit-box-shadow:inset 0 0 2px #000; - box-shadow:inset 0 0 2px #000; - text-shadow:0 1px 0 #fff; -} - -.my-account .box-title { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#ccc)); - background:-o-linear-gradient(top, #eee 0%, #ccc 100%); - border:1px solid; - border-color:#bbb #aaa; - color:#333; - font-size:13px; - text-shadow:0 1px 0 #fff; - position:relative; -} -.my-account .box-title .separator { display:none; } -.my-account .box-title a { position:absolute; top:5px; right:5px; text-decoration:underline; } -.my-account .box-title h3 { display:inline-block; } - -.my-account .box-content h4 {} -.my-account .col2-set .col-1, -.my-account .col2-set .col-2 {} -.my-account .col2-set .col-1:last-child, -.my-account .col2-set .col-2:last-child {} -.my-account .sub-title, -.my-account .legend { color:#333; font-size:15px; font-weight:bold; margin:0 0 5px; text-shadow:0 1px 0 #ddd; } -.my-account .back-link { display:none; float:left; margin:0 15px 0 0; } -.my-account .input-box select { font-size:16px; } -.my-account .buttons-set, -.my-account .buttons-set2 { clear:both; text-align:center; } -.my-account .buttons-set:after { - content:"."; - display:block; - clear:both; - visibility:hidden; - line-height:0; - height:0; -} -.my-account label em, -.my-account .buttons-set .required, -.my-account label[for="street_1"] { display:none; } - -.my-account .storecredit .account-balance { margin:0 0 10px; } - -.sales-order-view .my-account { - margin:0; -} -.sales-order-view #my-orders-table { - border-collapse:collapse; - margin:10px 0 15px; - -webkit-box-shadow:0 3px 6px #ccc; - box-shadow:0 3px 6px #ccc; -} -.sales-order-view #my-orders-table th, -.sales-order-view #my-orders-table td { - background:#fff; - text-align:left; - vertical-align:top; -} -.sales-order-view #my-orders-table th { - color:#222; - width:33%; -} -.sales-order-view #my-orders-table .product-name { - font-weight:normal; -} -.sales-order-view #my-orders-table tbody.collapsed tr, -.sales-order-view #my-orders-table tbody.collapsed td dl { - display:none; -} -.sales-order-view #my-orders-table tbody tr:first-child { - display:table-row; -} -.sales-order-view #my-orders-table tbody { - border:1px solid #ccc; -} -.sales-order-view #my-orders-table tbody tr:first-child { - border:1px solid #ccc; - border-bottom-color:#bbb; -} -.sales-order-view #my-orders-table tbody tr:first-child th, -.sales-order-view #my-orders-table tbody tr:first-child th + td { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f6f6f6), to(#ddd)); - background:-o-linear-gradient(top, #f6f6f6 0%, #ddd 100%); - display:table-cell; - padding:5px; - font-weight:normal; - text-shadow:0 -1px 0 #fff; -} -.sales-order-view #my-orders-table tbody tr:first-child th + td { - padding-right:30px !important; -} -.sales-order-view #my-orders-table tbody tr:first-child th + td:before { - background:url(../images/i_arrow.png) no-repeat 0 0; - background-size:12px 12px; - content:''; - display:block; - height:12px; - width:12px; - margin:2px 0 0; - position:absolute; - right:17px; - -webkit-transform:scaleY(-1); -} -.sales-order-view #my-orders-table tbody.collapsed tr:first-child th + td:before { - -webkit-transform:scaleY(1); -} -.sales-order-view #my-orders-table tr:nth-child(even) th, -.sales-order-view #my-orders-table tr:nth-child(even) td { -} -.sales-order-view #my-orders-table td[colspan="2"] { - color:#808080; - font-size:12px; - padding:10px 0 0; - font-weight:bold; - text-transform:uppercase; - text-shadow:0 -1px 0 #fff; -} -.sales-order-view #my-orders-table td[colspan="2"] .option-label { - padding:5px 10px 0 5px; -} -.sales-order-view #my-orders-table tfoot tr:first-child th, -.sales-order-view #my-orders-table tfoot tr:first-child td { - padding-top:10px; -} -.sales-order-view #my-orders-table tfoot tr:last-child th, -.sales-order-view #my-orders-table tfoot tr:last-child td { - padding-bottom:10px; -} -.sales-order-view #my-orders-table tfoot th, -.sales-order-view #my-orders-table tfoot td { - border:0; -} - -.sales-order-view .box .box-content { padding:10px; } - -.sales-order-history .data-table { border-spacing:0; margin:-10px 0 0 0; width:100%; } -.sales-order-history .data-table th, -.sales-order-history .data-table td { padding:2px 5px; } -.sales-order-history .data-table th { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#ccc)); - background:-o-linear-gradient(top, #eee 0%, #ccc 100%); - border-bottom:1px solid #aaa; - text-shadow:0 1px 0 #fff; -} -.sales-order-history .data-table th:nth-child(4) { width:20%; text-align:left; } -.sales-order-history .data-table tr:nth-child(odd) { background:#f6f6f6; } -.sales-order-history .amount { display:none; } -.sales-order-history .pager { - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #FFB76B), color-stop(50%, #FFA73D), color-stop(51%, #FF7C00), color-stop(100%, #FF7F04)); - background:-o-linear-gradient(top, #FFB76B 0%, #FFA73D 50%, #FF7C00 51%, #FF7F04 100%); - border-bottom: 1px solid #999; - margin: 0 0 10px; - padding: 7px 10px 8px; - color: #F6F6F6; - font-weight: bold; - text-shadow: 0 0 3px #333; - line-height: 1; - text-align:right; - overflow:hidden; -} -.sales-order-history .limiter { - float:left; -} -.sales-order-history .limiter select, -.sales-order-history .pages select { - padding:3px 30px 3px 7px; -} -.sales-order-history .back-link a { - margin-left: 10px; - padding: 5px 10px; - border: 1px solid #CECECE; - border-radius: 5px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - font-size: 16px; - text-transform: small-caps; -} -.customer-account-edit .buttons-set a { - display:block; - padding: 5px 10px; - border: 1px solid #CECECE; - border-radius: 5px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - font-size: 16px; - text-transform: small-caps; -} - -.my-account form label, -.my-account form .field label, -.my-account form .wide label { color:#5e5e5e; display:block; font-size:12px; line-height:16px; margin:8px 0 0; padding:0 0 3px; font-weight:bold; } -.my-account form .buttons-set { padding:10px 0; } -.my-account .form-list label { display:block; margin:5px 0 2px 0; } -.my-account .form-list select { border:1px solid; border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; border-radius:5px; font-size:18px; padding:5px 30px 5px 5px; width:100%; margin:0; } -.my-account .form-list .control .checkbox + label, -.my-account .form-list .control .input-box + label { display:inline; margin-left:2px; vertical-align:middle; } -.my-account button { - display:inline-block; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #F39823 0%, #F37221 100%); - color:#FFF; - font-size:14px; - border:1px solid #FFF; - border-radius:5px; - margin:0; - padding:5px 10px; - vertical-align:top; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -.newsletter-manage-index .my-account .back-link a { - display:block; - padding: 5px 10px; - border: 1px solid #CECECE; - border-radius: 5px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - font-size: 16px; - text-transform: small-caps; -} -.customer-address-index .page-title h1 { float:left; padding:5px 0 0 0; } -.customer-address-index .page-title button { - float:right; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#fff)); - background:-o-linear-gradient(top, #eee 0%, #fff 100%); - font-weight: bold; - padding: 6px 10px; - border:0; - -webkit-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 0 2px #000; - box-shadow: inset 0 0 2px #000; - text-shadow: 0 1px 0 white; -} -.customer-address-index .page-title:after { - content: "."; - display: block; - clear: both; - visibility: hidden; - line-height: 0; - height: 0; -} -.customer-address-index .addresses-list {} -.customer-address-index .addresses-list ol { list-style:none; margin:0; padding:0; } -.customer-address-index .addresses-list ol li {} -.customer-address-index .back-link a { - display:block; - margin:0 0 0 10px; - padding: 5px 10px; - border: 1px solid #CECECE; - border-radius: 5px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - font-size: 16px; - text-transform: small-caps; -} - -.block-account { margin:0; padding:0; position:absolute; width:100%; left:-100%; z-index:100; -webkit-box-shadow:0 3px 3px rgba(0, 0, 0, .25) } -.block-account .block-title { display:none; } -.block-account li { background:#eee; border-bottom:1px solid #ccc; padding:10px 10px 10px 100px; } -.block-account .back { background:#333; color:#fff; padding:10px; position:absolute; top:0; bottom:0; left:0; width:60px; } - - -/* Order ------------------------------*/ -.sales-order-invoice .my-account, -.sales-order-shipment .my-account, -.sales-order-creditmemo -.sales-order-view .my-account { padding:0 10px; } -.sales-order-invoice .page-title, -.sales-order-shipment .page-title, -.sales-order-view .page-title { margin:0 -10px; } -.sales-order-invoice .page-title span, -.sales-order-shipmente .page-title span, -.sales-order-view .page-title span { display:none; } -.sales-order-invoice .page-title h1, -.sales-order-shipment .page-title h1, -.sales-order-view .page-title h1 { float:left; padding:3px 0 0; } -.sales-order-invoice .page-title a, -.sales-order-shipment .page-title a, -.sales-order-view .page-title a { - float:right; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#fff)); - background:-o-linear-gradient(top, #eee 0%, #fff 100%); - font-weight: bold; - margin:0 0 0 10px; - padding: 6px 10px; - border:0; - -webkit-border-radius: 4px; - -webkit-box-shadow: inset 0 0 2px #000; - box-shadow: inset 0 0 2px #000; - text-shadow: 0 1px 0 white; -} -.sales-order-view .page-title .link-print { - display:none; -} -.sales-order-invoice .page-title:after, -.sales-order-shipment .page-title:after, -.sales-order-view .page-title:after { - content: "."; - display: block; - clear: both; - visibility: hidden; - line-height: 0; - height: 0; -} -.sales-order-invoice .box .box-title, -.sales-order-shipment .box .box-title, -.sales-order-view .box .box-title { margin:0 -10px; padding:3px 10px; } -.sales-order-invoice .box .box-content, -.sales-order-shipment .box .box-content, -.sales-order-view .box .box-content { padding:10px 0; } -.sales-order-invoice .back-link a, -.sales-order-shipment .back-link a, -.sales-order-view .back-link a { - display:block; - margin:0 0 10px; - padding: 5px 10px; - border: 1px solid #CECECE; - border-radius: 5px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - font-size: 16px; - text-transform: small-caps; -} -.sales-order-invoice .order-details .data-table, -.sales-order-shipment .order-details .data-table, -.sales-order-view .order-details .data-table { width:100%; font-size:12px; } -.sales-order-invoice .order-details .data-table th, -.sales-order-shipment .order-details .data-table th, -.sales-order-view .order-details .data-table th { background:#909090; color:#FFF; } -.sales-order-invoice .order-details .data-table th:first-child, -.sales-order-shipment .order-details .data-table th:first-child, -.sales-order-view .order-details .data-table th:first-child { text-align:left; } -.sales-order-invoice .order-details .data-table th:nth-child(4), -.sales-order-shipment .order-details .data-table th:nth-child(4), -.sales-order-view .order-details .data-table th:nth-child(4) { width:20% } -.sales-order-invoice .order-details .data-table .even tr td, -.sales-order-shipment .order-details .data-table .even tr td, -.sales-order-view .order-details .data-table .even tr td { background:#EEE; } -.sales-order-invoice .order-details .data-table th, -.sales-order-invoice .order-details .data-table td, -.sales-order-shipment .order-details .data-table th, -.sales-order-shipment .order-details .data-table td, -.sales-order-view .order-details .data-table th, -.sales-order-view .order-details .data-table td { padding:2px 5px; } -.sales-order-invoice .order-info dt, -.sales-order-shipment .order-info dt, -.sales-order-view .order-info dt { display:none; } -.sales-order-invoice .order-info dd, -.sales-order-shipment .order-info dd, -.sales-order-view .order-info dd { margin:0; } -.sales-order-invoice .order-info dd ul, -.sales-order-shipment .order-info dd ul, -.sales-order-view .order-info dd ul { float:left; } -.sales-order-invoice .order-info dd ul li, -.sales-order-shipment .order-info dd ul li, -.sales-order-view .order-info dd ul li { - display:inline-block; - margin:0 10px 10px 0; - font-size: 16px; -} -.sales-order-invoice .order-info dd ul li a, -.sales-order-shipment .order-info dd ul li a, -.sales-order-view .order-info dd ul li a { - display:block; - padding: 5px 10px; - border: 1px solid #cecece; - border-radius: 5px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - font-size: 16px; - text-transform: small-caps; -} -.sales-order-invoice .order-date, -.sales-order-shipment .order-date, -.sales-order-view .order-date { display:inline-block; padding:6px 0 15px 0; font-size: 16px; } +-----------------------------*/ +.my-account {} +.my-account .breadcrumbs {} +.account-links a, +.account-links strong { padding-left:30px !important; } -/* Wishlist ------------------------------*/ -.my-wishlist h1 { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); - background:-o-linear-gradient(top, #fff 0%, #ccc 100%); - border:solid #999; - border-width:1px 0; - border-top-color:#ccc; - margin:0 0 10px; - padding:10px; -} -.my-wishlist h2 { font-weight:bold; line-height:16px; } -.my-wishlist .buttons-set { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#cfd0d1)); - background:-o-linear-gradient(top, #fdfdfd 0%, #cfd0d1 100%); - margin:10px 0 -10px; - padding: 10px; - -webkit-box-shadow:0px 0px 10px 0px rgba(0, 0, 0, .25); - box-shadow:0px 0px 10px 0px rgba(0, 0, 0, .25); -} -.my-wishlist .buttons-set:after { content:"."; display:block; clear:both; visibility:hidden; line-height:0; height:0; } -.my-wishlist .buttons-set li { float:left; } -.my-wishlist .buttons-set li:first-child { padding:0 8px 0 0; } -.my-wishlist .buttons-set li:last-child { float:right; } -.my-wishlist .buttons-set li .add-all-to-cart, -.my-wishlist .buttons-set li .btn-share { - text-align:right; - padding:5px 10px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#F39823), to(#F37221)); - background:-o-linear-gradient(top, #f39823 0%, #f37221 100%); - font-size:11px; - font-weight:bold; - color:#fff; - border:1px solid #fff; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9f9f9f; - box-shadow:0 3px 3px 0 #9f9f9f; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -.my-wishlist .buttons-set li .btn-share { - margin:0; - line-height:18px; - -webkit-appearance:none; - appearance:none; -} -.my-wishlist .buttons-set li .update-wishlist { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#e2e2e2), to(#9d9d9d)); - background:-o-linear-gradient(top, #e2e2e2 0%, #9d9d9d 100%); - color:#fff; - border:1px solid #fff; - border-radius:5px; - margin:0; - padding:5px 10px; - float:left; - font-size:11px; - font-weight:bold; - line-height:18px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - text-shadow:0 -1px 2px rgba(0, 0, 0, 0.25); - -webkit-appearance:none; - appearance:none; -} -.my-wishlist .buttons-set li span { display:inline-block; } - -#wishlist-list { margin:-10px 0 0; min-height:200px; } -#wishlist-list li > a { float:left; padding:10px; } -#wishlist-list li > a img { border:1px solid #FFF; -webkit-box-shadow:1px 1px 3px 0 #ccc; box-shadow:1px 1px 3px 0 #ccc; } -#wishlist-list li { border-bottom:1px solid #CCC; position:relative; min-height:80px; } -#wishlist-list li:last-child { border-bottom:0; } -#wishlist-list .wishlist-item { overflow:hidden; } -#wishlist-list .wishlist-item { padding:10px; position:relative; } -#wishlist-list .wishlist-item .price-box { margin:0 0 5px; } -#wishlist-list li.no-qty .qty-holder { display:none; } -#wishlist-list .qty { width:25px; margin:-2px 0 0; padding:2px 3px; border-radius:5px; font-size:12px; } -#wishlist-list button { margin:0; padding:0; border:0; } -#wishlist-list button.btn-cart { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f39823), to(#f37221)); - background:-o-linear-gradient(top, #f39823 0%, #f37221 100%); - text-align:right; +.my-account .page-title {} +.my-account .page-title.title-buttons { height:auto; } +.my-account .page-title.title-buttons h1 { display:inline; white-space:normal; } +.my-account .page-title.title-buttons button { + background:none; + border:none; + color:#424242; + display:inline; + float:right; + font-size:15px; + font-weight:normal; margin:0; - padding:5px 10px; - font-size:11px; - font-weight:bold; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -#wishlist-list .wishlist-item button.btn-cart { - position:absolute; - bottom:10px; - right:10px; + padding:5px; + text-decoration:underline; } -#wishlist-list .edit-wishlist-item { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#ff9822), to(#f30)); - background:-o-linear-gradient(top, #ff9822 0%, #f30 100%); - border-radius:5px; +.my-account .box-head, +.my-account .sub-title, +.my-account .table-caption { color:#424242; font-size:18px; line-height:22px; margin:0 0 15px; } +.my-account .welcome-msg { margin:-10px 0 0; padding:0 15px 15px; } +.my-account .welcome-msg p { display:none; } +.my-account .welcome-msg .sub-title { font-weight:normal; margin:0; } +.my-account .messages + .welcome-msg { margin:15px 0 0; } + +.cart-collaterals, +.my-account > p, +.my-account > .col2-set, +.my-account > .order-info, +.my-account .fieldset, +.my-account .my-rewards, +.my-account .box-account, +.my-account .storecredit, +.my-account .order-history, +.my-account .order-details, +.my-account .review-history, +.my-account .giftregistry > p, +.my-account .recent-orders > p, +.my-account .review-history > p, +.my-account .recurring-profiles, +.my-account .billing-agreements, +.my-account .dashboard .reviews, +.my-account .order-page .order-info, +.my-account .order-page .order-date, +.my-account .product-review .product-details, +.my-account .dashboard .recent-orders, +.my-account .review-history .list-item, +.my-account .product-review .product-img-box, +.my-account .downloadable-products-history > p, +.my-account .downloadable-products-history .list-item { padding:15px; } + +.my-account .box, +.my-account .info-box { margin:0 0 10px; } +.my-account .box .box-title, +.my-account .info-box .box-title, +.my-account .order-history .pager, +.my-account .review-history .pager { background:url(../images/bg_gradient.png) repeat-x center #7f7f7f; color:#fff; height:30px; line-height:30px; padding:5px 8px; } +.my-account .box .box-title a, +.my-account .info-box .box-title a, +.my-account .recent-orders table a, +.my-account .order-history table a { + background:#3f3e3f; + -webkit-border-radius:5px; + -moz-border-radius:5px; + border-radius:5px; color:#fff; display:inline-block; - font-size:16px; - padding:7px 15px; - -webkit-box-shadow:0 0 1px #000; - box-shadow:0 0 1px #000; - text-shadow:0 1px 1px #111; -} -#wishlist-list a.btn-remove {} -#wishlist-list a.btn-remove img { vertical-align:top; } -#wishlist-list a.btn-edit { - background:-webkit-gradient(linear, 0 0, 0 100%, color-stop(1, #f5d605), color-stop(0, #ff9d05)); - background:-o-linear-gradient(top, #ff9d05 0%, #f5d605 100%); - font-family:Arial Rounded MT Bold; - border:2px solid #fff; - border-radius:15px; float:right; - display:inline-block; - color:#fff; - font-size:14px; + font-size:11px; font-weight:bold; - line-height:14px; - margin-right:5px; - padding:0 5px 2px; - text-shadow:0 1px 1px #999; - vertical-align:middle; - -webkit-box-shadow:0 0 5px rgba(0, 0, 0, 0.25); - box-shadow:0 0 5px rgba(0, 0, 0, 0.25); - -webkit-background-clip:padding-box; - background-clip:padding-box; -} -#wishlist-list .add-to { - color:#666; - display:inline-block; - line-height:1.1; - margin:10px 0 10px 10px; - border-bottom:1px dashed; -} -#wishlist-list .gift-registry-select { + line-height:11px; + padding:9px 15px; +} +.my-account .box .box-title h3 { display:inline; } + +.my-account .info-table th, +.my-account .info-table td { text-align:left; padding:2px; vertical-align:top; } +.my-account .box-content table { border-spacing:0; margin:10px 0; } +.my-account .box-content table th, +.my-account .box-content table td { padding:2px 5px 2px 0; text-align:left; vertical-align:top; } + +.my-account .order-history .pager, +.my-account .review-history .pager { height:auto; line-height:34px; text-align:right; } +.my-account .order-history .pager .amount, +.my-account .review-history .pager .amount { float:left; } +.my-account .info-box .box-title .separator { display:none; } +.my-account .box .box-content, +.my-account .info-box .box-content { padding:10px 5px; } +.my-account .info-box .box-content a {} + +.my-account .fieldset > .fieldset { background:none; padding:0; } +.my-account .fieldset > .fieldset + .fieldset { margin:15px 0; } +.my-account .fieldset > .fieldset > .buttons-set { padding:15px 0; } +.my-account .fieldset h2, +.my-account .fieldset h2.legend { color:#424242; font-size:18px; line-height:22px; margin:0 0 15px; } +.my-account form > .buttons-set { padding:15px; } +.my-account form > .buttons-set button + button { margin:10px 0 0 !important; } +.my-account .back-link { display:none; } +.my-account p.required { font-size:10px; line-height:12px; padding:0 15px 15px; text-align:right; } +.my-account > .buttons-set { padding:15px; } + +.my-account .dashboard > .sub-title { padding:15px 15px 0; margin:0; } +.my-account .dashboard > .sub-title + .col2-set { background:none; } +.my-account .dashboard .box .box-title:before, +.my-account .dashboard .info-box .box-title:before { + background:rgba(0, 0, 0, .5); + border-radius:5px; + content:'+'; + font-family:Arial; display:inline-block; - vertical-align:top; + line-height:15px; + padding:5px 0; text-align:center; + margin:2px 5px 0 0; + vertical-align:top; + width:20px; } -#wishlist-list .btn-gift-registry { - padding:10px; -} -#wishlist-list .btn-gift-registry select { - font-size:13px; -} -#wishlist-list .btn-gift-registry strong { - display:block; -} +.my-account .dashboard .box .box-title.collapsed:before, +.my-account .dashboard .info-box .box-title.collapsed:before { content:'−'; } +.my-account .dashboard .box-reviews ol { list-style:none; padding:0; } +.my-account .dashboard .box-reviews li + li { margin:10px 0 0; } +.my-account .dashboard .box-reviews .number { float:left; margin:0 10px 0 0; } +.my-account .dashboard .box-reviews .details { display:table; width:90%; } +.my-account .dashboard .box-reviews .details p { display:inline-block; vertical-align:middle; } +.my-account .dashboard .box-reviews .details .rating-box { display:inline-block; vertical-align:middle; } + +.my-account .dashboard .recent-orders .box-content { padding:0; } + +.my-account .order-details .data-table + .order-additional { margin:15px 0 0; } + +/* My Orders */ +.my-account .recent-orders .pager, +.my-account .recent-orders + .buttons-set { display:none; } + +/* My Downloadable Products, My Reviews */ +.my-account .review-history { padding:0; } + +.my-account .downloadable-products-history .list, +.my-account .review-history .list { color:#424242; font-size:12px; list-style:none; margin:0; padding:0; } +.my-account .downloadable-products-history .list-item, +.my-account .review-history .list-item { margin:0; } +.my-account .downloadable-products-history .list-item dt, +.my-account .review-history .list-item dt { font-size:15px; line-height:18px; font-weight:bold; margin:0 0 10px; } +.my-account .downloadable-products-history .pager, +.my-account .review-history .pager { display:none; } + +.my-account .review-history .list-item h2 { display:inline; } +.my-account .review-history .list-item dd { padding:5px 0; } +.my-account .review-history .list-item .date { font-size:12px; } + +.my-account .review-history table { border-collapse:collapse; } +.my-account .review-history table td { padding:4px; vertical-align:top; } +.my-account .review-history table td .rating-box { margin:0 0 10px; } + +.my-account .recent-orders table, +.my-account .order-history table { border-collapse:collapse; color:#4c4c4c; font-size:12px; width:100%; } +.my-account .recent-orders th, +.my-account .order-history table th, +.my-account .recent-orders td, +.my-account .order-history table td { padding:4px; text-align:left; vertical-align:middle; } +.my-account .recent-orders th, +.my-account .order-history table th { font-weight:bold; padding:11px 8px; } +.my-account .recent-orders td a, +.my-account .order-history td a { font-size:12px; float:none; padding:6px 8px; } + +/* My Billing Agreements */ +.billing-agreement-view .my-account .page-title { height:auto; } +.billing-agreement-view .my-account .page-title h1 { display:block; margin:0 0 10px; white-space:normal; } +.billing-agreement-view .my-account .page-title h1 span { display:block; } + +.my-account .billing-agreements > p { padding:15px; } +.my-account .billing-agreements .box-content > p + .form-list { margin:10px 0 0; } +.my-account .billing-agreements .box-content .form-list select { margin:0 0 15px; } -#wishlist-list .btn-gift-registry button.btn-cart { -} -.wishlist-wrap { position:relative; } -.wishlist-wrap.grouped-items #wishlist-list li { min-height:initial; position:static; } -.wishlist-wrap .remove-all { display:none; top:12px; right:10px; } -.wishlist-index-index .my-account > a { display:none; } +.my-account .box-recent .data-table { border-spacing:0; width:100%; } +.my-account .box-recent .data-table th, +.my-account .box-recent .data-table td { padding:2px 5px; } +.my-account .box-recent .data-table th {} +.my-account .box-recent .data-table tr:nth-child(odd) {} +.my-account .box-recent .data-table tr td:nth-child(3) {} +.my-account .box-recent .data-table tr td:first-child a {} + +.my-account .order-details .data-table { border-collapse:collapse; width:100%; } +.my-account .order-details .data-table th, +.my-account .order-details .data-table td { padding:10px; text-align:left; vertical-align:top; } +.my-account .order-details .data-table tbody tr:first-child { } +.my-account .order-details .data-table tbody th, +.my-account .order-details .data-table tbody td { border-bottom:1px solid #e4e4e4; } +.my-account .order-details .data-table tfoot { background:#f5f5f5; } + +.my-account .product-review { padding:0; } +.my-account .product-review .ratings { text-align:center; } +.my-account .product-review .ratings .rating-box { display:inline-block; padding:15px 0; } +.my-account .product-review .ratings .rating-links { color:#424242; } +.my-account .product-review .product-details .product-name { color:#424242; font-size:18px; font-weight:bold; line-height:22px; margin:0 0 15px; } +.my-account .product-review .product-details .date, +.my-account .product-review .product-img-box > p, +.my-account .product-review .product-details .product-name + strong { display:none; } -.wishlist-wrap.grouped-items .remove-all { - display:block; -} -.wishlist-wrap.grouped-items .price-box, -.wishlist-wrap.grouped-items .truncated, -.wishlist-wrap.grouped-items b, -.wishlist-wrap.grouped-items button, -.wishlist-wrap.grouped-items input, -.wishlist-wrap.grouped-items .add-to, -.wishlist-wrap.grouped-items .btn-remove, -.wishlist-wrap.grouped-items .btn-edit, -.wishlist-wrap.grouped-items .btn-gift-registry { - display:none !important; -} -.wishlist-wrap.grouped-items #wishlist-list .wishlist-item { - padding:10px 0 0; -} -.wishlist-wrap.grouped-items #wishlist-list li { - border:0; - padding:3px 0 0 77px; -} -.wishlist-wrap.grouped-items #wishlist-list li:last-child { - padding-bottom:15px; -} -.wishlist-wrap.grouped-items #wishlist-list li > a { - position:absolute; - top:0; - left:0; -} +.my-account .storecredit .account-balance { margin:0 0 10px; } -.giftregistry-table-wrap { margin:-10px -10px 10px; } -.giftregistry-table-wrap table { border-spacing:0; border-collapse:collapse; width:100%; } -.giftregistry-table-wrap th { background:#f6f6f6; text-align:left; white-space:nowrap; } -.giftregistry-table-wrap th, -.giftregistry-table-wrap td { border:1px solid #ddd; padding:5px 7px; } -.giftregistry-table-wrap td { vertical-align:top; } -.giftregistry-table-wrap td[colspan="2"] { background:-webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#ddd)); border-bottom-color:#ccc; text-align:center; text-shadow:0 1px 0 #fff; } -.giftregistry-table-wrap td .separator { color:#666; margin:0 2px; vertical-align:baseline; } +.customer-address-index .addresses-list ol { list-style:none; margin:0; padding:0; } -.data-table-gift-registry-wrap { margin:-10px -10px 0; } -.data-table-gift-registry { border-spacing:0; border-collapse:collapse; margin:0 0 10px; width:100%; } -.data-table-gift-registry th { background:#f6f6f6; vertical-align:top; } -.data-table-gift-registry th, -.data-table-gift-registry td { border:1px solid #eee; padding:5px 10px; text-align:left; } -.data-table-gift-registry tr:nth-child(even) td { background:#f9f9f9; } +.my-account .my-rewards .info-box { position:relative; } +.my-account .my-rewards .info-box .box-content { padding-bottom:50px; } +.my-account .my-rewards .info-box .box-title a { position:absolute; bottom:10px; left:5px; } -/* Checkout +/* Order -----------------------------*/ -.checkout-cart-index .messages { - margin:0 -10px 0 !important; -} +.my-account .order-page .order-info {} -.checkout-onepage-index .page-title { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); - background:-o-linear-gradient(top, #fff 0%, #ccc 100%); - border:solid #999; - border-width:1px 0; - border-top-color:#ccc; - margin:0 -10px 10px; - padding:10px; -} -#checkoutSteps { margin:-7px; padding:0; list-style:none; -webkit-box-shadow:3px -3px 2px 0 #F0F0F0; box-shadow:3px -3px 2px 0 #F0F0F0; color:#636363; } -#checkoutSteps .step-title h2 { font-size:16px; font-weight:bold; } -#checkoutSteps select { border:1px solid; border-color:#8e8e8e #e1e1e1 #e1e1e1 #8e8e8e; border-radius:5px; font-size:18px; padding:5px 30px 5px 5px; } -#checkoutSteps li { margin:0 0 3px; } -#checkoutSteps li .step-title { - background: -webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - margin:-1px 0 0 0; - padding:5px 10px; - border:1px solid #CECECE; - border-radius:2px; -} -#checkoutSteps li.allow .step-title { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fbfbfb), to(#d1d3d4)); - background:-o-linear-gradient(top, #fbfbfb 0%, #d1d3d4 100%); - margin:-1px 0 0 0; - padding:5px 10px; - border:1px solid #c6c6c6; - border-radius:2px; -} -#checkoutSteps li.active .step-title { - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffa84c), color-stop(100%, #ff7b0d)); - background:-o-linear-gradient(top, #ffa84c 0%, #ff7b0d 100%); - color:#fff; - text-shadow:0 -1px 0 #ff7b0d; -} -#checkoutSteps li .step-title a { display:none; } -#checkoutSteps li .step { - background: -webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#fefefe)); - background:-o-linear-gradient(top, #eee 0%, #fefefe 100%); - margin:-1px 0 10px; - padding:10px; +/* Wishlist +-----------------------------*/ +.my-wishlist .data-table { border-spacing:0; border-collapse:collapse; width:100%; } +.my-wishlist .data-table th, +.my-wishlist .data-table td { padding:15px; text-align:left; vertical-align:top; } +.my-wishlist .data-table tr { } +.my-wishlist .data-table .select { display:none; } +.my-wishlist .data-table .btn-remove { float:right; } +.my-wishlist .data-table .product-name { font-size:18px; margin:3px 0 10px; } +.my-wishlist .data-table .product-image { float:left; margin:0 10px 10px 0; } +.my-wishlist .data-table .product-image img { display:block; margin:0 0 10px; } +.my-wishlist .data-table .price-box { margin:10px 0; } +.my-wishlist .data-table .comment { clear:left; margin:10px 0 0; } +.my-wishlist .data-table .btn-cart { background:transparent; border:none; color:#1394ca; font-size:15px; height:16px; display:inline-block; margin:0 5px; padding:0; text-decoration:underline; -webkit-appearance:none; vertical-align:middle; } +.my-wishlist .data-table .added-on { font-size:11px; } +.my-wishlist .data-table .qty { vertical-align:middle; width:50px; } +.my-wishlist .buttons-set { padding:15px 15px 10px; } +.my-wishlist .buttons-set:empty, +.my-wishlist .wishlist-empty + .buttons-set { display:none; } +.my-wishlist .buttons-set button { margin:10px 0 !important; } + +.my-wishlist .cart-cell { display:table; margin:0 0 10px; } +.my-wishlist .item-manage { display:table; } +.my-wishlist .item-manage .split-button { + background:#ececec; + border:1px solid; + border-color:#e4e4e4 #e4e4e4 #dcdcdc; border-radius:2px; - border:1px solid #CECECE; -} -#checkoutSteps li .step select { width:100%; } -#checkoutSteps li .step .input-box .v-fix { display:inline-block; width:49%; } -#checkoutSteps li .step .input-box .v-fix .year { width:auto; } -#checkoutSteps li .step .input-box .cvv-what-is-this { display:inline-block; vertical-align:top; margin:0 0 0 5px; font-size:13px; color:#F4641E; } -#checkoutSteps li .step .tool-tip .btn-close { padding:0 0 5px 0; text-align:right; font-size:13px; } -#checkoutSteps li .step .tool-tip .btn-close a { color:#DF2327; } -#checkoutSteps li .step .tool-tip .tool-tip-content img { width:100%; } -#checkoutSteps li .step .control .input-box { display:inline; } -#checkoutSteps li .step input[type="radio"] { vertical-align:top; } -#checkoutSteps li .step .sp-methods dt { font-weight:bold; } -#checkoutSteps li .step .sp-methods + div { padding:10px 0 0; } -#checkoutSteps li .step .please-wait { margin:0 0 0 10px; } -#checkoutSteps li .step .please-wait img { vertical-align:middle; } -#checkoutSteps li .step fieldset .required em { margin:0 5px 0 0; color:#F4641E; } -#checkoutSteps li .step .buttons-set { padding:10px 0 0; } -#checkoutSteps #customerbalance_placer { padding:0 0 10px; } -#checkoutSteps li .step .buttons-set:after { - content:"."; - display:block; - clear:both; - visibility:hidden; - line-height:0; - height:0; -} -#checkoutSteps li .step .gift-messages, -#checkoutSteps li .step .gift-messages-form { margin:0 0 5px; } -#checkoutSteps li .step .gift-messages h3, -#checkoutSteps li .step .gift-messages-form h4 { margin:0 0 3px; } -#checkoutSteps li .step .gift-messages-form ol { list-style:none; margin:0; padding:0; } -#checkoutSteps li .step .gift-messages-form ol .input-box textarea { width:98%; } -#checkoutSteps li .step .gift-messages-form .inner-box p { display:none; } -#checkoutSteps li .step .gift-messages-form .product-name { font-size:14px; } -#checkoutSteps li .step .buttons-set .required { padding:0 0 10px; color:#F4641E; font-weight:bold; } -#checkoutSteps li .step .back-link { float:left; } -#checkoutSteps li .step .back-link a { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f39823), to(#f37221)); - background:-o-linear-gradient(top, #f39823 0%, #f37221 100%); - display:block; - padding:5px 10px; - font-size:11px; - font-weight:bold; - color:#FFF; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -#checkoutSteps li .step-title h2 { display:block; } -#checkoutSteps li.allow .step-title h2 { background:url(../images/bg_checkout_step_passed.png) no-repeat center right; } -#checkoutSteps li.active .step-title h2 { background:none !important; } -#checkoutSteps li .step-title .number { display:none; } -#checkoutSteps .form-list .field label, -#checkoutSteps .form-list .wide label { padding:0; font-weight:bold; } -#checkoutSteps li .step .buttons-set button { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f39823), to(#f37221)); - background:-o-linear-gradient(top, #f39823 0%, #f37221 100%); - float:right; - padding:5px 10px; - font-size:14px; - font-weight:bold; - color:#fff; - border:1px solid #FFF; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9F9F9F; - box-shadow:0 3px 3px 0 #9F9F9F; - -webkit-background-clip:padding-box; - background-clip:padding-box; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} -#checkoutSteps .validation-advice { color:#F4641E; } -#checkoutSteps .back-link small { display:none; } -#co-payment-form dd, -#checkoutSteps li .step dd { margin:0; padding:0; } -#opc-billing .step .required em { display:none; } -#checkout-review-table { border-spacing:0; width:100%; font-size:12px; } -#checkout-review-table th { background:#909090; color:#FFF; } -#checkout-review-table th:first-child { text-align:left; } -#checkout-review-table tr.odd td { background:#EEE; } -#checkout-review-table th, -#checkout-review-table td { padding:2px 5px; } -#checkout-review-table td { vertical-align:top; } -#checkout-review-table td.last { text-align:right; } -#checkout-review-table .label { white-space:nowrap; } -#checkout-review-table .cart-price { font-weight:bold; } -#checkout-review-submit .buttons-set:after { - content:"."; - display:block; - clear:both; - visibility:hidden; - line-height:0; - height:0; + color:#555; + margin:0 0 10px; + box-shadow:0 1px 3px #eee; + position:relative; } -#checkout-review-submit .buttons-set button { float:right; } - -#checkout-review-submit .buttons-set .f-left { - float:left; +.my-wishlist .item-manage .split-button .list-container { + background:#fff; + border:1px solid #e4e4e4; font-size:12px; + display:none; + top:100%; + right:0; position:absolute; - margin:-16px 0 0; -} -#checkout-review-submit .buttons-set .f-left a { - display:block; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#333), to(#111)); - background:-o-linear-gradient(top, #333 0%, #111 100%); - border:none; - color:white; - font-size:13px; - line-height:1; - font-weight:bold; margin:2px 0 0; - padding:8px 10px; - text-shadow:0 1px 0 black; - -webkit-border-radius:5px; - border-radius:5px; -} -#checkout-step-login .checkout-login { - border-bottom:1px solid #ccc; - padding:0 0 12px; -} -#checkout-step-login .checkout-register { - border-top:1px solid #fff; - padding:10px 0 0; -} -#checkoutSteps #checkout-step-login .checkout-login h4, -#checkoutSteps #checkout-step-login .checkout-register h3 { - font-size:16px; - text-shadow:0 1px 0 #fff; - margin:0; + min-width:100%; + white-space:nowrap; + z-index:10; + box-shadow:0 0 6px rgba(0, 0, 0, .15); } -#checkoutSteps #checkout-step-login .checkout-login p, -#checkoutSteps #checkout-step-login .checkout-register p { - margin:0 0 4px; +.my-wishlist .item-manage .split-button .list-container li { + border-bottom:1px solid #e4e4e4; + color:#1394ca; + padding:8px; } -#checkoutSteps #checkout-step-login .checkout-login label { - font-weight:bold; +.my-wishlist .item-manage .split-button .list-container li:last-child { + border-bottom:none; } -#checkoutSteps #checkout-step-login .checkout-login .buttons-set button { - float:none; - margin:6px 10px 2px 0; +.my-wishlist .item-manage .split-button .list-container li.new { background:#e4e4e4; color:#424242; text-shadow:0 1px 0 #fff; } +.my-wishlist .item-manage .split-button .list-container li.new:before { content:'+'; display:inline-block; margin-right:5px; } + +.my-wishlist .item-manage .split-button strong { background:#fff; border-radius:2px; display:block; border-right:1px solid #e4e4e4; font-size:12px; margin:0 25px 0 0; padding:5px 10px 5px 10px; } +.my-wishlist .item-manage .split-button strong:after { + content:''; + position:absolute; + border-left:3px solid transparent; + border-right:3px solid transparent; + border-top:6px solid #555; + position:absolute; + font-size:0; + line-height:0; + width:0; + top:11px; + right:11px; + z-index:2; } -#checkoutSteps #checkout-step-login .checkout-register .control input[type=radio] { - height:20px; +.my-wishlist .item-manage .split-button strong + a { display:block; text-align:center; line-height:28px; overflow:hidden; position:absolute; top:0; left:0; right:0; text-indent:-200%; } + +.my-wishlist .truncated .details { display:none; } +.my-wishlist .truncated .item-options p { font-weight:bold; margin:10px 0; } + +.wishlist-empty { padding:0 15px 15px; } + +.item-manage .split-button {} +.item-manage .split-button .change { text-decoration:underline; } +.item-manage .split-button.active .change { color:#424242; text-decoration:none; } +.item-manage .split-button.active .list-container { display:block; } + +.item-options { font-size:13px; } +.item-options .price { font-weight:bold; } +.item-options dt { color:#424242; font-weight:bold; margin:0 0 2px; } +.item-options dd + dt { margin:12px 0 0; } + +.wishlist-management { padding:15px; } +.wishlist-management .sub-title h2 { display:inline-block; line-height:18px; position:relative; } +.wishlist-management .sub-title .item-count { margin:0 5px; } +.wishlist-management .table-caption .label { display:inline-block; vertical-align:top; } + +#wishlists-move, +#wishlists-copy { display:none; } +#wishlists-select { display:inline-block; position:relative; } +#wishlists-select + p { margin:10px 0 0; } +#wishlists-select.active .list-container { display:block; } +#wishlists-select .list-container { background:#fff; border:1px solid #e4e4e4; display:none; margin:5px 0 0; position:absolute; white-space:nowrap; box-shadow:0 2px 6px rgba(0, 0, 0, .25); } +#wishlists-select .list-container li { border-bottom:1px solid #e4e4e4; } +#wishlists-select .list-container li:last-child { border-bottom:none; } +#wishlists-select .list-container li a { display:block; padding:5px 10px; } +#wishlists-select .list-container li.new { background:#e4e4e4; color:#424242; padding:5px 10px; text-shadow:0 1px 0 #fff; } +#wishlists-select .list-container li.new:before { content:'+'; display:inline-block; margin-right:5px; } + +/* Gift Card Account */ +.my-account .giftcardaccount .error-msg { background:#333; color:#fff; padding:15px; text-shadow:0 1px 0 #111; } +.my-account .giftcardaccount .please-wait { position:absolute; top:103px; left:103px; } +.my-account .giftcardaccount .buttons-set button:last-child { margin:10px 0 0 !important; }} + +/* Cart +-----------------------------*/ +.cart .page-title.title-buttons { height:auto; padding:0; } +.cart .page-title.title-buttons h1 { padding:10px 15px; } +.cart .page-title.title-buttons .checkout-types { padding:15px; } + +.cart-table { border-spacing:0; border-collapse:collapse; width:100%; } +.cart-table td { padding:10px; vertical-align:top; } +.cart-table td:first-child { width:75px; } +.cart-table .price-box { display:table; width:100%; } +.cart-table .cart-price-box { display:table-cell; text-align:left; vertical-align:middle; } +.cart-table .cart-price-box .cart-price { font-size:12px; display:block; } +.cart-table .cart-price-box .cart-price + .cart-price { margin:5px 0 0; padding:5px 0 0; } +.cart-table .cart-price-box + .cart-price-box { margin-left:10px; text-align:right; } +.cart-table .cart-price-box + .cart-price-box .cart-price { color:#424242; font-size:15px; font-weight:bold; } +.cart-table .qty-wrap { display:table-cell; vertical-align:top; width:55px; } +.cart-table .qty { font-size:13px; text-align:center; vertical-align:middle; width:35px; } +.cart-table .qty + span { font-size:12px; margin:0 2px; vertical-align:middle; } +.cart-table .gift-registry-name { font-size:12px; margin:-12px 0 10px; } +.cart-table .btn-remove { float:right; position:relative; top:0; right:-5px; } +.cart-table .messages td { background-color:#444 !important; color:#fff; font-size:12px; padding:0 10px 10px; text-shadow:0 1px 0 #111; } +.cart-table .messages p { margin:10px 0 0; } +.cart-table .product-image { display:block; margin:0 0 10px; vertical-align:top; } +.cart-table .product-name { color:#424242; font-size:18px; line-height:22px; margin:0 0 15px; } +.cart-table .product-name a { color:#424242; } + +.cart-table tfoot button + button { margin:10px 0 0; } + +.cart-table .downloadable { margin:10px 0 0; } +.cart-table .product-options td { background:none; padding:0; } +.cart-table .product-options .toggle { color:#1394ca; cursor:pointer; display:inline-block; margin:10px; } +.cart-table .product-options .item-options { padding:10px; } + +.cart-table .toggle { font-size:13px; display:inline-block; } + +.cart-collaterals h2 { color:#424242; font-size:15px; font-weight:normal; line-height:18px; margin:0 0 5px; } +.cart-collaterals label { display:none; } +.cart-collaterals button { background:none; color:#1394ca; display:inline-block; border:0; font-size:15px; margin:0; padding:5px; text-decoration:underline; vertical-align:middle; } +.cart-collaterals button + button { padding:5px 0; } +.cart-collaterals .v-fix { display:inline-block; margin-right:5px; vertical-align:middle; width:60%; } +.cart-collaterals .v-fix + button { vertical-align:top; } + +.cart-collaterals .discount { margin:0 0 10px; } +.cart-collaterals .giftcard .error-msg, +.cart-collaterals .giftcard .please-wait { display:block; font-size:12px; line-height:15px; margin:0 0 5px; } +.cart-collaterals .btn-gift-registry { margin:10px 0 0; } + +.cart .totals, +.cart .checkout-types { padding:15px; } +.cart .checkout-types a { font-size:12px; display:block; margin:5px 0 0; padding:5px; text-decoration:underline; } +.cart .checkout-types li { margin:0 0 10px; } +.cart .checkout-types li .paypal-or { padding:5px 0; } + +.cart .totals table { border-spacing:0; border-collapse:collapse; font-size:13px; width:100%; } +.cart .totals table th, +.cart .totals table td { padding:5px; } +.cart .totals table .price { white-space:nowrap; } +.cart .totals table .btn-remove { height:20px; width:20px; vertical-align:bottom; } +.cart .totals table .btn-remove img { display:none; } + +.failed-products { border-bottom:1px solid #eae8ea; margin:10px 0 0; padding:0 0 10px; } +.failed-products h2 { font-weight:bold; } +.failed-products .cart-table thead { display:none; } + +.checkout-success, +.paypal-review-order { padding:15px; } +.paypal-review-order select { width:100% !important; } +.paypal-review-order .sub-title { color:#424242; font-size:18px; line-height:22px; margin:0 0 15px; } +.paypal-review-order .legend { font-size:16px; line-height:20px; margin:15px 0; } +.paypal-review-order .info-set { margin:0 0 15px; } +.paypal-review-order .buttons-set button + button { margin:10px 0 0; } +.paypal-review-order .buttons-set .please-wait { display:block; font-size:12px; padding:10px; text-align:center; } + +.paypal-review-order .data-table { border:1px solid #eee; border-spacing:0; border-collapse:collapse; font-size:13px; margin:15px 0; width:100%; } +.paypal-review-order .data-table tfoot { background:#eee; } +.paypal-review-order .data-table th { text-align:left; } +.paypal-review-order .data-table th:last-child { text-align:right; } +.paypal-review-order .data-table th { border-bottom:1px solid #eee; padding:5px; } +.paypal-review-order .data-table td { border-bottom:1px solid #eee; padding:5px; vertical-align:top; } + +.checkout-success .sub-title { color:#424242; font-size:18px; line-height:22px; margin:0 0 15px; } +.checkout-success p { margin:10px 0; } + +/* Checkout +-----------------------------*/ +.opc { list-style:none; margin:0; padding:10px 10px 0; } + +.opc p.required { font-size:10px; line-height:12px; margin:10px 0; text-align:right; } +.opc .back-link { display:none; } +.opc .v-middle { vertical-align:middle; } +.opc .please-wait { display:block; font-size:12px; padding:10px; text-align:center; } + +.opc .step-title { background:url(../images/bg_gradient.png) repeat-x center #7f7f7f; color:#fff; height:30px; line-height:30px; padding:5px 8px; } +.opc .step-title h2 { font-size:15px; font-weight:bold; } +.opc .step-title a, +.opc .step-title .number { display:none; } + +.opc .step { background-color:#fff !important; padding:10px; position:relative; } +.opc .step .form-list { margin:0 0 15px; } + +.opc .section { margin:0 0 10px; opacity:.5; } +.opc .section.allow.active { opacity:1; } +.opc .section.allow .step-title h2:before { + background:rgba(0, 0, 0, .5); + border-radius:5px; + content:'+'; + font-family:Arial; + display:inline-block; + line-height:15px; + padding:5px 0; + text-align:center; + margin:2px 5px 0 0; + vertical-align:top; width:20px; - vertical-align:middle; } +.opc .section.allow.active .step-title h2:before { display:none; } -.add-gift-message, -.gift-message-form { - margin:10px 0 20px; -} +.checkout-onepage-payment-additional-giftcardaccount { margin:15px 0; } -.add-gift-message h3, -.gift-message-form h4 { - margin:0 0 5px; -} +#checkout-step-login h4 { color:#424242; margin:0 0 10px; } +#checkout-step-login p { font-size:14px; margin:0 0 10px; } -.gift-message-form p { - margin:0 0 8px; -} +.opc .sp-methods > dt { color:#424242; font-size:15px; font-weight:bold; line-height:18px; margin:0 0 10px; } +.opc .sp-methods > dd + dt { margin:10px 0; } -.gift-message-form .product-image { - margin:0 0 2px; -} +.opc .tool-tip { background:#fff; position:absolute; padding:10px; -webkit-box-shadow:0 0 10px rgba(0, 0, 0, .5); } +.opc .tool-tip .btn-close { padding:0 0 15px 0; text-align:right; font-size:13px; } +.opc .tool-tip .btn-close a { color:#DF2327; } +.opc .tool-tip .tool-tip-content img { width:100%; } -.gift-message-form .product-image img { - -webkit-box-shadow:0 1px 2px #999; - box-shadow:0 1px 2px #999; -} +.opc .cvv-what-is-this { border-bottom:1px dashed; display:inline-block; margin:5px 5px 0; font-size:13px; vertical-align:top; } -.gift-message-form ol { - list-style:none; - margin:0 0 10px; - padding:0; -} +.opc li:last-child .step { padding:0; } -.gift-message-form .gift-item:after { - content:""; - display:table; -} -.gift-message-form .gift-item:after { - clear:both; -} +#checkoutSteps li .step .input-box .v-fix { display:inline-block; width:49%; } +#checkoutSteps li .step .input-box .v-fix .year { width:auto; } -.gift-message-form .number { - display:none; -} +.tool-tip .btn-close { padding:0 0 5px 0; text-align:right; font-size:13px; } +.tool-tip .btn-close a { color:#DF2327; } +.tool-tip .tool-tip-content img { width:100%; } -.gift-message-form .form-list { - clear:both; - border-bottom:1px solid #ccc; - margin:0 0 10px; - padding:10px 0; -} +.opc .order-review .data-table { font-size:13px; border-spacing:0; border-collapse:collapse; margin:0 0 15px; width:100%; } +.opc .order-review .data-table thead tr, +.opc .order-review .data-table tbody tr:first-child { text-align:left; } +.opc .order-review .data-table tbody tr:last-child td:last-child { font-weight:bold; } +.opc .order-review .data-table th { text-align:left; } +.opc .order-review .data-table th:last-child { float:right; } +.opc .order-review .data-table th, +.opc .order-review .data-table td { padding:5px; } +.opc .order-review .data-table tfoot { background:#eee; } +.opc .order-review .data-table tfoot th { font-weight:normal; text-align:right; } +.opc .order-review .data-table .product-name { color:#424242; } +.opc .order-review .data-table .item-options { font-size:12px; margin:10px 0 0; } -.gift-message-form .product-img-box { - float:left; - margin-right:10px; -} +.checkout-review-table { padding:0; } -.extra-options-container { clear:both; } +.opc .order-review .buttons-set > p { margin:15px 0; } -/* Sitemap ------------------------------*/ -.sitemap { margin:-1px -10px -10px; } -.sitemap li { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#eee)); - background:-o-linear-gradient(top, #fff 0%, #eee 100%); - border-top:1px solid #ccc; -} -.sitemap li a { background:url(../images/i_arrow_small.png) no-repeat 96% 50%; background-size:8px 12px; display:block; padding:10px; font-size:16px; } -.catalog-seo-sitemap-category .page-title { display:none; } -.catalog-seo-sitemap-category .page-sitemap .pager, -.catalog-seo-sitemap-category section .links, -#sitemap_top_links { display:none; } - -/* Returns ------------------------------*/ -.sales-guest-form .page-title { display:none; } -.sales-guest-form .breadcrumbs { margin:0 -10px 10px; } +#checkoutSteps #customerbalance_placer { padding:0 0 10px; } +.opc .gift-messages, +.opc .gift-messages-form { margin:10px 0 20px; } -/* Search terms ------------------------------*/ -.catalogsearch-term-popular .page-title { display:none; } -.catalogsearch-term-popular .tags-list li { display:inline-block; padding:0 10px; line-height:2; font-size:16px; } +.opc .gift-message-form .price, +.opc .gift-wrapping-form label { font-weight:bold; } +.opc .gift-wrapping-form label { color:#424242; } +.opc .gift-options-for-order { border:1px solid #e4e4e4; border-radius:2px; box-shadow:0 0 3px rgba(0, 0, 0, .15); margin:10px 0; padding:10px; } +.opc .gift-options-for-order div > a { display:inline-block; margin:10px 0 0; } +.opc .gift-options-for-order .fieldset { margin:10px 0 0; } -/* Contact us, Share Wishlist ------------------------------*/ -.contacts-index-index .page-title { display:none; } -.contacts-index-index .fieldset h2 { display:none; } -.contacts-index-index .messages { margin:0 -10px 0; } -.contacts-index-index section form, -.wishlist-index-share section form { - background:-webkit-gradient(linear, 0 0, 0 100%,color-stop(0, #FCFDFD), color-stop(0.8, #eee), color-stop(1, #e8e9e9)); - background:-o-linear-gradient(top, #fcfdfd 0%, #eee 80%, #e8e9e9 100%); - display:block; - border:1px solid #d1d1d1; - margin:2px -7px -7px; - padding:9px; - border-radius:2px 2px 5px 5px; -} -.wishlist-index-share section form { margin:2px 3px -7px; } -.contacts-index-index label, -.wishlist-index-share label { color:#5E5E5E; font-weight:bold; } -.contacts-index-index label em, -.wishlist-index-share label em { display:inline; margin:0 3px 0 0; color:#F4641E; } -.contacts-index-index textarea { width:99%; height:200px; } -.contacts-index-index .fields .field { margin:0 0 8px 0; } -.contacts-index-index .buttons-set .required, -.wishlist-index-share .buttons-set .required { float:right; font-size:12px; font-weight:bold; color:#F4641E; display:block; } -.contacts-index-index .buttons-set button, -.wishlist-index-share .buttons-set button { - background:-webkit-gradient(linear, 0 0, 0 100%, from(#f39823), to(#f37221)); - background:-o-linear-gradient(top, #f39823 0%, #f37221 100%); - padding:5px 10px; - font-size:12px; - color:#fff; - border:1px solid #fff; - border-radius:5px; - -webkit-box-shadow:0 3px 3px 0 #9f9f9f; - box-shadow:0 3px 3px 0 #9f9f9f; - text-shadow:0 1px 2px rgba(0, 0, 0, 0.25); -} +.opc .gift-wrapping-design { padding:10px 0 0; overflow:hidden; } +.opc .gift-wrapping-design .image-box { float:left; margin:0 10px 10px 0; } +.opc .gift-messages h3, +.opc .gift-messages-form h4 { color:#424242; font-weight:bold; line-height:18px; margin:0 0 10px; } +.opc .gift-messages-form p { margin:0 0 10px; } +.opc .gift-messages-form ol { list-style:none; margin:0 0 10px; padding:0; } -/* Advanced search ------------------------------*/ -.catalogsearch-advanced-index .breadcrumbs { margin-bottom:10px; } -.catalogsearch-advanced-index .page-title { display:none; } -.catalogsearch-advanced-index .advanced-search h2.legend { display:none; } -.catalogsearch-advanced-index .input-range { font-size:16px; } -.catalogsearch-advanced-index .input-range input { width:40%; } -.catalogsearch-advanced-index button[type=submit] { - padding:5px 10px; - border:1px solid #CECECE; - border-radius:2px; - background:-webkit-gradient(linear, 0 0, 0 100%, from(#fefefe), to(#eee)); - background:-o-linear-gradient(top, #fefefe 0%, #eee 100%); - font-size:16px; -} -#advanced-search-list > li:nth-last-child(-n+3) { - display:inline-block; - width:32%; -} -#advanced-search-list > li:nth-last-child(-n+3) select { - width:100%; -} +.opc .gift-messages-form .number { display:none; } +.opc .gift-messages-form .product-image { margin:0 0 2px; } +.opc .gift-messages-form .product-name { color:#424242; margin:0 0 10px; } + +.extra-options-container { clear:both; } +.checkout-agreements { border:1px solid #e4e4e4; list-style:none; padding:10px; } +.checkout-agreements .agree { font-weight:bold; margin:10px 0 0; text-align:center; } +.checkout-agreements .agree input, +.checkout-agreements .agree label { margin-right:10px; vertical-align:middle; } -/* Contact us +/* Advanced search -----------------------------*/ +.catalogsearch-advanced-result .search-summary, +.catalogsearch-advanced-result .page-title + p { display:none; } +.catalogsearch-advanced-result .toolbar { top:-100px; } -/* +.catalogsearch-advanced-index .fieldset, +.catalogsearch-advanced-index .buttons-set { padding:15px; } +.catalogsearch-advanced-index .fieldset .legend { color:#424242; font-size:18px; line-height:22px; margin:0 0 15px; } -.sendfriend-product-send .page-title { background:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#ccc)); border:solid #999; border-width:1px 0; border-top-color:#ccc; margin:0 -10px 10px; padding:10px; } -.sendfriend-product-send .fieldset h2.legend { font-size:18px; margin:0 0 5px; } -.sendfriend-product-send textarea { width:99%; height:200px; } -.sendfriend-product-send label em { margin:0 3px 0 0; color:#E23130; } -.sendfriend-product-send .validation-advice { color:#E23130; } -.sendfriend-product-send .fields .field { clear:both; } -.sendfriend-product-send .buttons-set { padding:40px 0 0 0; position:relative; } -.sendfriend-product-send .buttons-set:after { - content:"."; +/* CMS */ +.cms-home .std { display:none; } +.cms-home section { padding-bottom:0; } + +.std ul, +.std ol, +.std dl, +.std p, +.std address, +.std blockquote, +.std table { margin-bottom:1em; } +.std ul { list-style:disc outside; padding-left:1.5em; } +.std ol { list-style:decimal outside; padding-left:1.5em; } +.std ul ul { list-style-type:circle; } +.std ul ul, +.std ol ol, +.std ul ol, +.std ol ul { margin:.5em 0; } +.std dt { font-weight:bold; } +.std dd { padding:0 0 0 1.5em; } +.std blockquote { font-style:italic; padding:0 0 0 1.5em; } +.std address { font-style:normal; } +.std b, +.std strong { font-weight:bold; } +.std i, +.std em { font-style:italic; } +.std hr { margin:1.5em 0; color:#d9d9d9; } +.std table { width:100%; max-width:100%; } +.std table thead { background:#e8e8e8; } +.std table th { background:#f7f7f7; word-break:break-word; font-weight:bold; } +.std table thead th { background:#e8e8e8; font-weight:bold; } +.std table th, +.std table td { padding:2px 4px; border:1px solid #d9d9d9; } +.std table[border="0"] { border-width:0; } +.std table[border="0"] th, +.std table[border="0"] td { border-width:0; } + +ul.disc li { padding-left:10px; background:url(../images/bkg_bulletsm.gif) no-repeat 0 0.5em; } +.std ul.disc li { padding-left:0; background:none; } + + +/* Common Buttons Design */ + +.btn-checkout, +.account-login button, +.cart-table tfoot button, +.opc .buttons-set button, +.checkout-success button, +.box-reviews .buttons-set button, +.my-account form > .buttons-set button, +#contactForm .buttons-set button, +.giftregistry .buttons-set button, +.wishlist-view .buttons-set button, +.send-to-friend .buttons-set button, +.account-create .buttons-set button, +.catalog-product-gallery .buttons-set a, +.my-account .my-rewards .buttons-set button, +.my-account .my-wishlist .buttons-set button, +.popup-block .block-content .buttons-set button, +.customer-account-forgotpassword .buttons-set button, +.my-account .billing-agreements .box-content .form-list select + button { + background:url(../images/bg_gradient.png) repeat-x center; + color:#fff; + font-size:21px; display:block; - clear:both; - visibility:hidden; - line-height:0; - height:0; -} -.sendfriend-product-send .back-link { float:left; } -.sendfriend-product-send .back-link a { display:block; } -.sendfriend-product-send .buttons-set button { float:right; } -.sendfriend-product-send .back-link a, -.sendfriend-product-send .buttons-set button { + border:0; + height:35px; + line-height:35px; margin:0; - padding: 5px 10px; - border: 1px solid #CECECE; - border-radius: 2px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#FEFEFE), to(#EEE)); - font-size: 16px; - text-transform: small-caps; -} -.sendfriend-product-send .btn-remove { - float:right; - display:block; - margin:0 0 10px; - padding: 5px 10px; - border: 1px solid #CECECE; - border-radius: 2px; - background: -webkit-gradient(linear, 0 0, 0 100%, from(#FEFEFE), to(#EEE)); - font-size: 16px; - text-transform: small-caps; + padding:0; + -webkit-appearance:none; + appearance:none; + text-shadow:0 -1px 0 rgba(0, 0, 0, .45); + width:100%; } -#add_recipient_button button { position:absolute; top:0px; right:0; } - -*/ -.cms-home .std { display:none; } -.cms-home section { padding-bottom:0; } - -.front-banner { - padding:20px 0; - text-align:center; +/* Theme options */ + +/* Custom colors */ +/* Main color */ +body > header, +body > footer ul, +body > address.copyright { background-color:#e76212; } + +.more-button, +.btn-checkout, +.account-login button, +.add-to-links > li > a, +.cart-table tfoot button, +.opc .buttons-set button, +.checkout-success button, +.box-reviews .buttons-set button, +.my-account form > .buttons-set button, +#contactForm .buttons-set button, +.giftregistry .buttons-set button, +.wishlist-view .buttons-set button, +.send-to-friend .buttons-set button, +.account-create .buttons-set button, +.add-to-links > li .split-button strong, +.catalog-product-gallery .buttons-set a, +.my-account .my-rewards .buttons-set button, +.my-account .my-wishlist .buttons-set button, +.product-view .product-shop .add-to-box button, +.popup-block .block-content .buttons-set button, +.customer-account-forgotpassword .buttons-set button, +.product-view .product-options-bottom .add-to-cart button, +.my-account .billing-agreements .box-content .form-list select + button { background-color:#e76212; } + +/* Links color */ +#nav-container li a { color:#111; } + +/* Buttons background color */ +.block-subscribe button { background:green; } + +body > header dd.menu-box a, +body > header dd.menu-box strong, +#nav-container li a, +.page-title, +.c-list > li, +.catalog-product-gallery .product-gallery, +.cart-table .messages td, +.opc .step, +.cart-empty, +body > section > form > .fieldset, +.account-login .col-1, +.account-login .col-2, +.account-create .fieldset, +.customer-account-forgotpassword .fieldset, +.customer-account-logoutsuccess .page-title + p, +.more, +.filters-block, +.product-view .product-shop, +.product-view .short-description, +.send-friend .fieldset, +.send-friend .buttons-set, +.product-collateral .box-collateral, +.product-collateral .box-additional .data-table th, +.product-collateral .box-additional .data-table td, +.box-up-sell, +.product-view .box-tags, +.product-view .options-container-big .product-options, +.catalog-product-gallery .buttons-set, +.catalogsearch-result-index .note-msg, +.product-review, +.box-reviews .box-content, +.cart-collaterals, +.my-account > p, +.my-account > .col2-set, +.my-account > .order-info, +.my-account .fieldset, +.my-account .my-rewards, +.my-account .box-account, +.my-account .storecredit, +.my-account .order-history, +.my-account .order-details, +.my-account .review-history, +.my-account .giftregistry > p, +.my-account .recent-orders > p, +.my-account .review-history > p, +.my-account .recurring-profiles, +.my-account .billing-agreements, +.my-account .dashboard .reviews, +.my-account .order-page .order-info, +.my-account .order-page .order-date, +.my-account .product-review .product-details, +.my-account .dashboard .recent-orders, +.my-account .review-history .list-item, +.my-account .product-review .product-img-box, +.my-account .downloadable-products-history > p, +.my-account .downloadable-products-history .list-item, +.my-account .info-box .box-content, +.my-account .dashboard > .sub-title, +.my-account .review-history table td, +.my-account .recent-orders th, +.my-account .order-history table th, +.my-account .recent-orders td, +.my-account .order-history table td, +.my-account .order-details .data-table tbody tr:first-child, +.my-wishlist .data-table tr, +.my-wishlist .buttons-set, +.cart-table td, +.cart-table .product-options .item-options, +.cart .totals, +.cart .checkout-types, +.checkout-success, +.paypal-review-order, +.paypal-review-order .data-table, +.opc, +.opc .order-review .data-table thead tr, +.opc .order-review .data-table tbody tr:first-child { background:url(../images/bg_shadow.png) repeat-x 0 0; } + +@media +only screen and (-webkit-min-device-pixel-ratio: 1.5), +only screen and (-o-min-device-pixel-ratio: 3/2), +only screen and (min--moz-device-pixel-ratio: 1.5), +only screen and (min-device-pixel-ratio: 1.5) { + + #nav-container li.subcategory-header { background-image:url(../images/bg_gradient_retina.png); background-size:auto 45px; } + #nav-container li.subcategory-header .button-wrap button { background-image:url(../images/bg_back_btn_retina.png); background-size:47px 27px; } + + #nav-container li a span, + .c-list > li > a { background-image:url(../images/custom/arrow_retina.png); background-size:7px 12px; } + + body > header dt { background-image:url(../images/bg_divider_retina.png); background-size:1px 45px; } + body > header dt.menu a { background-image:url(../images/i_menu_retina.png); background-size:50%; } + body > header dt.cart-icon a { background-image:url(../images/i_cart_retina.png); background-size:50%; } + body > header { background-image:url(../images/bg_gradient_retina.png); background-size:auto 45px; } + body > header .search input { background-image:url(../images/i_search_retina.png); background-size:17px 17px; } + .header-bg { background:url(../images/custom/bg_header_retina.png) no-repeat center; background-size:auto 45px; } + .header-bg .header-logo { background-image:url(../images/custom/bg_logo_retina.png); background-size:45px 45px; } + + .toolbar .sort-by > label { background-image:url(../images/bg_gradient_retina.png); } + + body > header dd.menu-box a { background-image:url(../images/bg_shadow_retina.png); background-size:1px 40px; } + + .rating-box { background-image:url(../images/i_star_blank_retina.png); background-size:20px 18px; } + .rating-box .rating, + #product-review-table tbody td input { background-image:url(../images/i_star_retina.png); background-size:20px 18px; } + + .controls { background-image:url(../images/bg_divider_dark_retina.png); background-size:1px 30px; } + .controls .prev { background-image:url(../images/arrow_left_retina.png); background-size:7px 12px; } + .controls .next { background-image:url(../images/arrow_right_retina.png); background-size:7px 12px; } + + select, .select-multiple { background-image:url(../images/i_dropdown_retina.png); background-size:30px auto; } + + a.btn-remove, .btn-remove2 { background-image:url(../images/btn_remove_retina.png); background-size:11px 11px; } + a.link-edit { background-image:url(../images/btn_edit_retina.png); background-size:18px 18px; } + + .product-view .product-img-box .product-image:before { background-image:url(../images/i_zoom_retina.png); background-size:14px 14px; } + + .btn-checkout, + .account-login button, + .cart-table tfoot button, + .opc .buttons-set button, + .checkout-success button, + .box-reviews .buttons-set button, + .my-account form > .buttons-set button, + #contactForm .buttons-set button, + .giftregistry .buttons-set button, + .wishlist-view .buttons-set button, + .send-to-friend .buttons-set button, + .account-create .buttons-set button, + .my-account .my-rewards .buttons-set button, + .my-account .my-wishlist .buttons-set button, + .popup-block .block-content .buttons-set button, + .customer-account-forgotpassword .buttons-set button, + .my-account .billing-agreements .box-content .form-list select + button { + background-size:1px 35px; + } + + body > header dd.menu-box a, + body > header dd.menu-box strong, + #nav-container li a, + .page-title, + .c-list > li, + .catalog-product-gallery .product-gallery, + .cart-table .messages td, + .opc .step, + .cart-empty, + body > section > form > .fieldset, + .account-login .col-1, + .account-login .col-2, + .account-create .fieldset, + .customer-account-forgotpassword .fieldset, + .customer-account-logoutsuccess .page-title + p, + .more, + .filters-block, + .product-view .product-shop, + .product-view .short-description, + .send-friend .fieldset, + .send-friend .buttons-set, + .product-collateral .box-collateral, + .product-collateral .box-additional .data-table th, + .product-collateral .box-additional .data-table td, + .box-up-sell, + .product-view .box-tags, + .product-view .options-container-big .product-options, + .catalog-product-gallery .buttons-set, + .catalogsearch-result-index .note-msg, + .product-review, + .box-reviews .box-content, + .cart-collaterals, + .my-account > p, + .my-account > .col2-set, + .my-account > .order-info, + .my-account .fieldset, + .my-account .my-rewards, + .my-account .box-account, + .my-account .storecredit, + .my-account .order-history, + .my-account .order-details, + .my-account .review-history, + .my-account .giftregistry > p, + .my-account .recent-orders > p, + .my-account .review-history > p, + .my-account .recurring-profiles, + .my-account .billing-agreements, + .my-account .dashboard .reviews, + .my-account .order-page .order-info, + .my-account .order-page .order-date, + .my-account .product-review .product-details, + .my-account .dashboard .recent-orders, + .my-account .review-history .list-item, + .my-account .product-review .product-img-box, + .my-account .downloadable-products-history > p, + .my-account .downloadable-products-history .list-item, + .my-account .info-box .box-content, + .my-account .dashboard > .sub-title, + .my-account .review-history table td, + .my-account .recent-orders th, + .my-account .order-history table th, + .my-account .recent-orders td, + .my-account .order-history table td, + .my-account .order-details .data-table tbody tr:first-child, + .my-wishlist .data-table tr, + .my-wishlist .buttons-set, + .cart-table td, + .cart-table .product-options .item-options, + .cart .totals, + .cart .checkout-types, + .checkout-success, + .paypal-review-order, + .paypal-review-order .data-table, + .opc, + .opc .order-review .data-table thead tr, + .opc .order-review .data-table tbody tr:first-child { background-image:url(../images/bg_shadow_retina.png); background-size:1px 40px; } + } + +@media(orientation:landscape) { + .header-bg { background-size:100% 100%; } +} \ No newline at end of file diff --git a/app/design/frontend/default/iphone/skin/default/images/arrow_left.png b/app/design/frontend/default/iphone/skin/default/images/arrow_left.png new file mode 100644 index 0000000000000000000000000000000000000000..b4fbf068570fe0ad61e8bb8c6fceee7792eb98c2 GIT binary patch literal 1101 zcmaJ=U27v%7@jnxErr^+)~{ORFkRM_ZD!_7^U)a-n{+1KW--~4hBhKfCo`w%(9WE3 z=G3G`ibe|YN`+;&7iC+$5W%Hl1uyKv?n3rr#b4l^6~PNdiueJFdZuk!FN_0c&Iix) zywCfd_q;uwzueb5*vl|XUv^3@(7A_>hkCl`|J>}$*Xi^m$&|<pULaM?MNHbjWdyR8 zRzU@%8LO{8KnaEkvSzVFO1T$g9b25{W4M~-P&UIP#%qqIFChZTsAAel_NV<jEHI5E zI~UCfIY&W@=G2;tX4djWeQimX40il^kf_O2z(Pa=HEY@S<XVzF(v|7jKjv9*1R+aF z_SjS@Hw_f*A`s<-ur9<Ph($OU5u}JT0z?4{JQR5$9)^M(jmrWACm&0rxyFKAP$y4f z(Or^VB*c+<zFMtv)lm++6&^~G#0w%XieZWfd#g6lYGK<OZYik9(_PacCbogEsFm>w zNwU=GaSE1mDr<WuWugV+YnsDDPViG|0du+khg#Mt+9L&Y=J!8^z2d5a_yY3qimTI$ zTNw63IkMs+jbOKk@p7w*(~Fp3ZxK5{nTc``%$c@<tKJblmy@%$M>JbUSvAR01<o`L z87hht$;8C?SVn~~1IH$$%vc605jZJMiczJ-Rk6NeA)B<g#u<0CE!S@a%b}4~<eIM` zW75SII7(SI+j|k(>YZ?n_FiCHE>F$y{>A?5qFYC_d;H~T+tSTx<0G4PyGz@;{^C0U z`XugU)pW7;b$LtjE(8ZdUFA4<rN248`Gk;uB*X^~MpHl3cfrGr&vuqq!CxD<?shiz z-~0WS)ayMTrb3NM`p51!@23)h<{Qs`-&s~J{xKAKJa9O^StlUBab>;!#W#IlJ^gNd zd+Jv)2run@obG*$IUKmS{ZymEd^)h#5&DQZ_;&j9Sm?JP9Nw#clG+M1`S<@60H@9} z9XED%|L*@T{#Jb`c|M&^Jo@E&U-R}z>EMGv<7&rY46JvD=9!mnvd{cneD0e6z_XdW Jx;rsn{|BFNUP=G} literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/arrow_left_retina.png b/app/design/frontend/default/iphone/skin/default/images/arrow_left_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e5d4987269afcf28f5f6a5bf3a4acf9b6dbfc4 GIT binary patch literal 1156 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}OBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFe_z-M3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr<N!r zrKV@**($x?y<bToGsRXZ+|<{=x4=0yBh#a*C^fjsFC@7tJJ~Wt$=*)EroswnKyGSD zqC!P(PF}H9g{>0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWfo`&anW2K2iJqZ} zfu)J1j)IYap@F`kk-mYsuAzaIskxPbp#l^r0c|TvNwW%aaf8|g<k>1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HTIw4Z=^Gj80#)c1SLT%@R_NvxE5l51Ni9w;$}A|!%+FH*nV6WA zUs__T1av9H3%LbwWAlok!2}F2{ffi_eM3D1ke6TzeSPsO&CP|YE-nd5MYtEM!Nnn! z1*!T$sm1xFMajU3OH&3}Rbb^@l$uzQUlfv`p92fUfQ<Z-{NjxK0tM$_Q$0h4@XWlF z{PJS3dS72F&%EN2#JuEGPZwJypb2`JnJHF=M!<kEH8M80aCI>>bTzbeHFvbIFgJBE zGH^C=Gc||lb;(aI%}vcKf$2>_=rzHq7nBro3xGDeq!wkCrKY$Q<>xAZy=;|<+bxDT z&4cPq!R;0!oO<<vj?o82EK)?ngn+3B#DphXAP1iCQ}ckSy$G1BPbA2u1GB^rPZ!6K zid%C+4)Qh|@c0-rDjPUSH1fV+`|!}$J)vop|BorYr`S?k`VO#NadRs=tlE`zvU7vw z({nP0x3|rV;5$6w_f~HGg%ZavUi`Lbj%I%D?YbRuEP@Kc4Z%-4H*HswDd#^B_%Vrj z`IRkK7hE+sDr~z{`7?ts<E+b`iym__aPvQ^*uZHOws7k_2SHhzSFYk^zM57gH$r6X z6=v>b-rIhy@x@-o3A(`w4-7k2`*^zRZBevUcFS?tuOueBWcjgk_g6AMaO#)6$?-DT zq4I@uo9nMRJ6LaNEL$&j-KE}XNx$Tjjq^8%>+ak3#JVZ|UFWYo=Kpr~?qlL%xTLs$ UoAp`2W1w=u)78&qol`;+0LFZU$N&HU literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/arrow_right.png b/app/design/frontend/default/iphone/skin/default/images/arrow_right.png new file mode 100644 index 0000000000000000000000000000000000000000..27235ae43b8a52e98f6a990b027cb0e6403dee21 GIT binary patch literal 1102 zcmaJ=TSyd97#<PI3=0y?wS;N9pwP}`ug>He+s>8?uFAUT8VQaw$92+~GtL~{(F)2g z*hBduy%hBlL==_v=!0ZvDTD<*^%6xUJw;&{z1W$}wI13A&YTP1_x<1hpZ{ELX*yO? zTv<#IL`kecOyIc)k8MSp@P9{J=QTXJP&9>FVGqhkCLqEJ>;_~^lhPmoBxQJD9@G&; zA*Ci$C>3uMWT?@SgQ0EBz-)r3J8T=0+y@ZZ4brL}qP|Q`Q>3bdsCIvxjT;frt2T_7 zpmn4vDUbBYyh0tWC+lnh3upjIq^<SqmSBgdtge99&M`xgSqSP2QNK;4;w@wZnt=4v ztXpOS92xM@oR8&w{6W&gaxBAn7&hqUSiv6@SdLu(C>+gHdW3{{bUhZ{g{WSH41r-X znGBur($GvZ9MAI%>tQ?|H%7RvVI4`fTetS+6hvUjrfMJ+>ZGG6b;CgvqOjB7DQL!q ztZuEB2^Wm9C4=E;)=4P`jK}{E)wB(?g%aS8-+u~Q$zcO931GoNQ^pt9v)2h_2oV!V z2%1R<`*T%n>4gYdz0e>dt$vy#+f`kG87qsA$Ay?~AxW1(Obk(2fmT&T2=Y;u^@^Tg zZB*pAD94L|V8j<;MX#^c<MZ-4t_bBp4d^JxRsL|jdAUw2Xa<ff0#h9V%25+)WHx0% z&F_WHtGCWo@_XU(av5xfaW3|+i_RV4?s1kIZHqS>jSqC(?Iv#P!s`<>eiAb=F`TsD zo_IaEwLq$P{&gx+<5HgdC~RD~MV^1z9USX#3@jaRRa8HW)m-oBn3$!`uN_HEoGW;D zZ+T^<{`=k4%<8V2rxyKlwT-*W`Uf&^?CK9=Wk0X_!|$)$|5$!<NE*L65)i{XM_qEw zvhP#F=b6n_H})-auP%1!kDo=%s*=Uy!lkhVrt?MDr3)XoluJ)%i}?A?==(M;xpX>Q zy7;JNlwqd7`O{~%$4=~TURqcyovl1HF*&(5+kCcwcs;l0jxyeM+j-%!Xp{KhNZ05u DK+SDg literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/arrow_right_retina.png b/app/design/frontend/default/iphone/skin/default/images/arrow_right_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..3f6145078b374b76aa43166fdff23641de025c87 GIT binary patch literal 1175 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}OBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFe_z-M3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr<N!r zrKV@**($x?y<bToGsRXZ+|<{=x4=0yBh#a*C^fjsFC@7tJJ~Wt$=*)EroswnKyGSD zqC!P(PF}H9g{>0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWfo`&anW2K2iJqZ} zfu)J1j)IYap@F`kk-mYsuAzaIskxPbp#l^r0c|TvNwW%aaf8|g<k>1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HTIw4Z=^Gj80#)c1SLT%@R_NvxE5l51Ni9w;$}A|!%+FH*nV6WA zUs__T1av9H3%LbwWAlok!2}F2{ffi_eM3D1ke6TzeSPsO&CP|YE-nd5MYtEM!Nnn! z1*!T$sm1xFMajU3OH&3}Rbb^@l$uzQUlfv`p92fUfQ<Z-{NjxK0tM$_Q$0h4@XWlF z{PJS3dS72F&%EN2#JuEGPZwJypb2`JnJHH01};X%mX=257OpOahOUN|PEMvSMrNii z&L$?#rp^{Hy)OC5rManjB{01y2))KQ^@5T@ZUN9{m(-%nveXo}qWoM1u$Qeeal6F; zr+HAlDY)HYh*PgV&@uX;h((HMm=G}afSB-P3*^8Perg^twHE=C^|G56CNnTFa(lWs zhE&{|Gi5Jtvw=Ws@8u;+mL;)lV!YXq!@yfQL*W!li;&c*o{55oI3yc+PguWf(R-G& z#O9^JjjHFr|1?KVJ9^^9Z@bdpcRF4;O0_AvUREkPvUA<*lNBO?X<N))G=Hg^ott&C zDB9w$<oQ*nly0-<F727Bu`}efu+QRPrOazT)>P!raMg0_@sL=p*0#=~dV>GClpQ^3 z{rRbrZav;SFO>JwO0{RNrzk$su6Y`G&0MLpO-;q-=P7AX=CgG-*T|hO3hfhJ`RMZJ z-BkuDG1FGF^YoVWbUZ$~L7MOWvu$08PjAeq*nV1|{feTe(5ZheGNOHYC7gHfE`PuK q`>yWR6F+aISO4eueE$9m?E?%98aw?BW2M_bMTMuUpUXO@geCw3N1R{) literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_back_btn.png b/app/design/frontend/default/iphone/skin/default/images/bg_back_btn.png new file mode 100644 index 0000000000000000000000000000000000000000..7b55e92b560a6dd9374616ea053f4f534a39d87b GIT binary patch literal 1220 zcmeAS@N?(olHy`uVBq!ia0vp^`amqr!3HGXoVg|rq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1Ffc1+hD4M^`1)8S=jZArg4F0$<Q4#RGcefLR}>^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Keo`G(%ftjI#nTejE ziGihwrH+D;fuVuEp^?6Uxvrssm8rRvfuRBvC;@FNN=dT{a&d#&1?1T(Wt5Z@Sn2DR zmzV368|&p4rRy77T3YHG80i}s=>k>g7FXt#Bv$C=6)VF`a7isrF3Kz@$;{7F0GXJW zlwVq6s|0i@#0$9vaAWg|p}_<UF#U?e0)0b01CW<s3VnU?E6vS?t1d1HN=3LAtHH$~ zl?AE#L8-<0rA5iWh)YujSyf==T$Gwvl3x^(pPvH@#ej_blKkR~`~n5%U{gIqh49S0 zl>G8yuzFu#E6=>*lEl2^R8JRMC7=m<nVBh8MsB7~2F}LD<|alihK8<&j?N|)&gLeD zW=6&a&SnONFugAM$)&lec_lEtDG0qLIQ4>(LT&-jW|!2W%(B!Jx1#)91+bT`GI6`b z5T|)iy(zfeVuVw#KF~4xpom3^XqXT%^?;c0WDDfL6MkwQFtrx}lePc+{r4Fd7%e<q z978H@UAbYe(NZXL{Nwv#9<#ZjGiT_W%h<XgeUk={&^n#)UF&ofO<`U7=j^d0k?tO` z)Z+;TGp0=1;4$~RxxMPgJNZTT-!G4gJ%9D;?&a^o&re>GsWtKSQJGzbN<;sZ`|miU z*7vph*a>;RByQfI{icg~YiAsH^7*5%ZKAOC<sYA;9Pi#R75le!;+hpT9QlH?U!UlT z=PAGUs;K@be_~Y6`|Ur<)^s%g?eX8x7S{h!l&52IZU1}D=gTX)uO}DE`pP|?9w3l@ z`A4G2(T67g81v&E`x`zsjoaQRyZ+-YqjP(X?N4ATmwQ}lKI72t;}v%~)Ak;FJ#FKA z)41?Mtq;Fth5b=JR+w+{Z`-xzud2sBWEuQZc(%6TU!(iS9F3UyU;2{btz;L;uYR%S oaNw+#^VvUZlD91vmuKQ(C}-9`XdbY6HmF?jboFyt=akR{0MVGZaR2}S literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_back_btn_retina.png b/app/design/frontend/default/iphone/skin/default/images/bg_back_btn_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..63ceb0c64a808a56f589293b46d50c4461231c4f GIT binary patch literal 1538 zcmaJ>dr%a096!Vtn3)A)rm`(iTHfvMaSw03)8O_F?&xmxygDSnmb>LRaUbk0-hxnS z<A{&4;c=9rDW2k^d@zKFqB&WaHx7wujs~KRgNK!9%ycM&?IBQqL_4$ld(7wa`My50 z8yA~XCP&VQ6p2KW4XKz#ShIvzF>$=`-J4vMAuKO*x^!+Soy&P}mJlU5=o|ttkhqhu z5V)hL;739&5`}{<YdV*1dK<OVqy!IPBs|FoY>`O4h-YwnKEVMwgwsW7zy~MKfPl-P z0c~;<Y+|%To-4JOC6*SOt@h%4yUGDBS_r6lR1hEu4hML0CFMqW4LGQa3j5GC1OkH) zE?)yaODf&87|_xz0mvn=*bXZYKp~SLGFT;3%>$$`0z-%tf|X(fM&(KrMu4FQ6r!<? zT-1W;hhhmQ4VcGq3<^OWk4NH3l+dgbLR2ah1WO^QR4gFG?jnlAc`@aV8&<#wx1Dt{ zoQtM_kRqN#7jha<$n;qWBr_sQxrf>$Gz{W#20|oosH9<_$@KqFk{m(1IScVmzW*ug zwiYo2WFg#iA!`=~mm3!f#h_Z2z&V<=()7yVE-ucaIoh2^Gk|ufT!H{L7v-Qm?m@iC zgc>L}hf{XKfN4NMLE>^bP^nCotkX*MN|_Wx5FIif)?un77}3i0iMk}Ee3*;T_Ck`N zxM8kigqsMD$_-h8WQ52V!Mauv4n0egz+lO!YxG>OQT2wnj!|=w>PF>4LNZWju>TtL z@Ri`6(00VO!ePYt1SPng6>P2ku(4Jo8neoPC0Y6Fztt?qcHlFAi0z8kW41W`&jE1i zo<r9tV@%3i|D3G&X$Q7nib~wHtX5IGdE>=vSM**BhMg-zKrqKPwV*8Z$-t@B@;g~O z{yhDlucPKcb?e0fzOSaMf9F$Lr`TSYkQzNby!9KqZJ{cxu5)6^ghQRur)kj%Jo9>R z?Cj=8{<y93hOX>^%BNvexiPr=YP0f!l~3<Jt31j-`IdXF!q6S|QfG^L!@lUuk9Ner z*L>v<)rpqG%e%yL1LDrjHPb3RhScNNTgJ~m?@T)8?U<QToDd9KakqYdLtW0mI~jM6 z-jnI8I-bwIu)JZTJt`pYo_{A{Q!ioqps8&`($<EDKIOV8mhUUF1NZr=%7?x)mwG;Z zvpsi7h2^`7?BD&yjDvg|IjhOMjc<E$c30Fx-wp5O^4=a_UFobN-q}038>?1>a&@3_ zvqmgd2NXB@yPaP|8XljTbk!DB-Ye-zMg=}uvh0nfw$@ChKkZfH@$gSdCG&&(U&wzP z3k?{JO?zS%IR7#lgB5$mReQd)-I^Ev+}iL1w~Vc8vl)p-9q?*z-j1&2{E?qkfrmMN z{?P<eW<Wv3GH1U+*2lN^eZJzzq!ZifD$UJA?3T0`Tl3wx;5;HT;9b&_cD<<$Dk)u5 zf$rq|$6_z#>B{G{*GJ^~AdBSouZI%@_u2H4y=AM5ez~xv@$n|VIWy38+J5ET<@mAn z=i1{tCilE@ZF@1x7SsD~bH2X5h~}@YjB{nqiE<z3SKRw)`a)UbIP^u&`QT0S7<FMr zReyC2G`IBlp|=i>ol-yJ=GYEz!Gx1t>srdj$J9^lwXF#gMJ&jg60!T^N1?y6L1)Ge IC%?b$Z}w<aW&i*H literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_button.png b/app/design/frontend/default/iphone/skin/default/images/bg_button.png deleted file mode 100644 index fa1b0ceeb3d5322d41df878ead3adbf4e3d6379d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2558 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 diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_divider.png b/app/design/frontend/default/iphone/skin/default/images/bg_divider.png new file mode 100644 index 0000000000000000000000000000000000000000..c60164a93497b912a1925e1b8ba89613946a569b GIT binary patch literal 995 zcmaJ=O=}ZD7~WDSwc3J;N+ZI!1y5#YHqA$O=~~llKO)^w(_n)lbh|rgmUeg6-HF+x zAjOM{2QMOeklI@hA|3?=FA54C3zmYvz=PF;p8S|ilhlK8VRk-vp67kuciy=(o15zI zi}Z0E*PoqM^K9;7Bih@;{$#c54Vwn(M3K&s60PbU=F%ov#2{<yOE`~pvv%!09_6@h z-YOJnQJawsVhehR5dzy~Y>pcp3tZh;#uO~#CCgFxFE3y7z%mtnKA|Da&ET>%UH9-@ zJy$U5%Z6m~W9PtVATt3QQym2MisQ?H!Z&nfwhoUW4;m1<tnhoLirOs55D$ZdfT9LU ziXa&m#5j`T(peBgB7$NJqEu8wav~)o5i~!ZMf1#(oL48CvDi-G%apn@gw<+Qs16In zTY{n_Nf5<gEEZ*ms9$ra9z-2~sHLD{-|#G#TEqdNqP|EfRN<M^y%cP>E$jHrGO>ce zKzE@ipfIHtP}BYowe2?Ar+K{Z_n*Rkq2^+k$3Cfe2D`Y@P#DUUGal9{@d|{jw5m8; zCY1PP;)2XvLJ+~c<(Q=EH}IM!XC0sFj)AkP!ZQWIvP@ZukEF*@YCIK>4~yc2I5L?= zQX-j3s*)5NPG?$Nl^7KpJG8|$_qmyl+^`jFmqk{wXI;nUq(^MfNLjWzdyzWoHMwSI zFX@h4$jrd-V*k46))DKTaM^BKwrMv$c38K2tgUZ+`}C7NiTSLWE(AO3hpB-zbV$8; zw0`i%*qN(aPuAZ)uSKqWFZQ0UlpdU)dGu~$EfOhj+#2ZF-KjlRFKiZ$eLnSS_x8z4 t+Y28@?jAn=@cyrR-MJTACl0K0-Q4Ea!OKThe?JYMU3Ma;J{w=S`3EgjIurl^ literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_divider_dark.png b/app/design/frontend/default/iphone/skin/default/images/bg_divider_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..3155c6e84b0cd6f4f837512150467d148b28eea5 GIT binary patch literal 1147 zcmb7E&ui0A9M4e37}kqJm<P$Sg9mN%UfL#2SU1|FaTT+TuCnTBS@PC~E<a3OZPtT~ ziJ+c5=xH8AoOp3w+`%cRm&yKt9TdDNc#wg56@BU2ZHF;1ki7Sj@8|RR{><H}iHouR zGyN1r#fsxfiL5>3KHJwzo<APqk7OCdg$kZ_=W$c_5tTFDIYbw2y^2amHy5vOp%IEY z_R=a>a7DW;8LpksBb!8Mdjw5UBV(bb8+C-~IaIZrEVJ|G9Yb4YmYGRwK=Wi&v&LIK znr=;$jaJ<dO=fJA9tkBvU?Z&4p}pV)QkZ4hyb{?*uUUp}o8Wqu*>$R-P0_OJBRZV` zaRcy>=2Hon0%A(MKyv^B7IG{Q;t)t_K?0EOTnth3&3UP$s2weG$}%;KJ&9$T&1RyR zOt^lPg`z03fMYo>PAuZVqJ#A??gYbK1_cF%Z+X~q9Xevv=iCO)GQ`u}5NxkxRckod zBX@#MvPjz4Q1@7v0Ic7(iQ?;`H0@}FZSPqJxP<ndKa@WxFM5bAp}=kU2C3rw@Byi# zg(AaF43eh%bwsMD>I(sCf6z2(k~nWU`hwyb4I4SQsAQQ&!!o60O6JmX3J8LjEC2{| zKuG2VIj?XzH7^RuF2O+{(Mp&Et0<hx^Qs_ZR1U%d6f;RxQ9%Y|@;p~a!7jGw1Xy<r z6p2PyYah!WiIrp@>DcwluDj6frm32X-Js@rv^<@rHQlhB=p2=raFb9K<Xbn8srs%> zx3ex;hv+9|J_q<*0T9>u41^*CqFjK0<4FvP%rPCT`QHg+i6?B-We2*h`--%3wB4H_ za@d<f<dCBIWX4`?t>(yl&J~qhIsBw(SNo}<0srak(;I)q&!hKRr(|&R&J(7!v%>uJ zc4BMm@5OVOO=_}#`x^W8(TD9%vC%7+UZd54=j**M)*lBae}B0(bR2B<J$tbB=ljZ_ gvGnWw$o-k69!lIup7^#r`!@O=6blo|T7Gu<AA9X@;s5{u literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_divider_dark_retina.png b/app/design/frontend/default/iphone/skin/default/images/bg_divider_dark_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..9ad8c5a6251172eb646d2c1747ad81f94a72dae9 GIT binary patch literal 1153 zcmb7EOK8+U7>*BUspv%nAD}T_-OWt0k0vyh-8^ihsdc;JVm+89)7{V}6O&nYx9Fwn z!IK9IB6?MC76n1{VD(}}(33qVif26tg3^OfC+qIogA@!TGn4$^_x;aY9UnWoePHhZ z!!X;;5v@em&Gc6KlV|@bzl|<?h+ZKRc$zfq2r&g0Pa)Ry?J6oE+ijhDg@zbr%c57V zkcu@bJJ?U#iA}ochZM~)L&MF`c4iP^r%=@k6z<#8XB_Lf3U?}N0V`Bd%^R7E(8SzW z*_oShB$pdL!VWcMO5h`6vrT_Ch~=ijwRvT_PhRsJ+cqIH3irpUiZ#xvI6`bT4N?xs zK{l63!wirz(qUEr5b#joK|Te6oXyJsvYm^gYLPoFmo%fJMNbM>BP5i0zR_r;8)6zq zRUS%`!~=mBgcP+%#jSwY%~TK{>N033b|Nn%9uC-q(VoI}qHxsHKOy*G$*a~#+#?U- zPO@m)_@*85Fb(*qZIi^;MOoIy2;c8n$E1Y*I{#1pxZDa6UqUgiM-Hvx^r3Z98w(|d zofu@xj%E<8qG8X*sQtmR<m1$NFR*7d?9_b}5K~jQdfjtnF{27uH3RZ_Nz?&^1&|ku zd9|ns1*0hC#V)~mAk|8{6ssAaAQmMfKWJni)S)z3%&8z(pbQi%_ONCU6FYEFBAQ^m zzgT@ktgJ@JCO9f%JlpN2@fs#LuHleXC$g+%J6@2SlTuS|8mfjO?>usi2>Wb1>$3L` zeNoL7sH-|K1ehCyP=Y{GbqIu<XlR-$a2>4s-wETXCw$Un>$<M{inemH?adH9^rjF6 zv}h5Xu_qBx=zP{ptx#^hzi{otjwQBV-SlH^ZKZGV*5r+a$IGwH$*X$&hMW36T0Z&W z_VtIuyI$_zihq7GAFcE+k9~1B-&weF`s@776VFdwT+$C-RxY*P26q=mT08j%eX9q4 k?LW49tZ(N%<_5Ecd3R>y<M6)EuacjFsgG&*i)ZJ51A2mURR910 literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_divider_retina.png b/app/design/frontend/default/iphone/skin/default/images/bg_divider_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..dd2a1629b62d0a700fa0fb05dafac4655131c822 GIT binary patch literal 1019 zcmaJ=OK1~87+#;0(t2pEP(3(qL9jOaY98G+Ye}++4Rk|I0}a0Dc6XXA?e46*)8+w6 ztseAHMMMzv;6dv_C=^75DxL&AD~RGn@#Li*q&KOvX_9&{F3iq@@B9Am|L30@W0_N( z?FZW_it0>{C|NS^AmdEiUh=P;i@qXLFHYw1IGV;K&4pCVKvNK;Ev*2vP%|nQ-@zzF z?V`<G9_Q6jNk<l=`52~bIfPA7(c!YA=`#?6DOfOVnO<LeO#{=A>4}iasZIhG&5^1L z$E%r~UY*fJgC0H!qGgE)SP*NVY|Yx9RF>(Qu0+=UF-wCQ1kcFymZ`it1`^1HAjEJ1 zoeT3I9Ax+)CkDj<AaFd#@&e060z4;$A`-`g`bU#!t}!iTl~g?z*~xSfV@G1yQmMq0 z1{vfQSY8xGmJ?V(2oOZTtJqj82W+pep`budcTESI$OgWmHihP}OcSSDDOgTZ*7oXU zA_Zg1n#1x8=cm*Fs_OrtmeoXiI19J^{!`e?RUF7>p@-&Nom|{>pC8JR5-!v*a&rjH zHmW#QL>PHR<bcF@h~dG6X&b2I)$pn+rEL#uwhq&ZOcMphG!1D;3@ThGJ`@QC2YEip z#}i2*E(k&>o(c<t;!uODAbrk)Hg0f@ZLZjo>$igCkjM&j&3R~~Tx5Y-%97dIOSq+8 zoolrA5^2e0i5b?v*uO5iaYVYuUpCv8Y?_S^ZPM*7Y3tPHfqwENP+E!Q%Ac>@j_q3j z9lMXW|JXeIv~BU&(f7Y5UyjbNodvP#`jP8z7Z!frO7i+0y6fKg(<ct;&#&BF`hK;y z=Xd2>VdLS=uH0kc!=o2HOBed&)n&%%-v8$7$4qt4{nbxTmivoew2kg{B=78?E<G4{ T=BzAU_Mc-qnNe2alZ$@<@)kvT literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_drop.jpg b/app/design/frontend/default/iphone/skin/default/images/bg_drop.jpg deleted file mode 100644 index b25ec511964e13b0734b729a681f8dbeded35388..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12907 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 Kj9>C$>Hh)id7k3{ diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_gradient.png b/app/design/frontend/default/iphone/skin/default/images/bg_gradient.png new file mode 100644 index 0000000000000000000000000000000000000000..c33eeb213004d68f4615b4fcf42ebb983b678302 GIT binary patch literal 1094 zcmb7DU2D@&7|w7?84LtL(5tiTQj?sMk7fz0BOk3Rm^r$Fy<D1{wy{l4mYmvb-srsY zUwGr4%v;3^5k&AWc<T=k#7kkGbZxhbF))yvkG#+Gyq~XkcOI^;++E=~Zne4Xw%EGF zUZHY>eaZ8suWY$P>m9mBdUWDvn6pCC#h@AcecZx+czEy~Z*ttV_ffk;JKiHRAhGC| zHewN{49#(yTSe*zLrg&z_oJl7|N8Wq2T@q#pJ*QRQU?#B?V}9u9qqJ(qhVl#{MG}o zS(uC<#?%KzJW6u2sPR)?lkLlEi3d{?I;`<$PIbIp;E)UhO@u-Ks|Zw85vkBnjr%}` z2uetnpe`V2YPty#m_0mG%fg=7avL)(cB=6MN>fvkCX<OcQACpUC1e<e1Z7E<1!f`S zhY9ryA<5V03@*-tEJ|ra5>PVwT{5OMo_Tr}LY%gu{($BS@+6-ni=|B}{8U0Bl(MN! z8Q&b`c~>LicwwE>7Cv|WQvSSsm}04gb282XR>j`>1*xlrO2b(Ursrov%&OS%M>(GU z@I3P|b3RJ^kxPPcj1$^)Yy5Z|g{Go9vgW8z*A1l(5wf7J*t%o8vemE+U6~VH1Trl# zWLVu+E!}WrT}3uRb!2N6Y}mG@Dw?Y~RdtSSCOP$!0GFaAHaf?mE3u}NVV{z$O~`28 zO}hg^Nj@McaP~Cd`9YMF=d#p{n}zD)EP95+Mn+;V&AJ&~qOZzT3s$W<Y{;m(fslcq z;nWe7t4hOl9hskD!~ag0#5|G8F1yfm^DEZM<#sVc?68<ZoUo#0Y{uU9KK^9$DKuTH zUHs_ozj$?edaB4vQSauL<^Edb_QuO^*KfW1(5W1+x_^T=_qYn=l;6t-Pfz{`<zzSO KJMM|SfBX->DO0xq literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_gradient_retina.png b/app/design/frontend/default/iphone/skin/default/images/bg_gradient_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..abefea993aac5cc68caa2814de830922e83bcbf3 GIT binary patch literal 1096 zcmb7D&ui0A9FN-&H@1Ta;yi^6JlW*EG;NyDI@<hjg{986U=<I0O<vp3CNCzhHr+{v z2>u6p6g*Eoi|A4D;N3sKtN(%XrE9kxWMCk9Kl1&2KHr}&_ZoLM)^4tG9Jf*5F`I0? z#NJ0&F0=3SarqNlHmTL2Ez+YC6l1RHkuK)z0qWx>M&9(vH(chp<#&F&Lp#o{?vg-6 znT?nR5kqrac{`1eJH(Xl;=UhNgx?=O3%u`Dga-u&IFW$|{?0*+TL+D{doXl0PuRZ0 zms6b)1ehW|4Mt(2rxjtwtFwJ}EeZV0gbpjhiBlbCk2gq+`GN>?E+|62sEAMjnxft2 zWdMN$WeKP`2=s!g1IW)GfvLq_Pj8y`T#KD5!hq69m!!#LB2MxmiTe`NG))4sB+EHw zkxQl_MQJWfwiXN~PTbg!s82#ZV?<ptrWJvCdJ;kqHU0j8Ca2_KGEWvuo0OtRf+CRO znN1eo0_8XtBZA=6I-yN`=KMeTllC;iQWGa+9J{QFy{&Un7Yk*E^B8mo#Y4=hXrobr zXFnWAzsH>SLo_mpI}UJ2>t;n5k9|+iD~4P!6rieF-U1L-fts(WM$MF~c1=_B3xe}N zrX_j|s{&}*YAvrSum+(8OPW@#sU@{kQf<>PtOd3nCKQD(&O|e;e}<JW#Og+j5hZb( zkkO)>_6CHKWI!U`Xcc$|xqg_Pvr;o|7OIJ3|0(wDm<0SR>$?9BeMK%-L9uE9TZY9F zgc<~zVL>1l^R{UkvM|Sb|D7<2c_L+9cCPCdSFDw@?dc4$!|4>_kQFUvGxkgA-DmSD z)y--<{n_3Bvh?Tp_{Z0kw;!(VK7Tk^X{;)Tn@6u+zrS(qy4YB~^#ZMPOY7YCXUlKY QW7^7QyKXhiquT!AU-HRRLI3~& literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_nav_brd.png b/app/design/frontend/default/iphone/skin/default/images/bg_nav_brd.png deleted file mode 100644 index 229016e862823c14021888b3ec17093e6136dfe8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^3P7yH!3HGlHr@UYq*&4&eH|GX)}JtE?Rp91OP07s zlmzFem6RtIr7}3C<R_&nc;+Uirv{}arc@T5Otk?jn(FD|7*cWT&Go&U4F&?N4}#e* zT#^j3Y<Lj0?kQW-+GLA{Z-*+M^S3OR8>e%xSv=@zZEnX*%?#zYON94Ne_6Ac^ZTKX z)AsxSW(l~P#c-kb7oWj~*k9S^H$~mkGX2aVm$b&!Fig%BvJL8z0osND56l~M4wXG) vKE=^+i9JM+;rOyYymL!Ze!p0Dn?-_Q!?rBWeJK|ng4BDu`njxgN@xNAUie=q diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_nav_brd_inactive.png b/app/design/frontend/default/iphone/skin/default/images/bg_nav_brd_inactive.png deleted file mode 100644 index 4c9a05c893074586ec48296550a6821a728235c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 869 zcmV-r1DgDaP)<h;3K|Lk000e1NJLTq001BW001Hg1^@s6KC;{Y00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!_en%SRCwBq zmrJVDKoo}4m5g<I8y9dv5E|^E;8t9NBd0=-U4<JFoVo@_cM(EAJg3PYzWjYES`bn> zb>7d)?sz;7yWMVi#&P^O48!N!?e;$2ZxW`J`|I^OwASw5+UGl0?t^Z@#d-<&ufY2j z`yYvuG?&X|829`ALKwoo1j6@to&)wOnIxR=TofX>&IA+Ae4f0X<M|YzKLPux^9JkE z@{<ly!^)aUA^%Q;<Rz||=PB?$tQ5$D0G{GKCKE9b5*L-3=^jEs#XVdB8)JVGd=gR+ zy^9bGiqDL^2or&<)m}Ih?l7*I_Mo!~M6YELg^`hjQ#r+3G%|on6Hl@h4^d+ZVGeLn zkjHn+153<JDSBXKA(K&r?uji0tHdR}cuY(d9e7fCw$ob<bEUkJylfjaBLQK;@zP_t zx?)>z@}A^!SxpyuS<x%{wvM;z6P0l1)0`PQSg*-cneE}?Ijh4PRCBj;E=VaQrH92E zl<2F9anC$>z_Z^4GCV$XwmPQ2-4l%rJ&`K7Hzs<G_}-AHsB+*=LnajD+0AbsHl8;= zIg{2$_R<H~MyoPmPE?Jh>WmK4cg}zBu+8JdY^OrrD>w-m2CoQu!jpQ{h&+2e_JnN> ztgTkf5G_gQ!^q3V8CJKSDny<a)&6b>3FuDtg{sVY_lByE^n~9%;RA))-MezR8+)^W zhV?q_wAI(Wq<V_<W``#n!?oOqsu+3c^%%=CdZ6+O?-{J9nNM4d+p5Iaf~)Ds%J8vW zg@vJ*7#~j>?+aB6t}J$MNU7?!H1!6BYf8r1(flG)wOOwc=ebltGVJ_PJ!H6-BpH$q zXNo*Ph2_Cj63R0F5A+erJ0r`O4U1=6e_E3WQ+PGM&*$^QeyiVm1MA(CWZ*O-j-KIe zQ7;58aO<zg@@7n@%L7m8fnII@&+=Z;D?upo6mnkLEa*^OEIR*n51y)~o?q>XU-pB3 vOy0)kYju;UGW}nQ_I_dt+?4tIuK)u8Q=d50UyL3-00000NkvXXu0mjfg?^e- diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_rating_star.png b/app/design/frontend/default/iphone/skin/default/images/bg_rating_star.png deleted file mode 100644 index dd3da542867283363e06a19adb420621801f4dab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1081 zcmaJ=TSyd97@n}pVpz}C%QQatpgWg!XKg1}S$DjwII^t^uF-?z%+Vcm=1enZFWO5A z+65~pP<t!Fx3Ca`Fv=H0x<b%H)I$UXJw$~BLV>3<x~o039hf;6zVG|L|3Ck^nCR)K zsytFjQB+mDQ%;ikF!>JpD#(BCMy*ArYSflSy>JNSRR>T}9S#CIZmPo|2~>UT%u~=r zQ5B4lN~5&WEosnXRS&}!Oq;MNs;Q-5tJ(-a^dJ~EtO)b{;R-_=dW7i{6<)DpAY*in zJD_*GC#8*#XkndcX{MVB5)m)~Qt5&@YPnJ&!ffeEWbGYu47~+GBN1lXR9Z>UG3WqV zWO={FhXgtlWQ8Cf4u<RL059;I5a9Smzragkqr?kzaWEvBqYp_*xxE;R>>^ACAzR|O zd_K?S8(8QJb3!;A=J)^?2>1!Y?~YkWE%+_BrlcSPS91&-8PK9VMRgEnQG_8*w^K0f z9a+mQmWdRME2uUnu)LR238*OlhnnUN+C@pQ>-V3+ZfeX1ToSl2>uBWShHAV}wiI)K zilCE%aI{p#L<S=0W}r>SdPP>C`wUBmd3Ou1C{o;Vk!oomE=L%mz#4`wg=4{BAlxcO z17d?9wDD0n7L10X$J;}ps2C815?6*=)&v$RarIqps4UlO1=A*xW#AY&ptn2Fq_<L* zjPhO@%IX!ldU-FwvRsas;k=9e>!M3Xq<g&OPTP{rPU8cMbh|^^8dpZ{ktcC7(Vc3; zWQ^3|tb}LMc%~ocCA>I|m*?=SCH!FxKe&#+yutGs{BjAef5a1Ac=0^`^$p*d!nd;c z(LA2)!uThCzluM-#!nXT!r0?yw^xXGA}&W$g?FhJ{fEx+zP*X*Wq3ckv3WoYPUf0@ zS1I{gZlQi-_UK#ub>h_T>e*veSJpo-)J<KeJ#lw+^X%Hd{+Zg-H}_qZa><UlA3mO% W^zFG+^<1g<9&@~{M_z0lnEV588hBLz diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_shadow.png b/app/design/frontend/default/iphone/skin/default/images/bg_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..ba3595956ae69d8538cb184dccfedced7c46742a GIT binary patch literal 1100 zcmb7DJ#W)M7<O9;K}7{+D+?zVA%@1jv*S3n8Y;(*X{5STX{1JCAdY=aOk$sFUx?cU z!N%5&e*qH+i2(){7G{LlSdrLR%Q;Qb4pk*A+4tf1d7k(4)z0?ArN!He9LFuyH?0O+ z=h%Dy>J|3gcz--%%L=Wv=q}l(BR9dE;gb#q_0a9&26p|!gRgj<;}+fq%@%DrTe?R= z!Od-iEQ}eN<JLE_*!B9Df)4HmQHB5W@e>aMzryb+4s>D@_kzu%1n(YgH@&02r}_NG z1F)Xyj3C6+1z9+VQa!8iV_u!@^J|d@V-wo1@TX3-oE>121Or8Y1rL@GC=~@%gj!Ks z0}@0~M3M;A0)o1t>JWj+!!xzS-`5+KJ<(#P3g4qN)<tnN8VMs=AW2t5nx=_R5+$j? zEDGsiMBS_qrK?j03#VQZ#55og$Qj)Z8PW>RJUtB|j2l6>N7EU3lunYx(k5nZEFuAl z$=D{3Z;Eo9%MoEXvrcIPpE-Xaf7(2ZvDm;V873a9;{NJ6smq0O!$}Of<0gH~s%X1| z6pw#6j{b-_A4KlJBHl2>5v^MlemD$#T`roEViuvQYH|%CWI$D}s%F)a47;kS@|55_ zkZB1%!&+6V49iAYElM^*HDs8wR5caFRBb3%4SR~MM=5n959gveHaNqomtu7@!7e39 zlaRr*n|6AHlC(!+VD2gc0((K^lTn(NnsKvGEt~|;ux}?M1mmph!3Fw7sbs*CQG>RG zN@avJ1U0jUpj47=%Q7W?g7yD9VIuQH%)9Jd*G;cjE9cwU46(y(3US1WmarLndbfUu z&8J+qjAr(u({8tq{rOub#+N6}`L(|{w&23Gdmp|(zxjIk8|DsP{60BZ`TTPZaP!x> Wm0wGH%hJ2Y`Fz)F+t!<E`{h4;X;cyb literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/bg_shadow_retina.png b/app/design/frontend/default/iphone/skin/default/images/bg_shadow_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..43d75a3ced3c46ab0e5f3a80b653bf6ebf3159e2 GIT binary patch literal 1089 zcmb7DJ#W)M7&fJ<pi&o*fOg^JE+8eoJI9G@t7(<kF^z;vNFy}^Lmc~(Sc!ecz7V$? zY;0`&3-|#HEFgrC5HO+gBlrVIa88r7Lsbb&_I>z$p6C61+1P)uwz{z@2*O%@&usGb z3V$2dR`~blr@O!Svd(I4c0hY<;>1L#c(hAEJ#hM@NgVI!>1VPn2v^_wtu|}h4|SIY zl9Sm;X%KO=AZ+iZk>d^t16|Vh!?O7M-Fp%EURgXW+Q^O!GVu3~V{&l3-*S(KuI7om zJ77E2IYB^}1JYm=CVE;Hr@T7fXV*{!Qxi5Ui>FSt?FKMtOh8dWc^8#1C@B(Fkfvxk zAR~+*mLXE}80ke-M;Oc=k*mdCPj8ymOpBk&;()P8hj22PNRxs@<37Zira>e_S<Z8d zd~y^rC(Vb+=A6MKi5vS7^Jxe&MyE^1tSoX*PeTZzrr#g1WI-M#vt;qK!PJQ$mJp1m zHd%aglx<&*2!e%m!kXmF`3w1z)=@-YlO%K;yS$3M&2v(h3uT707<Ai-hlE$raz+W6 z{;+NR5qI7Xosmi1aX>;=H_PI9?0b4aG3275AXU{0HH2{msfDU)R86^JRW-FRCpZt} zT9U`HhNf9Y!7@}uwlJ<?&8R8WqK1lQP1`D|+8kRC6Xt|2$wV`(e}=7Iiq(ynIE=<E zN=Nf<Y78i&$$&<{I4DXO9QvV0CrMUn&dozLN$fu(o)yyoOtY^07w9W;se($C8nR?u z+QL}Fh`W!GTq;<mX~^OX>-~4aAom1jU3RYP=2yIxv+ZJr_+c@HB;-Yl`HbEF_T@XD z&wF*V(n?RdolfUfZ|TP0%7@)tZuI2G^_5(1`StVluS+*KZwt$Jgx2F*J12iW!fdGP LwSDtVwe#X1D5p>_ literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/bkg_bulletsm.gif b/app/design/frontend/default/iphone/skin/default/images/bkg_bulletsm.gif new file mode 100644 index 0000000000000000000000000000000000000000..d0895cdf78a14a35fedc25ff519e55939677dcf4 GIT binary patch literal 46 vcmZ?wbhEHbWMN=oXkcLY_3M|5i;Ln<7Dfgj&;b!383ra+m!##>0~o9U{6z`0 literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/btn_edit.png b/app/design/frontend/default/iphone/skin/default/images/btn_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..8e3b3f7d145c74cf2ca426cdf2d42992253ab2c9 GIT binary patch literal 1321 zcmb7EZD<>19KWV$yV+@xD%K)9FR~A6axcl{dS}lxxl3G}sWlBO;E-MKo+d|fFTJ~% z7tyx+<R(Ie=}^ZCe%Y7JmLe-saDtK|bL$jzSdgj{IvHbZvx8!1eJ)G7ei#K0?z!jX z|NH&^Z_gbb9C&Hh&L?*w2(l}&S4_e0qwd@8f#WZyy5Wd)JF$#2WQ;f^$pT13F@^z} z(4;I#0ZFNheh2yxq;*<NXPiv(6;3uZzvSBZ%bMxJk-l)*l;k{c&|#2ObsoDue-=Yk zg~#^ONg`<qAgAuFT41O;kd~`?nN_gxi)de&g9I9IB($s*bek*lSe=)Hb9WoZ(7K6} z=drs^Ws-xaU|0a9{e({@LL?dr`pF={2HEFPiXaJ`q;P`qkpxFG96_Ru2ZL&sGQy?A zctZ=Wcr52QCWqstQpsNm_zf$IlPt^P1cg(S4_f%_itb2dpKg1b3?i^)OEn$U&{3CB z8a9d!k3moGhM<`#HJfwnO>*6CBnzeuFH0s)`U%{s+qm&HQOV@?2u<6xww)BX=lp&7 z?R3Qicna7?(UM^mN4#64wij{@8!>Q6$;ty*#kf?kLH!_^<X(l&tGZMW4Y{ZR-ARZ% zRxGLt7YGUzEd&XMVFNLOBqIb9h%!P{q$2Ss%LJMPTY*r^uRv^^jf5hxc#IJQh>VfF zbW9W|Ax4P|$%+iq#3ppxk#rfjqApgwhZVQQa)JdU$FS0dQD}D4V9sz1J7<`vFhu)F zbib-AM#*+d4Y^^cBCymqffBb24XtOLQ}3fs2jdhI3q^x8MTB}uvX>#_B0~h?0vQa@ zp$OK%D*roSIP?T}yKGC>HMd|ZyVK1(1Q(mP5a_UI7QAC;ZtE8jq@^<<M$+Y_;jR<b zkqPnZh1&Pu_CJme^*lr^WRAan^u5)^vm5Q|p4z45cc$K6du-~=BjF8Cas5u4y~Er3 zLclvYiXQmq=BLJ&Z(YCq<L#A|<+09l<JGVJeQ<W;*e5TayE%LHU9;tZ-?`VmxG_WB znk8F5q$tXBt%cgt`>cmPP`UN~#Kco4y<_WZ3+-0dH*?Dy<3H;i7soT6XXXdOSGm=$ z`B3*8p@Wl1cR#=S(QGH*KeJxzQTQuM=+m{u3mtQ9pS7{X%t8-YoyqOHbnG`dTbpkC z^#fF^{;_-PPUY{ll^;${js6vxJHIb6xx4Vwksjm5mB`$+%ZuTMpPN1;A3hq~;XI+) d$j3{FrvvewF8z5T&++chD-jzIKaU<f^dG3?$EyGU literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/btn_edit_retina.png b/app/design/frontend/default/iphone/skin/default/images/btn_edit_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..d13166ac4fc9aca4faccc5a36791df6ce7e7710b GIT binary patch literal 1421 zcmb7EeN5bB94;SW1VSPPoXjQE9wdvx_2WLuRSvvsufW_fJZ|B{#jM=Da22jS+Oj*C zkRgfTV}uYDb5r@pn2=4jz(SPG0GUoBERn@6K{4B6aE!!=L&Flsm~R;{{#ZzC(!O86 z=Xri#Z@VhWOVU#Ir635BR#wV+;Fznw$?@=eaP3Pk9I`Z*Ppgz`wTPeq#1W8d09qCj z>VO9bf#${^Kp}!8oEN=5&F4PE_~npM&~1#-P#B^Sq_8*|7X0-<Lu){tDA}>)OOqHX z2JBds#Z9=wEC`CFEefb?DfjwY>ixC=R$PP@Mj1#D0-AtELk*J3MD5rHF9YZLHjbei zCR)86d+e0YU4gQ)0#J*Q$oCUg61AF*q?xdpZFwj~kOWRrI6>!=1Y@BYf<!kT45}%C zTE@fin_6&X$AX#`W^g<bi5Md$qpZ~7q|Ii-2@0pEd}xucHcOfi&6iZe76S)VzaoY; zQI=4hQK*rdG&=@8eH=n4>=EmNnz~Icshi1yX~UyJ7$=Pcu58%o@ok~p?%ffg(6+Uz zdB79rpUSU#o5KM2099^M{IH6(h8<G73+aZNF)(gHsRyu%ywIS6jRUuvISic_C82?n z{Y@btX=R)pYibe$jLFPW7S>GAw9VuqNYX*jCMV50Im*F1ZM12NU?&i283Pc@aW0#S zwOVMFg-93a<T;)#psh|5$=e*}ZETsOYJ%hkx~Ps7pJ2_qVi{Hef+j0oS#H?sri!4f z$!bszqim(cNTOAu6p$mTUTVk<L*;-X9tQzlkwfT4)*10B`W7=!(JrggY@rBi0ZA6n zB+t==iDyZ($zpY2o7lkrP8be7!SycN(REu}u$A@c_8o$Y?OO;WSTqIRv4*bnO9&DN zYvk}of2qkBRJz;WI@#A7>uR4kc75XY2T2!N^P&s??$79?hwe@#v>m_m+zaEU4ShxH zYdx=J8OBy#nH}wo+s9x>t8TvY_pNZk*$=N@U4H-5jP`-JtXH26lCv$<SF&gCQl_PI zKmB;S?Xo}Db#G6Xsg#&r8I9{mm(nT{pZ{q5#B!x+{q}(4s~P$0So6KyZx4Pkl6<PT z)_C4~#+Q_M5j*-v-l5z*+1-sJ--RYSVu86>%r^wG61lfK3)k0DgIPCLvXxJS>G+Pu zJ6HBbujbg+|9bPimlykEj}DBST39O?2RU;knKPYZeboc$^|!FYN6z^84_c@4j`R+9 zzxWMxc{PqzMlaM{oG3VbZQ%`mt_XKII`{Su=gd>_zo$MEeJN#%%`A-{7RUN~=G#6l zoJpQv{5+>~fB*M`ZAsN-XIE2y9Sz;TDNjBU<{#b<oaj05046CRZ>g{7AvbQ}evbUJ lw0Ldx&!JYsbkRv90Wo;zZ+!OKV5a_qEOV7}=bXph{SRQ%`#k^v literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/btn_remove.png b/app/design/frontend/default/iphone/skin/default/images/btn_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..fd22fdc6b64242756fc18e063bd3e73d2bc6d430 GIT binary patch literal 1185 zcmaJ>ZD`zN9FGp?sH+UN)%698neNjrd2%nkCf=>yCB5sxQqJqKR&d%}@?0C*<jIoM z%N=v$9KH>|O{fL^pdfBzZYq<GO}5I0L#%GTQ5+0*8(PrGa6{Wdz4J-e>-^vuNS+sd zzu*7uM_y0&C7YYtnh1huPW6fzyguZ;>(=7$kz<8zcxiQd2AzJCcM7rviI|FVkWA_F zFw8(%E$;aeMhIdJrDX@5L1`ziAf1*y4DISBW)noD+cjln6gp%M4r@k~x^?CpMQUo4 z8VE^1G6guI^_DEyU+T*$rBQ`bsqP(Q#O1Mo4jq|v^)bWd-6*xJ%j3Ow%~0er#2JlJ zcas{F(xiYaNQP+OQ$Qz6b_QuS2)H1(o%911Fsz>eVIK?lP?!fSx$;mrnx*FXjF?!7 zg-=mx#BofXVG4x;T?o*~8fI9I;~3y){C*!s`0S$L$ga<@x7HOzXe*XxIvO%aPf^aH zaVJXQOz)PUo2#;hz0xM!FvgWlhNXd5QXMEs{}0vmRkZD7;JtkRQ`pWHO~_=Rjm9kn z4=%se3uW?x1!V_WS%k*wT}+Q42iYUYB!&JE&5{F}p`wDljF%)nW!R2vC@>{PDXc(i zn#y+x@lZS%?g<M5VA&p)iv>7QOmIR_6vAN;u5(4CjO);F>Rk06H_?#mSwS~(WD#20 z3s6m1NGF#|=C#JT2o3dCxN75E#D-i3C&PGy{nw!DSJ*w?cGb4{uxfm0V7FV?)`bfl zy##UJ=9C!Ax>s_M_O{Zl%im=t%Y?gsX<>JZoJ{%_XLdduKRDUdb@Hw1-wS_iys$X` zd;9s>J9AHO+Pmg<ZQtVk`2#<&pFdu$Rlhcw$I6vIZ~in?z4*?PtwvG=OQ&9JKR)@u z7el|y4X5Ac4pm|${`}N$v#n=4cFd5w2QE&(|G}$f(<h%sT3XgqPksOBU-JR8Z3}o! zOa_2IpbRYSyODTh>Z^&s;geH=y=TmF<;P>s96tNm?CgA{d&5$(R;_K`c&K(_?$U#M zYWun3?b;K*4{Oge&k}cHzg{!)*RSW&&z*j=EJ)2WbDaStef6Vqd2-^BN^EH1;{#jX y7#lNR2Gj2zJ=pQh&FyIZ*15Ioh4*qB$Z29`oBgvtKJl&h(@6F7iO1tZFZ~0QHKhFj literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/btn_remove_retina.png b/app/design/frontend/default/iphone/skin/default/images/btn_remove_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..d8ca6b8ecd61287c893d53fb13d82dbdccaac9a4 GIT binary patch literal 1319 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9<K~ zz|zE0N5ROz&_LhNNZ-I**U-Sq)ZEIzPyq^*fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD<cE0=g99h1>$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;Np<V zf>iyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh*)icxGNo zet9uiy|1s8XI^nhVqS8pr;Du;&;-5A%oHnQGc#Zq8=06pI~y1px*9sU7#lenIhvZ7 zyPCNfn7Y99y5uL9=BDPA!1Sgd^qS(-3rY&P1wfl!Qj0RnQd8WD@^clyUbf1_?G_`P z=0WwQ;C72KPQCg-$LND17Ac}(Lcr7mV#1RxkONQnsd>QEUIa|m=lIrgFfcIA_H=O! zskrqf)HdHSP@>NC$to}9m#@r1H!AXknRWK|o;`5kApZyXo}k6|71+G96?m@x$XJ>g z>KQEDEH?f0+TYh~oo?;0yLD;h`69n_Cx1UV`P=5b<s|N{zhoHBCG74v&?2#&x3QSN ztYyD?UH<m%{%5}bzR-7c!Su6T;fhZCLz<pDBv@{qQJLI!a86Js>#SpWYMTqrhpmn% zwEEb!XoGBje%`%#PK@nl(gkPLLhioPKjq%bwuhzp!z_;j`{MW?=am;9HMXhT>vGk{ zGFT(w=u@Ti@-XePOPNn1!$LmZlDYoppXJZRw|&2DPct_9`RA0(dU=6)$EBMa1>#nR zq@-q>KCygP&TRDVtHZjhewU3Te6BwfPzic@p1oyl$bxsD4@MhtaxE6@vym(M_n<(h z|B=?`9~U`(KmBAA)D*ZkChy<{KdrBO<@}XezL)*JvqJKvQ<U1)oW1)h`&C6)eKvBi zi*d`eJ1yazUntc(X<NZsu@bdhq2?9LLNj^%4kb=_U9!MnrVBS~k=NqLs{jAx-p`9L j&@b}59R1(No<)Ko$a+PKtSZw4P|@Y->gTe~DWM4fcih@s literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/btn_trash.gif b/app/design/frontend/default/iphone/skin/default/images/btn_trash.gif deleted file mode 100644 index 8784187ef1f2ffa7a9d8afaa3a24e9702ef8a6c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1353 zcmZ?wbhEHb<YM4rxXQrrskis{!-r256`va$|9$)Rxq-o#`SYL3$-S_&d=ne{b;XKz z`T74oe}0>s{B7gLAIFY;-@g5cwDcoR&L<KQkNNq(u3Pu}-o3xCUj2FU<RLTjuNyZ$ z&zbYe+xufz*QW^+9<j0g{qW)c|NjpeXayAib4U0FD7Yk+Bm!w0`-+0Z<m}WEg{0K< z%sgAA_q+EiDP*SDDutW+8u%7Cr)Fe&R28KLSNVk`S7j$#rYPClDcDq4Rpb`rrj{fs zROII56<bx<DkY}mC#6~e*&tzkB?YjOl5ATgN05X9$WG_{qErP_Jp<ij12aPfGZQ^S z69Y>VOC1Fx149FSLnD0yb6rCND^qhT149KUPy*Ukl#*r@<l+Xk3&^uo$|xx*u+rBr zFE7_CH`dE9O4m2Ew6xSWFw!?N(gmu}Ew0QfNvzP#D^`Y?;F4OLT$EW*l9`{U05UN# zDZjMDRte}*h!=7T;Kt?^>w&$amz<xgUy)d#Z>VPg@)As;uP=V3xw&xF#U(+h2=`(& zxHzP;AXPsowK%`DC^;3VTp46lft7PnYGO%#QAmD%4lEP{GV)9Ei!<^I6r6)i^$Zol zGxJjN%ZtJ4eSNJw^NLFn^O93NU2K(rCg^2mrdXMqI~zE<nK@e;Ia(STx*Axzn7O#R zIJ=rz8XFtCnwY}$y5uL9=BDPA!1Sgd^t#~G3rY&P1wfl!Qj0RnQd8WD@^clyUbf1_ z?G{Iz=0WwQ;C71>PQCg-$LND17Ac}(Lcr7mV#1RxkONQnsd>QEUIa|mjQ{`r{qy_R z&mZ5vef{$J)5j0*-@SeF`qj%9&!0Vg^7zri2lwyYy>t84%^TORUA=Po(!~qs&z(JU z`qar2$B!L7a`@1}1N-;w-Lrew&K=vgZQZhY)5Z<!*R5T%dezDm%a<)(vUt(L1@q_4 zoilsZ%o)?CO`S4%(!>e<eZ4*1U7a26ZLKZMO^prpb+t9sRh1RxWu+y>MTG_VdAT{+ zS(zE>X{jm6Nr?&Zaj`McQIQehVWA<xL4g7Oe!f25UY;KAZomk2a&)k_v$e6dva~Qa zGc_?b0%j>aT^(&LO$~K5RTX6=MFn{|Ss7_5NeOW=Q4wJwK>>a~ULI~PP7Zc9Ru*O^ zMg|7OpDf^FM+ZcL$~y)&FNcZg%357&b9vN7K8f(pn&5aPv5cirfFtmWfu!Q00~$dF vj;uuw5Ao>sFgtNPPB3%f2+&aY5i*05O;L>9RbD`mU!FlQMTkMfk--`O6h+iL diff --git a/app/design/frontend/default/iphone/skin/default/images/btn_trash.png b/app/design/frontend/default/iphone/skin/default/images/btn_trash.png deleted file mode 100644 index 43d00f17d8552113ff1ecaab7ab7e26286ac9c82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1227 zcmaJ>TWs4@7<MpAN7YQ(C=y#cIJgMVmiUr5X=9RQiJh)iNmZrM8lgSZiBDV8`cnIJ zamyP;VH0C?>cggKLUa$nCb4xxg9jeEv5Xb52Y3O5gjAJ_N;e4=O{hqSVs}l)1HqDg zF8aRjzkTxY-kw9g#yyP~hWW%UA?K{k?z`RVeBV00*XJy|QKo?U^g&dXOo*jqy$FG* zN<%OQC3#}(3mC^RoKW%wRLH)>m2{PqTnuTehQr3Nc+xhc(g;ML2!|9cLHzdVJOLCr zLG(wmbk^YEu+lYY!oJC#d}(r|6qAYM0T8!2M?i&00=7D;S)839Hgq{>?_N^`*npss z1o0rLLbez1x(Pvqq=O|o%77?KGAtcqV*wDN8Jc236x|+VXfD#u(G1vp2q&5;4{|x7 zb2FB6N)W>c85~8G%Vn}0CUtX&Vq&ovMTe+RDCi)9)`W&6JE&Q0H3b1$B~vkwqHDla zl#2Q|N)S$_4@yvtEm_UlY?IS4%9ad@A!)ay8Zevvf2gW%p)Hhy5A*#`VJkmjKq?0< zecUWLgBxsfLm3=zLJ8?+Ue`x!UF;p!k!}s^2H^W5Bm?>tP1eiS20okRM9o5yR)V6C zARGl!QDiQfVc8Bg!l#*VhG8;vD$NS%Fq2|CI-_)iVQO4KFO92ELp84akSo;Xx>isP zC$a!d<tUUpO<e^WC38ysTvB!QHo0>BT+(&9l#>kQ4)$Mzu3b6qakpExbq-s`hnnMd z)3J2`|3t?yPf`?8dHeg~+WLADZw}+DuYdzs^<3A|>vQe?ksE8vl^fTOg2A@W=KSFA z$EueHD#dV<H@b^v8;`An3k@xeGw1$z`o)6pn*WD6wsqw)vH$Gb{MQ7_TgC^kp1hYn z^X=)S-gv{s_nP1MiwB1fooqgGYO1Mc$v@vvHJ7iPIFZ_U<>%zsqSxQucK7xZQ-Ck; zr0?zXcfWi0*6GhXW<^hn{YdrvclQ})pyAHJxbIkIY@r(;3mo1Z_;~S66-|o^Uyj<v zKU;RJ%169cQy;ZN=k}guFBMPWaK3=>*lKm3`HuJ2irQMKTyOfxvvkw`Jv8Zg#+SXb zjOAC>n8np!a;@9&?fcU+J1Vn4!~?&o&pmZ>ps?*_0H!+6JbQI^MttGJYt#25=WmA= lzT$Q@@!#}&e#9Sr5_^Bo^9KXdg~#3Bi<s#VE~N)v`v*29nC1Wg diff --git a/app/design/frontend/default/iphone/skin/default/images/custom/arrow.png b/app/design/frontend/default/iphone/skin/default/images/custom/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..a804375d3f2badc9a5460d6035300c810ef0deb6 GIT binary patch literal 1037 zcmaJ=O=uHA7~M9awX_%%5B|Zpt%riyza(vTNo><>VgsgxG}2ruZg!{5((cZ7cWSmd z6l)PG9+X1wwHKjC4<1CYVD+Sz>P_jXs0R^2!AnI&XVWD0U|g7;AKrW4`@Z?+R(AMe zXZy)^ilRExLvoJHhsfw?J4pWP%lG|cI)Re~Jc7n?S+OA%*H96Hw4qGE98|Q~>6b7{ zQ9fGF7jPkSNm7x)C?1A!4U4cTD%$T_iaH4~D8dQdjL~17Jf(rI#puy+hRaw9Ski|o zHXNx8=he!jDr$891rT*5B49wQ0N0o@9m$Q+Rb7d!y<?UJRS2Gp(R-!}nJh>k8-g&y z1yrt=2fZPN4{>5hJP!np=U84~xxN6;N#Q<;<3a7CNi<s<mvVBd7K`j+bO~ciV%c)J z%#?!+vL{$x6h)R3SV0I7M8KIfvEl|yr>m|YLr1lB3+u=Po}yAjGdM;Qr+X<FRzucw zYGon?V_n5!d4}^+ssl5b|3eL<fp%~X?)&|xu#=y)Ae(~@nz2=KapPTHC`(G%P{GK~ zBQ#a7Vzz`Za!SYoiIFhFgHheoP}!;CGZ`suI#@APn3iKSQDAgklTu<ZE(a50Bs7@h z`6MsOf*cP<_(&u;$O~es&XtimV?Yzvx!OKA-jwULf?<)!GPLz;P)pg!0M(Qwy}6gZ zrg}B5*4#^^DVHT?Snp#0y6E~5=^k&{Xj`&rG(I#*x7(zx=N@lwktZ>qmg9MMySV%N zcfZg7wq^RLKRCb3b+q0b=qUd3y|Zxo447-X{Ppx=cxNel{K~*j-`WoFe|vWBUi+t& zB@pc#TROZrdba0<R=nQ2(t3AcjtA7Khg(ATm@_SYjQDSFZmiCKSbj6`;Lhh)TKD_a kY-`Kf^8<^=UN0O0o0RaV@}p;C{k!)-)5&3ZeemjyKewz*tN;K2 literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/custom/arrow_retina.png b/app/design/frontend/default/iphone/skin/default/images/custom/arrow_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..5652e3b93323a0a718bb99df4d12d33e637c53ab GIT binary patch literal 1088 zcmaJ=TWHfz7>;g?F%UNqFB2iApdxE7U8_rMR@$a@1v^Gpw7xY>&bBa<6O+?5os7+i z;6O#iH)S{`GMG$J_arKcKIoHpc~KM}rcObI7sLk@PinjQU=5u7=N!K8`>$uLt8>?i zhUNx>AXX$gq?Bv%T3cU-|Bo)-KZMPC6w9D)*n<kP1&FW;bAU|faxX{$SuGxT0D=Tj zLuu&@$|QFS3e;)Y#n6s!Vm3hpLyjpc{Q!|U(5o3DwQ%D$MQW-@?F}T^q!|T$TF0OT zx(7Sc%3#03t5m3+3_1c9&;gQ3N8fMQf+JETT><aiYlb3A5Y#VHe}c*+yT~ZC02!cJ zuflHU$nAcb^Rv94Zy|jw$1<FcVRv{rRtW46SdJ`z6!vDRJwi%~mwn-rNcACP3Jg;y z6zD=L4Xs{=<9VK8eT>iN#R#umG?46g4ck*ukbtdNnu#=MkglSfgLx!UIMP2U=;orV zVVBE<3&uFI$#695rc?nYlmCb6`Xbs!DX<jpKZWgd(F9Bi*f4J?xN$um*Oe(mEg&Ok zr6Js3sbW_jM9}VoCK>Gx&>Xo}GgMfxOZa3`NEkMf4Fx15k-`eJrl~^Q-`d9UVXn;| ziE&(v3rF}!n3a5Nyv-MpqTvcxf=XTo2C8t?C9bb3*Bu4j#GWN!X#+rwTTmxUDGOTF zSonBVy)sv=9t&HQ%iv%bx3PaUx^ji5$K5WDEj}y`J}~gKTX?Kbt~oV^pTzZq6iz$O z&z+H*M%elz$FsGbmeHnT+1j(~WY>7G+5F}EolPsBzPuSau`su6a(Z?kh3bBOZ1Rlm zdfd6~!d%2Va(Mbt_=9I^>y(y%GTFMJ>&fck!@BgPyB$-#OmmRDmtC&SH0I2)9}}mI z@lb7Gc+2N^`Hi#kw_oa>&$ntCKkSP<JFFFluD)f5$LqyUmxnUl?XmW+2b*7gzjFS^ m`!^4d+-+UEa5VH{epQy3c)fG^wV(4R-8Y?xbxJdl?C5VtBx;2K literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/custom/bg_header.png b/app/design/frontend/default/iphone/skin/default/images/custom/bg_header.png new file mode 100644 index 0000000000000000000000000000000000000000..53059c75cfbc4525750b7ae15994577dfab24c87 GIT binary patch literal 13919 zcmaKTWmFx_wk;NdyE_|qcXtc!t{Z0q8;9U-A-KCc!8N!$1P>70-Tmb|_nv#-k9S`G z=w4N0&bijAnqzeR=#ErTl0ilwK!AXNK$er0RD*zk6#W}B!9o4Kt6We`{(a!PO6j<& zJ6gJWn1X>2Vit~OKr%T8Q!Ahv(A2`qc@!uJ0RauL(a>?#QT)Ph?&!d5`VWTL)4}O4 z8v;U5#M8;t+z#kUW(Ksf0SN&vI=TU5HWoqvZ7xMtMJEZMwT-Md7^v>8q+#xDXU=B< z5D_L5^yL35-~e<rCG&K!2f6Tj3IYD5%l|k2XPN~-_AiL5oe<!^iqcV3A(L<f1If6U zS((gPx!K6LIholwS@}5m7|GaK*;rZF*jZS4nAlkPxp??l*~tF;0{qPewy@+^la&7N zTz^MG0BcuQCw>+d4-XG!4-RHWuoVj%A0HnJD?1B2JJVkTlZzL~)zp&-<U;Xp1xcWb zIoQU@)y5G-_K%{enWLMl5a4g6|J8zn)BnhVT>g8R{w^4cr>PSQ8#C)aE&Us)sQCYf zIyn3f+Qn53_`mi3KZRX1yqth6YCso9H?aBNjkBcqCzTVw1Q=-Q>Il|wbhQ8XDympJ zx;na8J35g`sB<y1k!jn2EF3*t{)Jam<d*}vxSE2@fpU^UfWHdNHZ~UgY!Z^J+#DPd zyqx0FY;00&;*wIVl3Y^K++2J-k`f$J|K>_Mn!7mwL9YMiTKq3p@;`F_v4Vrs-^`Lg zu#G#=LK^JoK=!Ye`ECAlEn@#s@4vYg|G5_N|Hx(eTMWxT8~cB4^uMS6y62zpe{B1A z@IS@}g8sT4{MXi_&fj4nAlT>SB*ip5S6zMAQtVfpH3wGH-9)sT)|eCyZAU#Dk(PtW zH@x~Tp`iS+NP9n6VWDBCI|GpteiWZ;J@9EJrwasiY5m?`U2x5<sZmdEb1~NXZ8?z^ zt^9G-A-~rB7DpTFm=+=F`2tzZcz<%Xb~Y_{?)U8U(yz~l&a&!v8Abw<ZT7h1VW0Ob zR}+DlzbDarnY~|nZ#dJRy{dR8eJ~#L4DS{TJ+u4B{#ZjD-znS4-Tx?k_5V;L%vJt9 zlrAfRw-UZ;gT69NE8Ouj`DzuImDM%+ZdGdX!FaFGO%#>-RQpz6o=fu(ebh3;-1+3} z`Sts=ofpxFzkm^$yGpm)y_mbgHeeWk7u(*^=1t3bJ<U1akKrtK?c|MfXxM<%X3NiS z+iFupai`)1pZ0|S&tL2AX8EVAf5uzyZED#jtg127y*NID)M)^b2(C!)JCu*K`(|r* z!rRpo@L6%+fa8tpJ!0je)W6vu^Yg`LqNNO6+{&tt{+Kw!9hNt)dP6<IFZVv^ONLfJ z9ybG{*Y7*7Z<42k-$JdXms5<Go6aP8b94R8!|O|lQH5{=h-)@EMKrg)Gw~G(qkk)f z4PUibH3}gL4BU6I9Go2;>Yn?3^?%tBFdWA2?9LC@Z_=Oe!`W%zom^l{cSwGwH=S%~ zG=7c_U&jzO*Z<^R?9e&;o`&qi=tqE?x>VtOneq^OeT0@l^i<Cjd?&ymyg1$9@9NpA z2RkXu!WjNr+nVTeXGk^bRq{^mY)|M+hSdV`cVq1h0P)Y{8@9?!w`Jl30?cZ{6A;6+ zslKOj>d)6z%g3F3mj)WHpH{Z!lUJ<{JC)oEmfa3-;j#Mu=07D?{MJsHR@dW+hc|)B zF=mr=1`oU~L+^5TD%-P<eIvEir#(|CC%P$K%ZYZJAL`PQkFRG)3ruppK(>_?4$l`5 zj?FWY9WLtfsoUeBC%+t5e*|Le%OOiBX~qliqk8dVU1w*5eM1<<=gQ+HGjzQdVO*X^ zq_g8?K77*K2dm5QF>&dfVrZ+exZg}iPw=<53u2^xE%q3gt6A^sThn%GUsc`Zx-pv! zXH+Hp1!SdhslLNf1%B3PB0($=?^_88%OgkZcXUL@DkCP+q`-#I`Jy@r|AtM(7slua z0uQ57O+3|9j<6Wb>2zPG)&sD``61p{dF9;e_ZM9d^W#pr$j`-)9p*c!S+JNR&KgtC z;^o}0lrMO@td0#Ip4uGh=bNtKGwsO@x_8^%O@!PVcvC@Fs&=g~p9+Bm-szukC-Tam zj5Z!w#|;*2L|+|H00sh?;m4?E2&wKBIA1K>p`%VhEc+?HqFk2n`)_2!b6}pmp)0dY zO|Wj)f7qP<jP>2pL^;5r7P?Y3ng-u=t##yf6WAnOi=WNE<Rs8#rTg5Tu_<gox6s8j z9@+Bt+35e$;xK3R$W_}~6_zCo(YojCRo~@K@eIx+Pl^oWgPX#Ym=eXW>htnaLc=%R z=+{%pDP!1e{XUC1t;+enN_)fUH2vM0?KfpDaA=Qv9CsyHZ)ari48<p`kl@K^b$H~E zOUXrGFRt`mvICtS&kC`0BkX~6`1HQak6H*lFxvXm(%{Pd#qtVIbzca{XM8O+l;Rpy zpk>KU(h-h5i~870MFc8beO$YK9j3a2(4!XQAI9D~J+a5)N%T9KczYx(iG5bVQLnd; zW8#)I&6t*Ba;WSm0WZgO{~HM%r}=_KPTQqS4ZERDNIv>QYXuqyC0FIh^+A<(?)vYy zr%KQiMGMH$@$k&hcrDiMPB*kCxnETa>s&yCfgY@Uc;<2bsfd1J)WMq!N!h`l7<Jk= zXuTL`R=2PCh-hV7+NM*d2~1UGMWGfqPprG65f6GFjc(IZkI6}wx$SMj`Pt7n3TQ4+ z(Dvj;3!%$4z`0dndcwp~rfM7%$F~syZsgT1wx)_~W<57K+%L|#R`VZKu3(5wp;_GT z$EOU3H%9!v=k%Vb&RU6Sj?Z)+C-Nb(-I8yZEP6qeA!xkSt|(sFXMr=Y1J)UMk))<$ zScy_RD2^FHD%}z2;SSPAeMz9{Cn$G|_LxjIrrt1W%+LH&@1E`Z=o<2B67I$N@`rzl zxvh>S8D%oZm`4#-Fz-`)FF2*2X1HT|^A<P8a}k95eA|?1kevwYs^KN5e_mwZ740*U zVq~Y&HGr_sw=kMu_*%&x!k;r|_#sWf+4d1vX6II=VFZz`OqKp_K*{cYGo60ZRtOwP zXPuKKsZE|>__d~$YbQxs+e5ST2PGXM*!dwp8J`|XB!J+tmQ0F~mHHU#r7?PJX_{n> z$py)rV<-6vGZf4Ku#GmWg{tZrih>4r0LO>gfy|capj^|kb?g3^uA%)pClKO`KD(VW zu8K{@dB6m1a%oaE$W~Z1rt}EiGhDXbb99UeEL%xEChLrToFu*k|HprRWvaXw2O+O> zyx7^x8@$@*-xM!3(u<QgEZr0{ei9Apa*Xrn_ME?%@bY|~TmdcmxGa#{M8E-6I$TDO zJOn~$m0R@9BiR=cfOAh74%M*V^6(f+lh6L_%D!yzGwhh$8_c~DWA4@q{(X}u2euet z>YXcmZHEOy&$kKM{Z?(2TAgeB^)Xi;uwOng{kp6wPYt1jTuHc0Z}&LhCs*(!|KdPR zoE}u<!drX0z|qxqeBY{Pw(%PEQt`)$SvP82hi!}b8QD6Se;?|5iF+Y_jnGa04{khG zqvWAB#`aAMiIa}d+M^mm8o{c-9iO{j`7lzKDdRc6wYYxR%VZx7CR8_Rhn9=zO*Je< zJ@UWu3zBgfekpL1UPCi4|H{e^{xYgl*|;N5eOBz=3%O4^L|m{yaY;+&#)-zfdXD1p zv5QQK+x6&n^P=zl!b$+aM3F4<lL+6?pZ5OtS3AM+kJ+h0s>MtuwBVRijNeMvHQ2H_ zq!v6ZITbQXIjc5Mgn%vFlH2I7vp#X54HB#f@8VF@wEA!f2>06sz^!rlXN>TOUuh2! z)_YAhJEl524R}-f`Q>OV#JP)AQOdLd4QWdwG1mn3IDLcdhR;uZ#_(NjXF~O7-?v+4 zx{Q^DW$dbTTSi4xWsJD~9C<o9R2{tUw#^s{K(o2b9iKdrMj9|?WudrA%y(2Wn@+5J ztCIoN^yhA=NdwdjTUbAbDJU6~n<NsG=plyAOLJAK$F7!cW^0m{Te3hubdhUT)Wj+E z^5R0`LSY6L<<^R74sB8D8^x@%35?`#CwW4x#JQ>d)B}BND|QGS%Kh^5@F-H={Ixo8 ziMYol&R6Y~n_OSnn_lGuS;-+jl1$ChDs%p+AlWjov79fS<m=GRE;`}dtKhfhed2z4 zM2d5l{Uai`!Y*}ID!1A^lLNR}K6(DF(fCr}OibqH2w`5Dcw&G42Ihf5%B)%qQqGn- zR%$L-P;ZjCwcckIqEb5qdRO<c(#p@HKglm)#V#MN(>;35p3#UpgZfX$+fZyxbM@w8 zr@Qr*90uaA%aV-fzVGNi?zwsTZXsWS&$Ej(Ax?AmJcSWmEj~FLv?i;A2Gh6c-0?k_ zV8gpd#D7{&_bA&F5#_mtyImEP##u~2P_LEGt0SH1HIW8lr$IhEFVbH-TP>cOUie)- zU+(MWEP+<m2;*YAU&2rnlym6nw?negO0loP3spsI1Dmq)n5EnY!g^)Bp+Y}~+vFLq zWzi0Hi+aZG`M~KvEd{t|>i$I1{?2Z<b0-|hB=qGv(r^W~7tbfRE!7NzPU?x+C|^5D z7s(DvBJ{tAg3Az_2`f`R>n3`UeZ&^h<*|Pk6lv3P{f;gK_#lveb1h+M>*~0A+?H(t zW>Zi!RQ}0Pm*X$Np>?hWYLash@EN$&Ze4MUSAMhJz}>P%%okasUf<^nKsujPC}J~N zpNVUbY}E5sZT@6ie_1)Ciq8_jOvw$2X(R2*l1O$+CKWZZfDP=a_$<7QPO8G*q|e2H z?CRLbdFdgW=5@evzYg#85V7#0Cm@RWI}>f~p~e6G_;GX+$A`o2kFxP>KXJ9)UhxV5 zBa{<WKRJQ{QH&=xTF;a(mKIRIyfo?wzoKf9j$xAIoX)HL^Bbk3U=WV3c0WMs#}Ky$ zJ*{;{pzi!3wi)fx=){QR%y2=+Jn{rDus}Ugt1EmfDS5=7`1Qax-+V1G*iS<-=1WjP zJI(#0{-VBIt4nMVHmqgfiFr8BYRB3i?N|z)>V#x|oCOZLJqv%`sR`$IKRc@LBVy!b z4D|!X4TzhtD@xL74iTU3UL9@HW#VjUwSskH))fjZnj%nf6kG?O@r{aXl2b7}MEgr9 z*S`Zf*>R_%#zSa+8cMt5m>))S2c0Xbm3EeNaV}4&>f<rt4vKo6Thr`<@n)@&W5o8V zmP9(bpErDm`GU%&FF;3c4AZapvStWp094XR+{FO)FonjuX;EQw)Sy22C0wjiIfEiC zw=*F3&W{w_`H|t@N_efB$EFs?=?u51*tU)t(NGVB@P40s;t?@n(!PujQm#zK+Tbg| z98({f*!Nb`6^-u?kc*is*u3FxM1!ZlLsno`)mM@ut$e0}S9cW$$rkwLKX3gKG4~n! zhCtWJSRd9q{KIGBD4vp4<c7s)ysQ>x!K^MS)Od201-=2RtM>i(THh9AGCAGV@_D4x z-c|x*oO3Qt$I5AOuxHPSl`h(6?8SnVGoC4uQc0-fSHNd|m{ouQ{&`)i^I#Agf8bOM z_}jG!zi?pFlXK*{nUfXNLqQw294ch&?HV(Ukl)4q{&4MX=e4ZD^T8(Z(|pVKsLSX< zg8hQQ;OO_TwokzEl;|wVEyOAdn>~F=M8BJg0_;mP=b>orNPFGF%yN`RyW$S4F1X0r zJqkX5LAFdpqOB3Vbn>G-A$xq}$e{C66uX|i!cczk7_U!EIx7<j1tXCrziHu(ko+h* zv=cX{+^Uhz7}oQvWCMcR3v<_brq?8NHa2$oL#p}^R-LEVueX3%Haux%%8V{MIxUdN znv1Igi1TG3>4mAyDtoT-QZ?><4GYS#iN&W6ygt<%2quoDPDLw|YQ9_*wi335-bQFM zHk=Z?4WKFa7~A-MP61VZCfqn_y)!k72CdbO&qb4}rYyDqGsQP6={h>%*}!Vn&9RaO z=FPUBZ^N|$D&({6og4C-9<G9OQUNqob!1ROBSgfi)8A5~JopP@N0Ygz=@@vo)m9Wt zG^%5eUiLE-f+3$WzsSFp^F+i$_z2Xsu0Kj)HfcO=A1Sz)3^2{DG9GI{$B75&V0ZsH zvScDLDTJ{%d(aTHj%`pp$5r`Jg-jA%x~X;z;MkUMU8`5Z(Y)k2V%DJEwy|7YTYo<; z7f4^?QMZ$QyY3Q2)(GJ6!lnM>6+XznYW$e<K!d1uuN4GQJwk>u+sa>4k{G72pn9CC z3i9$M)ZX3U3`|*8r^<%^PQvvZhwCU>Ce0D5+wa>L4}p?8ut73$tC#>kA;4(?IKfeB zqX5&N@g>L=uVL@t;jv<`9;}CnHyE_8GkN58pEv}MAESFUoKJ7eP9huDYm#HnXpY&j zE8gw^NT5gu^BwI*xfQoRvkL(fkjh|}X$G5W(bEt(HclHXWFg_WouG|A<A=EDd2Y+r zuTY?bhWKC|z_9pTs}A^R%fZ!6c&-{eDN8eyRq?nOuDrAy_Hm8nW?dEpweUV#HYM=} zxIsUK$&Bo}&=<vPL%*>j=63rZGbZxzc#~T}j$a1z<?k_t6br-;Zs%kgt)xkID-KZT zaWpPMt{u|<=r(R`=VqUwV^J7{d+PLDS23iG{X=rDx)yTHdueLwjX#s!9Pk0C@R1t~ zoAVw34+!K~MDr!hVi3+Gdyg{e#WGxUo$38#x*laDbdNb8Gd>+jRL`zr+rv;)&v@Pl z58QHS`n>M<Ub0@FqxF!wcK3cI;N5yrT>IeDBQWxjnva8wZq0>kr)~M?glFHL1|CAc z8bWV!AIaUO5ds9?mo@LtK!ud1mmpV=%%%k44sIE{P{d}(I9R|B6Z0r(r6jYaEJ$gd z>>*tfDw_QI;^3?W<Jm4~lMmry{-_jUCp$AuJA5PwxgX4z4RCn+l`2!cYai)@kN(y% zJhkNI+a%;+2kQgDT#)&xPb)7_Qy&^7Zl%uhYm7X^8P$qI2`rV;Ba7ze9|HPo0<Vi1 z`<?Rz@OFtX35}wpJ?jQHA<~UH7z#J=i#cw8j~$@o2H5P>!h_R@kXXdJ7MP+?Tzs2C zF^oP;h1S(bH8-p&Su`y67)j74H70ZDC}*!PdznN-f`pr|uXkH-s=3nu)y}Wi85>>S zsCrQ*5V2#)eX<5tV4@o33;VOnxxdRs$slBBZw=5h?pUjDM7=7R!_X)4mFL$=N^Sc! z!@uJk!uMzkU>!urYuQTm&io<a$&h}=$h6y1&^IGtlNkxgIu6loxG}V1$|z0z<Pbpl z$+g{uG?!P0x9h0|CBglJddOY-uH5hkUI9V>8h3=DJx^@g$eGK>yYtg2$jcWiGJb8K z0?g~9!qS0H2<bN=v}_&IEY+}o!>&eT5%U@xX_w}4RV8p;HgZwWP4I3@NkS6U$vAxk zJ=}vupwzp_rmWrA1!-h=y=&Vp=@zL39$Fw^io0b?4Sz(!V&NS_{uAc!<c@3nMT~t~ zu%?9ZW(EMwhjXbqr84ok>+lZsy!NMmVQE9G#lzSif!f1)5B#ZuqyCu~IVUMQou4`o z_~}LUx(o0*G8yK#5QR_^C`{0`Rb(Ny$I=m6IhV$t?dX2=?vv+P*Ji<w!u{zByrq9c zuF+Nc6qihmdrLIYgB`IRWsZ&1uv!p8`6$2C^<uwdR@S1^M4e5xB!w->GB<evcw?>f z&Tgj9L(S-?Kq%DRP?#lXCSXa-bNsA9<Na<-di&yWw#7>jeoEC0{^qak7*@g4%e65u zcYxqqWgY{FT_Wm?SC)n)-l)LWGnLV^--C0i3#hlz{UNzPAy*SZ&2^CEu>iZ?&BMe2 znyqz94~(e$%~-WaY42p(uAWjhGBO@w64tJsR{$FYg`8ve4q?!*(GO80$?rkyL5aG4 zgmL*K@^*XK;KOfh5i5H6{!QeClGhJ`SB6<Xz*E!dQ#fLhcPgwS_j+JC*rI!5ZDhZ2 zxS;VaKf|WE0RM|zt+@V_AC>G;L}pWwKn&{us}xy7NhriYY?r#J*a%`GY=Fyzh>8*y z?!tsK-!w+1x$JDe38bF=J={drggj5CpmB3SN%s+;r1HCL)p@Bt;pg__N{>TkysW~l z!&lqudMp~!07dTB>2T7GmY3i*SjD#(${R0v45VS<<Dz-m&;j{}SpcEEt$B{=%W(q4 zRJPJ~4<5+*B~g?UOHUx9h&e3B-PIf89>b18s*9kV=3SKC3*#_K;Y~0Ssfx9WS-5d0 zXAO+F*UqO~0#Fw%1x-pKFXFzLgx<Prlb0ZTP6%qAexLrxnzHf|Tw%9$yg2IEj3lz8 zF~($*3__$Y_Y0zkvbkp!?xt|pScT<WhpfR_H-M_C=5hL727YCgJyQy<AG16!WT<1G zzbI)5#=?_yaY7PhnAZjtxu71-5&598CI`9__0*e=YZh``w{_^KDtq5`&fV~fpR6+F ze+d2oj$Or2f*7dotD!25;ivMSccXGx>%+bd5C|>UR-i8K<`eth&Vcl$rvtf2sIlO2 zy&;1}XZysKi`+b|1S!lKkZG6{cupk<DZ(+KvDy9e(Nq9(9b=v(@bUbZ0_lW3+cD6# zvSp8SQaK$%61aOw`ZIVCG?`_SlmNl9FT8MPRs-<1HMF}<pelkuK`Dk`)A)3fo$Z=C z3Lh^lchOe9KV3y0nX5hSO1QyeSp1BmKd(<Y?d3j+|LFL*{5=zd(W=oDCMvIM<M!cH zpGV+GREt!kq}i}#bOXBu%LrvYaNk2orJ|1MRd=7Aij1=2G)hokPqQ54z$zUYN-&?) zNzWF<#lCoDS)6M6<KQZmSCjn0QB-G?d8D0um&=u1Wd;s>(_fygf&<^btd-w*TS%|5 zEwzA6$~uW{{I<(weAUw^=vY7d<(mbAbaYbQtg(W~MXspF7bMdZgd&8hk75QN*MPg3 zRnx1s!P7IjJP-lvSJ;?y+Tt4i36d^p_I^RjUt(m`ky9jN7uC{3pD*ohi@PMyv&AU; zDuN)VIlf9gX7#xVsT6nJ5-6GvRehWpA8N;Ww>LhZ-mdr@e%uIS2Jl(yo#DvCn8t)N z{efZN)7sZ@lB!iliyv3Er=wt1!-bUQWGB@((MzDA678$+(>ZaDSBK(+{=5jIz?(f6 zYaTSbU$t)?W(}a&kkcUanc6Y2Nt{PnH<45lnz&BEF!l~3;^uBT%GRmiDuhW#nd+y$ zrmGXSoaKfe`i&T^Hfamc_9uG_sx0)mc5fi^f9}zCh*o;vg=trTg2~U@NpNyol}Dw- zEv9ygpTzt1(*=7FD~u!2C@rp&>Qg&sSft9ys#dpXMah<}fMO1xazKd%Iiwzbk%X#A zGOt~Ap(OFZe&hKsYuR?v62FXRZ`JTXIC8OHii!i}eLzo&z?}eLiWC1gD&IHB+VjJ> zO+{)Ym32P#GR^uVD8Si_{|4+zE7bv=YJF%}M9OA~+g-b<!0KM#+L;cExpU=ueHs-Q z%G{ZhVQC>vBCeBi=ERKdA+;(v8|sq`N-+QBNP-4}qOr*<|A<4yIV*JY9TQc9*2*K4 zViWBYvmv}nuJSXZ&_s<|mCE{L;n;5GB&<9qrXUnQI6EG-+?Y=32J!Gsqx#Uaj!XlY zbyJP-E=So4Qjn;In^2gu8-_`qsHh}k6o;X%uL;n_Vm!*v?PLRwk&Mll;w@`}w)2UL zcFu~{`|Eyx3Yg^#jjLIj%e0UW`;q}nNm-&xsQlzl&5rq87^$Ez3Jim^LM&-4ll8bZ z<UEPJwg@+wPdpDgZzY{aN&?RIqkp6t&#iNHdBNf3&4P$nphIo)7>BP8M61hNh)}~G z=oK^cSb?T{lA0eiAGSlRF>U_0M@98>PvWWS!}i>E#?VK$UOHj&c)DM^h_`lO*=ou( zP*qAZEGiULE@zd0^T&}vsO`jZwtub;Lqd!%s=;o~4%kwjw(>qca<)P<v2c%Sf{m6u zsIsxbZe8R=+&GMyNKT;MlTc{XESnfvdMKLH2C<z;D-lr4jA%JHe$y85<%*#Bj)uVd zqaJ4BM!k$jq12E`UM|*ELxqTMOj08;ZfCD1iCp)^G<srKdKfg(mBp>`Wvu8Vfuql7 z-mmB#N~O*^nQ+B9>B%12OY@3GZQDNQ^~Y4ZP{CM)0{OYV4Y!WxR5Z2aDYUJ@Wuiy# z`*3&Bi@xZAjatgeJ0l`7O5^Wa$9AU`&NN1M^hO;G2{+hjJM7h*j6`gPHgLYiO*zbV z(vriGu`9>^4M(=JH=hTEvCB`hU$O|>-9kPR#Jc!de(on80|5AR3Bs|`kgRN;*cI<u zW%?}$!hHh9!22_IkUr?ON}p}+Obd&1^|uON!~=rjX!-bsXWRsbW1<EahMC?7Apnto zFj40#ut1mY&uN&AFpcA<WC28v@0utVHMJkN!m!mrHMAkiO=fm^-ZW~wLNLdDeteRt zlPVO`OSCzNobWPeG7(=S&GuTjPrX*YtOj!opGv12GY{t@GV#m#K9JUyzx~m$9oU7j z%w+fqmWJ4`7oJI8IXM>Xz=Lj<9>>3AoYYTQF{`7wb^LHswcy+Gv>PKnIu1iw65c8z zgWb(-=M`Q?HK~v}7OrJz;&kO6#MC}aLszK+5INh#0&fo?y&6n~gdB0|2aidLwb}f% zx0MAPK1~%1M;HUd$}Rd$zD9`CAeq9|qa;UVaX}QY!zt<s{zU5VZFgM>#-`+^H(;lJ z^@0^1Oc`wJSQRgz<)WSK;~2jZ6M;17!Z<G4S*r)GbCGiqe&yq?>i8C{#K=kGWUzZF zqb-CIO|E8&p2q&Tgma{9fdxfYExOJ0srOSX+d_1ZWWi!8qbc!;C1wwp1opGBR71?> z;!eJs!q4MJ_gq&%&ATpyI`#qP7p+kYy;;o201}liDz@<en}b+*sZ~wmm<f#_DVG~- zGuPQ)ILNyIN(#TXC93-ZF&I9h*{hUQ&2s!NyRbQt<}2O;qK-Hr_H=!JBC1)O?mvOQ z;ii65pWOI@&+HOCS_+!JeU;7B%$?5p$Rx|W(q*_LDnU{&{3t-`txoE7qNTN`6PlWf z^FbHRzVkYpP>;_dS7O@+Tx5u-MHG)lnJ|Z@+14Ry3B=k~czH6IP&_7ar80KK{wfz| z(_;6@C{UO5DTc_03bNxI=BHka<yi=2n*H8y<)JOoR@#IUM$d_b#gG}Lhrp)WV1>D$ zd*{ZmXIxD^O@pz(*ufRuQX<Hf8rl4v%($DpgcUu$&0*BtQA_GaT~I$em1{7+1?WH$ zU><33HJ$8gJbvoU)3zL8DdFxuk2lTu{Bt7PB+FDLxhaWo#`uHqbaQq~b~savmdBz= zv9l}^EpGX%mUFcVL9&e}7{h(dr~y`Z=9d5qtvLjG9F6$(<0W)nxIR3SxA0xv>tofl za(~)_Z~YEow1_8OxeIkDERcU#rIOh3jcIYW*-^n%;C?6F`$8ryFv4b@V>D}-1`4^y zJv4s=O}w6`3d2;l9&aCSH)4rmPeH6bRU!%PQh1D)h+R^}0M!7H`>hFK+oLZ8iYmCn zLT?TnUwN@<{C4<lF;(L`UQ?fte8I?;WF(A>Uj=iGvH5c6Y;2_}7K5>AF4DZ<k1J#v zM_N~3urN7Q%&(I8c4T7*^ol#Q^$g<&f-~p&Tv4egtg8hZZpPslg<d-Xy__?BiK*}8 zd_zyUIAk*5@I*DZE#f|&a7afKM;G~}79oe`z@~Gn6ew*gBe*LK(sH`e<z??_ZT)jE z4GeDB>`}a<fKImI6$qUrI>IfSm6(_$psJNtWDska!YIh=?gmrH!C!dfCX(AcW#;Rs zuP``S@~k*93{DC1S>m|-dOn58*ju2HK$1w-#3W<YT3NpV2djfymNHR*AaYe`$t!9_ zz0E96)LU+WKn=_Gmst*Ng()mkxdHF+tPCH+g0P3ISh7L`rH`9=*(G2}q`mvS*N{}N z4+>mxs99PE7f0~4bj(sGlXelh6JYtXsK;<uzORB4@)~2XYnitAY%wW3C_^NiXhPoG z!<J*8Y0`+lD!aTa2{%d$e;2Waa0*WJ$MnygJg%U^3DGcA1a^&*$gLg8_P#Xyd>nPB ztJ|dyTQW`kHlHQ73L8dp*M^d})W%DijFV|O+aFyfTvF3vO}24h*yYo2s@PiN{zFX) zApQd19;A6sI#qjNZ$dfmr3$O1xVY=9LJ<B1(Cxlpc%7iAwp=|e->tfzX6pcPB?4F$ zkGH5M0W2R>55`YVhC6*iW5OZia6hC4FAc=H90qk&F+2&TRV=_8q3{QRo4;{L+<^7C z+`T1^Nfl>MIA&t7+>;rOEeo2KM10-u;?8%8)?KXW=m_ctZ|J)z1Q4Gb?k&22gPEtR z8m{Hb3_muYO=^W%ReC9u;%<x=bm0o<Ht^VT6M`05+@mKlsWxLQ1WE|Xmy@=RIoiHk z%P9K-J}uCbjm~$P8a6SR`%s7NQt@l@9--F1V|XpzzkfU}`5JwA^2j}(%FN-S^(?@R zt07erXu(aN-57BE9_!5)V?_>Dk`LP^3dOO?GBZiM(|O@5LaM)tl}Mo*e96vzbe)SM z-8HXGw-E~eh58U*wYtJAo1mZY+IamWj#0f|B*ZXX91%pQ1o<nZ2FOB%fM&)i1Yc+H z?NyG(mF1#}EN_pKx3bU@Uq+)Bb#nFCjSR?Q<BPN^&B0od7n!haEXm`4zkjR@8iqS= zM3vdwDlrAVvxl2W@;WAj-PgfD*q!TSJVbxeSSp64^on&=q-_g`w6_5T$O4Od8%Tz+ zR~md3A;~$7xCzhMp7vQIP=Z$}<Zv#F0x0L%DiqO!g>fIXdhla*zh<v_CR=l0Z@1B? znBM7Mf9ZZ|Sq~7hV3F)#QUxyo!pivzo4JT;BdJo8cznQ21u9?MsA((!t}S%eJ4GSk zV^6DH!Ux;r3yhH0hFF$Ay$(OS9Y+X@%!i|1KdO@Eer}<ByuBY$7Si89N;@3<^`{7> z5&^9Nhf3$5WiMi|v62A5kM7rG09GQfvWzAZcl909;VQy&QL<ibq>IRzhYu-BX5+@* z3o|Y{WGy-q%$zyy`glFtnz!QvR>3bY<57ZHsLhlA9=lc$KNp5%zH4LbBzj5|^Jc1z zLv;w1L&=0vyVEF%4J<)Qu5pW*)l->S*%9tPmdiu&>c@BLf;)_wGx%`ouG+2K97AEW zvG!lQjE-aEXgH3e5rb_}ogx#Rt64J$D&U^|Ke{|3pGAf<=!dp^rO62!>r#S+e{@sd zhD$=!<B+~(C0e=Z>5VtThHPT*vPjHzZ%bs}ThKP<OWowdqV9~^9PQr~Hyl3|#VKD; z*6o&J3S}QLb}nMoS(0K8UBwP@!GEVE4|Piz(#nvgsE@c#BB%D0tdu~*$Jzn)Ex=51 zYtG`yh>|a^--4;&qRg4e4bxd+`s?}`|HKIF)hiK7>WnQ>jGq~I3i*Mnao1vo<=4>G zGw-JqebmKIqfGR30V09FY}^o{X0f}nWZUp*QWE~quGlVSNvl!QHb^B9m6<D_{su+) z{wjjzu@%go!fwM~xb6$wKrD;iHi`4goDi92nNg!!!m^t2s?AEzN>?*V(5b?A!m)gL z)0^k@O2DEmd->DBNvXM%?MaA<E-umDk|!GKV2g)~u<;2J!J>iyP8Mf3C&Rtjt`0@< zqT@^ff`JlWGL6y3PVq?;yfut^8(zB?jru%UC}?P=(+SDM#A}iBg+cKphVBf`l~#aw zpykkqeOE;59kOnKj+lkAHD0>)!sH{_ZiaXqNplr$73Mp|<(KfWlr_)+0dgw|I>k(% z>*`}5$@|Jne@EpMp&~WWsS66HSnOFJ=7r)Ubm4}Dt0t*9l%eS7k}!*K#2O8v6rz$Z zbu6bMI+KBf3>v2h=BOv44N_2B?Bp*MJq|pV!k<?7&zq>03+Xi1j+8!`NAU#D32S=i zB8xJ)4gZQA*Ar$%WU_o5@Yql~zj*Iw3|#UkT6H9E-n{%|N6rx0Fd$!Cl8TAPkNl9# zNQN};&7zmr9AafmhU&ybizw|w7F|46P6PK+#*>EJL^z*r<j{qL!LwE(cD?2NcC7kw zS)|OKC9c313*k>dev22kT5RO`_p21Qd~1TWvKb9028Q~27^?&;MWrAvo>3b>kX$I# z@t5)J()uW2!w9y?Ovg)3Om(*2xq+=N?e(C!e&a4<BjT^9)kGTGHh;(;8)vN7<4E;V z$OZ2(<1^_(5+&&6hSZ4MDDx~vkQ%Bm*{BTzaDGTCw#yDtf9_q^$p$lMYCMRIoJ5Rj z2bv&`#ff!OTvfi|hzqoHOd}jgr6`qGtcqFSU2bC8*|pSeHjW1Ofo3%vSRR-@lc~ma zhFGaY-H!tX0dzyk)Ym*93#}x}Bs29?Itn8Fn`@oYb&TYF-?Ptut;uYa((nYuTzoE^ zvx=S0jQi#pUn@LDO44*u&hW$0=_*8mT~9u{%QeRI28)i1f9P7Rhy)}(a$MltYeF}e zf=ML%18HG8;=G}(hTi@R<5;>r(<@AjYNoaJ3U{5(3VMd!^7_R{@F85={|?k96hday zoZYasB}7hB2ouD$JL#mP6Sb9;fk3eA7K@3$C8V}@I-|#kt27IB8f#TPG14>|847{L z`;=oAY|&+sVo(I-{d23<o8owXMq$sK)-Y1ZCjlyNyd%Lg%pXg4hIZ(<iY)E;Ed2Rw z6YcsN?}Im=hE$Y~*rgz*v7?}99yhF4Wi=t*J?8EA1$m)XmOaE%g^^wmLp8Z|?!HoA zbUA;)ViICq>h~_|WT%~w7Ed3q{kxSL(@ify>5;&r^_H@W*gdz(?|b9JcjKu23B%$b z#X`m5Rx3b;B(S)3M{^=x-=YWkHL3InAm(jf_I9Ea3k3DYpToCA2~<g00ciX_X`qzG zw}*Vm<0`|XhtNJ2`rLMSef)ULvgr^>Wq7M^Y3#PzE=|!elhiCnud6BsPiw$G%U7gk zJZ(xDuIj>T^NDYq;5>?8ncjSVHA&s*Fa&b5DDw(0OTQ^B_n>1E)_4=?@tHR$@XtL; z1N&5r<OG<=bDWo|AOSQ`y#1gL{R59*g4@1s;sw93z^fnGAJA~NcYa7ob5nVglpQiu z|I3|cYh-b3<Le|Bgt+=2efiQk0qy9*K+)gC5pM-6U!$0RfSS(t=B8+v!%TyO6-NEM zXKhYOS0oK{J$N12o+yn4$5J;(c2*oU4;Pe!eVbNb1irGz#>INnR8*+@2DYh#W>s#d zi@L$|&gclk?G4`o^nFbFMz@~B$cvI-#gHMEClNSlskJpZIPAlm68c{%wf&!dz6htg zFPh>doBy#F-N0+F4+>Cp!dIJCkhoL^Ocu~f1SLQ_STH3e(!i5k)VZi}X<*l~(Q+K& zs*p&E=X_}}8i-8_Bb&7x9iI$z)E8hz|E@{X#Gm7~{dMSDd?%c3ia>J2ch8rz+D?WY zaUzY53v1iC)e>HWSgIViQmz&#qVPUvZ%8(uup<Ma#pJndT5FFCUBVQW!@C6o=_^T0 zH$#(cFF`8ZwY?w8WR-vxdwW?&{VA5a^HJ?)HT0`hv!iEIf6oLKkt$=sqZ=FEMk)B) zDQq4uH5}M3oEm)BujN?$I%RC<mN-}G<J<RZ2K`CJB^d;E<K+-|Sylu6iM;5UNV|TV z2$YmNdKy9#5lXuys#bjOvv>U>zMF|jO=0PLZ*c>z^~e?{zfKXpssvis&cEx&OFA8T zKEfZ&p#=n7`(Se6{5~Oy(30OQnU&L9X4pMQXk&_#8`zMp<0Skwg3p;;?vZ~kO>tZY zlT0RRvxpG`v#$2et;rNL`Cfpvs<h41jbQeD_DxHt8>8^}$)%=xJ5ZT;mg^zej_O+k z-2JI|jEXk6JTjiXW3$01K22ZOMZRW#P1ROb-6+;Pt}LE3C)e|(kfEMV#>Dn`?d-BM zooiYE>N>~4%w=}XoOk?rZ}`q*b3|L&H^k|%Ay#MzeRm9*MSVL?p1U?=l|ZAkDXg@{ z-a_v5tKM&-`29(oo<<saRJe0G`zN^ukf{X>|K37Iu_6<4#?Y*yxbD=+oyP^K-_@f2 zXS^ASbpY&$xnvuyf=-IU84GU9#L8MiPn89c`+#<Y-C=z@W`=p!z9d35TJo1GELbM7 za|#@6l|t+yc|}m&!O6*3K^?9x=f`ukL91cY-u<#d43!ikFzUx3@?x8$^tV_H`xg!* zUM?!nj0e&i*dB*#D!?b_Wa5PqjM<C9vtqHP0Ch-nCL6f*QQS15kRBbdt?}M2Ep$KS zaO{HAP<RN2@s#Vv*m|;;IOfD4Qlz9dsU_@)u#90_SI<^F!u+!)3k9`c&LWHO*oE*2 zPbrD}*ZJfx*@i6((dEfeOTDApaAC!Zk5+&dJl%ur2rF5y9FHwPwExMt*-+qqO5y21 ze_5Ch9M9um38tV}<`4eyyN3%BVgJfO+C|EWI!-)b#_gk(QclqXgp*}2y?iu7%l=lv zuSvuS%7R^=vU_Z~bjVpbWeNo%83s?#Bf2<8Q}}6KgnjuP!CXd+Zo)!;_+s?#8hRq3 z$sdBuJ`9@NA8<ADRP7p6H}@Bg@5J{0i~IcgS%}#J7?zo9+iQ*GQGKwtmo9^R?~GyX zRcmEeD4LXZQR9uOBAGa-W9n2#CdK01s4xcMCSp}z{XhpUawjj=Qv4Ll$w_uP=*(E$ z_@Cd-;M3%~7n!`^V10etU(frWUr>F`<c4Ze`Q#mXuL|a=`{e@0Y%%glrMeh3e;?pK zlxNgoO~vQsc~1M_o)tk+=Gh?a6Ch2_`ES_>lRN(@e<A{g9IfRnWs(a0ep?|#ky1dj z1@;_*X~eOZ7PjY7H_(zV(dH}x%eJS~DF(IWU6jS+Tr!rlksN;TkFE4Y#BZwWJPP*` zLHo?@F$pyYtB?GSy8eew+8rY9e^&2|7;u5U<#75M#`G0iA5WTXJfNmCQLW%1Ti96d z<?Gr|ek`=$Cn@IR$W?aGw!CasC}w6R%!okhHmlZWsi-suiDug!^|8`}9FBu#x(%mm zrsLz6?cO4cj#ZFu#+qW9`b`luzfQ7tOORN`Wb>uBUQ3bpTe!$bYTR|_H*+WSTk1BI z3I|`Vhx>q^AoQJl;-mr~2U5O^ek(oSZ(sU{N37pj*cSZYZv0<eSTjLo1Px@I?ob9; z9UH)<wOqm9Z>O3|u$fe!RX7HK^MS)z-fl4@75qIKh_K|M+4m*iMr~z{5}Nde;8!Hs z=drmDZ(@WDRKz2ByAms0^<D&_r<=?TE7^FWQLv8JgAW^v7tii{cw$qvI^Y#;nWV_6 zv7|3te|)@EradZR9jkQUlf5<?vthvOcs=$m6cK<7^KAl&<#00k#0l~hwqgX@z6lLv zoLD}|7<a-|_!gWJ;V}4G3tinrhLgz8J}i6sD}Zv6UsCrvO^O&cx+w~5)<W8NG~j(Q z3+&EPmI+!Uy1$psKflDK`ahQNB(gyF+G<J{yy{w4t*-ep)GbTdsrk`lT_vuQxa(9= z+sHterSUXlYiLklHHFdABpM)y7s~r&21X3zllgtzEVYRE%_zXNvY#rY>aUx$c*$Qk z5MgDh<#0(@td=9v8B<N9b@0%h-ewC5jXmS{GEK>$78zYoQhTkMJFen;<G^3!f8C27 zsSq6unCQkGT2kl`xMvb0JXQ*F*m?jN`M)sG(D#!_Q#kmMW5m5=7f6coM8YzQmLg-B zGs<;5<&%!;HUx}KNU9@@5)WXE<uM?QG%kNrQqu`mj{7Pci(yJGI6E|}hLp7NiL;3| z++Lq{K`V+c+y;Y`DjLW4n&=fq7B$uA=KD|A=7z6tu1{y$C!79<l2owA7p?aR8x|8$ zgulQ1_DG=?8pB%r(zdaFiRtQ$=upAwv~d*>&kcQOcfMXK+d5nj76qS~%bEA{Y<AuM z{r+AV6njVf%W8;|SIu~GJ8x(NKE%vbWJ)T1b126HUBq+)nuoOHE)=ZDU6y8a+^v4; z>iRSGnF*$t4!fGuj7Q{G?KOB-vp%&mm)SmCm3))bo^(IUOeS$+-S<5g0vaM%_#*%? T@WcF{U%up|lq74!O@jUp1gMBI literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/custom/bg_header_retina.png b/app/design/frontend/default/iphone/skin/default/images/custom/bg_header_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..b0f03f0159556c1921eebf61e9d8c4a85267863d GIT binary patch literal 57132 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 literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/custom/bg_logo.png b/app/design/frontend/default/iphone/skin/default/images/custom/bg_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..87a00d15e88e5a4e4e2af3e8a2da1562bdb869d4 GIT binary patch literal 2793 zcmaJ@c|6p4AD<j6ghzH0O4E?WH8YqA<7&*f!WdU!h`BJB!_3IcV6|!&+wrvHiX^fb zN(Z@?btRg}kz7&8ZgOAA=Ij}5wa*_<&+qm7{l4Gt=k<QSKj$CcWE|E(K~7x`001aB zIbuA-tKs&y^BeIWsXmq^Ueq{tJ{(U*FejS8q5x2229W}Eq7gzU9uxwZ7x|cC2>?if zs9ruCA6FM7i9v%9wlNScjVWdW0G2jfCV>=A;Q)!05GvgYG+$E>0#eCVpc4pJm@5-a z38gynSrkt`){DdsCz+E$Hr7B(E>bK&qi_g7E-ix2Mslq{A9a!9{k9nj0)B*W!mU7m z2j%061ELu$3J?K-8IoW}jDSbr5F<Fu9Bys^G=>?$phm_}n5m%=42dvB!i<2Q9+21@ ziyVyfz}SECB|ce!LOC2J5(<ruj)p{=Kp3nLsFAt3ITU6LH8wUBBMjL*I)}hDq_ed? zD_|&W5{t^@P#JXKwjzPZh~ij*#F74;0*(1amd^fECUL=_Tmlnn1c7a*^cm>t`v0Lc z+7~pN<3af+-v24g_Tn)qP!9^55yc{j8yBp#?TU#+vnT`(gXP6wM0~CyE|kGxutOP4 zAlefFF#?{T(#ecy_D8&{E7FP1<`C#4iW9~PBvyb>sbnPF*xn9hhC-RaZS9SW?2J&R z#%PQk0u8svU`)iu&s+?H6h))ZIiI=Yf4H_^<!+AxjVbnwp|Gf@C}evUg9iMVGLriB zSj@hv_lZmXdMxH&<wC{5K(`zFUyc535>L<e_RH9c4_^kKLKjavOFY&CQMEq<05Sni z7?c-xaK<-0;@kf3wmP27GzBk8+LSZ~;qz!x&7(nsWyg+b?LKrckCuACwa8Yl+-5M) zTPqFdmmB7&;(h(5o;UbAnqVvGTW@zgB1*l`PEdinVkWJkLX3#GJ2L-hjvq3flVee1 zHsDKw$<wqu!)ovU@iL}<{px(|U)jFI;MhJz$!m=y<z>)>UDpShM8t?p_SW&j$I7@< z%G_M^NqK<9H#z$xS?6B+S%6bzsuYs|OVWK+!jmJ3IJ(O1nh&}DKNmhdxtDh%Nc`?x z2oYUwY8U{3?@5WCBpf99=4~vWuDjFpMkXcmvFh-;az|aQyktg3NvDjWDML8raEd@} zl-=7hOIpj4$vld?JXKqkrZF6QanPpl8`-M!H-Mso-obmx7M=A!M&Scn#u+nbpj}%w zQiiBXiH07sxvAz*r)zwC!c3KH{J(GzGtD$N5t<ALR#9MBzCQW=2g2Ierp!b~jACOM z5irt%Dcb-g9>taCtd{U;Bf8l|n|BNvQ^QM>cADKI3+k30qKaQG=?qn9|0pSCoBL|c zwr6wEbnfX$ZzN;7R=a<Xo?6!3mCM+NFLp2Z*l=T+^8NLT`u<2yw1D@kT7R<c8-Mq> zgqxbNEnr`^`j(6H)w@HFg@Gf^aWsASbTO)hLfCS-a)cg}oH0@|BGQ}bF^|+rHnW*% zJXJVw_AHWpW34}MW$X;eO|ZXQ%F9+xor&Vf#7&mOwM^a2=)nyjO687bnvaTha(}J4 zJk&Y=%EY10tt7Jklp^@hX#VI%DgEZ~ih(zs|5T)V5igLRln9tPQomj$3Nl^8pL^A| z{NNbB`+TwP;QNJh;MI-$VDL1G;}0?d5R~ZTU6wDTwJyo#k3o{M=f>~H$K(vE*JoYI z#E3EzOyha)V#d?2*2Gb!u?5ncKO3~}c7<{i)%?aMeGg}LpdtA9-Qn{wEe80%lw5W_ zj*_k6BKB#}ITCY0K5*+f!;WgweT?4D{M;u(zp461@8UPj6;7pci}BVtvIN$kJ7d*0 z&fV|DnV~BZmVMHD+SPcJqbI3KH133|SKTWm%kJ<L4b`-P(TU60F1=Oz%LB8AJ!iVg z^ajcwT}}V#d)g1_zcm+hckZ`kK2n|wfA0K&x2~(!#9ABT3`=#7Yd*Nt&BATYGGp-9 z$6t;-w{Pp;7=EHxrVxn3XPq{=|J&_F0Ct}>9W3k-*h$UkzITYxtgMD^q!j2J=u*C5 zT6?DGt&sEZfqlDae6F79Y?R;Bj_3Oo0#84icxIqP3rn}YuvhMCQu7Zt1e53hT!3oD z+x7BJcZX-Hj&Q}MGOJB(vt%`uGikvQV}&V|OPzZ48zCzqoQ4K%0de(g%pxZ-B(0Lj zKB!$OK}^u71UtMy4MbaHeSbYnX=~6&V0dJY6#n>bdICJ)T*ET&c!)y9JacWZ4tp!C zuAsUFa&y7FHeB6B){p*l-1b?ge#ivX_qBh->09y#81T2Ayg56^!y(b~UTyW~z{o7& z+tY`3@LH0nl&k`ZfEev%kUss>mAs#72<f+bmj#tixtx1N5A9OD68V)FAUah?LMw}% z4)4=E>!srA+;Fc!rHKi-78S~cwUU}f8+S0>^ou%_R4RgfO>zU0GaRIa0h$}KZT;%_ zUk?&-xC-=`=AXU$E2e3f>Lq81d<}9GDpwe(bNIFIz`NH};BYd;arZBaSkKsyaWjtm z3sTGZY(LFw$NFy79lIv_;Y~Npou65tX3~YQ{Uz4Kg2AhE`D59nJ$3NC$EHnrRAho< zv+hBNw({LJtM~S?lX8G8D?qz(*V(zy9kHGBnu}E<)7Ao)?rc0((3^VAv3&HFf!l`* z4&b<~y0^n5uuq(tCy~&45TUBiK_so_qp-WQUC$01K2Pf}$4_?)CtGV2Bi)<BdxlE! zi2m72Y8$%uy%!NrXniq7Z7-M9ae>a4mh`K6Z!2>u`fT2Zt-<$S=}Fl|XhOTO3m4p4 z7ZiR84u<$U{Tmx<AwAz6Rst{oon>{NqCb4S*V`e~*U6{)G+YOCNT<8~mRH0Z$BKwn zmlalPn(eyYHN>u0L-$@574{chnv4#{Jc!~5$wU@l?`$8rj6YJ&n7R1i-3cBa7dNe+ zDk<`;Jif0r9An?GqSI^F?WJw8HFwKmc0j6`M7lwrZ=N0Ab4T@d&6Vue?Wy%QQ&`Rv zq8jc5K2|=KAG{@!Qp=NKSL?P1L=FtU_sM@AH7A`fT(xGAU>*B6550?B1~=>cO#NN> z1b;r>$?JCUnqdZmKP-Z%ugJw;@Lg*iVkbID){oU7*A=FB#jg%26*8Ztv?M<I>sjc$ z+|+ti3!7MU!~5iF<c<x`(pZH*drPp_<*SoRC&w8_`FYX)-yYw0ye`P_UFBS!voKzy z<{R+)c#hQ_n`OD@?kCzLscY_2<0wy$g>KQY>nnw&3N=A%HulU(2XJxmk9BFes_89f n_QVVDQnfqz%F78CKghuVxsrJLV>cJo?aQZ=9Ts!PHYnjg3vtwF literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/custom/bg_logo_retina.png b/app/design/frontend/default/iphone/skin/default/images/custom/bg_logo_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..4d3acdb2f7c3eca4787b88b6a440c078d5318fd2 GIT binary patch literal 5850 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 MqJ~1r6HEX90VCeir~m)} literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/fabric.jpg b/app/design/frontend/default/iphone/skin/default/images/fabric.jpg deleted file mode 100644 index afbf8e478d4d15a48870b1e4e30c2af2e26ca349..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57452 zcmY(qcUV(d)b@SS69^#`AwYmb5i&{(JyJYJKtM&}$S5jEi!=cRBcK#h7zj!U!ib8> z5l2L<pde+WC?ym%sEkw#MI#CdA|fb$ndkei_x+yzN6JY(=h}O(wSM=#ehvJ31JFE@ zqrw5e+j|W_1pe>%^$}2UKODCI2!H~x^22NZ_%#DiV9tTieE_FLegySv7{~z7|7T$2 zk1$yIEe4Cj{x@)V-2V(bo<JZH2zU}nL4iaf|L=jqU@$l=j)cdPloUydO3D=ZP*(n* zH~oKi<p1~C|Nh+ndG@OXP$8mum=+951wgByFe<2DZNOmw_22lv=L4Y70EYCx5B>Kl ziVFPq7tmNd3j5y)02maYV!(va+d@?14fzFC)}Jr7_PyEg`)p_eMqqSOt<0wSf!ou$ z?JEEOFaMw4`85QP<)22YU{rwhz=F%vkW6IdQs$})_(qDQLYMSb+}IEI0RKpV*WdpB zaRQOH@{gk+amEVN??)Td4g#YOik=-5GO@Kg`|v<L{m<*^GRhmVb7yZL&eewnndFz@ zy4spN-z~se9K$W=(iwtk>wv-$SBB8t@6IMHfJsY)HqQ6s=|{rwnaf`xVXpsZlP<RI zirQuYUu{V^WR?i$E)!0oO6N5=#E#nx7b;fo=pT5%@z5`z3*Uy<$)7kZ<C*CxxqVYh z7p=M8((~%GFsbfF`b8|gIw2f@1j(h<<aejiJkH?b)ndg)7VlEFW%UEZ7}Kwfk%DRi zi4sGVq~4E5ZwUb1GKI0WG68@%o@|o|ZG~;`x7A9tVj6vJEy5+WD79QEZI1T*?g&!u z{Lf*AJ>|)ITRikH_$XaMacPy@Y8RX1JysaJRhGrb68LcBN$?t5_(F}vVd9$c@{8Ex z8Y_lx&>f*~4S@FB`9oCmWgk~F9##-ICBH0PS*1zO%21Ez7puvXj-@p5R^$6*r5YIz z+hn!p<|x&<s~3Ybzd@6pe_EfRX7YW@i#QQO@C&FC3pvVaT7K^rAca%-m*=UN)R@>s zIB!c@dHiBEC8KHYD}9Ox<hQjy64S;-S}c7On%P-1*HIKJ-bshrhdFAUDq_AL5mm+i zOp&R<!%ke-v9YBOcORq0B^dOWqlQ27G>(<-6)FC1m!b8#1{wt3)tcMFRf!!I=`e2d zAE?m?Sk(3ThSCCDt#ZsoZ1^{mImHjL%mwfwjdtE^2Yv%FMEBC@k7IX{ha&Jcb#<ml zrBiIR8twHQUc%x{HLhi-^ynGeK2Vro=?yC)4?OP@B!OtyQbQB=R2!|jgq&*+>PN%z zSN2wznvQV?kUiIP*)-t6mN>QpZtkW7gOHlm5%Z3_%AoPdU90m{uL|e8S)=$>-~5qY zKvkfxk{WG6J$$sal0?u0t6oxF5TCOT{fIz4VKWE?WAcsF3SHunB_v_}cwiC{yzpZr z)OZyArpL~VO=~P|dV{9(T9(g9gI}M%bQDQoIZmHiLYx*SHO-9NiSIf*nncEP!AlvW z;&l@i{J9!w=w^jfYm&wAj~M>U1i-~`b`#?{#M{nd!;hOC2Jsa=BSL0&cM^PBFR=3~ zhe-Qk9nB8Ovoo$H#<-<in&F$I)l<h(*%oVCq{w5ZJv5V_Z0}GPq@@%~G&lh)kcG~t zBMc?XSTi#|x_pA#OAXnwy3r?7M6PRY*qb8|;RZ{}NaQc#8gXc^)1TLQRK;^XF#`U@ zN$hcJa!{U6VM-`9qU-)QZIEE{jb!S>Hs06mC6HK6=roS8gWu_f_ws-C6zWogd&7)O z-LaAGF?{k&=cWwR-Pbu&f-0lCHf~_ft~)wu;_dt*#Z&N=yj2i0{B%de93Pmo8)^Wr z|FeIdVHK5>q4jVtshX%YZl<IN#yd8GM<^RU^WReJOS{p{w-<@%Hce%wkC=sOYiSZu zj0)is>RLR)4u-DjS9q7!>fUVx8^<$tt`%08#=0tUssP{*xt)SNN>n?%AQh3JlE(s6 zH=TW;fyByP*$uLoDt~QIn4AtP?!uUwT?-WNuml@lJpx$qddfN=?NKB({9+NY?V*b_ z+;qo>YFrK%W|1D;wu9ap9?|(B_NqA9sp3jpt2z@f+=r1A9J3aXQE~4}r=b%BTg^cr zApOzE9D92~KuHf=jor7Z>J}s{5hx!_=${f~W1rhgsHo1DYrhi7ZTm)C%4Djeqc4c2 z7VDatA}Mg?mv3;cH9c3%Mr`&YOkIKXHPEd!6gc3nm9L_u_LFTX9@kPGjuc{wG;HS? zHfLvTp(Jv=5H-cKcncKl7{#gTgM)e#C>Mb>Sz_<byl%5W=@+0nR0Usc&+0<^9?TAj zt1vF6{j)z%tVKWa)>I<nX$5~L-TVb`)G0Q`-Y@(pW~~=)aRJmP^AG)a$Kssp0+G?V z<E8G38mhWix&Uv`XBV3E3z)El>k}V)j*6;DERWr!S_!i|t4Jpq9J&0x59gTGjYJAy z06jBm$6$6htph0=+@4QSw@bj|AHGA*X9?)#udr{vjoWo(^bXnqw#@OUf%COa)W~PM zE?dP%xgQw4QqEA@&S3sL{fa}fUB+T<N2MWK$P!l(^M;Q<VH9&{B&Y&9`@9F1fZk>p z*&3>+=_<Vt-1=Im2(@rVbpy$Sp?t6kJ}1+9bR4Tc{m&0Ec;V%9t%qC7WmaQvPyG}} zXlSoU?9DH2tgtuxcC!K<#pY`zk<0|~zknsRzqC`)3Z~5?77{C@U_-P}6>l`WkpaX{ zJjwk@WyP;-Xh24hGaWBr;bxVi>O>P;#}Y&@)s9H8ph)yQPdvKY2Uuq%si>5Z6`Od| zWeOJYgbIkBFhN@>AEk!z!+wXpKnE#K`FD{K&bNI=?mAif6KqZr@*5jyKdEk<#o8cq zv8lLISrL4^cXtCAWay4xsQ@O}@|bp?a2EIWkwYIQ_2NK=x^leWNg1Gm%DqqZa+OI= zY{0#Ssc#i<@0EAYL(ba<qIm~b9?<sR^V0zxmz7t7iqxTFQIS8J8F*^z2`sT=^}CxQ z4b-@2CCThLb?*{50-aLVMy!Es!wSanZ^UJgMwqE8HC98PQBd|HIeiCVXXm?vsFJF} z=|Q|jP+d3n$;ZHq<ar3QD|*jOiRP{3oAv`>%L3Z^!T?7(NnvEAf-;>*ws%5&uK7?c zi0$oXu&(BsNnc=STo=<o-o=9w>n(qGZ3GkIJnz2n$&=Y{8EDVA4dY4}nHof!iH<}f zb7HX%=WArIF^E6vH3!!xaYB7(;mjkh;cG8K^y;u_m(D=8!J7xfjyw5hWI~&J!Rht} zIEP<AL|lc28K9)^j!MkTyo5a9&9x;3O5>*LT;$i~^r6t-`f${7s?7AehAqrq(E(As zkDN^kW?SyCU}N;WS~ZsXz|Hj)S2?as=yMdICv@+&Uq(pR@9#~7`PwfpL^7@CI7>+D zTk~12;>l0h6@7T~w!{IjEz3N&1<p=)%O=vV9g7tZS@wpv?1=QO&ha;rARY_;x6_ZN zBAK`9^ixeZx!bTEN59!29cBAECl_fXv{{Wr^GzOWbyiZsj~y7WU15hhWi&Rov)LVm z2Y&(PQcQl#hgm;G{2k{X>&T1Eb$j}8s(MO$CFH%v>;aHq@dw^R98=ZpDxt6vC{O`M zjc0V;xt6$&<0Mm_hm`wU&TYaLwj~FEzIErP#@+F$+(uBjt|hXXyuQuvE=X8Bo*IZ1 zpwy{pTV;&1ng)N0mXX#8)!4K=8OqDp4cVPg_!&)h`Kx<@$XL%X$&&HToSXp5&qaK7 zt-z-UgN`E))rKuc(%10E3-{Syj}bs!vn65!^br*AORm(^tj1yqq;OQ}rC3!Pi{L>_ zHynGdfh2iWyGiljcd;#eacXTDIhA@yZL(7Fc5ePdr2TI3`c;stDg73~w}HIXX*-7! zki1ee?5Dba8jq72X3W-B*n_u^=TBBE6zo?-P6nx6A3@qhN%F()vHjf&@gsX%eu%vd zQ)*z#-0Dc8T7361h@>RUJabnQn``aV6<d!tT>QwNG^qaRUQN=%Ta({^hwGI*ZhVIX z>%We%NZRRa<2*-6lKE$u6;kr);wbvdOzkg#OH|HNJ8%M_tiE=ulB_!p3jS7%5ti(C z89)vt8E^SX4fP7ICLef~whlpAxyrPh_qN?Tixqsehi$Hw%LCRak4GL~VNh>od}Isa zU%P!vex*W`&d#1n06p|Cd%I?ba_wroaT9xQoDg_W0v1jiMhj8Hzgq}_fq$>)=u*9{ z?36<Vql+v(Pj|e@b+_6Q@TR+%h0*51#tY*kF0GgXV4y1z`eR%pO&Ze4;|EIp;unr9 zf_**q9g@|Z2gehHENT0zP$8?1Sr7%W;<xQ6(waLvBtuUpWv4l_!7gFoicHV_ALX+I zQ|Wdt-nXM*-A`%MxEl_ix3jsDOmVJ+b>euEj^CeG<1f|+xiz4w$Fv%%VCi@v2~sg_ z#oqe`oRZl4NLYsVh!iRI><5MhKI7plt`1c@psU%BX8Z5U3Z}sWg?1!C`I5S-PGQ0- z4d~SR+xOYQn4yb+wp%`L)rNPc%U3q7MF&yGhYnO@&t04o!TF}&JWb&0q-)=>+7op( zY;Orb){@VYCX4B%V#swJ2K%F%U_np2<VLijMeV3<M-8ix`9=f@GhtrF$7oy(ao3?k zk~jrah6e;gPL3DW#j&CG?;3huDBeM@pWRrVhZzrWJkFUBs!d-a^y7v|xw^o+zkDBp z4-1YC_X9_Eq$?<$+QrN|p9H6hSeU%xQQ(k8@C!dwcg+{bam5%>QVhFq5AVzFX80VZ zgni@tP`C3BI&lZlUXfteR~c{Oh*mP0pIY);jhM}{w_D$bpD|~@!2`3dt5Hk;Uh-2Z zoC>`9neCtcKCVwDux9z@UxkIg0Bt^(a=#I&piM05Yy%)eD_1G6$%6cm-=0tVDPR1% z_vqwOv9aYM4d-}_k2t)mYD&hu((xyj=ikfsQ>3Ee<@4S-t>u^>v8}mor%V|6U4+9C zLPnL3V<&8lc7uca@-?Eu4hmu8Ey8k<v3+^bXZW<enNoTMgCOZ|Hvsx^uXWUE7?XY1 z*_)#SN2JJg9<U&En&LAHrm?#lxG<QlB)VC_G&*Hkn|rL9yyeWp-YLGN>YAWOcnc}F z8msys${kpJW_})StUEdO3$PX@+3Wth*r3GgdUCkwJlmkv@~^Bu02<F(X%+9-;6s{n zl>kqQ4?F@~vThFr;-I#~hx->Hsy@Tw!3CnBiS^Za*y<bXKX1p?4$>Y4q61vk2%5#? zeL(OjJrDGn0NZFmcH1bjB4N_RPPxZUl3Q~A&ej|SfOj(mO_KnVa$vjx%O5r2{ecPA zdDo9UmG{({9jbS_`8e6Vu(MqnuIxLs8gMIdJa8P@5^9`MLsZ$mc_f-gh<3ONp-q%8 z$mn^NSNzl|F4d-=1@Vq^1aVErW!yykihuh)K<h*9VQ77nflxacyg9Q0=PI%l=IS0N zv9|i!UK~Xgy6E0fW{~ro{{$xDsBA}<v)XL$HxKY8A-KePzB?xL*tTic%V;QM$XUt; zRvM0i!u@a`PGw~Dxup*^oS-8bMCBQYXB_6CP|QEeaJ52*w%LJt*s)3r5BqocxA!0c z@wPm+X2hyKy!r))P>E`2ztR{F9Tb9T#iK;R$XQ6&cxOMRz%2U7Md%A9d`TVXCLH#L z949u*czI4$4NAtqTMxQSaI5fHB{2%DpN8)5dJR@MYW~~AU^UUJ2XT({lE6fn(CxL3 z&W~+qomwWOKy2Fp+*6@VzvVUB%R}rDh-p&|WOdaE@jux#UIN0yAmzest8h|K!|cr< z8qWIyX<@}F1jDh<{PyM5%WM!T!VtvsuqWN$;{+mRew<FuP#+t}=drh%xz|wHarR}T z$DzNWP?T7W&oCe04F+OF1LDQbRw$=RR9{Ur)l|;DSgmMExOj1%Xf^gitkVTN6eZ8W z0iJ71jp+kP@HuaF7~JSmeiR(CXR&+Jq}-lDYDdk1ZtUE|ZciU^u#19H2b>ls@H$uC za2OVSZT3^v2PG&`@IYaZA1y3LZRP%I{FvjuU%)Q2C2(NODTVPB;)7Q2U-S0=?kYj+ zXs<j7Z^fOFbX8OXz}r2os9f@}yJqnn?cEZE1eNd%)wV(hTODwKH{-5x>@3;w_Ih<V zU(Y}LY8`Bx`;f=UP~Y|Qm6f3RKvFOGX!YD;5rOVqVa1Mf6x*dy=@`yKU->#tNVi`q zQfC^xM&6w=o6LU*-q&h3Xh6>Kjr0$(Acx&zetmX^Vr&BY5R0-4TFB5m#U=u^d%yt> zePN^xZ0W3}2PFvoRDo4ZGW*a}hD=M)B02pW6fY5E)E&O%ryz8=Wo?DcZI^NxW770) z%MwUWTsW%((plu#C4{8gx!fr)agq<stT-VpXLBy!g}geoZm`)V`^LFCe;p3<T=Bs7 zj>S`cvUM*oj8UlJduwL|qO*7PDy-0M|6qYT|1=O(PGqe(A_L<&-U}t*L+abZ2W)AS zUx0mvYP`Xtx{?_7>ej`6K=;Z9HdfEoOD*G$)<4lg^5*fO*fMgwT`adB$FVkA*_}b7 zmzo-C0n_a-KTE87>s_8x`IEy&25LmQ90(b!e=4}acFPN@p#mgIq|nN+ydh2i;PX<c zd%T4c0)D~J5`wxUSkro(Ob!Wt&<-RVbh=5U=)a0yr-*w5$5#?vUq5o=lIvv_ywLB* zayDVvO%2HA1l5TAeteVlmrA9a`0My;?5>x)L$H88$^<74@Yfk6IECQtAz^Xh9(mZ@ z5;Y+xH94s*<;7&Lv-*xW{rzZ-7M|W1{4`R)8#vP`k4>AG<8KH^V?jff9F6D{&wFcQ zsPrfeBGK&43Gn(x=l2}d7WBTlpVAmN8$6G1j%M&#k?uvbv){H}AR7B|8O*LT=lX%k zFT%I-Q_@Pw>P1?F+26LITW_W&L1;Y0tT?ic3sIbXbAJIul@4$_mq?q_z4u%uh^G|- zDH{NOo5wfUJxTNV{z|~FAU3bU-m<Me;RO!IadIDaC#Zh8)rZMjbz^S@pp&CDisiN8 zyM+sbII9V|xRWhN{skoUM)Qs0kK|HAE!7iv6pF_@d^sbR%EF_YZGjGJtP819L8<$c z@|RJZN=4(&IRVj<ZM0Xkwy~zJSjfOgj)!gMQc+n45*y{|C9-on0-vrE)2G;8ora{z zSl>aMO3^p%pS93<-qw`dt}ikk=C?zCaUovvGe11%n8tL`DoJ9do!&)&cun7yHd6lu z&a~M7WfapvO4%l51^i5ed6pV@nep6Y;R!`~(UTeaL!gwL%&<4sTW^aRZ#!yD*6OWs zVY4wir<aOoy#ClgaVXY)n|3sxmf8O00xMFeUDzuf#3z4~30W~Iw}^mu`38XuRS+`b z(lEoPpMPi*Z8ya`)T7@3oOH9dCVmI6-%QT8rD{7txrwmHK&_!fZN^emiCsB=TC9aa z#zlo(4Syl<xWd?K;(?duDE7W$tRIlHIzx#Kp6aRX=Ms-H<+ZbkHH4o$>cIwgj&MGd zVN|G}H{Nq$Z`SO%Z|X;!ylB&a-aF<a-eItKd-W?BAK+)jZ4;HMG!UJevsJZAxx@tT zF)xS^<EC<hN*Fz4?jv^OkNBTLYvITFCd6rbxT;g>hd9(qUJL72Ds=*Gc5KJl>5Bxe z@_q$faWL)pZV`2P6Y*IC)mZDK8;G}BxleTt&6tOGg^f<1o`(r4R-=s|q<eE-1FoXY zU9CulP<3<g>eucK*v3gzolcBk^45erqA%?^P)(+X2TSj+P{U2N+M0FQN^yozu#Ay4 zHn7rwbO<h_=!(ON&NMZ0;i{gxtqmXg(AMVLwi8iB?@)50aiuPejn1tmkKXhxufWfI zBgB`B)@sBE`)3>m0c_~f{zW*@P7_8wnPNO;<8y|7{DH=v`6=8gv(3rXpA*CzW43ER z6Pt-gkxru@>qE*#_N#vZE9oL)YA{iQXy$FwtA#!LWDd$y8vQbgcMhw+7GEntyMJ40 znC?R>l1qM`s?wf^vkliTxP){L;=3drZcP<7dhgX$w9iWczuV=*NVUDvYvF}0zku1L z46T9CU0r99vcy#{J_}2hQx43_1of1?PlkS?F=~#rhJjM6&e~U+aKxIHlT_M7``Fk; z;84VI-9$Ju`H@9%2C7HZeENB`@KTnMh#b9)h*ISLT(;|GXr91reP$!_FaO3ogMRiX z;;D;Mk{&YiKCvZ(*5z{7@Fz9usNYX<Oi-<v;Hn6_fkcS4u!A?;Re!<7R>jJhIO3C4 zF(_9wl6jtOU|aL2r60S1+1=tvy!?86&2n0kn`;Tn%5IMhwAcJV&g~k^5gwbF5|mQi zk9-;vc(+Tm_r32&dl~(9HxVgb5FeJWEnj7MK`c?-@`+1p%*RqJzc|1m>-CKsKuiC* zG^&yuZ+;@wgS!kqq&JrJxzo^X^y}Pa0T%t>z${0rhx2wF5+9+qtrGRYF6ASyZLG~z zMChzO48vL7@BFaN(Sj;jfD?E+CM6PcBtxYzaiMTE8c0|ynBawv4HRiL-p`bi`-|1n zphh(Kyk~e@t%x32frVj8fLD!l`<a9_LWQxVnqv$rLyL(~ys4glUGp4cty)g<%Bvy_ zvqN6p+l80!)aUBd=N$K%gOcLE5uoCu`P?IiVVfG@m_X<pHZ(s!B@7+O-$!Ja+0ES- zkickP9-LjsVh=<L3BjG~PXarRY_0e$%f{qSEdNCG>wY{&ZzDCl!|9kGiMmHsw`U#N zt>cfyY6WbLFz4D=nGjR^hvjF9z1dcFG#^y`v9GfqV6ME%hEJo4xRpx7J+z-qB6}l( zQLY#}2AK6H!xv9r_G491si$}6P~*lJx_KhAIjNtWolK|~@FdQmR%Wu5b*i&1oocLS z*P)jxjlw>blZb%GN2?&)*Aq4ht};fZo&7uv1{4OBk<E--t=OSaL(%(|z}VstrX1_A zD0mT_CtxzrqZjkV(DO54Z@xk37fITO;RD`wgV@uDdcHn8$eTzOR&X>}n!#=A)Xuw| zje!lwL)Fdkt6p%_+7=diU!_;9&D#>%Ayc)U=xzPT26QK9gdCU0o13LzTj<6>1*HdA zHLSj^GIjob19JM{V(Ec?w9aycz)@lrN!^aho<2GN4%$$LWwvmgfWTp%BI1Ee%|2XL zckeGCRvfc&>+FGYiH&%-t233|Erf)n=JPN7R!LZtu$vWX;xVryPKdV(?iWx7Q1^^l za#as2Pg9rWE7v(NcLSy%)rldoVoraL;ZIIa--f~p?at|ZIEg8GywL%!&-=q#>9J^S z@&5Z8F9XJ5(pMbyNg>)zowWK%lsSW(eK1*_g6#qXn=oL2hU@ntfN&IlQb^yUT`~$J z=lDc1Y=PZ!iR@u+Isjj=Y(A;bR;<e2y34ze<<N!Axn}YrmTgoVd5FRXPA%uMy$@~) z#4BHp=AV8l4;O;zoT<peu-iAwcYPS<C<V77-?>h3);5W(5@xtn@HKJh(W*WGt9a6( z4^Iziy(x2;JK6RNNKjbS(KIdHc_`al(sN$C)y?7$yCsnMcI6OJt*i4-0onU&AKvty z&25;#IC~hH11`LsxrE^N+Cr`Y8{6<u{RA6q-yMhwkuQIS#<`3OgLCjrun#5D4ghN@ z!G6^M$x18t8(ftnnN`ogsD(@~BkhC3ewb&qZ)KX|5I*cU;h&^zyNchv>lRl%q3e+% z^Ohe<QioO0ETWxcB_97no^>!Knfw`OydWJJ#5+F*bCvGFjc5B;wPUl+=y_S0{00nj zNk>%;ezJi_pUTKC_1<cJO8CHzUx1%t-pu$6<QV-tjUDQF0OqPEcfwq?d>zl@c>Es; zLkK<ae#bJFmXZLh+;IY#>AQ9g3I0Y^1NBCpRDQAR(|=*GxFhEnW36Gz?rMQgLQ<Ro z_6a%d#T9`<``d&hn3rzt{*kY|*8`hBcN7Uwb-T~rW^EGIhZ+tI?iUksikS=Wj;k;q zDOo~-!jAb7ObnHjzR6Do%&cuhP)gIHV`tHhPD*K1(;-EyPLW967IKm~iMOS*-Sw+U z$7b*KVY;e=UvLQ~NuOaO=a4a~bJgVb&+Jf$PyvT~U3mxsM%l;jB!k{gdVO5AVhejc z26(PiVY{D(^}6FfsSz%>*SL!8Df6?i;hwuA>cBO6LUS2Gt7WU-3l7B^JF%Zjiw`#W z`wyH|vPM64!Yw6Ih-OYIG5sh<?%;oBbOVz=?{Y}SeDtS4ww4CLM?m(nsZxj9BH?)= z<)zHD5^H62d*_(MrrrRVl(XdZZc~Dmf@q|7v-ctc92>NG<)_Yc#$7}YIx16njwhMt zL+?T75<)xQh(oRQLQ}=MkKMAZQ>k&^Y!h(+Wvkgc`Sw<b3WqS>mj-cL9(iS`vaBdB zL&y<*y^V6HP9Hh7$f0-aLOaE9;eZp;+shy;wc{*OM|;b8K+2>>1@r5tyIP-B5>!#T za-lRwNEx|56eDz;2vT#JhaouBSwJ!y$ZDQVL15)`!|o`n8J7l7jPWD&;pm=ot2BNf z{7lm|*+*bEs!|NwoOY)%O&Yw1YWfI0n{&1VLE;8?a)DUuYtD$r7S7sArN0uc=YAUn zVged<(`BZhFN;IF>zbq|vWgIf@=>4FFXh`();S8On^Sn7p%0^>E0N?Aq$mC8m6vbQ z*dgMWM&6l9j3MnCX`MRJaL<|&tTvbs=~`iGAL0^#yeH%ztdV-5ul$yFjDeZawR_)y zx)yXe5Fa`iIJ*Qo7I*8^;O>mi7@$PP<0HWt8Ubpo9R}E>#O2(uHpJJI8l_JWs&1ZN zY@l%T95dDBRL(zmcG)TeLnKF=34@togdVPrp406Vu$+FT_x^F5@Wq;3E?hFo^7BUu zDXe`HY!jyGscqk&EMv`sC}`#87b}5QenV$J=1Su4R4mnH5T73?RVpTD8Sc3<ic5;u z?VS7uv8F%OzT&R3@BIVkyXFK!t7^=zR&boKz8oauQReIpWWkTBgCCA1LH52yT=>qa z{9&0uqI@Fn?l4!iwM{$M7WT>cm*$j#iZf<iX_p4O@yv8_=mF99j{?OydYol7mfoE8 z2%EQU&<}5SZg<n4xKK~jFl5GWYr||06`ZTppDZI&b`XZlc&3K5`zGs&4&1&URF+)j zp3??LHXr#z9F`wbqg+V>naWO};w(N=xH;=s)I5BqHR4LU*m|+QG*BElX%P|F0QSx4 zou_Wkx-X^BSyqv99PefPNv;_kba|cv1~scmZ2e+{nlT*qAdVjVbVbA@uuVS--0G%W z(D;=hK3A=6#xjk%Q&n5Z_6Op4YE^=7CF;cUWik46*FkS<s__nsID0uk`DmFY4t@+m z4lv)ilRB~fBr1E=&;3rwr5p}DRqCrYz_MjySG6@aPO#Y(pD1Gz6!?uT6YiV2k)1G< zD~(BrNK6oH_2bX<;mFtCEFprFNcqHuk82|VFY>&sSnKbYyl6#Rn>ktY8?aD0Bo`?J z?kty7Hd`(iq_K_E)Z%CTfP){8ML}Du95}S+l7$cT&`B@MvK)hX+h2b%CuErqZhA5a ze0Q7%p0u<5C7(5>Z{_=`k{qt;uY&x)m7JCH@11oQ8WHQZXN9g3J=1&jVzY4ff&_tA zPmocA0<GAgkW2L^`!4)s$JCwTP2!b$ejYSdNJfz0&PRA7qchICs^qjyf7AJ`A_}WE zX#6Tf2{W>5i<Vcx!f_`M)w?eTxzshvKidGP4b%S3uOGxwe}w7f$%_|wGpH0lSBX8c zwYf;u0sNMB6d`D9AhqwfH2Y?Ab|`b=XbHGSHNjvyRve6ZH!|M`99V=J-|UuKMvCv$ zKa=s>3RmuoAL~{+g#RW_UIQ!K!P@EW1d8ViIneI>c~VXf`e$qhvHMoSGvDBjbuZ<L z4-9O*2T|=4&y3<G2y6cM^o*-YI2aQn|7lMc)+3tyldpMGWWRMbYr0y|xXC<McM>}> z*=Su+Cs(SH;^OPz%gvFm=7ie~X0E*A(tfYsJ|;75Ym}=BRl#fLt4VDe&Gz1dt1{~k zx$9`s6d@=p-huI(=#AkmcL3mzxFD%ZNc#!?1&0?iynheOa&@frtv|L!3pv5XPjB)p zZ@{%O)ycPig?xv>Cc8xac3k7W<hFm5s4+eR&p0{-X8yMsOvxNC+Oi7z+G)v4g59&q z;ji#HdREjT!*Jf<IzPPit!(xEzwd`9GB9}t<sCOF6(qrrRLL7qRU&+N2?(_hkxwY$ zC3+wSO!3I9V7A%eT+dTOnMW1$kAqHo6jQm76+!RTfoc+#?#9_Hi0UJ3SZne4DbMwd z$;$DvkPn}y*6=$x7hVfXGVRLGv;7_GDNh<uS!UtKaCr4Euzy!Y%>v9b4_k+v%ef#8 ze#IpkyS8G#CAQdng^zV*Jwk2qX!NWkTiYI-<0rINA6Y^k7QPr`tK#JuqRi!Td!>vu zF?!#(lKgru*Y^>cBHs^P&HU9y6wtWyT^w@4HIL!ng{q+*S{L#3Oq0I`@u}x}w!5QN z&!*fL2mb*6mV=g*Y{MZC8ybLg%th<sS@?6gGrViwaB|+wts)@w7l1=k;=nEj!8!h* z`{4$qQyw4EsBXn_(Dyd>D_m{&3%K2wLD`k0@mM$|JZ*gUi64m-9~)nZrJq|E0Pi_R zacQKsS#@~hsCWx_^0z_Duke=dVZVUD9OTS_s4w<J`wj5}CCEnCT832zWFEMQ%;b9p z^JrZq`DJ8y;>Vwx9}qM{-?pOmrgcWb#-U0<{tVi9&MO}&J7hUXjwVx-*2D<++ogc3 z%a%c+%kv7N+Q;sbwp08gIv)j_?fw3#rsUBSJsQA*;`mr;+=gIj2B|y#8ncqLs--5# zPn~6pf&`vxX4RL#!Sx11x?cw|BVNuPQggR91>29jsBQ}$aNDe}lCXd&&@I2fQ0wrt zRUOlDYFzJ5aZYKxn+2Qa2jgCk$g3bAHoHki_Y9eqf-R4k32e*a0|(W7v04L^H;zwM zylm^~8LlGZ!m#B?YFL4(lT<W{mn<}D8Q_yDs-T*bn0c6%_bOHwrx6dJ$0zu0fca+d z^zl!xsmAu9NN1UXWus>qR<KxAaTdumZp?R)s#y~Y{8kw$yqpB!`f%x2*yF3*oMUaW zZXc2AU2|>|s#ni}s5(2ml<$Ya@iPFe1S`vO8Iw@MD<cmkgnF>O2zj>3Cpra+AgUk< zaudAXah_^*ES#%u!P;pc6PEZkte5*Dw9Yh2&WpEw3wwD$##1*wRy_><<Bcu-d5Ss= z4xIirDs_9&(7^^Xt;2f-EKy;?OU7EUbN<>sv9|?A8x<>MPxkDxhrS(TGC4Z+gSS+w zNvUUVD7otffotbrtR}_hkpo2dWPD1QEXZXR22!zM*3p7Jy2nCak%cxcmfM@%Nwm70 zRH^w1JZ-s2w7P1th`<x%*$6`o-nHXrXgns~wL))ZpbmB!Ntjme1Kdv1U_B98sIUzk zosv*Vo)0O!zZw^s5dNm{@F>1mH&f24h;4~K)+s!e_7~Axl~?L-P2vh?O5QI*C%^Br z@59zOW#>|z{k>hEz7czM`0Tqtbq@Ae5t(@E^(ng&b%NgrdqHod@vjh?&N5DCdpSx4 zZjZR|F8Yzsfl`~RaLC13JBVa-H`7FBb<=8B(`D4(0WMPf<(F?omKvu_65%JRdw!D? z>QjaLx<35%<Vl&rrx5?rQg>44+U9zka$H~tRt%kqfE04y;KCK<_|6^hXp+g*QiB@U z?D4>qV6y6X9FOwpma$syYxZ5_kU^DPh>^3Z0K2_x|88;(p$pIpGD15yfGxgtjip;f zR&s&Kza*V%N`*edAmQ(mytpAESLwZ3K;C7%SqB%c%OV`BfX4IVVhgvSI!&vH0NF}) zo}sb~Ra~3lrJGV8j8Tn+ZH1daWsUo|d$4bok@kl&64ni!l2@VWd`Ixx(+Yb(-6ZHy zt{B{B6RSXM{{<9Fkd)JUyMG8O9u_ozuqyjI?iC6RrEXatD2~ZE5{Pym*NjF0<xRpg zDU8bB-;X1Q)Y(o6sf4MdBF$q_<&DU>=Dkm!%4{+T@;yWJ9c;-o`t!pCfAwRl=e08C zLiTsCHM{#j8OC5Z`%LE)Pj8IVP1dRsPM4lkw6+#<s5s*vVwO$MJ%PgXA;JjN&4q#- zn}criyOwL<YU2qfUf5MAtZ3he@&+M!LUgZ8DG#n-@D4KUxVix&cUIV5i8n-*xa#rZ z!(V6R?iEMM2W3AUm14%3GcetkjvPU5Y9$~!{9Ar1ZJ7(wK-`^U`h2-&hwtrpm7(al zOef+We&iWxJiO~9qlOZaB9B8bj|Z({s936FORafLw(4A^s*)nDD=uqfYVDozxjKFT zt?j(40X_zL;8P<-6yuH2kusfU3(f9o=R!l}6$kOq?hMlGAYOm&=6N=-oc35RmP0EX zdYmfV8}9axK!BYs#Q3Sd{2+Mo1Mx}7bV-^LD1X=#w1l)NxY~Y&1Qxq-y7=IiW5&?} zYarn4hcZQ5YI>x0)(i8k6{b`-yqt&WQ1@62siYlO02A82`})xUYeZf_jz#3oK`J>O zOxQR~4#~kwZB9DTc5uj9a#ICJtT4JMv-fxzZ8wTf&9>$n_lTY3CHCvb(diYx_3YdM z+ZsOYC#r#RDg4q$eg)n*=!!exQ_k^wZD67C)ACL~4ZVUdaMiKh;OdwBJP|qT_WBP9 zEcyjZ-479vaj7l}<QB}esA?>!V>i_cHx(Vj4+Umi1F1&jyg#Cz&G8&Hj85J9EVI$P zkzYxM=~vuor8DK8J{y4TR+A&(6BFO!H>hqmm+3{=&G0+kPD$sy7+ZhQIvP#(0(O<S zlMHT6Ye)ZAfgTn2UGY<0th>Ak_pqRIb1s{u(ms@F%2oBc(SS6uxpMhLRVlo&2xYi- zJ6A{7E21+{fDwUKpW$7hEgJ79c#h3wiiYvWsl1Ldvp{UgZ3GTZe5f>BMv3^u(V(4Q z0t+Fb{&R0IjjGz-^*y$M93(D@bd^!xshEzp<HnRtl5e#k>jT_Q>-*_Y{TqN&2E8^U z8NVuc%aj1`Q6+e0xd`8pd@>4ppg^$LWo4(NpP~AFPNy)WNrHMb8|hqL%F*y<`A})~ zM=IoCt!-<Xs|Y0;kBAl1?QySssN6%=Ya2*!J$x&b9?iP6zH(P)MBJ{G8HXRy7Rzk( zSa`z=BJ;~He*wP>O9+&wmSg;byGq(IXXrOJt5dzk3qH)c)6(x0VimKxH;)2D+Vh?% zA$d0S+B9^iy)`MlL7iYQG&IGwNEvwIr&%C5D;S=UJB^DAXZ>jC0X6?)7i2bxJAIEM zBgXyp(Y#*ApBcmiKH4YRvKl9fkgI=Wy=SIr(#?|K$ne8Z{lN*zZH9e>;lbFCLi?=@ zpC3|V&i7i!KD?1tLe60Uucs(cs))2{x?DGuk%E&8$AtUL#{LeF2|0>ULGF~jQn`UE zzC-CS?9W@BgG!U4>oc=nEVIpg)w*u^snYci7DpokB()zGyU8sh&(hd**r=7T)zDuX zY#~nns|Xf|LWbpEW;6`T*<2BK5a08g4F(jd4rE$S;#n}zyM#Rc5&ri&;2t49kO~rX zAE7Uz0&ZJ;+4hsIBB^IK{baLmc+Em+jQ4$ct+#Uz^3>~jDAlC&gMc%N+bptvDKDzB zg|I7;oc7%47#8o?Rrvdgm+|-spT~ThJlXtEE;1Fxl&p>6k4yV=qJ>te4FmJ=wf)6k zhz@hfVxEK$H`Rv^_EIjE6S|CvL5;L;Q2dSkSO36-P1bMQ)!Cijp!7Q+Hw1VtoKA!T z!ZW<SLX#qz6j2&hD^pD9AkM<z#P`HfTU3vUQm#)ouumN91~s(;-qXC%jUswin4Y}M z4r<wioBKD*T`k+jW*yQd{<*N;cvZHf6O8-?81nFPz@<CPrEcb9j=*I`y6k8S$Xr6a zDRkb@VWN(WghSKPeX$OF+9$SBVmod(+VvcKKDIPv4<8tDQ|Ol-!Y0;X4-?5bMB-ZQ zWsk#y*i-StU*I!&Mkkn>KaeY6%Xj2mwsU?|_=_^i={lCv=#^l(+>~)gpDln7u03jv z<$bL?0%@#xF)*N}MLL6rv3|YJh<>2i9eB6*k5^o+xzxYY@BIM1yWNf>#h4Ql47PLC zbc_(W>3>qUElx<)`R#j=s^da|U4sIU(5t1q6Rv7Gc==K1pxhS`yqwsFH>mmdk~<0n z{2%IoWlxGwn--D50@qgpo=HwW#2gpeiLspcj%Yc6UFPt544-P@C!F%#S4rT6r@RT1 zxc=wr>MJil>~A2?E4#2mT~79Wh2pX6eGWsjoee%z?-p{-AnqU;GjOzsHpb$#S)l+- zm>J(dvLFpWYzPg^rUo#<I1GBN#Eu>VQ~s1jfZFYsu|ihb0_<k-(QV}-w)vptH7rf_ z^9#sX|8_qP&0VD`c$-9Y$h!waR;VQjj1?Y|D<|x5$}t^~G}D#)0Q=ae9VIp|O!akF zPO^*_@Dk!fquCLbCw|w(<KK3&g`U>0hh)^2T>rC((aOE=V0?J}xm*3%yXX$VPj+Z$ z2903_OgM3`4x)jvJzAkFUUc&5@Iie2Wx4Om;qxpk%yBOn09%)DHG(bgY=74D;|Uh- z1r{;_b13?it=5R%zeOaBJjE25IEyzE7EUu5=|f$R<BaL}gwWMylk#z}m^?%HsspCb zla%wZDB45%QF)qsZIwKd@T6-5*0{OT85-?54aD%C-<tb?zFjgQ6My@`C^aN{qX({d zrobLz#@p+OnAZMhr}&hP%_n!WvAt*G_}I;pvqWRM*2p{xx6ou)Nr~X26|nIk6se#` zHRZrp7@x=d2SI!f;V*$Lk94z}1EtPGcoPTscDJ?gcY(L@SaNZKJQQe5&ILc+g$?}( z_Tdc~fh!ejsco5g6|04U_BWHbP^bK;WawPPP-qd1QJuH#M|T8^9AvyI%D<Il5dS1l z8cs18laP4;HSRg=e_JA0-Y6j_*9MJIgYCoNy2ro&ma`5!zJ2vQ*f~sdV(l`P=y*!^ zWf+H+UR8XLEtss}Aa6-A`+Xc>Y090#394hWN<3q=F#j{`?7zOJ6;%Z2Z=MmH78V~w zuEp_tPkua5dl@+51Q(Q%@jfR`upnvZxEH+p_WcJW%Z|U+#RyrcLhVSt`u&M9fwleF z_x(73t~8owyfg@S$At9(tb@!eeYh=|nZq*zuTrB~hU%kr<5T>eY>A{AxTDrBlnJVV z5*m@7RbSGI@6|A2Xkl%=>Y&?Vu(kq~AHS|1wE)e=RPkoHw0w?2F@?APcKKG`ek+FN zNylG+`l{D`2!uW$a-ASb654N*JqNLkC-Io!P&<bC#KN9HvA0pd$EPx8x?}5oDOO;e zo%{v%9SKX|0r5KB<kxmFu8{=uzrrjlvCNYR)-G%?NjqO4*y`G9CCD_%Sm}_Mo(PM^ z()hX$?Bzb8<@ro`O?>#;Alh-ib~QP9&SrbL1da8XAH|^om)>w9?96B7g-ZFjhjsTK zSI{PBRJX8TL%!(d6+cRo!#d=S{&e#Ni39&;g;kUwKnJ<-%tsd`QraUoL}N2k^!?Ob z9$*9U#t+BL%Vp%h(ee5?yd*o-JsW1Nv;k4+BC}IT=pr}|`sa8z(8oss0S*VnW{D8T zZRByLj9&8BN~FPiKgBFbHSYD@O-gFs;jjnKY*?L2i0P?T1T^^CNan4`zd?eY%}Nz^ z9*z)RXbq|)Z#7GC=Lo~vnqxaERPs!}+I6Q&%~&dJ55a+PEmsp#By6e?Y4%oPUvpKi zyVcswL7c6hzC&Z<#eYgSYu8=s$G3mil1s+Bi*4b@6F$<2vmANbhWeXo!5a~jK<9WJ zZBPVR)5S#7HI(5K2ohv9P?`xTXlkW+_5nUFLxZ^62_r&&u+YD20m;k>za`^qSSI|| zhizlIzN*HmOg$BzyIty9v39|M@KL}MYBG$>{6qJAJ)ll%BTQfEs342bXZOqro@jQj z!8ITxO7M|5{`ACXH5(-T4dUUd!Rvzhu&VP8kVZ^+V~mhuJUJp$X;XX^$o7mfX?9^d zes&I)hw=zudyt=2RZP?YHczRoqtr(lwq2udo7LjeLjAvRoJYA=<QW!7mn_c0kAxAJ z*N0(gj{oofLKCCCSTTbyNofqp6zOPa644f|*qnW3FhrOz)<JeH_VKPEBi`iC8-rFs z@#61(56H~Uf|;kkfFgBT*sfS9il5#vig6aAFll1XBqmKl?fji@w~!wvGv+0ji)^zP zD$wG#N!-F`m-DF)$i$=R4IpZv{VsGWTj!J<1_f4&Iq8@2lqV{uL^e-RpGT0k@gB|S zZTDb*y1#b=dGTDZP8!?sv>H_yZ20zq2yKjC-G)Hse<jYr#yco|RnUZyUT;n>*pm2I z(|))T0F>`+#wzcRS_c}53wFr0&QMF0DW1R!-`S62zE!+84`)5L9mVk?Iv0_19>+R4 zIx1*)Ou5|dV)U1u?6>ocHAi6MlyLt*9KF$PLK??su_}<OI^elG;6C&VZRFC*gBZh; zR4vZF7Mn_vMN7QgN-YJmFn&5_5k_*ev)9Z;9b{w+Px-h~=ZF@n&Ef73X{fe9zH@+t z_mw2`7T1fofUP%qWcbkEiwJY9<1l=LWOHbWAAvoVKxW!%?ni*0Jl`L=-xxM3XN-5D zvhG<_Fm*3|<aO(1wW68n#;Dg+U)AUJwX(H&@FyoQ^SBDeU1M!=rbsQPWB~yvk<?i2 z*e|e0_M_PZ9Y2iKB^W-D5NAF@w}Pu9r+?nnM%>6(eHvl}ZdUP2^0?FaHLD+==-9e& zVuc#)E7`n4B@C^3d_cZltZvBL*gS;jAMCgoLe$m8N`SLxIPp6&a-#2wED?q>69hzT zSmGegZr=}S4A1Zq0^PmyV-xB>n>za0o)Qotrq#l|==f7LwQ$8JTR1xyo9#4+@1WOP z*hBwly>M5ZeAMy_&^-!X_X?3~@zo?#C5t`73-GoUkF41jWk61{o)nA}>MRC;&n{=w zEhAnFU#ZK;z2=jYT^d?h>MuAXE86jG4+v(+BY8kF%c-Jb9sG0(qL0f23D%GM8c51R zM>Ilz>&IB0C{~H9AT<dj7Qs|nXlw&fB1(0W14W(2+6QtO+2H<_AsImfSAL%w;e0n& zOcN*Q4*7%SXG<eb!`a1$oa6x`a(#E*e=0Khp}c8@n7~SJNN3ZYY2kQsA!L_U$J$HL zJj%wvjip@eje53Rl8fh8=-i2{qkqVi(_YWITA7vPAg=m5SRgib?3S34v%YPQr8-}Y z7?wM2X^%I`2u`~tOrT)sBNxhy)-H+RnV0)%z!(2a%<on(o0zlfLy<Ydet6?UH{feX z(~Eyi{u8{ur?G?M<Hv-yXKmz@6nf5nUx{@%WOo=2nV(+<Po~|k#b5d;RNaVPALu!V zIpuzz9PKJGE*ypL?w2cN*-;Uz@~bh10ZGo&3y^AZ<C#m~;P#PN4jw8z)wT-_PmVMD zvF8%5CufkfyidqCpe^ut83Ei|w{mlIlcGfLjb!_=24H-MU=R?+utN1B&nMbtg1t6? z{}Q-$Yg*Y+MBk9CaDN^e^9mi>1?c9a%1L-qg86E(<MNh$b{VKJ(YGCJmhJLQo?OtD zcfI)@m|gX1MsR|XR`)%f4UE0)o8UrCMuvv`<*gFNzMPhVADc)7wW>5Nyjj0ytxQw( zX=u6v_Ksdr?op(;Kxw@@ZPL)Uk*hxb*ZT&NddKEFV1mh-RCcI7KO)`};tw5b1Bqr2 zc*sVUtNlrNS_8D*KFvY3-42;0DsmQj<m=R3yL5vPMOkPddqz(2Ll>^fxx5kMTx!0Y zs8y7g76B^TwjJnJaGg3{lFr_yR&dW}2?3nxQCBAMV6hTKNcW8_$v+7wWYthZ=>Md# zedf+{YAdL{w7W69qg1b?I_O-Z`+Lg<rJkA#JkVS9%LrNt*C-c{HRFbniy4#`M<2^+ zx4m7dp&-wp2*2T`P?gS8AWMVgO<EFXA1s&?Z=Mym{TWx=O)YzoOG+}&wz7qCyt{J= z?s$J~UFl9zPu<f94lV5GtD6;el`<>y!dzDoFm5^mK7G>*!GDj~ocPG6yscRWzWRF$ zR(r9%hR6(Nj5Z);@dvelfvSiK2I@qnHnP=hOHdj++$mKZ4>pS+rlWIbC6;Bk{)RLL z&dy|@x1<JQvb*kBa`Eo>cMVCHS6w1HD@oTRSJxYBT}2CIYl6v#FG8B}tK_|#xZt7X z!!U1#ko^zRvP1Fkez1k0vZL8gk)Yck_Y>-yKKv@5K>3l>bkSOXvWsGC)CT|uVoIxl z*G?(1SN_<xD<prVK{;w0+=6yX6`RqEPeJ0ai;!BeS@>mOt52>Mhs1KY`!u4Ayfxqs zIqiW=Z_G0)eRu9AlCkVr#V97Czj6cFo0iviK&}*c-@a0bG0S-h!ROuw2se<G_CtJv z#oJW|V%<mQ-NtMG#7idds_fu|u+^n<yB{ro*_J27UwC)$D}*=hCg_<Ly_X5){Q{X_ zg97-Z;S<BEbC{J<Gl-p)C}zL-ED(W{geRW`P{g!-lLQTzC^6poX{?_x;!=sFhZd3Q z&A>!s|5pYObUxA!_B0%FTtbS^7N=1}gqes7dl38|_tV&6#rKByBP6*bmZ8g>97N-X z5V)&i^pcM_tjBE*k~r2S+RedeL6|%05-VaEEH^!Owt?KSzQ<4X2$`@r#d}w*x-JmY zHK$%!i7~onRiv1uLZ)JJ8vU%vi^6PmQ;u#(^{rOeFn+NQ?a$i(la1|QhVmX7Zl=5Q z_{lwY_p*HrzqizX&(N4-NDO+$-Q|i0bpkcTcOGbU0)1`rJg%HB1q8|l;om@C2J)f{ zBdoOn)7V%IiU&JxDpOAViz}4N$bmibU6Y_@z8XKFuVKPRW#?FaW>cm$$U<MUv;Vjw z*P(bNKfGK%<F}7I`~|qv)R?hi;|s1tVDkleGlH>7VuGCO*x-}o9p#avV`T~e>#{dw zPlpDMf-RxMg3BAoY4u6J7s2lJ={uf-ZnNg%<UVYk4`-D{lsrk?OFRCP?X^1R#COEo z*)x%W`b*!yNR3O=Sh2OYhqM1ap0<g+_H^(*U}M1ji#V0@UjI6?y>QuM)bNl$Phi!z zj5)Kt!QzORi)hQ?c==>VP1&GiQpaEKu9iO)e#u8cG0A0Jv|x9_H#QQ&!x&X6@nfo| zt>N$LKyPHETxkkjY^C7D+a&Q3w$I{3n%K#abR7;#;u(MCSs6JPBYB#?2<a!f^mYbH zaV2VxbEp<NBfm9OFvOII+KT|i`K<1{M*t_qBVDFv%A-!#h_~T*`Nmq+^R<)M+TXYC zSVg3QEVO$yS~#)}c}QK6(<kMmgSrhda?{oM=TcCtqZ%|JI1$azqwZgHKMVnFJv%uR z(-Hm69|a!RQdiMB?R_TG3{x?7{hR}optNpEaL)B0V{-%k<Llp-!E?D@lI>G$HZr4L zNeL+(5xg2+Uz^2M$^QjBOB3(i^4gYJ`v#jhFus#QMb$q~#?rK09(<N)Wh+$^>Z^pY zRO`imQFZ-Tp?|mF4SFnQI72-_IX^xLHwtKFyz(Q_evk1L!zGld=W?m^O`EPYWgmVz z7*&-Gr8j?631|F26rFiIRQvzO&+LPlaV#<RgORCg-(@=|5(!iJ-rJ@ulaLnDqR1@8 z2pLNom6JAUxtX%xlp2hs8kI_DvDCDfqE(B2pWnazlZP?qyqD+e`L-A5&B8e03&mN| z|Ie1<hnT#zmS8Y<HTE&zkde9eUKL5#sQkLW!eg;>w*vqa8BYiCCxQtl%ANfTQo#j~ z{<8H3aNOLHWDzQz&a6i(oa-y_0kfG^c(_aD6F0J6vFP4U9$CLLo5LdZt^#<u*{K77 z)YD*(2If7h_E<hLVx8CUl4@<}7vEDww{zYT&gB-Z&%m*Y!Qpq!8Y635wi8uUWGq87 zS(MwjV{H^kbpMO_%Vw>1@n`KJH<Xlb*4C<^nJ#yStv<!6NJ|2){74aW7)jDLe1yG< z(-`l*qv9eful>JPkQkuS@NlsBoz0=5seXIY>0CHw^q}=CvDb*!y3j2m)HLfX&%Vg+ zm_<41fYZ7ru=6+FeZ=@pA7oUk``5-C1;_}6r7|g$q0qCuVL0@Vc5=1?e|$GNLgK9Z zQGoPn`zgJ|9hGiImBRSf&6=Yjct6?6_tJ0;&2&c+dL?xlKpTx2fDA`FuNACZ&`rL2 z|3_sr-QMZhY?x!<aLanUS@UG?l-{C5z#vyAK2QtepJoh>s9bgbDt_~u7hBZwjB|aD zit2aup#MIK`QqO*Priex)cDVT0DfXBE25nnhC*FFT-(r3_1=Ac$rf?^;jD8X`p9i$ z>0J1qq)w_l1HUS<r#sz}K5SKSMtrXEXSE-@PpE+u)t@Z*F!Y*Z^j$^~khMoaw#)MS z&R<Ii@&Xs1!aWMEs3Y=Tgv4WhrUM*bP-%kPHo7x97+XbW-+Yp{QMndwzgv%SLN2cR z8*O-`uoFzD_fhS}%O4GpQ@4bTeq5v(N2x3%(oK&GOfu(b#yx5I-^}`S9ZA7;+2@&R z)7m(*>a1WD8>+we|LNeAJG=3_908{S4F7g7P{znvJzB_<qw>`HztK|LhA(~OvE4HA z+VD)CP0oBrSdg;wFw-5>4Zf=v-rk0y=CcP8;Q6r0Gr!IQq5L|`@4u}d03zQryhXHi z%W^|>C~Va$nB$MQ-^N`!pL+d=pOl>F`Tr=*vq$k&nuv2lj*6ZddJ%a%T=7a^nB1*- zxSM>V25O<}#EIk8I{TUAJ@sGcZhAl3&Ye(kn`X(qwO@{i=*-ngmF>J`G<~Nz0N)69 zpx)S1O>}xck-<_~>j-VH<?e!ninvMP*Z0CljAw2r;c4$ZfWH~Wz(lX@{l^LU*#?41 z8Ey8FX?<$IMGJdSDZkJSs@R70bxzsH0WfRzyYmIoAuzpnZ8>fpHuf=v=N)SH*nkUh z{3H9n4O2$i#o{63MP$~<>c9E8$aHiXJr*_tzGaQwsW++^gha2K=wbHEIXQl4g0OE} z0H4-yoXu7T@Y&KQhdY`-^ii~*c>O!bhy42#09hlvTpalQGZyptEDwNk+B~+Fng=zx zkSlPP^C|n7fM|4f_-n&9l(u>MN*Q(MsQUbuw?c=JD}Fp3hwLN_UlR>Qa9D3$Gmysk znfZgDqz*f3fUOP$wV{=0r$%Xb0Nt6$mkb8!(;BaTF~Q|KXuDS<ZAU_{?Cgiyie6Hg zKBZL}Cp%jnL`WR1mam~o7;6tYz@cxheDvcvQfY1I;+yLYvB06M+Q(6Pkt2QS>;prl z+GH~?$%Ov*W)0@A;2UlvQa6+(O^=P^S`yLZCDo!}%Sk^tL3btogQ;ZdGt9_WM-uzi zNc2KS169JFA!Ij?%v#~Uj}Vc9f^6v?cXwl4-WLB4U|?MQZoLjNJ{$6hYbs!^UY4~B ziLiTl(@A9PqJCpirmysw2*$hw>aW=Hk?*5`c!NlnY$*Jjk_+!-to4X_`WG~f6*>D; zKarlOXgSVX;*ONj#{mbo=gIHzZbnAZ548Z9@@p7|urVLUDyDs@kan&gq|><8BPy2H zBx~iyKC0KK-1$a7#oWGVKSQ~GgtshO?Z->&Wd)g@1n)I%HFaS%3Y!?2C%TeOoAH+Q zP%lQPyv1>w+_25&FQ+i;xjVE=Af4`0FL2D|4yRd*+_dG(7u0Zz*D%%m4c)1|vmufv z_V6tLqXEe4B%h!YxLCOa;@kiKzdFnzNY~35(XD2Ld~aNQxmx#L0ZS$<TzC_+e)=n? zA8pFZQj*8M*X>=Y@UXR2xYzk0r@HbbiDgg^a!=RtD}Y7GYVjGmBg#W7pM+JGXe$0d zTb%4=8cte<Vz8($-t=Y)`**20esv(oTf|v3SMn*7>Qj43Zw@M*1{D5uQvm$L;2{jO zV+}9FR^W@4a7C-Xp$>Z_obkhn&sw>TWrsH(QkaIVE7&vXgHWoTs)csXx(oL4)@%QP z9_zg2#V)@o8i&%%hR>Ep8GA|W$cN|QtKHw|@*MNySG)srFJ}(YnLieNdVuh>V;6#U zN_Mz?MumBsr_zDarT-X!rp({C^C9-VaL|}<UWrFo=jG!ezG7D$Qai~mfR6aIUAd4f z61Ys0Y^0{P#P{)U#ZGz7HJY99qzxHfK=`(Ymvr{qTV9;CttZ`>pYWV-3^K0+gyI5B zy9IyK6Z=}mT79GL#q%Iz!YL<CH>*_PA?_oG8QoWSAi}-RUQ!((b!~kck+W`iE1yI? zcB1r!a0~RGMUaVgp1%&)nb1q1s;IP50w<d2+?AjD301foe#X4U-2uBCfeKe<@iu=o z4RJo`iRx-SN)}FxY}mY1*j`THvb+w7;FzIQ%eQc7@!tP^!7^NV&!eRv#y=;_jE9V+ z9@t0CJRRs<roGjvOPZj7GnTKQO7AaN8NlVJvzNtx!`3w!9#!Hccdfp}3Eum*q(6?* z4@M-G<vg8E-Hz6i6umsQFz<XnWOV)P5B!8x%%c;Du$E!RCoX3sBhoNV)Od*Hd;#y> zne*Zq*U2d4J!?&F5WRD5E0;sk%WwRFSCJwOL39*Kh%GPx-xN9cAb!=Mqg}5!DpAX^ z`og#39a{-AiEdLRDZ-9nc{We%J2qV$Swq$_`#M1OWljFvYY@59RCuO=K0DX!GhL5l z^pS5ISl-CBb%@Lb`<PX88yzObL<=1Zsu<p0hjJ4z&iLSPQlW^!idg9Q&{uz!Z(3%Z z47z`AWr`qqhcT{74d_1b={w2@v2Iij6H~W(Tlh&s<(`eo9<?aPIy-$D5qP-$E7Fwj zSPCj|t=-4vS#Yw+V^pxakmoxEDcl>;wC?rBL3`QbWwo<_HfJ{L{vyanf`v<8J_T6h zjB@>ZK^%*c+w3c~Bb=}lVkc`8zLtmrk8=M0t6B3o0AD#0*RUHw^rTsZ%D7aBdRe6# z7>~H(vF%_-dk=ZtNE^a$JM=wg!~$5H72$W6vxwnRwA~#o#T3E8Jm~N@?R2EA=i4eU z$y|BnNHbaVY!s{y4b%Xmqf~Uh5{J!rVhaYjv(U&C`o<loVw4R=P2q$Rk!h<F=e_9I zo1e5Q4V!7Kx{s8$bKK7jt#7RGETLQ8^*i%iCC0aNK!LctvridX5@{V+!)l*qjl{+C zO{e6Ob{h-#GibH1(&v3fO+!bawuT@k)4g5=ImghoFCaBSt9^tczBNY8h}`@Q(H%Rn zPcCCB2xWB+;;m{IOEpj<xn%mm4y#~V8`t#MNZ3`}#mHIh&Sw{ZA7Kbb@9fP(8EF$+ zI0zX2mDmZa0v@ftuJm?|zCBpQ)EkW5TEn=VCt$zj#cO-rAE%f%_EX(q4?1!2_Wf+k zM&VbLGl<_^%RT!))LYdnQ2QRK*i~i_v9dzDgz&=KX^%uV>twIq=3C%xXx(>%&NP`@ z`EL+?kN*pS!*n=~%Wu-wqk|?UnbKHkQ`R0M>Xz&(B7v#@Ac$Evg{Br;)GG)=Teh6t zM>s(BYkeitdNE+66Irh5MK~yYvJImMv$kW)XJjzt)n-1OY#M4q-T~7Uj~(ZW1iqcA z4Sm!ZmyeJ8iGBIMc?qYZl6lMtLHN0JEvKErwPYiOJQsh6m=%V9kZEvQJ@$K{{#nEF zU<LQs;Lrvcb7)O%Hc19erC`|tVL)AInmACzl8L(76<e8A^znSnt6=#+e|Cef$9unL z7ZPmy+9@47QXi!Kc)l>+ECD9(%)l2;1X%At#T$vxgSmuLd*GBn0b!Pe%VE7wI6Xjh z?btP6)3Ikr9mi5QjSqNcWX;3xCa2As_g2{HItW@Z6=xlB!GdmDiAIlY;mk=Y<x67~ z$vV_JWPk`Vd>fGFF}3(aP)_{j8pe3dBo$_sF1`v<w!Bou|0s;bf1gn@UAvA`$tzUC z9No=)EkDI^IH5Atxr!XeKCmKk7z%2z+fObTz|hs(pX}0SG*0wU;uv3hD!yQMn_>Z| zrxIpQ%%W>JutSXz(<da5<v=z@6B*O~Zdl(`Ld<$T{A$jPF6yo&60ly024!bjoZrbY z{Km_`5gzkPKPBv1*jrI*YTMwwj{?pW$9&J{d{)quqWw3#X=&z0na0@ibo54JfE;nY z{6D}5pvO*)Posi~7h;{mGcC7BRy%w0C{#}U+T)9~pg)ifE$|zLu$~wu&O@k{olC&; zlp{RgFsJq>9%>p=ek2|Y<%ki$^Wb+z;0PN3M?cNr6v?z&$kEe|{)}<Dj*_xqoqs$H z`$>6bcaE|ms$Dx9Zzl_>X&<bLUkQ=QCr_`#4CAzHH~qVhKQ(K{q=?W0E0u?1r!Adx z_?0lVW4k*YS}WP*-l1^K@e2oBY5RZ2iK%IHbALLi@agR!EvHXkupCxuwN${y{%x8` zBuRFejZTRaA9PlS-{9Kh?UZo28gidC6$r~aGV48vKpJKLfdW}zUYv6D#@9U^Pxl(; zw|v@_1rvVmK0k}AJ1VgQ(Mx8x^SL|ZDIG$ac{M9mc7_Wt%W*>kw*3pJiBP0&&X^z$ zgS0pIQ@+&-Y@^tpK5UNO&j^k$eDkKCnwe{xor<+cb~uPITgR`V=4QO47qdIsi3Hn! z90PI8T2CJSs(Oxq^7>woo@v^I|Fc6_WJpF4M>mbJR*&v!xB6>|Vos;UM$j!ds~f(c zISnRjYnY~2PV1=zziV}9=_X%KJ=%-6RYKUKwLu`z`n96sy)cGun#BtfI8P81SWrVS zmS?}xvl<;yhj#sbjHczy+l6#m1=|<nGA;7dvApAOaFCQUy-Aoj>!ghFg7~6*u!=Z( zt&c+8ylD+7U017N)6xa?s0TWBdp1j$a>URY1Y+zLhnA7XHXN)QpvtAI%8J1pIrLkG zKC>v}JDs+F=0=dggQA>j!u;qlyu|NHQ2rliKa|(umIhLTV(;^lXrS)nnUFdEd8TX8 z^gw!f=2e_U7s1Ua=S?5ctcC%`W8%(hR~t%5wj)6y%-8*-rG%KL`ntxPj2WKxu!J1q z`3rxd(0v~cDt(=a>ME%G&b=z?Skq~w!&xu!6XsiFcW!eKo4@?K96wcDIagm-V`!;j zZli`vxRkuEZCdAr&>PlHof^WgL{7OYk&+LBt-yG7PD-*ON%({<&T3ciEU*2r18b=Y z^XjLb02wR1)BX;%8DTB>_Y=0z;RQ)JTE$5F;CL2DV)PVVv|Y!Qu}7?j0bx@c_eu~= z9W$-FT~n}F=w4}~?~QmRp-l${`zg6;CaaK}I=3n*K)iT`6<mSe`7rSyN+Us$s04J4 zUaDgs`51ch@X=-lG!wq4jM+rgmh_PikAOGHvVWE?Vwg>;9Q&#IxY<*+KoMahJadbY z=Aacn;W-RZ7cV9l{z4Xd`PMc5L^OI@nm@`DJuuYZTSZHDkS-?u@Vs6EyIl-J1Pp`L zr})`Sf!ELvM0rao*50DBZ6^WTIIjroV!ICOV{YB&6e{t8^~nPe%O2IxkFOz5#$!Xg zlq1J-*L~=xTI()sxECXKTSttjc0Vp)^|Dk>X3yUXUxDWby>oe%(psumP&WX%*cbAa zy#bG#?_*)gwR{7uibt1utmR!<-pH{FYIjero%5Eo0h;dt`^v3%2BYXNtEVtWiI?Kd z3wX`y;H`(OVt~r#nPUxuGcur=B%?b#dwX4)uC3USDP0H$JFLFl`I2f?u^&lm7jCaF z-^)n(<S2uP?>$=E2zJQIaSDM`YpBZ$GmwYZ0d*kcbJLUSMBROHTR$}b6+<s_9={a@ zTg|&6$2)a~BEId_*3rMNOo&Sy<|TL#&zweZmtBDyWrTwJEy#J~N=MF1!aTY$KA@-Y zS*c=Zq#P?h^a)M#6>uJA|G>`;l_So%-y&L&qwCA@1|NJ~`yOA|>a2F|XUuU{x5?uw ztp~%wXH_;&;sT$8;OxL1BGpuJQpSpFeHpFfeTyIBrU>On%<8!C`^b&fuS720T34IN zN9-kMR^yS^bPo6rD`^f>CPtUi=}u`{?y-as(=u}M=Uw>o>bKj#^LXEd%PSH2q3)o> zA9%y?5U|>?cdV4FL^%tk<Wd_5ytX#-)+4M@8<GUxF-%SD>`*ZF&Av5=xO8$WKvUyF zP}z2oPb^(686bL-)On~T^b=Q3hsZSjwx#O_wefXd1O7c|=pVrSh<S@|X>|TR(VeMJ zo4I+<{0Vj-W~$hpt9OXZH|6a@hHC>lB&5!qWd|2&%11_rHz4gtf_X3oSg-)Tey|eI zgAc!80z~i58G??(9X@+xEPOv>`0N5AIeuZO<Cs8U;PMP?uX9SmlA1|n4XNr~`uZ-U zV#g&l8avHScVS9?27SHFe<H@Xcrr#5IF+N1^2dzy!HRhCt*Wy|5IVLH@rC^^Mk2!j zTxa&x>-ibDi<igZ@K7wzRHnOvVld{D@SI~bd1Amu8R{t6YocrM`*>BkT6h+5IxJ)6 z9owC~WTTX^eET)Lh3-zb{oGw`D777e;~uO8vdzKADuG<IqH7A(`v5(NqQ@T$hmAD< zc|kUmnhI-u5b4l)T_M@)Tn~V%;`8#-wZ2)T=u?H0`*9{Taq=^^;BqRMB$}-Pg3#Q# z<<u$6@`$T)VIHP5lR0y(Cgitw;Z=ViInEf_y^%}2{Y4*c2jm6j7~f2!x)IBPj-#!8 zu!|T@8m<<M-Q_<B()O$im0(Q|uKBK@8nrI0`w!;1=d*!<K=l*}$vn3tMhuY(?*h5r z3dsY$E(w5=u`6$sK%&%(&A>3|<~)Vo&X?b<_TU&^hXdOhl0YttG+~$d4HG-1ej0#A zBg?f?6*qzUROmE2tc-qa@2K{kY7SG*Uq|#iyTHF%BW_0@=}<+YSnuiGtg{M@R|$Jp z@#%I@vBz666hckjB)qN?1u{~#i))yxHyjRPuQ^*kOvD1t+ofYh1r_Gcq+(~I(ZQt~ zWwZm~1)7P%II4qXH#z>$)h?-TSiIFYjAn?)>%MZG<pl8`Xc~DU>>hE)WVyy>yu?&P zPi)`YyZu<+g{IT<Xf8&_a#N$&W2WCMN;Jl-!n_)>JgK+a1dv@6CaOF*EWg_?aLa;G zYta9uS?C3^EY-AR$^|R0W{o}fzD7==otDd*89|zoABeapsrrm`1*3log-BhDNAqyp zSzQ7YI)NG<d+rN1z2D#%Crr>uGxo%eT_=b)N*z`f++&Do#UXvvuIENK+NB8-U0sJB zgS1A_(7UgwG{fs*gLD8GpjiEnKMEXN^qp)ws~Ex2O26hAcp3K4Pm`G8Q%Y13x@5B^ zv87bUvn~H$KT*aifWVd+6ERK<8MDjosUl1Ql-4hs%Z?q|lW1+IwzeXWmZj@^XWL%7 z!8Hwz@F1MJ9c3hgB73Gp1%g+mJVZnwJ71QtGYpw@=aDhz^<Y-%ybBscE_xl?yT2E# z2z<tgH+3fYK$5w`0udGH3`KvYd$;Ij@P~<-WAYt(FW}h23EJ0rORNtC&lT+2KH5x= zTYtbxyPdZtqM!AM?s~*{LdMK5VYQKIIogB^ASlpjJ_tO)r(~M;i!@|}T-~vs>0F!I zxIHSEO#2UnF-JRlqBKUv1ak!*cG_tqDe`sitnL*8hjmnM#o&Ghed~)Xp2O_LV(|Q5 z$LS}MAIu%vBsgqS_!LeNp6FXRjd+ziF>5r53mimgW@qlG#4zcOa(SX<FLErT<Pl1$ zlT70oH@9pD2s?=Awt_wG?3=(EP}x-XSYJ=#x`;m7teM2R72b@q{c6Ht#L0y#3Ym~j zlxTM0DbL-Q)i%FjOwXNTQNnz^#GE@<%m$N*-t>NI_NF@Q#7V)0|3UQ8SG?HLsQr!E zVEM*o%|~VASKco&+$w|E>k9lg)1AD&?g%^%GYF(>p$~#gzSnjtqQQ{i$utx8Fn{tN z5{iskEnp)qW1;syx}hGcYcg{Os40ytO<TY&f7P7gsh`LINxrn&<et$_d?A}zC^h@9 z`Y$@S_-~jo4_fuw2Mhs^w<hY+<|tf|V_pRB71VLbSVm$NylMF{?JZKUPmiz*ewGC< zv62VRtCZ2LT+hTs4$u}?Y&OLFuDn<}ybC$mSx-qQM@%8V`eqQ)Vr;wdlIkdT_TP<P ze$D#qsS>6%9RGp$CU=z2@IuMbmB5L3*T2thN`MrHRp23AUHkjKqP2YBb`!_G6^YFk z-}iSAoh%rQ%*TCJJh!l}A=IjmY3Gg;cX}{V{eT;aOoMHIW^)<nX0rgU=@I^&sVB&h zkvrk#syQ7eB+!GYDorBkdmlt7A_TFc%<fimm9E7G!{nw74_AS(nB4z=ObT`DEAYqE zWpn2<FhG9;ZEjCGTh9l$Q-;(tT*EWIN^jj{-?e=B)4BcRrc(h?B!gR<9{<F>x}<+? z{f0_S!!Q2$f^P1r`tS`~vA~6T=og-9Gijg_cHG!&nisQs!KEftG|KLONsQd?!WHZO zfxO@H*0-O96FT{9MvOe*4<v(9kDAc2oaKFQ7oLkE<#hgPbr2XCbe+80vJK;(h^u?} zTd5n8Qb@Y{I-Ne-rzdlhI88g?y&I6&<&YfS{Z=woABgr3(UELT*U(Lx_<=kHg~-`B zh*}zCDiN`7<7u?!fY>jnz@s=A>xI4VlmAE2<OSllEJfrePTw~w*PkYvSU*ED5Yjgk z;C3yCHaz*zOjp}F9E|^l9!{P)+o={GO{o6H+@t!-a>yt5o?2+O?J;P+!b+zC(zWQ@ zFS}cmL7RxB-IBj%XC{8yA_}iIF7a2u#^=@!eiX#qlKz1jUXsX<z%TcsK;#5ClhDrL zWmzId1}!FTJ~_>IF6W`XuG!?JMU3GmZ8Z!g67oZz9cf7FMS3+l$eV=S*NiKz#HI<N z%5-h$Vdo3{ruGC1d*yWm(5XT%@EjD~wnTf08rm1WCBlD45#KL>$vHW0z~*yo<&iEd zW;Eubm}qiFh%#zTUz7|YmzPhT1R<%;O(i1Pd1#ed#QwJQMi48?Z!YLxzVq4p!)GL< zqD_5ObfndJYZaLxVGU>UTopb#ay<O#NkZDwMBxeLHq7fMB^hQu&AJr{_9EU6;Txu~ zK#LUc-^OJaUyG(fy~gxC)y@Zat9ghw|KYiCp0Dh<;sKxLn~!AhzduMfF}#YwV!k@* zH_yn&{N;^u%8f?E_^xdg@qOA(t`nY`$wPIm2tV+*RG(@5#N*u38t9rdc>x%~OZ(q& zNz&tBPYGkrLG+XA018R!Zsf0UT_=~CwYp*Xm4#AFe#MTrqC*;ki}S2?oOr&=pMeNp zREyjVv49z_De&Jb;%TWd;<zBE=@c<>jq~JQ>bb(4a{S_Y)0kha3QxVRyA_Dn5tThi zHCi4i5kl=7(&=AEE&TS=^_?Sck<(JIu8k4eIy|3x%!j89?a2L<nI}ybR*<h`SqD*( zpkGqmkmD)5B}N|M?kM4C_d((?Y^yt7`+G6Ivwq=~pWtypx^Yb~m@N9)x+cWid~y68 zis86a7?3_IuXsM_-d`*|!L{H(v9NG`;w(e1D>^X?L~ksI^IrHWE$&_WC(0;qwg|xb zrjc17?2Ow8%!gsd&e9u`*n*)@Ksp%hVDCnbl0zryx)bE9xt}mQRIagww`{jXI!*8C z_)Sb;9GS)-XEYN8Rt`L~OSwsxcHwQpTP}oqedI&2g9nW$EXRU%YT&tL>z~iXj!zj@ zRxt~X#dY=(&PW-nbni|$iDcv5h1y^;>pjte_?(>7evod|!&??)jJF#P!!eBQ|Me3j z$mk%Sru+PNHrVCNlEx9*i6q)+pan-mKfg@FgiUu!cD}?THa*HwkS0!^o=?grtQw${ zdLMFlo=$EJ&%21bC~7CJ;_^c}+dpGLhm$>4rie1kUG-&*ad~+KLSgsf9cNn~Y*cbQ zS~1AkXPT^GKH!wtM$Tmmp6d!Jop~ZpwAQ!6*iV|^cPbAI5iF;9edM^Q@5b8mh4#Z# ziEE?t27Ez}=DR+s5em2t7i|$U@93^}FoN;LpWX(8Dt;;)>Kv}z7V}Cg9V|ZEzozm@ zwAn}^Z;e+DMNs@!v>;U&{RNANZrq>6OG&fAUGJ4J#`4%Ldv*QJlEEw|vN7PjF&vxZ z^1&E!9(%r5Kf`$%SzaHVj?Ml98DROT9bqDognSgUHSxv{xcl~aqsKN3Z3Gzf*3#rU z*eE`a&$29!yoo{@esW~FbIP?Zn3%C}TQ_6H@B47v%~22YYL68fEO8n!XCHOUD^LG% z4YNmg#0bRU<Rddrej(9=^+)GxFoGB6U9P~>{BEZD1A)ly@VR0w3=Q4s^cC#|pMb4l zDu}i$o_d^DWL|Aha(DO2GlbG!DjO_W9mEx{<n6F`+N&(^d@f_Jm};jcc)ObMs7f+U zU5b9jDpkTmy2)9KXtv|~hKhoWa<`3BoQ~`n1xeu1XI_Huo5cQ{oLjvr8e^fBO6>1E zFf~jZ3EZ%$8d84P3CbpfcDY<%cjH%#52aoNlXfDV2Hs5JW|h&J3^wU12#m~b7h)%z z^MAvnx#<H?8aX(CB}`RppXuNwPiC$R-w*kewn`k$BMVjq!PrcI{Q;Ge_5r^ux1N_7 zpgSy21y(U`-BQutzwu9Wk1o7d#jFNW{(AiyW}ew;sfk5CuF)y6we$vn)?wY@Tb}cf z)J@I@SwE3ppY>y6V}oZfj~Y9+D;@LvboLot&r4YQy^0{Snv^lt&UD&+_<{~K=}Gyz zNlSN!Ym!U<egAlnPw?Jhbgbbg;^NIn-q6?(MDLkhx47viLK1GeEcSNSr-J$4k4=In zZ_WYSx3QuKsN$TV(AivgF=Y0;LowIqt;)dcO47GsYMlBJfa<r<7M|(IP1nbW3#%9% z8>wxOnJjLx$^$hPtoix`S?)DB8U(SM_OAn5e*594)ISh`JdPzjk23glFmpe&r+4Lo z0}|Ug)Ue`nFG<3$#bu`ZXfGkN$+*~yLI;-{B{V|W-#0pA#5!fIHh1SYg4NOp+H+0Q zGZCw$Oxgd`?x(Ur=<c92Ht;c4MQ$+e`~Ou{c0S%|nD+I@HmsaH^y`0=RNZd@Q7~#; zdy34ypVN#C5FG4fP@KtN>|_vYe(FTB+YB6O?7Q+@gk&ytMab2DD7z<oj{+Xrc3kPZ z9-jx4-`JskYWG<;fFH+`hR<UTJFgOS;kc=t&)TI{^r90A+lXo>C@%V45OpDId04WT zB>cUf;d1*bnDKY!gXP&|6am>I#~!G~r1>sx7ZLg0z@sPoDC<i3yJcVBi~Ylm)=dmh zbOZ1HEy2kAXCr^nooS`lfymb`mHg<6F!r7$EKY@JRxR)PiEVeZg+K8e<Gf3IRQBTd zMXGIY1^(}?jf?i<)=f7{c#Z{M_qSx=1>dh;IYwl#93a;E5jZ6zdG#Qlo!V->wlc`f zL^lMA8oaFFK({C}TmZT?Y<$*?zdk%$2Tb<5D0)&Wih3L7SV}iv2jp#G$J4nw#Zc?) zHGd$mIx4ok_NdxCNYg?fjtirERu3VhNd|PO0TXuJ&IP5K9dTHbWLau{mKQUY2ZHJ) zA5AqEmQ!kD##Sm^NsITvyjdR@<4|gR{(3Zv$2>x7oEYQzy?A)U?IY?Ro?l8<i86v+ z%d})PE3bFMI3|k^^b`m>^JX1(y8ZvY2*JHeK+@S8X#9H~(sV@J*+)Gopsc+^9*cwn zc{$&?x~ue%%xzdxfTbeb-;5ZN5pV@?JMGuozE_m#hp3^VElsE{yY{>xU}b-nZ^Lp{ z=<yPM^9bVuDk0KK*T=3>dPXdzktV6I2c~QsC5;1{;?0}~=>%N3wnj61OCH9Fu;pt| z06cj2NqNo`I);2LGdlhCuorF@S7p&gjJ_@04bD~AOcuWqiQjDz?Bt9`!$v;D>D|}3 zcH?SJ#S@%h*2_%C9R2UJ=hIB{<B9)roh&DT>Q|9atScs%555)AXN{1G9X$R&s}!Rd zO=XxLq&sa`m){$%K<^og10t$9CAS=aUL`g+id+&4n(`Ee4{}ALp^NO%KR_sTi~9>u zK>t|TZ|>Hhr6QUCBPk3{7v<yL{9A#~dulYvQ;L$g{-Es(sk^~-Ca?Y{@Ecm3|Fb#o zC$5#IH{XF5M;hPBw4vP2?)e8@Xsl<FEa*Dl@iRqq+sk(WOTszYp5wBOqym2e2E>R{ zYb35?BMT6sAhRx8pKY3Jcv{)64C$GzSQ=TyELI$yl^w-4-CJiyO`93!tx$a1zCT$M z-FYqJz35c4aZa^O&7J6Nbkgc1pF(AVU+Je`NNxVB)%$U;kxvmTnY)lv5_MsU2i7}U z@HHt$q=3DCNtwfWgd-|3BM2nTHu0}YKB2E}l73g)>g9_lp2L(l@|90MNO9avi*8L< zDPyi+`z(|BjL1|q?xf(9yxI<nx`v(&e!)yHhOXzrff^Z=9AmF{tH3+FI{Yoqo7gMw z8z<$?cHX!P@j0^1s##yp!TKAv`O`4D5ve-{wjR6oYvZUvc4D1$^TX{Gp2<wR)x2yo zWm4Mms}+a~xtLlRMei62kL;&fW##0Ypu;}cNOBg;fZ$zth=Bb#h%L~t53k3(8jLq= zlE8tIcXVQsA$A~`(`7C(?5PhQ!ZmDlW~+3uw&!;UMY?I~>T~6cCw`z;wT85^_1=Q# z=`t?8qyr#n3;6lCv$a(Gx|uOaiZY0BoVWtG=dVL+(+Q-~E$L?T?SG)lIljuRNj+E8 zLa&i0;=EF>o<MC)+JPCx^v=%hCoY&f_rB=N?{!qg(aiIWXj3L1fWE!_RkJ;?2UZyx zCj)|X@*IUjJqW&dX&TmY<Z%rN`5rw@pG3$0qMi$fWBl4BTR)@JRH_7u)S<%bpG<>G zBfs{V)rfLE%+0Gg<7H^|PL<G`PeP0BMA(IiA8KJ|$7hqh4A;#%GWv*?Yo@-T{F@VF zhf3fjoh(#~8V@@cYIQRPsN2t0+sMun&Bq~1jL#p)7E2jeiihFF#W8m<m8jN{8OzsG zTuI3U2P0+%W#m=$tLHHuPJj~^q=R5V%;(Pej`G<@Wn>U|@kXg>v;9@N_a0uqM*m9> zTZA8W01sGExi7eI#2FWG?(;~d32rqEG&4SmPK=R8NZcAlfAQJ69oH~Ud5bp|J$&Dv zNRY)3naxPJBMGVX5*ryL?FT6>&{4j#Io;pDb@smn03kg^XB1ibYty!V%33bh`}UB} zhGtF9jryl}U}JtRN>JN>RM_V$LGaqeS<gw(e*A1R?(FbVajqYFru;FyBphkHTtl~< z)U(?ondiBEYy4--E@91$s9B{=&2;4EyL6UAhvQ|1&V-3tF!)x02oGcFEI93w`w(&^ z40=7pBYdl2cr}`a56x%FQ+uu`Z<I5DJF`fp5$_x$=KorW?$!Hs?u#*Ah0X#st=0CQ z_{GKVhD)HM=AOXvBC(2$hG_%;4dG$zjSjpd_0RXbn21}j*Ho-q4MCO}R^F{;I%woh z=X^>r`%uMv-tqAZ+Pd&}?62eG5x!983&uGyKfPYTz1@>zPba>-do{@T_I7OX@}(!q z2O{lBZ^4g{hF`?bs;hA~)aXj}7j)sA<X<ajVSk_A^%?6u7CFaZ7aq!7x;|aw?6zFg zP$2(~_r^IaN3Je0L=)CZH^OnhYk!oPRu0Xaq0JBMl7=gTIVACzuX5SQhwj{^0><RQ zz5c+u@VRHH*f7?j9tcU7iv|{a86XleV_KG%LF4kjtBthR`bi=Fw@GZ{;S`<7DAUHV zm(4#Ac>;iaji5x|IyywBW_h4RQ`0GeiH8qCv}tHScbD0GCh70vyr{G@H7cqc0@Gb& zBz{#H+wFkkD<J=SK2dF8Lvyk==vWmlUBmeUnFMXa9Kh)L5zlpa&{RtJ%%9~<Y1~V& z`2!^*@=EpfdenUN`LaG@2EdeR7~VTtKq{uw_L52D2<%mO=M_wYBV1zMiy^DXE>fpq z+kTR{r~QZ^=1KjOn6Y6c-U-t$g?~c}HuRCl^WJgo(l%%_rSX5KF0*flqF%ox^4Da> znMQe*5Pp}f|A7zexu(b05+C~KBiFU<)IYDpRJ8~^=T>hw&ckE`NkU;aqfIrgR=H|S zTnCm9+97A2y9Zi3@g7b`i9wU*As*yf#+-9e<W}qYQcIG<oF(bxD`%L>CC6l^M>c=Q zOjmq3jaPB5m@FdaZJO7M8=DlS{Xn481VU?~C;askLhsD8=hGqYn7K2t6eVwWQI!UB z%LCx%bbn_X4JR<AKXCSb%^6r*-Cr%rt3JI~qsQF#7wR8N{?vIuCg?#rG|B6o7|kTB z<=c;L@m0p8Wd?5G&$7G8lscC3Rt_R-9o}N`W4xI6+<9iwlxSrb3j8|doYEmnW#}F& zrb{!~$5qc}45=Qm4u{jAG@E_y#`u5elOqyT#|S;or=*hN(>3sXq5ukVheM!B4QvIe z;~;lVOYX*0-DioAhV`w%GHQei;j&0_G4~h#D#(b=9nIe(Q?N*_hk=~dpvS0wAEBe< z!Fp_6$Ncct5L>D391kqw*LLbl>R9q0$Vt=`FtO}%HRAJfD0_<TkfgYJeLe}!Ai1qC z<fYVtnefI2l<%_s-|b?xptIDokVrPIgymoJH;KFrPEKLU(qXFon3!NWSpvY-;p?Z} zo3hh1IvT$o%1f0&lczQ~h<@%o%4IFTzADPtvZxd%E!@5|3=fT2F<L`5Cb^{WQVJdb zrzFxbh#a!pup7B;dZz9t-t>AbS#StgD^emN)ze?V)u00(g6Nh#WA_sU6G!jEmgQ4! z*u87zhrLw7vrZp1HT>28PGOQa^F_ifd^6y37`|z+arGYv7S-xp2<L?bu=}ZypH?$O zdU|^<zJ>PlvM9k8Nl-Ztjq9arjHJ1i>BU!LCqHQ)nh9YXE!w`;oU0R@dEqlw)O_}A zCTxm#tmT*-o(9x}#en*gF}~H=F<Q!+y|_^7U^?TD)mq9-ufqw(LyH)J*XN2|XHGU* z?8on{83z0ZYFc}y4ijoSb0MG5u?OGK7ptVZk(&pW-^oM8w#~<RrZ=t^?I%f%)(yu2 zJE~A#JiN>u^*4UQXDwvKq2E@JTa5*SDdM!-4K0QcZBw;Vk1m$U<BYaf8jN06!6ah~ zy&C2rD`a<pH-<oyKzzLH=*4+tQ%Seh7YtO=rU!1~!#5MWKo?zcVCbUI_ek5>mO>?= z!)9a~YP#6l=I)I$mi62_VT+&}8&}+IE`!oi&wuKp2v!-kJS;Q1P(6g(-uML)KDUkA z>a+$ZBY&Wqito*Y>nH!k(f&*G$Z)4*Yf2$eQ*K^&1?_?Qlt{U0%f@p-kn?*WRSAiI z>I;Wh`K)9rH?V(i16e=HwZoXNB#lz&@(UT@N7&X=wBCyYwmbh&Y!S*!(Bw_95$i>S z=R>4f_vXEDX>i?H1y>g;3WB3$h3P0?O@JRqIS*>Tz%QQT<|q-b+^(mO&`D+<M~`b; zxWM+UC}$plZd-Kiii|pX?Vl`7P4nqa3z1-#$obeQa7W^HgPv_a(L1RC86LGWDWrUR zEAn~bV`#VhxH76Wy5VsZnfT(+4nwq-9JFm_Oh-T~oI97tVZAYI>?5wqbNEZfgxWT9 zNLO@|^fAk-@Xu&*9=U~$&97RJ0592^8a@vRO;DwXSnHbq2f2`q4*}ChKzc!5>{%5( zWp`)}81JU-Y&aw#wBx&w)i)DL`5OKslzJ>;{k5wbYv|>5TlUg7k%jT;ggx^q%4IbF z!J)STH~i7L`9diBeTnwMK9W4uuHP6R!W<rRJ-qHZIEWcp*PHPtD6NH0u5<bCJD#y~ zsmkdO6q|W|DR?qVywOkSx?;7RUo*ZI`OI27CN^JYbq0!-sZTGAV&_51O(HrRUK!5& zJKl`KgP0U6B6W_o$1nw=J8_sW@!8Y7y}A*uLpImY{BJW4Q+N*R8+(AOI8?DC>BoCs z3TCk#J2Gk6*)pQ=fSOLXUjqd>BgDR_T^jo{<k03ER4CP#QSMp2c-~J|j(o6H@kl)L zz+0N$gd=~T;*%KbcgO=iUGcU4(J$og_U|9DAU&aQ;>Tx9;G47@z<pXJ9U5R<=)JwX z;=Raa1V{)VXLU-DjB%6SJGUAi{`kBf%Wri_+N=^C6D|X{Mn=hP!0E-A3>fA^S&pAk z^XMxZwl)nDJEarWoqT<A{MrHNR;aanF9dzsWVOAI5-)kIGtoySo|2y32T^>Efjy;W zyvq+WB1rgGUjF;7u>Fa_POhOY8{LJMb~ck10&8xBTZh6ewdYz?KE4*URH<xkv#o%u zF?Dyc=!D;Mdud93y!r>Sy0P^A09n+znaQJ$32V2AiVS~m1SRUZltP|^=~5w-RPlGO zSU26_d5~^s?Alx`Bfx6AA$DBWO~0g!i556}{z8=Ddv<?Db7mF>u}AG(=KYcy#RDuV z#Gt24*PlpN@V_*c5oi+e<94F?s!Q{bTdo~$S1?NjrKqtHSZy-@i)}_8(A}iW)kRTy z5+wUl`yPc}QS%=N#5Q+pZ&WTYxwb58k!DJT`SU3DGV@25tKC!|-LcDBnaU-Wdskcl zl$b$f6ueUqZuD=nrm2@<_a`4blC|btmJ-T=_&hrwiOpcNbg??7e6P{5k?%uznp~&! z<rXt462cDDr?JiUH45P6@{a}K%7t4jg?pLDngFH0nDAXjPTlH8_e_%aJm{y!jLV4E zFl+exw{n#rv1G#+H15uREt<K{;_rB;UEqTu3al;J$(RO*vbu?k<uj)Sn?YFfCiD($ zElZyFj0wi*J=d;*d6+iIQi+J6j^O%XTHuVgr-<y6BX2>ZTHx-0ZLmPQgp@bESC_ij zw4Wru9@+Q<!8tpO0H^q(=@TjpwQeV7?Y;4SlQ@3a^K2PSPkMbm!=mxMJ9egbp>Yd1 zhjwi3^d@ntS)F(*7~fFcW<5mGNR@e2jJCGjptBk?^!N-UB|c>u&@->LbX}#dV>8Vz zaNQ!%8(Ub--Xo+cBL4SQLA8qy(x(R6A1C?s`wij;MpFO1L!1Bd^uyoq!t}>4@RiQz z)t+>X_0TUV<)`JVeRb$Py9#4X9RHaqjr-l6`!}5tnhC!2_w1hnBD`cyzmgLQcHI+4 z$h)=y2F<B_1RT=pc);Vqud5(I=k`jn@sTpNq5KQiwJEU?6L5IGZ$(Fh1q2Y04lmUJ zcLr`{`oa#OE?F0QJu%C?Uu3q#$)pVmc9^pfj)ZTD=9nis_+-K{&WF3B$@Kx<?cjFF zfiYH~k@Z~d8U{4BVysNxo_dCSyw!%9Cyw5ZmX8PcNh8)?N~H4*p{AYBtDv9z*u`AW zcge{@@;5{M$1z}Dz1-P6(Y82&X_PFQHtabGrnim7%YYV8i_kM#qLCtKE4-&5YniLx z>56I4of(Nc3fN}G;yAN$s$A!0Z8Mn!uajD~$-|m8X_gYxBdrz4iJ-?$qQx!nihn_Q zwfizS;OMeTyP3SA9tBOC8|9ajc+t(jnmD1}G>VGy8myP_^|}{VTtl=S#};oA)$V~p z3YEHTxoz0;CVl2KmOoJA)<-nIbV;fwZ}nN0Zs6^mZxIE1d)ck%#fR@G$tH#*_Ffh; z>AXnXPfS&?9|AhSDUA`3gvo5D-LiO*MQ;_(ma@|9Afwysh8B<AZim>%#$Vu7@|L5| ztLWCczdOEh^(3=D_md7F#VhrxUL%m$h9b3x;RJJujW~|_PamcI>A&Gp%c_HwC3KrY zN@SJhjHATC9bH-Uyhc+l4ITX%1cs9T-43qy<eogU8o5xheWHe*VgIWhZAx8P2^=9h zz6)-vV9IoW*-8)W1lfC|2R2_=d;b(4;B0~5f{&tCi(m;&uhx7olGv6C#EjLI0N&8C z{SU`>s2!jTv>?}#Q};{idwu35*E(|B?1jUWa^Y~6$1qvyb7bAWy=tK@l$ge2GCMCK zr4msp)V^OcCY*MMAb~Wum1&F)nP%Vw`LQGUGwoE!|B7`96Uy((7$)+MRQHqgV|fp; zT0~=X!r2&n?J-1Hz-(1{H>O#Y7lF)%X;_>Qz!^dSF2c~FB9B%O6anwYD)3H+A@LDF zm0LUXadNbS3`WH*h7S=fo!J3qyjar$<qzbLUq2?{tOK7wXLAGSO7h!RnR#NXlddAD zZ)AZpHhW}GqM<c>FJ0?VeXB}0O!7#@TDn$`QZ34enhf}^78{I~j$}`wS4#&E&-fq% zyHjHl?RKEI#|;dIkPc%~I}EWb#U*y4BX_KqT)~*b!c_7Tq&V+FyxId5{xcfxi3%Qd zoExcz9Xky-{~M);<!-V$PBdSrGvR1SiF?1BR!)%R{DGDiY%>O1@y?l+w?dK??RSF8 z_CN&kU0=(P<)U}F8vc-9x-3f?k`*4<tf5Zp3^FY2_?ax)fjr=eYA=ezrEzx-Zayo4 zAWo@t{TKAmXx>)!hTqa<d8KMP6nJ=RlwL8JUTp^iU-6xii}lrR+7G9Zb3*k~I7nVP z9E>gaKK{?qjolDYo*Xt`OAaqy#@7oLTNvZL5#Z2{?SaMf-c6&U!ju=&0Mhd^WX-&w zq+>LV-lIDnt3^}o7yDYP8Q7IN*lu}8wbK??)9kYEpHZ<lxcPttt}cJOeSq8;Z~OWy z_Rsl8Di35q*m31nl6kip{6Sv(-mE#1xgMC!4qF$-DqY%y=gW*!m=P67iPqtV1Jsd_ zwkdN2v0k#$sgD@wovI#;GBGxy7LtOXJ=SLx_IZ2uk%dcdU7f<hhqea<8T)LUhj4#` zq_ErJk4gj;Qbym34WYJ^52B0{7y#un$y-1AXg;}RZ08T;BEh1%7#|?(j<>lQqUh{1 zuK;cMQs}a-89|TL^xBCcm);u6<~n}u(4Mg&AEjy+_Y<{~CQf?%LNs#Xv^x}rpDpyU z^|J%k3Pfvn13!h#^&q$-Kx{g4^2SS&rMSpVCx432zDQF&yTgiSM0`coNfTHErq9aP zjmap}HM^IXF^j9yB^d!)erF@tT4#iZm|cH5!;3UdcjM3MaJdvBqZQES@lwPFFC(tN zjERSDs>rVE=BWhM=F{M!!2x^4gD65r;OiZHJt@R`XEFn?=pc;${T*cA&RILo=h4jH zo~U*;IR6pLuZ!qwCKnG5MJuYvrmMS3fX{@K=Mu9jwVBZ-v;VnC=#^U#{<5277sGNR z?jx>QMZ$g}GBwfw+zITy@~6#=k2j;dvq7;hJ(G@EM_6gd$i80(&nW+4!?!l{6K~yL zQ7w4kvwqbcUP9-2kj`l))t!H&JxpP71b3dgKdvE6z8CV@>1PLVtb9J?t!QtDW7uG9 z<u8GuYNrLt1idH|gRL83?ZOP#bab@+cN<j^_qvfc^jjJhZ!fhQX~C;#aI*I%k%Yy$ z8@RSvLr#n-jozbToG)CElKxiEKB#m5d6@=9Y?d9ZT;lDdzIFhd7z+}8>!XZ!$<zts zd?T6tyoTHOlaY*_(XA>^$l?uXJX3b0!>R4(%+GXdnyzxL1*3=CCi}su0Nqqp5`bh< zi#A;SC!H=|xM}tRB@%Bfx!w&y5z+OE7PXiWc*MmW9igRfSjxjX4J<FL7@)Eb1ebkp z){;ZC=m4&V(;YC^_Ov3rIr|&z`uAKqH%uN&(>J~jFMI8G^&ztR4^-ftVNBK?2)Op} zc@;U$`uCO%kKclCo(dQ}&3b@NP~?mc)q#D3vl2ho0Wg?U%c7)jNqrQ5$5PVn6hPw~ za0<H*6pZoIA1ZMgq44$w(0CyuUkiDO{W!>X+0Oj~8BNl)A9fACRK~qNoI0JQ<n7SS zYC#A)kJwOMEZcdMrZ=;HGNqgm*49rLMS_3A;){?MKC5apw(KcxrkSS3eE=B&RQvB_ z8FM5E>;a{g`ISZb?1DU?z02IA07DtIf1>k&Kp=u+jPSposHTx_R^am7LU$}rZM{Wc zL^X5gIvVwGThEZMWKU~H=^M!|%wx1&xPUm1#%9+rNTw_H@sd(r>kaYTU{E^8A5JL- z7h7rP?N}0<$)heGhT!-^_6MWu!1-U}W$C2cGhZ+x_>SBsS@a~;vf>Alns`VYWpq35 zWFIw^c~A)zjU|iMtqxJNox*VqYU~$`5v<=ZHH3up<fUY9<i)Wn-Qcymw4)e3AnmQ| zJf>xAcvfP{LYB?mD2;F5%m1~_1Uc~FAbq298Q7Kr4`T6pN*#SJbh#P1=dC^AVS<1+ zoa>?OF+w}0rUoeesx;*+wALAnY$p;JkNH%qt7pD}ViHUpru?RZ=f5Ni4^O!kw<`Y1 zqn;sl+-qh~BLgq-%zCw4G&`lPTWjb@$viMZC8nJ}Ep8?ubb<_=K^*O|*aqag?Lvny z{nRZ_Y6I$aApraw0_zW;v(2B<1C7%5vAJ+uAYY?C{FN{>`dCj<2~(o|&l#ZFF#dsb zf`XL}j@m*)JvrqFu)7}u_b7E|$MI6`+L;D?!CEqQZ?Y5ZUOO9vZ%IYz@e|xRf^Ja- z5@?uTSw$CUZ<08#7fuaR0D9PQmdCP!S?up?)3ro_Mtw@}JXcn%GT`!pyZ6QL+Br_& z2FSHL$lw$-Qa^ib4YZ%y+M>@2yfCv!qeIl12(LS)9Hy#|x^oF#H^xCv_o1w(p-RKC zM>k}aj4Zm{sI3x(-OJcwC#oHn-~AiQ8txbBH8cF~CVvMabf=r>{c2jt&1KU_pub;L zWfxfl&L<Y+l!J?FzU7&qd0vZv>$*l>P1mKoW2zVT;V@d_e>?FuV1Z0R$Iu;;$9&!I z^$Qp7HPdMSW#0$A+-tnyK{|V#I_CX0wDiLSc<rl(vNTB!(f7@Hwx#76h+H@AKQQD9 zc{g8Zam|85UR!)zX)WpGf&^!fG5hObI=sbzGu5z0!g>rbPAb>`f!>Q9V`XIJ6-Onq zI43>}MoK%FS~oGo*m*ipY#2XFZUSye#w@=Yg%~dukIGmXO#0W#pjj!ojyZG>1ltlS z2Rlrn*0b6g^3&{uFIf5Yd&30Eavuy$WB6TO1WC92PO5&0L>dtPN_dFe$>Zxn-#7A> z$QSpYhK0HdUZ_N=2~Hoy{J>z3>>$WxH-?>=njke-o4-CImN7f)K|J|(W9><FvVD?y zP!j@U!hURZP;f8<m>xzL$Vo{`3{IVuTgAM|aw7afZbL3zN4wH#8v3FvqUH#Jk)qOg zE6_f9uAh47xPLWFzuJXr-WSc+%uYvK?3BGcn$_sFmOJiP4!@KJh^*2BPT3o_0SUx> z^dh*;{@8w%TBsQL(Fj^(R@~?q9EVYEf`Y%QjcD{H7~_QIv(4!SY1Y;OK_p!gDI8oL zdYd~y9&d6pMmoy>hK-!H6~FZL?-iGR$WaNPsh;)q3WNdP4-ZpB_x>s-O5hNq9j>Ow z2@0uC?z<}TSn!(Bz_ZncJ$16&dB|bkf@fERo1O!KmqQx9xtsRagEKt6&bc5PCR#&k zs_mn8{)+vE(%G%EY{<pGuLaB(D#Gao(>PS%i5*EB$iGFFns3@DBN@a@ti)sQPR}QY z+ycVG;D;AWL|U!sRg`;rPv<QhraJcc_o4UwRXTaz!R{N>;#6PK%YXZzR7P0RTd?zD z*PW+x(soS5Y~$*@u+5f14Rey-Rne{%$6vZP3_Yn+@%~3IWr$LDT>b|Y?TqU3z*gw_ zb>xP_frsppHCatQ8Wsfd*o&y7H4;X4+={cSagErr{9!2K74-~t%f=<=(b8+uO}x0& z3}Q%AKg}uiiZ%#Cz!~*tUq|UF-oT&)W%GBQc>3jv37)a>QW0?WIXs*Af;xF`pekIc zUF9F!i4P2S>k~NQhYd+s4F5@O{ays>zUs&0@E;!wTEu)lWbt|$vo3boQ~wrRak$z@ z>{!J&$~S*824<Zn7q2(@g0U7(ei|mOCPi-fEd?jH^-6y>BWq6ndmg({6fZsxvc>HO ztd2ZvW<G_4uN$!?xQs5R{U1eV8VJ?;$MG}!V2m-gu^)`(mh5X;&WTXMR4RoMQ<g*| zOQ=~~Mz*npv`yNiZbg#iipnz5GLo{S#Zr?{R7mOnf9|W^^@8J^=lT7<-_M7KQ<fnz zla(2i%AJP9F8WWOza{Eql}oync-qHFmUq5;%rUm|`-ip!Q0XL>lh&J9US_$*4u9p# z9+w?~Vqf_)Zj%($WzR?)IJ*qGX1F2GI^Lyig@$DeMyu$Iu<7Dzu=rjP+l18}5fmS) zr3$?pOiednIIv@^GUMcOl`|_$80s)Sl7#w;dR~XUgSDPT&Z4<|GKCwz=d|c_^<TF| z;q{*Pk^G>za}$%i1IsLCYPdh1&RpZe3TUBZrwhHev*bat{hswd+PEYA&^iUX>2pju z;=*k<fJ15Ub-uii%}|(g$~%nWpZm110`vT)zoWJLG{GcaP2s=Z>{CbfTN?kYqyKD; zodk?V2R9F8XqGjcKHPvB4p0egol=wT`K=v52EJaK+d)G+y$mkdp+3XYS1Vwu-UnR} z_QK9FOEeX~B%-W-6)-;l)c>D&a#F_~dks<UO{=9mS=mEz7k*0+gBk+Qk@`2jm~iJU z(4^&Kg@=E`7Xr8Y(<f%Zx8-!c-Aq5G_@0MJ3}0Qn&D8ITzZ~unK^UUDLV?Gpge2zN zVVNeVg15aJj8A)71<8$n_^<4%rp;PUT(N*|jyG;fLd{E3|COv4-<^hGG&)yTnPIP_ zY+_P3pIp<6cc1^v){e(57Hhy(5Pvw1t-?>T0Nr%nlW8j-$u@uH*f-ShQfGmQj)PD? z<29^F=EwTeh|IQYcW41IQp4^(f5@S1+U%hZ3(7PvDA&L<3eUG>4dO1y7KU&P#jD=C z<KwzpSb7f~sh0iF`q+clvIj|?PH`oW9neb`PXimWs#g5%84i8p?|F2ULqp9uJcIV+ zZZE-MEJH19l7|dD8vzIfHSnr>ma74lLx%Yq<F7U%WocfH@IbLrq5N@Kr+ix%=d~oA zz^%k%(Qn-0L7iULYrrs0={yAwOc)<|DzFi*-rqz-!Aci7Bup*+fgag9JSrw9g#t2} z&PJaZJ{DCv@uf*7t^B2Ll~VWpbg;SNKH7JAd_S-{>*Y?p#|xt#G)Gj^zmhwytW!BZ z$KAP@p*~vd>aLPHB(UCW1#AG^GS3n0guvXdNzTY!HKm$-<o82mWpaU>veGGR;FeJC ze|`a4z`Lijo&Y8b!>VTvBX*k?Cs=<X>=QiD<K&qSUrq=Ej8gXgA|j#dd(38C<2fBY zI(|lil^WR~uZ_<4%;$iV#F5^4l$qIi*%oO~XUkIAnR7o-Pd$q37VsPwdV~KJG5V{p zA6GCH04U#dMukOGiHtbjif|YyaxFDnn&kOhWCelGfKGt;>JQYQOaQR;>r-05dOc3% zMzbhT4>)Kmq}I-dfxpgq_9ZJibECf0vQxMsou$WB{09ql_q=whLkjilqhk0L(eBM8 zG{mxVKbgt#34SCm;9qF0#An*1yolh~oWH(-5}~!*pXm7-S~ZdY++i}Ha59lykyWC? zY%Uz<)LTUXW=p$zJm4SqsXa0Z^9MJwr>-WDRUGOE+%_1@(7CQTKIzDS1U`RZ*oQ^> zUQtUJUjS_cOqY@gJ?;vKxQ=BP2eY=hTZGdL!LrbDlH2CHQK8{qQR$<$7q!%Xik0ap z!o3&aCnb)rdWoSA5>Uo*uhwc=C`#c6T0=*~o7c(^W?jvTWc8nZWl>U(EXzXJ2hn`R zA+|3_IVlf=M}_$&@Zne9&&2mezFAYe#?T+;5mKHm_Fy5H^ro)28NqtkCeYio_WM<0 z?>DOVv1Lq2O&Kh>tov$-`Zr`jYvXI!&t)hzs|um|lw_g3r+K5S5Cv7B==8@Z1;P*M z3;Y{m$cm(@26`{!F8~&XHx*}7EiVwW5BSRvSLym|1aw!ERg``O6QG5~Zz!H&_2mcZ zMjzDJ-VY5n6p!-|af>-yxoeY;#QB95nA_IGM(l^J5-)*utNaCjy8A@r1<={GZz}kX z#^Rb@pg|S8?jl+lJyO0iKzeL)@!N(ng<sQz`{EolMOO4w?>{VH{%Vira*n;4Sp*}) zEu=}l!yorY@>K8FBM|1rdfj@dNqqmn=UPZB)AQofk8Gu!Tg;<fqXO%v7Vc^;puVZ| zCE}jg;^y>M8sS&^izZp8#&SE<`Ek_hAL!oEItxzv`f%j6WI=O^kHxi_+5Q$m1Fl=Z z*YR}Y&cBIH|Ikc0W;=bba>i!Q7k-HbK6OKZLann^n0zP9gl&G6y;h2hh-?kv-?~#B zxP@n=hfzmYMSC!!sFR(T>n6mR*+37EvWPOPP#rH~ys=Nxi2r&kxLkH+JPsV(oZk#2 zgQ?CFZz+qA>Hne^`}C=XfR11lnn9jmZ^gfL{n(F%zav<CrXOuAtOU@KQ{)VW<5i3K zK}hmDZ$cOfgQg-vV++L^iXa=)h$Z~U6NY#Ec^ARU3@Aq72u>2?mg)}^%Or~xZv@b^ za4h=_D=e;y_Li-LPmM!s9ZtJru(^DTQ_;K{yw<p{hZGapM9msH+Qn8}wLRXH73zEW za+f<}?xKdjGTqU|LUWGgaI!EDFhGKPD3R7p5Z7h+ZKbTsJ4o3ct;?CTK_PHG*d)>v zRR(OWcvee2*l&9-3q?FIb2qBg4{cFC`k%U7@Eb-ikAp2u_o{IhsR2D@OGiE87#*av z8jc^<lybw)7yBtID7Euu7(k5m;Krz!`ayr+EnC!gBZ(rmE)2?xtC!k*@k(HT`uFMi z^2icKxy?Md`g0>HaXL=jaltI(9FCDomCerf5y+C(wjLn6%mxa;0_}#rJJ1EV?R6Nz z$KzIvrIs+%la#<?QBAlfRqCD#SxI_AbQ&V$byhLY&2PGqR4beI{>@Ul5c&`=b_@r* zsB;FHzF$mMv&q<7VkU3s$zJ@#+IO$~iI-{tld>WI^|fjlTj$1PFgak*1L7iE-PN<j zF;a`Jl|9O2(w_#PLgOG(UO*3b)8~Fd)MG{o4R~p?9F|1SshhPwzvE+lJr2ZNf@Jm( zFBWkXpoqjKkhZ|?#QBP$nImxg@@^lA@tdGXD?aUi(AA$Jhobbx&DU94)V~{JxTC=X zF90ymwY^mXxC?wf=|m7`!mkbD#y}=1@!;<WZoL%@w5a;p!hMB0ru?I4$<|)yib!f> z0pqKhWYrbVH8sZo?!f5)b_j4`e=|CH>?f>oIg+eeJmg(aN$C<s%L9UWh2T+z$XlqN zx0&bb7=Hv#F16Bz;wr)tl*eULl0}1BCx_nS&wAzrmPth9CsLr;meD?paCYm7fNB{X z`&cX6v6zD<;LZ*L=MtpOmoz~x3r%=BX*zKZX*@EqKaUm?PZ~Kv!wgf$F5N}5!{g^x zu&iHqW<+oRnnP)%7T?(Ja@~+vc0*utv~NqL43yY?{Q<Q^#mG&hq4)TB3At-z=NT5# z-VqFH;u&K^o|6QEJe$6eSJKAs8fd~rD+8ol!+eFy0(yJzuR8F|8r*t?fQ0$jP}B=D zg%jQEoktYoJVryF*r9Ge{sEgo>yzE*@9lx&qMses^#M=_3pqimLai(u7p~(r#k16& zsMT@v6)5U8f<D!6!5JD;_v4Xdk*1krQos&~cp!Uxg<&iBro<j<UiyI|Y{LFmyQ(ZE zRFcRh`BR}H_;kb?zc$q3{r$^aT(RXR&=5_l?ybfAx)v|h%(Q$l$=`U`-o*0YtFX0z zS&9>VTP>1dhEiKuTzrm9B5LM~90n>D?uD%cwn8`2>?f$L*r?}hyTB%fjz9TV=oF%T zTxM*fY!i?iPuV4*(Hg$2SE$0U`rdSwVLtQT*0=7s>;-j~zaberTNHU&2UK$-l6@d7 zGccQWS!y3Krcoza-*HtB@;dtx<oQQNDp`n-lKMARHvWTC8jVrrGSv52gvZDmu~^IA zQGfQ}-)U+xqNey5g+~owX3Un$CR9wvRH=X5)c*)S>Xq~Zq4=3YKfuN{-{*E7Yu_sG zej%O83TMorNE8Tk{<<mzP5lswcQnnXy#gqUx>w;luoT_GP^qQ4TVFT6kx{7F=MNC{ zkr`w$#jSKkr%ETFweeqja4@+!T`AiGe<%P;iLv6|mdj$L?oUhSj*A|anTEdIRb}}B z00@Xq<)||1xGk=mpgBK|CBv?D<;eYxMU7?Frqk(nOl(_9d!$@5s%6Sgk)eQ%*Q!1E zl^^;vq;WMk{|LS#a`26f`wI(h`jh@DiY$UYn0)vnAgQiaL*2)}x@X`fl;@Wvp?`o; zgYNeiu>C6T?8QT&^4f%jILbsl%FmQ9xg*?>Xq;_ZI*6D3wW}VjAVuf^h!V?V?b{NS z5%EmIZxP1aZm}OLqfU|p#Wu-5uD4b?SZ!zcW~Zxglb?k-$VL-C=&C1bWGH(X{kR79 z(ObYY(*_U%_Rl8Jyk>BE!L;pbDedsX;&*Z+a20mxTOd<1gK{<lPS95?_>}0_cK(iZ zA>-F$+5NS6OKcgMZ54p_5{>YF2v6(IiXou<OqT2*V3Y4E&h=xhxPBI#_(89OhsmbJ z;z%;4JIkL=^b1^Pi#Ff6GYm|06WbxU4I6al4Qos2q6B2{HSqqE+{f8zHC0RSS)^e? zP*9D9x|$g#D+cmI>cvc7KXLGdm?}GbZb51rn!?_ADB@feLf`HBOLyrodbXfs%~~1p zJ*)ji6gLvMARt9MP8axV%`#?Tb}V_d2KvYgWp)OSTNh-bd!^%`nX{lYW9uTYNJ+cd zI!GjNqw}U%UQE}dauXBwuDx$M@VU*k$4^$13PX~~>QUVBfcb7V=6_K54VNm#l5=@1 z2D>d8u3UdiGuj@l$+vK7HKBo%E{DP_Uqz-M(Qo#L@TpX{fC!#f*CMv-fRM!~cKwX& z#<p=BUI9N~Tl~J{&R@z@hqmeG!I0%Dhs^X1&}b0V0k8>_ExYfJ;-h%UWtTwXp;+vI z<xg>E`hMsL=&2wPkNH{mBu#?f27*IlTlB@4T;YccQr^S3g<y$4uHay66-w(@sg;{x z#sJPVN#~v4<Sv?dZep7Td_VJOuRA83(CV)#i1yQ|qHr|9PR=64V+m$73;(LG(tU~G zmGqz~=(?z*A|74{1b-X_-}HB#`hmzD8+a#rTNB+b8fdi|<gcEhSyx?df_36_(<RJ& z_rebzRmQ>;EO9&N^!^!Mrm@17UMPSYc5x?9EcYw^{3~~j7nW5c*tGpkP@}rFSVL4Q zwoShs%nBfIX1<}%Jd?6P-nV^hV@?UgI7Vmo3&YxoVZlNK({dR+U83xGrj(bO+bHTK zkS1nsAvoXZXx>5b<B9bdlm_#2W&RAFFR7ta1FzgZykgRJk^?N6D5BO$fjM&YLGRb1 zfZiN%y3rn>s{4L)hp=mW4x8Aysm*t<{zEftD8;W|tdxyVO1XT72D~6^ngwTsI1RMf z3!yPyY}UpVLt4OcdwcW!#}S;)lIQmcvW$GbKTb0s8Z4emm2L8b+k8h)sF5*2;7<JD z@+vw2ht!<XUCUuM`_Q20hnr;M7biQV(DIdk7Lal6;ou{1(T-2kuM(&}!{ObyArI%3 z8X203`~qzo&=k?K)Oj6D7$-_}M`><P52_R6+iuAh$%w~aC>F`}l(ca`&+gz6__TMy z-ke9W%((d=FsEy-{U9~XUiEi}1gDz34DO!oiek%!t;A9*U?k1={HcZ_JoiZ+s#S34 zk?axQTl}Ez&{rsRcb6*J1TmpRFzD0nGXI0*qgI1PyLOfAPIV#?6D7}re>HvX#r~p0 zYUoxY@)=(->@Rcm2hw#QaJC=+r{n3_EKujG8y>BK!cZ%|s{wPkm%!6Mx`*T#Rn!I| z(M2+c45l~^<1)p5mH4r<b-&@$aXsfguYnnJdNp&Cyi;{;mrscv<_L7&9}w<x+DB?6 z#5_D^gL_ry@t#O(g<si^5TjmZN||*FB98$6%m{X|y_gKXuHj5#xQ>4Ow@KbFFI+rt zPfmw$)8#E`*KJWI+r#-uAfA!iX=~rdRuOiK4;`>YfY4S{q8#;6X)O;mFd)30ZX${r zQTwh&Fbke}>|~E*7I_t(5Qe(h=fd~zEQdXT0<*71voMXU+q&-1zVlaJh~h(6$MC!% zHW7o>Si_%vm7vDyT*D_dQTJ3v(+)G^TGr8!1Mg138wJOhbmI~YnGl|!kR*nm_`c$T znNj{bUpq2{U$?7@8Ap3tg}P-&e4Au>G3uT9|GD?3y6#J~+)_<V`IjBC<`w;E797U& zvnD$Fa(lla!Y;a&_5KAU@){_5w(jUm6IywoC$o|IwT^HcVMOY}#UH;dKIE>!dGY){ zk!fG|=3xTW-C`1>L&lUf<_oais`g8w3y=2v3WkX3ZDAmdZ<0rg#>5e@eOsDjBCKW? z5Kao{#&^vjr)!Q#Gyy68_^uApMuAi1QZz5fB`jzDQ!h@47hD=7{;}8?0p#vSG^Q)5 z$ysI?<tSK+rab53b8!<YigRdrV!iR(%VJ|t%rhc``~K@xU$Hug(SSOfZuZ<=DQj$` zVx>b1jZgcR6&gRj@1jjK-&@zCA95bVuCGw6#dci+$cBBlM((2S!)_<)QFwvO<7Hny zOJ-)-B<bO;TO$_2(uD@|(>EtD*;isp(dX+GZ#2V}M57NQtPq{Xb$Y~hMlmi}xF@@! zc$sFP-eQa7?pT%_mh#;=gEnsyG#G2zj!bc<4-o-2Ff&RSmwDwlv^Qt05fm50hBbf= z=S4v^{?3!*@@K}|!H*g^@48-7-xH1wrVArq`kKkXWzH=hN5IPn8~8dZnx?S%<B=$u z-laL4U$6)K(Fh#rG3^jr(nN6!l6Y=IcKPhVCEJl{GT2k_2Y`aqtfpR<O9WF`w=nbr zpAD%lx3EY8C_<{$P?MvJ@Y!*Fe*Vyb$sL6FmZWrvpMm%eup2j*i_U&j)TZq-9N5&t z+RhNQu(To>zj-(TJ-IweBu9y#@AKEhZSVpR3KQqczkZ;`rh;2HJ6M}iay-lY2^Wvv z%c_>sI(y|YjB5)Gh~j<Z@>x+*=9+S5izF;L8O1GV9UyBpYSm1$HTIsV7@_TRYG*S^ zU(s7hoe|V33;f<b5RY|qC+;r>MslaPOEWC|nOw~hjpT|{k1EBlL85}?@S5S_?a0>) z8hJ^`>5Y~a1W6=7V2IBzguX$EMphJd37EQF+JSwaktPg}!mB?!q>8BhVFeR3#*8Q; ztL7rS{S(Xyas_Bg>irLzcd>bxK<g8ZeOnC&?jddFLBfD!?KIYwU4LEuB`VUSPs#27 zi5!2pIed<f4Fbv<rNa0JU}#WdM4~^J(q~e=&V#lX_UC*V*n1FHFn7;!)c5{FY@r1> zI_Ww;Ah!$S;{V!?2Gw4)g0%kb0{7Q)B`0o^jQC&5$){N}yjn-sh7{c<e5>Nfmh(sm z;PAZyBUAc{qri`p4;Sy4<S_DmKMVoh!=lco?667*`?29Ze{}+?zq0tJlq<SXvs&bS z?%<7Gz~$YE4wBa5uu~j3UjD>GV7Q0+e}UbJARa_@NqCG6>Rxe5iN?XtH-HYFOq2qX zXn)ZbOBs1%h|dIUHj&q!)1Kc)@c#lh$zFigpybW=v8hbAio2DNR`S?uvEsv@FW|N@ zT)7p<Y}9=tt|i=xO}=nj)X}IY_A;S-EY>V1u`$jUeuHfB3~_%gY5uFpiif}5MV#sE zKVK?kwJJuv;f|qiv(;Gd+Z{)>aXE7>%dGY4K<Ns)+m56eyB}oLM{9aoviue3?`y>k z0E;jU`lX17@cBI2drkhjHjNgidPd^AvGcB4KS9`b%hj1?_}!JlvFD?c91&^lVWc%8 zE9#sw-77x1z)YaFkT~?7v?i;awSzDUi|=-@O!0}Yx3lFPI`w5`q63Is8_v)iG3^bV z_;VcI!SGH<zKO&D7`VvAN|{F)P5`?_Hrcy#=YRD+Mq|j{1t~ZFf6y7AtnMD3<hulI zRMLNs?RXaHqK6lHCzggUz^^^i)L#R)G?r4J`v7nA<Znq>$LyK{fNiFH2d%jrN``+r z4bZ)Z58Oe|XGLBGkdU;H)?nclsyfOsZ$tyeYEWbBz`uz#$XC5)9;GkXgk`EzrvQ2^ zw$(;QrF19}R<CkRpsfpp1GW~7U_<=XC89F8|9_ARS<NQf`m5N|_*z;7SImp}77yxx z&m#BdNuo2YQ`9uh2)AIZosMlf_CUTp{u26K${Fn_PfLa!3fpgqkU|CJL892rJ<mgI zacfkeh^$~?ScmS2muP%C$kpOp*5gKy|LV4Sp*o1?T6KKZEukbnzc30ilRnz_TY<+H zv)t;^Ec!r%-{S+j0e~hHG5&PZpJ+fbb#{^3$7--dx%tMMiBdBe(;vU!kX-iNT~&7a zA-`483Qn4zKQ&;%5;;f>T^yd{jyljjta43I&&aY0@2Q3`-KRHC;8uaSM3a14^WVN; zZH$Z=hyhaAk=WJLrwJy#4h_Xitq)=0lfpwYs=r~qF0h5M86qzNgJWH|2{FcQ0d^>Q z|0w{3AvjLg0U^k8Ik)~jw8~Bu)O?<tIh`XfRFscuLw!l=r24{2>@!XBFWAUH{D&4g z+Bt2;!MAIaR#L1|&jGGsVcUWRI*YpJZ#9(ox@)KTiY-SUR?8UZ1pK=}HssG|WRXm_ z#3!*L7g35s=s38{b18bS!4`$?TF_0*veW*ruI$;c>um|9?9}gID6Z-tYy%=HVw(n= zyr)u2y35-VGG|SNe5;9LG2@>5LgY`hw*w@kk2bvO`O5RAxj!8i)%MM!IohkFyui&S zW?Y7VIkp7|WxSTD621=bo>c;f*>wFmHfet*w2t&0O)j+BZ^2iM!#`dtzsppiu1B8b zcW_nADL7u;Zmlt!ZYd7(&=*_lfHz`xE#N2=L|AY`sKFPyF~hW{T*ol6r3%^@>NWB} zzDLI}`<nkC!C~UuVIiY=>~(~TmwnP9B{%aX8Mrv7jBrWfkZtNim`B3%&duuxz_0i? ze7#yh&qK$HsnkW%2lYRE&aMuO*<WZAl+^_rvlW(R;Wci9M19V{exSu@7G2-b4RDye z{Z1kF{+Kg+T4-inv$fE;rZH}q#vOmDqfjj`-i(jndDG=apdC5Uyqwd5gGPGTbt@yk zB5cabmm|cGPS;>sC@8l>|J)?oSbXwCiu2zXSIZZ6@VWcJ<V@|#GmtaX$rR&?`S^|M z2tU;K2a;Q!Er`|U#~=El27)HZ3*c3X-`aK!zV$kn|CQz8=(Vp&)(A_{{!>M=R?~>! zrKrAo2j63PAJ2iyOpRO(iS6S*V_2IedK3ZaqHyLY6I8g(%u+X6;p5=ezsNSE@N1%n zui1kHKYDxL%1PedrJ}Jar0jpt&FBrl>%oSfdTA74$<VBk^L@!aam8`?tfS+a47E~q zAAAwVfjxS{ZiEQ<ZC;&CKn+0*ZWt0<M+$Nas-dmr{*l$P-M>ahorL(pj!}7G;HTe# z<D5g+aCiL~<y{R42PB5qx<3O$9i{+KcRUMxXcPzbz=XT}a-)Y-)toW0e~J@*it(sY zYN_sE)IsciSf*TwFSB|9zJer0hjSdhjSbo_+|;=fuPJ)0)dM&pd${~+Y6|5ra?gy- z+5l;#2I_5o6M^aII#?-7QmtwtLy2z=o2*uiQX)>^m7qBL<vd|%JGF2B3@@8>TGvMY zovw|N)iazwBc8LqHA9rT_;QZZQ!I1szX9Zywcsc<uZnK#KAS{l=D(i_2SeS3%@f4# z>Yv+zcKGC+(k5`)vM%qE@&jZ}Zvc_8`0#XLD1Jd*Uy3Cuu7*4BCXuZfrc+0ys;j0W zS4VIS3`+g-VnFYn&<<3){C_+IMEN{<Nl06{>UR^ZhN3l|jnxSVF{^zO_FF;hGd8Yk zX*3U1HxM_C5;{4h^MMpPIJzeXfKyFF_Y7Uai5&|4YGo!2nkV`pD^7}kt=#zq5)RDL z;A{i%bj@1y1B(XXU1|jH{9`aG#pU$9m+S|z{oed4OPZgy>0xC3<N1o%D&)4%%T`0m zw~+L0smAcb2m?{P#iyIt4EZ~VTJ#aPuf5}F2k}vWR^SqzDg=l?9e8^J2I4WiqqvMI zN(^UI>)1;dZA_<Uh)NR_>Pc3{{}dq=vZq9sV|K#h>TL&t38kZ2yQ=J?6S=x<q7!32 zXtm7r*mNY)5LHVVCo>mCq7NvkD?!tsT;B~09~`yL4awQwo#bUdYrgvfSb6ahfw4O| zUON}?ogDY7X^1?jGea)G1{pGT1LPv(rleqc*O1vuWKt~;0_!QQPp}|=7~$(XCm_jk z!MH*`8YrqwzXYyyq?yx4nlN)?C1dbf*`hB(9?L5yCyHxhMag4@hWH4>A9Y*+zu(i& zZW=BVM6&}vPpfdk#8Hzdsl9QRs*W#TDe-v#VA8qhP8Gp*@St0n(b=jMj@A_g?(~7L z?MePLURy_dVFF_oymb9BqhD+)G570If&kq>jC>yD<wTf-cVpY>4?Bno&&J)Od0ytr zG={^Gtm}9cs;=A849hDtt~XD(JA!w(mKqYexcP26YX>e*t2s^L5ikmIW>}^gj7<{D zkqr-ITloG~GO-Cm29*Rs<dM1<zU64gwR-|w?hfpI&`4+_b=K(!h?LZO$1*UGwQBLK zyPTJkVEVtoAdjT)NdF&ns~^`x{iO3m67#Z(vvY&2Q}~7#qB42&nO95&y<uj`OB%`I zer*a7&^PI$M(gd@h`fkr?`epVi+n0QdHB$vTbJ_ziZWtUgXOKbM;@%#T<dn8k;OG> z$yfxkl|dHYbu$+~OEv%PD`1v))i1^NV##UEhZifc3?0**dqI8c_6@NqF&<pckSZgf zY)#tfc5XA@ZWFdjtFec)r(Qt)@W`gmU41T2?Ro?+&afc5uIoLPQU?75_jd9h0}!IU zP*#@!sBK=c5p%0Wn3?$(5qxJkjqf7Vc;($mg?2c2_J7d!*k@n4S1mVrzLuxKJ_>#u zZWPMlVz~U^I*?+{jCm{UCCG9lIxM8;E-}SKv1D7Hj|88!09Vw3+ZFV44Yi6!S`HJ; z&+xJqGfQts?I%;iE6EMh#Cj8x@~%Jii8iRy1)Y~)rCg$R-D0Kuk|6w1;1Yb^VG-iR z6Zm9JP&f{umZ_5Mwsze*Q=TqVr>7)p<k=!c;kV5X3_{CK+K+##mJc;N$EF*bK0P;F zOH!M8d*UuxJuOJ~e-Isr1mWF303@4zUz8FH+!~7xE!<zQFf{A6>0vaj;_-vqmE`e# z5pG)vr%zkS7s?CHvvIy58)OXbuJ{EWxxfZ&2r#!}7Bc&$xTDkCO+iiTK*f-#i;m_T zsFW|Y3cWmCO&OMrY{Cp)b(?k9cyLY!sC1j<g0Zd#2g>bT*@TwLrgPv}ZNX5yA)u{^ zqx@y~2&DGNT5q#|Dbqis3i#E8@8UEGZD#(s=!%klmcNEfRU%n6IuFi{5nz`DCdSaN zO3l$KlexIpf1Su|VfmVUuOIq>Mjs7#r(^Q+FZiois=WfjtNY=nbeiE5&k`4@%>qhc z;h%2Jdqg%KnL|A;)<pJA@f{+LoUs8(5tq-RQiU_@XGM6K_FK+XmW~n3bPqA9I|JB& zt>W9)$x9-s>O^Mai*YlqQGc5E2AuxB{7$J_lId47nvFhT9gi|j*^$Ko7jylmWWb`W zx0&R{i;t~}0O6Or=Xen9Cs^U0$^BL<13Bgqu(CK3aoNrUvN&LjR$^*m53LD+ALdX$ z>X7Z+<LH3nw^HkIH=rN%$o2s&-LSE7I&J$ZaUmPB2MS@LMt(GJ-|FK4>f@IIMiy3I zuG@>yyw)CnqT%&FCUoz!Be6|*jRq`WtdZsZC7;w~t9NLh9D73S$oq~gN|tHfi7$Sw z#jiPbv*BbpS>u)dw1qA36Rj^6{etChtj1#~R=6!cknt~)PheShW~mmZ#^5}lz#_kd z%n+W(x_1SuBq1ArkeTBFXSXBR^$(jK^J?M*X8RY={E2~c?oiD0^;bc8FRB7AZO@g{ z$PvYX&xo5yujcqTucoIiu_A)QwD^Z*Fe~M)pLet+>!7uhv`vp{mZUVT=Bw#<(9-~6 zy&W}8ZN{AO5LoNXNSvR5H-_`AzH0#e@}3p+HbK+WJNO~!XiyjLAKf{{=^ED8+MPf( z){e%?kkm{gSZ3sffB?~8oKxVcWtu5QJXb3dVO{eR_R?OS0iXb)e#-;ldkpn;&D{=~ zX{hHNtYZ>mk!)#vLK3spECf%FpI-n|1;vqL=h2*FuA_X6<3bcaZu&aES{B#XbJx5Q zA~Eh;7=fSK)&FR=Z4`vcbND6NM2MSl8BUY9SuRIb%4VNV6ROos*An<;(DM<RA`Raw z^tHY1*-N-R{@2?6emsRyignxVuhPDN&|_FQ`h&RZt-vR^$D#j9H6<m2a;};}J%~`E zImX71&qUJ<ia%-q_D6m2(JH$j?jz7??an%g`7wy^HvFa&L2_Px_>8TVQ)KkuJ;~^( z`I$Rl@7q~<i;Ky(GD)YY-NB2_GnH<L$!ToKzZq1p9?qi*EaV^g(ERVgX;zq~lmtXw z^@c!IULYWfE!!jh@&MPVwk>R`B`CXo2BA^M#KisXie{clGh~Z8U4u%z*JT#qQ*j*L zCa4JH^YdAuy`Yqf%t?-mbmJ&u=(jgVYI3|el>_kKEp0#trdPEA^m3l_YOx%yI}vSs z{zd>w-JLg0c^I+c^!Wn3W@*rH{cfN;aPK(|JH|M-g5zz<4qX1OA?yzX_>3}WUJkcq z<>2!hcVu#jW+483pMd-E9W~o?wi%Ym{d>h8qM6SmzC_j3&K?OXi#XN7Vi`2=(!=N5 z9?L@RS?gEXXu*;U&4NT-RRl_CaRPxTm~SlQ!Evk1SY`|z{g()qET4S`OPP|71RodA zsqd(pkpRqIt!$`7fvL`WI2hO;-m(89_r|<L8&yjSfu%RKdPN98a?TtP^(RFd_d*(> zKS_DQEo=S<m5P-}Y8Uco_%J|MyuJfuz&LGV)L1e}(RKt{Y(ZyUu~kA0hE@VmO-3lv zDWKu<+jw5q@~h$VV#>b<`tgnNGY0PD1#2lE8{&KiX*`LQmzbBCi2uv6U>q&ay@=xL zY`PA+m8JWgN7(zihGPT}VmQO{n{?~Rfje73R^*EI`I8SQRtn_+&;fBAf88(wV|sSi zqY)PKS12H~H)`M27f^y{omR-Dz_;SlvgjQxSTgf&T|e>AWr3x+a9Y`=%HnG8)ln{_ z<9`(hTkm)H4#QFp(;;?0nVGvo{1Ql|1k>Tb(Ha0w?@}$#dxR&F=nUF}THOR{K>iLe z#KX@jOsm}!+d0%YpBKujw-wK_RX9x9OmGq3(DtfQb{Rl@IA*K&*J7%7J&@WN4DFI) zmL3ZM-%PBoYN8a>(ka#2U04Jqk%?6G$2kee(Kbsd%dpwaAJ$YlU`UKcXeLpdt^zr@ z^}T+pDiSucV1KZH!%1$>&7*>wM)^!*b}t?`JY&~SaNLuaAaiuUwioL7lspGYdpf<~ z7-#Uh<D!kIUG>q}*(!5Id0?{{*X+kD9RBx#>|80T?z&uS`Zy68_uIiHGu5?ep2km3 z&P?Az!%Pa<cw6;ZRV0^PKMkymG?U>!wB70v*B_A`#-XpEEf=bli4-CK+~Z>ME*7l9 z;;qB3b`!;Fk4(WtH|O!I1oc|Mvd>ciGoCS~YXezrlmug#p6#L=pRP63ixqqR{(NNu z_qK=O5(r3$Je0rF59mRTVE2Bhmm231iPY8-l?OK{wh|A<yuj|>#{_xe)}!`c5f*h= z)Y5RDOv$Rp<CQTJC9>%>Px`=_KUJo#N-tSTN31Xp7ti@CLlrDhsnUkewG?PZfBbbc z|AKnKFpC$jl+)S}1YeN+%%GZ66&kh*J)E*sN#lHyz`~^p)3e22J$Fq-kccr$kKp~C z-gT2lW#8N3;y2PHCqH7p%3qU3e*QNRyK@zruKUZACuiO+Zm1;V8-^7tp`t;e%dqG= z_n^jmY+p&xYbguzVRGX^C``eId^Wg}+$75=qe1B&T%yC-PB2@JB$*9MY0=dN<6v>o zp;Lz;9!Y#1*+lW4HH`#EwsC#TAiki#QdUmE@JRw{rg8b=ZDsjvyu=M=wD=X_F+IjM zUFj@Vmzvn|>MM7eMf;0$3V2mZjq$yhPW(wDpoQT*r~?_wOnmEh6N}}Gn+<WN;_Uxf zE$Y1JEb&_K^|*AB*md>FAjaC+Nw^JvN8&+61-L0rXxu)PR)5CmZk^t*G}BIgR|l3< zPdHjdo(_rO*mmb5Pb<Kywpe(`N64ZaDuzD+GppxRdfO4WR9yJ_kBQF5&Iox4R7y{q zN7J9$RRKx8+g(p2Yx<W+=;iuNR~f+#9Z(1IUGLUyKVe*4${nE*e`NdlLCBjMaL%9J zcLX#c9_I;}spEnD(8Hz^2l=5M{ntUI<*#q(<GtAcC@<gwMRBoGdC1dMwItY8Pz)+F z0qUe_dJK^5;2tNA{R7@LxxV@y0_Nx_e~9L%`1-vh1R70l7G$UdoyyyQGr|o-b2Z=l z%%cVB(?6$paWOB6SrWK8Y#RU!Z8w@&`^HPLyCePK3sJ}78v#x4^!*GvX5vhQJS&EI zyl@O?V5n{-@pP#r6Vj6XS9FE?RC|=gP_)u+UoC6Y#E;<;9d#_N$rgsS&Gx-Ss;@yo zyXa(;tnCI$7h=Ad`?3t#o=XbDgNulBgCrR0<&Pc56FcKnvIilV6kK8nd5!EcD<;%i zHi9S9UOb$)j~3Q(H7|Ue>$DqwTYsJFn1pFp)dy}&F%o%TEeSim;|a}cIY>@qY3^q{ zf~DSFEee$X=cs_#aqR$5^`V3=PXy8`{QXC~QYm1uL^<BrXp|RcwZ><iFr0!@eBVn# zaE!)UYBJ}0y})rIm$8q=`_?uGE0l`q3Ws-mAA~SRXdw0&Aon7Q=Yf1n5`iU_4OpNX z4-LcK_qO=U(Ko&k=onr*Ac3vDZ2Iwq)0OxsOPg#EIVI&=_k(qbNk`o*;>a1`y4t98 z4-N^KZ2co?k^sHAYFx>O2c-zk(E@xLk7fUJ2KQv~errE8`UO^25nKEd!$XVLlkLLm z+Oi7!q4XDuAgp)o&WA)3Eff7tCn4jE=p>pfe1$UDfd&={YohsKg?mWiNe-dgu>BKY zvN5*tI*25l0XSYV$w>=PQ{%}}-go2um-2-ET6rdX*^kNkRi?!wiee`bt~m|})>7hW z5Nc3tO|%tq;l^pzCfQL3aZFYMo#?a<%@MVQzLGy%MG4Gb8xafcBFQh=0IZfQNhzV! zTddxIxr=p?5=A%j#irPw7QkSvR8r{Yules9rC^$uqu*g$ZLs?)$YUXn?sB3lM=e$* zD3#5C5IM8pRjiG&j1h7dv`utohyIGi06F5j#J~h)@&ye%WO+L1lL*bJ2i4d5Dm!@Y zXc^fqShvTWk(|9Bb`=_5%%eGpq7BBm>I|(rsQSJ&XD@;?wh3ni4edUEA9yTx8+6<! z0(zWZq3e(t&oS{$Q-(@U*rqrjz}Xy|p!#myxj)6VL`iThXp*%ma6$7s!bu+b2kh60 z!RN=M9HLu~42@448;+}_Jhhri)P(O3%rC)x;>0xIq=e7*$b%jlra080P!q=GnxsEt z%Osh~e;*{y;L&>(AcI%Wir_34L`r#H2f-3v%4^8?SXtT(cPT!$P$AnZir1CT@F5K8 z8nC@zIb=PE)kw`-Nhb1A)V?Bp^Cl*37oJNEMIi3WP*Qwkd|9eS(f(HwR%&2ie?c^G zT335$8JI7o`<_ZyYw;D?O4-zv;7jJnumHZ%Ip>de&6#xX<9kyM2wiX2Z$pWg1tObh zJ~C2LXa63n-ZN1QBI%f;`rzbPe8TH1qA{U1h%;8(f1nyW(DoBp-8Iu$%pc##<bs2< zNQ>L}vPYH7HH}GLjp!iXLZH%5jMmE3eD)p(*p7i8hn$B*(8JR73(qPk&_JX=xhhoe z#|Si$Q;1f}rj^@mN8+tVfR^%upOTHuEW(aImb%@CMvWE5(;OPgE`zgM91~~P|3{z| zrn&uCEpC}@=TG=yqDImBoIqFqF*`_59eYPJbqG5;SxbiFC{sU)C75vQ6YE<Z$#$9U z`fkQ0JVhTji@J=|pIE8At)#pgXJn0<al-AYW%gk$Z;lXVuZM;sTn0LSd?1RY<);;{ z<c(*H2Chi0L!EXEWT%3tXNwF;N`toH?7$CtjT>0a-g&oH#;`R|bX8&KuO@k?Tp6^+ z8ea2=V%WCNbhe)WDQL%%sl5-cmZ;=d{6p%8#+^=yyq^xwa1<V`uLoXnZ17_+H`Chr z;VYMFvSW%<Y7Lk$=U$0Gk)OvE2RQ?ErI$0c%BH74pU0mkx{R>QQVl*XqS@A@YWa~) zQ_p_<f~HeCjiqku#4>ezsI1k7_gYL)zW)#t#PSP!;d6<QTQi|4!eH+73d64-ZNHs> zUhGl|#$ry7|E{t@#su<Tgi#zuCgDjPGHRLj`XmT^T88oh;wf)+OjK14w#QadhS=l- zG)O7aKv=XF>ibfI)MeZE`7>m*Y+k@;onHY@`=0FMPtK6m&S<SEE3TDi@_I-4q`2oS zynw_wnE;KtZh^od_#Ugb8dqw%=ICC+J!Z_aIb^TU(wGf72%X=2$N<$<N8g<ZC`Zw- z3BLTWF#U9$s4c|mLG-GA%+URdpGLXer(79GsNH3N40nGZYkhKtfPqr~_U;rb?oJ9o z0v%LTQMlBCnVq4MCR+D8n!~h4^1#qkL3r$}*fRWTBU&TYa-RT&@_eT_^Ao@{<b3f( z0cIYlH)XyZ73k>QJa!y*_#YG}QUiLdE$=`BX_e6llw+awt8S9-Mcg2t?fmA`)dVW@ z-mb|>&Y`2eL!!9&r}FwqXuhN6u~C{<7(->TmV%KV&|RA1idCKOlC8aG`>_n`QJQ=< zp&bKyr7GDu@Sc`drsnd&FTV@G0LF{*qY{gjokzEs%XbhgqeB~`cmdqpAVBw`TuICM zEsS12VNDQjhh?TqK^5%J(^uy6$hVHJkjr9tTz6n-6JDtx+O7_b%}$9Vn`rH=eL0ed zxU4Ez&O5(IHZAYI-6WIj{6R(s<UODI90o5;+z}ulE{K?v$~ctA0KVPW5uK{lip7~0 zbG$eu__r07=$}DkWX?a{M6i>e0+hwEf=JBiQ?Q4_ti^%)DoY5t7K~}Xx9I>YEPFgL z@~A+OKlpDF+Aw%|9g9`OcwUB@Z%F%2Hkpe~zrhc+S`A<4&YWSzGoKyut)hO4-vMaG zyVb;{o%wvV{4f5>K}A}FM1#78Ap4Ujtgf_Wj%+h4-5^(3$o&ea!Px$O?8I!L=?dDq zYf-=P%7gJhXUqY!O=lL&{%~)UPxagI-$CA#=FrMsOL69brH0U1L~VwNzL-(t1O_Kw z(GIZ`;5rDQGJ67QP}AhGn6U(zgYoBH+@XO?2Q}6b9NSM?_d;ETGd8PXPI}8*8?|D( z2Ft6opaP%z?+l+7a?ADylBcNw%b10L3~3+Z<Siu2;ncc7Ha%E;2n3pRUWxO^iIydM z3oBrZg^}32iJX{0GHnd`@>ObGw8Aq}YI8QYKS7hE0BFjVc)p83u?Mh)&T9gd+UVR& zWG@yyv~!t8Nxi8rhSzxijNl%64W>9Y&i@R%c$qjDomhfp%%fD%TdM?xYhrj@oFXK2 z5zD8p!$PTX@-GD|o`Sg$T&|Tz0zL+km9}J?shhKl*uv$_oo@(#h=u*QQ}p0ZgiK8> zM8<<x#nF#+F|#qbp@}jq2fS6KFfL?qnYCq2{musDHrEbyO5ON*lE!G>I&y>Wy*m;O z$jp~F`yVum0-ZOs8vC6tOZlq=Wcdc>JHDfiP8Q0BSaiU0wFq*m*8719498V*!L0SV z%lWaoOf@P)0-!FsBj&Sg2$OaAv1_m}VE+D3(fyG->9k0v{c}j6`ZmCsc>OD1V5##d zatTjX^tPVlU@eR_!BkB!n(7JUwMB$kVgh)UGT|(2ld@ugT4%n`4nkN*NBQqyqVl!P z`P>^WW6xRWWqNEVZ}zg=o=yEkCMib~PT5|67X$gEMgwOk^O&sj>JoC#(17NtWeMYC zj52y^aPYv97+y{hxMSe5iw-9LM`!4{8z?$`D?EC42iC%Q)*b)=*zY;ot!l_P^@$2{ z*01c&$r--Z`k(u&$quRKHt%0VGa<px!|1SJJoIT4?_fmE85Rpy&lMm<eGzd9e)g6% z?c${xS8y<dbQQJgx_7Z60j;?0Op9^(WYd8kb#CH;68xIDi;Yc`C*1kYo0am>;l$V+ zQITilM8U~koY-x4aTX1reO*Uzt)|?+I}U&b|9av=xMO9efwcWsKri^7jw=D1a*P(l z_&UiiH5;q#@;M^<yvsQ6xQx8EkYz?dRRAs5I_sC{LEnK5P#M#8w~cDtyr2oEu2NGe z6B6IkDEhq>8n`v%@+C(ELEZoT^Mt=G&qbRRqsJw=t6!mOpi3ezSFq6u9<1__m_`sw zKKB#NEk7-wXKq_Kb&Wtkm1eI2OJ_C)1`E9x6jjtv^C2)ebEX+(n#J%MURchH+OR*W zKpHHrYcnhw2!Y!D3P3anvkHXaMr~>#h=_H5;;#HI)D1Ekp}A#=IO+uM?HDmrw(Z6# zZ3(OM*u-oCapPd7s6>;Npb5W%>+%v!thXU`C6IhU14swla$gwU{eYUnb}j#BFF}i= zq8c^Blfi2?YRvE|tSB;}5nSrP{Biqd)r49H32R`A=hjZjAS=QtV5fcEd(uYAL#Aoz zL!yn=5rNHYO|1)#%745pjPHm^zgx+6DTqRt0%#`ms5i-*YdoTKhyt8oO})~DtM%d) z`}iVo^f#u&&a!bIx)4x$&uyq19EUxP&)WiyJT)bZc-s${qq<)&!t(3(H<1i>*e>BU z9&DWAmmeLp5YyK`kP-DlTE!{H;l1s;HdL#F*0F;`e7s`my>X)Oz@chc1(opc=qkoG zZCvi5B7+&O`N-zBw+YZ`K}Apoqk-t=+DkOk(z@991RGovExsYZbT5BQz^QdLbomIa z{90G^@^HDn9u;`yIKHtMK7H%F0@(P^;)*veOZ+r81AzN+_ZdEbS;vF97%~xk;Mx@D z<jkv4EKzTG9>f#Iaw@Df&j8wOD4}&fohLdT6eK#WUKJTuE3efWwe_ihbX;+`@w|y; zca3ejA*N8}@*Gz^wHyEx&>F)GDW5co>(h8ZY6$gwWP>(mso$_PaL1@?dxcl^0VhOx zN0rph={_d!2A`DwNU4(C{cwI@=`fP*(2>V-;H<l8!FzYK4g5iU%(WJNJ2a0<_A;Jh z0QOwyHMSw^<{&mGYtOfSoX`v>n;lk79xK^gq1%M1EdL2KfWnVtwfr@(CC$0g^*AJB zVRGOWf=P{+h#stn-ELyy-(7XD1GndGfY}D<MN*)@(uw9g3~09;oSFGPgPz{>KPY;4 zLlmF=x)w~8$GH;)=1I>gWgLm(`1}hXF+oq+9oz(Li8Jfwr9AapUB0au%5h5gGIQ4q z#w)YFX@DTR?)R_Hm3Oe|@=+6BO>!t+YAfYb@hFjtVE#Ta>rPJUEG+&F62vZDl`^)r zbL5q3MgSiUYF2Ni?@29;{y7n{DB}OR{cI2`6ZNNxW@Ud@B6?DG5Wf}sb1DoJVo0%t zWCQ&m4>KwKchDI#{;?kKJYTUY{U>WHSP$51k&E7eVkAy0`4iz@ApAh%tu~Dzyf09i zWh<lVjMiQ}2Qtr_?!|f->kR``t(J#Daj1mGIGxIX=EPcav<IT$1ocUc)o{7v&L-GP zD@YMI)2yjGQrQ44x~iMgvKmgY+xSESE-Y)Xd0Mqni%;eIlSA1Iqh%UxEbJ;0Gm*y> zxy@nTJ|V_GyZY8$`D4B2eUinL%#jGbZtOH<1B+Z6e!@G)^p|OnMQ4mU5h^v%Yc0au z-t+qV4`e}Mz+)ZW#S=<#UQ2Ow3CvJlZ)|+a4hbDEyf#RndDy6-ImfvmVtngT64Ibb z$h-u3Wwmda;sx0n;v%9L2{JuyD%B*@{8sB~ywY2H4RCim@l(pH-M4(Fgy=@!SiwLY zp~Y?stwm8g)iFu)5hYHe{gJFgc4%Y(T0?O^DXzss53V$=0#!MS1w?HSLxtW*NnHh* zP0BL+E~yhVRI!(YehKrhx7;USld66oqZ5~!cYk0pyBbcV3F*o88{c*D$UTKe->o?+ zuo(aIg{eGUGHyacY<q;Dc3G2BQ!lo&JHvA5Q?h3(f60@{V;yQA4ZL#=NIM;bNL~!* z;EM*}n_jgokG5%)JY%bhIN-MtPi4@(V2)p@)Lfq$U}+|%C`1%#&?3_=ci?$D?;;O3 z=W_9-pmRxhcX$b=)IW5Wv0$>?Vz`#Vi^0Nu#R?;NcaaawQaa~qA{lFGY=l`#Kt|)B zl;1$zJ-*}f6@RVn_EF<k?#f<i*S?Jqt^A50>`$9V@;Q$gG`{GcgdgbRmRcL|_xoSE zh6aO|jEKQmGk0MLeo}B~;)E@FiWV2MYlH=5hc75Y=Gh_Md+V#P@6JBwl8nw@86@xm zww+5L)4j_h*mN{8b<<rm1ObAtJh|3*e5c_vpg~A(fBgFl(J}1WTD+E*bw56=ChBbn zx1(FTlg7ZcC21^6@GtRSYUM-cQ>XY;a8emos+Cm>mGCh0-ggEG`>fIsMRVN}&4z*J z2LJU@g9eG=?J)_+tg&hN>pRzJO!lDHRh8IELhS^qDf*Z*2j8|_ZY7&;(fKSV8c>UT zd8HEC>+*R(<cLYt1R^Z=w`>KtEonO#yuN&7M`jjxo+MH@#s=B+cd#EkZLxw+ip5sT zjM}YOX@UE*a}Yb_-hM>nme@%8w=n@TpP9W{<W}z)C0g%P3lavn;_O&w)+TYi^MlKV z5IJcgZzc(?)vIx;F?)q(Klr^Do1EC`5<zS)h_MBCm({Xh51>D-s)yaUZFPpG@Jo^R z7?=faTn}<w@myoT>5o4|%;m*@SS(wuILdeNq$i>RGn+M{8>F0vKqJNoMYWF#XbPGQ z;v+E8XeG3R7^wo(Jq4=e?NVOOvrUzh^<ghWLZ7xGn!)eA)BVJDoi}~c<W=J3^{0G< z(Cx&EO_-BO(<1#PxUhV}T{*s3Rp$)NZC+@(>>~*c>ByUx@)MUvi1!=DEbUQ=7SckH zFuEaCc|W|0AlmKaVMO<Uh~p$#PY~=`i!aeOE~{S>k<Hg013$4{8EdH-P~2~L9ExV^ zw6L~7UrksH;R}^P+>+{k`2IsLT>|FygNS_sOGhk@PbM+Fx6soh#%5poac6y}JI_P= zgH~{uIb*@J@YTn+Ho*g}iV4c=$Gu+a;r$?EaRl%6oT-&dps4MvzZq3*p!9{mnO9@w z-U(1*Y-|D>qjxQoJ8i6P_XBC~{)SStTq<TjUgfN<hN#wZTtVT5O$J>f)in|!GM+Dq zu4n&Os;ICLq2jTeFcwR@Z(vUgYdz`YG|gs&7@fuFm4voI?T*GDI7WX_Y2g=gbgQA0 zwz&!D+N}Hd(0yKIOYp$$;#m+o)WM!uExIj9K=Z6PD^2W7yF$#k`9>w&Zju#g`JnwN zQ7tZ0+c-h#SL(*RwGc|%SIZ?@${$LXSWUgUQiSK5;)+-XW!6~E2p-yHnQ!=56qkgl zAXY&EL9f7P*Kzka$LwL_yFr5Ym{e>r|JYLZnv^%eSF{`DpPG2M(nDZ6&c0KJ=1fM= zpp(T4Hvs5;_%^tt_$!#)cBxV;WDNZhMR<Zu2UepD474l^%!b$EIX~S1PyW}MrTx8x zanJDJ9r(TNir#M%WZog9?9(y)M6lfjSVaMM_8mV|o)hBR3OE<`iXbeYj6|w};G-r@ zPKXEgJso($;5F!oAjI`A08z@6YW2t1T_c$PJqcmY8n(9{hg9iNFVR{fzJZU>8qD@z z<iPjezTRIifX4kndIM8@d}#Q;qNI-0JoXVeadN$`1@BDP@60Nt5|2xhoRs@u75oTa zw6LJf@+TLy1&JD>Q)5Fp%9ph9!jCS`zg_yx^7gI)^&g_x&Jne_>02d>8*&C%xf1mr zhUmhSJu;_vS{6h%Zy9oOMzAt$hHGT@7_bTkK(A^L$Iv0ZJ7(f@JZ;m2ShaCE{|t*% zSZedCk`kPe_J{(+a(~3kO%)mY?}=A4h#K-wTWE(mICq~-@y_WOCA^yAQ)-}RJvYQQ zbjF+OHYoGSy9j$Ux#)opcs0HBF>*DbqB$+X=)5(1@uxDE@0oF*uXA={g@kNgmpz=I zR#<4UR6-+<<!#hFLu2VlcYf=~6#RSk!$h@=a`&4{SLS&9cw5n8wLJIqdZR#p+Fx4? z63EG+5zZ{u(H*`%SK1KEG<M%4Cv?oCk!;D&v#CNxcRVaexr}16wN|Xy$=XC+vGV47 zqP)HNy)(2u4r9uR)v_s%R{cQOaUb2_$eaH3_YbkXm3ZL;8B>t!tzrt}PRD=yEz&s_ zp>A0s1IHVFs+Loiw^<U6Q^s_3aBQlncGp8uP~5(sZ~}OEv&M05J)jpFe6<qPK9tP` zsJhI96R0FhZ>Y+mt0D3D+W%K{=HXE8Z5)4Q9~xsUX)yHIowCeO;@F-iOH?$ydEZnV zYa~=NNh#GVVnmGPLe%L=+i>b6QPRnhWyX>-ijyU$Fr-c#6ou-%zw@8#@~`W0-}mqP z{e0BooKQie=?d)EvHV9FeDk8^V-W2z8r(hnV9Lq)#p89%G-jlH5$h#GwQoAmTScB5 zSX0E{K@#DEm3|p~4+7xf&rwvD-@iXG`ge1Ct2tyRNGzFapJJ2VRs1?djcabU0Mv@< z>%I6dPc%rrQ^s;qgCE`ba_iTfcurgS_?Tk74UfOJnMm_89<8UR1!~)cO7$s{dRp5< z9w7SfuyQPiM9uR~=yd{nf~3B3^*m83f4o4&zv3s<BHAwdU#CU@wTjV`v3Nt+B~T|k z^Z^?FEU6k2Ke6p6w{zHM{J;c#;fHd<g3j4`qH3c#7|Hw@hy76@$2H8Gsv<ia*sNA^ zW%z?=4!U1jT2150p8}n9<cS3XfQ|od6-0$RlS{Dx+^H#n2B5%2@u@OhG>gw*L~bE4 zB~&M0D(%#^Dv$=Kn5aUe#@EqrCt;|y^oqIuz3F8PBaAgy0Qb*Jz#*<wD{-s*E;Dld zxj~{$zlm$~)@k3DceS2;*P<RXryey8!QK^Ih&BRd3BE9@AI~w<Hf{-m<aY0jPjhWT zXGX~hmjI-{;WbShJ-roD0Q>l}1_`Y?JKEr{N;Oqa%i<|4q`xtgOIgs_`UShzR_TpN zIpf)7k3q08(2m*(Vjsr#GZcV<XlLQqSE@tV-Qy8ShSbsNTB+Y8<*%Lb@GZsu!<O|l z2Uzv=>4i$t$B7FO-?*rY^Lg9?n%U7N6U?Y$7wt)8c`-xt^G0q^)f{5*R_hnIxHbFa zej8Cb+F>8SpxF3sR@#X9tx^}mJ*1EAu6J%u5sIu>!I-Q6YQBRmGSF6oA`i7++bVr# zPitbJN3kEkCpx}B3n=c&T7AH<a4sMl;SDo&V^GuXJ}TUJkS?0@ZMZ=uO9k+DcW!*q zzqlQ}{NB-OBK~jrqK8E7D5>PBhJ-gQ10txlKhX<4K$~LmXEb&@tVDZ#lJ>J4ht#J; zsOgc1D|Wl?UV+(8843v;_}g@G&a+}Z(1n2B&|HL)Nb|6H<{{G~Op0~LUJmN2!A$uO zBQ}}tW(27fnR1-o3ld7?@40)37Y$Bg`Rkbf#Utj(Rn#SzU2)b!W^d$tKK)CQcE8~7 zxg@5<s0fu1A8OS@w2-14&o$^Cntdjg{uOIn9%%l}NnvJeKW$kwLZ;DilG{!S(=fy5 z%@oA4^uJQtT5H`wh;uS(9~KDHus;YG<-rPE(f2Y`8ou(?0pgn<v)1dH<Zf^M{`6W9 z-G12gmN&DmSog<+Vi!Qv?1frus5~I->0-y!)3di|t?mb)x1^dq5E?adL?p4l-4AVv zkTMbk4PHZBWU-(#1F*F0#((4fRjo!Je>6d!Ins0ZBN|Ycg!~-12e2|+*rghbSa^IN zmclGK41#KCR@rH3xEvlE0=Wa)CR=Z&Ba*T<NY}?T)gOhxy~69>;ZUVU!36vtBhX@T z@qBdgS~J<q)JxBt2$8ZgicJ=%9O762H(ZSZ9;mIf2YTw^zK^D5@bBC=dFM`G{&d!P zpo}4YHb{Z<P`}|wak$(%2Kwz7@~#iNB#henjmw=-C<>y<p4Vy#a8d6a2hraF4BOyu zo7LfYN}$Ya(?8H)SdhlzX)Z_c{4R*bJ4TtNfM)2u)-?-AJ}cu_V7FZyhwDr;qF1M0 z9VJ)jYAvF-9u(?Q*M)dtxa^2D4ARUFelJXjy$*M`)pRK_vj;ms!NB$4mYk{e@S8wi zC-j`RM=xmdJa9=??!-HH8^8nE{#tAXi)TC3y%AMH#^qPc8D!htp82AqCSSRlS;aAP z=ni40_$}aP(6VqdJe9zrq>8Uj<W}i|QsLX%j+k7(v-UL?2;(^5un9p-;Okz9of32v zep<#TFzu`K(6}HqyC7OGARGkTcCB3n=f|$GdV{r<IO<z-5}%ZV(EDZaCFHI*4NcfT z!;PVv`}JYnDup`$bIG+*e~CSX<(TE&o~U0HarG){wdSVfEkOCTbk*FA))l!w)SklS z>_v0}xU6lBp#YFQZ=aBaRzLbJ7~YX4PLwkIZjdCXom!JS*8+26_Y-tBQQ5JM%ikCY zRQ}KvZv#Vj7S_adm%=`jCdBWT(63LSAf1E;3DXHBKMj*Mdao83)&9xY!+@2`812$J zfW{B5`UlFVA$FoJHtz(2$93H!&`#+$^^@JHh@&LA4D++SCK5rcz)QIpx?SZ45HB1p zhfio7^$tMI9AWuHf%<1hc4guh6xNIBEQL>$;NC4*>$z8fV(NXPn>JA$&^lKiVB)ze zxf4p34^QL%fvkV{R%2{U-*v%F$x5%6=Xx`vUDm{dd4i+xj=MWZ*7n-I6)$-5Cy*n; z?}bq|9{MESG$XD6D_T4sxJ4x}$;nLzD$%oqL}d)CGUjVCYR;zQ%^B*h7F_HCd2rs^ z&dFgc(C)=NTE~6zOsYF(U~n6>b=e1^HEqxNJV3H@lK_q3Xh#P~supdz{H`4L@o}@I z#I~#V{Q-fV#+@9HZ#B(GA_&e_s_RG|{}&3|5riXsa80syj5a7#f;-`ieiUx`43|(q ziC7{La;?^+G3RFp#`l+y2V2&Kg(_+Ot@poxRa9`|v6cb&osCl;tlSPA6g=SNHX~y` zrsoKmGmLIgie_;?>1~nrF<dv6S7h?0HMNu4JvOFx5ovJ$cKyT$VQOHK$7!x@u1&>W z4~3P9u+`^+GPs5OO8|hri;GI{0U?W_d%`9JqDS8CC0+_az-iXx@pdC8WFq&FkK{dL z8xtsftfPvdNlzf9-|_<(GdCTLVmA*;DTT*VA0jSM`)Y{H`THve8CC`7OAHc(cB_uF zDc*#8^nZ&amjFqW?IGbD3i3EWb1pDZg^~^iuYi|KtFPc&5Anj6&Rp+%FSKdPDaBfH zYTIyBJF>5hhs@+vv8myd=(2<{f4H2$s;5%v+j-y}f$dzUn=fh)mae2R^%Ns>Ylh1y zl=DHqHz7M%*#O%e{^gO3Y96UMJ!$|y%i0~r735^cFe2J%t{`=(nFU4fB)8XP)~lDz z+vwj4!dX2WndRCU{IqbIOR(7+2{bzVHsH`8n7G?;_lac!v5utk!*fv>SsMU7IOE^? zeuRtUnH7BQzEj~Zy$Ko{WnV#|!WDTPq%T%SUVD?h7(3q12qSDhfq;r@f>2Tl2^I8> ze}I(wCXWBV3%N#S{9pY<5i_~?uVnORY200JvPBQ)IoH86^l<$uKx3%(*$X(aNzcy# zVgvc?2CY2P>q@zuWRvM2$0LHwetu9)ju;cr{N|7{`FjOEvhZw>n#KH$4X9PIp_;bv zIY1r!$A=ptSS7KxP^?}JvOIk;h+8QeG-td_=%g(ll29*r(AnXI0;2~vW)}Ylht7A_ zy!O^9sBwv{RyVVD1lE)?aGDI1!P#{^_k#>Gdr6T|@256M-PS(CPkg0D(*r;J1Gy_B zHQ^KoHQGSK=H4ISW-&*1gjl39|4)3ix<+3?gUpQKoZGnyckhM*uum%0@cvN&4E#mM z;`4{Zk(%?yp@0m<KZ9OLA{e^_h<67W@hO@4W=TxE{ISU_S3f&L--2xSwytLw?nyac z@}d&b=hGX_af><1{iIbOBds>9buDdm+5GX=fIUR~Ab#{>w=UUtoeBPcdB>M(DCdu{ zR4{CiZ^e1$5?8m)5i-Fs*-(1-;m&g6{RpyXJeoP48R?RG0;8Kq2qx7UO?pOsz2rB~ zUV5+bD!R~1RIa2sZl##+vpgVQKi!Y_SFN@2)(kS#UZRh3#gXC9&;6!ks=~he%7Y9q z0ujdt;AxKLACAMoGuC(V&oVvX@FaJahcA<Tb^`>}eW_NDyWk;#BfUOR*Vt#i7g$*W zTP#x4Ufpl4Hj&l%PzfJ7(#sb`lLx-bv}gVFsv$KKv3n|GXNqvwA&JFbNa(0CcJWx9 zwfTfyfUumx66d_vIV4*T;AMBu6Lp5|Z)`+`ipZGh&}9r!jK$9~EMM5qC6N@T;vNQ3 zjU`s><&*>l4Z+DDNogd%n+o<dJn4hzlE8d-G&5iGF}NEY8uK1U6O~Xj?@aKEfO>d` z=|OwsjKU&|JLHE5LYi+%7^={*VR%p*DG2xxX21Pi|5^(Wts?yJ<$5Bum6bW$3lVBm zQPGA>lb#^JFK{gDBtCRI{hCk-NpW^jKV9Yqn@!J7nK_$MS`G>BrK^(BoZB9Ik0I*R zPb(PWmJ#pYpm5ZSk@Z7pLY5j}HHS0=636e3LMj|y@N!mYE+S~io6u_W+8=ieLRPV! zdWhE0-+W;OsYB4#BjGsGXBlv*f7GuE*6Eu8$50CVbjQLh(yVB<^RN+g$R@Aop|RN~ zFoN^Ui_opqbX)0X7_}uqtjI8vP^pV2D=ySm#_;cM(&)S`j&_*HCfs3gNzG$0$h-|S z)dK##cK0xxADsRoP-3mUFhZm~MtHLdw(I$hD}YCIMgRT?E|Y#{9XB${#H#Bj31b#{ z=}o4qr5AwpxB7_nhJH|*pSiJ4<QkH3@+5Y2%r7HSV8)1=T!!}<M;5+L(q{TTO=ZN= zn0?rN-IH0E$e)jXL<2+IyVMZ3@#krnL*zj>@Vy*(ri}by1pKq=9%=m)O}A*WPn0I? zyHr3(WY`%pCMEcjY1*Iiqh^Fo$Vm`e(G9-{c=g4^Z4?}NLswlp5K_4q&$<|b%CXVX zD+7!d^Vv=BBYMw$;PY-%;SpblZ4p5fo5<|~ffcm?5vEt%V1Vy3O*n6D(OOiwD&wkD zgkDN->4V#a7Zkuqx_~q>AH^BKf>%QO9sfXFQI!IBWIqsnjMTmt>-Y{$K%?`ryfZTE zKLfUVdXqBGW}uHwotok5pS{1*GN-M;eSf-;()qKs_2lRkxTS~dZz6C5NWU$T6CDjI zEKi<!H?J4(te5pfd8lX4U_Hk3c#S(-Py5NJ!q+oNJ1qC>!xxq6GY4!|0I5II6#R$w zVobc+A);;Jv3}+r9$srQnT+5e#t)y6OKD_Ha77)h90Hu*dvJjhz{{MvZJ~sdb5uG4 zC}$b&F&x>3^&0h|g1pz!&}+^%Pzio1-I#%fY#R&P2j-RLl@DT`tx|grQT2n3<{-Yg zQdD}m-M0+ZAgZ_rwLotrB>k5v^!L2+Gcwo6`2Qs`0z*zn=zY<KCKBhSf1oyU0!1JA z#+={G9<GGu#$qNzu!oG4Rov-bVx6$#-Q7V_l#~`q)^B?cVxLOR+Frcok<zg#Cod15 z(#u?n#aq3^j7d*WY%@OPMbJfm{$a{aNaUEW>Xo|W4H*8ifQVe)n%1B$JS)9H5;@)4 zk`*8?r&xYWUc#;nP-?J8$8{4oQ(N^Ia@io>czu|P;XKmCzLo}&z2Z(Q<Hn0tX2ffz zH7nIx9X+@cWCgjaZjhuR6m_=Yc9(%~AgtB}9?DG?z)V;7nGOi^3B0zJNaY4(jt8Ym zkHPP9A9F?YH;LY)Ksr=N$k|M(CDy6nt?D-2)<DR|H+pz71yeJsvIYcP*1ZUPDLfGE z5@@h5+JI?n`CUdJvK5>(Ls~X^-Sa#p4_<Qsbko{4fzrpRtZq1kVzpTvilO#|)hxq- z;gjp&J>(V`xvbei$kKWvXw7JzIU}>Z7xCRjKpTI`gbM_CgFn_LG0E*zfepj4>y=eG z{q#`I6FfcFZr`Mc7u)ga52X;^lK4y+2=R={>#?e5x#8hH%56EmM0L-_G`foq=OdM) zNWX@2*o5SVi+Wz7cE4M`M3pMlA2M^*K*^Ug=P^~FS;aYBmlEUN1w@d1d_y#|@t87F z4WF=C-SfUU0931JQ4>Hhq%{;@juUn_c*3GN-3a&<Ozj7M=+2^Nt3fIS><->KlCGU^ z#C{bodhw^*Yjx4a_?G2D$j(kvSB?LDYPg&{u+R&6#(hgdp#74?%tUF#G)^7_K_U8x z7VexESZotLC#s1wv<={15_s~7uMZIw2QS`>h0zDrG)xeOtyiPFbgu%mBma5#@&SQc z>2)wVAL$9O>L9~;nqh!b;J1_ld!-LbkHVKYY&S*{eTjoFof7erTN#@Fu26xZji^5L z>EQ|_a?>M3xH^Lk7J!*zsu}BCRtXxO^HPT`O2Lz^heD%sm%)nK#C`0os}UFq{C~O$ z50>D3SMlFeny*cKD1*`Vx>bXVD`9-DLQ{4bED<4#?u$Rds}_xYk*Z!&&Hu`Xj3!px zUMGc4mTJ4xcqKLGM7y2Bh86%Nj}Tc%Ead3*3CT7z!9TEG&x(Hp3J?|pRq+?NT20Bd zN&O^MEE)2C5d>Lf##}wT0ZiF9?(`D!I;KxEHn#SZ!hKz~i&XWAonAMEc%Ge|Qqa1y z)q%>)1jk99PTY%GLBdas#(wOvK=;=VB-%W(<F}-*Fbi*JLRWGl<6ha)1VnyIUGR%D zGS1kn*Y+>R5W2mM_q$s`)NnLi!?s#O<5Qv9@L!)%XX%$`xouo$sh4m1S!+u8soVB1 zlGKh{72WYHR6E{LU57%drQ;yGwnufe^@(_?kZffNk)O7BQ;rJIc|*8q4bXZ-`3q%; zDA;*u2xd8(gBY4QL4pc2-iX=X!{~wtqo&j(G`f4g?Hq82J~{a3wP^hg=AT^WOBL<u z4F}k&FIDXzoMzs$;nvs91Z`-;-8SU`Cj+=C-RS-sF-x2$-_eiXRy_6@&{<4d?1sR8 zWQqv)rIE66tHZ@!eW$9c5O$Pl^4cW*^17CR)5=|*Cd25$2%g9o=!1W?D3et56VEL9 zC}A!r)Hpdem%$L->dppaUn_h&09>^qCWYjQkzG4M1)NoRAgmk1<+~VogAA1Fvz8Ou zxbsy!_}S~Tlz9?BI&8bX|Nat8Ap~+l8?eVW|J~S+yGVO=#n&32)Ufx1m|&^_cuE{d zpDbGWgcLic6MY-gjF=BNo`r<u663JKRScW%#3dxS5nI7T!~=d`DoN?r-W)?z(DQoG zFsT{!-IQ35-R4~i_d5xTb}%C}y((7`8^S=1zL%^hZUv^deBLV!ZeWz1b4J5547!|h z0CgPjb2x@xvDB3%X=}iHhYO9!kFQj!5!pH5mEaXesk=I7bGEkw?ya>$GFlzAtQ!5K zoDs868ob|xR%v<FGW@gm+yuT`8p)higT6E!*VU%7Zl>ohp%&L70Lbua+-bmq-V$+O vW8XLBE+EIN1vK9y{9n17(9BkCFAz`e<R>Noh(HhZdsvV`I#lrq{b%t1up)Sh diff --git a/app/design/frontend/default/iphone/skin/default/images/flip.png b/app/design/frontend/default/iphone/skin/default/images/flip.png deleted file mode 100644 index bf4d9ab58b0d13524268bf811e99ececc9814617..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3124 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 F`5z=|YqkIY diff --git a/app/design/frontend/default/iphone/skin/default/images/front_banner.png b/app/design/frontend/default/iphone/skin/default/images/front_banner.png deleted file mode 100644 index 991f8b484cf4244b3c6204039f7ef526b71714c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7355 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 Qd`<!AYa62;X*ovz7x!(d_5c6? diff --git a/app/design/frontend/default/iphone/skin/default/images/grid.png b/app/design/frontend/default/iphone/skin/default/images/grid.png deleted file mode 100644 index 9dac9eac1c986eb29a94cfe60ab772f5146573f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 946 zcmaJ=J#W)M7&cH4D(%Jq6%r>Gb!vQPH%?+Jrb=wLwG>BD8mSp^>`P*$_8I$vos4Wq zOfaJS03_5uz<}6bVn^aHz}gMYX_7J!ES>K|&-1*```&x6TFv9_&7Dn-<F>66qs``f z`M7(B{oj8`_t^B1nq7KI`ZRT7%+);7!@vrh0d8Z*n>_!Ds~mTW_d8wMwHvBS0>Q~K zLKZ}f&2iPkEOOitrl5xheyH)kK7QhX?`iy*Y$H3;@z6h+#`tvF?6}jBt9bn3Q&7!R zCJ<oifGju<6E)NLxvt9A`7z|d970DLe`Ts`w}4J!3}gWnTvQT4sVIm=q!g8XAR!S! zQG%#k5RodERV0GN$Fpd$*H_!d(IOVxY5b7VNQE#>Qz1PNNIZa|q9_naP?8D^QAj2s zb+SU3>@F1yoVc+cQJ;h$S9E%0Of{Z4y-Fd7R<dETC=)9f%$x{{0?Jcb0&V;M&>&c$ z6WYete*Y<)bS4poZJdyC?6QmN@8+Q*RgbYlN!%gid|AcTkWi8gNd)v$SrEaQA9^HB z=6KsytuUcZ=wi#zc%~ruzNea%Qdw7&npvyqqG+OuB2~;%*_7**14TB_l4}rm9N>^H zx!yImzLuM}LJ+aY29Es~*gJ|z0Ol#H{(3K!wR#J#x894gmJ68~m|yH)7ri`U-IFg@ zZOb;R#>XM+_L#Nx&(C$4J&8TbsCBaMy?qFOf8%b?X0z9qmyN9_+?)GvHy#}SXk5Iz ZadV5?`0}{geAFD|ugEf+#zp<v%RjkGA-n(p diff --git a/app/design/frontend/default/iphone/skin/default/images/i_add_to_cart.png b/app/design/frontend/default/iphone/skin/default/images/i_add_to_cart.png deleted file mode 100644 index b9917fa2595790de0627f70e9deda810d716b115..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1345 zcmeAS@N?(olHy`uVBq!ia0vp^svyk41|*NpQ(y*Ck|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9<K~ zz|zE0N5ROz&_LhNNZ-I**U-Sq)ZEIzPyq^*fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD<cE0=g99h1>$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;Np<V zf>iyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh*)icxGNo zet9uiy|1s8XI^nhVqS8pr;Du;&;-5A%oHnAQ$r_HLrVikGgA{oLstV!H%Aj^6AJ@F zR|^vtGXry&UYGpj(%jU%5}4i;gkD3OdO=Acw*Y9fOKMSOS!#+~QGTuh*vnR#INf65 ziqkx(-V~f}v2eqwS0CsYeNe<AMKnwZn0i1=c(Mg@;0Zr95187EfXRB@sU7nf7#O#D zx;TbZ+)DcM|G)j=1ZE$eW`Q27tSf<w`=m-mgc1&_9z1bkhkW-3CWSZ;U-ks;J(7h} zU!0z<e|*A?jmgKGUAx6JFWm~XSp5F}{(A9-8H|#<cka}@p!}<#O~l}rgqU7T218Q) zj}M8R4Gj%u9kTNB^$n*KpL$GMoUmZuzJ1Ygar;`t7EYQm<Ag`pyUEk0-TU?YygZx0 zy{*~TnX@h^{Q36w_G%S(d7~F^-_{;Kc~aBkY(Uk|PpR3?&d$6ypI-U>{r&kr|NhQq zZ2A7?=H~{fEfXeOkm_<;wQ7}Cd_+VA(^jXKKqc?9v$9$|w1h4&%FEw(i|}at(8$a# z7vNO?@6S(`NLMDS6)RR$oH=_|*SUAXuTM|CQ_|C)b9Fg!u{7+nZj*^}@0Y7};Nv~? z=FJ=H6+%Ikm6d`ACPewQe)*DdsD<;>j#ZLkK|IOH$+sClsUBU+AU5r1O1SYC29f2O zDgyjRelN6`*OhgWUo$)V^=~UHs|R9-r)r1GF$ix^+L^UdEJ#X9ifh9!?jy^lMQswY z;`#IU_jI)^O)kv^uDlAT7wl+^%HmwM^5VTSD;B%Sn!Z}$$i%?J!_XmkxObnwrx>VE N^K|udS?83{1OS%Q<%R$N diff --git a/app/design/frontend/default/iphone/skin/default/images/i_add_to_wishlist.png b/app/design/frontend/default/iphone/skin/default/images/i_add_to_wishlist.png deleted file mode 100644 index 4713a7b1d9b3e54ab3a08f0b264bbf9da48e50a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1240 zcmeAS@N?(olHy`uVBq!ia0vp^svyk41|*NpQ(y*Ck|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9<K~ zz|zE0N5ROz&_LhNNZ-I**U-Sq)ZEIzPyq^*fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD<cE0=g99h1>$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;Np<V zf>iyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh*)icxGNo zet9uiy|1s8XI^nhVqS8pr;Du;&;-5A%oHmZa~CsbH$x{!GgA{oLstVQV*^(gGe=8f zS0@(}GdD|^UYGpj(%jU%5}4i;gkEQydO=Acw*Y9fOKMSOS!#+~QGTuh*vnR#xZPrj z(>$o&6x?oc#Hm*w=oo!a#3DsBObD2IKumbD1#;jCKQ#}S+KYh6y74OCJ_ZIxA5Ry@ zkcwMLfByfsKb*kq!_zF#W0iF!Q29`xPK$_vkx|o?Bg`Aw1-b(=?n^7&V?4s$=z39p zlkCx>N2f{&3I^t-rKue}e*Cy!XSZGLuP>jktPEbJ9kwQcxoG+1w<~7Mn89RiZCxqw z`~LoV5msS-e*WE)Cr`HF=JsZE?K3hm3R-f-@Wz=X8onDhZ{Gax@9*iW`j}>VPF&nk z7~ti_rEFAxZjR;u%vrxraH@JaPg}6~-=Ck(n-)HKAz3OCD-#+Qch1AZzp&7-ZPvMS z=l(NG1x=Y{Y$E&h_xJpgg?}TaSPBI-AC-C48sh5O%Dih<Umssn7Msm4x9*mO&sO{` zDHSoCnw^!kiaA#MN&No0+O)K^XG_znxn8_DFJj4c<G_4AlO;W~`j}=}b_cm%Wis@L z6%p_bcrj1hVGmEo>JQ%*xVgu=$(p`e5$LYS;LyOx5SqGTN5Ss@pFw4fr>mdKI;Vst E0F+FvvH$=8 diff --git a/app/design/frontend/default/iphone/skin/default/images/i_arrow.png b/app/design/frontend/default/iphone/skin/default/images/i_arrow.png deleted file mode 100644 index 3e08a331e5e3a2553c01793a36633f80ea63daae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GlRRA<Ln>~)xptcKfP#Q);M@HjQ@(f^aRgrZA#Hr@tZ>YZ z6L*>wj#xcEb261vp@D(PkGY54rsK4H{jH9>EFZ*`j%7F8<!A}x-@x6t#h58WIlwH9 zA&TS5v-3>*lrGHDXI!InVYV)-hv3iPV5T!ln|7Ebv{W1|XNc-}xHX%}i)Bf%2?Jx} m)c4NQ|1+})I2_PDz|c44yJOe<z4k!YF?hQAxvX<aXaWEgOjptX diff --git a/app/design/frontend/default/iphone/skin/default/images/i_arrow_small.png b/app/design/frontend/default/iphone/skin/default/images/i_arrow_small.png deleted file mode 100644 index c596af540aed02785162c2abc39e39357afbe15d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1304 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRm!3HEhFR0}KQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?_nZLn2Bde0{8v^K<nQL2C3WatnaE85nHrD+&^mvr|hH zl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZB<rk7%m7Q#vqGWHUU{hfQG$1#% zBvGLvHz%*ys=`(YY_1iM4HDK@QUEI{$+lI3I4Z(7K*2e`C{@8!&p<cXz|2s=%tX)7 z#K6+TQb)naz|cV7&`96FT-VUR%GBJ-z)%4Slz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiLs8jP#9+bb%^#i!1X=5-W7`ij`p|xTF>*7iAWdWaj57fJ{tG z$}cUkRRX#c;)UD-xUqS~&|m@vn0`fKfxe-h0mw@*g}%P{mFDKcRTq~8r6Sym)!^cg z%7Rq=pw#00(xPNw#HA^NtSYc_E=o--$uA1Y&(DE{Vn9ZINq%ugeu08>u&JJ*LU?9g zN`84USiP^Wm1kaYNn&1ds;7&s63_&_%*+%kCj)bHGbbZ+OJ^rDLqk^s3l|e3Cr1ls zBU2*-V-rUwm|mCs<kH;Kyb_q+6og(2oO(e?A-4c%vrB4GW?5>ATTy<l0@%w|nYi6z ziqkx(-W1$!F~g}>ALtl;P{bldG)xGXdO%EgvITPB2|qOtnA(eg$(q;jp&tVSV~?kc zV@SoVo+;<GT>?dp-<M9B67O5LL}!XBcjtz%Q(dk04ikGntxjv4uxLtet3X*@%2WM> zbj3+Z*4z_ymmZPWZ@2v1i_*K*>3+4dtl#hXy!ZLM>T}$|&5l>R7O>?#v_5e#X=175 znZuGL()-ph3EA*I-gU2GU5rc8tZi@R^w_L#JsacVly%|MdrpyvKjj82?jIhXdLYyG z@aCiS&808Sgf-{RXi-0H{WVH>wZ}c5&-Z^Z#Vus+>iI5ofz7;1XSKtE<DM%$?g*@8 zSb5#_&Tf_?eh-~pxp?E3cEucQ_Eu2-v{dQY+Ym?Ym_v&}Jht9|tRJfu#u|Mz?Mx}) z(C6FFalDpk)9FcZi!(EGH$1L!-w;wG`b)=d=B2<JlkCkJTdb;OA1U9O`~O(vnuy(( zL~X=)&5S2Jh<#DW;(uV)&xI#b6nHm3=Jd-dxMk+^wBP~9G{Je7nwG^}zOf*kPxtD) zX3>i8y_<a!_ka8&ES3<t`{Hj;;jgt49W34t7UidZ7F%LbUG+?DM(Dyd-?R@f%s3bH ULsDME5L8xqy85}Sb4q9e0Jrhf*Z=?k diff --git a/app/design/frontend/default/iphone/skin/default/images/i_arrow_white.png b/app/design/frontend/default/iphone/skin/default/images/i_arrow_white.png deleted file mode 100644 index 76a4ccb1191177460d052643fc521da80410edf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1134 zcmaJ>TWAzl7@n*eYHCVC#o9pOWCRt{ojJ2^Htvwkn%&8m0XHn0r3v*xXJ<~5A(=Vj z%t>~#_+X4zygUUe*s2i`G$QFk3!w?^Ln&!|6TIR>DA`t8sr3p0LC?f&>_fK$Gv~th zegEZrXHKL$c2!r^RWS@xt+Y!SIs*Uwppt&wLg57+J|%74q!ag$yy_sPRmV956jSX* z8KmmN`+r5v46}+gvfZRRwOiD%$*Deu^Gutv8Kybz*{ar$2*{yc!-}y_e)y3Eh8|<P z8dET3CsCi#UT{!np(Cpm`n9Oe##=zMCsF|u5fymmfaQu_j9t<d>D=GuS+E2l{W11k zQr)RENMZ+pMh*rw7!g1u%n4x_4M#r*At*pz2=TBfC_u5XNrVDeepnjK(R;*<BrnIJ zs~Foyh%NGbKA-3E+d1s?@<KEk<za{qg@P0jbcZdXdO^$GR8o+Tt2u^E3~T{kQO)5& z5@Ttm?@BQ36<Nz&ZWC=7@2NH~aL_NQ1Wcv=A8MK_XqRNr`+WaX*v$^xh|eGw4>}q> zxSmaZC|gWANF~_GVmwglV!96#?Dk<BBs&{90dyIbj`QvkK9v#`%O$F%Aw`O@RDm-L zT}(*Q4wy{rpq++-&?Y3pazqY=WSB?@G7N`HTnTG~CbCG0tH0+)%W{1ym^O_pA;%a( zy6j*RER`%8<#UOY)m!H3<#TB&%jIb@ynnF&I_T0Cb&o$?u`OM!7#~^G?GCl|=%qE& z^h*4uNUd4#!Q;EaM~C40%K1B9AUgV(8*nP8Mn3Lh_g~%e)An@JCtp8>#oHH!!?#|w z?l~4&9EUI7JYq(w>f2|(tsmL7TH3k#bu}1;$Nw4IkeSPg(`)a4^Zfb5U(?MmIc4_h z*7GoSVCbUw`{Lk*D=jx0hG#zeJHAj+^K4;Yi(LF_??LzH?Bd4xb>rJE1g@Vs+t5|< zMe@<yAI!<x%|(%^Q@^wVlk&Z>bAeN}-xniHFwkjzm}V!7PwM0HalPi3bMnJK>#kfn uGIsX6$%A}OnOb)`zPYxhV!UF8S;g$DSI%F)c67r311N1B(v8HvLvI1jhk3&Q diff --git a/app/design/frontend/default/iphone/skin/default/images/i_cart.png b/app/design/frontend/default/iphone/skin/default/images/i_cart.png new file mode 100644 index 0000000000000000000000000000000000000000..c6e08527ab47b769604c3f241fcf8770d0cdd458 GIT binary patch literal 1604 zcmaJ>drT8|94|$AMJH~66J?$!IzecAebR=4rKPmQBD6JhZPb<afD^7)+k+N-;KoA< z8k7w|rki9BWt&4pHW|aBQNS@}(-|xits+)IV1}*4h`1{P?vJrc?tYJaKA-RFlPgV5 zN?7O@>_;Mz7D^=|Ik7Gw-XI?@;=3-_dp@x&#p6}D0!zm&S`$nX=&>{ykfPcQSPpCT zdE2kR(Ik>5h$vOKO16Qg!%&LWjiFdkBf%z-qGPQ_tu713fiyS+G4R3B78?j4dOn!S zlF?*FA)JXw@=dTJKS`;}&(d-AU~CK!ZRHUHD2!_XE1GRE^Q?SuN|#6M-PcqQn1bM0 zeDGCLDp@ih#7r>2qR=9BG&TgVnG}dg<1)Ds0G$TWs1Th><3vI<9*e`HLBR9_646Zh zbe>!!o{mMF_+TcE8+lZ!#bTjY7!=HuL4~+nE|o^7(&>=|BGQ~^z_r#$gL&1Af(SP2 zOo$OjFazLL)TUuMI3FZ3eN_T#oRu}0r`tp{jB3>ysSt(cE@=iRll?ywMQ71wTn@j^ z_dkWr$~+@XmBVH%$D|_$m%hp!%E%L%U@eZBlo*yh)5YXW49Cowm=O>vSQH3IMGSh( zVxGdwWIU<CjB5=#SSsR!gaQRY^t?E>Sili7*&HS$hM;&TN)#6rFQ#*75QEKvgsd5^ z2-D@DumPXp>R)p?b8_8QK#fFX5o|(oVZGRdp}<thJY?=%m~-k)bM<rQ!kUvyC6b}K z2m7x<&s-7iac^gBOB`m64;u)#n+RLKT^VL3k;vzyB7xG{`|T!MmO3RMW}F{b@KVyY zAFVpx^d7xhzIOqoR<Lc&@b#6#mHrZGt>brrPcfy|-+wT@aMB}9w;QbsN=yz#ir1j0 z&lZNFBJ`%{dEccfwJvL!*`c`Gd}nm0^R{_J7gRQIxMygWNCdXI#>Zp53NLs!sfT^U ze7no#8WVrg+&8kgNiA!w`DI&^`01`?G>`BRJZiaOXlN+0@B*;qU}{nO#sw=T1e*Gu zddK*>lz_iGIy#gQLC?r7CkI<wTjTFPSYDY}oa{9AS432G70(Z=h^qwz{ui%q$Y(Q! zoA;<INFDT_$0q5W&60hA67t{+&ug9V$%NGb`_~y7hkQOJKj4Sk3UZI1THiMCPWRY7 zsq0wh2RoL8o+2sUTr~D<r&C_hHPCLi+apRkZ{wTtzS<oAG^E-qsQ+oy>W`#po}Ql0 zB)guzx$oAkTTezuor>pgoZDfws$O&@Z!hpITJg~7L=faLK9N`OL$LbLNL$UNd4czu zo12y3p-1`qhOe$<1Rt<nWVBZ{mX`Wj7-e4cU+;(i**lyY&oSM(wzjUi+i6RuABk$T zXWJ^jsITu1F1yUm;T@C93nycJC#dZ&y`i&b&d|g9Es5V8C@*gbz5npuq@_HoNge0f z_I*psAD{M00RM9-l&bQhNf~_urm!FD9xhGz{I|iu!LN_Y>*nFToJRXZ1;VUxHQd~T zdzJMVtGm6ty%~ojMStb*N=Vy6F7FU(G@8Q=4Gl-)Y7cJJXm*gd9x2(ox0}Xfigw#x zHZT|4vt8)g0Qtz1C-`#q?$HxB5VcBm@Pxds=Xy+ZY)D85|3HLC%CnO7U6%qqLa>dK zG3dJqj~_W4dlJ8_@EhVHZ`C;F-?<#pao6uBkMpD(K>E?6{fknIi=+<5Y2Vuq&VNQ; ZKq}R>DKu9c8ux!)8lNQkF7Evg{{cM7bkzU= literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/i_cart_retina.png b/app/design/frontend/default/iphone/skin/default/images/i_cart_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..02b9475a900a1f4d2b84f56d671f42585d9b90fc GIT binary patch literal 1686 zcmeAS@N?(olHy`uVBq!ia0vp^dO)nh!3HFy3cGB8lw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$yA^sW~I!Kh>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v&`mZlGgL4$(K9qL zur#sMQ7|$vG|)FR(l;>IH8ij?HMcS_RDc2{plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OML?)eIp}XpbFjM%Dj@q3f;V7Wta&rsl~}fnFS@8`FRQ;6BCp2 zOG|8(fG&l2A-4c-Y+f-mn1BJMUy)d#Z>VPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&px_*As%NMWo|%`D zUtSDW@9S&jnO9trn3tUD>0+w{G(j&jGsViy($vt&($(19#L&&q(AChw$-vOrz|s)N zb#gW`aD?e~$xklLP0cHT=}kfCHNmMDloWCcfHu3N7G;*DrnnX5=PH1`Y?X=IErvMF zgX&Ge?G_`Pdi8;h(Fa8=QbfaqfT;(>geO}d2cGa#^MI+n2$-zp&G%aYa|@TJi(^Q| ztt&JAJA?vdj^AI?dFod`Um`d6!nwDcqvLjQl%4k0Es3y-ymYlVMci7VVq-9~ce~l% zmi9?Zx)YWhP!)<&oTd;aa;itg*t9gLq<;OfRN?#Yq{~b0)jWL8lRxjX-TV9R|K5}4 z`+HUBMx}wQ)Oy_w&pQlXR?O=!-F^4lgat8r-`SowN2_f2)meXi_ZE2*vATC3E6y3R z^3|8|Yl?Iqt+;mJVuHa6d6qa0k!^~*XNrDM{?Y!}!aQbP!(4^bEw|tDO+Q`A{OOv+ zjOm4a0k1_jD*0$lKDp+c;5^j?r!axTN{x%-)_)I}`ao@Rrtj1T3xXD3Jh4(xX6D(n zI3TZ7;`RP39DOW~70bK|7GIPIQ?<~zpS9I)6AN$gdvjikOBp8LBbmyr=BoA?UD(+4 zH=*UX)DiF3#ZzX!zMA#bQ2WB}MBSxpd8S^yy4Uo<k|Re1Drzsj{(4+AH<L5Yb>jhU zsjuoW=X#vH^9l<W2hI^Sx%Z&qsruK)|5@Xn7X56#bYXY2dDOw~GgG~e8qK=*vSgnW zPn&j8qqC)I4tw6T%(Krw$I6-C&E9%zmeTH;DDR~~{+#QwW=0lV*jTmqU+t6~ck{wU ztmiEVR1nyau`!~rZ`t7)^)Cx7#L}NA?tkbJEwtnK<4D=*^UkI{|6BL}Y-E7?<daDY z11eay&*wAsNz<)q<Fu`Buj+Ar_S)Hv#d)*OUWSQnokE*#=5U83%jjF3P5W%3{Xjtf z=!ydi%QvXsOlq-Se>E%LUnu3I-iwPbe-&yR;G7<O<M5wCcaFWyUitnj?J8m|xXXmr zD1Q6V_GGH?lRme_oHmR9%YI^SKFI##Xt2eN_?FVfdj3PHiRN=WRN@?dsd_$8h_#wq zXM4`H_3*>$qULs|h0%{s9TF9+p3Nsye@E$ONMYb4QJJdGx-0io*wi&vDGPSGh<Thp zc2uuj^iAe-&+~7}cE_EP*gh%BL7?S)(RK@$+0wst=9~^Xd~5d-W#*j+J?HEH{`+sW zr@4^hhDAT-`F@;}sx_b6^@s1qHH#v)mFCZrWn^OzQCHj;ed5~(P)*_K>gTe~DWM4f DX8nu( literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/i_dropdown.png b/app/design/frontend/default/iphone/skin/default/images/i_dropdown.png index 7298fc9a696b43819a3411220564fe49601188e4..27ba94c73e40f3ccb4105caaa902057cc8e505db 100644 GIT binary patch delta 467 zcmdnVag{@{Gr-TCmrII^fq{Y7)59eQNXr2+KL;C-{Jg7v&PGL5rWi9P12bb&M<;Vj zCv!tXS3^rP6JtkXXH!QL16LOlM@J=virfNUUn`gV<kH;Kyb@0rTP2`~UP@+)6;!V? zF1?c%F&V%tu*9WENujtTC^gM01-Au`xb#leV|J<+k6jiC^wCLA7srr_TS<TZ|F=Kv zz@XN~$fSHeNi0d^>@3r6L64^lAI%i@bvs8|3EXFT^fxmzGvxC|Z2^C#M|&OK^s1?| z9NFAh!6vYsaifxH^DOZWd!~&x0{JYD*c8&(l7c7jH(Ic+ddDlUIq>qMtqyOPj-)RT zyT<%6QQ=-1=aDLhKhhnm8!QAm@`J1k8+A&VA6W+MQx)KLdVE#5<96c@{<T40s}=lM zlLB5<vLA_Vydf#|{fht92nG$qy{wOl9sab)FiW_1pGnL&bZB5?_%u($ZrXa6^FUuQ Nc)I$ztaD0e0ss?TnHB&5 delta 439 zcmcc0v6DlwGr-TCmrII^fq{Y7)59eQNJ|2-5eE~HRD1CJ;6_DNrWgwYCo^MHGe>7P zBXdJTR|6*l7iT9YLrV)YBPRnR6H6t9irfNUUn`gV<kH;Kyb@0rTP2`~UP@+)6;!Vi zF1?c%F&V%tu)w8ANujtTC^gM01-Av3xb#leV|J>~nrG+@^wC;R7srr_TS;$TzwYks zO<lm2kd%^=vOq|}G@IcpQ&V6$?}XiKE9D~_-YuF|c*Uf9)<e^Xzb6iHupPeL|HW9_ z$Ve!-;OD2OPnN9Twrv~#3I>g)^RX2@!NI|^jZ(cLA|zUNXI<4=aN_>{`i;B0XU>%D z-~I3J@8t^@dNF>va(cRcqsjzc5k>nqjk8QmP3PO!^CdES#=LUBeEq|T+sX@LWOMy{ mwmog@+3j{#iIagvf?<b>`KM4%?)5;IGkCiCxvX<aXaWE>3YS>` diff --git a/app/design/frontend/default/iphone/skin/default/images/i_dropdown_retina.png b/app/design/frontend/default/iphone/skin/default/images/i_dropdown_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..5d0188c2ad4947805dd93a696d8a09b46c319acc GIT binary patch literal 1204 zcmeAS@N?(olHy`uVBq!ia0vp^Hb5-L!3HD?X4LuvDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_)*%u1Od5hW46K32*3xq68pHF_1f1wh?E1MMpc5|gu2OB9k) z(=+pImEP~(ucVNfVyhHx>TBRz;GCL~=}}db8eHWUl3bOYY?-2DZ>L~WVFffGH?<^D zp&~aYuh^=>Rtapb6_5=Q)>l#hD=EpgRf0Gw!Z$#{Ilm}X!Bo#cH`&0<P{GVZ&(Orc z(!^3n!N|bSK;O_v-@shg(7?*n+{(aE0Sc6WwiTtMSp~VcLG1$aY?U%fN(!v>^~=l4 z^~#O)@{7{-4J|D#^$m>ljf`}GDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yc0<dBxCR0tT3VMPh-zp`HQAOE87LzW9~q=E7AMmjtCE+>6!V;*iRM zRQ;gT;{4L0WMIUlDTAykuyQU+O)SYT3dzsUfrVl~Mt(_taYlZDf^)E`o}of`W?o8u zc`;bMudkJ7UU5lcUUI6Zi>(sS1ij466e}}RV>4qHb3=1WCv!tXS3^r9XJa=v69X4F zLnCt|Hz$~0m;B_?+|;}hnBEkGUL%}(K}jLE0BEyIYEfocYKmJ?ey#%8%T}2<-D2j3 z(>$o&6x?nxz^PXs=oo!a#3DsBObD2IKumbD1#;jCKQ#}S+KYh6nmfC3Hv<EshNp{T zNX4x;GcNKr83?qk6gFs5HfYLgkbb~@-l(yV>FZQ+$%DKF%r_m}6Pl}3)0?JdiLO6d z;H#&S+yCYCfB7w<L8lUYa)o-<7#c7e1JQ>S4WDi1uX^#b&*SKRjXiA^hnpVjCkj_g z5s2nW_;`A*m{xUWsi;8YtYuqW^ExJYuCC_Wxm;0u&FV`lzMh+B5tp^0d^^wOODo>3 zN!D<Bab&{wAk~J?^NN1g@vqQbD^_cu^Y7rJj6~DxA+JS`2t5mHW~~eCwmKpAHY+Hf zedETJweJtyx*pcpF2CgJidPd~+3RSWKP)D8eQG?zo2f;Q6<6pp=;+*wkZ>>-x7L05 z>e%6g!XoZ!=64%*2y<7n=0)1DT{v|7q2mWtIk0EIUfP{y&dA14Z`rutnmhb2s2uTh L^>bP0l+XkKM(UWX literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/i_gallery.png b/app/design/frontend/default/iphone/skin/default/images/i_gallery.png deleted file mode 100644 index e1d0deacf1e75e08b19a66bb82d41980d1ecbd44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1129 zcmaJ>TWHi+7>-n{TkN8ui<ec-rdFyrNzORalGwCPC#{Y&b({`3>pe|Q+t4N_Ca0Zg zkySeEF16rO)jo*@sTHk?`r-wB&?*ZeR7IrVgD;BLU5cptw4T&X^}*RdaxQ$|_g~I; z(i?BsSX{KUh+&xG*d`@G$5Q{DQ%Jv~$3X!dmXO*MX~fMWt+|Ma7`O?6n5DI#1k#MI zeSe`!hACjpWQwHJdP&C?r}-EzV>y(~FqPFAN7LI70ZpjIv}N}1Yd2Y78Zx^rtO}|V zMXlzhZWlFnHzf7$HeEE>>MBr~k*I)$hz2rNyX{FCnVr;?=-l7tSuhD9Z8G~MsgxQA zQS2fR=7fMQltWM+;$TP+L*iNx6rjMvATLw|pdf`SBmsh{ho#Y6qghHQbyKnEN@iOL zaU`Bkr_)?|9f#c(9*UyK3qd{@3{XVC>#~WK3D{mqPC-GQ?wSrUu?>7htqFG!nWdS2 zDZz54Wo>V&O|)TrMss+`34TdApsM~q)Uu}09!a3D`F>Z}OLjSkPaqF>xH>(!<`O@Y zBSl@L5$q;0ZqIcw-iitKTCoG7jbRRgZKiGDv^R-YRVikBM6-1iQ)HGZaHeTUP^?p6 zMYudt9u7fROB)V@5f}+ZLp5S;9fUcqg7ppy*(Ap`zH%$_a(ydU4vnlJ*X%?_or^6n zS+Zp2&n1*sZ;ET=&n29f%hP0d|6sp4=-d`{k3XHZEnQ3-AKBFHF17U!r`L4SEAcd@ zM3R~DHv{UASupSS<qxwj!>J3UKOelb_^0+K&fIR{Naxt9$0sLBM$I7pxL|fwb79Yh zIfJ)`ZbZv^*x~W3qg4#E$2_;M?Qo}j`|!*cJCCf(!ot(>vHFqMhtBWEW%tGY`n@B? z)!Ff~Gk1^oT{+OZtZ(or`uCqZ1J5QV-VT0Pv8ccQ;_%%ev*^^|^RBA*S2p+J-8cF_ z{daF+Wa}1m=i}<^^}>nud*&|c+ww<ZbMeTD;jtZ|s~eB4{^hpw>(J%L2j9I)Tzv36 p9{6o#yk>?xYyQH>u9JT<1x)GLv6b5&-S>YXOsuv+Iajl{=QH2KdyN19 diff --git a/app/design/frontend/default/iphone/skin/default/images/i_menu.png b/app/design/frontend/default/iphone/skin/default/images/i_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..9263c5fffe53e90f4975e48271cc128d81a9798c GIT binary patch literal 1053 zcmaJ=O=}ZT6df%{trlyceuLvwiiKuA(xfqC(l*IV+Ng;o2{!7clbP3KY-iqd=EY0{ zB32R1MyhUH=*lh%D&npvh*S|b!Gb9E4|JtPx=?q%Nt4utap2AS;GA>Mz3;x;V~LUW zwnJ?MLA1w4g(RN$;nC5$1OGd}-RZ&8K_q5S3QnS;WC9|jz$_qRnv?@cAStsmA3%U0 zS|~N0L7DhjUWOViIT+g349q5oz>sZ7@)SU17UWbtNUgtoO_8b+q{h8*Hf}^fUL7r& zAXQ4F<<gYwSE!*uGGOyqKm$l3ZEae&csoc{b$PsYjv0!qLeNx@+BB7kkC72*0@6#f zE}0$R$N>+{d04;4-$%Mxj%7GE!}?qt%X@u1%aOH@!qH4+l1~cJS}eQ^Qh9_7o?(i` zB3<mKp_yYizu(WWZpQ6)VT8+?)sbYobgR3rAOK4?RRgI|Cmls83kxVnVW*oZXhuU; zw`yg=1!HW<U^tp}QmO;v@&7|Lt%0^s5^VYXr?8ctH2{+Y7A%-DzPQP5CzQcQOdug> zrXifJS8*&45w!BqAR{R+&5`4(uE3&I#mD1(Ot+Av%OEBMDXc)Ns={+(Sd4I@$LHZ9 z94B&Nk2@5OMo;>DA{S*NY@I7Wxu5|Z)w#+R*V~lqw1Q^f$O16cD?o{wP$R1;^J;T1 z?xuP*uF~8~e^V}l%`ncz{&msyBiudCveCA9(`bC4<8C)`Tj%rn3VssvF(H(;S3lid z*?D8QLnzYGmJplySeVJYy?SBf^6A5i;b7<Xxzbu|ue82={r&eZ&-?a#UQG!4@p5AK zgT3;RrGVf|Z5uWplSh;D;^IaLQ8&k|mBCYQ4%}Posw_R)NDM4gcKtrKaQ|I7aP8Nn zA3aZBbS+C_Z?5gt&vTWFU(4(Mr}q4<C*_CI{s|(xdIEtn=X;$88xs@4v+%^+AEuvG AHvj+t literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/i_menu_arrow.png b/app/design/frontend/default/iphone/skin/default/images/i_menu_arrow.png deleted file mode 100644 index 5bf141fa308c9266d7d4a8430131721c717ee913..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1036 zcmaJ=&rcIU7+q)rh@drG6l0t$>P5T1Xeql;N!x9q35!i>q=_+MyE~-|?9Q?~(89&y z!KjJRBL@#0Jb3cr!GlpT=>a_%j%qyc4;Z2cO`70rX^RKzCbRP+@4fGR-+c2RJu}(g zJJ?H6RDWtp&XD;e8Qncy<p0fjb(>7*a3Y6iQ301!2U1ZT<snF!>H^F_RbOBE0LLlH zM;qB3&MDK9hD=8FFihFB37ewEC(5>}EkO+OaKW%5^!L~AXkh3OdM>1JiXDeVV`{^J zvl}y6ZDUCjb$a4D7%xjiz=T)@WpmkbrE-L>>q=zp9kVp3L-10BJ~EY4(jbl;2to`O z(6|vEj071z$caJm8W1?1V|jt)!U3L>LSc#HLF1!IG)FH;89CXAMRpOoh_NlPY^hXY zO2Z6t7Fb>sMV1p-K?o2;z+JbnS`Jw5P*XvMuI3mvHjo88MKzCBafBvLk5Vx0maOGA z%0vprmQ|bO8O}?o2~?E-Lrt@Vc5wzC`~9b|n_agdn}IG`bu@Bug&{ALEyW$EV&r5I zT5eV`T|^kUMP!5cY>45(oMGvx<ks<uBBd-BtCj{+a)c%djA7`KAjsj+D94LJEXMN* zE|!p!iQ&=EXksKNa=~zuD<f^ygcfdc^<%Ekmg}{GX_Lq@bc{8qCmm#hddiZ~&PzC% zY^&Gc>g~O7ZMiHl!+IC{*F`svNcVWlR@;(ItMQ>ly4@jd{rG3?3waWilpM{LKj&+Q zhj-5Sd~x8P>^vCgn%+58eYyEd^ra7KhkkqT{^iZBjuSsR4%VL6tS8iYKYOqDX>@PL zR~_5lAKTozSm?a!XXU;5zUr;*+J*F^zTKNb=Sp|>{f$clzvmave)_swd8VG;UDU<p hhtVsFFF%CE3gx3J)qVK(W6vA!eWnsK@{8E~-9OFYN{9de diff --git a/app/design/frontend/default/iphone/skin/default/images/i_menu_cart.png b/app/design/frontend/default/iphone/skin/default/images/i_menu_cart.png deleted file mode 100644 index 71e33295d1a1b6886e3f50f82eb9f0aefc118600..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1155 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~q!3HGX7W?Z1DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49rTIArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{<S3ODsN@GWpo&B*kqDoPEm@(W3>%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}mUbW};_k zVqj@vsiR<IU}&IkXrymou4`yuWom9^V5k5EN<iC+Qqrt~T-=~`0eQAc86_nJR{Hwo z<>h+i#(Mch>H3D2mX`VkM*2oZx<D1W#g%y_i50qe#mX=fTvCgZi!uvJGV}8kKqe+8 z<(HP&Dgj*z@j`9^+}ONgXfOc-Our(rK;KZ$0OTc@LSJ9}N^^7Js*6j4QW5UOYH)E# zWkITbP-=00X;CsT;?k5sRuxz|7o{ea<QIkH=jXseF(4zqB)>Q#zd*q`*i_F@Av`lL zCBM8Ftlrnx$}_LHBrz{J)zigR321^|W@d_&qouQxld-v(rIC}Pp`ojRg{z67rJ;*~ zv9Y7Mld+2<Os`9Ra%paAUI|QZ3PP_rPQ9R{kXrz>*(J3ovn(~mttdZN0qkX~Ox$iU z!D${;ZwhX=nBvr{4|I$^C}NQ!8YToxJs>7L*#bH6grAxROzlO$WZmpvHVK#|zI(bj zhE&{2`t$$4J+o>9XUB8qkLDWtSdVOSIKy=$hsD6!Lza8O4~8S}8)ry%gf>=~3)Hts z`JMPQnMXmN!O&iSoB89)|4SN`4WjLsK1M6VIVB1FaVdZ1rtr_JiSf+~HXD{lwki@E zIK<daScr7|7kv0%XF`>j&a!#zkN#hn5y5+8f5QwxPdSn3_Qnds8SO_|`vRo>k|!QM za3f{`<I=4MKK3x^Ux;D8^qXNeBbUP;_KuwmH+mct>{5?R5`WSVAvJ5u#>fx+QhW-% z-!J@SG1|b}!OygjiLZV$)5ju(dmKmRyqM(UP$MSQanFKh0`nvL0MkbdjBE^+UM304 So~8$YiUm(sKbLh*2~7aI?R=a7 diff --git a/app/design/frontend/default/iphone/skin/default/images/i_menu_retina.png b/app/design/frontend/default/iphone/skin/default/images/i_menu_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..fe77744ba35b0f117012aaff08917da1e561cc84 GIT binary patch literal 1030 zcmaJ=O=#0l9FL5ZIabeZyTt4u=$fy#D-ErqOR}wEYV9g33}IRF+J-H8F?n0lUfc(Q zI@nQ$+fl*O*bbsF#wMPG34$Q%#G8kKB3`}dOV@TDtbv#J{*T}9_y2tNvzf7AcV9O_ z5W)1gl*9XFyvVKq{;xh->cCqsk_%`87EwiY0Flz+3?S2{S^_zs>ebt?L4qJUC?j7$ z1?8HcL6cT}4DFdVW)nnW*t1n_79es4lng6L{n*{7NJCFjlTn3LY!Q@=@tOlBYMH!N zo7LhvHGG9kcmftM0a8iNoU>fPOHy@R0iXSAh9c__G@GPOf+{FkQiKj5qcj`R*ddM_ ziqKqyjYr~xB+qgz!|@Co3vsLvjR`DAHa-e_bM&H+lSUi9u$83B2-yO|R4Ns^5~iV3 zVz_ub&agbg^C64~xm63PUdVC>nhFwdHOH`#0WH#3RA=BkN>Vt|lN3z5C2P5jGU0+T zo@z53&H5=dfr|2fsA;y)F3N$^c>gKv=BqYfa=?Z2j)ogo9PnM)g6IGhK_?I4T(gSV zGDOfVLz@&QqBKWN8kP<#ZXK^ELfUeXYH1)XB`K^x8-_0M;dq4QMLrhcM2?fWR2W+$ z@=#2c!!a?%HMtVh=1pLsCRab@hTC%eQ7~=nSptr+0Q6A@nq)m?!Dt@~+g7i^)!WCy zwdFE67{+hxUyW{F;py>@t+B;MYw&@Er`^G0y-<4k6+ekuT1w@;Pv73}1Q*#J=|=xf zV3qBf^12>QpL>paMv7-I^gn)(`E~Khox9&RH$E1rpZ8wq+t1|A-SzCj^37LUzvcDX z+UMSmZE@h;7kcH*;f8gvywrKLe>8U7ci8zhc(7Jk5d%|KtH*)C^M&ob{>@7tt}mV; W_VnJwE#>8V|7E7-jI=c}z5E9`hD(kB literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/i_menu_search.png b/app/design/frontend/default/iphone/skin/default/images/i_menu_search.png deleted file mode 100644 index 64ffaa430213e755d12dadfce5a1bce8e614927b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1602 zcmaJ>drT8|94|g55@b~hXvf^`V2H7_*IN2GC@r)Fi?)N(NN1R#v<FnUUb&uaL7Bi( zUE|n97ZIW;W+?bVP~4^gQE@=PZ1_Tl8W=-5of4ujkU(}t!2L0H$=&af&*$@feR9qO zRopT!x)+5)S*F+^Q<JL?`M&S@9{IgXn<B_%6(QFWNmx2z)8Pmu+JL1YfCANJAZkQs z$jxa-A}N%Gpi!eGw8~Ae9z&TrH->3P%_N&bi4@z-I(-&G0BJ~u(If(gu3QBHqd^2F zhbtkaS&C#DH{{_+Ql3hq&&$#a4WKv*h_u6`0E!Sgz>a2{EU;Y!PV2(t-hIsifoTYl zB?8|jrBx;XQVd6ca3&O{hj?s&$7Qm)kdP~6033)7vDh3I#1CUba5x`^*ucyKlF@KO zI;@t(&cq^5A~2I6%rJ{(v)P!o^-K)UV6lZlAq(QLIGivN5oXCX5juOA$r3cHAVVyA z+-N3@m<ezz>e8_7ga{-veOm%*o|83MX4*tHjAhrES!^ccE@>91RQ^8{Md#2KLXEu3 z_dkU#np`u&QX>{@JFX`OmmcH}Wrn3Vq9ZU|gJIdTT};Tt2+Wd+nE`21IFk(|8%+kx zW|_t-m9WBOA#^4^qL7I|Qh{kS8epzW&f~`Nr9w_jIGZhp1W>pjR=|ys^ZBvd^^kCu zE5r2LQN%>dat-gevU#~~E1+gFvJAnER>TmCV<<3PGHjebm*{!*X1Ip=bBURk%OaCu zxd;2NLC;>1?s0GDY)c;IjE|T|x8tO(k1uqzQYZ^9DP++a`)|blj!%6PX+QtcdBhqT zR8=T&+&AuNI`lev(}{g6eXkXGm&gMc7wJw}3O%6QCGL&szur)OXeBLxE^U_Bf?eP2 z=cQGybFDiVS2?PTKpXEkLV^#sE7DCbhbqRKCYE<sWhK;hOKOMuQka9^-P?9Rd(h7# z87%P(@pVc<1E=asRcl;4I=wjLB@DbQ@(8p}RCU$WWgK_qKd8C$@Gke(MI-m?YpLgl zBgI{hAEWJ0@w&fqcuwllV8sH2OaG~_uWyZY&yCXfs?B^}(W{=W%wx=sUi0gXTWh<A z@GJSAA8S)mcJ6DrdQ4qYQ2+2n(vSJW_MIa=w{Q3Jhn_6y+tpZcq|8U9QZ-%NayIIR z*2ePoz@}4&4^!597HLl316DXYj}~ni@vn8<sLUOBoc;8ZBB0<nbzfkslO~TA(7c*g z`SlbprhOiAK*6BxU8(W-tVUCyP6WCKE(qENa0xXy^m5s#wR-bu$?DaCi`Ft84G{4e zg%yP!H4n2ToHFlI_qZCr;x3m}vi$jnuis>xz?>&5ci4u$l1imhTa>%C4FAy5jm?lZ zps$Updf__XyZ317$e9}hG}n{WqrdiBpP44GC(Yf%o_qA)YZ>PljGg(3p)`D31HF23 zva#jwhK50Jix2dof4r$=IA<xBzO3y5dQ-3}t78y}P^lazdL%jiODB14fyn-nvu)p| z)luW@LA&9Of%rddaO0)Arl^z8pZ#w3J}aR5Ughz{gRjO{u=7SZ)Um`Ce)+BYi)27` zKX!8zuUT|v>#i@Xqf_;pPy1ciRWBBI-YN$7I+k=!en}sR?a0eq5PB^krR7chm57Ls zCKmU3RYbOxbq16;`0IAi{HfRPY<M(AK^!fGrb|9x@7P%N<p#g;KXP`!$p=f1PWh!$ XT3bI@5;xfbyZ`D6xk`2}Cbj4vQy*^S diff --git a/app/design/frontend/default/iphone/skin/default/images/i_search.png b/app/design/frontend/default/iphone/skin/default/images/i_search.png index 7c0cfa354c086d3a1685fbf265fd128d3429ff7a..e2a5d9f028cb3a595aa606e1e07a1328eac2413e 100644 GIT binary patch literal 1244 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8<fR&VF+bTgE72zA8;GAESs$i;Tpqp%9W~g9hqGxDg zU}<8hqhMrUXrOOsq;FuZYiM9)YHnp<r~m~@K--E^(yW49+@N*=dA3R!B_#z``ugSN z<$C4Ddih1^`i7R4mih)p`bI{&Koz>hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s0<RzFwUtj!6b93RUi%Wu15$?rmaB)aw zL8^XGYH@yPQ8F;%(v(3~6<9eJr6!i-7lq{K=fFZSAS1sdzc?emK*2fKRL@W$JTosP zzq}Z%-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=QnX!S3iKT(LiII_^p{t>VrMZEVrIC}V zxsidTqmwyIuS<S%X>Mv>2~2MaLa!lCy`ZF!TL84#CABECEH%ZgC_h&L>}9J=oNlpj z#c3W?ZwgMgSh(TTs}FRHJ}6?5A{r(HOg$hbJlO&{@Pwb52Tbinz+}y}eJvvc17m=v zi(^Q|tvQ!twOImXj(@alTk6_5<@hbvz$weMcNV!<KlQuUc>RfQhcwqtp`D*YE=^l9 zHMaA_v&`$?ulUcMndY;5xt(e0xj)b9&;9KG*mO8SqBg@_lJ&{Qr$>1n+wdoND*9Hf z6coLaC_epvYfnOG{Qd)$UN0`(F{#OUV4-zn-;OrFoJR(alFc$$&qf?yYn^%dx#8*} z{-kYxThiBhKRh!x=YU3Bl2$?c-ABFWbY%Hn9%H^I<n)ivVr@B-;<uQ(fUmD)%$^AD z&G3!LzG9y`H&8)k{pva19Fp#0;T62?GAq@^3`B(|IQl&g;`G0z{qMpwHG@vQ^nLE4 z&q@}|f8ox(Zt*R<)!WXmIFw&|WS!=#Gd+3=OXuC<Y_Is0-X?OTt^7IrmQX#b>$%t8 zC7-`iG21vI%rrDN`}BIlCvm=(%hulN^80I5wR%CE<PkH!I#vk=Nnh8$zaC^h1C=+P Lu6{1-oD!M<&V{&8 delta 380 zcmV-?0fYYB377*hiBL{Q4GJ0x0000DNk~Le0000F0000F2nGNE06W%|N&o-=1ZP1_ zK>z@+$TtOw>5(BPe*r2<L_t(|+LY2kL<CVB$MLtji6xfkGKaL3P7#w%QOicBPEp6Y zbm+Pwx<--CU1HOrYj&@5DP=pQwGk;II;Boais<|D8~#nZt^M;c|MBKG|F>@^6^5ZR zHHCG|B8wNCU>6TAQEAg};T-b{`WnD08dz)>UcjdM2uqm2e;V%evNDEkIK{SeT<<ky zUjbV_c#27!Va86LQ}7uj_qX273#Tz?!=vgi^<b;I(&0Jt{7?8(eXsk!;`J{ZzA;<s zZxi%uIR)!B9O*>;;t~21!8{JsSMg>~+vy~0$lwvjc)}Q#^+G>&MC-r8@qb-zG1=B3 zR^ppX5Cn05LaXgH^>beJ#qHr51&m_|mE`13wSjHB13S4>UEl*n?V#4<x~m;s{kIW) a3orlxl{zmNJ%cL%0000<MNUMnLSTZY{i&@0 diff --git a/app/design/frontend/default/iphone/skin/default/images/i_search_retina.png b/app/design/frontend/default/iphone/skin/default/images/i_search_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..1503674588de60c928f6bda25c23ed70fec847f9 GIT binary patch literal 1409 zcmeAS@N?(olHy`uVBq!ia0vp^N<gg0!3HGvT&~OkQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?_nZLn2Bde0{8v^K<nQL2C3WatnaE85nHrD+&^mvr|hH zl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZB<rk7%m7Q#vqGWHUU{hfQG$1#% zBvGLvHz%*ys=`(YY_1iM4HDK@QUEI{$+lI3I4Z(7K*2e`C{@8!&p<cXz|2s=%tX)7 z#K6+TQb)naz|cV7&`96FT-VUR%GBJ-z)%4Slz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiLs8jP#9+bb%^#i!1X=5-W7`ij`p|xTF>*7iAWdWaj57fJ{tG z$}cUkRRX#c;)UD-xUqS~&|m@vn0`fKfxe-h0mw@*g}%P{mFDKcRTq~8r6Sym)!^cg z%7Rq=pw#00(xPNw#HA^NtSYc_E=o--$uA1Y&(DE{Vn9ZINq%ugeu08>u&JJ*LU?9g zN`84USiP^Wm1kaYNn&1ds;7&s63_&_%*+%k12;1h6BlP!a}y(DLqk_XCs$KbXJcmr za~Cs9GgDV1m|mCs<kH;Kyb_q+6og(koO(e?A-4c%vrB4GW?5>ATTy<l0@%w|nYi8J zjMF@*-W1$!alxrqALtl;P{bldG)xGXdO%EgvITPB2|qOtnA(eg$@&l9y3-5{j9)!n z978H@?U}x?=&%7#+hnx`3ltI-7$h7>SO9_>fJDNE1b#CEg9r;CmM{ni5ReEEFc1hZ z`0aNu)9UIb;pMx8Js#bdUw698$n#L{y1iHIe3hc!8Ky0awG>;wRsO*3eF`fd-wgV# zW$?-Ccewn5o}J+t_nU+&`*V%o|INs6Ynag)$Iy1WiK~V`aJzw-`t7w2CzI#PZ1nQ6 zeY(z5ZmkD{cfeAv&=haAS6lWwewk~~A6vk-Dk_*k=h+#Si|09yXm>^#eLmM0nDF-V zCf3M_zuzxB*_PveZ!4!xlg1?R&;>$sYA0kr<!;KAUl?%BMO0s4j`Z6G-G^P$+l)k1 zrkVOI6q!7AHSb1UjwKR;OC~!+6<s+Nv|ysci<$jb(=SZE<fUNx`Dg#aHl?f%1$MTS zjCE^T7uOiNe{k4rdY)N9%%%4nyNdJiZ*p5%ziDUv>MT|`(w1rJ7qlsAf-%oN=ks|F zqVB{8eDwU?tXw!ZRQkKJy2P3jOkuBN_PBCJ9(vR-=YF4aa@>S++27@jTR5lsf6nRH zuXxB%OLw);GmYar^fg=h?)m)Uym;<cPOy}KC#M5zQ|^J6<tdLZPkor{HTh$Y^{MH* zcGj9Hc^sbObS}@gbiT^tDArHke?8r^&4}$w1+ReknfOg{+$@Ku1aSQm-4@Tt#t^Dl V@&8WU>3^U?(bLt>Wt~$(69Dog{E`3w literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/i_star.png b/app/design/frontend/default/iphone/skin/default/images/i_star.png index 6998d82b8089f5eaf47199592ffebeec91f96196..1b6389315045410160ba5e6d3c42a5e0200bf084 100644 GIT binary patch delta 1068 zcmbQLu##7?Gr-TCmrII^fq{Y7)59eQNQ(fm5C<EOjK1(sV56ccQ;fNjlbe~Fxv{y0 zi-Dn`tD%#Lv!SbniIIu3fu*yBnWd6KMQ(wwua!%Fa%paAUWuoRtrAc~FC{a@3aZxx zm)^;Xm<(VR7~)c-q)=QEl$vIhg4+TkTzV(#F+0^CQ}i=qU|^Q@ba4!+xK$Hkn<3&T zQuldt_0Ih&<(@sqG&C|caC%6Ida6no9P?|rk&&91ys))5WAR+GFr}uosRx`kTs`L0 z(~%&+!!@hI(`Qq4`R>n;%{NcqaqP&$wDi2Xec$(f-)H{jQiOb=TZ?>XH`C(Tkws^d z1m?tEJ67jk&ug1L#k8&S(zK|El475iCuh&E^DjF$!SVWym)hP&X3SUGeq3Dm=<C-b zXU>`4I<NXa`Q7m-uiK{k3=7$>3;7yarAvyReEDJFze6VuR$1h&UE8D?5gnDAnN@b< zEys*Tqo_Qs_kLY*`X^6DO;2D>wT#g0C}d}l`E@nO&gXyXj)V1=7}sty<vey{UY3C* zhu_qIfO=0q)l)&rK`A_MZ&>VEP*c7^JK<(fTEz}^i+9&7Uc7nDskX>vv&B`rw*U7| z&srn$!*ou$&(~v0lP11<$=7$iTPbA0V<*E1-f!Q<j@qWa(Dvx|VY7QIlo)Yr|8cp3 zKMtum`Q-+0|7^ANemY^YNPW)~^Zb=T2_}_Gp1X19J%5_K!T!2OUcM2J#cqzZdvAnJ z``()HwU1?QiOjUKt`!Sp{;-Ovr|E?~^E&YIsoDbJ)G0HTf6n~1EbK|Ym!kc|^jY~< z;%h8S&xb`l%Tl<}baz(j%l+S&?^x~?dCmS|)mxso7wUD7yplRnw@=|m)15`~^_<*s zS_z)>rQViud^>le;Ahd^6WnRs!RkNqSD$<y9>0kF+|z?z9_(2M<7Z9Te1G-|PX;Hx z6MBl1gB9+)eWrH$QCh5Zy+NOz`PYoBH@lB|Tt0qO?Q2=5y_@t#rRBODH{;!k)CApk zq}4hduya~A^{b)Dxdkt@J2ziTKl5u<)QPM0rpt3|C%129cD{R1^V&oKrvFl*#gEdL zoO_V^^HE<5hoIIAo~K$fpVvH_X|smiW$(Nr*_U6hb^G<OXpLII+t@{KySHwWi_e@T znJoEsUEA>qJ%YP)bvLi+nA^N{(GHD|b~@`;b8Bo~y<@{Et69zt&%~8W^EAWES1YD( zoirnF_ar9!i6+x+cXB7)y&w@cP4dbI-4oAk??1~uG^v&A-8PB6Yg_iL=h)k+yXmLy a0fwhBYrVKW%k=^a00vK2KbLh*2~7YKUDCDy delta 3499 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 diff --git a/app/design/frontend/default/iphone/skin/default/images/i_star_black.png b/app/design/frontend/default/iphone/skin/default/images/i_star_black.png deleted file mode 100644 index eba185915410f4311e72bd22a25cd5e520f94e44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3540 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 P|5--*m-Q-iuSER^p5<0S diff --git a/app/design/frontend/default/iphone/skin/default/images/i_star_blank.png b/app/design/frontend/default/iphone/skin/default/images/i_star_blank.png new file mode 100644 index 0000000000000000000000000000000000000000..44ada0fad1b6ae7d902cf957f870a3b6c249f9a9 GIT binary patch literal 1905 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 literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/i_star_blank_retina.png b/app/design/frontend/default/iphone/skin/default/images/i_star_blank_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..00168b0609a7370d34090481d25fc1d160f7f58b GIT binary patch literal 2427 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 literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/i_star_retina.png b/app/design/frontend/default/iphone/skin/default/images/i_star_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..38991f643996ff9d3fc9ddca3cda599b8908c81c GIT binary patch literal 2054 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 ZhAM7q+?QV~>0kachX#c+>UQos{9o<JPmKTo literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/i_tell_a_friend.png b/app/design/frontend/default/iphone/skin/default/images/i_tell_a_friend.png deleted file mode 100644 index a698adc8fcd1b8d19d10d28d2d2a0421ef1c64bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1865 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 TzSkF6e{P{c^F=2EmTmY4C86`f diff --git a/app/design/frontend/default/iphone/skin/default/images/i_view_details.png b/app/design/frontend/default/iphone/skin/default/images/i_view_details.png deleted file mode 100644 index ab4f3745209ff81e404c4fea30cefec634a69d1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1694 zcmeAS@N?(olHy`uVBq!ia0vp^svyk41|*NpQ(y*Ck|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9<K~ zz|zE0N5ROz&_LhNNZ-I**U-Sq)ZEIzPyq^*fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD<cE0=g99h1>$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;Np<V zf>iyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh*)icxGNo zet9uiy|1s8XI^nhVqS8pr;Du;&;-5A%oHm(Ll+}w7Xu?lGgA{oLstU}BUf_^7c&bp zCu0{gCo^N1UYGpj(%jU%5}4i;gkEEudO=Acw*Y9fOKMSOS!#+~QGTuh*vnR#xZPra z(>$o&6x?nx#Hm*w=oo!a#3DsBObD2IKumbD1#;jCKQ#}S+KYh6x^`3kLSSwY@^o<w zskoK&=l_5E!wJkjJk0_<R#{g97xzh(UP&ky;kNU1b8~b0W!i9qxx=(ELP+bIOvifW zk9-RI8vTve-D(kxH*G#1c*`MX!Q#cqPhPyxP}J8yudSkTgmF^E_jh;u+xg||?(MJt z->n_KZVoe-FT<nNTS`Q%1(v^l_3GI1qeoYIdU$+zz}+dXA6FB(CFA1S)6@0!*@~7k zfAr6?_Uf2Cd9&~f34d>I@64b}Cr(aQpRXISA>sD-_xDdbHhSv1b9QufojZH>Z0W>F zlO8z-mkD(IZup@yC7<Vrt3yuznin@Wr_WdOpSS1v*VoriI=o}|l0B-cqhqsr#}12t zfPe|Yx<9NpZ`!1_;pJSj+$i>dddp2Wet&<z|NFOZ>*{}h%axk&TXg!}mM)euJG*_J z4&8q%D=IAN|NlG7aCp9bz1`>M=jUgwu&T|NHIpyZxZz1d);Z<Zj58UHxKq?jYA4AB z-MMqe^ybZ*OCLRY^dj)shlhvRuTPsc%~oOCym|K=f%%zPp!)f_x#D`UyIA^m&6*`u z&dAs(`=Tm-U(L_VS65cvjo)9Ft7y5Tp;JmEwPt_a-z10Q2j1|VfA;U+zchtX1)ikC zNAmCQt7V)WH^FMc&6KGxl9H0lCp61TGCMmndcI7bVbQ@WY*X~4LrCwh!se4&7ytkJ zJDbVGVQy#VNr_m#2pf^6B5Q&F%uN;v9B10SR1ewk=mdB>C^qvoygJWx)<;p>x3MTb zGjpZDg$aipoVQ%KbhLe`_w+CZSv%p`acODKzRZ|0!!M!Z!(z)9QWtb?zkBztTx4qS z&!0bq97>Nj)VQWpChV%(QvUwlSBGa>ORD%n<l8K*t=XAYD_U+*dSZ8hXLYBr`o0BT zoqT6b2{~j53(Qtp%_!C;-|+G^=ZXTBkB+U{2Ii+2xT6_O9{VwGl;7~D%JJ$heN$7> zkcw|ig=(E^1p|JD+Ejmg^WG#|RYgth7Q@Pu4ml1748<EP%K!cO>HgwkN#oSyX%1Rq z9geA!xk7&M3Cw4Dbo7AOp~6+$m%GhA3{L7R7Q4xsw#cvwBrwExt^IDdDNhDeV|cpy KxvX<aXaWFs3X1Rm diff --git a/app/design/frontend/default/iphone/skin/default/images/i_zoom.png b/app/design/frontend/default/iphone/skin/default/images/i_zoom.png new file mode 100644 index 0000000000000000000000000000000000000000..72d0065d4530c71992c7b6ac0df65f49d2d33426 GIT binary patch literal 1228 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8<fR&VF+bTgE72zA8;GAESs$i;Tpqp%9W~g9hqGxDg zU}<8hqhMrUXrOOsq;FuZYiM9)YHnp<r~m~@K--E^(yW49+@N*=dA3R!B_#z``ugSN z<$C4Ddih1^`i7R4mih)p`bI{&Koz>hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s0<RzFwUtj!6b93RUi%Wu15$?rmaB)aw zL8^XGYH@yPQ8F;%(v(3~6<9eJr6!i-7lq{K=fFZSAS1sdzc?emK*2fKRL@W$JTosP zzq}Z%-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=up@p-Fg@vnyiL-&Bp{t>jxuc7dn~|xp zfwP;VshK5AuS<S%X>Mv>2~2MaLa!T6y`ZF!TL84#CABECEH%ZgC_h&L>}9J=+-`Bk zX&zK>3U0T!;MA)Rbc{YIVv!;mCIn19ASOK70y*%6pPC0u?M1+3z46pVCk6&a2TvEr zkcwM9muxj$6J?Hnd~DHe9m#Vlx?CxUO+Qt^=uVJ}7>}Ep{&pU<W@|y$m78OaDl|(w z#j$za<YCKKb@i-#xh&<&-`C|OR+8`b+s!>!Iq(1HKlA?=f2z4(F7j5wl|AOkV}b4) z#Yzuf%{(F)HSrjWSU`KM&)?}8)@L3{T=iHeuzJP8ZTm`Hh1Dmz+RI(+ko2uNsxZ%R z?Wg}jw>Pvg=_E%a&)vXwWMfm*6!y+}limk5O$;#oTGSSOR{PSO`_uhR9?MLX2!ABB zYD1q`&11!wRlFsOIn8$*VP99!YxE_NUH{>c$UVvN+%Xx;c~wf<4P}>F)VQtQ@6LPU zieLGP0OzI+T}CgC27h3llclgyTl1*&F@qNUv)Kn4?`{{5y7+4T^o*3!R72V1)1^h+ s+Jz2tw_1Fhb4PjcyIcQf{}N1K@IT{P8L}p07N~sjboFyt=akR{0FjER(*OVf literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/i_zoom_retina.png b/app/design/frontend/default/iphone/skin/default/images/i_zoom_retina.png new file mode 100644 index 0000000000000000000000000000000000000000..3a8572dd95ce82d680b3fa4cd9f107d7523b0248 GIT binary patch literal 1399 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i1|)m0d<g|ok|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9<K~ zz|zE0N5ROz&_LhNNZ-I**U-Sq)ZEIzPyq^*fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD<cE0=g99h1>$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;Np<V zf>iyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh*)icxGNo zet9uiy|1s8XI^nhVqS8pr;Du;&;-5A%oHmlCsSufBPUl26K4ZMLsvs57c(;p11AGV zGZ!OQOD7YUUYGpj(%jU%5}4i;gkCqCdO=Acw*Y9fOKMSOS!#+~QGTuh*vnR#xZUE6 z(>$o&6x?oc!Kqgt=oo!a#3DsBObD2IKumbD1#;jCKQ#}S+KYh6dMSfP4Fdz?Yfl%) zkcwMd!Y&pbGT<?lVNPjYCf&mM%I87}(<%P_y22uA3;wpuZ{eKf=iug{uAsa`c#F~Z zOP4vVzd2sGYduNf_s_^pPcD}24&|#>vk@{;6#9R)#dcwgj#w|(mW@xN-7JKPY~01> zw`?%1+kH1r)XPlh)ESobV*A+w0#@mG1qa=1(>l#MQF4dc9cE1fB^yDlg<l-B77J|R zF?_X#<ses=iF40?-j6{7&+ImNSWJzuyg!MVIsS@u;<?AZuS(=4{hPvgzDXTjd4S2f z`nB@xjo<kfYFznImK7v^dybmYZmzOpNym@ycRW3r@#xST(_d=^&09D2_V%R5KQ|~| zvLmVUQe<nPsPbi{=<`AQ1FzrgKcA=+G+jPu<*~8@qTL_oKD{j&d3uu}<HevKe>Xk1 z?Uy`ydfS3qQ+sW4<MnRZ&snRtFe=L7snYFkulX?twhOu*l-$g9VNKMMB<*WTzjv&P z(fM#X{HySU6J9~zR&)kFdm@;5kufX$)%8U_l9&9$xJ{K$I24u4Im#ic@bRlL?<9}d z{B*9=<?Aj)bsgZ;4xeS*I@5b*$+-aT<c*K=k8FOY_BG|>osxFDO&7!#Us$-e<uPN@ z;)3rU)!V+5yp?FtnXo~!=Ztg4z2(i5EIIzKuM{q2W_~Eby6fG$$@NS;4D*UtuF3e9 RoD3=oJzf1=);T3K0Ra3m{J#JI literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/list.png b/app/design/frontend/default/iphone/skin/default/images/list.png deleted file mode 100644 index 73bc37cb55d83ff6c496738e8760cbc5c34c5059..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 946 zcmaJ=J#W)M7&agwR9XokWq|4AqAn!9J2y#VE2bo|LnGl3C4pwFV_y<0wa?fW>}G_C z|G<F6R0){a5JHSBFe33M_y?488m9~dOXvI0^E~hKzW3hCPW!>u#_bJ35Vl$edY8}F z({b%8|DV2%cldOR83Wd%BNkgB5o!({643IjG3gS^IeGe(R0ZLR==KL}U_MlB>Pc3L zkrFT9Y(c2*CxK;82?Ikic709!_3^U^Tt^cROC~ad2AQ}A^N{rB?Y=#q+KMCY-viY| z<pLgI7D&8fKT;D-T<EHNogPCGEFf&EiRY#UW(PEANI*$K1sjzyC>JGML`qS~0~uii zu?*2(0VB1vry>lNpU9(y&PeU*&1EdU)5Hm5feK+9$5Om2(Qpj0q9_o_P?ifEQHV}_ zW+eqb+RhYo64{{}FqiruRkVh5#x#*TJx{?4R<eGyEE6vnOsoK638g7zK-2s`)bm#8 zh;_+@-+u~6{gZ&eE{W(YwE4x2w$o67+6aloXxOLpIICi3LK%%FGysiWNy6aJ^&J{V z3%qHnEk9zGZ<Cg;iCjT)T}MSV8KJU*j9N{{*g&;<$uMxKTyGX}Q>n-qSEu&OBR<Qx z&IK2*<)*FR1w67&LiZVQnj!VTB4yQG>!o6>)mw6%wO%UCwOq)}!1QAOy6EhPcTc)p zwJqPQ8lU*Q+e6;guU>!~{7LMz^jbgpIm|<N_Wk~yqanD2exE)1@MSZf%jMpDd;Muw axV$Mm`Em2~-QCA9eMK#!t-r4yJ^uqN`yp-s diff --git a/app/design/frontend/default/iphone/skin/default/images/logo.png b/app/design/frontend/default/iphone/skin/default/images/logo.png deleted file mode 100644 index 9f7e996900c9e9d3fc900365fb4171e21d101b87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3660 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 diff --git a/app/design/frontend/default/iphone/skin/default/images/media/cell_phone_landing_banner1.jpg b/app/design/frontend/default/iphone/skin/default/images/media/cell_phone_landing_banner1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8c123db9fc9ae06d52e470fa80d6b75be3b994bb GIT binary patch literal 21259 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≶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 literal 0 HcmV?d00001 diff --git a/app/design/frontend/default/iphone/skin/default/images/nav_bg.png b/app/design/frontend/default/iphone/skin/default/images/nav_bg.png deleted file mode 100644 index aee684388218459956669f04a8c45e04fd67e8ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 958 zcmaJ=J#5oJ7&Wj|6)D{)2*k-9Scvb=jhontTcvSABh^)uMrzpV*w@5L>@)U-IFS%i zHwN}jY%n1f#Kh16gvx|iS&?95Vx^qZIAtJMI^U1pd*A!M`|fFd_kL#a=As}7ncB9| z;PWLu?k-&B|I*RhUwpd3DlN80582QPiBNKAn}C{Ubx4C)&gkJMQWS(MqT6h-mbs(Z z)RU|PBgJ08*@95qj04N=5eC|%<NCVz^WBLETt^r86%(03nRMOlaY**YyG?uCvsFjj z+yKQ`;{qOG7KpvRA8D~JPINWCPL81nCJ@%s#dA|FvkuBMBtVf+)<)|Xtmh=0LuyXF z2V{g1#4<$rEJm7=*ANENPvp@;=TK`H)oCog)5R`hfd=7lIFyEK5)C^LtEvi-3}rdX z5!q<uGb_&e(Q2w-kjM_*fVtEMiK5k}1E!1I>3IrXFq8G8X_<JzU~B~tODIVx1)Apn zp`JHGN320E{QgroYK{T|8ziEG(B>C+xSE6tv~ox+M#Cnh{j`epE@d?8(g2kA6bXZU z*LUbJn&3@StN9VLe4Eq^UE~Uq>pGgO7IF$M$wuDT!nlG8<*j_BTq($ve05zhN-5W% z_P`@POS#SkcWo{=X$3Ffkqr{MkBCzZsRt%0Ywmn6Xs+Ir>&*9p=W-!81CxvW>!Q;m z-aW~3*0y{zYkcDKZV!1|zj?8g;ZH)Y8Kq|YwOxq5Uwwb_<m`B5W##zy+1ck0r>6@q st^V<?o#)HXUfp@H^s)Nm+m~z02g3E+8>7eB0Zd+0t+H#p-a0t?189*e&;S4c diff --git a/app/design/frontend/default/iphone/skin/default/images/nextlabel.png b/app/design/frontend/default/iphone/skin/default/images/nextlabel.png deleted file mode 100644 index 6d6a47bb7e841089352cd8a6bba30d7d2f443451..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1374 zcmV-k1)=(hP)<h;3K|Lk000e1NJLTq0012T0012b1^@s6R+DEB00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$@JU2LRCwB~ zS6N7_R}emlNi-VkF7Dg4YOm`RDhTc?Shpfb3t~|avA$fPh);bj_*M|TP(%^*$%nQN z6_r-4xNwmws8ET!b=RtKO`|#e=I@Eb8k1-{F!+1^`OkM|&dhuh1+!0NLLH!Tp(Gq? zgx-n2+@8%8b^wu$Dk&++CowTGPo+}5QYw|9WMDKJb$Y#CyScgfGh_uze?bkl4j{9# zPGIWN($egJfPlB0^9-F%CqF(uW>;5N1jwA6oS27)hom@+7VkR;2M4<k4-e180k|b_ zOP~}wRd8^yUq(j8J9tvKyu8fT*49{hdOC}Xi(}#8;gaFm*%_Ogn`1LGGtwcVqN13$ zxA*GG%1YhD#Ke1;+=$Ry4Lbp<V`5@HhKJgeloTEr8Od8(TKMVdDYqs)Jv}@>KcC}J zytugd3J3lYdwn1xCbJ5NP`=K}%GyduNZ`4-xf~wy=SX#RHAf^k_PC3WkN?69*y0`H zT2uiz>3ae!Dk|a#AAgC|*VprihzOpXoP2?6%EaC-W*L7kR0{6?{{GFev9V;#x3{+~ zZrIh;#ogWA`RwehRp6?sDjppj%|k*$e#PE?<dk`s>A{Ig0ie4u;_dD2PXd}U(iSkX zoFg{~l)JgPeJ;W*H{GKI>fqq;$=%(Z9}HPTLxar%M`E$;>})A}Es3Y6Co3r_k)CgF zZ$HByXAx0Jl+XZx{)lwvt*xzA!)ETSEsqx$7rB?07e_sx%Ve@>0W5`B4Sl6hC{_># zn|JkGU}P|t%jKk>Qr?(AHPF{CE-sg9wVI!toY<A2_5v3c7IHX5-oAyMkLh0Bpa~RO z`uI75T6_RpUS9slrlO*PJ3BjbS6A1sVdGCVYpNYNPI8TxQi9kcH8nMCbaeFoe-HwL z_mAu@E-o1D3vX{sBw_+JqGXN{UbeNhWfx#~clQIpk&zLG5I?fr+1X+6k{<U=5s?cT zy2VMf8jXex4-fxufJ;kDY=3{BVc$!1w`Ia1Jh^z#8w`eNqNt&vp(g>GnwsneB<bwz zWIjHWJ8T9lbSb!2@|39O8g1_vl+2&2tE;S|qr>7RAaT0^iS`Bt2Bi1k*`Kg<DL7W@ z5EN%Qx{(r~s-U2tl*!3SR#sL<VR^6-0fmKyv5k!ltAHeRb#?6g{G5n>9$o7lmi8&H zgp>cYL1+lNQa)PO@0ppI63Za-Ud%E?9F>)o*XX^(s~`Ql_i_<y9lYJ0o}T^&#C=4k zMBTCV^>y|fsjaPLV`F0s1Ar0Vwqbty4a+BDir~z=0gEg)V*b(NKGt$_a^9e3HEnHe zY;SLmHX*`&60EPUk2N<pGvo#lfkCU)em6co{ykp(AwW$t(}OXBymlmlfCk}yqZ=C= zzd}~W!+SPAKhM(A(ipgw1qKG*7rtpmLT_cMsi}15NB#Z%-(r0NCY#Vh=#{7vi-Vb5 z+^@T6S%H{)G71U`N{|pAqR?fOM3kAJD~5h89UwF`lsP&&9sp>xx3~9)o12>re7g%h z5`YhevnQuPD76tUs4vvp*VorSFE8&6h&~7%MoL>mL4R;?us1a|HMg*^u!^N)=z##! zJv9y5oO=ZexeC>YNGOGk)L29fUI?Ibs{7~8y%r~Yao>&tP+^vQ1_7-9uM@tt-!cwn g-@WL!%-;eG04298Loyd<H2?qr07*qoM6N<$g22*yA^-pY diff --git a/app/design/frontend/default/iphone/skin/default/images/prevlabel.png b/app/design/frontend/default/iphone/skin/default/images/prevlabel.png deleted file mode 100644 index 0452a232a5324ef714538b6d0215cc4ad7cef47a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1241 zcmV;~1Sb25P)<h;3K|Lk000e1NJLTq0012T0012b1^@s6R+DEB00009a7bBm001r{ z001r{0eGc9b^rhX8FWQhbW?9;ba!ELWdK2BZ(?O2No`?gWm08fWO;GPWjp`?1ZGJ@ zK~#9!tyfz}8&()@qRV2e8u8L5^RieqS}$|jYQ5htc$-ymcuN!&CBvaut(PG_$QWLp z9D*<q1Q~tYp8B+2p2l8;fZ#TY4@K%IqGH-Y!TtUI!%2uXiHY^VM<6-peCNM?|DS8u zyk82y4^RPWAVA`C;4?re_k8lQ6ER6}d3pKQy}i8;hK7dLEEdbJjDdlHpUh_SKt@J} z0eh~?M_uXx3VBc+5fO2ttE=lF2>$8s@28fQ7Ah+%qrAL4DkvzRs;Vk#Z*Ql;!NF5J z=1F5?<2U?3X}!W1LVtdBetv$L$z*y_TU$%<@$r<Hm`EKR9kj5pKx=Dj0+W-IR9|0D zAt50IYpJ!hl{z~+A4f+=e<?kr^p-HVsHn(-%igA@rcz~PC2eeMkf(KYbR-_YkIT-^ zCRqG$Qc}`g8F!Dwf-o&D&0JDaa%wOb2$qsBYj<~-5PM2bPbb{*Qm@zF_C(BI2Er}H znVFfkxVSiu6J2H<A0HEkgo)v)zf>xfUM860yj%Ipn=vsl&y7YSA$dGrytTDOTCJAW z*VkSCzPGnWcs!+~q>xUho50;#SqW#X3`R1vgOm^pIygAEkPv4C+!3#?t`gq|(pRwd zmP{;%wVd8J0|Ntp<4xn^<6aYbBIU&;6&V>x0RaKuOKX*O*J>0Bg;A|mpM-^l(f0QC zl@Rjc@(K?RCqF;G-?3jW4HTqWrBZnxAY|^95!%mj4g351zrdMWGLwb55wLOuKTvgb z^_3CwIy^jN*Ahba2Ip=|sT8%T3knLF)o3(A=FYFCrlvE5s6U@dh|jQ#@tF>U*po;f z8X7vmKe)1#U&|8bOx)Ac<F%!1OjK0VTb#?VlL|{gYGMU)7t_lUTdh{&<b>F~bhcE) z6iJi^LK~;|&d$!25ic(<Q*3N3H;X@HOoJTR3w#CAr>r2J>eLnS$jFG>{Twdd4=?`c zoV}t>fq1-V0_}|TQgjV(i9IP&LP7!+7Z)Eukt$@Js+<)`2NaZ+mRfUiaxT<fJFz>$ z{r!E)%E}UL5yJm7d(v5v9NG&cLk2BvZEf$^&6n*mHk(a!8CXaS4GlX`qe|Qzb6$HL zT?V*^CcKDQ=#+&YpFa1~ii!#<EG(qHzP{HOcg(mm)m4{q^izPxj1nAN9UUEgpPQRY zH8nM~xw+|)?BwKxW@ctYhhi&n_7%#6Mg9(O!&N^$GdajCD@DwHn4h12%>x;`J2^R- zy1TnY8Q5o}+1Xh!Be6`fb)5Or)6-VytqFJJ0AE}*vM8L0<A8i<atGY>Xk}&Pzon%m z8Xg{|=H_Nm3UzgLVo;l!nj-xE|Kj4}-$<M#oNENKWVUL28P2ZDL#!g4?%$%6rZDF| zf*YUB&CUJE7#kaV4B}rPD&JvGGf)I1vEX<+4SqED0--YVI2rB%<v^{prU9to9FVay z%7^+q_qv_%<?EvWgN!>PRuYAM>V)she;Ku}|7AV^DAs+drexFu00000NkvXXu0mjf D95ptv diff --git a/app/design/frontend/default/iphone/skin/default/images/search_icon.png b/app/design/frontend/default/iphone/skin/default/images/search_icon.png deleted file mode 100644 index 2bc66c97af59e1adfc172af467bbe5a7c3bf347c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1663 zcmaJ?drT8|94~Z&R(WK&@le?1hz=RFy+VN=6eukP#3Djnv4Zw!589R9oxNi%IL074 zAYz7sIHy)rP*Egq+9(kOwv2%&bMjDesKhZQ;@mXO2OI2)!1l-3C3n9^KA+F`^+~QQ zIVsMG<;7w!7)}ZCk`#JfZhIFx&|jm|-70$Vq+-*kR6L6^Ax4xT(%_jWkYGTv(G(QX z<ZbCfBNz-OsFSBrX|gr28aJ>J8-{H*5Hy>?h=?*1h+2<QKqi{4!-U}Di>)A_(+EKY zU&fUYVpOY(&o`o}`AKqhzFsZRfKib^gc+s<3@C*FW<w4}!e${jtqaq8+cgISrXiGG z2)<4#O_mIZaU%-w+1x-iHv|Ggg4s|oR}d@+0C-%8%Yk?tZfGFHh54Z{7XoG;kd9{5 zWWgyC=}av8Bm}h-MZg@6$z)=ig4nn*n*#|10uGnQ;qd}#L?D@mQHVJZBYkHTBq*si z>Ih1QV}MN&$;5LhAxLNXx	CyS9YZK4~-F(U*AVsmXJ%>rez|A!h3b7+!ELI273 zKZQwo9)WUFP!i8Is_DUH`PxDeu-J$q6mFE`c+PAWleIX7lUker#HoBX1SoWv1~-w@ zc$o}Nz(@+g)M$c42+|5{olXNwp<rpOfEOzYi-900mKzfyf&~1~;4n#07@r>&G|QFX z>RbbgQL|jlKV0d&T$>dP1RYs|8g(C{8mSRC0MjMIy7_Yv&#O1X)y$uZWL_?ZPKIL} z?7s#*dqum)ww<#reV8*oiqUR2(zYHxEH7s;?4Kq`L~`@sx$2FjGGys@&jloWpXVv| zFfQ_T=wkXfRCa$;&g($^e0~<`EM0+_KGGwS)y-Q|;x1S4I(Jm;^MyX|;P0+Ne&V^S zdw!p~G1d3gBhJK{?Dzi~`)FdkW$Lc-;YR(Vc>g_5>;qWGik_(!_%TyOOPZN@^y2v9 zcki8dzn*D#qob%r#q_iDjZWWRBXg{52a_GKB6Upxx465_F4<WcZYk3;Ydvxtg4#Wa zNcVQuwG*z&qmG}o#c>%c<7?hrS~RSx59z$NX`yfDpW{!;tVQ~JV0=P=ei7l`kQ)5L zl2>CF;pTZ`*pKl{+Tik|LrGQlL?kr0n6MvrP_(&Za4NNB-C|Y`V}F&)uVc_n$1h?I z6uoU2`_xi*+^V`H&`d4FpzyH;ijnncTkD#0_vx4Ic^KWkLRB^3(w1A%BdV}i$C}2& z4<0{I*yFHWdA8aozv=cyx3{XV2K3`Ks(S25u75+5GRlk(e0#Dty1jJoJKfuwR-G*F zxf9W0J?rYE*}b8V*_vMLy|R3f_k(l;D@_|Q5`HnG*wkh^eXBy@6hqjZxQ<(X+j@!j zGVx3o#j1|84$9Nsd)A*J85*rjtSETQdr`07!N>e#O24di)>keav)kL3?U>$`RT6b7 z@`7@xRXJ30C-l_NhWo^(Rp0x|yxlu{x2-HEm1jH;*{eqmAK#VQ=-G8-vL+*F8!6hE zWVK$fsF_hGSKU8Qaur5)UPgAsZ1PPXI6A>9XsLP(gKK+3N(OGaod3XB*x&uCAok!o zul)7+l_}XyzTWD!g=|Q=@`JnSlipXQ%0}0uzNtg)iTv?euSqlEn)AFxf7;otWJ14J zrHs9OY|`w!B=uu(3@Cv6H&-dJCl@TIpVu|4UU#c&B6CXcM@FN)^O@0mwO?loN9s2p zy*gf&_tNUzzd|^e1$rowE<O$X<$<_KG(2jzTsL`Y8B4U*P1`CtdpGe)uD)*>{7`PL gR7TZ}7QW%ZXl`vdciVk?mhG325St`vj8PT;4ZF*Mj{pDw diff --git a/app/design/frontend/default/iphone/skin/default/js/iphone.js b/app/design/frontend/default/iphone/skin/default/js/iphone.js index 7c054726fff..f57ce317e42 100644 --- a/app/design/frontend/default/iphone/skin/default/js/iphone.js +++ b/app/design/frontend/default/iphone/skin/default/js/iphone.js @@ -26,12 +26,21 @@ // Homepage categories and subcategories slider document.observe("dom:loaded", function() { + transEndEventNames = { + 'WebkitTransition' : 'webkitTransitionEnd', + 'MozTransition' : 'transitionend', + 'OTransition' : 'oTransitionEnd', + 'msTransition' : 'MSTransitionEnd', + 'transition' : 'transitionend' + }, + transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ]; + function handler(position) { var lat = position.coords.latitude, lng = position.coords.longitude; - + //alert(latitude + ' ' + longitude); - + var geocoder = new google.maps.Geocoder(); function codeLatLng() { @@ -46,29 +55,114 @@ document.observe("dom:loaded", function() { } }); } - + //codeLatLng(); - + } + var loadMore = Class.create({ + initialize: function (list, href, pattern) { + var that = this; + + this.list = list; + this.list.insert({ after : '<div class="more"><span id="more_button" class="more-button">More</span></div>'}); + this.href = href.readAttribute('href'); + this.button = $('more_button'); + this.holder = new Element('div', { 'class': 'response-holder' }); + + this.button.observe('click', function () { + if ( !that.button.hasClassName('loading') ) { + new Ajax.Request(that.href, { + onCreate: function () { + that.button.addClassName('loading'); + }, + onComplete: function(response) { + if (200 == response.status) { + that.holder.update(response.responseText).select(pattern).each(function(elem) { + that.list.insert({ bottom : elem }); + }); + that.href = that.holder.select('.next-page')[0].readAttribute('href'); + that.button.removeClassName('loading'); + if ( !that.href ) { + that.button.up().remove(); + } + } + + } + }); + } + }); + } + }); + + if ( $$('.c-list')[0] && $$('.next-page')[0] ) { + var loadMoreCategory = new loadMore( + $$('.c-list')[0], + $$('.next-page')[0], + '.c-list > li' + ) + } + + if ( $$('.downloadable-products-history .list')[0] && $$('.next-page')[0] ) { + var loadMoreCategory = new loadMore( + $$('.downloadable-products-history .list')[0], + $$('.next-page')[0], + '.downloadable-products-history .list > li' + ) + } + + if ( $$('.review-history .list')[0] && $$('.next-page')[0] ) { + var loadMoreCategory = new loadMore( + $$('.review-history .list')[0], + $$('.next-page')[0], + '.review-history .list > li' + ) + } + + if ( $$('.recent-orders .data-table')[0] && $$('.next-page')[0] ) { + var loadMoreCategory = new loadMore( + $$('.recent-orders .data-table')[0], + $$('.next-page')[0], + '.recent-orders .data-table tbody > tr' + ) + } + + //-----------------------------// + + $$('label[for]').each(function(label) { + label.observe('click', function() {}); + }); + + $$('input.validate-email').each(function (input) { + input.writeAttribute('type', 'email'); + }); + + $$('.form-list img[src*="calendar.gif"]').each(function (img) { + img.up().insert({ 'top' : img }); + }); + if ( navigator.geolocation ) { //navigator.geolocation.getCurrentPosition(handler); } - if ( $('giftregistry-table') ) { - $('giftregistry-table').wrap('div', { 'class' : 'giftregistry-table-wrap' }); - } - if ( $('my-reviews-table') ) { $('my-reviews-table').wrap('div', { 'class' : 'my-reviews-table-wrap' }); } + $$('.my-account .dashboard .box-title').each(function (elem) { + elem.observe('click', function (e) { + if ( e.target.hasClassName('box-title') ) { + this.toggleClassName('collapsed').next().toggle(); + } + }).next().hide(); + }); + var transformPref = Modernizr.prefixed('transform'); function supportsTouchCallout () { var div = document.createElement('div'), supports = div.style['webkitTouchCallout'] !== undefined || div.style['touchCallout'] !== undefined; - + return supports } @@ -81,23 +175,23 @@ document.observe("dom:loaded", function() { if (this.value == "") this.value = defaultValue; }); }); - + if ( $('product-review-table') ) { $('product-review-table').wrap('div', {'class' : 'review-table-wrap'}).on('click', 'input[type="radio"]', function (e) { - + $this = e.target; - + $this.up('tr').select('td').invoke('removeClassName', 'checked'); - + $this.up().previousSiblings().each(function (td) { if ( td.hasClassName('value') ) { td.addClassName('checked'); } }); - + }); } - + function is_touch_device() { try { document.createEvent("TouchEvent"); @@ -106,20 +200,20 @@ document.observe("dom:loaded", function() { return false; } } - + var touch = is_touch_device(); - + $$('select[multiple]').each(function (select) { var select_options = new Element('ol', {'class': 'select-multiple-options'}).wrap('div', { 'class' : 'select-multiple-options-wrap' }), selected; - + select.wrap('div', { 'class': 'select-multiple-wrap' }); select.select('option').each(function(option) { select_options.down().insert({ bottom : new Element('li', { 'class' : 'select-option', 'data-option-value' : option.value }).update(option.text) }); }); - - select_options.insert({ top : new Element('div', { 'class' : 'select-heading' }).update('Choose options...').insert({ top : new Element('span', { 'class' : 'select-close' }).update('x') }) }); - + + select_options.insert({ top : new Element('div', { 'class' : 'select-heading' }).update('Choose options...').insert({ top : new Element('span', { 'class' : 'select-close' }).update('×') }) }); + var closeSelect = function() { select_options.setStyle({ 'visibility' : 'hidden' }); selected = []; @@ -128,18 +222,18 @@ document.observe("dom:loaded", function() { selected.push(option.text) } }); - + if (selected.size() > 0) { select.previous().update('<span class="selected-counter"></span>' + selected.join(', ')).addClassName('filled'); - select.previous().select('span')[0].update(selected.size()); + select.previous().select('span')[0].update(selected.size()); } else { select.previous().update('Choose options...').removeClassName('filled'); } document.stopObserving('click', closeSelect); } - + select_options.select('.select-close')[0].observe('click', closeSelect ); - + select_options.on('click', '.select-option', function(e, elem) { var option = select.select('option[value=' + elem.readAttribute('data-option-value') + ']')[0]; elem.toggleClassName('active'); @@ -150,7 +244,7 @@ document.observe("dom:loaded", function() { } if (typeof bundle !== 'undefined') bundle.changeSelection(select); }); - + select.insert({ before : select_options }); select.insert({ before: new Element('div', {'class': 'select-multiple'}).update("Choose options...").observe('click', function(e) { @@ -164,13 +258,13 @@ document.observe("dom:loaded", function() { }); select.setStyle({ 'visibility' : 'hidden', 'position' : 'absolute' }); }); - + var supportsOrientationChange = "onorientationchange" in window, orientationEvent = supportsOrientationChange ? "orientationchange" : "resize"; Event.observe(window, orientationEvent, function() { var orientation, page, transformValue = {}; - + switch(window.orientation){ case 0: orientation = "portrait"; @@ -184,18 +278,18 @@ document.observe("dom:loaded", function() { orientation = "landscape"; break; } - + if ( $('nav-container') ) { - + setTimeout(function () { $$("#nav-container ul").each(function(ul) { ul.setStyle({'width' : document.body.offsetWidth + "px"}); }); - + page = Math.floor(Math.abs(sliderPosition/viewportWidth)); sliderPosition = (sliderPosition + viewportWidth*page) - document.body.offsetWidth*page; viewportWidth = document.body.offsetWidth; - + if ( Modernizr.csstransforms3d ) { transformValue[transformPref] = "translate3d(" + sliderPosition + "px, 0, 0)"; } else if ( Modernizr.csstransforms ) { @@ -211,110 +305,15 @@ document.observe("dom:loaded", function() { } } }, 400); - - } - - }); - - var groupItems = Class.create({ - initialize: function (handle, removeHandle, photos, form) { - var that = this; - this.handle = handle; - this.removeHandle = removeHandle; - this.photos = this.handle.select(photos); - if ( this.photos.size() < 2 ) { - return - } - if ( !('ongesturestart' in window) && this.photos.size() > 1 ) { - $$('.remove-all-button').each(function(btn) { - btn.setStyle({ 'display' : 'block' }).observe('click', function(e) { - e.preventDefault(); - that.removeAll(); - }); - }); - } - this.form = form; - this.removeHandle.observe('click', this.removeAll.bind(this)); - this.handle.observe('gesturestart', this.gestureStart.bind(this)); - this.handle.observe('gestureend', this.gestureEnd.bind(this)); - }, - removeAll: function () { - this.handle.select('input[name*=qty]').each(function (input) { - input.writeAttribute('value', 0); - }); - this.form.submit(); - }, - gestureStart: function (e) { - e.preventDefault(); - }, - gestureEnd: function (e) { - if ( e.scale < 1 ) { - this.handle.addClassName('grouped-items'); - this.shuffleImages(); - } - else { - this.handle.removeClassName('grouped-items'); - this.unShuffle(); - } - }, - shuffleImages: function () { - this.photos.each(function (photo, i) { - if ( i % 2 ) { - photo.setStyle({'webkitTransform':'rotate(' + (Math.floor(Math.random()*12) + 6) + 'deg)', 'zIndex' : i }); - } else { - photo.setStyle({'webkitTransform':'rotate(-' + (Math.floor(Math.random()*12) + 6) + 'deg)', 'zIndex' : i }); - } - }, this); - }, - unShuffle: function () { - this.photos.each(function (photo, i) { - photo.setStyle({'webkitTransform':'rotate(0)', 'zIndex' : '0' }); - }); } - }); - - if ( $$('section .cart-table-wrap')[0] ) { - var cartGroup = new groupItems($$('section .cart-table-wrap')[0], $('remove-all'), '.product-image img', $('shopping-cart-form')); - } - - if ( $$('.cart-table-wrap')[0] ) { - var cartHeaderGroup = new groupItems($$('.cart-table-wrap')[0], $('remove-all'), '.product-image img', $('shopping-cart-form')); - } - - if ( $$('.wishlist-wrap')[0] ) { - var wishlistGroup = new groupItems($$('.wishlist-wrap')[0], $('remove-all-wishlist'), '#wishlist-list li > a', $('wishlist-view-form')); - } - if ( $$('#remember-me-box a')[0] ) { - $$('#remember-me-box a')[0].observe('click', function(e) { - $('remember-me-popup').setStyle({'top' : e.pointerY() + 'px'}); - }); - } - - // Home Link Actions - - var homeLink = $('home-link'); - - if ( homeLink ) { - if ($$('body')[0].hasClassName('cms-index-index')) { - $('home-link').addClassName('disabled'); - } + }); - homeLink.observe('click', function (e) { - if ( cartDrag && cartDrag.visible ) { - cartDrag.cartHide(); - } - if (homeLink.hasClassName('disabled')) { - e.preventDefault(); - } - }); - } - //alert(Modernizr.prefixed('transform')); - + // Home Page Slider - + //alert(transformPref); var sliderPosition = 0, viewportWidth = document.body.offsetWidth, @@ -329,10 +328,10 @@ document.observe("dom:loaded", function() { sliderLink.clonedSubmenuList = sliderLink.next(0); sliderLink.observe('click', function(e) { - + var transformValue = {} - - homeLink.hasClassName('disabled') ? homeLink.removeClassName('disabled') : ''; + + //homeLink.hasClassName('disabled') ? homeLink.removeClassName('disabled') : ''; if (last) { diff = e.timeStamp - last @@ -373,17 +372,17 @@ document.observe("dom:loaded", function() { $("nav-container").insert(this.clonedSubmenuList.setStyle({'width' : document.body.offsetWidth + 'px'})); $('nav-container').setStyle({'height' : this.clonedSubmenuList.getHeight() + 'px'}); - + if ( Modernizr.csstransforms3d ) { - + transformValue[transformPref] = "translate3d(" + (sliderPosition - document.body.offsetWidth) + "px, 0, 0)"; - + } else if ( Modernizr.csstransforms ) { - + transformValue[transformPref] = "translate(" + (sliderPosition - document.body.offsetWidth) + "px, 0)"; - + } - + $("nav-container").setStyle(transformValue); sliderPosition = sliderPosition - document.body.offsetWidth; @@ -391,7 +390,7 @@ document.observe("dom:loaded", function() { }); }; }); - + function getSupportedProp(proparray){ var root = document.documentElement; for ( var i = 0; i < proparray.length; i++ ) { @@ -454,44 +453,38 @@ document.observe("dom:loaded", function() { if (document.getElementById('nav')) { new NoClickDelay(document.getElementById('nav')); } - - var supports3d = window.WebKitCSSMatrix ? true : false; - - //alert(Modernizr.csstransforms3d); - //alert(Modernizr.csstransforms); - //iPhone header menu - $$('dt.dropdown a').each(function (elem) { - elem.observe('click', function(e) { - var parent = elem.up(), transformValue = {}; + + $$('dt.menu a')[0].observe('click', function(e) { + var parent = this.up(), transformValue = {}; if (parent.hasClassName('active')) { parent.removeClassName('active'); - $$('#menu dd').each(function(elem) { - - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0, -100%, -1px)'; - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate3d(0, -100%)'; - transformValue['visibility'] = 'hidden'; - } - - elem.setStyle(transformValue); - }) + + if ( Modernizr.csstransforms3d ) { + transformValue[transformPref] = 'translate3d(0, -100%, -1px)'; + } else if ( Modernizr.csstransforms ) { + transformValue[transformPref] = 'translate3d(0, -100%)'; + transformValue['visibility'] = 'hidden'; + } + + $$('.menu-box')[0].setStyle(transformValue); + } else { - $$('#menu dt').each(function (elem){ - elem.removeClassName('active'); - - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0, -100%, -1px)'; - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate3d(0, -100%)'; - transformValue['visibility'] = 'hidden'; - } - - elem.next('dd').setStyle(transformValue); - }); + + this.removeClassName('active'); + + if ( Modernizr.csstransforms3d ) { + transformValue[transformPref] = 'translate3d(0, -100%, -1px)'; + } else if ( Modernizr.csstransforms ) { + transformValue[transformPref] = 'translate3d(0, -100%)'; + transformValue['visibility'] = 'hidden'; + } + + $$('.menu-box')[0].setStyle(transformValue); + parent.addClassName('active'); + if ( Modernizr.csstransforms3d ) { transformValue[transformPref] = 'translate3d(0, 0%, -1px)'; transformValue['visibility'] = 'visible'; @@ -500,48 +493,20 @@ document.observe("dom:loaded", function() { transformValue['visibility'] = 'visible'; } parent.next().setStyle(transformValue); - if ( cartDrag ) { - cartDrag.cartHide(); - } }; e.preventDefault(); }); - }) - - if ( $$('.top-link-cart')[0] ) { - $$('.top-link-cart')[0].observe('click', function (e) { - if ( cartDrag ) { - cartDrag.cartShow(); - $$('#menu dt.menu')[0].removeClassName('active'); - $$('#menu dd.menu-box')[0].setStyle({'webkitTransform' : 'translate3d(0, -100%, -1px)'}) - e.preventDefault(); - } - }); - } - + if ( $('menu') ) { $('menu').select('dd').each(function (elem) { elem.observe('webkitTransitionEnd', function (e) { if ( !elem.previous().hasClassName('active') ) { elem.setStyle({'visibility' : 'hidden'}); + } else { + elem.setStyle({'top' : '1px'}); } }); }); - - $$('.menu-box')[0].select('a').each(function(elem) { - elem.innerHTML = elem.innerHTML.replace(/\((\d+)\)/, '<span class="badge" data-value="$1">$1</span>') - }) - - //$$('.top-link-cart')[0].up().remove(); - - var sum = 0; - $$('.menu-box .badge').each(function (badge) { - sum += parseInt(badge.readAttribute('data-value')); - }); - if (sum) { - $$('dt.menu')[0].insert({ bottom : new Element('span', { 'class' : 'badge' }).update(sum) }); - } - } //iPhone header menu switchers @@ -587,9 +552,9 @@ document.observe("dom:loaded", function() { this.itemsWrap = this.items.wrap('div', {'class' : 'carousel-items-wrap'}); this.itemsLength = this.items.childElements().size(); this.counter = this.carousel.insert(new Element('div', {'class' : 'counter'})).select('.counter')[0]; - this.controls = carousel.select('.controls')[0]; - this.prevButton = carousel.select('.prev')[0]; - this.nextButton = carousel.select('.next')[0]; + this.controls = carousel.select('.controls')[0] || this.carousel.insert({ top: new Element('div', { 'class' : 'controls'}) }).select('.controls')[0]; + this.prevButton = carousel.select('.prev')[0] || this.controls.insert({ top: new Element('span', { 'class' : 'prev'}) }).select('.prev')[0].addClassName('disabled'); + this.nextButton = carousel.select('.next')[0] || this.controls.insert({ top: new Element('span', { 'class' : 'next'}) }).select('.next')[0]; this.originalCoord = { x: 0, y: 0 }; this.finalCoord = { x: 0, y: 0 }; @@ -724,8 +689,8 @@ document.observe("dom:loaded", function() { } }); - if ( $$('.carousel')[0] ) { - var upSellCarousel = new Carousel($$('.carousel')[0], $$('.carousel-items')[0], { + if ( $$('.box-up-sell')[0] ) { + var upSellCarousel = new Carousel($$('.box-up-sell')[0], $$('.products-grid')[0], { visibleElements: 2, preventDefaultEvents: true }).init(); @@ -740,8 +705,8 @@ document.observe("dom:loaded", function() { } */ - if ( $$('.product-shop .product-image li').size() > 1 ) { - var productGallery = new Carousel($$('.product-shop .product-image')[0], $$('.product-image ul')[0], { + if ( $$('.product-view .product-image li').size() > 1 ) { + var productGallery = new Carousel($$('.product-view .product-image')[0], $$('.product-image ul')[0], { visibleElements: 1, preventDefaults: false }).init(); @@ -825,239 +790,6 @@ document.observe("dom:loaded", function() { */ - var cartDragClass = Class.create({ - initialize: function (elem, options) { - this.options = Object.extend({ - }, options || {}); - - this.cart = elem; - this.cartHolder = $$('.cart-wrap')[0].addClassName('cart-short'); - this.minHeight = this.cartHolder.getDimensions().height; - this.maxHeight = this.cartHolder.removeClassName('cart-short').getDimensions().height; - this.headerHeight = $$('body > header')[0].getDimensions().height, - this.startMin = this.headerHeight - this.minHeight; - this.startMax = this.headerHeight - this.maxHeight; - this.visible = false; - this.empty = this.cartHolder.hasClassName('cart-empty'); - - this.range = 0; - this.originalCoord = { x: 0, y: 0 }; - this.finalCoord = { x: 0, y: 0 }; - - if ( Modernizr.touch ) { - this.cart.observe('touchstart', this.touchStart.bind(this)); - this.cart.observe('touchmove', this.touchMove.bind(this)); - this.cart.observe('touchend', this.touchEnd.bind(this)); - } else { - this.cart.observe('click', this.toggleView.bind(this)); - } - - this.cartHolder.observe('webkitTransitionEnd', this.transitionEnd.bind(this)); - - if ( supports3d ) { - this.cartHolder.setStyle({'webkitTransform':'translate3d(0,' + this.startMax + 'px, 0)'}); - } else { - this.cartHolder.setStyle({'OTransform':'translate(0,' + this.startMax + 'px)'}); - } - setTimeout(function () { - this.cartHolder.setStyle({'visibility': 'visible'}); - }.bind(this), 100); - - }, - touchStart : function (e) { - e.preventDefault(); - - var transformValue = {}; - - $$('#menu dt.active').each(function(elem) { - elem.removeClassName('active'); - }); - $$('#menu dd').each(function(elem) { - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0, -100%, -1px)'; - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate3d(0, -100%)'; - transformValue['visibility'] = 'hidden'; - } - elem.setStyle(transformValue); - }); - - this.originalCoord.x = event.targetTouches[0].pageX; - this.originalCoord.y = event.targetTouches[0].pageY; - this.finalCoord.x = 0; - this.finalCoord.y = 0; - }, - touchMove : function (e) { - if ( this.visible ) { - return - } - - var transformValue = {}; - - if ( Math.abs(this.finalCoord.y - this.originalCoord.y) > 1 && this.finalCoord.y - this.originalCoord.y < 3 ) { - this.cartHolder.removeClassName('animate').addClassName('cart-short'); - } - - e.preventDefault(); - - this.finalCoord.x = e.targetTouches[0].pageX; - this.finalCoord.y = e.targetTouches[0].pageY; - - this.range = (this.startMin + this.finalCoord.y - this.originalCoord.y); - if ( (this.minHeight + this.headerHeight - this.range) < this.minHeight || Math.abs(this.finalCoord.y - this.originalCoord.y) > document.viewport.getHeight()/2 ) { - this.range = this.headerHeight; - this.cart.addClassName('active'); - this.cartHolder.removeClassName('cart-short').addClassName('animate'); - this.visible = true; - } - - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0,' + this.range + 'px, 0)'; - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate(0,' + this.range + 'px)'; - } - - this.cartHolder.setStyle(transformValue); - }, - touchEnd : function (e) { - e.preventDefault(); - var transformValue = {}; - if ( Math.abs(this.originalCoord.y - this.finalCoord.y ? this.finalCoord.y : 0) < 10 && Math.abs(this.originalCoord.x - this.finalCoord.x ? this.finalCoord.x : 0) < 10 ) { - if ( this.visible ) { - this.cartHide(); - } else { - this.cartShow(); - } - } - if ( this.minHeight - this.headerHeight + this.range < (this.minHeight) && this.cartHolder.hasClassName('cart-short') && !this.empty ) { - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0,' + this.startMin + 'px, 0)'; - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate(0,' + this.startMin + 'px)'; - } - this.cartHolder.addClassName('animate').setStyle(transformValue); - } - }, - cartHide : function () { - var transformValue = {}; - this.cart.removeClassName('active'); - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0,' + this.startMax + 'px, 0)'; - transformValue['top'] = '0px'; - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate(0,' + this.startMax + 'px)'; - transformValue['top'] = '0px'; - } - this.cartHolder.setStyle(transformValue); - this.visible = false; - }, - cartShow : function () { - var transformValue = {}; - this.visible = true; - this.cart.addClassName('active'); - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0,' + this.startMax + 'px, 0)'; - this.cartHolder.removeClassName('cart-short').setStyle(transformValue); - - transformValue[transformPref] = 'translate3d(0,' + this.headerHeight + 'px, 0)'; - this.cartHolder.addClassName('animate').setStyle(transformValue); - - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate(0,' + this.startMax + 'px)'; - this.cartHolder.removeClassName('cart-short').setStyle(transformValue); - - transformValue[transformPref] = 'translate(0,' + this.headerHeight + 'px)'; - this.cartHolder.addClassName('animate').setStyle(transformValue); - } - }, - transitionEnd : function (e) { - var transformValue = {}; - if ( this.visible ) { - if ( Modernizr.csstransforms3d ) { - transformValue[transformPref] = 'translate3d(0, ' + (this.headerHeight-1) + 'px, 0)'; - transformValue['top'] = '1px'; - this.cartHolder.removeClassName('animate').setStyle(transformValue); - } else if ( Modernizr.csstransforms ) { - transformValue[transformPref] = 'translate(0, ' + (this.headerHeight-1) + 'px)'; - transformValue['top'] = '1px'; - this.cartHolder.removeClassName('animate').setStyle(transformValue); - } - setTimeout(function () { - this.cartHolder.addClassName('animate') - }.bind(this), 100); - } - }, - toggleView : function (e) { - if ( this.visible ) { - this.cartHide(); - } else { - this.cartShow(); - } - } - }); - - if ( $$('.cart-wrap')[0] ) { - var cartDrag = new cartDragClass($$('dt.cart')[0]); - } - - if ( $$('.c-list')[0] ) { - $$('.c-list > li').each( function (item) { - new Swipe(item, - function() { - item.removeClassName('animated').addClassName('end-animation'); - }, - function() { - if ( !item.hasClassName('animated') ) { - $$('.c-list > li.animated').invoke('removeClassName', 'animated').invoke('addClassName', 'end-animation'); - item.addClassName('animated').removeClassName('end-animation'); - } - } - ); - }); - } - - /* - if ( $$('.product-view')[0] ) { - new Swipe($$('.product-view')[0], - function(e) { - if ( !$(e.target).up('.carousel-items') ) { - alert(1); - } - }, - function(e) { - if ( !$(e.target).up('.carousel-items') ) { - alert(2); - } - } - ); - } - */ - - /* - - $$('#product-gallery img').each(function (img) { - img.observe('gesturestart', function (e) { - e.preventDefault(); - }); - img.observe('gesturechange', function (e) { - e.preventDefault(); - img.setStyle({ - 'webkitTransition' : '0ms linear', - 'webkitTransform' : 'scale3d(' + e.scale + ', ' + e.scale + ', 1)', - }); - }); - img.observe('gestureend', function (e) { - if ( e.scale < 1 ) { - img.setStyle({ - 'webkitTransition' : '300ms linear', - 'webkitTransform' : 'scale3d(1, 1, 1)' - }); - } - }); - }); - - */ - zoomGallery = Class.create({ initialize: function (gallery, options) { this.options = Object.extend({ @@ -1069,6 +801,9 @@ document.observe("dom:loaded", function() { this.gallery = gallery; this.counter = this.gallery.insert({after : new Element('div', {'class' : 'counter'})}).next(); + this.controls = gallery.select('.controls')[0] || this.gallery.insert({ bottom: new Element('div', { 'class' : 'controls'}) }).select('.controls')[0]; + this.prevButton = gallery.select('.prev')[0] || this.controls.insert({ top: new Element('span', { 'class' : 'prev'}) }).select('.prev')[0].addClassName('disabled'); + this.nextButton = gallery.select('.next')[0] || this.controls.insert({ top: new Element('span', { 'class' : 'next'}) }).select('.next')[0]; this.wrap = this.gallery.down(); this.scale = 1.0; this.dimensions; @@ -1081,20 +816,27 @@ document.observe("dom:loaded", function() { this.finalCoord = { x: 0, y: 0 }; this.offset = { x: 0, y: 0 }; this.ret = { x: 0, y: 0 }; + + this.nextButton.observe('click', this.moveRight.bind(this)); + this.prevButton.observe('click', this.moveLeft.bind(this)); + + if (this.itemsLength < 2) { + this.controls.hide(); + } this.items.each(function (item) { - item.observe('touchstart', this.touchStart.bind(this)); + item.observe('touchstart', this.touchStart.bind(this)); item.observe('touchmove', this.touchMove.bind(this)); item.observe('touchend', this.touchEnd.bind(this)); item.observe('gesturestart', this.gestureStart.bind(this)); item.observe('gesturechange', this.gestureChange.bind(this)); item.observe('gestureend', this.gestureEnd.bind(this)); }.bind(this)); - + this.wrap.setStyle({ 'width' : this.itemsLength * 100 + '%' }); - + this.drawCounter(); }, drawCounter: function () { @@ -1109,18 +851,27 @@ document.observe("dom:loaded", function() { } }, moveRight: function (elem) { - + if (this.pos !== this.lastPos - this.step) { - - elem.setStyle({ - 'webkitTransition' : '300ms linear', - 'webkitTransform' : 'scale3d(1, 1, 1)' - }); - - this.scale = 1.0; + if(elem == event) { + this.items.each(function (elm) { + elm.setStyle({ + 'webkitTransition' : '300ms linear', + 'webkitTransform' : 'scale3d(1, 1, 1)' + }); + }); + } else { + elem.setStyle({ + 'webkitTransition' : '300ms linear', + 'webkitTransform' : 'scale3d(1, 1, 1)' + }); + } + + this.scale = 1.0; + this.pos += this.step; - + var transformValue = {}; if ( Modernizr.csstransforms3d ) { this.wrap.setStyle({ @@ -1132,23 +883,40 @@ document.observe("dom:loaded", function() { this.wrap.setStyle(transformValue); } + if (this.pos == this.lastPos - this.step) { + this.nextButton.addClassName('disabled'); + } + + if (this.prevButton.hasClassName('disabled')) { + this.prevButton.removeClassName('disabled'); + }; + this.counter.select('.active')[0].removeClassName('active').next().addClassName('active'); - + } }, moveLeft: function (elem) { - + if (this.pos !== 0) { - - elem.setStyle({ - 'webkitTransition' : '300ms linear', - 'webkitTransform' : 'scale3d(1, 1, 1)' - }); - + + if(elem == event) { + this.items.each(function (elm) { + elm.setStyle({ + 'webkitTransition' : '300ms linear', + 'webkitTransform' : 'scale3d(1, 1, 1)' + }); + }); + } else { + elem.setStyle({ + 'webkitTransition' : '300ms linear', + 'webkitTransform' : 'scale3d(1, 1, 1)' + }); + } + this.scale = 1.0; - + this.pos -= this.step; - + var transformValue = {}; if ( Modernizr.csstransforms3d ) { this.wrap.setStyle({ @@ -1160,26 +928,34 @@ document.observe("dom:loaded", function() { this.wrap.setStyle(transformValue); } - + if (this.pos == 0) { + this.prevButton.addClassName('disabled'); + } + + if (this.nextButton.hasClassName('disabled')) { + this.nextButton.removeClassName('disabled'); + }; + + this.counter.select('.active')[0].removeClassName('active').previous().addClassName('active'); } //console.log('moveLeft()'); }, gestureStart : function (e) { var $this = e.target; - + e.preventDefault(); - + this.gestureStart = true; this.dimensions = $this.getDimensions(); }, gestureChange : function (e) { e.preventDefault(); var $this = e.target - + if ( (e.scale * this.scale) > 2 ) return - + $this.setStyle({ 'webkitTransition' : '', 'webkitTransform' : 'scale3d(' + (e.scale * this.scale) + ', ' + (e.scale * this.scale) + ', 1)', @@ -1187,7 +963,7 @@ document.observe("dom:loaded", function() { }, gestureEnd : function (e) { var $this = e.target; - + if ( (e.scale * this.scale) < 1 ) { $this.setStyle({ 'webkitTransition' : '300ms linear', @@ -1199,32 +975,32 @@ document.observe("dom:loaded", function() { } else { this.scale *= e.scale; } - + setTimeout(function () { this.gestureStart = false; }.bind(this), 50); - + this.originalCoord.x = this.originalCoord.y = this.finalCoord.x = this.finalCoord.y = this.offset.x = this.offset.y = 0; }, touchStart: function (e) { var $this = e.target; - + if (e.targetTouches.length != 1) { return false } - + this.t1 = Date.now(); - + this.originalCoord.x = e.targetTouches[0].clientX; this.originalCoord.y = e.targetTouches[0].clientY; - + $this.setStyle({ 'webkitTransition' : '' }); }, touchMove: function (e) { - + this.finalCoord.x = e.targetTouches[0].clientX; this.finalCoord.y = e.targetTouches[0].clientY; - + if (e.targetTouches.length != 1 || this.scale === 1.0 || this.gestureStart) return false @@ -1237,7 +1013,7 @@ document.observe("dom:loaded", function() { topX = (this.dimensions.width * (this.scale - 1))/2, topY = (this.dimensions.height * (this.scale - 1))/2, tension = 1.55; - + if ( topX < Math.abs(changeX) ) { if ( changeX < 0 ) { changeX = changeX - (changeX + topX)/tension; @@ -1245,7 +1021,7 @@ document.observe("dom:loaded", function() { changeX = changeX - (changeX - topX)/tension; } } - + if ( topY < Math.abs(changeY) ) { if ( changeY < 0 ) { changeY = changeY - (changeY + topY)/tension; @@ -1253,79 +1029,79 @@ document.observe("dom:loaded", function() { changeY = changeY - (changeY - topY)/tension; } } - + $this.setStyle({ 'webkitTransform' : 'translate3d(' + changeX + 'px,' + changeY + 'px, 0) scale3d(' + this.scale + ',' + this.scale + ',1)' }); }, touchEnd: function (e) { - + this.t2 = Date.now(); - + var $this = e.target, timeDelta = this.t2 - this.t1, changeX = this.originalCoord.x - this.finalCoord.x, changeY = this.originalCoord.y - this.finalCoord.y; - + if(changeX > this.options.threshold.x && Math.abs(changeY) < 40 && timeDelta < 300) { this.moveRight($this); } if(changeX < this.options.threshold.x * -1 && Math.abs(changeY) < 40 && timeDelta < 300) { - + this.moveLeft($this); } - + if (e.targetTouches.length > 0 || this.gestureStart || timeDelta < 100) return false; - + this.offset.x += this.finalCoord.x - this.originalCoord.x; this.offset.y += this.finalCoord.y - this.originalCoord.y; - + var topX = (this.dimensions.width * (this.scale - 1))/2, topY = (this.dimensions.height * (this.scale - 1))/2, moved = false; if ( Math.abs(this.offset.x) > topX ) { - + moved = true; $this.setStyle({ 'webkitTransition' : '-webkit-transform 100ms ease-out', 'webkitTransform' : 'translate3d(' + (this.offset.x < 0 ? topX*-1 : topX) + 'px,' + this.offset.y + 'px, 0) scale3d(' + this.scale + ',' + this.scale + ',1)' }); - + this.offset.x = this.offset.x < 0 ? topX*-1 : topX; - + } - + if ( Math.abs(this.offset.y) > topY ) { moved = true; $this.setStyle({ 'webkitTransition' : '-webkit-transform 100ms ease-out', 'webkitTransform' : 'translate3d(' + this.offset.x + 'px,' + (this.offset.y < 0 ? topY*-1 : topY) + 'px, 0) scale3d(' + this.scale + ',' + this.scale + ',1)' }); - + this.offset.y = this.offset.y < 0 ? topY*-1 : topY; - + } - + if ( Math.abs(this.offset.x) > topX && Math.abs(this.offset.y) > topY && !moved ) { - + $this.setStyle({ 'webkitTransition' : '-webkit-transform 100ms ease-out', 'webkitTransform' : 'translate3d(' + (this.offset.x < 0 ? topX*-1 : topX) + 'px,' + (this.offset.y < 0 ? topY*-1 : topY) + 'px, 0) scale3d(' + this.scale + ',' + this.scale + ',1)' }); - + this.offset.x = this.offset.x < 0 ? topX*-1 : topX; this.offset.y = this.offset.y < 0 ? topY*-1 : topY; - + } - + }, }); - + if ( $$('.c-list') && supportsTouchCallout() ) { - + $$('.c-list .product-image').each(function(n) { var parent = n.up('a'), clone = n.up().clone(true).addClassName('cloned'); @@ -1345,33 +1121,13 @@ document.observe("dom:loaded", function() { onOver : function(elem, e) { e.preventDefault(); elem.down().addClassName('to-cart-animate'); }, onOut : function(elem) { elem.down().removeClassName('to-cart-animate'); } }); - - } - - if ( $('c-grid') && supportsTouchCallout() ) { - $$('.c-grid .cloned-wrap').each(function(n) { - new webkit_draggable(n, { handle : n.up('.cell').select('.product-image')[1], revert : true, scroll : true, onStart : function(r, e) { - r.setStyle({'opacity':'100', 'visibility':'visible'}).down('.wrap').addClassName('drop-start'); - }, - onEnd : function(r, e) { - r.setStyle({'opacity':'0', 'visibility':'hidden'}).down('.wrap').removeClassName('drop-start'); - } - }); - }); - webkit_drop.add($('menu'), - { - onDrop : function(elem, e) { e.preventDefault(); setLocation(elem.up('.cell').down('.add-to-cart').readAttribute('href')); elem.remove(); }, - onOver : function(elem, e) { e.preventDefault(); elem.down('.wrap').addClassName('to-cart-animate'); }, - onOut : function(elem) { elem.down('.wrap').removeClassName('to-cart-animate'); } - }); - } - + if ( $('customer-reviews') ) { $('customer-reviews').select('dt > a').each(function (a) { a.replace('<h3>' + a.innerHTML + '</h3>'); }); } - -}); \ No newline at end of file + +}); diff --git a/app/design/frontend/default/modern/Mage_Checkout/layout.xml b/app/design/frontend/default/modern/Mage_Checkout/layout.xml index 5b904830430..05e56a814c5 100644 --- a/app/design/frontend/default/modern/Mage_Checkout/layout.xml +++ b/app/design/frontend/default/modern/Mage_Checkout/layout.xml @@ -290,7 +290,7 @@ Multi address shipping checkout success One page checkout main layout --> - <checkout_onepage_index translate="label" type="page" parent="checkout_cart_index"> + <checkout_onepage_index translate="label" type="page" parent="default"> <label>One Page Checkout</label> <!-- Mage_Checkout --> <remove name="right"/> @@ -393,7 +393,7 @@ One page checkout order review block </reference> </checkout_onepage_review> - <checkout_onepage_success translate="label" type="page" parent="checkout_onepage_index"> + <checkout_onepage_success translate="label" type="page" parent="default"> <label>One Page Checkout Success</label> <reference name="root"> <action method="setTemplate"><template>2columns-left.phtml</template></action> @@ -403,7 +403,7 @@ One page checkout order review block </reference> </checkout_onepage_success> - <checkout_onepage_failure translate="label" type="page" parent="checkout_onepage_index"> + <checkout_onepage_failure translate="label" type="page" parent="default"> <label>One Page Checkout Failure</label> <reference name="root"> <action method="setTemplate"><template>2columns-left.phtml</template></action> diff --git a/app/design/frontend/default/modern/Mage_Customer/layout.xml b/app/design/frontend/default/modern/Mage_Customer/layout.xml index 37ae5a22540..4cbd9764612 100644 --- a/app/design/frontend/default/modern/Mage_Customer/layout.xml +++ b/app/design/frontend/default/modern/Mage_Customer/layout.xml @@ -131,6 +131,29 @@ New customer registration </reference> </customer_account_forgotpassword> + <customer_account_resetpassword translate="label"> + <label>Reset a Password</label> + <remove name="right"/> + <remove name="left"/> + + <reference name="head"> + <action method="setTitle" translate="title" module="Mage_Customer"> + <title>Reset a Password</title> + </action> + </reference> + <reference name="root"> + <action method="setTemplate"> + <template>1column.phtml</template> + </action> + <action method="setHeaderTitle" translate="title" module="Mage_Customer"> + <title>Reset a Password</title> + </action> + </reference> + <reference name="content"> + <block type="Mage_Customer_Block_Account_Resetpassword" name="resetPassword" template="form/resetforgottenpassword.phtml"/> + </reference> + </customer_account_resetpassword> + <customer_account_confirmation translate="label" type="page" parent="customer_account"> <label>Customer Account Confirmation</label> <remove name="right"/> diff --git a/app/etc/modules/Mage_Backend.xml b/app/etc/modules/Mage_Backend.xml new file mode 100644 index 00000000000..4b2d0bc2bbe --- /dev/null +++ b/app/etc/modules/Mage_Backend.xml @@ -0,0 +1,38 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category Mage + * @package Mage_Backend + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<config> + <modules> + <Mage_Backend> + <active>true</active> + <codePool>core</codePool> + <depends> + <Mage_Core/> + </depends> + </Mage_Backend> + </modules> +</config> diff --git a/dev/tests/integration/testsuite/Mage/Adminhtml/Controller/ActionTest.php b/dev/tests/integration/testsuite/Mage/Adminhtml/Controller/ActionTest.php new file mode 100644 index 00000000000..95c9a291a0b --- /dev/null +++ b/dev/tests/integration/testsuite/Mage/Adminhtml/Controller/ActionTest.php @@ -0,0 +1,48 @@ +<?php +/** + * Magento + * + * 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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category Magento + * @package Mage_Adminhtml + * @subpackage integration_tests + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +class Mage_Adminhtml_Controller_ActionTest extends PHPUnit_Framework_TestCase +{ + /** + * @var Mage_Core_Controller_Varien_Action|PHPUnit_Framework_MockObject_MockObject + */ + protected $_model; + + protected function setUp() + { + $this->_model = $this->getMock( + 'Mage_Adminhtml_Controller_Action', + null, + array(new Magento_Test_Request(), new Magento_Test_Response()) + ); + } + + public function testConstruct() + { + $this->assertInstanceOf('Mage_Backend_Controller_ActionAbstract', $this->_model); + } +} diff --git a/dev/tests/integration/testsuite/Mage/Backend/Controller/Router/DefaultTest.php b/dev/tests/integration/testsuite/Mage/Backend/Controller/Router/DefaultTest.php new file mode 100644 index 00000000000..a5649ccc7ef --- /dev/null +++ b/dev/tests/integration/testsuite/Mage/Backend/Controller/Router/DefaultTest.php @@ -0,0 +1,120 @@ +<?php +/** + * Magento + * + * 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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category Magento + * @package Mage_Backend + * @subpackage integration_tests + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +class Mage_Backend_Controller_Router_DefaultTest extends PHPUnit_Framework_TestCase +{ + /** + * @var Mage_Backend_Controller_Router_Default + */ + protected $_model; + + protected function setUp() + { + $options = array( + 'area' => 'adminhtml', + 'base_controller' => 'Mage_Backend_Controller_ActionAbstract' + ); + $this->_model = new Mage_Backend_Controller_Router_Default($options); + $this->_model->setFront(Mage::app()->getFrontController()); + } + + /** + * @covers Mage_Backend_Controller_Router_Default::collectRoutes + */ + public function testCollectRoutes() + { + $this->_model->collectRoutes('admin', 'admin'); + $this->assertEquals('admin', $this->_model->getFrontNameByRoute('adminhtml')); + } + + /** + * @covers Mage_Backend_Controller_Router_Default::fetchDefault + */ + public function testFetchDefault() + { + $default = array( + 'module' => '', + 'controller' => 'index', + 'action' => 'index' + ); + $this->_model->fetchDefault(); + $this->assertEquals($default, Mage::app()->getFrontController()->getDefault()); + } + + /** + * @param string $module + * @param string $controller + * @param string $fileName + * + * @covers Mage_Backend_Controller_Router_Default::getControllerFileName + * @dataProvider getControllerFileNameDataProvider + */ + public function testGetControllerFileName($module, $controller, $fileName) + { + $file = $this->_model->getControllerFileName($module, $controller); + $this->assertStringEndsWith($fileName, $file); + } + + public function getControllerFileNameDataProvider() + { + return array( + array('Mage_Adminhtml', 'index', 'Adminhtml' . DS . 'controllers' . DS . 'IndexController.php'), + array( + 'Mage_Index', + 'process', + 'Index' . DS . 'controllers' . DS . 'Adminhtml' . DS . 'ProcessController.php' + ), + array( + 'Mage_Index_Adminhtml', + 'process', + 'Index' . DS . 'controllers' . DS . 'Adminhtml' . DS . 'ProcessController.php' + ), + ); + } + + /** + * @param string $module + * @param string $controller + * @param string $className + * + * @covers Mage_Backend_Controller_Router_Default::getControllerClassName + * @dataProvider getControllerClassNameDataProvider + */ + public function testGetControllerClassName($module, $controller, $className) + { + $this->assertEquals($className, $this->_model->getControllerClassName($module, $controller)); + } + + public function getControllerClassNameDataProvider() + { + return array( + array('Mage_Adminhtml', 'index', 'Mage_Adminhtml_IndexController'), + array('Mage_Index', 'process', 'Mage_Index_Adminhtml_ProcessController'), + array('Mage_Index_Adminhtml', 'process', 'Mage_Index_Adminhtml_ProcessController'), + ); + } +} diff --git a/dev/tests/integration/testsuite/Mage/Core/Controller/Varien/ActionTest.php b/dev/tests/integration/testsuite/Mage/Core/Controller/Varien/ActionTest.php index 5e419dea71c..a9b90fc4593 100644 --- a/dev/tests/integration/testsuite/Mage/Core/Controller/Varien/ActionTest.php +++ b/dev/tests/integration/testsuite/Mage/Core/Controller/Varien/ActionTest.php @@ -252,4 +252,30 @@ class Mage_Core_Controller_Varien_ActionTest extends PHPUnit_Framework_TestCase } $this->assertFalse($caughtException, $message); } + + public function controllerAreaSetDataProvider() + { + return array( + 'frontend' => array('Mage_Core_Controller_Front_Action', 'frontend', 'frontend'), + 'adminhtml' => array('Mage_Core_Controller_Front_Action', 'adminhtml', 'adminhtml'), + 'test' => array('Mage_Core_Controller_Front_Action', 'test', 'test'), + + ); + } + + /** + * @param string $controllerClass + * @param string $setArea + * @param string $expectedArea + * @dataProvider controllerAreaSetDataProvider + * @magentoAppIsolation enabled + */ + public function testSetCurrentArea($controllerClass, $setArea, $expectedArea) + { + /** @var $controller Mage_Core_Controller_Varien_Action */ + $controller = new $controllerClass(new Magento_Test_Request(), new Magento_Test_Response()); + $this->assertInstanceOf($controllerClass, $controller->setCurrentArea($setArea)); + $this->assertEquals($expectedArea, $controller->getLayout()->getArea()); + } + } diff --git a/dev/tests/integration/testsuite/Mage/Core/Controller/Varien/FrontTest.php b/dev/tests/integration/testsuite/Mage/Core/Controller/Varien/FrontTest.php index c86a776b16f..2c9c2255fac 100644 --- a/dev/tests/integration/testsuite/Mage/Core/Controller/Varien/FrontTest.php +++ b/dev/tests/integration/testsuite/Mage/Core/Controller/Varien/FrontTest.php @@ -107,7 +107,6 @@ class Mage_Core_Controller_Varien_FrontTest extends PHPUnit_Framework_TestCase $this->_model->getRouterByRoute('checkout') ); $this->assertInstanceOf('Mage_Core_Controller_Varien_Router_Default', $this->_model->getRouterByRoute('test')); - $this->assertInstanceOf('Mage_Core_Controller_Varien_Router_Admin', $this->_model->getRouterByRoute('admin')); } public function testGetRouterByFrontName() @@ -125,10 +124,6 @@ class Mage_Core_Controller_Varien_FrontTest extends PHPUnit_Framework_TestCase 'Mage_Core_Controller_Varien_Router_Default', $this->_model->getRouterByFrontName('test') ); - $this->assertInstanceOf( - 'Mage_Core_Controller_Varien_Router_Admin', - $this->_model->getRouterByFrontName('admin') - ); } public function testRewrite() diff --git a/dev/tests/integration/testsuite/Mage/Core/Controller/Varien/Router/StandardTest.php b/dev/tests/integration/testsuite/Mage/Core/Controller/Varien/Router/BaseTest.php similarity index 72% rename from dev/tests/integration/testsuite/Mage/Core/Controller/Varien/Router/StandardTest.php rename to dev/tests/integration/testsuite/Mage/Core/Controller/Varien/Router/BaseTest.php index 3916e1fb0eb..09a4d305d99 100644 --- a/dev/tests/integration/testsuite/Mage/Core/Controller/Varien/Router/StandardTest.php +++ b/dev/tests/integration/testsuite/Mage/Core/Controller/Varien/Router/BaseTest.php @@ -28,19 +28,47 @@ /** * @group module:Mage_Core */ -class Mage_Core_Controller_Varien_Router_StandardTest extends PHPUnit_Framework_TestCase +class Mage_Core_Controller_Varien_Router_BaseTest extends PHPUnit_Framework_TestCase { /** - * @var Mage_Core_Controller_Varien_Router_Standard + * @var Mage_Core_Controller_Varien_Router_Base */ protected $_model; protected function setUp() { - $this->_model = new Mage_Core_Controller_Varien_Router_Standard; + $options = array( + 'area' => 'frontend', + 'base_controller' => 'Mage_Core_Controller_Front_Action' + ); + $this->_model = new Mage_Core_Controller_Varien_Router_Base($options); $this->_model->setFront(Mage::app()->getFrontController()); } + /** + * @dataProvider initOptionsDataProvider + * @expectedException Mage_Core_Exception + */ + public function testConstructor(array $options) + { + new Mage_Core_Controller_Varien_Router_Base($options); + } + + public function initOptionsDataProvider() + { + return array( + array( + array() + ), + array( + array('area' => 'frontend') + ), + array( + array('base_controller' => 'Mage_Core_Controller_Front_Action') + ) + ); + } + public function testCollectRoutes() { $this->_model->collectRoutes('frontend', 'standard'); @@ -80,10 +108,10 @@ class Mage_Core_Controller_Varien_Router_StandardTest extends PHPUnit_Framework_ } /** - * @covers Mage_Core_Controller_Varien_Router_Standard::addModule - * @covers Mage_Core_Controller_Varien_Router_Standard::getModuleByFrontName - * @covers Mage_Core_Controller_Varien_Router_Standard::getRouteByFrontName - * @covers Mage_Core_Controller_Varien_Router_Standard::getFrontNameByRoute + * @covers Mage_Core_Controller_Varien_Router_Base::addModule + * @covers Mage_Core_Controller_Varien_Router_Base::getModuleByFrontName + * @covers Mage_Core_Controller_Varien_Router_Base::getRouteByFrontName + * @covers Mage_Core_Controller_Varien_Router_Base::getFrontNameByRoute */ public function testAddModuleAndGetters() { @@ -99,8 +127,8 @@ class Mage_Core_Controller_Varien_Router_StandardTest extends PHPUnit_Framework_ } /** - * @covers Mage_Core_Controller_Varien_Router_Standard::getControllerFileName - * @covers Mage_Core_Controller_Varien_Router_Standard::validateControllerFileName + * @covers Mage_Core_Controller_Varien_Router_Base::getControllerFileName + * @covers Mage_Core_Controller_Varien_Router_Base::validateControllerFileName */ public function testGetControllerFileName() { diff --git a/dev/tests/integration/testsuite/Mage/Core/Model/ConfigTest.php b/dev/tests/integration/testsuite/Mage/Core/Model/ConfigTest.php index 110c5885991..e66b1570027 100644 --- a/dev/tests/integration/testsuite/Mage/Core/Model/ConfigTest.php +++ b/dev/tests/integration/testsuite/Mage/Core/Model/ConfigTest.php @@ -323,23 +323,27 @@ class Mage_Core_Model_ConfigTest extends PHPUnit_Framework_TestCase } /** - * Test shouldUrlBeSecure() function for "Use Secure URLs in Frontend" = Yes/No + * Test shouldUrlBeSecure() function for "Use Secure URLs in Frontend" = Yes + * + * @magentoConfigFixture current_store web/secure/use_in_frontend 1 */ - public function testShouldUrlBeSecure() + public function testShouldUrlBeSecureWhenSecureUsedInFrontend() { - $this->markTestIncomplete('Bug MAGE-6271'); $model = $this->_createModel(true); + $this->assertFalse($model->shouldUrlBeSecure('/')); + $this->assertTrue($model->shouldUrlBeSecure('/checkout/onepage')); + } - $store = Mage::app()->getStore(); - $oldValue = (string)$store->getConfig('web/secure/use_in_frontend'); - foreach (array(0, 1) as $newValue) { - $store->setConfig('web/secure/use_in_frontend', $newValue); - $model->reinit(); - $this->assertFalse($model->shouldUrlBeSecure('/')); - $this->assertEquals($model->shouldUrlBeSecure('/checkout/onepage'), (bool)$newValue); - } - - $store->setConfig('web/secure/use_in_frontend', $oldValue); + /** + * Test shouldUrlBeSecure() function for "Use Secure URLs in Frontend" = No + * + * @magentoConfigFixture current_store web/secure/use_in_frontend 0 + */ + public function testShouldUrlBeSecureWhenSecureNotUsedInFrontend() + { + $model = $this->_createModel(true); + $this->assertFalse($model->shouldUrlBeSecure('/')); + $this->assertFalse($model->shouldUrlBeSecure('/checkout/onepage')); } public function testGetTablePrefix() @@ -400,4 +404,57 @@ class Mage_Core_Model_ConfigTest extends PHPUnit_Framework_TestCase } return $model; } + + /** + * Check if areas loaded correctly from configuration + * + * @magentoAppIsolation enabled + * @magentoDataFixture Mage/Core/_files/load_configuration.php + */ + public function testGetAreas() + { + $allowedAreas = Mage::app()->getConfig()->getAreas(); + $this->assertNotEmpty($allowedAreas, 'Areas are not initialized'); + + $this->assertArrayHasKey('test_area1', $allowedAreas, 'Test area #1 is not loaded'); + + $testAreaExpected = array( + 'base_controller' => 'Mage_Core_Controller_Varien_Action', + 'routers' => array( + 'test_router1' => array( + 'class' => 'Mage_Core_Controller_Varien_Router_Default' + ), + 'test_router2' => array( + 'class' => 'Mage_Core_Controller_Varien_Router_Default' + ) + ) + ); + $this->assertEquals($testAreaExpected, $allowedAreas['test_area1'], 'Test area is not loaded correctly'); + + $this->assertArrayNotHasKey('test_area2', $allowedAreas, 'Test area #2 is loaded by mistake'); + $this->assertArrayNotHasKey('test_area3', $allowedAreas, 'Test area #3 is loaded by mistake'); + $this->assertArrayNotHasKey('test_area4', $allowedAreas, 'Test area #4 is loaded by mistake'); + $this->assertArrayNotHasKey('test_area5', $allowedAreas, 'Test area #5 is loaded by mistake'); + } + + /** + * Check if routers loaded correctly from configuration + * + * @magentoAppIsolation enabled + * @magentoDataFixture Mage/Core/_files/load_configuration.php + */ + public function testGetRouters() + { + $loadedRouters = Mage::app()->getConfig()->getRouters(); + $this->assertArrayHasKey('test_router1', $loadedRouters, 'Test router #1 is not initialized in test area.'); + $this->assertArrayHasKey('test_router2', $loadedRouters, 'Test router #2 is not initialized in test area.'); + + $testRouterExpected = array( + 'class' => 'Mage_Core_Controller_Varien_Router_Default', + 'area' => 'test_area1', + 'base_controller' => 'Mage_Core_Controller_Varien_Action' + ); + $this->assertEquals($testRouterExpected, $loadedRouters['test_router1'], 'Test router is not loaded correctly'); + $this->assertEquals($testRouterExpected, $loadedRouters['test_router2'], 'Test router is not loaded correctly'); + } } diff --git a/dev/tests/integration/testsuite/Mage/Core/_files/etc/config.xml b/dev/tests/integration/testsuite/Mage/Core/_files/etc/config.xml new file mode 100644 index 00000000000..7b4b1bc7e99 --- /dev/null +++ b/dev/tests/integration/testsuite/Mage/Core/_files/etc/config.xml @@ -0,0 +1,82 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * 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_AFL.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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category Mage + * @package Mage_Core + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<config> + <modules> + <Mage_Core> + <version>1.6.0.2</version> + </Mage_Core> + </modules> + <global> + <areas> + <test_area1> + <base_controller>Mage_Core_Controller_Varien_Action</base_controller> + <routers> + <test_router1> + <class>Mage_Core_Controller_Varien_Router_Default</class> + </test_router1> + <test_router2> + <class>Mage_Core_Controller_Varien_Router_Default</class> + </test_router2> + </routers> + </test_area1> + <test_area2> + <base_controller></base_controller> + <routers> + <test_router> + <class>Mage_Core_Controller_Varien_Router_Default</class> + </test_router> + </routers> + </test_area2> + <test_area3> + <routers> + <test_router> + <class>Mage_Core_Controller_Varien_Router_Default</class> + </test_router> + </routers> + </test_area3> + <test_area4> + <base_controller>Mage_Core_Controller_Varien_Action</base_controller> + <routers> + </routers> + </test_area4> + <test_area5> + <base_controller>Mage_Core_Controller_Varien_Action</base_controller> + </test_area5> + </areas> + </global> + <test_area1> + <routers> + <mage_core> + <use>test_router</use> + <args> + <module>Mage_Core</module> + </args> + </mage_core> + </routers> + </test_area1> +</config> \ No newline at end of file diff --git a/dev/tests/integration/testsuite/Mage/Core/_files/load_configuration.php b/dev/tests/integration/testsuite/Mage/Core/_files/load_configuration.php new file mode 100644 index 00000000000..1e30fd17dbb --- /dev/null +++ b/dev/tests/integration/testsuite/Mage/Core/_files/load_configuration.php @@ -0,0 +1,28 @@ +<?php +/** + * Magento + * + * 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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category Mage + * @package Mage_Core + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +$areaConfig = new Mage_Core_Model_Config_Base(dirname(__FILE__).'/etc/config.xml'); +Mage::app()->getConfig()->extend($areaConfig); \ No newline at end of file diff --git a/dev/tests/integration/testsuite/Mage/DesignEditor/Block/Toolbar/PageTypeTest.php b/dev/tests/integration/testsuite/Mage/DesignEditor/Block/Toolbar/PageTypeTest.php index 308cabb7067..63faa6640a9 100644 --- a/dev/tests/integration/testsuite/Mage/DesignEditor/Block/Toolbar/PageTypeTest.php +++ b/dev/tests/integration/testsuite/Mage/DesignEditor/Block/Toolbar/PageTypeTest.php @@ -39,10 +39,8 @@ class Mage_DesignEditor_Block_Toolbar_PageTypeTest extends PHPUnit_Framework_Tes { $layoutUtility = new Mage_Core_Utility_Layout($this); $pageTypesFixture = __DIR__ . '/../../../Core/Model/Layout/_files/_page_types.xml'; - $layout = $layoutUtility->getLayoutFromFixture($pageTypesFixture); - $layout->getUpdate()->addPageHandles(array('catalog_product_view_type_simple')); $this->_block = new Mage_DesignEditor_Block_Toolbar_PageType(); - $this->_block->setLayout($layout); + $this->_block->setLayout($layoutUtility->getLayoutFromFixture($pageTypesFixture)); } public function testRenderPageTypes() @@ -52,9 +50,32 @@ class Mage_DesignEditor_Block_Toolbar_PageTypeTest extends PHPUnit_Framework_Tes $this->assertXmlStringEqualsXmlFile($expected, $actual); } - public function testGetSelectedPageType() + public function testGetSelectedPageTypeFromPageHandles() { + $this->_block->getLayout()->getUpdate()->addPageHandles(array('catalog_product_view_type_simple')); $this->assertEquals('catalog_product_view_type_simple', $this->_block->getSelectedPageType()); + } + + public function testGetSelectedPageTypeFromHandles() + { + $this->_block->getLayout()->getUpdate()->addHandle(array( + 'catalog_product_view', + 'catalog_product_view_type_grouped', + 'not_a_page_type', + )); + $this->assertEquals('catalog_product_view_type_grouped', $this->_block->getSelectedPageType()); + } + + public function testGetSelectedPageTypeLabel() + { + $this->assertFalse($this->_block->getSelectedPageTypeLabel()); + $this->_block->setSelectedPageType('default'); + $this->assertEquals('All Pages', $this->_block->getSelectedPageTypeLabel()); + } + + public function testSetSelectedPageType() + { + $this->assertFalse($this->_block->getSelectedPageType()); $this->_block->setSelectedPageType('catalog_product_view_type_configurable'); $this->assertEquals('catalog_product_view_type_configurable', $this->_block->getSelectedPageType()); } diff --git a/dev/tests/integration/testsuite/Mage/DesignEditor/Block/Toolbar/SkinTest.php b/dev/tests/integration/testsuite/Mage/DesignEditor/Block/Toolbar/SkinTest.php index de4c40961e2..2abf90501a5 100644 --- a/dev/tests/integration/testsuite/Mage/DesignEditor/Block/Toolbar/SkinTest.php +++ b/dev/tests/integration/testsuite/Mage/DesignEditor/Block/Toolbar/SkinTest.php @@ -79,42 +79,6 @@ class Mage_DesignEditor_Block_Toolbar_SkinTest extends PHPUnit_Framework_TestCas $this->assertFalse($isSelected); } - public function testGetJsonConfigType() - { - $jsonConfig = $this->_block->getJsonConfig(); - $origData = json_decode($jsonConfig); - $this->assertInstanceOf('StdClass', $origData); - } - - /** - * @param string $key - * @param string $valueType - * - * @dataProvider getJsonConfigKeysAndValuesDataProvider - */ - public function testGetJsonConfigKeysAndValues($key, $valueType) - { - $jsonConfig = $this->_block->getJsonConfig(); - $origData = (array) json_decode($jsonConfig); - $this->assertArrayHasKey($key, $origData); - if ($origData[$key] instanceof StdClass) { - $origData[$key] = (array) $origData[$key]; - } - $this->assertInternalType($valueType, $origData[$key]); - } - - /** - * @return array - */ - public function getJsonConfigKeysAndValuesDataProvider() - { - return array( - array('selectId', 'string'), - array('changeSkinUrl', 'string'), - array('backParams', 'array') - ); - } - public function testGetSelectHtmlId() { $value = $this->_block->getSelectHtmlId(); diff --git a/dev/tests/integration/testsuite/Mage/DesignEditor/Block/Toolbar/_files/_breadcrumbs_simple_product.html b/dev/tests/integration/testsuite/Mage/DesignEditor/Block/Toolbar/_files/_breadcrumbs_simple_product.html index 3f556dd7f1b..3b2651b5344 100644 --- a/dev/tests/integration/testsuite/Mage/DesignEditor/Block/Toolbar/_files/_breadcrumbs_simple_product.html +++ b/dev/tests/integration/testsuite/Mage/DesignEditor/Block/Toolbar/_files/_breadcrumbs_simple_product.html @@ -25,13 +25,12 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ --> -<div> - <span>Current Location:</span> +<div class="vde_breadcrumbs"> <a href="http://localhost/index.php/design/editor/page/page_type/default/">All Pages</a> - <span>/</span> + <span class="vde_breadcrumbs_separator">/</span> <a href="http://localhost/index.php/design/editor/page/page_type/catalog_category_default/">Catalog Category (Non-Anchor)</a> - <span>/</span> + <span class="vde_breadcrumbs_separator">/</span> <a href="http://localhost/index.php/design/editor/page/page_type/catalog_product_view/">Catalog Product View (Any)</a> - <span>/</span> + <span class="vde_breadcrumbs_separator">/</span> <span>Catalog Product View (Simple)</span> </div> diff --git a/dev/tests/integration/testsuite/Mage/Sales/_files/quote.php b/dev/tests/integration/testsuite/Mage/Sales/_files/quote.php index bbf018dcd0f..8dad3557fde 100644 --- a/dev/tests/integration/testsuite/Mage/Sales/_files/quote.php +++ b/dev/tests/integration/testsuite/Mage/Sales/_files/quote.php @@ -48,10 +48,20 @@ $product->setTypeId('simple') ->save(); $product->load(1); +$addressData = include(__DIR__ . '/address_data.php'); +$billingAddress = new Mage_Sales_Model_Quote_Address($addressData); +$billingAddress->setAddressType('billing'); + +$shippingAddress = clone $billingAddress; +$shippingAddress->setId(null) + ->setAddressType('shipping'); + $quote = new Mage_Sales_Model_Quote(); $quote->setCustomerIsGuest(true) ->setStoreId(Mage::app()->getStore()->getId()) ->setReservedOrderId('test01') + ->setBillingAddress($billingAddress) + ->setShippingAddress($shippingAddress) ->addProduct($product); $quote->getPayment()->setMethod('checkmo'); $quote->setIsMultiShipping('1'); diff --git a/dev/tests/integration/testsuite/Mage/Wishlist/Block/Customer/Wishlist/Item/OptionsTest.php b/dev/tests/integration/testsuite/Mage/Wishlist/Block/Customer/Wishlist/Item/OptionsTest.php new file mode 100644 index 00000000000..b6eeca96fb6 --- /dev/null +++ b/dev/tests/integration/testsuite/Mage/Wishlist/Block/Customer/Wishlist/Item/OptionsTest.php @@ -0,0 +1,47 @@ +<?php +/** + * Magento + * + * 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@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category Magento + * @package Mage_Wishlist + * @subpackage integration_tests + * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +/** + * @group module:Mage_Wishlist + */ +/** + * Test class for Mage_Wishlist_Block_Customer_Wishlist_Item_Options. + */ +class Mage_Wishlist_Block_Customer_Wishlist_Item_OptionsTest extends PHPUnit_Framework_TestCase +{ + public function testGetTemplate() + { + $block = new Mage_Wishlist_Block_Customer_Wishlist_Item_Options; + $this->assertEmpty($block->getTemplate()); + $product = new Varien_Object(array('type_id' => 'test')); + $item = new Varien_Object(array('product' => $product)); + $block->setItem($item); + $this->assertNotEmpty($block->getTemplate()); + $block->setTemplate('template'); + $this->assertEquals('template', $block->getTemplate()); + } +} diff --git a/dev/tests/integration/testsuite/Varien/Db/Adapter/InterfaceTest.php b/dev/tests/integration/testsuite/Varien/Db/Adapter/InterfaceTest.php index aac51225f6b..9fa867ccb13 100644 --- a/dev/tests/integration/testsuite/Varien/Db/Adapter/InterfaceTest.php +++ b/dev/tests/integration/testsuite/Varien/Db/Adapter/InterfaceTest.php @@ -158,4 +158,41 @@ class Varien_Db_Adapter_InterfaceTest extends PHPUnit_Framework_TestCase 'Multiple-column index must be dropped to not duplicate existing index by indexed columns.' ); } + + /** + * @param array $columns + * @param array $data + * @param array $expected + * @dataProvider insertArrayDataProvider + */ + public function testInsertArray(array $columns, array $data, array $expected) + { + $this->_connection->insertArray($this->_tableName, $columns, $data); + $select = $this->_connection->select() + ->from($this->_tableName); + $result = array_values($this->_connection->fetchAll($select)); + $this->assertEquals($expected, $result); + } + + public function insertArrayDataProvider() + { + return array( + array( + array('column1'), + array(array(1), array(2)), + array( + array('column1' => 1, 'column2' => null), + array('column1' => 2, 'column2' => null), + ), + ), + array( + array('column1', 'column2'), + array(array(1, 2), array(3, 4)), + array( + array('column1' => 1, 'column2' => 2), + array('column1' => 3, 'column2' => 4), + ), + ) + ); + } } diff --git a/dev/tests/integration/testsuite/integrity/Mage/Checkout/Block/CartTest.php b/dev/tests/integration/testsuite/integrity/Mage/Checkout/Block/CartTest.php index a7494f95a03..76ee36d2651 100644 --- a/dev/tests/integration/testsuite/integrity/Mage/Checkout/Block/CartTest.php +++ b/dev/tests/integration/testsuite/integrity/Mage/Checkout/Block/CartTest.php @@ -46,7 +46,11 @@ class Integrity_Mage_Checkout_Block_CartTest extends PHPUnit_Framework_TestCase foreach ($nodes as $node) { $template = (array)$node->children(); $template = array_shift($template); - $this->assertFileExists(Mage::getDesign()->getTemplateFilename("Mage_Checkout::{$template}", $params)); + $blockNode = $node->xpath('..'); + $blockNode = $blockNode[0]; + preg_match('/^(.+?_.+?)_/', $blockNode['type'], $matches); + $params['_module'] = $matches[1]; + $this->assertFileExists(Mage::getDesign()->getTemplateFilename($template, $params)); } } diff --git a/dev/tests/static/testsuite/Legacy/ClassesTest.php b/dev/tests/static/testsuite/Legacy/ClassesTest.php index 166bc738d76..3b83c2526da 100644 --- a/dev/tests/static/testsuite/Legacy/ClassesTest.php +++ b/dev/tests/static/testsuite/Legacy/ClassesTest.php @@ -139,6 +139,9 @@ class Legacy_ClassesTest extends PHPUnit_Framework_TestCase } $classes = array_merge($classes, Utility_Classes::getXmlAttributeValues($xml, '/layout//@module', 'module')); $this->_assertNonFactoryName(array_unique($classes)); + + $tabs = Utility_Classes::getXmlNodeValues($xml, '/layout//action[@method="addTab"]/block'); + $this->_assertNonFactoryName(array_unique($tabs), true); } /** @@ -155,9 +158,10 @@ class Legacy_ClassesTest extends PHPUnit_Framework_TestCase * Suppressing "unused variable" because of the "catch" block * * @param array $names + * @param bool $softComparison * @SuppressWarnings(PHPMD.UnusedLocalVariable) */ - protected function _assertNonFactoryName($names) + protected function _assertNonFactoryName($names, $softComparison = false) { if (!$names) { return; @@ -165,8 +169,12 @@ class Legacy_ClassesTest extends PHPUnit_Framework_TestCase $factoryNames = array(); foreach ($names as $name) { try { - $this->assertFalse(false === strpos($name, '_')); - $this->assertRegExp('/^([A-Z][A-Za-z\d_]+)+$/', $name); + if ($softComparison) { + $this->assertNotRegExp('/\//', $name); + } else { + $this->assertFalse(false === strpos($name, '_')); + $this->assertRegExp('/^([A-Z][A-Za-z\d_]+)+$/', $name); + } } catch (PHPUnit_Framework_AssertionFailedError $e) { $factoryNames[] = $name; } diff --git a/dev/tools/migration/factory_table_names.php b/dev/tools/migration/factory_table_names.php index 62d800f2261..1f2ed74c135 100644 --- a/dev/tools/migration/factory_table_names.php +++ b/dev/tools/migration/factory_table_names.php @@ -25,7 +25,7 @@ */ define('USAGE', <<<USAGE -$>./factory_table_names.php -- [-ehds] +$>./factory_table_names.php -- [-dseh] additional parameters: -d replacement in dry-run mode -s search for table names not in list for replacement diff --git a/dev/tools/migration/factory_table_names/replace_ce.php b/dev/tools/migration/factory_table_names/replace_ce.php index 9462c6b095b..15c45a332af 100644 --- a/dev/tools/migration/factory_table_names/replace_ce.php +++ b/dev/tools/migration/factory_table_names/replace_ce.php @@ -42,10 +42,10 @@ return array( 'api/rule' => 'api_rule', 'api/session' => 'api_session', 'api/user' => 'api_user', - 'api2/acl_user' => 'api2_acl_user', 'api2/acl_attribute' => 'api2_acl_attribute', 'api2/acl_role' => 'api2_acl_role', 'api2/acl_rule' => 'api2_acl_rule', + 'api2/acl_user' => 'api2_acl_user', 'array(\'catalog/category\', \'datetime\')' => 'catalog_category_entity_datetime', 'array(\'catalog/category\', \'decimal\')' => 'catalog_category_entity_decimal', 'array(\'catalog/category\', \'int\')' => 'catalog_category_entity_int', diff --git a/lib/Varien/Data/Form/Element/Editor.php b/lib/Varien/Data/Form/Element/Editor.php index 074f9e338df..e6c219cc2ad 100644 --- a/lib/Varien/Data/Form/Element/Editor.php +++ b/lib/Varien/Data/Form/Element/Editor.php @@ -364,7 +364,7 @@ class Varien_Data_Form_Element_Editor extends Varien_Data_Form_Element_Textarea public function translate($string) { $translator = $this->getConfig('translator'); - if (is_object($translator) && is_callable(array($translator, '__'))) { + if (method_exists($translator, '__')) { $result = $translator->__($string); if (is_string($result)) { return $result; diff --git a/lib/Varien/Db/Adapter/Pdo/Mysql.php b/lib/Varien/Db/Adapter/Pdo/Mysql.php index dd29eeb8a7d..0a14c6b6b57 100644 --- a/lib/Varien/Db/Adapter/Pdo/Mysql.php +++ b/lib/Varien/Db/Adapter/Pdo/Mysql.php @@ -894,7 +894,7 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V { if (!$this->tableColumnExists($tableName, $oldColumnName, $schemaName)) { throw new Zend_Db_Exception(sprintf( - 'Column "%s" does not exists on table "%s"', + 'Column "%s" does not exist in table "%s".', $oldColumnName, $tableName )); @@ -934,7 +934,7 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V public function modifyColumn($tableName, $columnName, $definition, $flushData = false, $schemaName = null) { if (!$this->tableColumnExists($tableName, $columnName, $schemaName)) { - throw new Zend_Db_Exception(sprintf('Column "%s" does not exists on table "%s"', $columnName, $tableName)); + throw new Zend_Db_Exception(sprintf('Column "%s" does not exist in table "%s".', $columnName, $tableName)); } if (is_array($definition)) { $definition = $this->_getColumnDefinition($definition); @@ -2261,6 +2261,8 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V $cDefault = new Zend_Db_Expr('0 ON UPDATE CURRENT_TIMESTAMP'); } else if ($cDefault == Varien_Db_Ddl_Table::TIMESTAMP_INIT_UPDATE) { $cDefault = new Zend_Db_Expr('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'); + } else if ($cNullable && !$cDefault) { + $cDefault = new Zend_Db_Expr('NULL'); } else { $cDefault = false; } diff --git a/lib/Varien/Filter/Template.php b/lib/Varien/Filter/Template.php index 06bd6f7f7d8..61608a9f928 100644 --- a/lib/Varien/Filter/Template.php +++ b/lib/Varien/Filter/Template.php @@ -131,9 +131,9 @@ class Varien_Filter_Template implements Zend_Filter_Interface continue; } try { - $replacedValue = call_user_func($callback, $construction); + $replacedValue = call_user_func($callback, $construction); } catch (Exception $e) { - throw $e; + throw $e; } $value = str_replace($construction[0], $replacedValue, $value); } @@ -149,8 +149,8 @@ class Varien_Filter_Template implements Zend_Filter_Interface return $construction[0]; } - $replacedValue = $this->_getVariable($construction[2], ''); - return $replacedValue; + $replacedValue = $this->_getVariable($construction[2], ''); + return $replacedValue; } public function includeDirective($construction) @@ -212,9 +212,9 @@ class Varien_Filter_Template implements Zend_Filter_Interface $tokenizer->setString($value); $params = $tokenizer->tokenize(); foreach ($params as $key => $value) { - if (substr($value, 0, 1) === '$') { - $params[$key] = $this->_getVariable(substr($value, 1), null); - } + if (substr($value, 0, 1) === '$') { + $params[$key] = $this->_getVariable(substr($value, 1), null); + } } return $params; } @@ -238,24 +238,22 @@ class Varien_Filter_Template implements Zend_Filter_Interface if ($i == 0 && isset($this->_templateVars[$stackVars[$i]['name']])) { // Getting of template value $stackVars[$i]['variable'] =& $this->_templateVars[$stackVars[$i]['name']]; - } else if (isset($stackVars[$i-1]['variable']) - && $stackVars[$i-1]['variable'] instanceof Varien_Object) { + } elseif (isset($stackVars[$i-1]['variable']) && $stackVars[$i-1]['variable'] instanceof Varien_Object) { // If object calling methods or getting properties - if($stackVars[$i]['type'] == 'property') { - $caller = "get" . uc_words($stackVars[$i]['name'], ''); - if(is_callable(array($stackVars[$i-1]['variable'], $caller))) { - // If specified getter for this property - $stackVars[$i]['variable'] = $stackVars[$i-1]['variable']->$caller(); - } else { - $stackVars[$i]['variable'] = $stackVars[$i-1]['variable'] - ->getData($stackVars[$i]['name']); - } - } else if ($stackVars[$i]['type'] == 'method') { + if ($stackVars[$i]['type'] == 'property') { + $caller = 'get' . uc_words($stackVars[$i]['name'], ''); + $stackVars[$i]['variable'] = method_exists($stackVars[$i-1]['variable'], $caller) + ? $stackVars[$i-1]['variable']->$caller() + : $stackVars[$i-1]['variable']->getData($stackVars[$i]['name']); + } elseif ($stackVars[$i]['type'] == 'method') { // Calling of object method - if (is_callable(array($stackVars[$i-1]['variable'], $stackVars[$i]['name'])) || substr($stackVars[$i]['name'],0,3) == 'get') { - $stackVars[$i]['variable'] = call_user_func_array(array($stackVars[$i-1]['variable'], - $stackVars[$i]['name']), - $stackVars[$i]['args']); + if (method_exists($stackVars[$i-1]['variable'], $stackVars[$i]['name']) + || substr($stackVars[$i]['name'], 0, 3) == 'get' + ) { + $stackVars[$i]['variable'] = call_user_func_array( + array($stackVars[$i-1]['variable'], $stackVars[$i]['name']), + $stackVars[$i]['args'] + ); } } $last = $i; diff --git a/pub/.htaccess b/pub/.htaccess index 742e08c830b..62459781d49 100644 --- a/pub/.htaccess +++ b/pub/.htaccess @@ -122,6 +122,16 @@ #RewriteBase /magento/ +############################################ +## uncomment next line to enable light API calls processing + +# RewriteRule ^api/([a-z][0-9a-z_]+)/?$ api.php?type=$1 [QSA,L] + +############################################ +## rewrite API2 calls to api.php (by now it is REST only) + + RewriteRule ^api/rest api.php?type=rest [QSA,L] + ############################################ ## workaround for HTTP authorization ## in CGI environment diff --git a/pub/js/jquery/slimScroll/slimScroll.min.js b/pub/js/jquery/slimScroll/slimScroll.min.js new file mode 100644 index 00000000000..4a928fb8a76 --- /dev/null +++ b/pub/js/jquery/slimScroll/slimScroll.min.js @@ -0,0 +1,13 @@ +/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la) + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. + * + * Version: 0.5.0 + * + */ +(function(d){jQuery.fn.extend({slimScroll:function(o){var a=ops=d.extend({wheelStep:20,width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:0.4,alwaysVisible:!1,railVisible:!1,railColor:"#333",railOpacity:"0.2",railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:!1,scroll:0},o);this.each(function(){function h(a,d,e){var f=a;d&&(f=parseInt(c.css("top"))+a*B/100*c.outerHeight(),d=b.outerHeight()-c.outerHeight(), +f=Math.min(Math.max(f,0),d),c.css({top:f+"px"}));k=parseInt(c.css("top"))/(b.outerHeight()-c.outerHeight());f=k*(b[0].scrollHeight-b.outerHeight());e&&(f=a,a=f/b[0].scrollHeight*b.outerHeight(),c.css({top:a+"px"}));b.scrollTop(f);p();i()}function w(){q=Math.max(b.outerHeight()/b[0].scrollHeight*b.outerHeight(),o);c.css({height:q+"px"})}function p(){w();clearTimeout(x);l=C&&k==~~k;q>=b.outerHeight()?l=!0:(c.stop(!0,!0).fadeIn("fast"),y&&g.stop(!0,!0).fadeIn("fast"))}function i(){m||(x=setTimeout(function(){!r&& +!s&&(c.fadeOut("slow"),g.fadeOut("slow"))},1E3))}var t,r,s,x,q,k,o=30,l=!1,B=parseInt(a.wheelStep),j=a.width,z=a.height,e=a.size,D=a.color,E=a.position,A=a.distance,u=a.start,F=a.opacity,m=a.alwaysVisible,y=a.railVisible,G=a.railColor,H=a.railOpacity,C=a.allowPageScroll,n=a.scroll,b=d(this);if(b.parent().hasClass("slimScrollDiv"))n&&(c=b.parent().find(".slimScrollBar"),g=b.parent().find(".slimScrollRail"),h(b.scrollTop()+parseInt(n),!1,!0));else{n=d("<div></div>").addClass(a.wrapperClass).css({position:"relative", +overflow:"hidden",width:j,height:z});b.css({overflow:"hidden",width:j,height:z});var g=d("<div></div>").addClass(a.railClass).css({width:e,height:"100%",position:"absolute",top:0,display:m&&y?"block":"none","border-radius":e,background:G,opacity:H,zIndex:90}),c=d("<div></div>").addClass(a.barClass).css({background:D,width:e,position:"absolute",top:0,opacity:F,display:m?"block":"none","border-radius":e,BorderRadius:e,MozBorderRadius:e,WebkitBorderRadius:e,zIndex:99}),j="right"==E?{right:A}:{left:A}; +g.css(j);c.css(j);b.wrap(n);b.parent().append(c);b.parent().append(g);c.draggable({axis:"y",containment:"parent",start:function(){s=!0},stop:function(){s=!1;i()},drag:function(){h(0,d(this).position().top,!1)}});g.hover(function(){p()},function(){i()});c.hover(function(){r=!0},function(){r=!1});b.hover(function(){t=!0;p();i()},function(){t=!1;i()});var v=function(a){if(t){var a=a||window.event,b=0;a.wheelDelta&&(b=-a.wheelDelta/120);a.detail&&(b=a.detail/3);h(b,!0);a.preventDefault&&!l&&a.preventDefault(); +l||(a.returnValue=!1)}};(function(){window.addEventListener?(this.addEventListener("DOMMouseScroll",v,!1),this.addEventListener("mousewheel",v,!1)):document.attachEvent("onmousewheel",v)})();w();"bottom"==u?(c.css({top:b.outerHeight()-c.outerHeight()}),h(0,!0)):"object"==typeof u&&(h(d(u).position().top,null,!0),m||c.hide())}});return this}});jQuery.fn.extend({slimscroll:jQuery.fn.slimScroll})})(jQuery); \ No newline at end of file diff --git a/pub/js/mage/adminhtml/browser.js b/pub/js/mage/adminhtml/browser.js index 66a841c3415..082e83b32d6 100644 --- a/pub/js/mage/adminhtml/browser.js +++ b/pub/js/mage/adminhtml/browser.js @@ -23,12 +23,12 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ MediabrowserUtility = { - openDialog: function(url, width, height, title) { + openDialog: function(url, width, height, title, options) { if ($('browser_window') && typeof(Windows) != 'undefined') { Windows.focus('browser_window'); return; } - this.dialogWindow = Dialog.info(null, { + this.dialogWindow = Dialog.info(null, Object.extend({ closable: true, resizable: false, draggable: true, @@ -38,13 +38,13 @@ MediabrowserUtility = { top: 50, width: width || 950, height: height || 600, - zIndex: 1000, + zIndex: options && options.zIndex || 1000, recenterAuto: false, hideEffect: Element.hide, showEffect: Element.show, id: 'browser_window', onClose: this.closeDialog.bind(this) - }); + }, options || {})); new Ajax.Updater('modal_dialog_message', url, {evalScripts: true}); }, closeDialog: function(window) { diff --git a/pub/js/mage/adminhtml/wysiwyg/tiny_mce/setup.js b/pub/js/mage/adminhtml/wysiwyg/tiny_mce/setup.js index 367c4e5d7e1..f2bab83dd46 100644 --- a/pub/js/mage/adminhtml/wysiwyg/tiny_mce/setup.js +++ b/pub/js/mage/adminhtml/wysiwyg/tiny_mce/setup.js @@ -75,7 +75,7 @@ tinyMceWysiwygSetup.prototype = getSettings: function(mode) { - var plugins = 'safari,pagebreak,style,layer,table,advhr,advimage,emotions,iespell,media,searchreplace,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras'; + var plugins = 'inlinepopups,safari,pagebreak,style,layer,table,advhr,advimage,emotions,iespell,media,searchreplace,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras'; if (this.config.widget_plugin_src) { plugins = 'magentowidget,' + plugins; @@ -176,7 +176,6 @@ tinyMceWysiwygSetup.prototype = 'store/' + storeId + '/'; this.mediaBrowserOpener = o.win; - this.mediaBrowserOpener.blur(); this.mediaBrowserTargetElementId = o.field; if (typeof(o.type) != 'undefined' && o.type != "") { @@ -186,7 +185,11 @@ tinyMceWysiwygSetup.prototype = typeTitle = this.translate('Insert File...'); } - MediabrowserUtility.openDialog(wUrl, false, false, typeTitle); + MediabrowserUtility.openDialog(wUrl, false, false, typeTitle, { + onBeforeShow: function(win) { + win.element.setStyle({zIndex: 300200}); + } + }); }, translate: function(string) { diff --git a/pub/js/mage/captcha.js b/pub/js/mage/captcha.js index 9f595f32f60..7e7ca1eac00 100644 --- a/pub/js/mage/captcha.js +++ b/pub/js/mage/captcha.js @@ -64,24 +64,24 @@ document.observe('billing-request:completed', function(event) { document.observe('login:setMethod', function(event) { - switch(event.memo.method){ - case 'guest': - if ($('register_during_checkout')) { - $('captcha-input-box-register_during_checkout').hide(); - $('captcha-image-box-register_during_checkout').hide(); - $('captcha-input-box-guest_checkout').show(); - $('captcha-image-box-guest_checkout').show(); + var switchCaptchaElement = function(shown, hidden) { + var inputPrefix = 'captcha-input-box-', imagePrefix = 'captcha-image-box-'; + if ($(inputPrefix + hidden)) { + $(inputPrefix + hidden).hide(); + $(imagePrefix + hidden).hide(); + } + if ($(inputPrefix + shown)) { + $(inputPrefix + shown).show(); + $(imagePrefix + shown).show(); + } + }; - } + switch (event.memo.method) { + case 'guest': + switchCaptchaElement('guest_checkout', 'register_during_checkout'); break; case 'register': - if ($('guest_checkout')) { - $('captcha-input-box-guest_checkout').hide(); - $('captcha-image-box-guest_checkout').hide(); - $('captcha-input-box-register_during_checkout').show(); - $('captcha-image-box-register_during_checkout').show(); - - } + switchCaptchaElement('register_during_checkout', 'guest_checkout'); break; } }); diff --git a/pub/js/prototype/validation.js b/pub/js/prototype/validation.js index bbe65d68195..d62830be7f0 100644 --- a/pub/js/prototype/validation.js +++ b/pub/js/prototype/validation.js @@ -504,6 +504,25 @@ Validation.addAllThese([ var test = new Date(v); return Validation.get('IsEmpty').test(v) || !isNaN(test); }], + ['validate-date-range', 'The From Date value should be less than or equal to the To Date value.', function(v, el) { + var m = /\bdate-range-(\w+)-(\w+)\b/.exec(elm.className); + if (!m || m[2] == 'to' || Validation.get('IsEmpty').test(v)) { + return true; + } + + var currentYear = new Date().getFullYear() + ''; + var normalizedTime = function(v) { + v = v.split(/[.\/]/); + if (v[2] && v[2].length < 4) { + v[2] = currentYear.substr(0, v[2].length) + v[2]; + } + return new Date(v.join('/')).getTime(); + }; + + var dependentElement = Element.select(el.form, '.validate-date-range .date-range-' + m[1] + '-to'); + return !dependentElement || Validation.get('IsEmpty').test(dependentElement.value) + || normalizedTime(v) <= normalizedTime(dependentElement.value); + }], ['validate-email', 'Please enter a valid email address. For example johndoe@domain.com.', function (v) { //return Validation.get('IsEmpty').test(v) || /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v) //return Validation.get('IsEmpty').test(v) || /^[\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9][\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9\.]{1,30}[\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9]@([a-z0-9_-]{1,30}\.){1,5}[a-z]{2,4}$/i.test(v) diff --git a/pub/js/varien/product.js b/pub/js/varien/product.js index 5f8e590bdca..8e7ddc37a98 100644 --- a/pub/js/varien/product.js +++ b/pub/js/varien/product.js @@ -133,14 +133,17 @@ Product.Zoom.prototype = { this.imageZoom = this.floorZoom+(v*(this.ceilingZoom-this.floorZoom)); if (overSize) { - if (this.imageDim.width > this.containerDim.width) { + if (this.imageDim.width > this.imageDim.height) { this.imageEl.style.width = (this.imageZoom*this.containerDim.width)+'px'; - } else if (this.imageDim.height > this.containerDim.height) { + } else { this.imageEl.style.height = (this.imageZoom*this.containerDim.height)+'px'; } - - if(this.containerDim.ratio){ - this.imageEl.style.height = (this.imageZoom*this.containerDim.width*this.containerDim.ratio)+'px'; // for safari + if (this.containerDim.ratio) { + if (this.imageDim.width > this.imageDim.height) { + this.imageEl.style.height = (this.imageZoom*this.containerDim.width*this.containerDim.ratio)+'px'; // for safari + } else { + this.imageEl.style.width = (this.imageZoom*this.containerDim.height*this.containerDim.ratio)+'px'; // for safari + } } } else { this.slider.setDisabled(); -- GitLab