<?xml version="1.0" encoding="utf-8"?>
<modification>
	<name>JooCart Frontend Common Modifications</name>
	<code>joocart_frontend_common</code>
	<version>3.0.3.2</version>
	<author>softPHP</author>
	<link>https://www.soft-php.com</link>
	<file path="catalog/controller/account/account.php">
		<operation>
			<search><![CDATA[$this->document->setTitle($this->language->get('heading_title'));]]></search>
			<add position="after"><![CDATA[
			$data['text_wishlist'] = $this->language->get('text_wishlist');
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/account/download.php">
		<operation>
			<search><![CDATA[$data['results'] = sprintf($this->language->get('text_pagination'), ($download_total) ? (($page - 1) * 10) + 1 : 0, ((($page - 1) * 10) > ($download_total - 10)) ? $download_total : ((($page - 1) * 10) + 10), $download_total, ceil($download_total / 10));]]></search>
			<add position="replace"><![CDATA[$data['results'] = sprintf($this->language->get('text_pagination'), ($download_total) ? (($page - 1) * $pagination->limit) + 1 : 0, ((($page - 1) * $pagination->limit) > ($download_total - $pagination->limit)) ? $download_total : ((($page - 1) * $pagination->limit) + $pagination->limit), $download_total, ceil($download_total / $pagination->limit));]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/account/download.php">
		<operation>
			<search><![CDATA[if (ob_get_level()) {]]></search>
			<add position="replace"><![CDATA[while (ob_get_level() > 0) {]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/account/order.php">
		<operation>
			<search><![CDATA[$this->document->setTitle($this->language->get('heading_title'));]]></search>
			<add position="before"><![CDATA[
			$data['text_empty'] = $this->language->get('text_empty');
			]]></add>
		</operation>
		<operation>
			<search index="1"><![CDATA[$this->load->language('account/order');]]></search>
			<add position="after"><![CDATA[
			$data['text_order_id'] = $this->language->get('text_order_id');
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/account/return.php">
		<operation>
			<search><![CDATA[$this->document->setTitle($this->language->get('heading_title'));]]></search>
			<add position="before"><![CDATA[
			$data['text_empty'] = $this->language->get('text_empty');
			]]></add>
		</operation>
	</file>
	<!-- older version -->
	<file path="catalog/controller/api/customer.php|catalog/controller/api/payment.php|catalog/controller/api/shipping.php">
		<operation>
			<search><![CDATA[if ($custom_field['required'] && empty($this->request->post['custom_field'][$custom_field['location']][$custom_field['custom_field_id']])) {]]></search>
			<add position="replace"><![CDATA[if ($custom_field['required'] && empty($this->request->post['custom_field'][$custom_field['custom_field_id']])) {]]></add>
		</operation>
		<operation>
			<search><![CDATA[} elseif (($custom_field['type'] == 'text') && !empty($custom_field['validation']) && !filter_var($this->request->post['custom_field'][$custom_field['location']][$custom_field['custom_field_id']], FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => $custom_field['validation'])))) {]]></search>
			<add position="replace"><![CDATA[} elseif (($custom_field['type'] == 'text') && !empty($custom_field['validation']) && !filter_var($this->request->post['custom_field'][$custom_field['custom_field_id']], FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => $custom_field['validation'])))) {]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/api/order.php">
		<operation>
			<search><![CDATA[if (empty($this->session->data['payment_methods'])) {]]></search>
			<add position="replace"><![CDATA[if (empty($this->session->data['payment_methods']) && !isset($this->request->post['payment_method'])) {]]></add>
		</operation>
		<operation>
			<search><![CDATA[} elseif (!isset($this->session->data['payment_methods'][$this->request->post['payment_method']])) {]]></search>
			<add position="replace"><![CDATA[} elseif (!isset($this->session->data['payment_methods'][$this->request->post['payment_method']]) && !isset($this->request->post['payment_method'])) {]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/api/payment.php">
		<operation>
			<search index="1"><![CDATA[$json['error'] = $this->language->get('error_no_payment');]]></search>
			<add position="replace"><![CDATA[
			if(defined("ABSPATH")) {
				// Payment Methods fix
				$json['payment_methods'] = array();

				$this->load->model('setting/extension');

				$results = $this->model_setting_extension->getExtensions('payment');

				$recurring = $this->cart->hasRecurringProducts();

				foreach ($results as $result) {
					if ($this->config->get('payment_' . $result['code'] . '_status')) {
						$this->load->model('extension/payment/' . $result['code']);

						$method = $this->{'model_extension_payment_' . $result['code']}->getMethod($this->session->data['payment_address'], $total);

						if ($method) {
							if ($recurring) {
								if (property_exists($this->{'model_extension_payment_' . $result['code']}, 'recurringPayments') && $this->{'model_extension_payment_' . $result['code']}->recurringPayments()) {
									$json['payment_methods'][$result['code']] = $method;
								}
							} else {
								$json['payment_methods'][$result['code']] = $method;
							}
						}
					}
				}

				$sort_order = array();

				foreach ($json['payment_methods'] as $key => $value) {
					$sort_order[$key] = $value['sort_order'];
				}

				array_multisort($sort_order, SORT_ASC, $json['payment_methods']);

				if ($json['payment_methods']) {
					$this->session->data['payment_methods'] = $json['payment_methods'];
				} else {
					$json['error'] = $this->language->get('error_no_payment');
				}
			} else {
				$json['error'] = $this->language->get('error_no_payment');
			}
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/api/shipping.php">
		<operation>
			<search index="1"><![CDATA[$json['error'] = $this->language->get('error_no_shipping');]]></search>
			<add position="replace"><![CDATA[
			if(defined("ABSPATH")) {
				// Shipping Methods fix
				$json['shipping_methods'] = array();

				$this->load->model('setting/extension');

				$results = $this->model_setting_extension->getExtensions('shipping');

				foreach ($results as $result) {
					if ($this->config->get('shipping_' . $result['code'] . '_status')) {
						$this->load->model('extension/shipping/' . $result['code']);

						$quote = $this->{'model_extension_shipping_' . $result['code']}->getQuote($this->session->data['shipping_address']);

						if ($quote) {
							$json['shipping_methods'][$result['code']] = array(
								'title'      => $quote['title'],
								'quote'      => $quote['quote'],
								'sort_order' => $quote['sort_order'],
								'error'      => $quote['error']
							);
						}
					}
				}

				$sort_order = array();

				foreach ($json['shipping_methods'] as $key => $value) {
					$sort_order[$key] = $value['sort_order'];
				}

				array_multisort($sort_order, SORT_ASC, $json['shipping_methods']);

				if ($json['shipping_methods']) {
					$this->session->data['shipping_methods'] = $json['shipping_methods'];
				} else {
					$json['error'] = $this->language->get('error_no_shipping');
				}
			} else {
				$json['error'] = $this->language->get('error_no_shipping');
			}
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/checkout/cart.php">
		<operation>
			<search><![CDATA[$this->document->setTitle($this->language->get('heading_title'));]]></search>
			<add position="before"><![CDATA[
			$data["heading_title"] = $this->language->get('heading_title');
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/checkout/checkout.php">
		<operation>
			<search><![CDATA[$data['header'] = $this->load->controller('common/header');]]></search>
			<add position="after"><![CDATA[
		if(isset($_REQUEST['step']))
		$data['step_value'] = $_REQUEST["step"];
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/checkout/guest.php">
		<operation>
			<search><![CDATA[$this->session->data['account'] = 'guest';]]></search>
			<add position="after"><![CDATA[
		$this->session->data['account_default'] = $this->session->data['account'];
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/checkout/payment_method.php">
		<operation>
			<search index="1"><![CDATA[$json['error']['warning'] = $this->language->get('error_payment');]]></search>
			<add position="replace"><![CDATA[
		if(defined("ABSPATH")) {
			// error fix payment method
			if (isset($this->session->data['payment_address'])) {
				// Selected payment methods should be from cart sub total not total!
				$total = $this->cart->getSubTotal();

				// Payment Methods
				$method_data = array();

				$this->load->model('setting/extension');

				$results = $this->model_setting_extension->getExtensions('payment');

				$recurring = $this->cart->hasRecurringProducts();

				foreach ($results as $result) {
					if ($this->config->get('payment_' . $result['code'] . '_status')) {
						$this->load->model('extension/payment/' . $result['code']);

						$method = $this->{'model_extension_payment_' . $result['code']}->getMethod($this->session->data['payment_address'], $total);

						if ($method) {
							if ($recurring) {
								if (property_exists($this->{'model_extension_payment_' . $result['code']}, 'recurringPayments') && $this->{'model_extension_payment_' . $result['code']}->recurringPayments()) {
									$method_data[$result['code']] = $method;
								}
							} else {
								$method_data[$result['code']] = $method;
							}
						}
					}
				}

				$sort_order = array();

				foreach ($method_data as $key => $value) {
					$sort_order[$key] = $value['sort_order'];
				}

				array_multisort($sort_order, SORT_ASC, $method_data);

				$this->session->data['payment_methods'] = $method_data;
			}
			// end error fix payment method
			if (!isset($this->session->data['payment_methods'][$this->request->post['payment_method']])) {
				$json['error']['warning'] = $this->language->get('error_payment');
			}
		} else {
			$json['error']['warning'] = $this->language->get('error_payment');
		}
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/checkout/register.php">
		<operation>
			<search><![CDATA[$data['text_agree'] = sprintf(]]></search>
			<add position="after"><![CDATA[
			if(defined("ABSPATH"))
			$data['text_agree'] = sprintf($this->language->get('text_agree'), $this->url->link('information/information/agree', 'tmpl=component&information_id=' . $this->config->get('config_account_id'), true), $information_info['title'], $information_info['title']);
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/checkout/register.php|catalog/controller/extension/module/amazon_login.php">
		<operation>
			<search><![CDATA[$this->session->data['account'] = 'register';]]></search>
			<add position="after"><![CDATA[
			$this->session->data['account_default'] = $this->session->data['account'];
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/checkout/shipping_method.php">
		<operation>
			<search index="1"><![CDATA[$json['error']['warning'] = $this->language->get('error_shipping');]]></search>
			<add position="replace"><![CDATA[
			if(defined("ABSPATH")) {
				// error fix shipping method
				if (isset($this->session->data['shipping_address'])) {
					// Shipping Methods
					$method_data = array();
			
					$this->load->model('setting/extension');
			
					$results = $this->model_setting_extension->getExtensions('shipping');
			
					foreach ($results as $result) {
						if ($this->config->get('shipping_' . $result['code'] . '_status')) {
							$this->load->model('extension/shipping/' . $result['code']);
			
							$quote = $this->{'model_extension_shipping_' . $result['code']}->getQuote($this->session->data['shipping_address']);
			
							if ($quote) {
								$method_data[$result['code']] = array(
									'title'      => $quote['title'],
									'quote'      => $quote['quote'],
									'sort_order' => $quote['sort_order'],
									'error'      => $quote['error']
								);
							}
						}
					}
			
					$sort_order = array();
			
					foreach ($method_data as $key => $value) {
						$sort_order[$key] = $value['sort_order'];
					}
			
					array_multisort($sort_order, SORT_ASC, $method_data);
			
					$this->session->data['shipping_methods'] = $method_data;
				}
				// end error fix shipping method
				if (!isset($shipping[0]) || !isset($shipping[1]) || !isset($this->session->data['shipping_methods'][$shipping[0]]['quote'][$shipping[1]])) {
					$json['error']['warning'] = $this->language->get('error_shipping');
				}
			} else {
				$json['error']['warning'] = $this->language->get('error_shipping');
			}
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/common/cart.php">
		<operation>
			<search><![CDATA[return $this->load->view('common/cart', $data);]]></search>
			<add position="before"><![CDATA[
		if(defined("ABSPATH")) {
			global $joocart_module_extension_real_id;
			if(isset($_REQUEST["module_cart"]) || (isset($joocart_module_extension_real_id) && $joocart_module_extension_real_id == "shopping_cart"))
			$data['module_cart'] = "yes";
		} else {
			$data['module_cart'] = false;
		}
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/common/column_left.php|catalog/controller/common/column_right.php">
		<operation>
			<search><![CDATA[public function index() {]]></search>
			<add position="after"><![CDATA[
		$data['JOOCART_DONT_SHOW_LEFTRIGHT_COLUMN'] = "1";
			]]></add>
		</operation>
	</file>	
	
	<file path="catalog/controller/common/footer.php|catalog/controller/common/header.php|catalog/controller/common/menu.php|catalog/controller/extension/total/shipping.php|catalog/controller/product/product.php">
		<operation>
			<search><![CDATA[public function index() {]]></search>
			<add position="after"><![CDATA[
			$data['ABSPATH'] = defined("ABSPATH")?ABSPATH:false;
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/common/footer.php">
		<operation>
			<search><![CDATA[return $this->load->view('common/footer', $data);]]></search>
			<add position="before"><![CDATA[
		$data['JOOCART_DONT_SHOW_FOOTER'] = defined("JOOCART_DONT_SHOW_FOOTER")?JOOCART_DONT_SHOW_FOOTER:"0";
		$data["oc_theme_frontend_only"] = false;
		if(defined("ABSPATH")) {
			global $joocart_module_extension_id;
			$data['module_extension_id'] = $joocart_module_extension_id;
		} else {
			$data['module_extension_id'] = false;
		}
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/common/header.php">
		<operation>
			<search><![CDATA[public function index() {]]></search>
			<add position="after"><![CDATA[
			$data['JOOCART_DONT_INCLUDE_JQUERY'] = "0";
			$data['JOOCART_USE_JQUERY_DOLLAR'] = defined("JOOCART_USE_JQUERY_DOLLAR")?JOOCART_USE_JQUERY_DOLLAR:"0";
			$data['JOOCART_DONT_SHOW_HEADER'] = "0";
			$data['HTTP_SERVER'] = defined("HTTP_SERVER")?HTTP_SERVER:"";
			$data['JOOCART_CHANGE_LANG_TO_DEFAULT'] = "0";
			$data['JOOCART_SHOW_LOGO_HEADER'] = defined("JOOCART_SHOW_LOGO_HEADER")?JOOCART_SHOW_LOGO_HEADER:"1";
			$data['JOOCART_DONT_SHOW_MENUS'] = defined("JOOCART_DONT_SHOW_MENUS")?JOOCART_DONT_SHOW_MENUS:"0";
			$data["oc_theme_frontend_only"] = false;
			if(defined("ABSPATH")) {
				global $joocart_module_extension_id;
				$data['module_extension_id'] = $joocart_module_extension_id;
			} else {
				$data['module_extension_id'] = false;
			}
			if (!defined('VERSION') && defined('JOOCART_OC_VERSION')) { define('VERSION', JOOCART_OC_VERSION); }
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/common/header.php|catalog/controller/extension/payment/pilibaba.php|catalog/controller/extension/payment/skrill.php|catalog/controller/extension/total/voucher.php|catalog/controller/mail/order.php|catalog/model/extension/openbay/ebay_product.php|catalog/model/tool/image.php">
		<operation>
			<search><![CDATA[. 'image/' .]]></search>
			<add position="replace"><![CDATA[. JOOCART_RELATIVE_URL . 'image/' .]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/extension/captcha/basic.php">
		<operation>
			<search><![CDATA[if (empty($this->session->data['captcha']) || ($this->session->data['captcha'] != $this->request->post['captcha'])) {]]></search>
			<add position="replace"><![CDATA[
		if (defined("ABSPATH") && isset($this->session->data['captcha']) && $this->session->data['captcha'] == $this->request->post['captcha']) {
		}
		elseif (defined("ABSPATH") && isset($_COOKIE["captcha"]) && sanitize_text_field(wp_unslash($_COOKIE["captcha"])) == $this->request->post['captcha']) {
		}
		elseif (empty($this->session->data['captcha']) || ($this->session->data['captcha'] != $this->request->post['captcha'])) {
		
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[return $this->load->view('extension/captcha/basic', $data);]]></search>
			<add position="before"><![CDATA[
			if(defined("ABSPATH"))
			@setcookie("captcha", $this->session->data['captcha']);
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/extension/module/amazon_login.php|catalog/controller/extension/payment/pp_braintree.php|catalog/controller/extension/payment/pp_express.php">
		<operation>
			<search><![CDATA[$this->session->data['account'] = 'guest';]]></search>
			<add position="after"><![CDATA[
			$this->session->data['account_default'] = $this->session->data['account'];
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/extension/module/amazon_login.php|catalog/controller/extension/module/amazon_pay.php">
		<operation>
			<search><![CDATA[            setcookie(']]></search>
			<add position="replace"><![CDATA[            @setcookie(']]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/extension/payment/authorizenet_sim.php">
		<operation>
			<search><![CDATA[$data['x_test_request'] = $this->config->get('payment_authorizenet_sim_mode');]]></search>
			<add position="replace"><![CDATA[$data['x_test_request'] = $this->config->get('payment_authorizenet_sim_test');]]></add>
		</operation>
		<operation>
			<search><![CDATA[$data['x_relay_response'] = 'true';]]></search>
			<add position="after"><![CDATA[
			$data['x_receipt_link_url'] = $this->url->link('extension/payment/authorizenet_sim/callback');
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[$this->response->redirect($this->url->link('checkout/success'));]]></search>
			<add position="replace"><![CDATA[
			echo '<script type="text/javascript">';
			echo 'window.location.href="'.str_replace(array('&amp;', "\n", "\r"), array('&', '', ''), $this->url->link('checkout/success')).'";';
			echo '</script>';
			echo '<noscript>';
			echo '<meta http-equiv="refresh" content="0;url='.$this->url->link('checkout/success').'" />';
			echo '</noscript>';
			exit();
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/extension/payment/pp_pro_iframe.php">
		<operation>
			<search><![CDATA[$data['create'] = HTTPS_SERVER.'index.php?route=extension/payment/pp_pro_iframe/create';]]></search>
			<add position="replace"><![CDATA[
			if(defined("ABSPATH"))
			$data['create'] = HTTPS_SERVER.'index.php?tmpl=component&route=extension/payment/pp_pro_iframe/create';
			else
			$data['create'] = HTTPS_SERVER.'index.php?route=extension/payment/pp_pro_iframe/create';
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[$this->config->get('config_template')]]></search>
			<add position="replace"><![CDATA[$this->config->get('theme_default_directory')]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/mail/order.php">
		<operation>
			<search><![CDATA[if ($order_info['payment_address_format']) {]]></search>
			<add position="before"><![CDATA[
			if($data['comment'] == '' && $order_info['comment'])
			$data['comment'] = nl2br($order_info['comment']);
			]]></add>
		</operation>
		<operation>
			<search><![CDATA['index.php?route=account/order/info&]]></search>
			<add position="replace"><![CDATA['index.php?'.JOOCART_PAGE_ID_PARAM.'route=account/order/info&]]></add>
		</operation>
		<operation>
			<search><![CDATA[public function add]]></search>
			<add position="after"><![CDATA[
			if(!defined("JOOCART_PAGE_ID_PARAM"))
			define('JOOCART_PAGE_ID_PARAM', '');
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[public function edit]]></search>
			<add position="after"><![CDATA[
			if(!defined("JOOCART_PAGE_ID_PARAM"))
			define('JOOCART_PAGE_ID_PARAM', '');
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/product/*.php">
		<operation>
			<search><![CDATA[$this->load->model('tool/image');]]></search>
			<add position="after"><![CDATA[
			$data['text_empty'] = $this->language->get('text_empty');
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/startup/error.php">
		<operation>
			<search><![CDATA[if ($this->config->get('config_error_display')) {]]></search>
			<add position="replace"><![CDATA[
		if(!defined("ABSPATH") || (is_object($this->config) && $error != 'Notice' && $error != 'Warning' && $code !=E_STRICT && $error != 'Unknown'))
		if ($this->config->get('config_error_display')) {
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[if ($this->config->get('config_error_log')) {]]></search>
			<add position="replace"><![CDATA[
		if(!defined("ABSPATH") || is_object($this->config) && $error != 'Notice' && $error != 'Warning' && $code !=E_STRICT && $error != 'Unknown')
		if ($this->config->get('config_error_log')) {
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/startup/startup.php">
		<operation>
			<search><![CDATA[setcookie(']]></search>
			<add position="replace"><![CDATA[if(!headers_sent())
			@setcookie(']]></add>
		</operation>
		<operation>
			<search><![CDATA[if (!$query->num_rows) {]]></search>
			<add position="before"><![CDATA[
		if (defined("ABSPATH")) {
			// Start JooCart Changes
			if($this->config->get('config_secure') && !defined("JOOCART_OC_SSL_SECURE"))
			define('JOOCART_OC_SSL_SECURE', $this->config->get('config_secure'));
			global $joocart_application_config_mode;
			
			// End JooCart Changes
		}
		if(!defined('JOOCART_RELATIVE_URL'))
		define('JOOCART_RELATIVE_URL', '');
		if(!defined("JOOCART_PAGE_ID_PARAM"))
		define('JOOCART_PAGE_ID_PARAM', '');
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/startup/startup.php">
		<operation>
			<search><![CDATA[if ($this->config->get('config_timezone')) {]]></search>
			<add position="replace"><![CDATA[if ($this->config->get('config_timezone') && !defined("ABSPATH")) {]]></add>
		</operation>
	</file>
	
	<file path="catalog/language/en-gb/information/contact.php">
		<operation>
			<search><![CDATA[// Text]]></search>
			<add position="after"><![CDATA[
			$_['text_message']   = '<p>Your enquiry has been successfully sent to the store owner!</p>';
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/language/en-gb/product/product.php">
		<operation>
			<search><![CDATA[// Text]]></search>
			<add position="after"><![CDATA[
			$_['text_price']               = 'Price';
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/model/catalog/product.php">
		<operation>
			<search><![CDATA[class ModelCatalogProduct extends Model {]]></search>
			<add position="before"><![CDATA[
if(class_exists("ModelCatalogProduct")) return;
			]]></add>
		</operation>
	</file>
	<!-- older version -->
	<file path="catalog/model/extension/shipping/ups.php">
		<operation>
			<search><![CDATA[if ($this->config->get('ups_' . strtolower($this->config->get('shipping_ups_origin')) . '_' . $code)) {]]></search>
			<add position="replace"><![CDATA[if ($this->config->get('shipping_ups_' . strtolower($this->config->get('shipping_ups_origin')) . '_' . $code)) {]]></add>
		</operation>
	</file>
	
	<file path="catalog/model/localisation/currency.php">
		<operation>
			<search><![CDATA[$this->cache->set('currency', $currency_data);]]></search>
			<add position="replace"><![CDATA[
			if(method_exists($this->cache,'set'))
			$this->cache->set('currency', $currency_data);
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/model/localisation/language.php">
		<operation>
			<search><![CDATA[$this->cache->set('catalog.language', $language_data);]]></search>
			<add position="replace"><![CDATA[
			if(method_exists($this->cache,'set'))
			$this->cache->set('catalog.language', $language_data);
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/model/tool/image.php">
		<operation>
			<search><![CDATA[class ModelToolImage extends Model {]]></search>
			<add position="before"><![CDATA[
if(class_exists("ModelToolImage")) return;
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/view/theme/default/template/checkout/cart.twig">
		<operation>
			<search><![CDATA[<div class="input-group btn-block" style="max-width: 200px;">]]></search>
			<add position="replace"><![CDATA[<div class="input-group btn-block" style="display:inline-table;max-width: 200px;">]]></add>
		</operation>
	</file>
	
	<file path="catalog/view/theme/default/template/checkout/checkout.twig">
		<operation>
			<search index="0"><![CDATA[$('a[href=\'#collapse-payment-address\']').trigger('click');]]></search>
			<add position="after"><![CDATA[
			{% if step_value and step_value == "3" %}
				$("#button-payment-address").click();
			{% endif %}
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[// Checkout]]></search>
			<add position="before"><![CDATA[
doc_ready_status = 0;
$(document).ready(function() {
   doc_ready_status = 1;
});
{% if not logged %}
$(window).on( "load", function() {
if(!doc_ready_status) {
    $.ajax({
        url: 'index.php?route=checkout/login',
        dataType: 'html',
        success: function(html) {
           $('#collapse-checkout-option .panel-body').html(html);

			$('#collapse-checkout-option').parent().find('.panel-heading .panel-title').html('<a href="#collapse-checkout-option" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_option }} <i class="fa fa-caret-down"></i></a>');

			$('a[href=\'#collapse-checkout-option\']').trigger('click');
        },
        error: function(xhr, ajaxOptions, thrownError) {
            // alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
        }
    });
}
});
{% else %}
$(window).on( "load", function() {
if(!doc_ready_status) {
    $.ajax({
        url: 'index.php?route=checkout/payment_address',
        dataType: 'html',
        success: function(html) {
            $('#collapse-payment-address .panel-body').html(html);

			$('#collapse-payment-address').parent().find('.panel-heading .panel-title').html('<a href="#collapse-payment-address" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_payment_address }} <i class="fa fa-caret-down"></i></a>');

			$('a[href=\'#collapse-payment-address\']').trigger('click');
			{% if step_value and step_value == "3" %}
				$("#button-payment-address").click();
			{% endif %}
        },
        error: function(xhr, ajaxOptions, thrownError) {
            // alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
        }
    });
}
});
{% endif %}
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[if (json['redirect']) {]]></search>
			<add position="replace"><![CDATA[if (json && json['redirect']) {]]></add>
		</operation>
		<operation>
			<search><![CDATA[} else if (json['error']) {]]></search>
			<add position="replace"><![CDATA[} else if (json && json['error']) {]]></add>
		</operation>
		<operation>
			<search index="11"><![CDATA[alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);]]></search>
			<add position="replace"><![CDATA[
		// alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
		if(location.search=='')
		window.location.search += '?step=3';
		else
	    window.location.search += '&step=3';
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[$(document).delegate(]]></search>
			<add position="after"><![CDATA[
			click_id=Math.floor(Math.random()*100);
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[<script type="text/javascript"><!--]]></search>
			<add position="after"><![CDATA[
			click_id=Math.floor(Math.random()*100);
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[).trigger('click');]]></search>
			<add position="replace"><![CDATA[)[0].click();]]></add>
		</operation>
	</file>
	
	<file path="catalog/view/theme/default/template/checkout/payment_address.twig|catalog/view/theme/default/template/checkout/shipping_address.twig">
		<operation>
			<search><![CDATA[<option value="{{ address.address_id }}">{{ address.firstname }} {{ address.lastname }}, {{ address.address_1 }}, {{ address.city }}, {{ address.zone }}, {{ address.country }}</option>]]></search>
			<add position="replace"><![CDATA[<option value="{{ address.address_id }}" {% if addresses|length ==1  %}{{ 'selected="selected"' }} {% endif %}>{{ address.firstname }} {{ address.lastname }}, {{ address.address_1 }}, {{ address.city }}, {{ address.zone }}, {{ address.country }}</option>]]></add>
		</operation>
	</file>
	
	<file path="catalog/view/theme/default/template/common/cart.twig">
		<operation>
			<search><![CDATA[<div id="cart" class="btn-group btn-block">]]></search>
			<add position="before"><![CDATA[
			{%  if not module_cart %}
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[</ul>]]></search>
			<add position="replace" offset="1"><![CDATA[
	</ul>
</div>
 {% else %}   
  <div id="cart" class="content">
    {% if products  or  vouchers %} 
    <div class="mini-cart-info">
      <table>
        {% for product in products %} 
        <tr>
          <td style="display:none;" class="image">{% if product.thumb %} 
            <a href="{{ product.href }} "><img src="{{ product.thumb }} " alt="{{ product.name }} " title="{{ product.name }} " /></a>
            {% endif %} </td>
          <td class="name"><a href="{{ product.href }} ">{{ product.name }} </a>
            <div>
              {% for option in product.option %} 
              - <small>{{ option.name }}  {{ option.value }} </small><br />
              {% endfor %}
              {% if product.recurring %} 
              - <small>{{ text_payment_profile }} {{ product.profile }} </small><br />
              {% endif %} 
            </div></td>
          <td class="quantity">x&nbsp;{{ product.quantity }} </td>
          <td class="total">{{ product.total }} </td>
          <td class="remove"><img style="width:16px;height:16px;" src="catalog/view/theme/default/image/remove.png" alt="{{ button_remove }} " title="{{ button_remove }} " onclick="cart.remove('{{ product.cart_id }} ');" /></td>
        </tr>
        {% endfor %}
        {% for voucher in vouchers %} 
        <tr>
          <td style="display:none;" class="image"></td>
          <td class="name">{{ voucher.description }} </td>
          <td class="quantity">x&nbsp;1</td>
          <td class="total">{{ voucher.amount }} </td>
          <td class="remove"><img style="width:16px;height:16px;" src="catalog/view/theme/default/image/remove.png" alt="{{ button_remove }} " title="{{ button_remove }} " onclick="voucher.remove('{{ voucher.key }} ');" /></td>
        </tr>
        {% endfor %} 
      </table>
    </div>
    <div class="mini-cart-total">
      <table>
        {% for total in totals %} 
        <tr>
          <td class="right"><b>{{ total.title }} :</b></td>
          <td class="right">{{ total.text }} </td>
        </tr>
        {% endfor %} 
      </table>
    </div>
    <div class="checkout" style="clear: both;text-align:center;"><a href="{{ cart }} ">{{ text_cart }} </a> | <a href="{{ checkout }} ">{{ text_checkout }} </a></div>
     {% else %}   
    <div class="empty">{{ text_empty }} </div>
     {% endif %}
  </div>
{% endif %}
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/view/theme/default/template/common/column_left.twig|catalog/view/theme/default/template/common/column_right.twig">
		<operation>
			<search><![CDATA[{% if modules %}]]></search>
			<add position="before"><![CDATA[{% if JOOCART_DONT_SHOW_LEFTRIGHT_COLUMN =="0" and modules %}]]></add>
		</operation>
		<operation>
			<search><![CDATA[</aside>]]></search>
			<add position="after"><![CDATA[{% endif %}]]></add>
		</operation>
	</file>
	
	<file path="catalog/view/theme/default/template/common/footer.twig">
		<operation>
			<search><![CDATA[<footer>]]></search>
			<add position="replace"><![CDATA[{% if JOOCART_DONT_SHOW_FOOTER != "1" or (module_extension_id and module_extension_id != "") %}
{% if not module_extension_id or module_extension_id|trim == "" %}
<footer>
{% endif %}]]></add>
		</operation>
		<operation>
			<search><![CDATA[<hr>]]></search>
			<add position="replace" offset="1"><![CDATA[
{% if not module_extension_id or module_extension_id|trim == "" %}
    <hr>
			]]></add>
		</operation>
		<operation>
			<search index="1"><![CDATA[{% endfor %}]]></search>
			<add position="after"><![CDATA[
{% else %}
</div>
{% endif %}
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[</body></html>]]></search>
			<add position="replace"><![CDATA[
{% endif %}
{% if not module_extension_id or module_extension_id|trim =="" %}
{% if ABSPATH and not oc_theme_frontend_only %}
</div>
{% else %}
</body></html>
{% endif %}
{% endif %}
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/view/theme/default/template/common/header.twig">
		<operation>
			<search><![CDATA[{{ language }}]]></search>
			<add position="replace"><![CDATA[
			{% if  JOOCART_CHANGE_LANG_TO_DEFAULT == "0" %}{{ language }}{% endif %}
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[<li class="dropdown"><a href="{{ account }}" title="{{ text_account }}" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> <span class="hidden-xs hidden-sm hidden-md">{{ text_account }}</span> <span class="caret"></span></a>]]></search>
			<add position="replace"><![CDATA[
		{% if not ABSPATH or oc_theme_frontend_only %}<li class="dropdown"><a href="{{ account }}" title="{{ text_account }}" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> <span class="hidden-xs hidden-sm hidden-md">{{ text_account }}</span> <span class="caret"></span></a>
		{% else %}
		<li class="dropdown"><a href="#" title="{{ text_account }}" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> <span class="hidden-xs hidden-sm hidden-md">{{ text_account }}</span> <span class="caret"></span></a>
		{% endif %}
			]]></add>
		</operation>
		<operation>
			<search index="1"><![CDATA[<div class="container">]]></search>
			<add position="replace"><![CDATA[
  {% if not ABSPATH or oc_theme_frontend_only %}<div class="container">{% else %}<div class="container" {% if JOOCART_DONT_SHOW_HEADER =="1" and ( not module_extension_id or module_extension_id|trim == "" ) %} style="display:none;" {% endif %}>{% endif %}
			]]></add>
		</operation>
		<operation>
			<search index="0"><![CDATA[<div class="row">]]></search>
			<add position="replace"><![CDATA[
   {% if not ABSPATH or oc_theme_frontend_only %}<div class="row">{% else %}<div class="row" style="display:inline-block;min-width:100%;">{% if JOOCART_SHOW_LOGO_HEADER == "0" and logo %} {% set logo = '' %} {% endif %}{% endif %}
			]]></add>
		</operation>
		<operation>
			<search index="0"><![CDATA[<div class="col-sm-4">]]></search>
			<add position="replace"><![CDATA[
      {% if not ABSPATH or oc_theme_frontend_only %}<div class="col-sm-4">{% else %}{% if logo %}<div class="col-sm-4">{% else %}<div style="display:none;">{% endif %}{% endif %}
			]]></add>
		</operation>		
		<operation>
			<search index="0"><![CDATA[<div class="col-sm-5">{{ search }}</div>]]></search>
			<add position="replace"><![CDATA[
      {% if not ABSPATH or oc_theme_frontend_only %}<div class="col-sm-5">{{ search }}</div>{% else %}{% if logo %}<div class="col-sm-5">{{ search }}{% else %}<div class="col-sm-9">{{ search }}{% endif %}</div>{% endif %}
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[{{ menu }}]]></search>
			<add position="replace"><![CDATA[
{% endif %}
{% if ( not module_extension_id or module_extension_id|trim =="" ) and JOOCART_DONT_SHOW_MENUS != "1" %}{{ menu }}{% endif %}
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/view/theme/default/template/common/menu.twig">
		<operation>
			<search><![CDATA[<div class="container">]]></search>
			<add position="replace"><![CDATA[
{% if not ABSPATH or oc_theme_frontend_only %}<div class="container">{% else %}<div class="container" style="padding: 0 13px;">{% endif %}
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/view/theme/default/template/extension/module/filter.twig">
		<operation>
			<search><![CDATA[location = '{{ action }}&filter=' + filter.join(',');]]></search>
			<add position="replace"><![CDATA[
	action_url='{{ action }}';
	if (action_url.indexOf("?")>0)
	location = '{{ action }}&filter=' + filter.join(',');
	else
	location = '{{ action }}?filter=' + filter.join(',');
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/view/theme/default/template/extension/module/filter.twig">
		<operation>
			<search><![CDATA[location = '{{ action|escape('js') }}&filter=' + filter.join(',');]]></search>
			<add position="replace"><![CDATA[
	action_url='{{ action }}';
	if (action_url.indexOf("?")>0)
	location = '{{ action|escape('js') }}&filter=' + filter.join(',');
	else
	location = '{{ action|escape('js') }}?filter=' + filter.join(',');
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/view/theme/default/template/extension/total/shipping.twig">
		<operation>
			<search><![CDATA[html  = '<div id="modal-shipping" class="modal">';]]></search>
			<add position="replace"><![CDATA[
				{% if not ABSPATH or oc_theme_frontend_only %}html  = '<div id="modal-shipping" class="modal">';{% else %}html  = '<div class="body-oc"><div id="modal-shipping" class="modal-oc">';{% endif %}
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[html += '</div> ';]]></search>
			<add position="replace"><![CDATA[
			{% if not ABSPATH or oc_theme_frontend_only %}html += '</div> ';{% else %}html += '</div></div> ';{% endif %}
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[$('body').append(html);]]></search>
			<add position="replace"><![CDATA[$(document.body).append(html);]]></add>
		</operation>
	</file>
	<!-- older version -->
	<file path="catalog/view/theme/default/template/mail/order_add.twig">
		<operation>
			<search><![CDATA[<{% endif %}]]></search>
			<add position="replace"><![CDATA[{% endif %}]]></add>
		</operation>
	</file>
	
	<file path="catalog/view/theme/default/template/product/product.twig">
		<operation>
			<search><![CDATA[{% set class = 'col-xs-6 col-sm-3' %}]]></search>
			<add position="replace"><![CDATA[
			{% if not ABSPATH or oc_theme_frontend_only %}{% set class = 'col-xs-6 col-sm-3' %}{% else %}{% set class = 'col-lg-3 col-md-3 col-sm-6 col-xs-12' %}{% endif %}
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[$('.breadcrumb').after('<div class="alert alert-success alert-dismissible">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');]]></search>
			<add position="replace"><![CDATA[$('#content').parent().before('<div class="alert alert-success alert-dismissible">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');]]></add>
		</operation>
		<operation>
			<search><![CDATA[$('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');]]></search>
			<add position="replace"><![CDATA[$('[id="cart"] > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');]]></add>
		</operation>
		<operation>
			<search><![CDATA[$('#cart > ul').load('index.php?route=common/cart/info ul li');]]></search>
			<add position="replace"><![CDATA[
			{% if not ABSPATH or oc_theme_frontend_only %}$('#cart > ul').load('index.php?route=common/cart/info ul li');{% else %}loadCartContent();{% endif %}
			]]></add>
		</operation>
	</file>
</modification>
