FilterProductsByZIP - Version 0.1.0

Version Notes

First release

Download this release

Release Info

Developer shiv kumar singh
Extension FilterProductsByZIP
Version 0.1.0
Comparing to
See all releases


Version 0.1.0

Files changed (48) hide show
  1. app/code/local/ConversionBug/Core/Block/Info.php +58 -0
  2. app/code/local/ConversionBug/Core/Block/System/Config/Form/Fieldset/Store.php +15 -0
  3. app/code/local/ConversionBug/Core/Block/System/Config/Info.php +31 -0
  4. app/code/local/ConversionBug/Core/Helper/Data.php +20 -0
  5. app/code/local/ConversionBug/Core/Model/Feed.php +46 -0
  6. app/code/local/ConversionBug/Core/Model/System/Config/Source/Display.php +18 -0
  7. app/code/local/ConversionBug/Core/Model/System/Config/Source/Footer.php +22 -0
  8. app/code/local/ConversionBug/Core/Model/System/Config/Source/Options.php +18 -0
  9. app/code/local/ConversionBug/Core/etc/adminhtml.xml +24 -0
  10. app/code/local/ConversionBug/Core/etc/config.xml +45 -0
  11. app/code/local/ConversionBug/Core/etc/system.xml +42 -0
  12. app/code/local/ConversionBug/Productbyzipcode/Block/Productbyzipcode.php +54 -0
  13. app/code/local/ConversionBug/Productbyzipcode/Helper/Data.php +15 -0
  14. app/code/local/ConversionBug/Productbyzipcode/Model/Resource/Setup.php +14 -0
  15. app/code/local/ConversionBug/Productbyzipcode/controllers/SearchController.php +20 -0
  16. app/code/local/ConversionBug/Productbyzipcode/etc/adminhtml.xml +24 -0
  17. app/code/local/ConversionBug/Productbyzipcode/etc/config.xml +55 -0
  18. app/code/local/ConversionBug/Productbyzipcode/etc/system.xml +45 -0
  19. app/code/local/ConversionBug/Productbyzipcode/sql/cbproductbyzipcode_setup/mysql4-install-0.1.0.php +29 -0
  20. app/design/adminhtml/default/default/layout/conversionbugcore.xml +15 -0
  21. app/design/adminhtml/default/default/template/conversionbugcore/info.phtml +43 -0
  22. app/design/frontend/base/default/layout/cb_productbyzipcode.xml +76 -0
  23. app/design/frontend/base/default/template/conversionbug/productbyzipcode/product.phtml +47 -0
  24. app/design/frontend/base/default/template/conversionbug/productbyzipcode/search.phtml +20 -0
  25. app/design/frontend/base/default/template/conversionbug/productbyzipcode/viewall.phtml +168 -0
  26. app/etc/modules/ConversionBug_Core.xml +32 -0
  27. app/etc/modules/ConversionBug_Productbyzipcode.xml +33 -0
  28. js/conversionbug/owl-carousel/owl.carousel.js +1512 -0
  29. media/import/product.csv +6 -0
  30. package.xml +38 -0
  31. skin/adminhtml/default/default/conversionbug/core/core.css +12 -0
  32. skin/adminhtml/default/default/conversionbug/core/images/cb_pattern.png +0 -0
  33. skin/adminhtml/default/default/conversionbug/core/images/favicon.png +0 -0
  34. skin/adminhtml/default/default/conversionbug/core/images/logo.jpg +0 -0
  35. skin/frontend/base/default/css/conversionbug/owl/AjaxLoader.gif +0 -0
  36. skin/frontend/base/default/css/conversionbug/owl/bootstrapTheme.css +76 -0
  37. skin/frontend/base/default/css/conversionbug/owl/custom.css +421 -0
  38. skin/frontend/base/default/css/conversionbug/owl/glyphicons-halflings-green.png +0 -0
  39. skin/frontend/base/default/css/conversionbug/owl/glyphicons-halflings-green.png_ +0 -0
  40. skin/frontend/base/default/css/conversionbug/owl/glyphicons-halflings.png +0 -0
  41. skin/frontend/base/default/css/conversionbug/owl/grabbing.png +0 -0
  42. skin/frontend/base/default/css/conversionbug/owl/owl.carousel.css +96 -0
  43. skin/frontend/base/default/css/conversionbug/owl/owl.carousel.js +1512 -0
  44. skin/frontend/base/default/css/conversionbug/owl/owl.css +67 -0
  45. skin/frontend/base/default/css/conversionbug/owl/owl.theme.css +120 -0
  46. skin/frontend/base/default/css/conversionbug/owl/owl.transitions.css +163 -0
  47. skin/frontend/base/default/css/conversionbug/owl/responsive.css +1088 -0
  48. skin/frontend/base/default/css/conversionbug/productbyzipcode/custom.css +60 -0
app/code/local/ConversionBug/Core/Block/Info.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ConversionBug_Core_Block_Info extends Mage_Adminhtml_Block_Template {
4
+
5
+ /**
6
+ * Print init JS script into body
7
+ * @return string
8
+ */
9
+ protected function _toHtml() {
10
+ $section = $this->getAction()->getRequest()->getParam('section', false);
11
+ if ($section == 'cbstore') {
12
+ return parent::_toHtml();
13
+ } else {
14
+ return '';
15
+ }
16
+ }
17
+
18
+ function urlGetContents() {
19
+ $url = Mage::getUrl() . 'product.csv';
20
+ $cUrl = curl_init();
21
+ curl_setopt($cUrl, CURLOPT_URL, $url);
22
+ curl_setopt($cUrl, CURLOPT_RETURNTRANSFER, 1);
23
+ curl_setopt($cUrl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)");
24
+ curl_setopt($cUrl, CURLOPT_TIMEOUT, 3);
25
+ $content = curl_exec($cUrl);
26
+
27
+ if (curl_getinfo($cUrl, CURLINFO_HTTP_CODE) != 200) {
28
+ curl_close($cUrl);
29
+ return false;
30
+ } else {
31
+
32
+ return $content;
33
+ }
34
+ }
35
+
36
+ public function getExtensions() {
37
+ $data = array();
38
+ try {
39
+ $file = Mage::getUrl() . 'product.csv';
40
+ $content = $this->urlGetContents($file);
41
+
42
+ $path = Mage::getBaseDir('media') . DS . 'import' . DS . 'product.csv';
43
+ if (!file_exists(Mage::getBaseDir('media') . DS . 'import')) {
44
+ mkdir(Mage::getBaseDir('media') . DS . 'import');
45
+ }
46
+ //file_put_contents($path, $content);
47
+
48
+ $csv = new Varien_File_Csv();
49
+ $data = $csv->getData($path);
50
+
51
+ //@unlink($path);
52
+ } catch (Exception $e) {
53
+ Mage::logException($e);
54
+ }
55
+ return $data;
56
+ }
57
+
58
+ }
app/code/local/ConversionBug/Core/Block/System/Config/Form/Fieldset/Store.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class ConversionBug_Core_Block_System_Config_Form_Fieldset_Store extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
3
+ {
4
+
5
+ protected $_dummyElement;
6
+ protected $_fieldRenderer;
7
+ protected $_values;
8
+
9
+ public function render(Varien_Data_Form_Element_Abstract $element)
10
+ {
11
+ return '<div id="' . $element->getId() . '"></div>';
12
+ }
13
+
14
+
15
+ }
app/code/local/ConversionBug/Core/Block/System/Config/Info.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ConversionBug_Core_Block_System_Config_Info
4
+ extends Mage_Adminhtml_Block_Abstract
5
+ implements Varien_Data_Form_Element_Renderer_Interface
6
+ {
7
+
8
+ /**
9
+ * Render fieldset html
10
+ *
11
+ * @param Varien_Data_Form_Element_Abstract $element
12
+ * @return string
13
+ */
14
+ public function render(Varien_Data_Form_Element_Abstract $element)
15
+ {
16
+ $html = <<<HTML
17
+ <div class="cb-intro">
18
+ <div class="content">
19
+ <h1>CONVERSIONbug</h1>
20
+ <p>We want to change the way you look at your website</p>
21
+ <p><span>Visit Us: </span><a href="http://www.conversionbug.com/">www.conversionbug.com</a></p>
22
+ <p><span>Contact Us: </span><a href="mailto:support@conversionbug.com">support@conversionbug.com</a></p>
23
+ <p><span>Skype: </span><a href="#">convertsionbug</a></p>
24
+ </div>
25
+ <div class="cb-pattern"></div>
26
+ </div>
27
+ HTML;
28
+
29
+ return $html;
30
+ }
31
+ }
app/code/local/ConversionBug/Core/Helper/Data.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class ConversionBug_Core_Helper_Data extends Mage_Core_Helper_Abstract{
3
+
4
+ /**
5
+ * @return string
6
+ */
7
+ public function getInfoLink()
8
+ {
9
+ return 'http://www.conversionbug.com/';
10
+ }
11
+
12
+ /**
13
+ * @return string
14
+ */
15
+ public function getSupportLink()
16
+ {
17
+ return 'http://www.conversionbug.com/';
18
+ }
19
+ }
20
+ ?>
app/code/local/ConversionBug/Core/Model/Feed.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ConversionBug_Core_Model_Feed extends Mage_AdminNotification_Model_Feed {
4
+
5
+ const URL_NEWS = 'http://www.conversionbug.com/feed_news.xml';
6
+
7
+ public function _construct() {
8
+ parent::_construct();
9
+ $this->_init('cbcore/feed');
10
+ }
11
+
12
+ public function checkUpdate() {
13
+ if (!extension_loaded('curl')) {
14
+ return $this;
15
+ }
16
+ /*if (!Mage::getStoreConfig('info/notification/enable')) {
17
+ return $this;
18
+ }*/
19
+ $feedData = array();
20
+ $feedXml = $this->getFeedData();
21
+
22
+ if ($feedXml && $feedXml->channel && $feedXml->channel->item) {
23
+ foreach ($feedXml->channel->item as $item) {
24
+ $date = $this->getDate((string) $item->pubDate);
25
+ $feedData[] = array(
26
+ 'severity' => 3,
27
+ 'date_added' => $this->getDate($date),
28
+ 'title' => (string) $item->title,
29
+ 'description' => (string) $item->description,
30
+ 'url' => (string) $item->link,
31
+ );
32
+ }
33
+ if ($feedData) {
34
+ Mage::getModel('adminnotification/inbox')->parse(array_reverse($feedData));
35
+ }
36
+ }
37
+ $this->setLastUpdate();
38
+ }
39
+
40
+ public function getFeedUrl() {
41
+ if (is_null($this->_feedUrl)) {
42
+ $this->_feedUrl = self::URL_NEWS;
43
+ }
44
+ return $this->_feedUrl;
45
+ }
46
+ }
app/code/local/ConversionBug/Core/Model/System/Config/Source/Display.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class ConversionBug_Core_Model_System_Config_Source_Display
3
+ {
4
+
5
+ /**
6
+ * Options getter
7
+ *
8
+ * @return array
9
+ */
10
+ public function toOptionArray()
11
+ {
12
+ return array(
13
+ array('value' => 1, 'label'=>Mage::helper('adminhtml')->__('Top')),
14
+ array('value' => 0, 'label'=>Mage::helper('adminhtml')->__('Sidebar')),
15
+ );
16
+ }
17
+
18
+ }
app/code/local/ConversionBug/Core/Model/System/Config/Source/Footer.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class ConversionBug_Core_Model_System_Config_Source_Footer
3
+ {
4
+
5
+ /**
6
+ * Options getter
7
+ *
8
+ * @return array
9
+ */
10
+ public function toOptionArray()
11
+ {
12
+ return array(
13
+
14
+ array('value' => 1, 'label' => Mage::helper('adminhtml')->__('1')),
15
+ array('value' => 2, 'label' => Mage::helper('adminhtml')->__('2')),
16
+ array('value' => 3, 'label' => Mage::helper('adminhtml')->__('3')),
17
+ array('value' => 4, 'label' => Mage::helper('adminhtml')->__('4')),
18
+ array('value' => 5, 'label' => Mage::helper('adminhtml')->__('5')),
19
+ array('value' => 6, 'label' => Mage::helper('adminhtml')->__('6')),
20
+ );
21
+ }
22
+ }
app/code/local/ConversionBug/Core/Model/System/Config/Source/Options.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class ConversionBug_Core_Model_System_Config_Source_Options
3
+ {
4
+
5
+ /**
6
+ * Options getter
7
+ *
8
+ * @return array
9
+ */
10
+ public function toOptionArray()
11
+ {
12
+ return array(
13
+ array('value' => 1, 'label'=>Mage::helper('adminhtml')->__('Yes')),
14
+ array('value' => 0, 'label'=>Mage::helper('adminhtml')->__('No')),
15
+ );
16
+ }
17
+
18
+ }
app/code/local/ConversionBug/Core/etc/adminhtml.xml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <acl>
4
+ <resources>
5
+ <all>Allow everything</all>
6
+ <admin>
7
+ <children>
8
+ <system>
9
+ <children>
10
+ <config>
11
+ <children>
12
+ <cbstore translate="title" module="cbcore">
13
+ <title>CB Extensions</title>
14
+ <sort_order>60</sort_order>
15
+ </cbstore>
16
+ </children>
17
+ </config>
18
+ </children>
19
+ </system>
20
+ </children>
21
+ </admin>
22
+ </resources>
23
+ </acl>
24
+ </config>
app/code/local/ConversionBug/Core/etc/config.xml ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <ConversionBug_Core>
5
+ <version>0.1.0</version>
6
+ </ConversionBug_Core>
7
+ </modules>
8
+ <adminhtml>
9
+ <layout>
10
+ <updates>
11
+ <cbcore>
12
+ <file>conversionbugcore.xml</file>
13
+ </cbcore>
14
+ </updates>
15
+ </layout>
16
+ <events>
17
+ <controller_action_predispatch>
18
+ <observers>
19
+ <cbnotifications>
20
+ <type>singleton</type>
21
+ <class>cbcore/feed</class>
22
+ <method>checkUpdate</method>
23
+ </cbnotifications>
24
+ </observers>
25
+ </controller_action_predispatch>
26
+ </events>
27
+ </adminhtml>
28
+ <global>
29
+ <helpers>
30
+ <cbcore>
31
+ <class>ConversionBug_Core_Helper</class>
32
+ </cbcore>
33
+ </helpers>
34
+ <blocks>
35
+ <cbcore>
36
+ <class>ConversionBug_Core_Block</class>
37
+ </cbcore>
38
+ </blocks>
39
+ <models>
40
+ <cbcore>
41
+ <class>ConversionBug_Core_Model</class>
42
+ </cbcore>
43
+ </models>
44
+ </global>
45
+ </config>
app/code/local/ConversionBug/Core/etc/system.xml ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <tabs>
4
+ <cbcore translate="label" module="cbcore">
5
+ <label>CB Extensions</label>
6
+ <sort_order>10</sort_order>
7
+ <class>cb-block</class>
8
+ </cbcore>
9
+ </tabs>
10
+ <sections>
11
+ <cbstore>
12
+ <class>separator-top</class>
13
+ <header_css>cb-header</header_css>
14
+ <label>CB Extensions</label>
15
+ <tab>cbcore</tab>
16
+ <frontend_type>text</frontend_type>
17
+ <sort_order>1000</sort_order>
18
+ <show_in_default>1</show_in_default>
19
+ <show_in_website>0</show_in_website>
20
+ <show_in_store>0</show_in_store>
21
+ <groups>
22
+ <!-- <extensions translate="label">
23
+ <label>CB Extensions Store</label>
24
+ <frontend_model>cbcore/system_config_info</frontend_model>
25
+ <sort_order>10</sort_order>
26
+ <show_in_default>1</show_in_default>
27
+ <show_in_website>1</show_in_website>
28
+ <show_in_store>1</show_in_store>
29
+ </extensions>-->
30
+ <extension translate="label">
31
+ <label>CB Extensions Store</label>
32
+ <frontend_type>text</frontend_type>
33
+ <frontend_model>cbcore/system_config_form_fieldset_store</frontend_model>
34
+ <sort_order>11</sort_order>
35
+ <show_in_default>1</show_in_default>
36
+ <show_in_website>1</show_in_website>
37
+ <show_in_store>1</show_in_store>
38
+ </extension>
39
+ </groups>
40
+ </cbstore>
41
+ </sections>
42
+ </config>
app/code/local/ConversionBug/Productbyzipcode/Block/Productbyzipcode.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ConversionBug_Productbyzipcode_Block_Productbyzipcode extends Mage_Catalog_Block_Product_List {
4
+
5
+ /**
6
+ * Product Zipcode
7
+ *
8
+ * @var Mage::getSingleton('core/session')
9
+ */
10
+ protected $_zipcode;
11
+ protected $_collection;
12
+
13
+ public function __construct() {
14
+ parent::__construct();
15
+ $helper = Mage::helper('cbproductbyzipcode');
16
+ if ($helper->isEnable()) {
17
+ $this->_zipcode = Mage::getSingleton('core/session')->getZipCode();
18
+ }
19
+ //if(isset($this->_zipcode) && !empty($this->_zipcode)){
20
+
21
+ $collection = Mage::getResourceModel('catalog/product_collection');
22
+ $attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'zipcode');
23
+ $collection->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
24
+ ->addAttributeToFilter($attribute, array(
25
+ array('finset' => array($this->_zipcode))
26
+ )
27
+ )
28
+ ->addMinimalPrice()
29
+ ->addFinalPrice()
30
+ ->addTaxPercents()
31
+ ->addUrlRewrite();
32
+
33
+ Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
34
+ Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
35
+
36
+ $this->_collection = $collection;
37
+ //}
38
+
39
+ }
40
+
41
+ public function _getProductCollection(){
42
+ return $this->_collection;
43
+ }
44
+ /**
45
+ * Retrieve form action url and set "secure" param to avoid confirm
46
+ * message when we submit form from secure page to unsecure
47
+ *
48
+ * @return string
49
+ */
50
+ public function getFormActionUrl() {
51
+ return $this->getUrl('productbyzipcode/search/index', array('_secure' => true));
52
+ }
53
+
54
+ }
app/code/local/ConversionBug/Productbyzipcode/Helper/Data.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class ConversionBug_Productbyzipcode_Helper_Data extends Mage_Core_Helper_Abstract {
3
+
4
+ const XML_CONFIG_PATH_PRODUCTBYZIPCODE_ENABLED = 'cbproductbyzipcode/general/status';
5
+ const PRODUCTBYZIPCODE_ENABLED = 1;
6
+
7
+ public function isEnable() {
8
+ $storeId = Mage::app()->getStore()->getStoreId();
9
+ if (self::PRODUCTBYZIPCODE_ENABLED == Mage::getStoreConfig(self::XML_CONFIG_PATH_PRODUCTBYZIPCODE_ENABLED, $storeId))
10
+ return true;
11
+
12
+ return false;
13
+ }
14
+ }
15
+ ?>
app/code/local/ConversionBug/Productbyzipcode/Model/Resource/Setup.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <?php
3
+ class ConversionBug_Productbyzipcode_Model_Resource_Setup extends Mage_Core_Model_Resource_Setup
4
+ {
5
+ public function getCatalogSetup()
6
+ {
7
+ return new Mage_Catalog_Model_Resource_Setup('cbproductbyzipcode_setup');
8
+ }
9
+
10
+ public function getCustomerSetup()
11
+ {
12
+ return new Mage_Customer_Model_Resource_Setup('cbproductbyzipcode_setup');
13
+ }
14
+ }
app/code/local/ConversionBug/Productbyzipcode/controllers/SearchController.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class ConversionBug_Productbyzipcode_SearchController extends Mage_Core_Controller_Front_Action
3
+ {
4
+ /**
5
+ * New subscription action
6
+ */
7
+ public function indexAction()
8
+ {
9
+ $zipcode = trim($this->getRequest()->getPost('zipcode'));
10
+ if ($this->getRequest()->isPost() && $zipcode) {
11
+ Mage::getSingleton('core/session')->setZipCode($zipcode);
12
+ Mage::getSingleton('core/session')->addSuccess($this->__("Your Zipcode: %s recorded successfully.",$zipcode));
13
+ }
14
+ $this->_redirectReferer();
15
+ }
16
+ public function productAction()
17
+ {
18
+ $this->loadLayout()->renderLayout();
19
+ }
20
+ }
app/code/local/ConversionBug/Productbyzipcode/etc/adminhtml.xml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <acl>
4
+ <resources>
5
+ <all>Allow everything</all>
6
+ <admin>
7
+ <children>
8
+ <system>
9
+ <children>
10
+ <config>
11
+ <children>
12
+ <cbproductbyzipcode translate="title" module="cbcore">
13
+ <title>Product By Zipcode</title>
14
+ <sort_order>60</sort_order>
15
+ </cbproductbyzipcode>
16
+ </children>
17
+ </config>
18
+ </children>
19
+ </system>
20
+ </children>
21
+ </admin>
22
+ </resources>
23
+ </acl>
24
+ </config>
app/code/local/ConversionBug/Productbyzipcode/etc/config.xml ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <ConversionBug_Productbyzipcode>
5
+ <version>0.1.0</version>
6
+ </ConversionBug_Productbyzipcode>
7
+ </modules>
8
+ <frontend>
9
+ <routers>
10
+ <cbproductbyzipcode>
11
+ <use>standard</use>
12
+ <args>
13
+ <module>ConversionBug_Productbyzipcode</module>
14
+ <frontName>productbyzipcode</frontName>
15
+ </args>
16
+ </cbproductbyzipcode>
17
+ </routers>
18
+ <layout>
19
+ <updates>
20
+ <cbproductbyzipcode>
21
+ <file>cb_productbyzipcode.xml</file>
22
+ </cbproductbyzipcode>
23
+ </updates>
24
+ </layout>
25
+ <translate>
26
+ <modules>
27
+ <ConversionBug_Productbyzipcode>
28
+ <files>
29
+ <default>ConversionBug_Productbyzipcode.csv</default>
30
+ </files>
31
+ </ConversionBug_Productbyzipcode>
32
+ </modules>
33
+ </translate>
34
+ </frontend>
35
+ <global>
36
+ <helpers>
37
+ <cbproductbyzipcode>
38
+ <class>ConversionBug_Productbyzipcode_Helper</class>
39
+ </cbproductbyzipcode>
40
+ </helpers>
41
+ <blocks>
42
+ <cbproductbyzipcode>
43
+ <class>ConversionBug_Productbyzipcode_Block</class>
44
+ </cbproductbyzipcode>
45
+ </blocks>
46
+ <resources>
47
+ <cbproductbyzipcode_setup>
48
+ <setup>
49
+ <module>ConversionBug_Productbyzipcode</module>
50
+ <class>ConversionBug_Productbyzipcode_Model_Resource_Setup</class>
51
+ </setup>
52
+ </cbproductbyzipcode_setup>
53
+ </resources>
54
+ </global>
55
+ </config>
app/code/local/ConversionBug/Productbyzipcode/etc/system.xml ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <sections>
4
+ <cbproductbyzipcode translate="label">
5
+ <label>Product By Zipcode</label>
6
+ <tab>cbcore</tab>
7
+ <frontend_type>text</frontend_type>
8
+ <sort_order>0</sort_order>
9
+ <show_in_default>1</show_in_default>
10
+ <show_in_website>1</show_in_website>
11
+ <show_in_store>1</show_in_store>
12
+ <groups>
13
+ <cb_info translate="label">
14
+ <label>Product By Zipcode</label>
15
+ <frontend_model>cbcore/system_config_info</frontend_model>
16
+ <frontend_type>text</frontend_type>
17
+ <sort_order>0</sort_order>
18
+ <show_in_default>1</show_in_default>
19
+ <show_in_website>1</show_in_website>
20
+ <show_in_store>1</show_in_store>
21
+ </cb_info>
22
+ <general translate="label">
23
+ <label>General</label>
24
+ <frontend_type>text</frontend_type>
25
+ <sort_order>10</sort_order>
26
+ <show_in_default>1</show_in_default>
27
+ <show_in_website>1</show_in_website>
28
+ <show_in_store>1</show_in_store>
29
+ <expanded>1</expanded>
30
+ <fields>
31
+ <status translate="label">
32
+ <label>Enabled</label>
33
+ <frontend_type>select</frontend_type>
34
+ <source_model>cbcore/system_config_source_options</source_model>
35
+ <sort_order>0</sort_order>
36
+ <show_in_default>1</show_in_default>
37
+ <show_in_website>1</show_in_website>
38
+ <show_in_store>1</show_in_store>
39
+ </status>
40
+ </fields>
41
+ </general>
42
+ </groups>
43
+ </cbproductbyzipcode>
44
+ </sections>
45
+ </config>
app/code/local/ConversionBug/Productbyzipcode/sql/cbproductbyzipcode_setup/mysql4-install-0.1.0.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $installer = $this->getCatalogSetup();
4
+ $installer->startSetup();
5
+
6
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'zipcode', array(
7
+ 'group' => 'General',
8
+ 'type' => 'text',
9
+ 'backend' => '',
10
+ 'frontend' => '',
11
+ 'label' => 'Zipcode',
12
+ 'input' => 'textarea',
13
+ 'class' => '',
14
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
15
+ 'visible' => true,
16
+ 'required' => false,
17
+ 'user_defined' => false,
18
+ 'searchable' => false,
19
+ 'filterable' => false,
20
+ 'comparable' => false,
21
+ 'visible_on_front' => false,
22
+ 'unique' => false,
23
+ 'apply_to' => 'simple,configurable,bundle,grouped,virtual,downloadable',
24
+ 'is_configurable' => false,
25
+ 'used_in_product_listing' => true,
26
+ ));
27
+
28
+ $installer->endSetup();
29
+ ?>
app/design/adminhtml/default/default/layout/conversionbugcore.xml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <layout>
3
+ <default>
4
+ <reference name="head">
5
+ <action method="addCss">
6
+ <name>conversionbug/core/core.css</name>
7
+ </action>
8
+ </reference>
9
+ </default>
10
+ <adminhtml_system_config_edit>
11
+ <reference name="content">
12
+ <block type="cbcore/info" name="cbcore.info" template="conversionbugcore/info.phtml"></block>
13
+ </reference>
14
+ </adminhtml_system_config_edit>
15
+ </layout>
app/design/adminhtml/default/default/template/conversionbugcore/info.phtml ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script type="text/javascript">
2
+ //<![CDATA[
3
+ jQuery(document).ready(function ($) {
4
+ $('.content-header').remove();
5
+ });
6
+ </script>
7
+ <div class="cbstore-block">
8
+ <!--<h3 class="store-extensions-header"><?php echo $this->__('Featured Extensions') ?></h3>-->
9
+ <div class="cb-intro">
10
+ <div class="content">
11
+ <h1>CONVERSIONbug</h1>
12
+ <p>We want to change the way you look at your website</p>
13
+ <p><span>Visit Us: </span><a href="http://www.conversionbug.com/">www.conversionbug.com</a></p>
14
+ <p><span>Contact Us: </span><a href="mailto:support@conversionbug.com">support@conversionbug.com</a></p>
15
+ <p><span>Skype: </span><a href="#">conversionbug</a></p>
16
+ </div>
17
+ <div class="cb-pattern"></div>
18
+ </div>
19
+ <?php
20
+ $collection = $this->getExtensions();
21
+ //echo "<pre>";print_r($collection);
22
+ ?>
23
+
24
+ <?php $i = 0;
25
+ foreach ($collection as $product): ?>
26
+ <?php if ($i == 0) {
27
+ $i++;
28
+ continue;
29
+ } ?>
30
+ <div class="item-extensions">
31
+ <div class="image">
32
+ <a href="<?php echo $product[0] ?>" target="_blank"><img src="<?php echo $product[1] ?>"/></a>
33
+ </div>
34
+ <div class="title">
35
+ <a href="<?php echo $product[0] ?>" target="_blank"><?php echo $product[2] ?></a>
36
+ </div>
37
+ <div class="price">$<?php echo $product[3] ?></div>
38
+ </div>
39
+ <?php ++$i; ?>
40
+ <?php endforeach; ?>
41
+ </div>
42
+
43
+
app/design/frontend/base/default/layout/cb_productbyzipcode.xml ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout version="0.1.0">
3
+ <owl_head_css>
4
+ <reference name="head">
5
+ <action method="addJs">
6
+ <script>conversionbug/owl-carousel/owl.carousel.js</script>
7
+ </action>
8
+ <action method="addCss">
9
+ <stylesheet>css/conversionbug/owl/bootstrapTheme.css</stylesheet>
10
+ </action>
11
+ <action method="addCss">
12
+ <stylesheet>css/conversionbug/owl/owl.carousel.css</stylesheet>
13
+ </action>
14
+ <action method="addCss">
15
+ <stylesheet>css/conversionbug/owl/owl.theme.css</stylesheet>
16
+ </action>
17
+ <action method="addCss">
18
+ <stylesheet>css/conversionbug/owl/owl.css</stylesheet>
19
+ </action>
20
+ <action method="addCss">
21
+ <stylesheet>css/conversionbug/productbyzipcode/custom.css</stylesheet>
22
+ </action>
23
+ </reference>
24
+ </owl_head_css>
25
+ <cms_index_index translate="label">
26
+ <update handle="owl_head_css"/>
27
+ </cms_index_index>
28
+ <default>
29
+ <reference name="right">
30
+ <block type="cbproductbyzipcode/productbyzipcode" name="cb.productbyzipcode" before="-">
31
+ <action method="setTemplate" ifconfig="cbproductbyzipcode/general/status">
32
+ <template>conversionbug/productbyzipcode/search.phtml</template>
33
+ </action>
34
+ </block>
35
+ </reference>
36
+ <reference name="left">
37
+
38
+ </reference>
39
+ </default>
40
+ <cbproductbyzipcode_search_product>
41
+ <reference name="head">
42
+ <action method="addCss">
43
+ <stylesheet>css/conversionbug/productbyzipcode/custom.css</stylesheet>
44
+ </action>
45
+ </reference>
46
+ <reference name="root">
47
+ <action method="setTemplate">
48
+ <template>page/2columns-right.phtml</template>
49
+ </action>
50
+ </reference>
51
+ <reference name="content">
52
+ <block type="cbproductbyzipcode/productbyzipcode" name="product_list" template="conversionbug/productbyzipcode/viewall.phtml">
53
+ <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
54
+ <block type="page/html_pager" name="product_list_toolbar_pager"/>
55
+ <!-- The following code shows how to set your own pager increments -->
56
+ <!--
57
+ <action method="setDefaultListPerPage"><limit>4</limit></action>
58
+ <action method="setDefaultGridPerPage"><limit>9</limit></action>
59
+ <action method="addPagerLimit"><mode>list</mode><limit>2</limit></action>
60
+ <action method="addPagerLimit"><mode>list</mode><limit>4</limit></action>
61
+ <action method="addPagerLimit"><mode>list</mode><limit>6</limit></action>
62
+ <action method="addPagerLimit"><mode>list</mode><limit>8</limit></action>
63
+ <action method="addPagerLimit" translate="label"><mode>list</mode><limit>all</limit><label>All</label></action>
64
+ -->
65
+ </block>
66
+ <action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
67
+ <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
68
+ <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
69
+ <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
70
+ <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
71
+ <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
72
+ </block>
73
+
74
+ </reference>
75
+ </cbproductbyzipcode_search_product>
76
+ </layout>
app/design/frontend/base/default/template/conversionbug/productbyzipcode/product.phtml ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if (count($this->getLoadedProductCollection())): ?>
2
+ <div class="cb-recently-view">
3
+ <h6><?php echo $this->__('Product Near By You'); ?></h6>
4
+ <div class="side-content-view">
5
+ <a class="" href="<?php echo $this->getUrl('productbyzipcode/search/product'); ?>"><?php echo $this->__('View all'); ?></a>
6
+ </div>
7
+ <div id="owl-demo" class="owl-carousel owl-theme">
8
+ <?php foreach ($this->getLoadedProductCollection() as $_link): ?>
9
+ <div class="item">
10
+ <a href="<?php echo $_link->getProductUrl() ?>" title="<?php echo $this->escapeHtml($_link->getName()) ?>" class="product-image">
11
+ <img src="<?php echo $this->helper('catalog/image')->init($_link, 'small_image')->resize(150) ?>" alt="<?php echo $this->escapeHtml($_link->getName()) ?>" />
12
+ </a>
13
+ <div class="product-info">
14
+ <h3 class="product-name"><a href="<?php echo $_link->getProductUrl() ?>" title="<?php echo $this->escapeHtml($_link->getName()) ?>"><?php echo $this->escapeHtml($_link->getName()) ?></a></h3>
15
+ <?php echo $this->getPriceHtml($_link, true) ?>
16
+ <?php //echo $this->getReviewsSummaryHtml($_link) ?>
17
+ <div class="actions">
18
+ <button type="button" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Add to Cart')) ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_link) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ <?php endforeach; ?>
23
+ </div>
24
+ <script type="text/javascript">
25
+ jQuery(document).ready(function () {
26
+ jQuery("#owl-demo").owlCarousel({
27
+ navigation: true,
28
+ navigationText: [
29
+ "<i class='icon-chevron-left icon-white'></i>",
30
+ "<i class='icon-chevron-right icon-white'></i>"
31
+ ],
32
+ items: 5,
33
+ itemsDesktop: [1199, 5],
34
+ itemsDesktopSmall: [979, 4],
35
+ itemsMobile: [479, 1],
36
+ itemsScaleUp: false,
37
+ scrollPerPage: true,
38
+ //Pagination
39
+ pagination: false,
40
+ paginationNumbers: false,
41
+ autoPlay: true,
42
+ stopOnHover: true,
43
+ });
44
+ });
45
+ </script>
46
+ </div>
47
+ <?php endif; ?>
app/design/frontend/base/default/template/conversionbug/productbyzipcode/search.phtml ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="block block-product-by-zipcode">
2
+ <div class="block-title">
3
+ <strong><span><?php echo $this->__('Search Product By Zipcode') ?></span></strong>
4
+ </div>
5
+ <form action="<?php echo $this->getFormActionUrl() ?>" method="post" id="product-by-zipcode">
6
+ <div class="block-content">
7
+ <div class="input-box">
8
+ <input type="text" name="zipcode" id="zipcode" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Enter Zipcode')) ?>" class="input-text required-entry validate-postcode" />
9
+ </div>
10
+ <div class="actions">
11
+ <button type="submit" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Search Product')) ?>" class="button"><span><span><?php echo $this->__('Search Product') ?></span></span></button>
12
+ </div>
13
+ </div>
14
+ </form>
15
+ <script type="text/javascript">
16
+ //<![CDATA[
17
+ var productbyzipcode = new VarienForm('product-by-zipcode');
18
+ //]]>
19
+ </script>
20
+ </div>
app/design/frontend/base/default/template/conversionbug/productbyzipcode/viewall.phtml ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <?php
3
+ /**
4
+ * Product list template
5
+ *
6
+ * @see Mage_Catalog_Block_Product_List
7
+ */
8
+ /* @var $this Mage_Catalog_Block_Product_List */
9
+ ?>
10
+ <?php
11
+ $_productCollection=$this->getLoadedProductCollection();
12
+ $_helper = $this->helper('catalog/output');
13
+ ?>
14
+ <?php if(!$_productCollection->count()): ?>
15
+ <p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
16
+ <?php else: ?>
17
+ <div class="category-products">
18
+ <?php echo $this->getToolbarHtml() ?>
19
+ <?php // List mode ?>
20
+ <?php if($this->getMode()!='grid'): ?>
21
+ <?php $_iterator = 0; ?>
22
+ <ol class="products-list" id="products-list">
23
+ <?php foreach ($_productCollection as $_product): ?>
24
+ <li class="item<?php if( ++$_iterator == sizeof($_productCollection) ): ?> last<?php endif; ?>">
25
+ <?php // Product Image ?>
26
+ <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image">
27
+ <?php /* Based on the native RWD styling, product images are displayed at a max of ~400px wide when viewed on a
28
+ one column page layout with four product columns from a 1280px viewport. For bandwidth reasons,
29
+ we are going to serve a 300px image, as it will look fine at 400px and most of the times, the image
30
+ will be displayed at a smaller size (eg, if two column are being used or viewport is smaller than 1280px).
31
+ This $_imgSize value could even be decreased further, based on the page layout
32
+ (one column, two column, three column) and number of product columns. */ ?>
33
+ <?php $_imgSize = 300; ?>
34
+ <img id="product-collection-image-<?php echo $_product->getId(); ?>"
35
+ src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->keepFrame(false)->resize($_imgSize); ?>"
36
+ alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
37
+ </a>
38
+ <?php // Product description ?>
39
+ <div class="product-shop">
40
+ <div class="f-fix">
41
+ <div class="product-primary">
42
+ <?php $_productNameStripped = $this->stripTags($_product->getName(), null, true); ?>
43
+ <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped; ?>"><?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?></a></h2>
44
+ <?php if($_product->getRatingSummary()): ?>
45
+ <?php echo $this->getReviewsSummaryHtml($_product) ?>
46
+ <?php endif; ?>
47
+ <?php
48
+ // Provides extra blocks on which to hang some features for products in the list
49
+ // Features providing UI elements targeting this block will display directly below the product name
50
+ if ($this->getChild('name.after')) {
51
+ $_nameAfterChildren = $this->getChild('name.after')->getSortedChildren();
52
+ foreach ($_nameAfterChildren as $_nameAfterChildName) {
53
+ $_nameAfterChild = $this->getChild('name.after')->getChild($_nameAfterChildName);
54
+ $_nameAfterChild->setProduct($_product);
55
+ echo $_nameAfterChild->toHtml();
56
+ }
57
+ }
58
+ ?>
59
+ </div>
60
+ <div class="product-secondary">
61
+ <?php echo $this->getPriceHtml($_product, true) ?>
62
+ </div>
63
+ <div class="product-secondary">
64
+ <?php if(!$_product->canConfigure() && $_product->isSaleable()): ?>
65
+ <p class="action"><button type="button" title="<?php echo $this->quoteEscape($this->__('Add to Cart')) ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></p>
66
+ <?php elseif($_product->getStockItem() && $_product->getStockItem()->getIsInStock()): ?>
67
+ <p class="action"><a title="<?php echo $this->quoteEscape($this->__('View Details')) ?>" class="button" href="<?php echo $_product->getProductUrl() ?>"><?php echo $this->__('View Details') ?></a></p>
68
+ <?php else: ?>
69
+ <p class="action availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
70
+ <?php endif; ?>
71
+ <ul class="add-to-links">
72
+ <?php if ($this->helper('wishlist')->isAllow()) : ?>
73
+ <li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
74
+ <?php endif; ?>
75
+ <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
76
+ <li><span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
77
+ <?php endif; ?>
78
+ </ul>
79
+ </div>
80
+ <div class="desc std">
81
+ <?php echo $_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description') ?>
82
+ <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped ?>" class="link-learn"><?php echo $this->__('Learn More') ?></a>
83
+ </div>
84
+ </div>
85
+ </div>
86
+ </li>
87
+ <?php endforeach; ?>
88
+ </ol>
89
+ <script type="text/javascript">decorateList('products-list', 'none-recursive')</script>
90
+
91
+ <?php else: ?>
92
+
93
+ <?php // Grid Mode ?>
94
+
95
+ <?php $_collectionSize = $_productCollection->count() ?>
96
+ <?php $_columnCount = $this->getColumnCount(); ?>
97
+ <ul class="products-grid products-grid--max-<?php echo $_columnCount; ?>-col">
98
+ <?php $i=0; foreach ($_productCollection as $_product): ?>
99
+ <?php /*if ($i++%$_columnCount==0): ?>
100
+ <?php endif*/ ?>
101
+ <li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">
102
+ <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image">
103
+ <?php $_imgSize = 210; ?>
104
+ <img id="product-collection-image-<?php echo $_product->getId(); ?>"
105
+ src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize($_imgSize); ?>"
106
+ alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
107
+ </a>
108
+ <div class="product-info">
109
+ <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></a></h2>
110
+ <?php
111
+ // Provides extra blocks on which to hang some features for products in the list
112
+ // Features providing UI elements targeting this block will display directly below the product name
113
+ if ($this->getChild('name.after')) {
114
+ $_nameAfterChildren = $this->getChild('name.after')->getSortedChildren();
115
+ foreach ($_nameAfterChildren as $_nameAfterChildName) {
116
+ $_nameAfterChild = $this->getChild('name.after')->getChild($_nameAfterChildName);
117
+ $_nameAfterChild->setProduct($_product);
118
+ echo $_nameAfterChild->toHtml();
119
+ }
120
+ }
121
+ ?>
122
+ <?php echo $this->getPriceHtml($_product, true) ?>
123
+ <?php if($_product->getRatingSummary()): ?>
124
+ <?php echo $this->getReviewsSummaryHtml($_product, 'short') ?>
125
+ <?php endif; ?>
126
+ <div class="actions">
127
+ <?php if(!$_product->canConfigure() && $_product->isSaleable()): ?>
128
+ <button type="button" title="<?php echo $this->quoteEscape($this->__('Add to Cart')) ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
129
+ <?php elseif($_product->getStockItem() && $_product->getStockItem()->getIsInStock()): ?>
130
+ <a title="<?php echo $this->quoteEscape($this->__('View Details')) ?>" class="button" href="<?php echo $_product->getProductUrl() ?>"><?php echo $this->__('View Details') ?></a>
131
+ <?php else: ?>
132
+ <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
133
+ <?php endif; ?>
134
+ <ul class="add-to-links">
135
+ <?php if ($this->helper('wishlist')->isAllow()) : ?>
136
+ <li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
137
+ <?php endif; ?>
138
+ <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
139
+ <li><span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
140
+ <?php endif; ?>
141
+ </ul>
142
+ </div>
143
+ </div>
144
+ </li>
145
+ <?php /*if ($i%$_columnCount==0 || $i==$_collectionSize): ?>
146
+ <?php endif*/ ?>
147
+ <?php endforeach ?>
148
+ </ul>
149
+ <script type="text/javascript">decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])</script>
150
+ <?php endif; ?>
151
+
152
+ <div class="toolbar-bottom">
153
+ <?php echo $this->getToolbarHtml() ?>
154
+ </div>
155
+ </div>
156
+ <?php endif; ?>
157
+ <?php
158
+ // Provides a block where additional page components may be attached, primarily good for in-page JavaScript
159
+ if ($this->getChild('after')) {
160
+ $_afterChildren = $this->getChild('after')->getSortedChildren();
161
+ foreach ($_afterChildren as $_afterChildName) {
162
+ $_afterChild = $this->getChild('after')->getChild($_afterChildName);
163
+ //set product collection on after blocks
164
+ $_afterChild->setProductCollection($_productCollection);
165
+ echo $_afterChild->toHtml();
166
+ }
167
+ }
168
+ ?>
app/etc/modules/ConversionBug_Core.xml ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * ConversionBug
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the ConversionBug.com license that is
9
+ * available through the world-wide-web at this URL:
10
+ * http://www.ConversionBug.com/license-agreement.html
11
+ *
12
+ * DISCLAIMER
13
+ *
14
+ * Do not edit or add to this file if you wish to upgrade this extension to newer
15
+ * version in the future.
16
+ *
17
+ * @category ConversionBug
18
+ * @package ConversionBug_Core
19
+ * @copyright Copyright (c) 2015 ConversionBug (http://www.ConversionBug.com/)
20
+ * @license http://www.ConversionBug.com/license-agreement.html
21
+ * @author shiv kumar singh
22
+ * @email shivam.kumar@conversionbug.com
23
+ */
24
+ -->
25
+ <config>
26
+ <modules>
27
+ <ConversionBug_Core>
28
+ <active>true</active>
29
+ <codePool>local</codePool>
30
+ </ConversionBug_Core>
31
+ </modules>
32
+ </config>
app/etc/modules/ConversionBug_Productbyzipcode.xml ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * ConversionBug
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the ConversionBug.com license that is
9
+ * available through the world-wide-web at this URL:
10
+ * http://www.ConversionBug.com/license-agreement.html
11
+ *
12
+ * DISCLAIMER
13
+ *
14
+ * Do not edit or add to this file if you wish to upgrade this extension to newer
15
+ * version in the future.
16
+ *
17
+ * @category ConversionBug_Productbyzipcode
18
+ * @package ConversionBug_Productbyzipcode
19
+ * @copyright Copyright (c) 2015 ConversionBug (http://www.ConversionBug.com/)
20
+ * @license http://www.ConversionBug.com/license-agreement.html
21
+ * @author shiv kumar singh
22
+ * @email shivam.kumar@conversionbug.com
23
+ */
24
+ -->
25
+ <config>
26
+ <modules>
27
+ <ConversionBug_Productbyzipcode>
28
+ <active>false</active>
29
+ <codePool>local</codePool>
30
+ <depends><ConversionBug_Core/></depends>
31
+ </ConversionBug_Productbyzipcode>
32
+ </modules>
33
+ </config>
js/conversionbug/owl-carousel/owl.carousel.js ADDED
@@ -0,0 +1,1512 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery OwlCarousel v1.3.3
3
+ *
4
+ * Copyright (c) 2013 Bartosz Wojciechowski
5
+ * http://www.owlgraphic.com/owlcarousel/
6
+ *
7
+ * Licensed under MIT
8
+ *
9
+ */
10
+
11
+ /*JS Lint helpers: */
12
+ /*global dragMove: false, dragEnd: false, $, jQuery, alert, window, document */
13
+ /*jslint nomen: true, continue:true */
14
+
15
+ if (typeof Object.create !== "function") {
16
+ Object.create = function (obj) {
17
+ function F() {}
18
+ F.prototype = obj;
19
+ return new F();
20
+ };
21
+ }
22
+ (function ($, window, document) {
23
+
24
+ var Carousel = {
25
+ init : function (options, el) {
26
+ var base = this;
27
+
28
+ base.$elem = $(el);
29
+ base.options = $.extend({}, $.fn.owlCarousel.options, base.$elem.data(), options);
30
+
31
+ base.userOptions = options;
32
+ base.loadContent();
33
+ },
34
+
35
+ loadContent : function () {
36
+ var base = this, url;
37
+
38
+ function getData(data) {
39
+ var i, content = "";
40
+ if (typeof base.options.jsonSuccess === "function") {
41
+ base.options.jsonSuccess.apply(this, [data]);
42
+ } else {
43
+ for (i in data.owl) {
44
+ if (data.owl.hasOwnProperty(i)) {
45
+ content += data.owl[i].item;
46
+ }
47
+ }
48
+ base.$elem.html(content);
49
+ }
50
+ base.logIn();
51
+ }
52
+
53
+ if (typeof base.options.beforeInit === "function") {
54
+ base.options.beforeInit.apply(this, [base.$elem]);
55
+ }
56
+
57
+ if (typeof base.options.jsonPath === "string") {
58
+ url = base.options.jsonPath;
59
+ $.getJSON(url, getData);
60
+ } else {
61
+ base.logIn();
62
+ }
63
+ },
64
+
65
+ logIn : function () {
66
+ var base = this;
67
+
68
+ base.$elem.data("owl-originalStyles", base.$elem.attr("style"));
69
+ base.$elem.data("owl-originalClasses", base.$elem.attr("class"));
70
+
71
+ base.$elem.css({opacity: 0});
72
+ base.orignalItems = base.options.items;
73
+ base.checkBrowser();
74
+ base.wrapperWidth = 0;
75
+ base.checkVisible = null;
76
+ base.setVars();
77
+ },
78
+
79
+ setVars : function () {
80
+ var base = this;
81
+ if (base.$elem.children().length === 0) {return false; }
82
+ base.baseClass();
83
+ base.eventTypes();
84
+ base.$userItems = base.$elem.children();
85
+ base.itemsAmount = base.$userItems.length;
86
+ base.wrapItems();
87
+ base.$owlItems = base.$elem.find(".owl-item");
88
+ base.$owlWrapper = base.$elem.find(".owl-wrapper");
89
+ base.playDirection = "next";
90
+ base.prevItem = 0;
91
+ base.prevArr = [0];
92
+ base.currentItem = 0;
93
+ base.customEvents();
94
+ base.onStartup();
95
+ },
96
+
97
+ onStartup : function () {
98
+ var base = this;
99
+ base.updateItems();
100
+ base.calculateAll();
101
+ base.buildControls();
102
+ base.updateControls();
103
+ base.response();
104
+ base.moveEvents();
105
+ base.stopOnHover();
106
+ base.owlStatus();
107
+
108
+ if (base.options.transitionStyle !== false) {
109
+ base.transitionTypes(base.options.transitionStyle);
110
+ }
111
+ if (base.options.autoPlay === true) {
112
+ base.options.autoPlay = 5000;
113
+ }
114
+ base.play();
115
+
116
+ base.$elem.find(".owl-wrapper").css("display", "block");
117
+
118
+ if (!base.$elem.is(":visible")) {
119
+ base.watchVisibility();
120
+ } else {
121
+ base.$elem.css("opacity", 1);
122
+ }
123
+ base.onstartup = false;
124
+ base.eachMoveUpdate();
125
+ if (typeof base.options.afterInit === "function") {
126
+ base.options.afterInit.apply(this, [base.$elem]);
127
+ }
128
+ },
129
+
130
+ eachMoveUpdate : function () {
131
+ var base = this;
132
+
133
+ if (base.options.lazyLoad === true) {
134
+ base.lazyLoad();
135
+ }
136
+ if (base.options.autoHeight === true) {
137
+ base.autoHeight();
138
+ }
139
+ base.onVisibleItems();
140
+
141
+ if (typeof base.options.afterAction === "function") {
142
+ base.options.afterAction.apply(this, [base.$elem]);
143
+ }
144
+ },
145
+
146
+ updateVars : function () {
147
+ var base = this;
148
+ if (typeof base.options.beforeUpdate === "function") {
149
+ base.options.beforeUpdate.apply(this, [base.$elem]);
150
+ }
151
+ base.watchVisibility();
152
+ base.updateItems();
153
+ base.calculateAll();
154
+ base.updatePosition();
155
+ base.updateControls();
156
+ base.eachMoveUpdate();
157
+ if (typeof base.options.afterUpdate === "function") {
158
+ base.options.afterUpdate.apply(this, [base.$elem]);
159
+ }
160
+ },
161
+
162
+ reload : function () {
163
+ var base = this;
164
+ window.setTimeout(function () {
165
+ base.updateVars();
166
+ }, 0);
167
+ },
168
+
169
+ watchVisibility : function () {
170
+ var base = this;
171
+
172
+ if (base.$elem.is(":visible") === false) {
173
+ base.$elem.css({opacity: 0});
174
+ window.clearInterval(base.autoPlayInterval);
175
+ window.clearInterval(base.checkVisible);
176
+ } else {
177
+ return false;
178
+ }
179
+ base.checkVisible = window.setInterval(function () {
180
+ if (base.$elem.is(":visible")) {
181
+ base.reload();
182
+ base.$elem.animate({opacity: 1}, 200);
183
+ window.clearInterval(base.checkVisible);
184
+ }
185
+ }, 500);
186
+ },
187
+
188
+ wrapItems : function () {
189
+ var base = this;
190
+ base.$userItems.wrapAll("<div class=\"owl-wrapper\">").wrap("<div class=\"owl-item\"></div>");
191
+ base.$elem.find(".owl-wrapper").wrap("<div class=\"owl-wrapper-outer\">");
192
+ base.wrapperOuter = base.$elem.find(".owl-wrapper-outer");
193
+ base.$elem.css("display", "block");
194
+ },
195
+
196
+ baseClass : function () {
197
+ var base = this,
198
+ hasBaseClass = base.$elem.hasClass(base.options.baseClass),
199
+ hasThemeClass = base.$elem.hasClass(base.options.theme);
200
+
201
+ if (!hasBaseClass) {
202
+ base.$elem.addClass(base.options.baseClass);
203
+ }
204
+
205
+ if (!hasThemeClass) {
206
+ base.$elem.addClass(base.options.theme);
207
+ }
208
+ },
209
+
210
+ updateItems : function () {
211
+ var base = this, width, i;
212
+
213
+ if (base.options.responsive === false) {
214
+ return false;
215
+ }
216
+ if (base.options.singleItem === true) {
217
+ base.options.items = base.orignalItems = 1;
218
+ base.options.itemsCustom = false;
219
+ base.options.itemsDesktop = false;
220
+ base.options.itemsDesktopSmall = false;
221
+ base.options.itemsTablet = false;
222
+ base.options.itemsTabletSmall = false;
223
+ base.options.itemsMobile = false;
224
+ return false;
225
+ }
226
+
227
+ width = $(base.options.responsiveBaseWidth).width();
228
+
229
+ if (width > (base.options.itemsDesktop[0] || base.orignalItems)) {
230
+ base.options.items = base.orignalItems;
231
+ }
232
+ if (base.options.itemsCustom !== false) {
233
+ //Reorder array by screen size
234
+ base.options.itemsCustom.sort(function (a, b) {return a[0] - b[0]; });
235
+
236
+ for (i = 0; i < base.options.itemsCustom.length; i += 1) {
237
+ if (base.options.itemsCustom[i][0] <= width) {
238
+ base.options.items = base.options.itemsCustom[i][1];
239
+ }
240
+ }
241
+
242
+ } else {
243
+
244
+ if (width <= base.options.itemsDesktop[0] && base.options.itemsDesktop !== false) {
245
+ base.options.items = base.options.itemsDesktop[1];
246
+ }
247
+
248
+ if (width <= base.options.itemsDesktopSmall[0] && base.options.itemsDesktopSmall !== false) {
249
+ base.options.items = base.options.itemsDesktopSmall[1];
250
+ }
251
+
252
+ if (width <= base.options.itemsTablet[0] && base.options.itemsTablet !== false) {
253
+ base.options.items = base.options.itemsTablet[1];
254
+ }
255
+
256
+ if (width <= base.options.itemsTabletSmall[0] && base.options.itemsTabletSmall !== false) {
257
+ base.options.items = base.options.itemsTabletSmall[1];
258
+ }
259
+
260
+ if (width <= base.options.itemsMobile[0] && base.options.itemsMobile !== false) {
261
+ base.options.items = base.options.itemsMobile[1];
262
+ }
263
+ }
264
+
265
+ //if number of items is less than declared
266
+ if (base.options.items > base.itemsAmount && base.options.itemsScaleUp === true) {
267
+ base.options.items = base.itemsAmount;
268
+ }
269
+ },
270
+
271
+ response : function () {
272
+ var base = this,
273
+ smallDelay,
274
+ lastWindowWidth;
275
+
276
+ if (base.options.responsive !== true) {
277
+ return false;
278
+ }
279
+ lastWindowWidth = $(window).width();
280
+
281
+ base.resizer = function () {
282
+ if ($(window).width() !== lastWindowWidth) {
283
+ if (base.options.autoPlay !== false) {
284
+ window.clearInterval(base.autoPlayInterval);
285
+ }
286
+ window.clearTimeout(smallDelay);
287
+ smallDelay = window.setTimeout(function () {
288
+ lastWindowWidth = $(window).width();
289
+ base.updateVars();
290
+ }, base.options.responsiveRefreshRate);
291
+ }
292
+ };
293
+ $(window).resize(base.resizer);
294
+ },
295
+
296
+ updatePosition : function () {
297
+ var base = this;
298
+ base.jumpTo(base.currentItem);
299
+ if (base.options.autoPlay !== false) {
300
+ base.checkAp();
301
+ }
302
+ },
303
+
304
+ appendItemsSizes : function () {
305
+ var base = this,
306
+ roundPages = 0,
307
+ lastItem = base.itemsAmount - base.options.items;
308
+
309
+ base.$owlItems.each(function (index) {
310
+ var $this = $(this);
311
+ $this
312
+ .css({"width": base.itemWidth})
313
+ .data("owl-item", Number(index));
314
+
315
+ if (index % base.options.items === 0 || index === lastItem) {
316
+ if (!(index > lastItem)) {
317
+ roundPages += 1;
318
+ }
319
+ }
320
+ $this.data("owl-roundPages", roundPages);
321
+ });
322
+ },
323
+
324
+ appendWrapperSizes : function () {
325
+ var base = this,
326
+ width = base.$owlItems.length * base.itemWidth;
327
+
328
+ base.$owlWrapper.css({
329
+ "width": width * 2,
330
+ "left": 0
331
+ });
332
+ base.appendItemsSizes();
333
+ },
334
+
335
+ calculateAll : function () {
336
+ var base = this;
337
+ base.calculateWidth();
338
+ base.appendWrapperSizes();
339
+ base.loops();
340
+ base.max();
341
+ },
342
+
343
+ calculateWidth : function () {
344
+ var base = this;
345
+ base.itemWidth = Math.round(base.$elem.width() / base.options.items);
346
+ },
347
+
348
+ max : function () {
349
+ var base = this,
350
+ maximum = ((base.itemsAmount * base.itemWidth) - base.options.items * base.itemWidth) * -1;
351
+ if (base.options.items > base.itemsAmount) {
352
+ base.maximumItem = 0;
353
+ maximum = 0;
354
+ base.maximumPixels = 0;
355
+ } else {
356
+ base.maximumItem = base.itemsAmount - base.options.items;
357
+ base.maximumPixels = maximum;
358
+ }
359
+ return maximum;
360
+ },
361
+
362
+ min : function () {
363
+ return 0;
364
+ },
365
+
366
+ loops : function () {
367
+ var base = this,
368
+ prev = 0,
369
+ elWidth = 0,
370
+ i,
371
+ item,
372
+ roundPageNum;
373
+
374
+ base.positionsInArray = [0];
375
+ base.pagesInArray = [];
376
+
377
+ for (i = 0; i < base.itemsAmount; i += 1) {
378
+ elWidth += base.itemWidth;
379
+ base.positionsInArray.push(-elWidth);
380
+
381
+ if (base.options.scrollPerPage === true) {
382
+ item = $(base.$owlItems[i]);
383
+ roundPageNum = item.data("owl-roundPages");
384
+ if (roundPageNum !== prev) {
385
+ base.pagesInArray[prev] = base.positionsInArray[i];
386
+ prev = roundPageNum;
387
+ }
388
+ }
389
+ }
390
+ },
391
+
392
+ buildControls : function () {
393
+ var base = this;
394
+ if (base.options.navigation === true || base.options.pagination === true) {
395
+ base.owlControls = $("<div class=\"owl-controls\"/>").toggleClass("clickable", !base.browser.isTouch).appendTo(base.$elem);
396
+ }
397
+ if (base.options.pagination === true) {
398
+ base.buildPagination();
399
+ }
400
+ if (base.options.navigation === true) {
401
+ base.buildButtons();
402
+ }
403
+ },
404
+
405
+ buildButtons : function () {
406
+ var base = this,
407
+ buttonsWrapper = $("<div class=\"owl-buttons\"/>");
408
+ base.owlControls.append(buttonsWrapper);
409
+
410
+ base.buttonPrev = $("<div/>", {
411
+ "class" : "owl-prev",
412
+ "html" : base.options.navigationText[0] || ""
413
+ });
414
+
415
+ base.buttonNext = $("<div/>", {
416
+ "class" : "owl-next",
417
+ "html" : base.options.navigationText[1] || ""
418
+ });
419
+
420
+ buttonsWrapper
421
+ .append(base.buttonPrev)
422
+ .append(base.buttonNext);
423
+
424
+ buttonsWrapper.on("touchstart.owlControls mousedown.owlControls", "div[class^=\"owl\"]", function (event) {
425
+ event.preventDefault();
426
+ });
427
+
428
+ buttonsWrapper.on("touchend.owlControls mouseup.owlControls", "div[class^=\"owl\"]", function (event) {
429
+ event.preventDefault();
430
+ if ($(this).hasClass("owl-next")) {
431
+ base.next();
432
+ } else {
433
+ base.prev();
434
+ }
435
+ });
436
+ },
437
+
438
+ buildPagination : function () {
439
+ var base = this;
440
+
441
+ base.paginationWrapper = $("<div class=\"owl-pagination\"/>");
442
+ base.owlControls.append(base.paginationWrapper);
443
+
444
+ base.paginationWrapper.on("touchend.owlControls mouseup.owlControls", ".owl-page", function (event) {
445
+ event.preventDefault();
446
+ if (Number($(this).data("owl-page")) !== base.currentItem) {
447
+ base.goTo(Number($(this).data("owl-page")), true);
448
+ }
449
+ });
450
+ },
451
+
452
+ updatePagination : function () {
453
+ var base = this,
454
+ counter,
455
+ lastPage,
456
+ lastItem,
457
+ i,
458
+ paginationButton,
459
+ paginationButtonInner;
460
+
461
+ if (base.options.pagination === false) {
462
+ return false;
463
+ }
464
+
465
+ base.paginationWrapper.html("");
466
+
467
+ counter = 0;
468
+ lastPage = base.itemsAmount - base.itemsAmount % base.options.items;
469
+
470
+ for (i = 0; i < base.itemsAmount; i += 1) {
471
+ if (i % base.options.items === 0) {
472
+ counter += 1;
473
+ if (lastPage === i) {
474
+ lastItem = base.itemsAmount - base.options.items;
475
+ }
476
+ paginationButton = $("<div/>", {
477
+ "class" : "owl-page"
478
+ });
479
+ paginationButtonInner = $("<span></span>", {
480
+ "text": base.options.paginationNumbers === true ? counter : "",
481
+ "class": base.options.paginationNumbers === true ? "owl-numbers" : ""
482
+ });
483
+ paginationButton.append(paginationButtonInner);
484
+
485
+ paginationButton.data("owl-page", lastPage === i ? lastItem : i);
486
+ paginationButton.data("owl-roundPages", counter);
487
+
488
+ base.paginationWrapper.append(paginationButton);
489
+ }
490
+ }
491
+ base.checkPagination();
492
+ },
493
+ checkPagination : function () {
494
+ var base = this;
495
+ if (base.options.pagination === false) {
496
+ return false;
497
+ }
498
+ base.paginationWrapper.find(".owl-page").each(function () {
499
+ if ($(this).data("owl-roundPages") === $(base.$owlItems[base.currentItem]).data("owl-roundPages")) {
500
+ base.paginationWrapper
501
+ .find(".owl-page")
502
+ .removeClass("active");
503
+ $(this).addClass("active");
504
+ }
505
+ });
506
+ },
507
+
508
+ checkNavigation : function () {
509
+ var base = this;
510
+
511
+ if (base.options.navigation === false) {
512
+ return false;
513
+ }
514
+ if (base.options.rewindNav === false) {
515
+ if (base.currentItem === 0 && base.maximumItem === 0) {
516
+ base.buttonPrev.addClass("disabled");
517
+ base.buttonNext.addClass("disabled");
518
+ } else if (base.currentItem === 0 && base.maximumItem !== 0) {
519
+ base.buttonPrev.addClass("disabled");
520
+ base.buttonNext.removeClass("disabled");
521
+ } else if (base.currentItem === base.maximumItem) {
522
+ base.buttonPrev.removeClass("disabled");
523
+ base.buttonNext.addClass("disabled");
524
+ } else if (base.currentItem !== 0 && base.currentItem !== base.maximumItem) {
525
+ base.buttonPrev.removeClass("disabled");
526
+ base.buttonNext.removeClass("disabled");
527
+ }
528
+ }
529
+ },
530
+
531
+ updateControls : function () {
532
+ var base = this;
533
+ base.updatePagination();
534
+ base.checkNavigation();
535
+ if (base.owlControls) {
536
+ if (base.options.items >= base.itemsAmount) {
537
+ base.owlControls.hide();
538
+ } else {
539
+ base.owlControls.show();
540
+ }
541
+ }
542
+ },
543
+
544
+ destroyControls : function () {
545
+ var base = this;
546
+ if (base.owlControls) {
547
+ base.owlControls.remove();
548
+ }
549
+ },
550
+
551
+ next : function (speed) {
552
+ var base = this;
553
+
554
+ if (base.isTransition) {
555
+ return false;
556
+ }
557
+
558
+ base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1;
559
+ if (base.currentItem > base.maximumItem + (base.options.scrollPerPage === true ? (base.options.items - 1) : 0)) {
560
+ if (base.options.rewindNav === true) {
561
+ base.currentItem = 0;
562
+ speed = "rewind";
563
+ } else {
564
+ base.currentItem = base.maximumItem;
565
+ return false;
566
+ }
567
+ }
568
+ base.goTo(base.currentItem, speed);
569
+ },
570
+
571
+ prev : function (speed) {
572
+ var base = this;
573
+
574
+ if (base.isTransition) {
575
+ return false;
576
+ }
577
+
578
+ if (base.options.scrollPerPage === true && base.currentItem > 0 && base.currentItem < base.options.items) {
579
+ base.currentItem = 0;
580
+ } else {
581
+ base.currentItem -= base.options.scrollPerPage === true ? base.options.items : 1;
582
+ }
583
+ if (base.currentItem < 0) {
584
+ if (base.options.rewindNav === true) {
585
+ base.currentItem = base.maximumItem;
586
+ speed = "rewind";
587
+ } else {
588
+ base.currentItem = 0;
589
+ return false;
590
+ }
591
+ }
592
+ base.goTo(base.currentItem, speed);
593
+ },
594
+
595
+ goTo : function (position, speed, drag) {
596
+ var base = this,
597
+ goToPixel;
598
+
599
+ if (base.isTransition) {
600
+ return false;
601
+ }
602
+ if (typeof base.options.beforeMove === "function") {
603
+ base.options.beforeMove.apply(this, [base.$elem]);
604
+ }
605
+ if (position >= base.maximumItem) {
606
+ position = base.maximumItem;
607
+ } else if (position <= 0) {
608
+ position = 0;
609
+ }
610
+
611
+ base.currentItem = base.owl.currentItem = position;
612
+ if (base.options.transitionStyle !== false && drag !== "drag" && base.options.items === 1 && base.browser.support3d === true) {
613
+ base.swapSpeed(0);
614
+ if (base.browser.support3d === true) {
615
+ base.transition3d(base.positionsInArray[position]);
616
+ } else {
617
+ base.css2slide(base.positionsInArray[position], 1);
618
+ }
619
+ base.afterGo();
620
+ base.singleItemTransition();
621
+ return false;
622
+ }
623
+ goToPixel = base.positionsInArray[position];
624
+
625
+ if (base.browser.support3d === true) {
626
+ base.isCss3Finish = false;
627
+
628
+ if (speed === true) {
629
+ base.swapSpeed("paginationSpeed");
630
+ window.setTimeout(function () {
631
+ base.isCss3Finish = true;
632
+ }, base.options.paginationSpeed);
633
+
634
+ } else if (speed === "rewind") {
635
+ base.swapSpeed(base.options.rewindSpeed);
636
+ window.setTimeout(function () {
637
+ base.isCss3Finish = true;
638
+ }, base.options.rewindSpeed);
639
+
640
+ } else {
641
+ base.swapSpeed("slideSpeed");
642
+ window.setTimeout(function () {
643
+ base.isCss3Finish = true;
644
+ }, base.options.slideSpeed);
645
+ }
646
+ base.transition3d(goToPixel);
647
+ } else {
648
+ if (speed === true) {
649
+ base.css2slide(goToPixel, base.options.paginationSpeed);
650
+ } else if (speed === "rewind") {
651
+ base.css2slide(goToPixel, base.options.rewindSpeed);
652
+ } else {
653
+ base.css2slide(goToPixel, base.options.slideSpeed);
654
+ }
655
+ }
656
+ base.afterGo();
657
+ },
658
+
659
+ jumpTo : function (position) {
660
+ var base = this;
661
+ if (typeof base.options.beforeMove === "function") {
662
+ base.options.beforeMove.apply(this, [base.$elem]);
663
+ }
664
+ if (position >= base.maximumItem || position === -1) {
665
+ position = base.maximumItem;
666
+ } else if (position <= 0) {
667
+ position = 0;
668
+ }
669
+ base.swapSpeed(0);
670
+ if (base.browser.support3d === true) {
671
+ base.transition3d(base.positionsInArray[position]);
672
+ } else {
673
+ base.css2slide(base.positionsInArray[position], 1);
674
+ }
675
+ base.currentItem = base.owl.currentItem = position;
676
+ base.afterGo();
677
+ },
678
+
679
+ afterGo : function () {
680
+ var base = this;
681
+
682
+ base.prevArr.push(base.currentItem);
683
+ base.prevItem = base.owl.prevItem = base.prevArr[base.prevArr.length - 2];
684
+ base.prevArr.shift(0);
685
+
686
+ if (base.prevItem !== base.currentItem) {
687
+ base.checkPagination();
688
+ base.checkNavigation();
689
+ base.eachMoveUpdate();
690
+
691
+ if (base.options.autoPlay !== false) {
692
+ base.checkAp();
693
+ }
694
+ }
695
+ if (typeof base.options.afterMove === "function" && base.prevItem !== base.currentItem) {
696
+ base.options.afterMove.apply(this, [base.$elem]);
697
+ }
698
+ },
699
+
700
+ stop : function () {
701
+ var base = this;
702
+ base.apStatus = "stop";
703
+ window.clearInterval(base.autoPlayInterval);
704
+ },
705
+
706
+ checkAp : function () {
707
+ var base = this;
708
+ if (base.apStatus !== "stop") {
709
+ base.play();
710
+ }
711
+ },
712
+
713
+ play : function () {
714
+ var base = this;
715
+ base.apStatus = "play";
716
+ if (base.options.autoPlay === false) {
717
+ return false;
718
+ }
719
+ window.clearInterval(base.autoPlayInterval);
720
+ base.autoPlayInterval = window.setInterval(function () {
721
+ base.next(true);
722
+ }, base.options.autoPlay);
723
+ },
724
+
725
+ swapSpeed : function (action) {
726
+ var base = this;
727
+ if (action === "slideSpeed") {
728
+ base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed));
729
+ } else if (action === "paginationSpeed") {
730
+ base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed));
731
+ } else if (typeof action !== "string") {
732
+ base.$owlWrapper.css(base.addCssSpeed(action));
733
+ }
734
+ },
735
+
736
+ addCssSpeed : function (speed) {
737
+ return {
738
+ "-webkit-transition": "all " + speed + "ms ease",
739
+ "-moz-transition": "all " + speed + "ms ease",
740
+ "-o-transition": "all " + speed + "ms ease",
741
+ "transition": "all " + speed + "ms ease"
742
+ };
743
+ },
744
+
745
+ removeTransition : function () {
746
+ return {
747
+ "-webkit-transition": "",
748
+ "-moz-transition": "",
749
+ "-o-transition": "",
750
+ "transition": ""
751
+ };
752
+ },
753
+
754
+ doTranslate : function (pixels) {
755
+ return {
756
+ "-webkit-transform": "translate3d(" + pixels + "px, 0px, 0px)",
757
+ "-moz-transform": "translate3d(" + pixels + "px, 0px, 0px)",
758
+ "-o-transform": "translate3d(" + pixels + "px, 0px, 0px)",
759
+ "-ms-transform": "translate3d(" + pixels + "px, 0px, 0px)",
760
+ "transform": "translate3d(" + pixels + "px, 0px,0px)"
761
+ };
762
+ },
763
+
764
+ transition3d : function (value) {
765
+ var base = this;
766
+ base.$owlWrapper.css(base.doTranslate(value));
767
+ },
768
+
769
+ css2move : function (value) {
770
+ var base = this;
771
+ base.$owlWrapper.css({"left" : value});
772
+ },
773
+
774
+ css2slide : function (value, speed) {
775
+ var base = this;
776
+
777
+ base.isCssFinish = false;
778
+ base.$owlWrapper.stop(true, true).animate({
779
+ "left" : value
780
+ }, {
781
+ duration : speed || base.options.slideSpeed,
782
+ complete : function () {
783
+ base.isCssFinish = true;
784
+ }
785
+ });
786
+ },
787
+
788
+ checkBrowser : function () {
789
+ var base = this,
790
+ translate3D = "translate3d(0px, 0px, 0px)",
791
+ tempElem = document.createElement("div"),
792
+ regex,
793
+ asSupport,
794
+ support3d,
795
+ isTouch;
796
+
797
+ tempElem.style.cssText = " -moz-transform:" + translate3D +
798
+ "; -ms-transform:" + translate3D +
799
+ "; -o-transform:" + translate3D +
800
+ "; -webkit-transform:" + translate3D +
801
+ "; transform:" + translate3D;
802
+ regex = /translate3d\(0px, 0px, 0px\)/g;
803
+ asSupport = tempElem.style.cssText.match(regex);
804
+ support3d = (asSupport !== null && asSupport.length === 1);
805
+
806
+ isTouch = "ontouchstart" in window || window.navigator.msMaxTouchPoints;
807
+
808
+ base.browser = {
809
+ "support3d" : support3d,
810
+ "isTouch" : isTouch
811
+ };
812
+ },
813
+
814
+ moveEvents : function () {
815
+ var base = this;
816
+ if (base.options.mouseDrag !== false || base.options.touchDrag !== false) {
817
+ base.gestures();
818
+ base.disabledEvents();
819
+ }
820
+ },
821
+
822
+ eventTypes : function () {
823
+ var base = this,
824
+ types = ["s", "e", "x"];
825
+
826
+ base.ev_types = {};
827
+
828
+ if (base.options.mouseDrag === true && base.options.touchDrag === true) {
829
+ types = [
830
+ "touchstart.owl mousedown.owl",
831
+ "touchmove.owl mousemove.owl",
832
+ "touchend.owl touchcancel.owl mouseup.owl"
833
+ ];
834
+ } else if (base.options.mouseDrag === false && base.options.touchDrag === true) {
835
+ types = [
836
+ "touchstart.owl",
837
+ "touchmove.owl",
838
+ "touchend.owl touchcancel.owl"
839
+ ];
840
+ } else if (base.options.mouseDrag === true && base.options.touchDrag === false) {
841
+ types = [
842
+ "mousedown.owl",
843
+ "mousemove.owl",
844
+ "mouseup.owl"
845
+ ];
846
+ }
847
+
848
+ base.ev_types.start = types[0];
849
+ base.ev_types.move = types[1];
850
+ base.ev_types.end = types[2];
851
+ },
852
+
853
+ disabledEvents : function () {
854
+ var base = this;
855
+ base.$elem.on("dragstart.owl", function (event) { event.preventDefault(); });
856
+ base.$elem.on("mousedown.disableTextSelect", function (e) {
857
+ return $(e.target).is('input, textarea, select, option');
858
+ });
859
+ },
860
+
861
+ gestures : function () {
862
+ /*jslint unparam: true*/
863
+ var base = this,
864
+ locals = {
865
+ offsetX : 0,
866
+ offsetY : 0,
867
+ baseElWidth : 0,
868
+ relativePos : 0,
869
+ position: null,
870
+ minSwipe : null,
871
+ maxSwipe: null,
872
+ sliding : null,
873
+ dargging: null,
874
+ targetElement : null
875
+ };
876
+
877
+ base.isCssFinish = true;
878
+
879
+ function getTouches(event) {
880
+ if (event.touches !== undefined) {
881
+ return {
882
+ x : event.touches[0].pageX,
883
+ y : event.touches[0].pageY
884
+ };
885
+ }
886
+
887
+ if (event.touches === undefined) {
888
+ if (event.pageX !== undefined) {
889
+ return {
890
+ x : event.pageX,
891
+ y : event.pageY
892
+ };
893
+ }
894
+ if (event.pageX === undefined) {
895
+ return {
896
+ x : event.clientX,
897
+ y : event.clientY
898
+ };
899
+ }
900
+ }
901
+ }
902
+
903
+ function swapEvents(type) {
904
+ if (type === "on") {
905
+ $(document).on(base.ev_types.move, dragMove);
906
+ $(document).on(base.ev_types.end, dragEnd);
907
+ } else if (type === "off") {
908
+ $(document).off(base.ev_types.move);
909
+ $(document).off(base.ev_types.end);
910
+ }
911
+ }
912
+
913
+ function dragStart(event) {
914
+ var ev = event.originalEvent || event || window.event,
915
+ position;
916
+
917
+ if (ev.which === 3) {
918
+ return false;
919
+ }
920
+ if (base.itemsAmount <= base.options.items) {
921
+ return;
922
+ }
923
+ if (base.isCssFinish === false && !base.options.dragBeforeAnimFinish) {
924
+ return false;
925
+ }
926
+ if (base.isCss3Finish === false && !base.options.dragBeforeAnimFinish) {
927
+ return false;
928
+ }
929
+
930
+ if (base.options.autoPlay !== false) {
931
+ window.clearInterval(base.autoPlayInterval);
932
+ }
933
+
934
+ if (base.browser.isTouch !== true && !base.$owlWrapper.hasClass("grabbing")) {
935
+ base.$owlWrapper.addClass("grabbing");
936
+ }
937
+
938
+ base.newPosX = 0;
939
+ base.newRelativeX = 0;
940
+
941
+ $(this).css(base.removeTransition());
942
+
943
+ position = $(this).position();
944
+ locals.relativePos = position.left;
945
+
946
+ locals.offsetX = getTouches(ev).x - position.left;
947
+ locals.offsetY = getTouches(ev).y - position.top;
948
+
949
+ swapEvents("on");
950
+
951
+ locals.sliding = false;
952
+ locals.targetElement = ev.target || ev.srcElement;
953
+ }
954
+
955
+ function dragMove(event) {
956
+ var ev = event.originalEvent || event || window.event,
957
+ minSwipe,
958
+ maxSwipe;
959
+
960
+ base.newPosX = getTouches(ev).x - locals.offsetX;
961
+ base.newPosY = getTouches(ev).y - locals.offsetY;
962
+ base.newRelativeX = base.newPosX - locals.relativePos;
963
+
964
+ if (typeof base.options.startDragging === "function" && locals.dragging !== true && base.newRelativeX !== 0) {
965
+ locals.dragging = true;
966
+ base.options.startDragging.apply(base, [base.$elem]);
967
+ }
968
+
969
+ if ((base.newRelativeX > 8 || base.newRelativeX < -8) && (base.browser.isTouch === true)) {
970
+ if (ev.preventDefault !== undefined) {
971
+ ev.preventDefault();
972
+ } else {
973
+ ev.returnValue = false;
974
+ }
975
+ locals.sliding = true;
976
+ }
977
+
978
+ if ((base.newPosY > 10 || base.newPosY < -10) && locals.sliding === false) {
979
+ $(document).off("touchmove.owl");
980
+ }
981
+
982
+ minSwipe = function () {
983
+ return base.newRelativeX / 5;
984
+ };
985
+
986
+ maxSwipe = function () {
987
+ return base.maximumPixels + base.newRelativeX / 5;
988
+ };
989
+
990
+ base.newPosX = Math.max(Math.min(base.newPosX, minSwipe()), maxSwipe());
991
+ if (base.browser.support3d === true) {
992
+ base.transition3d(base.newPosX);
993
+ } else {
994
+ base.css2move(base.newPosX);
995
+ }
996
+ }
997
+
998
+ function dragEnd(event) {
999
+ var ev = event.originalEvent || event || window.event,
1000
+ newPosition,
1001
+ handlers,
1002
+ owlStopEvent;
1003
+
1004
+ ev.target = ev.target || ev.srcElement;
1005
+
1006
+ locals.dragging = false;
1007
+
1008
+ if (base.browser.isTouch !== true) {
1009
+ base.$owlWrapper.removeClass("grabbing");
1010
+ }
1011
+
1012
+ if (base.newRelativeX < 0) {
1013
+ base.dragDirection = base.owl.dragDirection = "left";
1014
+ } else {
1015
+ base.dragDirection = base.owl.dragDirection = "right";
1016
+ }
1017
+
1018
+ if (base.newRelativeX !== 0) {
1019
+ newPosition = base.getNewPosition();
1020
+ base.goTo(newPosition, false, "drag");
1021
+ if (locals.targetElement === ev.target && base.browser.isTouch !== true) {
1022
+ $(ev.target).on("click.disable", function (ev) {
1023
+ ev.stopImmediatePropagation();
1024
+ ev.stopPropagation();
1025
+ ev.preventDefault();
1026
+ $(ev.target).off("click.disable");
1027
+ });
1028
+ handlers = $._data(ev.target, "events").click;
1029
+ owlStopEvent = handlers.pop();
1030
+ handlers.splice(0, 0, owlStopEvent);
1031
+ }
1032
+ }
1033
+ swapEvents("off");
1034
+ }
1035
+ base.$elem.on(base.ev_types.start, ".owl-wrapper", dragStart);
1036
+ },
1037
+
1038
+ getNewPosition : function () {
1039
+ var base = this,
1040
+ newPosition = base.closestItem();
1041
+
1042
+ if (newPosition > base.maximumItem) {
1043
+ base.currentItem = base.maximumItem;
1044
+ newPosition = base.maximumItem;
1045
+ } else if (base.newPosX >= 0) {
1046
+ newPosition = 0;
1047
+ base.currentItem = 0;
1048
+ }
1049
+ return newPosition;
1050
+ },
1051
+ closestItem : function () {
1052
+ var base = this,
1053
+ array = base.options.scrollPerPage === true ? base.pagesInArray : base.positionsInArray,
1054
+ goal = base.newPosX,
1055
+ closest = null;
1056
+
1057
+ $.each(array, function (i, v) {
1058
+ if (goal - (base.itemWidth / 20) > array[i + 1] && goal - (base.itemWidth / 20) < v && base.moveDirection() === "left") {
1059
+ closest = v;
1060
+ if (base.options.scrollPerPage === true) {
1061
+ base.currentItem = $.inArray(closest, base.positionsInArray);
1062
+ } else {
1063
+ base.currentItem = i;
1064
+ }
1065
+ } else if (goal + (base.itemWidth / 20) < v && goal + (base.itemWidth / 20) > (array[i + 1] || array[i] - base.itemWidth) && base.moveDirection() === "right") {
1066
+ if (base.options.scrollPerPage === true) {
1067
+ closest = array[i + 1] || array[array.length - 1];
1068
+ base.currentItem = $.inArray(closest, base.positionsInArray);
1069
+ } else {
1070
+ closest = array[i + 1];
1071
+ base.currentItem = i + 1;
1072
+ }
1073
+ }
1074
+ });
1075
+ return base.currentItem;
1076
+ },
1077
+
1078
+ moveDirection : function () {
1079
+ var base = this,
1080
+ direction;
1081
+ if (base.newRelativeX < 0) {
1082
+ direction = "right";
1083
+ base.playDirection = "next";
1084
+ } else {
1085
+ direction = "left";
1086
+ base.playDirection = "prev";
1087
+ }
1088
+ return direction;
1089
+ },
1090
+
1091
+ customEvents : function () {
1092
+ /*jslint unparam: true*/
1093
+ var base = this;
1094
+ base.$elem.on("owl.next", function () {
1095
+ base.next();
1096
+ });
1097
+ base.$elem.on("owl.prev", function () {
1098
+ base.prev();
1099
+ });
1100
+ base.$elem.on("owl.play", function (event, speed) {
1101
+ base.options.autoPlay = speed;
1102
+ base.play();
1103
+ base.hoverStatus = "play";
1104
+ });
1105
+ base.$elem.on("owl.stop", function () {
1106
+ base.stop();
1107
+ base.hoverStatus = "stop";
1108
+ });
1109
+ base.$elem.on("owl.goTo", function (event, item) {
1110
+ base.goTo(item);
1111
+ });
1112
+ base.$elem.on("owl.jumpTo", function (event, item) {
1113
+ base.jumpTo(item);
1114
+ });
1115
+ },
1116
+
1117
+ stopOnHover : function () {
1118
+ var base = this;
1119
+ if (base.options.stopOnHover === true && base.browser.isTouch !== true && base.options.autoPlay !== false) {
1120
+ base.$elem.on("mouseover", function () {
1121
+ base.stop();
1122
+ });
1123
+ base.$elem.on("mouseout", function () {
1124
+ if (base.hoverStatus !== "stop") {
1125
+ base.play();
1126
+ }
1127
+ });
1128
+ }
1129
+ },
1130
+
1131
+ lazyLoad : function () {
1132
+ var base = this,
1133
+ i,
1134
+ $item,
1135
+ itemNumber,
1136
+ $lazyImg,
1137
+ follow;
1138
+
1139
+ if (base.options.lazyLoad === false) {
1140
+ return false;
1141
+ }
1142
+ for (i = 0; i < base.itemsAmount; i += 1) {
1143
+ $item = $(base.$owlItems[i]);
1144
+
1145
+ if ($item.data("owl-loaded") === "loaded") {
1146
+ continue;
1147
+ }
1148
+
1149
+ itemNumber = $item.data("owl-item");
1150
+ $lazyImg = $item.find(".lazyOwl");
1151
+
1152
+ if (typeof $lazyImg.data("src") !== "string") {
1153
+ $item.data("owl-loaded", "loaded");
1154
+ continue;
1155
+ }
1156
+ if ($item.data("owl-loaded") === undefined) {
1157
+ $lazyImg.hide();
1158
+ $item.addClass("loading").data("owl-loaded", "checked");
1159
+ }
1160
+ if (base.options.lazyFollow === true) {
1161
+ follow = itemNumber >= base.currentItem;
1162
+ } else {
1163
+ follow = true;
1164
+ }
1165
+ if (follow && itemNumber < base.currentItem + base.options.items && $lazyImg.length) {
1166
+ base.lazyPreload($item, $lazyImg);
1167
+ }
1168
+ }
1169
+ },
1170
+
1171
+ lazyPreload : function ($item, $lazyImg) {
1172
+ var base = this,
1173
+ iterations = 0,
1174
+ isBackgroundImg;
1175
+
1176
+ if ($lazyImg.prop("tagName") === "DIV") {
1177
+ $lazyImg.css("background-image", "url(" + $lazyImg.data("src") + ")");
1178
+ isBackgroundImg = true;
1179
+ } else {
1180
+ $lazyImg[0].src = $lazyImg.data("src");
1181
+ }
1182
+
1183
+ function showImage() {
1184
+ $item.data("owl-loaded", "loaded").removeClass("loading");
1185
+ $lazyImg.removeAttr("data-src");
1186
+ if (base.options.lazyEffect === "fade") {
1187
+ $lazyImg.fadeIn(400);
1188
+ } else {
1189
+ $lazyImg.show();
1190
+ }
1191
+ if (typeof base.options.afterLazyLoad === "function") {
1192
+ base.options.afterLazyLoad.apply(this, [base.$elem]);
1193
+ }
1194
+ }
1195
+
1196
+ function checkLazyImage() {
1197
+ iterations += 1;
1198
+ if (base.completeImg($lazyImg.get(0)) || isBackgroundImg === true) {
1199
+ showImage();
1200
+ } else if (iterations <= 100) {//if image loads in less than 10 seconds
1201
+ window.setTimeout(checkLazyImage, 100);
1202
+ } else {
1203
+ showImage();
1204
+ }
1205
+ }
1206
+
1207
+ checkLazyImage();
1208
+ },
1209
+
1210
+ autoHeight : function () {
1211
+ var base = this,
1212
+ $currentimg = $(base.$owlItems[base.currentItem]).find("img"),
1213
+ iterations;
1214
+
1215
+ function addHeight() {
1216
+ var $currentItem = $(base.$owlItems[base.currentItem]).height();
1217
+ base.wrapperOuter.css("height", $currentItem + "px");
1218
+ if (!base.wrapperOuter.hasClass("autoHeight")) {
1219
+ window.setTimeout(function () {
1220
+ base.wrapperOuter.addClass("autoHeight");
1221
+ }, 0);
1222
+ }
1223
+ }
1224
+
1225
+ function checkImage() {
1226
+ iterations += 1;
1227
+ if (base.completeImg($currentimg.get(0))) {
1228
+ addHeight();
1229
+ } else if (iterations <= 100) { //if image loads in less than 10 seconds
1230
+ window.setTimeout(checkImage, 100);
1231
+ } else {
1232
+ base.wrapperOuter.css("height", ""); //Else remove height attribute
1233
+ }
1234
+ }
1235
+
1236
+ if ($currentimg.get(0) !== undefined) {
1237
+ iterations = 0;
1238
+ checkImage();
1239
+ } else {
1240
+ addHeight();
1241
+ }
1242
+ },
1243
+
1244
+ completeImg : function (img) {
1245
+ var naturalWidthType;
1246
+
1247
+ if (!img.complete) {
1248
+ return false;
1249
+ }
1250
+ naturalWidthType = typeof img.naturalWidth;
1251
+ if (naturalWidthType !== "undefined" && img.naturalWidth === 0) {
1252
+ return false;
1253
+ }
1254
+ return true;
1255
+ },
1256
+
1257
+ onVisibleItems : function () {
1258
+ var base = this,
1259
+ i;
1260
+
1261
+ if (base.options.addClassActive === true) {
1262
+ base.$owlItems.removeClass("active");
1263
+ }
1264
+ base.visibleItems = [];
1265
+ for (i = base.currentItem; i < base.currentItem + base.options.items; i += 1) {
1266
+ base.visibleItems.push(i);
1267
+
1268
+ if (base.options.addClassActive === true) {
1269
+ $(base.$owlItems[i]).addClass("active");
1270
+ }
1271
+ }
1272
+ base.owl.visibleItems = base.visibleItems;
1273
+ },
1274
+
1275
+ transitionTypes : function (className) {
1276
+ var base = this;
1277
+ //Currently available: "fade", "backSlide", "goDown", "fadeUp"
1278
+ base.outClass = "owl-" + className + "-out";
1279
+ base.inClass = "owl-" + className + "-in";
1280
+ },
1281
+
1282
+ singleItemTransition : function () {
1283
+ var base = this,
1284
+ outClass = base.outClass,
1285
+ inClass = base.inClass,
1286
+ $currentItem = base.$owlItems.eq(base.currentItem),
1287
+ $prevItem = base.$owlItems.eq(base.prevItem),
1288
+ prevPos = Math.abs(base.positionsInArray[base.currentItem]) + base.positionsInArray[base.prevItem],
1289
+ origin = Math.abs(base.positionsInArray[base.currentItem]) + base.itemWidth / 2,
1290
+ animEnd = 'webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend';
1291
+
1292
+ base.isTransition = true;
1293
+
1294
+ base.$owlWrapper
1295
+ .addClass('owl-origin')
1296
+ .css({
1297
+ "-webkit-transform-origin" : origin + "px",
1298
+ "-moz-perspective-origin" : origin + "px",
1299
+ "perspective-origin" : origin + "px"
1300
+ });
1301
+ function transStyles(prevPos) {
1302
+ return {
1303
+ "position" : "relative",
1304
+ "left" : prevPos + "px"
1305
+ };
1306
+ }
1307
+
1308
+ $prevItem
1309
+ .css(transStyles(prevPos, 10))
1310
+ .addClass(outClass)
1311
+ .on(animEnd, function () {
1312
+ base.endPrev = true;
1313
+ $prevItem.off(animEnd);
1314
+ base.clearTransStyle($prevItem, outClass);
1315
+ });
1316
+
1317
+ $currentItem
1318
+ .addClass(inClass)
1319
+ .on(animEnd, function () {
1320
+ base.endCurrent = true;
1321
+ $currentItem.off(animEnd);
1322
+ base.clearTransStyle($currentItem, inClass);
1323
+ });
1324
+ },
1325
+
1326
+ clearTransStyle : function (item, classToRemove) {
1327
+ var base = this;
1328
+ item.css({
1329
+ "position" : "",
1330
+ "left" : ""
1331
+ }).removeClass(classToRemove);
1332
+
1333
+ if (base.endPrev && base.endCurrent) {
1334
+ base.$owlWrapper.removeClass('owl-origin');
1335
+ base.endPrev = false;
1336
+ base.endCurrent = false;
1337
+ base.isTransition = false;
1338
+ }
1339
+ },
1340
+
1341
+ owlStatus : function () {
1342
+ var base = this;
1343
+ base.owl = {
1344
+ "userOptions" : base.userOptions,
1345
+ "baseElement" : base.$elem,
1346
+ "userItems" : base.$userItems,
1347
+ "owlItems" : base.$owlItems,
1348
+ "currentItem" : base.currentItem,
1349
+ "prevItem" : base.prevItem,
1350
+ "visibleItems" : base.visibleItems,
1351
+ "isTouch" : base.browser.isTouch,
1352
+ "browser" : base.browser,
1353
+ "dragDirection" : base.dragDirection
1354
+ };
1355
+ },
1356
+
1357
+ clearEvents : function () {
1358
+ var base = this;
1359
+ base.$elem.off(".owl owl mousedown.disableTextSelect");
1360
+ $(document).off(".owl owl");
1361
+ $(window).off("resize", base.resizer);
1362
+ },
1363
+
1364
+ unWrap : function () {
1365
+ var base = this;
1366
+ if (base.$elem.children().length !== 0) {
1367
+ base.$owlWrapper.unwrap();
1368
+ base.$userItems.unwrap().unwrap();
1369
+ if (base.owlControls) {
1370
+ base.owlControls.remove();
1371
+ }
1372
+ }
1373
+ base.clearEvents();
1374
+ base.$elem
1375
+ .attr("style", base.$elem.data("owl-originalStyles") || "")
1376
+ .attr("class", base.$elem.data("owl-originalClasses"));
1377
+ },
1378
+
1379
+ destroy : function () {
1380
+ var base = this;
1381
+ base.stop();
1382
+ window.clearInterval(base.checkVisible);
1383
+ base.unWrap();
1384
+ base.$elem.removeData();
1385
+ },
1386
+
1387
+ reinit : function (newOptions) {
1388
+ var base = this,
1389
+ options = $.extend({}, base.userOptions, newOptions);
1390
+ base.unWrap();
1391
+ base.init(options, base.$elem);
1392
+ },
1393
+
1394
+ addItem : function (htmlString, targetPosition) {
1395
+ var base = this,
1396
+ position;
1397
+
1398
+ if (!htmlString) {return false; }
1399
+
1400
+ if (base.$elem.children().length === 0) {
1401
+ base.$elem.append(htmlString);
1402
+ base.setVars();
1403
+ return false;
1404
+ }
1405
+ base.unWrap();
1406
+ if (targetPosition === undefined || targetPosition === -1) {
1407
+ position = -1;
1408
+ } else {
1409
+ position = targetPosition;
1410
+ }
1411
+ if (position >= base.$userItems.length || position === -1) {
1412
+ base.$userItems.eq(-1).after(htmlString);
1413
+ } else {
1414
+ base.$userItems.eq(position).before(htmlString);
1415
+ }
1416
+
1417
+ base.setVars();
1418
+ },
1419
+
1420
+ removeItem : function (targetPosition) {
1421
+ var base = this,
1422
+ position;
1423
+
1424
+ if (base.$elem.children().length === 0) {
1425
+ return false;
1426
+ }
1427
+ if (targetPosition === undefined || targetPosition === -1) {
1428
+ position = -1;
1429
+ } else {
1430
+ position = targetPosition;
1431
+ }
1432
+
1433
+ base.unWrap();
1434
+ base.$userItems.eq(position).remove();
1435
+ base.setVars();
1436
+ }
1437
+
1438
+ };
1439
+
1440
+ $.fn.owlCarousel = function (options) {
1441
+ return this.each(function () {
1442
+ if ($(this).data("owl-init") === true) {
1443
+ return false;
1444
+ }
1445
+ $(this).data("owl-init", true);
1446
+ var carousel = Object.create(Carousel);
1447
+ carousel.init(options, this);
1448
+ $.data(this, "owlCarousel", carousel);
1449
+ });
1450
+ };
1451
+
1452
+ $.fn.owlCarousel.options = {
1453
+
1454
+ items : 5,
1455
+ itemsCustom : false,
1456
+ itemsDesktop : [1199, 4],
1457
+ itemsDesktopSmall : [979, 3],
1458
+ itemsTablet : [768, 2],
1459
+ itemsTabletSmall : false,
1460
+ itemsMobile : [479, 1],
1461
+ singleItem : false,
1462
+ itemsScaleUp : false,
1463
+
1464
+ slideSpeed : 200,
1465
+ paginationSpeed : 800,
1466
+ rewindSpeed : 1000,
1467
+
1468
+ autoPlay : false,
1469
+ stopOnHover : false,
1470
+
1471
+ navigation : false,
1472
+ navigationText : ["prev", "next"],
1473
+ rewindNav : true,
1474
+ scrollPerPage : false,
1475
+
1476
+ pagination : true,
1477
+ paginationNumbers : false,
1478
+
1479
+ responsive : true,
1480
+ responsiveRefreshRate : 200,
1481
+ responsiveBaseWidth : window,
1482
+
1483
+ baseClass : "owl-carousel",
1484
+ theme : "owl-theme",
1485
+
1486
+ lazyLoad : false,
1487
+ lazyFollow : true,
1488
+ lazyEffect : "fade",
1489
+
1490
+ autoHeight : false,
1491
+
1492
+ jsonPath : false,
1493
+ jsonSuccess : false,
1494
+
1495
+ dragBeforeAnimFinish : true,
1496
+ mouseDrag : true,
1497
+ touchDrag : true,
1498
+
1499
+ addClassActive : false,
1500
+ transitionStyle : false,
1501
+
1502
+ beforeUpdate : false,
1503
+ afterUpdate : false,
1504
+ beforeInit : false,
1505
+ afterInit : false,
1506
+ beforeMove : false,
1507
+ afterMove : false,
1508
+ afterAction : false,
1509
+ startDragging : false,
1510
+ afterLazyLoad: false
1511
+ };
1512
+ }(jQuery, window, document));
media/import/product.csv ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ URL,Prod_Image,Product_Name,Discount_Price
2
+ http://magestore.conversionbug.com/exit-intent-social-popup.html,http://magestore.conversionbug.com/media/catalog/product/b/a/banner_1.png,Social Login With Exit Intent,120
3
+ http://magestore.conversionbug.com/filter-products-by-zip-code.html,http://magestore.conversionbug.com/media/catalog/product/c/b/cb_zip_code_banner_1.png,Filter Products By ZIP code,80
4
+ http://magestore.conversionbug.com/sticky-product.html,http://magestore.conversionbug.com/media/catalog/product/s/t/stickproduct_banner_1.png,Sticky Product Bar,60
5
+ http://magestore.conversionbug.com/replenish-products.html,http://magestore.conversionbug.com/media/catalog/product/b/a/banner_1_1.png,Replenish Products Emailer,75
6
+ http://magestore.conversionbug.com/cookies-based-recently-viewed-products.html,http://magestore.conversionbug.com/media/catalog/product/b/a/banner_1_2.png,Cookies Based Recently Viewed Products,75
package.xml ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>ConversionBug_Productbyzipcode</name>
4
+ <version>0.1.0</version>
5
+ <stability>stable</stability>
6
+ <license>OSL v3.0</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>This extension enables the visitors to see only those products which are available for a particular location&#xD;
10
+ </summary>
11
+ <description>&lt;p&gt;Filter products by ZIP code enables the users to see the products which are available for a particular location. Most of the times, users get disappointed when they see that the product they chose is not available for their particular ZIP code. It lets the sellers pre-define the zip codes where they would be delivered.It enables users to search the products by the ZIP code where they want the product to be delivered. This extension reduces chances of disappointment, of users when they find out that product is unavailable for their location. &lt;/p&gt;&#xD;
12
+ &lt;p&gt;&lt;b&gt;How to use this extension for higher conversions?&lt;/b&gt;&lt;/p&gt;&#xD;
13
+ &lt;p&gt;We studied the behavior of various users about how they felt when they saw that the product they liked was not available on their location. It affected their purchase process and sometimes it caused them to exit the website without checking out. Thus, we came up with this solution. This extension can be used by the e-commerce store owners and managers to allow the visitors to enter the ZIP code as soon as they come on the website. By this their emotional behavior is targeted. This results in better user experience, website credibility and more purchases.&lt;/p&gt;&#xD;
14
+ &lt;p&gt;&lt;b&gt;Special features of the filter products by ZIP code extension&lt;/b&gt;&lt;/p&gt;&#xD;
15
+ &lt;ol&gt;&lt;li&gt;Based on conversion analytics&lt;/li&gt;&#xD;
16
+ &lt;li&gt;Fully customizable&lt;/li&gt;&#xD;
17
+ &lt;li&gt;Responsive across all devices&lt;/li&gt;&#xD;
18
+ &lt;li&gt;Hassle- free integration&lt;/li&gt;&lt;/ol&gt;&#xD;
19
+ &lt;ol&gt;&lt;li&gt;&#xD;
20
+ &lt;p&gt;&lt;b&gt;Based on conversion analytics&lt;/b&gt;&lt;/p&gt;&#xD;
21
+ &lt;p&gt;Based on our study of consumer behavior, this extension has been created in order to target their positive emotional behavior and make the purchase process better.&lt;/p&gt;&lt;/li&gt;&#xD;
22
+ &lt;li&gt;&lt;p&gt;&lt;b&gt;Fully customizable&lt;/b&gt;&lt;/p&gt;&#xD;
23
+ &lt;p&gt;We have made this extension fully customizable. Based on the requirement, it can be customized easily for vendors, sellers, website admins and website visitors.&lt;/p&gt;&lt;/li&gt;&#xD;
24
+ &lt;li&gt;&lt;p&gt;&lt;b&gt;Responsive across all devices&lt;/b&gt;&lt;/p&gt;&#xD;
25
+ &lt;p&gt;The extension is fully responsive. From desktop to mobile and widescreen to tablet, this extension works smoothly across all the devices.&lt;/p&gt;&lt;/li&gt;&#xD;
26
+ &lt;li&gt;&lt;p&gt;&lt;b&gt;Hassle- free integration&lt;/b&gt;&lt;/p&gt;&#xD;
27
+ &lt;p&gt;The extension can be easily integrated on the store either via Magento connect manager or via FileZilla. It&#x2019;s as easy as integrating any other extension of the store.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&#xD;
28
+ &lt;b&gt;Compatible with:&lt;/b&gt;&#xD;
29
+ &lt;ul&gt;&lt;li&gt;&lt;b&gt;Community: &lt;/b&gt;1.9.2&lt;/li&gt;&lt;/ul&gt;&#xD;
30
+ </description>
31
+ <notes>First release</notes>
32
+ <authors><author><name>shiv kumar singh</name><user>shivam</user><email>shivam.kumar@conversionbug.com</email></author></authors>
33
+ <date>2016-05-12</date>
34
+ <time>05:53:40</time>
35
+ <contents><target name="magelocal"><dir name="ConversionBug"><dir name="Productbyzipcode"><dir name="Block"><file name="Productbyzipcode.php" hash="98c4350e9a510d01be03945ce020a7b9"/></dir><dir name="Helper"><file name="Data.php" hash="aeb045c885d25c37c06ca595475c5ef3"/></dir><dir name="Model"><dir name="Resource"><file name="Setup.php" hash="95e2d6a67b52f97ce8067da36d67c7db"/></dir></dir><dir name="controllers"><file name="SearchController.php" hash="6a42d96b7d606843066b94185e90e0ab"/></dir><dir name="etc"><file name="adminhtml.xml" hash="546de44d0dbe31a82473ef96b66458e5"/><file name="config.xml" hash="38c87723c70b386be271c1d03780261c"/><file name="system.xml" hash="5ab01aae1c495e805ee9a059be3feb2b"/></dir><dir name="sql"><dir name="cbproductbyzipcode_setup"><file name="mysql4-install-0.1.0.php" hash="315bae3c0c5ac484baab93cd6d61ea95"/></dir></dir></dir><dir name="Core"><dir name="Block"><file name="Info.php" hash="90e4c31958204ac9e40b2293c6372296"/><dir name="System"><dir name="Config"><dir name="Form"><dir name="Fieldset"><file name="Store.php" hash="15df9afac0ea33498b03ad544e0bc8c5"/></dir></dir><file name="Info.php" hash="a0601dea3e6e7d3c3f7f4ac7544dd249"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="fd937326042c8165a1df0faca629db7f"/></dir><dir name="Model"><file name="Feed.php" hash="9266834784c19c05f6cf06a3acc69acc"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Display.php" hash="fd271787952e4f1b1ce98a0a68cb37cb"/><file name="Footer.php" hash="7c13df78247e0cc2fe1e11ddff2cdcdf"/><file name="Options.php" hash="a26a31999e38a540292ff24e5ed33428"/></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="7164e6536faa45bccbf4a09bc6fba886"/><file name="config.xml" hash="c7b1ac437420d8bb3160e561c18d10e6"/><file name="system.xml" hash="8371de258efa47ceff95e858c6c09603"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="ConversionBug_Productbyzipcode.xml" hash="e6c20bd916a2e09f0c9d4ad7bf5325c3"/><file name="ConversionBug_Core.xml" hash="537de773791fc95a5a3e340de82162f7"/></dir></target><target name="magedesign"><dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="cb_productbyzipcode.xml" hash="b71e3b7b6019397727677de32bf23f2d"/></dir><dir name="template"><dir name="conversionbug"><dir name="productbyzipcode"><file name="product.phtml" hash="20594a998352079d99d03df293870266"/><file name="search.phtml" hash="74a7be863730b15ee664a53f61367c99"/><file name="viewall.phtml" hash="b0dfc7c8017cc6267ed92c19978a21b5"/></dir></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="conversionbugcore.xml" hash="12ae2f9f2a96093fcefd593fed15e7b3"/></dir><dir name="template"><dir name="conversionbugcore"><file name="info.phtml" hash="4099f81b6ea49b517ef4354fd8bcb0a2"/></dir></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="conversionbug"><dir name="owl-carousel"><file name="owl.carousel.js" hash="a5f96c62d75be144282ef6cc429a6259"/></dir></dir></dir></target><target name="mageskin"><dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="conversionbug"><dir name="owl"><file name="AjaxLoader.gif" hash="5b8b06c052cac80413d62e5c45f9f37b"/><file name="bootstrapTheme.css" hash="6a99dc7813d9a40140192e71fe4e2cc7"/><file name="custom.css" hash="2966971052651b1a422b3bb594410b9c"/><file name="glyphicons-halflings-green.png" hash="9bbc6e9602998a385c2ea13df56470fd"/><file name="glyphicons-halflings-green.png_" hash="9cae7799ad4cae356531cb566f8fe287"/><file name="glyphicons-halflings.png" hash="2516339970d710819585f90773aebe0a"/><file name="grabbing.png" hash="d817e1dba5bd5d891d0504bf1715807b"/><file name="owl.carousel.css" hash="3113902e75b311845eb160a0c4b50f51"/><file name="owl.carousel.js" hash="a5f96c62d75be144282ef6cc429a6259"/><file name="owl.css" hash="6c438d4a7126a61e86805ebc0aebdb55"/><file name="owl.theme.css" hash="0a3f28b2f8a363198f35a188bea9ca2b"/><file name="owl.transitions.css" hash="b1bdaeac4065bf67a7d7a06213192964"/><file name="responsive.css" hash="6b7eb0867b2952eb412131c8c7fb1b85"/></dir><dir name="productbyzipcode"><file name="custom.css" hash="8e561585e3bc56f9b0b70738efb6db87"/></dir></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="conversionbug"><dir name="core"><file name="core.css" hash="726ac65a6b5f5aa819cebef92f99c7d4"/><dir name="images"><file name="cb_pattern.png" hash="9c5044bebc10bc6a34aa6a1e8e41b54a"/><file name="favicon.png" hash="bab36888d2974803acc518fc6e80c0a8"/><file name="logo.jpg" hash="04b873540f127f3db2702ec81537a92c"/></dir></dir></dir></dir></dir></dir></target><target name="magemedia"><dir name="import"><file name="product.csv" hash="fe4db0faa97e0181d36109d73e2a709d"/></dir></target></contents>
36
+ <compatible/>
37
+ <dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
38
+ </package>
skin/adminhtml/default/default/conversionbug/core/core.css ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .cb-block dl > dt.label{background: #d1dedf url("images/logo.jpg") no-repeat scroll 0px -1px;padding-left: 50px;text-indent: -999em;}
2
+ .cb-intro{background:rgb(25,25,25);height:162px;}
3
+ .cb-pattern{background: url("images/cb_pattern.png") no-repeat;height: 162px;width:39%;float:right}
4
+ .cb-intro .content{float:left;width:56%;padding:10px 10px 10px 30px;color:white;}
5
+ h3.cb-header{background: transparent url("images/favicon.png") no-repeat scroll 0 0;height: 37px;overflow: hidden;padding: 0;text-indent: -9999px;width: 120px;display:none;}
6
+ .cbstore-block .item-extensions {float: left;margin: 0 0 0 70px;min-height: 400px;padding: 24px 0;width: 17%;}
7
+ .cbstore-block .item-extensions .image img {width: 175px;}
8
+ .cbstore-block .item-extensions .title {border-bottom: 1px solid #ededed;margin: 0 0 15px;padding: 31px 0 17px;text-align: center;}
9
+ .cbstore-block .item-extensions .title a {color: #545454;display: block;font-family: Arial;font-size: 16px;font-weight: bold;max-height: 57px;min-height: 57px;overflow: hidden;text-decoration: none;}
10
+ .cbstore-block .item-extensions .title a:hover {color: #d4022e;}
11
+ .cbstore-block .item-extensions .price {color: #000000;font-size: 20px;font-weight: bold;text-align: center;}
12
+ .cbstore-block .store-extensions-header {border-bottom: 1px dashed #dddddd;font-family: Arial;font-size: 1.6666em;line-height: 1.25em;margin-left: 70px;padding-bottom: 30px;padding-top: 7px;}
skin/adminhtml/default/default/conversionbug/core/images/cb_pattern.png ADDED
Binary file
skin/adminhtml/default/default/conversionbug/core/images/favicon.png ADDED
Binary file
skin/adminhtml/default/default/conversionbug/core/images/logo.jpg ADDED
Binary file
skin/frontend/base/default/css/conversionbug/owl/AjaxLoader.gif ADDED
Binary file
skin/frontend/base/default/css/conversionbug/owl/bootstrapTheme.css ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ owl-theme .owl-controls .owl-buttons .owl-prev {
2
+ left: -45px;
3
+ top: 55px;
4
+ }
5
+ .owl-theme .owl-controls .owl-buttons div {
6
+ position: absolute;
7
+ }
8
+ .owl-theme .owl-controls .owl-buttons div {
9
+ padding: 5px 9px;
10
+ }
11
+ .owl-theme .owl-controls .owl-buttons div {
12
+ background: none repeat scroll 0 0 #869791;
13
+ border-radius: 30px;
14
+ color: #fff;
15
+ display: inline-block;
16
+ font-size: 12px;
17
+ margin: 5px;
18
+ opacity: 0.5;
19
+ padding: 3px 10px;
20
+ }
21
+ .owl-controls .owl-page, .owl-controls .owl-buttons div {
22
+ cursor: pointer;
23
+ }
24
+ .owl-theme .owl-controls {
25
+ text-align: center;
26
+ }
27
+ .owl-theme .owl-buttons i {
28
+ margin-top: 2px;
29
+ }
30
+ .icon-chevron-left {
31
+ background-position: -432px -72px;
32
+ }
33
+ .icon-white, .nav-pills > .active > a > [class^="icon-"], .nav-pills > .active > a > [class*=" icon-"], .nav-list > .active > a > [class^="icon-"], .nav-list > .active > a > [class*=" icon-"], .navbar-inverse .nav > .active > a > [class^="icon-"], .navbar-inverse .nav > .active > a > [class*=" icon-"], .dropdown-menu > li > a:hover > [class^="icon-"], .dropdown-menu > li > a:focus > [class^="icon-"], .dropdown-menu > li > a:hover > [class*=" icon-"], .dropdown-menu > li > a:focus > [class*=" icon-"], .dropdown-menu > .active > a > [class^="icon-"], .dropdown-menu > .active > a > [class*=" icon-"], .dropdown-submenu:hover > a > [class^="icon-"], .dropdown-submenu:focus > a > [class^="icon-"], .dropdown-submenu:hover > a > [class*=" icon-"], .dropdown-submenu:focus > a > [class*=" icon-"] {
34
+ background-image: url("glyphicons-halflings-white.png");
35
+ }
36
+ [class^="icon-"], [class*=" icon-"] {
37
+ background-image: url("glyphicons-halflings-green.png");
38
+ background-position: 14px 14px;
39
+ background-repeat: no-repeat;
40
+ display: inline-block;
41
+ height: 14px;
42
+ line-height: 14px;
43
+ margin-top: 4px;
44
+ vertical-align: text-top;
45
+ width: 14px;
46
+ }
47
+ [class^="icon-"], [class*=" icon-"] {
48
+ background-image: url("glyphicons-halflings-green.png");
49
+ background-position: 14px 14px;
50
+ background-repeat: no-repeat;
51
+ display: inline-block;
52
+ height: 14px;
53
+ line-height: 14px;
54
+ margin-top: 4px;
55
+ vertical-align: text-top;
56
+ width: 14px;
57
+ }
58
+ .owl-theme .owl-controls .owl-buttons div {
59
+ color: #fff;
60
+ font-size: 12px;
61
+ }
62
+ .owl-controls .owl-page, .owl-controls .owl-buttons div {
63
+ cursor: pointer;
64
+ }
65
+ .icon-chevron-left {
66
+ background-position: -432px -72px;
67
+ }
68
+ .owl-theme .owl-buttons i {
69
+ margin-top: 2px;
70
+ }
71
+ .owl-theme .owl-buttons i {
72
+ margin-top: 2px;
73
+ }
74
+ .icon-chevron-right {
75
+ background-position: -456px -72px;
76
+ }
skin/frontend/base/default/css/conversionbug/owl/custom.css ADDED
@@ -0,0 +1,421 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Owl Carousel Bootstrap Custom CSS */
2
+
3
+ /* Header Navigation */
4
+ #top-nav{
5
+ border-bottom: 1px solid #e1e6dd;
6
+ background: #FFF;
7
+ -webkit-transform: translateZ(0)
8
+
9
+ }
10
+ #top-nav.navbar{
11
+ margin-bottom: 0px;
12
+
13
+ }
14
+ #top-nav.navbar .nav{
15
+ margin: 8px 0px;
16
+ }
17
+
18
+ #top-nav.navbar .nav > li > a {
19
+ padding: 6px 12px;
20
+ margin: 0px;
21
+ text-transform: uppercase;
22
+ font-weight: 400;
23
+
24
+ -webkit-transition: background-color 200ms ease;
25
+ -moz-transition: background-color 200ms ease;
26
+ -o-transition: background-color 200ms ease;
27
+ transition: background-color 200ms ease;
28
+ }
29
+ #top-nav.navbar .nav > li > a.download{
30
+ -webkit-border-radius: 3px;
31
+ -moz-border-radius: 3px;
32
+ border-radius: 3px;
33
+ }
34
+
35
+ #top-nav.navbar .nav > li > a.download-on{
36
+ background-color: #ff8a3c;
37
+ color: #ffffff;
38
+ }
39
+ #top-nav.navbar .nav > li > a.download-on:hover{
40
+ color: #ffffff;
41
+ background-color: #ff7920;
42
+ }
43
+ .btn-navbar span.icon-bar{
44
+ margin-top: 0px;
45
+ }
46
+
47
+ /* Header */
48
+
49
+ #header{
50
+ background: #f1f1f1;
51
+ padding: 100px 0 100px;
52
+ }
53
+ #header h1{
54
+ color: #7fc242;
55
+ margin-bottom: 10px;
56
+ margin-top: 40px;
57
+ }
58
+ #header h3{
59
+ margin-bottom: 30px;
60
+ width: 400px;
61
+ }
62
+ #header .btn-success {
63
+ padding: 15px 30px;
64
+ margin-bottom: 5px;
65
+ }
66
+ #header .logo{
67
+ display: block;
68
+ margin-top:60px;
69
+ float: right
70
+ }
71
+ img.arrow-down{
72
+ margin: 0 auto;
73
+ display: block;
74
+ }
75
+ h1{
76
+ margin-top: 80px;
77
+ }
78
+
79
+ pre.pre-show{
80
+ margin: 40px 0px;
81
+
82
+ }
83
+ .tab-content pre.pre-show{
84
+ margin: 0px 0px 0px 0px;
85
+ }
86
+ .nav-tabs{
87
+ margin-top: 20px;
88
+ margin-bottom: 0px;
89
+
90
+ }
91
+ .tab-content{
92
+ border-left: 1px solid #ddd;
93
+ border-right: 1px solid #ddd;
94
+ border-bottom: 1px solid #ddd;
95
+ -webkit-border-radius: 0px 0px 4px 4px;
96
+ -moz-border-radius: 0px 0px 4px 4px;
97
+ border-radius: 0px 0px 4px 4px;
98
+
99
+ }
100
+ /* Content */
101
+ .table th, .table td {
102
+ padding: 8px 12px;
103
+ }
104
+
105
+ /* Footer */
106
+
107
+ #footer{
108
+ padding: 20px 0px;
109
+ background: #f3f3f3;
110
+ text-align: center
111
+ }
112
+ .twitter-share-button{
113
+ top: 4px;
114
+ position: relative;
115
+ }
116
+
117
+ /* Demo Slides */
118
+
119
+ #owl-example .item{
120
+ padding: 30px 0px;
121
+ margin: 10px;
122
+ color: #FFF;
123
+ -webkit-border-radius: 3px;
124
+ -moz-border-radius: 3px;
125
+ border-radius: 3px;
126
+ text-align: center;
127
+ }
128
+ #owl-example .item img{
129
+ width: auto;
130
+ margin: 0 auto;
131
+ display: block;
132
+ }
133
+ #owl-example .item h3{
134
+ font-size: 28px;
135
+ font-weight: 300;
136
+ margin: 25px 0 0;
137
+ }
138
+ #owl-example .item h4{
139
+ margin: 5px 0 0;
140
+ font-size: 18px;
141
+ }
142
+ .item h1{
143
+ margin: inherit;
144
+ }
145
+
146
+ .orange{
147
+ background: #ff8a3c;
148
+ }
149
+ .darkCyan{
150
+ background: #42bdc2;
151
+ }
152
+ .forestGreen{
153
+ background: #7fc242;
154
+ }
155
+ .yellow {
156
+ background: #ffd800;
157
+ }
158
+ .dodgerBlue {
159
+ background: #388bd1;
160
+ }
161
+ .skyBlue {
162
+ background: #a1def8;
163
+ }
164
+ .zombieGreen {
165
+ background: #3fbf79;
166
+ }
167
+ .violet {
168
+ background: #db6ac5;
169
+ }
170
+ .yellowLight {
171
+ background: #fee664;
172
+ }
173
+ .steelGray {
174
+ background: #cad3d0;
175
+ }
176
+
177
+ /* More Demo Box */
178
+
179
+ #example-info h1,
180
+ #more h1{
181
+ margin-top: 40px;
182
+ }
183
+ .demos-row{
184
+ margin-top: 30px;
185
+ margin-bottom: 30px;
186
+ }
187
+ .demo-page{
188
+ margin-top: 0px;
189
+ margin-bottom: 100px;
190
+ }
191
+ .demo-box{
192
+ display: block;
193
+ background: #f3f3f3;
194
+ text-align: center;
195
+ font-size: 18px;
196
+ -webkit-border-radius: 3px;
197
+ -moz-border-radius: 3px;
198
+ border-radius: 3px;
199
+ }
200
+ .demo-box h3{
201
+ padding-bottom:20px;
202
+ margin: 0px;
203
+ color: #869690;
204
+ }
205
+ .demo-box:hover{
206
+ text-decoration: none;
207
+ }
208
+ .demo-wrapper{
209
+ padding: 30px 0px 20px 0px;
210
+ padding-left: 30px;
211
+ padding-right: 30px;
212
+ }
213
+ .demo-slide {
214
+ float: left;
215
+ }
216
+ .demo-slide .bg{
217
+ background: #aebab6;
218
+ margin-right: 1px;
219
+ height: 100%;
220
+ }
221
+ .demo-box:hover .demo-slide .bg{
222
+ background: #7fc242;
223
+ }
224
+ /* Images */
225
+ .demo-images .demo-slide{
226
+ height: 40px;
227
+ width: 33.3333333%;
228
+ }
229
+
230
+ /* Full */
231
+ .demo-full {
232
+ padding-left: 0px;
233
+ padding-right: 0px;
234
+ }
235
+ .demo-full .demo-slide{
236
+ height: 40px;
237
+ width: 25%;
238
+ }
239
+
240
+ /* Custom */
241
+ .demo-custom .demo-slide{
242
+ height: 40px;
243
+ width: 10%;
244
+ }
245
+ /* One */
246
+ .demo-one .demo-slide{
247
+ height: 40px;
248
+ width: 100%;
249
+ }
250
+
251
+ /* json */
252
+
253
+ .demo-Json .demo-slide {
254
+ height: 40px;
255
+ width: 20%;
256
+ }
257
+ .demo-Json-custom .demo-slide{
258
+ height: 40px;
259
+ width: 33.3333333%;
260
+ }
261
+ /* loading icon */
262
+
263
+ .demo-lazy .demo-slide{
264
+ height: 40px;
265
+ width: 33.3333333%;
266
+ }
267
+ .demo-lazy .demo-slide .bg{
268
+ background: url('../img/AjaxLoader.gif') no-repeat center center #aebab6;
269
+ }
270
+
271
+ /* Auto Height */
272
+ .demo-height .demo-slide{
273
+ height: 40px;
274
+ width: 100%;
275
+ }
276
+
277
+ /* Changelog */
278
+ #changelog{
279
+ margin-bottom: 40px;
280
+ }
281
+ #changelog .label{
282
+ margin-bottom:10px;
283
+ }
284
+ #changelog .log{
285
+ margin-bottom: 30px;
286
+ padding-bottom: 30px;
287
+ border-bottom: 1px solid #e1e6dd;
288
+ }
289
+ /* Faq */
290
+ #faq dt {
291
+ line-height: 26px;
292
+ }
293
+ #faq dd{
294
+ line-height: 22px;
295
+ margin-bottom: 20px;
296
+ }
297
+
298
+
299
+
300
+ /* Responsive Stuff */
301
+
302
+
303
+ @media (max-width: 979px) {
304
+ .navbar-fixed-top .navbar-inner, .navbar-fixed-bottom .navbar-inner {
305
+ padding: 0px;
306
+ }
307
+ .navbar-fixed-top, .navbar-fixed-bottom {
308
+ position: fixed;
309
+ }
310
+ }
311
+ @media (max-width: 768px) {
312
+ .navbar.navbar-fixed-top{
313
+ position: static;
314
+ }
315
+ .btn.btn-navbar{
316
+ margin: 9px 20px 9px 8px;
317
+ padding: 10px 10px;
318
+ }
319
+ .nav-collapse .nav > li{
320
+ border-top: 1px solid #e1e6dd;
321
+ text-align: center
322
+ }
323
+ #header .logo{
324
+ margin-top:40px;
325
+ margin: 20px auto 0px;
326
+ float: none;
327
+ height: 150px;
328
+ }
329
+ #header {
330
+ text-align: center;
331
+ padding: 60px 0px 30px;
332
+ }
333
+ #header h1{
334
+ margin: 10px 0;
335
+ }
336
+ #header h3{
337
+ margin-bottom: 10px;
338
+ width: auto;
339
+ padding: 0px 20px;
340
+ }
341
+ h1 {
342
+ font-size: 38px;
343
+ margin: 20px 0;
344
+ }
345
+ h2 {
346
+ font-size: 24px;
347
+ }
348
+ h3 {
349
+ font-size: 20px;
350
+ }
351
+ h4 {
352
+ font-size: 16px;
353
+ }
354
+ h5 {
355
+ font-size: 13px;
356
+ }
357
+ h6 {
358
+ font-size: 12px;
359
+ }
360
+
361
+ }
362
+
363
+
364
+ @media (max-width: 480px) {
365
+ .navbar-fixed-top, .navbar-fixed-bottom {
366
+ position: static;
367
+ }
368
+ #header {
369
+ text-align: center;
370
+ padding: 20px 0px 20px;
371
+ }
372
+ #header .logo{
373
+ margin-top:0px;
374
+ }
375
+
376
+ }
377
+
378
+ /*
379
+ NO MORE TABLES!! ;)
380
+ */
381
+ @media (max-width: 767px) {
382
+
383
+ .hp-table table, .hp-table thead, .hp-table .hp-table tbody, .hp-table th, .hp-table td, .hp-table tr {
384
+ display: block;
385
+ }
386
+ .hp-table thead tr {
387
+ display: none;
388
+ }
389
+ .hp-table tr { border: 0px solid #ccc; margin-bottom: 10px; }
390
+
391
+ .hp-table td:before {
392
+ top: 6px;
393
+ left: 6px;
394
+ width: 45%;
395
+ padding-right: 10px;
396
+ white-space: nowrap;
397
+ }
398
+
399
+ .hp-table td:nth-of-type(2):before {
400
+ content: "Default:";
401
+ font-weight: bold;
402
+ }
403
+ .hp-table td:nth-of-type(3):before {
404
+ content: "Type:";
405
+ font-weight: bold;
406
+ }
407
+ .hp-table td:nth-of-type(4):before {
408
+ content: "Description:";
409
+ font-weight: bold;
410
+ }
411
+ }
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+
420
+
421
+
skin/frontend/base/default/css/conversionbug/owl/glyphicons-halflings-green.png ADDED
Binary file
skin/frontend/base/default/css/conversionbug/owl/glyphicons-halflings-green.png_ ADDED
Binary file
skin/frontend/base/default/css/conversionbug/owl/glyphicons-halflings.png ADDED
Binary file
skin/frontend/base/default/css/conversionbug/owl/grabbing.png ADDED
Binary file
skin/frontend/base/default/css/conversionbug/owl/owl.carousel.css ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Core Owl Carousel CSS File
3
+ * v1.3.3
4
+ */
5
+ /* clearfix */
6
+
7
+ .owl-carousel .owl-wrapper:after {
8
+ content: ".";
9
+ display: block;
10
+ clear: both;
11
+ visibility: hidden;
12
+ line-height: 0;
13
+ height: 0;
14
+ }
15
+ /* display none until init */
16
+
17
+ .owl-carousel {
18
+ display: none;
19
+ position: relative;
20
+ width: 100%;
21
+ background: #fff;
22
+ -ms-touch-action: pan-y;
23
+ }
24
+
25
+ .owl-carousel .owl-wrapper {
26
+ display: none;
27
+ position: relative;
28
+ -webkit-transform: translate3d(0px, 0px, 0px);
29
+ }
30
+
31
+ .owl-carousel .owl-wrapper-outer {
32
+ overflow: hidden;
33
+ position: relative;
34
+ width: 100%;
35
+ }
36
+
37
+ .owl-carousel .owl-wrapper-outer.autoHeight {
38
+ -webkit-transition: height 500ms ease-in-out;
39
+ -moz-transition: height 500ms ease-in-out;
40
+ -ms-transition: height 500ms ease-in-out;
41
+ -o-transition: height 500ms ease-in-out;
42
+ transition: height 500ms ease-in-out;
43
+ }
44
+
45
+ .owl-carousel .owl-item {
46
+ float: left;
47
+ }
48
+
49
+ .owl-carousel .owl-item:hover h6 {
50
+ color: #E40023;
51
+ opacity: 0.8;
52
+ }
53
+
54
+ .owl-item h6 {
55
+ padding: 0px;
56
+ color: black;
57
+ text-decoration: none;
58
+ /* padding-bottom: 10px; */
59
+ word-spacing: 2px;
60
+ font-size: 12px;
61
+ /* height: 50px; */
62
+ font-weight: 600;
63
+ font-family: 'Raleway', sans-serif;
64
+ }
65
+
66
+ .owl-controls .owl-page,
67
+ .owl-controls .owl-buttons div {
68
+ cursor: pointer;
69
+ }
70
+
71
+ .owl-controls {
72
+ -webkit-user-select: none;
73
+ -khtml-user-select: none;
74
+ -moz-user-select: none;
75
+ -ms-user-select: none;
76
+ user-select: none;
77
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
78
+ }
79
+ /* mouse grab icon */
80
+
81
+ .grabbing {
82
+ cursor: url(grabbing.png) 8 8, move;
83
+ }
84
+ /* fix */
85
+
86
+ .owl-carousel .owl-wrapper,
87
+ .owl-carousel .owl-item {
88
+ -webkit-backface-visibility: hidden;
89
+ -moz-backface-visibility: hidden;
90
+ -ms-backface-visibility: hidden;
91
+ -webkit-transform: translate3d(0, 0, 0);
92
+ -moz-transform: translate3d(0, 0, 0);
93
+ -ms-transform: translate3d(0, 0, 0);
94
+ }
95
+
96
+ //html css
skin/frontend/base/default/css/conversionbug/owl/owl.carousel.js ADDED
@@ -0,0 +1,1512 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery OwlCarousel v1.3.3
3
+ *
4
+ * Copyright (c) 2013 Bartosz Wojciechowski
5
+ * http://www.owlgraphic.com/owlcarousel/
6
+ *
7
+ * Licensed under MIT
8
+ *
9
+ */
10
+
11
+ /*JS Lint helpers: */
12
+ /*global dragMove: false, dragEnd: false, $, jQuery, alert, window, document */
13
+ /*jslint nomen: true, continue:true */
14
+
15
+ if (typeof Object.create !== "function") {
16
+ Object.create = function (obj) {
17
+ function F() {}
18
+ F.prototype = obj;
19
+ return new F();
20
+ };
21
+ }
22
+ (function ($, window, document) {
23
+
24
+ var Carousel = {
25
+ init : function (options, el) {
26
+ var base = this;
27
+
28
+ base.$elem = $(el);
29
+ base.options = $.extend({}, $.fn.owlCarousel.options, base.$elem.data(), options);
30
+
31
+ base.userOptions = options;
32
+ base.loadContent();
33
+ },
34
+
35
+ loadContent : function () {
36
+ var base = this, url;
37
+
38
+ function getData(data) {
39
+ var i, content = "";
40
+ if (typeof base.options.jsonSuccess === "function") {
41
+ base.options.jsonSuccess.apply(this, [data]);
42
+ } else {
43
+ for (i in data.owl) {
44
+ if (data.owl.hasOwnProperty(i)) {
45
+ content += data.owl[i].item;
46
+ }
47
+ }
48
+ base.$elem.html(content);
49
+ }
50
+ base.logIn();
51
+ }
52
+
53
+ if (typeof base.options.beforeInit === "function") {
54
+ base.options.beforeInit.apply(this, [base.$elem]);
55
+ }
56
+
57
+ if (typeof base.options.jsonPath === "string") {
58
+ url = base.options.jsonPath;
59
+ $.getJSON(url, getData);
60
+ } else {
61
+ base.logIn();
62
+ }
63
+ },
64
+
65
+ logIn : function () {
66
+ var base = this;
67
+
68
+ base.$elem.data("owl-originalStyles", base.$elem.attr("style"));
69
+ base.$elem.data("owl-originalClasses", base.$elem.attr("class"));
70
+
71
+ base.$elem.css({opacity: 0});
72
+ base.orignalItems = base.options.items;
73
+ base.checkBrowser();
74
+ base.wrapperWidth = 0;
75
+ base.checkVisible = null;
76
+ base.setVars();
77
+ },
78
+
79
+ setVars : function () {
80
+ var base = this;
81
+ if (base.$elem.children().length === 0) {return false; }
82
+ base.baseClass();
83
+ base.eventTypes();
84
+ base.$userItems = base.$elem.children();
85
+ base.itemsAmount = base.$userItems.length;
86
+ base.wrapItems();
87
+ base.$owlItems = base.$elem.find(".owl-item");
88
+ base.$owlWrapper = base.$elem.find(".owl-wrapper");
89
+ base.playDirection = "next";
90
+ base.prevItem = 0;
91
+ base.prevArr = [0];
92
+ base.currentItem = 0;
93
+ base.customEvents();
94
+ base.onStartup();
95
+ },
96
+
97
+ onStartup : function () {
98
+ var base = this;
99
+ base.updateItems();
100
+ base.calculateAll();
101
+ base.buildControls();
102
+ base.updateControls();
103
+ base.response();
104
+ base.moveEvents();
105
+ base.stopOnHover();
106
+ base.owlStatus();
107
+
108
+ if (base.options.transitionStyle !== false) {
109
+ base.transitionTypes(base.options.transitionStyle);
110
+ }
111
+ if (base.options.autoPlay === true) {
112
+ base.options.autoPlay = 5000;
113
+ }
114
+ base.play();
115
+
116
+ base.$elem.find(".owl-wrapper").css("display", "block");
117
+
118
+ if (!base.$elem.is(":visible")) {
119
+ base.watchVisibility();
120
+ } else {
121
+ base.$elem.css("opacity", 1);
122
+ }
123
+ base.onstartup = false;
124
+ base.eachMoveUpdate();
125
+ if (typeof base.options.afterInit === "function") {
126
+ base.options.afterInit.apply(this, [base.$elem]);
127
+ }
128
+ },
129
+
130
+ eachMoveUpdate : function () {
131
+ var base = this;
132
+
133
+ if (base.options.lazyLoad === true) {
134
+ base.lazyLoad();
135
+ }
136
+ if (base.options.autoHeight === true) {
137
+ base.autoHeight();
138
+ }
139
+ base.onVisibleItems();
140
+
141
+ if (typeof base.options.afterAction === "function") {
142
+ base.options.afterAction.apply(this, [base.$elem]);
143
+ }
144
+ },
145
+
146
+ updateVars : function () {
147
+ var base = this;
148
+ if (typeof base.options.beforeUpdate === "function") {
149
+ base.options.beforeUpdate.apply(this, [base.$elem]);
150
+ }
151
+ base.watchVisibility();
152
+ base.updateItems();
153
+ base.calculateAll();
154
+ base.updatePosition();
155
+ base.updateControls();
156
+ base.eachMoveUpdate();
157
+ if (typeof base.options.afterUpdate === "function") {
158
+ base.options.afterUpdate.apply(this, [base.$elem]);
159
+ }
160
+ },
161
+
162
+ reload : function () {
163
+ var base = this;
164
+ window.setTimeout(function () {
165
+ base.updateVars();
166
+ }, 0);
167
+ },
168
+
169
+ watchVisibility : function () {
170
+ var base = this;
171
+
172
+ if (base.$elem.is(":visible") === false) {
173
+ base.$elem.css({opacity: 0});
174
+ window.clearInterval(base.autoPlayInterval);
175
+ window.clearInterval(base.checkVisible);
176
+ } else {
177
+ return false;
178
+ }
179
+ base.checkVisible = window.setInterval(function () {
180
+ if (base.$elem.is(":visible")) {
181
+ base.reload();
182
+ base.$elem.animate({opacity: 1}, 200);
183
+ window.clearInterval(base.checkVisible);
184
+ }
185
+ }, 500);
186
+ },
187
+
188
+ wrapItems : function () {
189
+ var base = this;
190
+ base.$userItems.wrapAll("<div class=\"owl-wrapper\">").wrap("<div class=\"owl-item\"></div>");
191
+ base.$elem.find(".owl-wrapper").wrap("<div class=\"owl-wrapper-outer\">");
192
+ base.wrapperOuter = base.$elem.find(".owl-wrapper-outer");
193
+ base.$elem.css("display", "block");
194
+ },
195
+
196
+ baseClass : function () {
197
+ var base = this,
198
+ hasBaseClass = base.$elem.hasClass(base.options.baseClass),
199
+ hasThemeClass = base.$elem.hasClass(base.options.theme);
200
+
201
+ if (!hasBaseClass) {
202
+ base.$elem.addClass(base.options.baseClass);
203
+ }
204
+
205
+ if (!hasThemeClass) {
206
+ base.$elem.addClass(base.options.theme);
207
+ }
208
+ },
209
+
210
+ updateItems : function () {
211
+ var base = this, width, i;
212
+
213
+ if (base.options.responsive === false) {
214
+ return false;
215
+ }
216
+ if (base.options.singleItem === true) {
217
+ base.options.items = base.orignalItems = 1;
218
+ base.options.itemsCustom = false;
219
+ base.options.itemsDesktop = false;
220
+ base.options.itemsDesktopSmall = false;
221
+ base.options.itemsTablet = false;
222
+ base.options.itemsTabletSmall = false;
223
+ base.options.itemsMobile = false;
224
+ return false;
225
+ }
226
+
227
+ width = $(base.options.responsiveBaseWidth).width();
228
+
229
+ if (width > (base.options.itemsDesktop[0] || base.orignalItems)) {
230
+ base.options.items = base.orignalItems;
231
+ }
232
+ if (base.options.itemsCustom !== false) {
233
+ //Reorder array by screen size
234
+ base.options.itemsCustom.sort(function (a, b) {return a[0] - b[0]; });
235
+
236
+ for (i = 0; i < base.options.itemsCustom.length; i += 1) {
237
+ if (base.options.itemsCustom[i][0] <= width) {
238
+ base.options.items = base.options.itemsCustom[i][1];
239
+ }
240
+ }
241
+
242
+ } else {
243
+
244
+ if (width <= base.options.itemsDesktop[0] && base.options.itemsDesktop !== false) {
245
+ base.options.items = base.options.itemsDesktop[1];
246
+ }
247
+
248
+ if (width <= base.options.itemsDesktopSmall[0] && base.options.itemsDesktopSmall !== false) {
249
+ base.options.items = base.options.itemsDesktopSmall[1];
250
+ }
251
+
252
+ if (width <= base.options.itemsTablet[0] && base.options.itemsTablet !== false) {
253
+ base.options.items = base.options.itemsTablet[1];
254
+ }
255
+
256
+ if (width <= base.options.itemsTabletSmall[0] && base.options.itemsTabletSmall !== false) {
257
+ base.options.items = base.options.itemsTabletSmall[1];
258
+ }
259
+
260
+ if (width <= base.options.itemsMobile[0] && base.options.itemsMobile !== false) {
261
+ base.options.items = base.options.itemsMobile[1];
262
+ }
263
+ }
264
+
265
+ //if number of items is less than declared
266
+ if (base.options.items > base.itemsAmount && base.options.itemsScaleUp === true) {
267
+ base.options.items = base.itemsAmount;
268
+ }
269
+ },
270
+
271
+ response : function () {
272
+ var base = this,
273
+ smallDelay,
274
+ lastWindowWidth;
275
+
276
+ if (base.options.responsive !== true) {
277
+ return false;
278
+ }
279
+ lastWindowWidth = $(window).width();
280
+
281
+ base.resizer = function () {
282
+ if ($(window).width() !== lastWindowWidth) {
283
+ if (base.options.autoPlay !== false) {
284
+ window.clearInterval(base.autoPlayInterval);
285
+ }
286
+ window.clearTimeout(smallDelay);
287
+ smallDelay = window.setTimeout(function () {
288
+ lastWindowWidth = $(window).width();
289
+ base.updateVars();
290
+ }, base.options.responsiveRefreshRate);
291
+ }
292
+ };
293
+ $(window).resize(base.resizer);
294
+ },
295
+
296
+ updatePosition : function () {
297
+ var base = this;
298
+ base.jumpTo(base.currentItem);
299
+ if (base.options.autoPlay !== false) {
300
+ base.checkAp();
301
+ }
302
+ },
303
+
304
+ appendItemsSizes : function () {
305
+ var base = this,
306
+ roundPages = 0,
307
+ lastItem = base.itemsAmount - base.options.items;
308
+
309
+ base.$owlItems.each(function (index) {
310
+ var $this = $(this);
311
+ $this
312
+ .css({"width": base.itemWidth})
313
+ .data("owl-item", Number(index));
314
+
315
+ if (index % base.options.items === 0 || index === lastItem) {
316
+ if (!(index > lastItem)) {
317
+ roundPages += 1;
318
+ }
319
+ }
320
+ $this.data("owl-roundPages", roundPages);
321
+ });
322
+ },
323
+
324
+ appendWrapperSizes : function () {
325
+ var base = this,
326
+ width = base.$owlItems.length * base.itemWidth;
327
+
328
+ base.$owlWrapper.css({
329
+ "width": width * 2,
330
+ "left": 0
331
+ });
332
+ base.appendItemsSizes();
333
+ },
334
+
335
+ calculateAll : function () {
336
+ var base = this;
337
+ base.calculateWidth();
338
+ base.appendWrapperSizes();
339
+ base.loops();
340
+ base.max();
341
+ },
342
+
343
+ calculateWidth : function () {
344
+ var base = this;
345
+ base.itemWidth = Math.round(base.$elem.width() / base.options.items);
346
+ },
347
+
348
+ max : function () {
349
+ var base = this,
350
+ maximum = ((base.itemsAmount * base.itemWidth) - base.options.items * base.itemWidth) * -1;
351
+ if (base.options.items > base.itemsAmount) {
352
+ base.maximumItem = 0;
353
+ maximum = 0;
354
+ base.maximumPixels = 0;
355
+ } else {
356
+ base.maximumItem = base.itemsAmount - base.options.items;
357
+ base.maximumPixels = maximum;
358
+ }
359
+ return maximum;
360
+ },
361
+
362
+ min : function () {
363
+ return 0;
364
+ },
365
+
366
+ loops : function () {
367
+ var base = this,
368
+ prev = 0,
369
+ elWidth = 0,
370
+ i,
371
+ item,
372
+ roundPageNum;
373
+
374
+ base.positionsInArray = [0];
375
+ base.pagesInArray = [];
376
+
377
+ for (i = 0; i < base.itemsAmount; i += 1) {
378
+ elWidth += base.itemWidth;
379
+ base.positionsInArray.push(-elWidth);
380
+
381
+ if (base.options.scrollPerPage === true) {
382
+ item = $(base.$owlItems[i]);
383
+ roundPageNum = item.data("owl-roundPages");
384
+ if (roundPageNum !== prev) {
385
+ base.pagesInArray[prev] = base.positionsInArray[i];
386
+ prev = roundPageNum;
387
+ }
388
+ }
389
+ }
390
+ },
391
+
392
+ buildControls : function () {
393
+ var base = this;
394
+ if (base.options.navigation === true || base.options.pagination === true) {
395
+ base.owlControls = $("<div class=\"owl-controls\"/>").toggleClass("clickable", !base.browser.isTouch).appendTo(base.$elem);
396
+ }
397
+ if (base.options.pagination === true) {
398
+ base.buildPagination();
399
+ }
400
+ if (base.options.navigation === true) {
401
+ base.buildButtons();
402
+ }
403
+ },
404
+
405
+ buildButtons : function () {
406
+ var base = this,
407
+ buttonsWrapper = $("<div class=\"owl-buttons\"/>");
408
+ base.owlControls.append(buttonsWrapper);
409
+
410
+ base.buttonPrev = $("<div/>", {
411
+ "class" : "owl-prev",
412
+ "html" : base.options.navigationText[0] || ""
413
+ });
414
+
415
+ base.buttonNext = $("<div/>", {
416
+ "class" : "owl-next",
417
+ "html" : base.options.navigationText[1] || ""
418
+ });
419
+
420
+ buttonsWrapper
421
+ .append(base.buttonPrev)
422
+ .append(base.buttonNext);
423
+
424
+ buttonsWrapper.on("touchstart.owlControls mousedown.owlControls", "div[class^=\"owl\"]", function (event) {
425
+ event.preventDefault();
426
+ });
427
+
428
+ buttonsWrapper.on("touchend.owlControls mouseup.owlControls", "div[class^=\"owl\"]", function (event) {
429
+ event.preventDefault();
430
+ if ($(this).hasClass("owl-next")) {
431
+ base.next();
432
+ } else {
433
+ base.prev();
434
+ }
435
+ });
436
+ },
437
+
438
+ buildPagination : function () {
439
+ var base = this;
440
+
441
+ base.paginationWrapper = $("<div class=\"owl-pagination\"/>");
442
+ base.owlControls.append(base.paginationWrapper);
443
+
444
+ base.paginationWrapper.on("touchend.owlControls mouseup.owlControls", ".owl-page", function (event) {
445
+ event.preventDefault();
446
+ if (Number($(this).data("owl-page")) !== base.currentItem) {
447
+ base.goTo(Number($(this).data("owl-page")), true);
448
+ }
449
+ });
450
+ },
451
+
452
+ updatePagination : function () {
453
+ var base = this,
454
+ counter,
455
+ lastPage,
456
+ lastItem,
457
+ i,
458
+ paginationButton,
459
+ paginationButtonInner;
460
+
461
+ if (base.options.pagination === false) {
462
+ return false;
463
+ }
464
+
465
+ base.paginationWrapper.html("");
466
+
467
+ counter = 0;
468
+ lastPage = base.itemsAmount - base.itemsAmount % base.options.items;
469
+
470
+ for (i = 0; i < base.itemsAmount; i += 1) {
471
+ if (i % base.options.items === 0) {
472
+ counter += 1;
473
+ if (lastPage === i) {
474
+ lastItem = base.itemsAmount - base.options.items;
475
+ }
476
+ paginationButton = $("<div/>", {
477
+ "class" : "owl-page"
478
+ });
479
+ paginationButtonInner = $("<span></span>", {
480
+ "text": base.options.paginationNumbers === true ? counter : "",
481
+ "class": base.options.paginationNumbers === true ? "owl-numbers" : ""
482
+ });
483
+ paginationButton.append(paginationButtonInner);
484
+
485
+ paginationButton.data("owl-page", lastPage === i ? lastItem : i);
486
+ paginationButton.data("owl-roundPages", counter);
487
+
488
+ base.paginationWrapper.append(paginationButton);
489
+ }
490
+ }
491
+ base.checkPagination();
492
+ },
493
+ checkPagination : function () {
494
+ var base = this;
495
+ if (base.options.pagination === false) {
496
+ return false;
497
+ }
498
+ base.paginationWrapper.find(".owl-page").each(function () {
499
+ if ($(this).data("owl-roundPages") === $(base.$owlItems[base.currentItem]).data("owl-roundPages")) {
500
+ base.paginationWrapper
501
+ .find(".owl-page")
502
+ .removeClass("active");
503
+ $(this).addClass("active");
504
+ }
505
+ });
506
+ },
507
+
508
+ checkNavigation : function () {
509
+ var base = this;
510
+
511
+ if (base.options.navigation === false) {
512
+ return false;
513
+ }
514
+ if (base.options.rewindNav === false) {
515
+ if (base.currentItem === 0 && base.maximumItem === 0) {
516
+ base.buttonPrev.addClass("disabled");
517
+ base.buttonNext.addClass("disabled");
518
+ } else if (base.currentItem === 0 && base.maximumItem !== 0) {
519
+ base.buttonPrev.addClass("disabled");
520
+ base.buttonNext.removeClass("disabled");
521
+ } else if (base.currentItem === base.maximumItem) {
522
+ base.buttonPrev.removeClass("disabled");
523
+ base.buttonNext.addClass("disabled");
524
+ } else if (base.currentItem !== 0 && base.currentItem !== base.maximumItem) {
525
+ base.buttonPrev.removeClass("disabled");
526
+ base.buttonNext.removeClass("disabled");
527
+ }
528
+ }
529
+ },
530
+
531
+ updateControls : function () {
532
+ var base = this;
533
+ base.updatePagination();
534
+ base.checkNavigation();
535
+ if (base.owlControls) {
536
+ if (base.options.items >= base.itemsAmount) {
537
+ base.owlControls.hide();
538
+ } else {
539
+ base.owlControls.show();
540
+ }
541
+ }
542
+ },
543
+
544
+ destroyControls : function () {
545
+ var base = this;
546
+ if (base.owlControls) {
547
+ base.owlControls.remove();
548
+ }
549
+ },
550
+
551
+ next : function (speed) {
552
+ var base = this;
553
+
554
+ if (base.isTransition) {
555
+ return false;
556
+ }
557
+
558
+ base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1;
559
+ if (base.currentItem > base.maximumItem + (base.options.scrollPerPage === true ? (base.options.items - 1) : 0)) {
560
+ if (base.options.rewindNav === true) {
561
+ base.currentItem = 0;
562
+ speed = "rewind";
563
+ } else {
564
+ base.currentItem = base.maximumItem;
565
+ return false;
566
+ }
567
+ }
568
+ base.goTo(base.currentItem, speed);
569
+ },
570
+
571
+ prev : function (speed) {
572
+ var base = this;
573
+
574
+ if (base.isTransition) {
575
+ return false;
576
+ }
577
+
578
+ if (base.options.scrollPerPage === true && base.currentItem > 0 && base.currentItem < base.options.items) {
579
+ base.currentItem = 0;
580
+ } else {
581
+ base.currentItem -= base.options.scrollPerPage === true ? base.options.items : 1;
582
+ }
583
+ if (base.currentItem < 0) {
584
+ if (base.options.rewindNav === true) {
585
+ base.currentItem = base.maximumItem;
586
+ speed = "rewind";
587
+ } else {
588
+ base.currentItem = 0;
589
+ return false;
590
+ }
591
+ }
592
+ base.goTo(base.currentItem, speed);
593
+ },
594
+
595
+ goTo : function (position, speed, drag) {
596
+ var base = this,
597
+ goToPixel;
598
+
599
+ if (base.isTransition) {
600
+ return false;
601
+ }
602
+ if (typeof base.options.beforeMove === "function") {
603
+ base.options.beforeMove.apply(this, [base.$elem]);
604
+ }
605
+ if (position >= base.maximumItem) {
606
+ position = base.maximumItem;
607
+ } else if (position <= 0) {
608
+ position = 0;
609
+ }
610
+
611
+ base.currentItem = base.owl.currentItem = position;
612
+ if (base.options.transitionStyle !== false && drag !== "drag" && base.options.items === 1 && base.browser.support3d === true) {
613
+ base.swapSpeed(0);
614
+ if (base.browser.support3d === true) {
615
+ base.transition3d(base.positionsInArray[position]);
616
+ } else {
617
+ base.css2slide(base.positionsInArray[position], 1);
618
+ }
619
+ base.afterGo();
620
+ base.singleItemTransition();
621
+ return false;
622
+ }
623
+ goToPixel = base.positionsInArray[position];
624
+
625
+ if (base.browser.support3d === true) {
626
+ base.isCss3Finish = false;
627
+
628
+ if (speed === true) {
629
+ base.swapSpeed("paginationSpeed");
630
+ window.setTimeout(function () {
631
+ base.isCss3Finish = true;
632
+ }, base.options.paginationSpeed);
633
+
634
+ } else if (speed === "rewind") {
635
+ base.swapSpeed(base.options.rewindSpeed);
636
+ window.setTimeout(function () {
637
+ base.isCss3Finish = true;
638
+ }, base.options.rewindSpeed);
639
+
640
+ } else {
641
+ base.swapSpeed("slideSpeed");
642
+ window.setTimeout(function () {
643
+ base.isCss3Finish = true;
644
+ }, base.options.slideSpeed);
645
+ }
646
+ base.transition3d(goToPixel);
647
+ } else {
648
+ if (speed === true) {
649
+ base.css2slide(goToPixel, base.options.paginationSpeed);
650
+ } else if (speed === "rewind") {
651
+ base.css2slide(goToPixel, base.options.rewindSpeed);
652
+ } else {
653
+ base.css2slide(goToPixel, base.options.slideSpeed);
654
+ }
655
+ }
656
+ base.afterGo();
657
+ },
658
+
659
+ jumpTo : function (position) {
660
+ var base = this;
661
+ if (typeof base.options.beforeMove === "function") {
662
+ base.options.beforeMove.apply(this, [base.$elem]);
663
+ }
664
+ if (position >= base.maximumItem || position === -1) {
665
+ position = base.maximumItem;
666
+ } else if (position <= 0) {
667
+ position = 0;
668
+ }
669
+ base.swapSpeed(0);
670
+ if (base.browser.support3d === true) {
671
+ base.transition3d(base.positionsInArray[position]);
672
+ } else {
673
+ base.css2slide(base.positionsInArray[position], 1);
674
+ }
675
+ base.currentItem = base.owl.currentItem = position;
676
+ base.afterGo();
677
+ },
678
+
679
+ afterGo : function () {
680
+ var base = this;
681
+
682
+ base.prevArr.push(base.currentItem);
683
+ base.prevItem = base.owl.prevItem = base.prevArr[base.prevArr.length - 2];
684
+ base.prevArr.shift(0);
685
+
686
+ if (base.prevItem !== base.currentItem) {
687
+ base.checkPagination();
688
+ base.checkNavigation();
689
+ base.eachMoveUpdate();
690
+
691
+ if (base.options.autoPlay !== false) {
692
+ base.checkAp();
693
+ }
694
+ }
695
+ if (typeof base.options.afterMove === "function" && base.prevItem !== base.currentItem) {
696
+ base.options.afterMove.apply(this, [base.$elem]);
697
+ }
698
+ },
699
+
700
+ stop : function () {
701
+ var base = this;
702
+ base.apStatus = "stop";
703
+ window.clearInterval(base.autoPlayInterval);
704
+ },
705
+
706
+ checkAp : function () {
707
+ var base = this;
708
+ if (base.apStatus !== "stop") {
709
+ base.play();
710
+ }
711
+ },
712
+
713
+ play : function () {
714
+ var base = this;
715
+ base.apStatus = "play";
716
+ if (base.options.autoPlay === false) {
717
+ return false;
718
+ }
719
+ window.clearInterval(base.autoPlayInterval);
720
+ base.autoPlayInterval = window.setInterval(function () {
721
+ base.next(true);
722
+ }, base.options.autoPlay);
723
+ },
724
+
725
+ swapSpeed : function (action) {
726
+ var base = this;
727
+ if (action === "slideSpeed") {
728
+ base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed));
729
+ } else if (action === "paginationSpeed") {
730
+ base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed));
731
+ } else if (typeof action !== "string") {
732
+ base.$owlWrapper.css(base.addCssSpeed(action));
733
+ }
734
+ },
735
+
736
+ addCssSpeed : function (speed) {
737
+ return {
738
+ "-webkit-transition": "all " + speed + "ms ease",
739
+ "-moz-transition": "all " + speed + "ms ease",
740
+ "-o-transition": "all " + speed + "ms ease",
741
+ "transition": "all " + speed + "ms ease"
742
+ };
743
+ },
744
+
745
+ removeTransition : function () {
746
+ return {
747
+ "-webkit-transition": "",
748
+ "-moz-transition": "",
749
+ "-o-transition": "",
750
+ "transition": ""
751
+ };
752
+ },
753
+
754
+ doTranslate : function (pixels) {
755
+ return {
756
+ "-webkit-transform": "translate3d(" + pixels + "px, 0px, 0px)",
757
+ "-moz-transform": "translate3d(" + pixels + "px, 0px, 0px)",
758
+ "-o-transform": "translate3d(" + pixels + "px, 0px, 0px)",
759
+ "-ms-transform": "translate3d(" + pixels + "px, 0px, 0px)",
760
+ "transform": "translate3d(" + pixels + "px, 0px,0px)"
761
+ };
762
+ },
763
+
764
+ transition3d : function (value) {
765
+ var base = this;
766
+ base.$owlWrapper.css(base.doTranslate(value));
767
+ },
768
+
769
+ css2move : function (value) {
770
+ var base = this;
771
+ base.$owlWrapper.css({"left" : value});
772
+ },
773
+
774
+ css2slide : function (value, speed) {
775
+ var base = this;
776
+
777
+ base.isCssFinish = false;
778
+ base.$owlWrapper.stop(true, true).animate({
779
+ "left" : value
780
+ }, {
781
+ duration : speed || base.options.slideSpeed,
782
+ complete : function () {
783
+ base.isCssFinish = true;
784
+ }
785
+ });
786
+ },
787
+
788
+ checkBrowser : function () {
789
+ var base = this,
790
+ translate3D = "translate3d(0px, 0px, 0px)",
791
+ tempElem = document.createElement("div"),
792
+ regex,
793
+ asSupport,
794
+ support3d,
795
+ isTouch;
796
+
797
+ tempElem.style.cssText = " -moz-transform:" + translate3D +
798
+ "; -ms-transform:" + translate3D +
799
+ "; -o-transform:" + translate3D +
800
+ "; -webkit-transform:" + translate3D +
801
+ "; transform:" + translate3D;
802
+ regex = /translate3d\(0px, 0px, 0px\)/g;
803
+ asSupport = tempElem.style.cssText.match(regex);
804
+ support3d = (asSupport !== null && asSupport.length === 1);
805
+
806
+ isTouch = "ontouchstart" in window || window.navigator.msMaxTouchPoints;
807
+
808
+ base.browser = {
809
+ "support3d" : support3d,
810
+ "isTouch" : isTouch
811
+ };
812
+ },
813
+
814
+ moveEvents : function () {
815
+ var base = this;
816
+ if (base.options.mouseDrag !== false || base.options.touchDrag !== false) {
817
+ base.gestures();
818
+ base.disabledEvents();
819
+ }
820
+ },
821
+
822
+ eventTypes : function () {
823
+ var base = this,
824
+ types = ["s", "e", "x"];
825
+
826
+ base.ev_types = {};
827
+
828
+ if (base.options.mouseDrag === true && base.options.touchDrag === true) {
829
+ types = [
830
+ "touchstart.owl mousedown.owl",
831
+ "touchmove.owl mousemove.owl",
832
+ "touchend.owl touchcancel.owl mouseup.owl"
833
+ ];
834
+ } else if (base.options.mouseDrag === false && base.options.touchDrag === true) {
835
+ types = [
836
+ "touchstart.owl",
837
+ "touchmove.owl",
838
+ "touchend.owl touchcancel.owl"
839
+ ];
840
+ } else if (base.options.mouseDrag === true && base.options.touchDrag === false) {
841
+ types = [
842
+ "mousedown.owl",
843
+ "mousemove.owl",
844
+ "mouseup.owl"
845
+ ];
846
+ }
847
+
848
+ base.ev_types.start = types[0];
849
+ base.ev_types.move = types[1];
850
+ base.ev_types.end = types[2];
851
+ },
852
+
853
+ disabledEvents : function () {
854
+ var base = this;
855
+ base.$elem.on("dragstart.owl", function (event) { event.preventDefault(); });
856
+ base.$elem.on("mousedown.disableTextSelect", function (e) {
857
+ return $(e.target).is('input, textarea, select, option');
858
+ });
859
+ },
860
+
861
+ gestures : function () {
862
+ /*jslint unparam: true*/
863
+ var base = this,
864
+ locals = {
865
+ offsetX : 0,
866
+ offsetY : 0,
867
+ baseElWidth : 0,
868
+ relativePos : 0,
869
+ position: null,
870
+ minSwipe : null,
871
+ maxSwipe: null,
872
+ sliding : null,
873
+ dargging: null,
874
+ targetElement : null
875
+ };
876
+
877
+ base.isCssFinish = true;
878
+
879
+ function getTouches(event) {
880
+ if (event.touches !== undefined) {
881
+ return {
882
+ x : event.touches[0].pageX,
883
+ y : event.touches[0].pageY
884
+ };
885
+ }
886
+
887
+ if (event.touches === undefined) {
888
+ if (event.pageX !== undefined) {
889
+ return {
890
+ x : event.pageX,
891
+ y : event.pageY
892
+ };
893
+ }
894
+ if (event.pageX === undefined) {
895
+ return {
896
+ x : event.clientX,
897
+ y : event.clientY
898
+ };
899
+ }
900
+ }
901
+ }
902
+
903
+ function swapEvents(type) {
904
+ if (type === "on") {
905
+ $(document).on(base.ev_types.move, dragMove);
906
+ $(document).on(base.ev_types.end, dragEnd);
907
+ } else if (type === "off") {
908
+ $(document).off(base.ev_types.move);
909
+ $(document).off(base.ev_types.end);
910
+ }
911
+ }
912
+
913
+ function dragStart(event) {
914
+ var ev = event.originalEvent || event || window.event,
915
+ position;
916
+
917
+ if (ev.which === 3) {
918
+ return false;
919
+ }
920
+ if (base.itemsAmount <= base.options.items) {
921
+ return;
922
+ }
923
+ if (base.isCssFinish === false && !base.options.dragBeforeAnimFinish) {
924
+ return false;
925
+ }
926
+ if (base.isCss3Finish === false && !base.options.dragBeforeAnimFinish) {
927
+ return false;
928
+ }
929
+
930
+ if (base.options.autoPlay !== false) {
931
+ window.clearInterval(base.autoPlayInterval);
932
+ }
933
+
934
+ if (base.browser.isTouch !== true && !base.$owlWrapper.hasClass("grabbing")) {
935
+ base.$owlWrapper.addClass("grabbing");
936
+ }
937
+
938
+ base.newPosX = 0;
939
+ base.newRelativeX = 0;
940
+
941
+ $(this).css(base.removeTransition());
942
+
943
+ position = $(this).position();
944
+ locals.relativePos = position.left;
945
+
946
+ locals.offsetX = getTouches(ev).x - position.left;
947
+ locals.offsetY = getTouches(ev).y - position.top;
948
+
949
+ swapEvents("on");
950
+
951
+ locals.sliding = false;
952
+ locals.targetElement = ev.target || ev.srcElement;
953
+ }
954
+
955
+ function dragMove(event) {
956
+ var ev = event.originalEvent || event || window.event,
957
+ minSwipe,
958
+ maxSwipe;
959
+
960
+ base.newPosX = getTouches(ev).x - locals.offsetX;
961
+ base.newPosY = getTouches(ev).y - locals.offsetY;
962
+ base.newRelativeX = base.newPosX - locals.relativePos;
963
+
964
+ if (typeof base.options.startDragging === "function" && locals.dragging !== true && base.newRelativeX !== 0) {
965
+ locals.dragging = true;
966
+ base.options.startDragging.apply(base, [base.$elem]);
967
+ }
968
+
969
+ if ((base.newRelativeX > 8 || base.newRelativeX < -8) && (base.browser.isTouch === true)) {
970
+ if (ev.preventDefault !== undefined) {
971
+ ev.preventDefault();
972
+ } else {
973
+ ev.returnValue = false;
974
+ }
975
+ locals.sliding = true;
976
+ }
977
+
978
+ if ((base.newPosY > 10 || base.newPosY < -10) && locals.sliding === false) {
979
+ $(document).off("touchmove.owl");
980
+ }
981
+
982
+ minSwipe = function () {
983
+ return base.newRelativeX / 5;
984
+ };
985
+
986
+ maxSwipe = function () {
987
+ return base.maximumPixels + base.newRelativeX / 5;
988
+ };
989
+
990
+ base.newPosX = Math.max(Math.min(base.newPosX, minSwipe()), maxSwipe());
991
+ if (base.browser.support3d === true) {
992
+ base.transition3d(base.newPosX);
993
+ } else {
994
+ base.css2move(base.newPosX);
995
+ }
996
+ }
997
+
998
+ function dragEnd(event) {
999
+ var ev = event.originalEvent || event || window.event,
1000
+ newPosition,
1001
+ handlers,
1002
+ owlStopEvent;
1003
+
1004
+ ev.target = ev.target || ev.srcElement;
1005
+
1006
+ locals.dragging = false;
1007
+
1008
+ if (base.browser.isTouch !== true) {
1009
+ base.$owlWrapper.removeClass("grabbing");
1010
+ }
1011
+
1012
+ if (base.newRelativeX < 0) {
1013
+ base.dragDirection = base.owl.dragDirection = "left";
1014
+ } else {
1015
+ base.dragDirection = base.owl.dragDirection = "right";
1016
+ }
1017
+
1018
+ if (base.newRelativeX !== 0) {
1019
+ newPosition = base.getNewPosition();
1020
+ base.goTo(newPosition, false, "drag");
1021
+ if (locals.targetElement === ev.target && base.browser.isTouch !== true) {
1022
+ $(ev.target).on("click.disable", function (ev) {
1023
+ ev.stopImmediatePropagation();
1024
+ ev.stopPropagation();
1025
+ ev.preventDefault();
1026
+ $(ev.target).off("click.disable");
1027
+ });
1028
+ handlers = $._data(ev.target, "events").click;
1029
+ owlStopEvent = handlers.pop();
1030
+ handlers.splice(0, 0, owlStopEvent);
1031
+ }
1032
+ }
1033
+ swapEvents("off");
1034
+ }
1035
+ base.$elem.on(base.ev_types.start, ".owl-wrapper", dragStart);
1036
+ },
1037
+
1038
+ getNewPosition : function () {
1039
+ var base = this,
1040
+ newPosition = base.closestItem();
1041
+
1042
+ if (newPosition > base.maximumItem) {
1043
+ base.currentItem = base.maximumItem;
1044
+ newPosition = base.maximumItem;
1045
+ } else if (base.newPosX >= 0) {
1046
+ newPosition = 0;
1047
+ base.currentItem = 0;
1048
+ }
1049
+ return newPosition;
1050
+ },
1051
+ closestItem : function () {
1052
+ var base = this,
1053
+ array = base.options.scrollPerPage === true ? base.pagesInArray : base.positionsInArray,
1054
+ goal = base.newPosX,
1055
+ closest = null;
1056
+
1057
+ $.each(array, function (i, v) {
1058
+ if (goal - (base.itemWidth / 20) > array[i + 1] && goal - (base.itemWidth / 20) < v && base.moveDirection() === "left") {
1059
+ closest = v;
1060
+ if (base.options.scrollPerPage === true) {
1061
+ base.currentItem = $.inArray(closest, base.positionsInArray);
1062
+ } else {
1063
+ base.currentItem = i;
1064
+ }
1065
+ } else if (goal + (base.itemWidth / 20) < v && goal + (base.itemWidth / 20) > (array[i + 1] || array[i] - base.itemWidth) && base.moveDirection() === "right") {
1066
+ if (base.options.scrollPerPage === true) {
1067
+ closest = array[i + 1] || array[array.length - 1];
1068
+ base.currentItem = $.inArray(closest, base.positionsInArray);
1069
+ } else {
1070
+ closest = array[i + 1];
1071
+ base.currentItem = i + 1;
1072
+ }
1073
+ }
1074
+ });
1075
+ return base.currentItem;
1076
+ },
1077
+
1078
+ moveDirection : function () {
1079
+ var base = this,
1080
+ direction;
1081
+ if (base.newRelativeX < 0) {
1082
+ direction = "right";
1083
+ base.playDirection = "next";
1084
+ } else {
1085
+ direction = "left";
1086
+ base.playDirection = "prev";
1087
+ }
1088
+ return direction;
1089
+ },
1090
+
1091
+ customEvents : function () {
1092
+ /*jslint unparam: true*/
1093
+ var base = this;
1094
+ base.$elem.on("owl.next", function () {
1095
+ base.next();
1096
+ });
1097
+ base.$elem.on("owl.prev", function () {
1098
+ base.prev();
1099
+ });
1100
+ base.$elem.on("owl.play", function (event, speed) {
1101
+ base.options.autoPlay = speed;
1102
+ base.play();
1103
+ base.hoverStatus = "play";
1104
+ });
1105
+ base.$elem.on("owl.stop", function () {
1106
+ base.stop();
1107
+ base.hoverStatus = "stop";
1108
+ });
1109
+ base.$elem.on("owl.goTo", function (event, item) {
1110
+ base.goTo(item);
1111
+ });
1112
+ base.$elem.on("owl.jumpTo", function (event, item) {
1113
+ base.jumpTo(item);
1114
+ });
1115
+ },
1116
+
1117
+ stopOnHover : function () {
1118
+ var base = this;
1119
+ if (base.options.stopOnHover === true && base.browser.isTouch !== true && base.options.autoPlay !== false) {
1120
+ base.$elem.on("mouseover", function () {
1121
+ base.stop();
1122
+ });
1123
+ base.$elem.on("mouseout", function () {
1124
+ if (base.hoverStatus !== "stop") {
1125
+ base.play();
1126
+ }
1127
+ });
1128
+ }
1129
+ },
1130
+
1131
+ lazyLoad : function () {
1132
+ var base = this,
1133
+ i,
1134
+ $item,
1135
+ itemNumber,
1136
+ $lazyImg,
1137
+ follow;
1138
+
1139
+ if (base.options.lazyLoad === false) {
1140
+ return false;
1141
+ }
1142
+ for (i = 0; i < base.itemsAmount; i += 1) {
1143
+ $item = $(base.$owlItems[i]);
1144
+
1145
+ if ($item.data("owl-loaded") === "loaded") {
1146
+ continue;
1147
+ }
1148
+
1149
+ itemNumber = $item.data("owl-item");
1150
+ $lazyImg = $item.find(".lazyOwl");
1151
+
1152
+ if (typeof $lazyImg.data("src") !== "string") {
1153
+ $item.data("owl-loaded", "loaded");
1154
+ continue;
1155
+ }
1156
+ if ($item.data("owl-loaded") === undefined) {
1157
+ $lazyImg.hide();
1158
+ $item.addClass("loading").data("owl-loaded", "checked");
1159
+ }
1160
+ if (base.options.lazyFollow === true) {
1161
+ follow = itemNumber >= base.currentItem;
1162
+ } else {
1163
+ follow = true;
1164
+ }
1165
+ if (follow && itemNumber < base.currentItem + base.options.items && $lazyImg.length) {
1166
+ base.lazyPreload($item, $lazyImg);
1167
+ }
1168
+ }
1169
+ },
1170
+
1171
+ lazyPreload : function ($item, $lazyImg) {
1172
+ var base = this,
1173
+ iterations = 0,
1174
+ isBackgroundImg;
1175
+
1176
+ if ($lazyImg.prop("tagName") === "DIV") {
1177
+ $lazyImg.css("background-image", "url(" + $lazyImg.data("src") + ")");
1178
+ isBackgroundImg = true;
1179
+ } else {
1180
+ $lazyImg[0].src = $lazyImg.data("src");
1181
+ }
1182
+
1183
+ function showImage() {
1184
+ $item.data("owl-loaded", "loaded").removeClass("loading");
1185
+ $lazyImg.removeAttr("data-src");
1186
+ if (base.options.lazyEffect === "fade") {
1187
+ $lazyImg.fadeIn(400);
1188
+ } else {
1189
+ $lazyImg.show();
1190
+ }
1191
+ if (typeof base.options.afterLazyLoad === "function") {
1192
+ base.options.afterLazyLoad.apply(this, [base.$elem]);
1193
+ }
1194
+ }
1195
+
1196
+ function checkLazyImage() {
1197
+ iterations += 1;
1198
+ if (base.completeImg($lazyImg.get(0)) || isBackgroundImg === true) {
1199
+ showImage();
1200
+ } else if (iterations <= 100) {//if image loads in less than 10 seconds
1201
+ window.setTimeout(checkLazyImage, 100);
1202
+ } else {
1203
+ showImage();
1204
+ }
1205
+ }
1206
+
1207
+ checkLazyImage();
1208
+ },
1209
+
1210
+ autoHeight : function () {
1211
+ var base = this,
1212
+ $currentimg = $(base.$owlItems[base.currentItem]).find("img"),
1213
+ iterations;
1214
+
1215
+ function addHeight() {
1216
+ var $currentItem = $(base.$owlItems[base.currentItem]).height();
1217
+ base.wrapperOuter.css("height", $currentItem + "px");
1218
+ if (!base.wrapperOuter.hasClass("autoHeight")) {
1219
+ window.setTimeout(function () {
1220
+ base.wrapperOuter.addClass("autoHeight");
1221
+ }, 0);
1222
+ }
1223
+ }
1224
+
1225
+ function checkImage() {
1226
+ iterations += 1;
1227
+ if (base.completeImg($currentimg.get(0))) {
1228
+ addHeight();
1229
+ } else if (iterations <= 100) { //if image loads in less than 10 seconds
1230
+ window.setTimeout(checkImage, 100);
1231
+ } else {
1232
+ base.wrapperOuter.css("height", ""); //Else remove height attribute
1233
+ }
1234
+ }
1235
+
1236
+ if ($currentimg.get(0) !== undefined) {
1237
+ iterations = 0;
1238
+ checkImage();
1239
+ } else {
1240
+ addHeight();
1241
+ }
1242
+ },
1243
+
1244
+ completeImg : function (img) {
1245
+ var naturalWidthType;
1246
+
1247
+ if (!img.complete) {
1248
+ return false;
1249
+ }
1250
+ naturalWidthType = typeof img.naturalWidth;
1251
+ if (naturalWidthType !== "undefined" && img.naturalWidth === 0) {
1252
+ return false;
1253
+ }
1254
+ return true;
1255
+ },
1256
+
1257
+ onVisibleItems : function () {
1258
+ var base = this,
1259
+ i;
1260
+
1261
+ if (base.options.addClassActive === true) {
1262
+ base.$owlItems.removeClass("active");
1263
+ }
1264
+ base.visibleItems = [];
1265
+ for (i = base.currentItem; i < base.currentItem + base.options.items; i += 1) {
1266
+ base.visibleItems.push(i);
1267
+
1268
+ if (base.options.addClassActive === true) {
1269
+ $(base.$owlItems[i]).addClass("active");
1270
+ }
1271
+ }
1272
+ base.owl.visibleItems = base.visibleItems;
1273
+ },
1274
+
1275
+ transitionTypes : function (className) {
1276
+ var base = this;
1277
+ //Currently available: "fade", "backSlide", "goDown", "fadeUp"
1278
+ base.outClass = "owl-" + className + "-out";
1279
+ base.inClass = "owl-" + className + "-in";
1280
+ },
1281
+
1282
+ singleItemTransition : function () {
1283
+ var base = this,
1284
+ outClass = base.outClass,
1285
+ inClass = base.inClass,
1286
+ $currentItem = base.$owlItems.eq(base.currentItem),
1287
+ $prevItem = base.$owlItems.eq(base.prevItem),
1288
+ prevPos = Math.abs(base.positionsInArray[base.currentItem]) + base.positionsInArray[base.prevItem],
1289
+ origin = Math.abs(base.positionsInArray[base.currentItem]) + base.itemWidth / 2,
1290
+ animEnd = 'webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend';
1291
+
1292
+ base.isTransition = true;
1293
+
1294
+ base.$owlWrapper
1295
+ .addClass('owl-origin')
1296
+ .css({
1297
+ "-webkit-transform-origin" : origin + "px",
1298
+ "-moz-perspective-origin" : origin + "px",
1299
+ "perspective-origin" : origin + "px"
1300
+ });
1301
+ function transStyles(prevPos) {
1302
+ return {
1303
+ "position" : "relative",
1304
+ "left" : prevPos + "px"
1305
+ };
1306
+ }
1307
+
1308
+ $prevItem
1309
+ .css(transStyles(prevPos, 10))
1310
+ .addClass(outClass)
1311
+ .on(animEnd, function () {
1312
+ base.endPrev = true;
1313
+ $prevItem.off(animEnd);
1314
+ base.clearTransStyle($prevItem, outClass);
1315
+ });
1316
+
1317
+ $currentItem
1318
+ .addClass(inClass)
1319
+ .on(animEnd, function () {
1320
+ base.endCurrent = true;
1321
+ $currentItem.off(animEnd);
1322
+ base.clearTransStyle($currentItem, inClass);
1323
+ });
1324
+ },
1325
+
1326
+ clearTransStyle : function (item, classToRemove) {
1327
+ var base = this;
1328
+ item.css({
1329
+ "position" : "",
1330
+ "left" : ""
1331
+ }).removeClass(classToRemove);
1332
+
1333
+ if (base.endPrev && base.endCurrent) {
1334
+ base.$owlWrapper.removeClass('owl-origin');
1335
+ base.endPrev = false;
1336
+ base.endCurrent = false;
1337
+ base.isTransition = false;
1338
+ }
1339
+ },
1340
+
1341
+ owlStatus : function () {
1342
+ var base = this;
1343
+ base.owl = {
1344
+ "userOptions" : base.userOptions,
1345
+ "baseElement" : base.$elem,
1346
+ "userItems" : base.$userItems,
1347
+ "owlItems" : base.$owlItems,
1348
+ "currentItem" : base.currentItem,
1349
+ "prevItem" : base.prevItem,
1350
+ "visibleItems" : base.visibleItems,
1351
+ "isTouch" : base.browser.isTouch,
1352
+ "browser" : base.browser,
1353
+ "dragDirection" : base.dragDirection
1354
+ };
1355
+ },
1356
+
1357
+ clearEvents : function () {
1358
+ var base = this;
1359
+ base.$elem.off(".owl owl mousedown.disableTextSelect");
1360
+ $(document).off(".owl owl");
1361
+ $(window).off("resize", base.resizer);
1362
+ },
1363
+
1364
+ unWrap : function () {
1365
+ var base = this;
1366
+ if (base.$elem.children().length !== 0) {
1367
+ base.$owlWrapper.unwrap();
1368
+ base.$userItems.unwrap().unwrap();
1369
+ if (base.owlControls) {
1370
+ base.owlControls.remove();
1371
+ }
1372
+ }
1373
+ base.clearEvents();
1374
+ base.$elem
1375
+ .attr("style", base.$elem.data("owl-originalStyles") || "")
1376
+ .attr("class", base.$elem.data("owl-originalClasses"));
1377
+ },
1378
+
1379
+ destroy : function () {
1380
+ var base = this;
1381
+ base.stop();
1382
+ window.clearInterval(base.checkVisible);
1383
+ base.unWrap();
1384
+ base.$elem.removeData();
1385
+ },
1386
+
1387
+ reinit : function (newOptions) {
1388
+ var base = this,
1389
+ options = $.extend({}, base.userOptions, newOptions);
1390
+ base.unWrap();
1391
+ base.init(options, base.$elem);
1392
+ },
1393
+
1394
+ addItem : function (htmlString, targetPosition) {
1395
+ var base = this,
1396
+ position;
1397
+
1398
+ if (!htmlString) {return false; }
1399
+
1400
+ if (base.$elem.children().length === 0) {
1401
+ base.$elem.append(htmlString);
1402
+ base.setVars();
1403
+ return false;
1404
+ }
1405
+ base.unWrap();
1406
+ if (targetPosition === undefined || targetPosition === -1) {
1407
+ position = -1;
1408
+ } else {
1409
+ position = targetPosition;
1410
+ }
1411
+ if (position >= base.$userItems.length || position === -1) {
1412
+ base.$userItems.eq(-1).after(htmlString);
1413
+ } else {
1414
+ base.$userItems.eq(position).before(htmlString);
1415
+ }
1416
+
1417
+ base.setVars();
1418
+ },
1419
+
1420
+ removeItem : function (targetPosition) {
1421
+ var base = this,
1422
+ position;
1423
+
1424
+ if (base.$elem.children().length === 0) {
1425
+ return false;
1426
+ }
1427
+ if (targetPosition === undefined || targetPosition === -1) {
1428
+ position = -1;
1429
+ } else {
1430
+ position = targetPosition;
1431
+ }
1432
+
1433
+ base.unWrap();
1434
+ base.$userItems.eq(position).remove();
1435
+ base.setVars();
1436
+ }
1437
+
1438
+ };
1439
+
1440
+ $.fn.owlCarousel = function (options) {
1441
+ return this.each(function () {
1442
+ if ($(this).data("owl-init") === true) {
1443
+ return false;
1444
+ }
1445
+ $(this).data("owl-init", true);
1446
+ var carousel = Object.create(Carousel);
1447
+ carousel.init(options, this);
1448
+ $.data(this, "owlCarousel", carousel);
1449
+ });
1450
+ };
1451
+
1452
+ $.fn.owlCarousel.options = {
1453
+
1454
+ items : 5,
1455
+ itemsCustom : false,
1456
+ itemsDesktop : [1199, 4],
1457
+ itemsDesktopSmall : [979, 3],
1458
+ itemsTablet : [768, 2],
1459
+ itemsTabletSmall : false,
1460
+ itemsMobile : [479, 1],
1461
+ singleItem : false,
1462
+ itemsScaleUp : false,
1463
+
1464
+ slideSpeed : 200,
1465
+ paginationSpeed : 800,
1466
+ rewindSpeed : 1000,
1467
+
1468
+ autoPlay : false,
1469
+ stopOnHover : false,
1470
+
1471
+ navigation : false,
1472
+ navigationText : ["prev", "next"],
1473
+ rewindNav : true,
1474
+ scrollPerPage : false,
1475
+
1476
+ pagination : true,
1477
+ paginationNumbers : false,
1478
+
1479
+ responsive : true,
1480
+ responsiveRefreshRate : 200,
1481
+ responsiveBaseWidth : window,
1482
+
1483
+ baseClass : "owl-carousel",
1484
+ theme : "owl-theme",
1485
+
1486
+ lazyLoad : false,
1487
+ lazyFollow : true,
1488
+ lazyEffect : "fade",
1489
+
1490
+ autoHeight : false,
1491
+
1492
+ jsonPath : false,
1493
+ jsonSuccess : false,
1494
+
1495
+ dragBeforeAnimFinish : true,
1496
+ mouseDrag : true,
1497
+ touchDrag : true,
1498
+
1499
+ addClassActive : false,
1500
+ transitionStyle : false,
1501
+
1502
+ beforeUpdate : false,
1503
+ afterUpdate : false,
1504
+ beforeInit : false,
1505
+ afterInit : false,
1506
+ beforeMove : false,
1507
+ afterMove : false,
1508
+ afterAction : false,
1509
+ startDragging : false,
1510
+ afterLazyLoad: false
1511
+ };
1512
+ }(jQuery, window, document));
skin/frontend/base/default/css/conversionbug/owl/owl.css ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #owl-demo .item
2
+ {
3
+ border-radius: 3px;
4
+ color: #FFF;
5
+ display: block;
6
+ margin: 5px;
7
+ moz-border-radius: 3px;
8
+ padding: 20px 0px;
9
+ text-align: center;
10
+ webkit-border-radius: 3px;
11
+ }
12
+ .owl-theme .owl-controls .owl-buttons div
13
+ {
14
+ padding: 5px 9px;
15
+ }
16
+ .owl-theme .owl-buttons i
17
+ {
18
+ margin-top: 2px;
19
+ }
20
+ //To move navigation buttons outside use these settings:
21
+ .owl-theme .owl-controls .owl-buttons div
22
+ {
23
+ position: absolute;
24
+ }
25
+ .owl-theme .owl-controls .owl-buttons .owl-prev
26
+ {
27
+ left: -3px;
28
+ top: 130px;
29
+ }
30
+ .owl-theme .owl-controls .owl-buttons .owl-next
31
+ {
32
+ right: -3px;
33
+ top: 130px;
34
+ }
35
+ #owl-demo .item img
36
+ {
37
+ height: 150px;
38
+ margin: auto;
39
+ margin-top: 6px;
40
+ width: 150px;
41
+ }
42
+ .owl-item h6:hover
43
+ {
44
+ color: red !important;
45
+ text-decoration: none;
46
+ }
47
+ .owl-item h6
48
+ {
49
+ color: black;
50
+ padding-bottom: 10px;
51
+ text-decoration: none;
52
+ }
53
+ .owl-item a:hover
54
+ {
55
+ color: red;
56
+ text-decoration: none;
57
+ }
58
+ .owl-item .item .product-info {
59
+ min-height: 150px;
60
+ padding-bottom: 50px;}
61
+ .owl-item .item .actions {
62
+ bottom: 0;
63
+ min-height: 85px;
64
+ padding-top: 10px;
65
+ position: absolute;
66
+ width: 100%;
67
+ }
skin/frontend/base/default/css/conversionbug/owl/owl.theme.css ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Owl Carousel Owl Demo Theme
3
+ * v1.3.3
4
+ */
5
+
6
+ .owl-theme{
7
+ font-family: 'bebasregular';
8
+ }
9
+ #owl-demo-client {
10
+ background: none repeat scroll 0 0 rgb(31, 31, 31) !important;
11
+ }
12
+ .owl-theme .owl-controls{
13
+ margin-top: 10px;
14
+ text-align: center;
15
+ }
16
+
17
+ /* Styling Next and Prev buttons */
18
+
19
+ .owl-theme .owl-controls .owl-buttons div{
20
+ color: #FFF;
21
+ display: inline-block;
22
+ zoom: 1;
23
+ margin: 5px 4px 5px 0px;
24
+ padding: 8px 10px 8px 10px;
25
+ font-size: 14px;
26
+ -webkit-border-radius: 0px;
27
+ -moz-border-radius: 0px;
28
+ border-radius: 0px;
29
+ background: #000;
30
+ filter: Alpha(Opacity=50);
31
+ opacity: 0.5;
32
+
33
+ }
34
+
35
+ .filmsslider .owl-controls .owl-buttons div {
36
+ color: #FFF;
37
+ display: inline-block;
38
+ zoom: 1;
39
+ margin: 5px 10px 5px 10px;
40
+ padding: 5px 4px 5px 4px !important;
41
+ font-size: 14px;
42
+ -webkit-border-radius: 0px;
43
+ -moz-border-radius: 0px;
44
+ border-radius: 0px;
45
+ background: #D2D2D2;
46
+ filter: Alpha(Opacity=50);
47
+ opacity: 0.5;
48
+ }
49
+ .filmsslider {
50
+ background: #F4F4F4;
51
+ }
52
+ .filmsslider .hoveredlimg {
53
+ display: none;
54
+ }
55
+ .filmsslider .item:hover .hoveredlimg {
56
+ display: block;
57
+ }
58
+ .filmsslider .item:hover .originalimg {
59
+ display: none;
60
+ }
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+ /* Clickable class fix problem with hover on touch devices */
70
+ /* Use it for non-touch hover action */
71
+ .owl-theme .owl-controls.clickable .owl-buttons div:hover{
72
+ filter: Alpha(Opacity=100);/*IE7 fix*/
73
+ opacity: 1;
74
+ text-decoration: none;
75
+ }
76
+
77
+ /* Styling Pagination*/
78
+
79
+ .owl-theme .owl-controls .owl-page{
80
+ display: inline-block;
81
+ zoom: 1;
82
+ *display: inline;/*IE7 life-saver */
83
+ }
84
+ .owl-theme .owl-controls .owl-page span{
85
+ display: block;
86
+ width: 12px;
87
+ height: 12px;
88
+ margin: 5px 7px;
89
+ filter: Alpha(Opacity=50);/*IE7 fix*/
90
+ opacity: 0.5;
91
+ -webkit-border-radius: 20px;
92
+ -moz-border-radius: 20px;
93
+ border-radius: 20px;
94
+ background: #869791;
95
+ }
96
+
97
+ .owl-theme .owl-controls .owl-page.active span,
98
+ .owl-theme .owl-controls.clickable .owl-page:hover span{
99
+ filter: Alpha(Opacity=100);/*IE7 fix*/
100
+ opacity: 1;
101
+ }
102
+
103
+ /* If PaginationNumbers is true */
104
+
105
+ .owl-theme .owl-controls .owl-page span.owl-numbers{
106
+ height: auto;
107
+ width: auto;
108
+ color: #FFF;
109
+ padding: 2px 10px;
110
+ font-size: 12px;
111
+ -webkit-border-radius: 30px;
112
+ -moz-border-radius: 30px;
113
+ border-radius: 30px;
114
+ }
115
+
116
+ /* preloading images */
117
+ .owl-item.loading{
118
+ min-height: 150px;
119
+ background: url(AjaxLoader.gif) no-repeat center center
120
+ }
skin/frontend/base/default/css/conversionbug/owl/owl.transitions.css ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Owl Carousel CSS3 Transitions
3
+ * v1.3.2
4
+ */
5
+
6
+ .owl-origin {
7
+ -webkit-perspective: 1200px;
8
+ -webkit-perspective-origin-x : 50%;
9
+ -webkit-perspective-origin-y : 50%;
10
+ -moz-perspective : 1200px;
11
+ -moz-perspective-origin-x : 50%;
12
+ -moz-perspective-origin-y : 50%;
13
+ perspective : 1200px;
14
+ }
15
+ /* fade */
16
+ .owl-fade-out {
17
+ z-index: 10;
18
+ -webkit-animation: fadeOut .7s both ease;
19
+ -moz-animation: fadeOut .7s both ease;
20
+ animation: fadeOut .7s both ease;
21
+ }
22
+ .owl-fade-in {
23
+ -webkit-animation: fadeIn .7s both ease;
24
+ -moz-animation: fadeIn .7s both ease;
25
+ animation: fadeIn .7s both ease;
26
+ }
27
+ /* backSlide */
28
+ .owl-backSlide-out {
29
+ -webkit-animation: backSlideOut 1s both ease;
30
+ -moz-animation: backSlideOut 1s both ease;
31
+ animation: backSlideOut 1s both ease;
32
+ }
33
+ .owl-backSlide-in {
34
+ -webkit-animation: backSlideIn 1s both ease;
35
+ -moz-animation: backSlideIn 1s both ease;
36
+ animation: backSlideIn 1s both ease;
37
+ }
38
+ /* goDown */
39
+ .owl-goDown-out {
40
+ -webkit-animation: scaleToFade .7s ease both;
41
+ -moz-animation: scaleToFade .7s ease both;
42
+ animation: scaleToFade .7s ease both;
43
+ }
44
+ .owl-goDown-in {
45
+ -webkit-animation: goDown .6s ease both;
46
+ -moz-animation: goDown .6s ease both;
47
+ animation: goDown .6s ease both;
48
+ }
49
+ /* scaleUp */
50
+ .owl-fadeUp-in {
51
+ -webkit-animation: scaleUpFrom .5s ease both;
52
+ -moz-animation: scaleUpFrom .5s ease both;
53
+ animation: scaleUpFrom .5s ease both;
54
+ }
55
+
56
+ .owl-fadeUp-out {
57
+ -webkit-animation: scaleUpTo .5s ease both;
58
+ -moz-animation: scaleUpTo .5s ease both;
59
+ animation: scaleUpTo .5s ease both;
60
+ }
61
+ /* Keyframes */
62
+ /*empty*/
63
+ @-webkit-keyframes empty {
64
+ 0% {opacity: 1}
65
+ }
66
+ @-moz-keyframes empty {
67
+ 0% {opacity: 1}
68
+ }
69
+ @keyframes empty {
70
+ 0% {opacity: 1}
71
+ }
72
+ @-webkit-keyframes fadeIn {
73
+ 0% { opacity:0; }
74
+ 100% { opacity:1; }
75
+ }
76
+ @-moz-keyframes fadeIn {
77
+ 0% { opacity:0; }
78
+ 100% { opacity:1; }
79
+ }
80
+ @keyframes fadeIn {
81
+ 0% { opacity:0; }
82
+ 100% { opacity:1; }
83
+ }
84
+ @-webkit-keyframes fadeOut {
85
+ 0% { opacity:1; }
86
+ 100% { opacity:0; }
87
+ }
88
+ @-moz-keyframes fadeOut {
89
+ 0% { opacity:1; }
90
+ 100% { opacity:0; }
91
+ }
92
+ @keyframes fadeOut {
93
+ 0% { opacity:1; }
94
+ 100% { opacity:0; }
95
+ }
96
+ @-webkit-keyframes backSlideOut {
97
+ 25% { opacity: .5; -webkit-transform: translateZ(-500px); }
98
+ 75% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
99
+ 100% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
100
+ }
101
+ @-moz-keyframes backSlideOut {
102
+ 25% { opacity: .5; -moz-transform: translateZ(-500px); }
103
+ 75% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
104
+ 100% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
105
+ }
106
+ @keyframes backSlideOut {
107
+ 25% { opacity: .5; transform: translateZ(-500px); }
108
+ 75% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
109
+ 100% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
110
+ }
111
+ @-webkit-keyframes backSlideIn {
112
+ 0%, 25% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(200%); }
113
+ 75% { opacity: .5; -webkit-transform: translateZ(-500px); }
114
+ 100% { opacity: 1; -webkit-transform: translateZ(0) translateX(0); }
115
+ }
116
+ @-moz-keyframes backSlideIn {
117
+ 0%, 25% { opacity: .5; -moz-transform: translateZ(-500px) translateX(200%); }
118
+ 75% { opacity: .5; -moz-transform: translateZ(-500px); }
119
+ 100% { opacity: 1; -moz-transform: translateZ(0) translateX(0); }
120
+ }
121
+ @keyframes backSlideIn {
122
+ 0%, 25% { opacity: .5; transform: translateZ(-500px) translateX(200%); }
123
+ 75% { opacity: .5; transform: translateZ(-500px); }
124
+ 100% { opacity: 1; transform: translateZ(0) translateX(0); }
125
+ }
126
+ @-webkit-keyframes scaleToFade {
127
+ to { opacity: 0; -webkit-transform: scale(.8); }
128
+ }
129
+ @-moz-keyframes scaleToFade {
130
+ to { opacity: 0; -moz-transform: scale(.8); }
131
+ }
132
+ @keyframes scaleToFade {
133
+ to { opacity: 0; transform: scale(.8); }
134
+ }
135
+ @-webkit-keyframes goDown {
136
+ from { -webkit-transform: translateY(-100%); }
137
+ }
138
+ @-moz-keyframes goDown {
139
+ from { -moz-transform: translateY(-100%); }
140
+ }
141
+ @keyframes goDown {
142
+ from { transform: translateY(-100%); }
143
+ }
144
+
145
+ @-webkit-keyframes scaleUpFrom {
146
+ from { opacity: 0; -webkit-transform: scale(1.5); }
147
+ }
148
+ @-moz-keyframes scaleUpFrom {
149
+ from { opacity: 0; -moz-transform: scale(1.5); }
150
+ }
151
+ @keyframes scaleUpFrom {
152
+ from { opacity: 0; transform: scale(1.5); }
153
+ }
154
+
155
+ @-webkit-keyframes scaleUpTo {
156
+ to { opacity: 0; -webkit-transform: scale(1.5); }
157
+ }
158
+ @-moz-keyframes scaleUpTo {
159
+ to { opacity: 0; -moz-transform: scale(1.5); }
160
+ }
161
+ @keyframes scaleUpTo {
162
+ to { opacity: 0; transform: scale(1.5); }
163
+ }
skin/frontend/base/default/css/conversionbug/owl/responsive.css ADDED
@@ -0,0 +1,1088 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap Responsive v2.3.2
3
+ *
4
+ * Copyright 2012 Twitter, Inc
5
+ * Licensed under the Apache License v2.0
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ *
8
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
9
+ */
10
+ .clearfix {
11
+ *zoom: 1;
12
+ }
13
+ .clearfix:before,
14
+ .clearfix:after {
15
+ display: table;
16
+ content: "";
17
+ line-height: 0;
18
+ }
19
+ .clearfix:after {
20
+ clear: both;
21
+ }
22
+ .hide-text {
23
+ font: 0/0 a;
24
+ color: transparent;
25
+ text-shadow: none;
26
+ background-color: transparent;
27
+ border: 0;
28
+ }
29
+ .input-block-level {
30
+ display: block;
31
+ width: 100%;
32
+ min-height: 30px;
33
+ -webkit-box-sizing: border-box;
34
+ -moz-box-sizing: border-box;
35
+ box-sizing: border-box;
36
+ }
37
+ @-ms-viewport {
38
+ width: device-width;
39
+ }
40
+ .hidden {
41
+ display: none;
42
+ visibility: hidden;
43
+ }
44
+ .visible-phone {
45
+ display: none !important;
46
+ }
47
+ .visible-tablet {
48
+ display: none !important;
49
+ }
50
+ .hidden-desktop {
51
+ display: none !important;
52
+ }
53
+ .visible-desktop {
54
+ display: inherit !important;
55
+ }
56
+ @media (min-width: 768px) and (max-width: 979px) {
57
+ .hidden-desktop {
58
+ display: inherit !important;
59
+ }
60
+ .visible-desktop {
61
+ display: none !important ;
62
+ }
63
+ .visible-tablet {
64
+ display: inherit !important;
65
+ }
66
+ .hidden-tablet {
67
+ display: none !important;
68
+ }
69
+ }
70
+ @media (max-width: 767px) {
71
+ .hidden-desktop {
72
+ display: inherit !important;
73
+ }
74
+ .visible-desktop {
75
+ display: none !important;
76
+ }
77
+ .visible-phone {
78
+ display: inherit !important;
79
+ }
80
+ .hidden-phone {
81
+ display: none !important;
82
+ }
83
+ }
84
+ .visible-print {
85
+ display: none !important;
86
+ }
87
+ @media print {
88
+ .visible-print {
89
+ display: inherit !important;
90
+ }
91
+ .hidden-print {
92
+ display: none !important;
93
+ }
94
+ }
95
+ @media (min-width: 1200px) {
96
+ .row {
97
+ margin-left: -30px;
98
+ *zoom: 1;
99
+ }
100
+ .row:before,
101
+ .row:after {
102
+ display: table;
103
+ content: "";
104
+ line-height: 0;
105
+ }
106
+ .row:after {
107
+ clear: both;
108
+ }
109
+ [class*="span"] {
110
+ float: left;
111
+ min-height: 1px;
112
+ margin-left: 30px;
113
+ }
114
+ .container,
115
+ .navbar-static-top .container,
116
+ .navbar-fixed-top .container,
117
+ .navbar-fixed-bottom .container {
118
+ width: 1170px;
119
+ }
120
+ .span12 {
121
+ width: 1170px;
122
+ }
123
+ .span11 {
124
+ width: 1070px;
125
+ }
126
+ .span10 {
127
+ width: 970px;
128
+ }
129
+ .span9 {
130
+ width: 870px;
131
+ }
132
+ .span8 {
133
+ width: 770px;
134
+ }
135
+ .span7 {
136
+ width: 670px;
137
+ }
138
+ .span6 {
139
+ width: 570px;
140
+ }
141
+ .span5 {
142
+ width: 470px;
143
+ }
144
+ .span4 {
145
+ width: 370px;
146
+ }
147
+ .span3 {
148
+ width: 270px;
149
+ }
150
+ .span2 {
151
+ width: 170px;
152
+ }
153
+ .span1 {
154
+ width: 70px;
155
+ }
156
+ .offset12 {
157
+ margin-left: 1230px;
158
+ }
159
+ .offset11 {
160
+ margin-left: 1130px;
161
+ }
162
+ .offset10 {
163
+ margin-left: 1030px;
164
+ }
165
+ .offset9 {
166
+ margin-left: 930px;
167
+ }
168
+ .offset8 {
169
+ margin-left: 830px;
170
+ }
171
+ .offset7 {
172
+ margin-left: 730px;
173
+ }
174
+ .offset6 {
175
+ margin-left: 630px;
176
+ }
177
+ .offset5 {
178
+ margin-left: 530px;
179
+ }
180
+ .offset4 {
181
+ margin-left: 430px;
182
+ }
183
+ .offset3 {
184
+ margin-left: 330px;
185
+ }
186
+ .offset2 {
187
+ margin-left: 230px;
188
+ }
189
+ .offset1 {
190
+ margin-left: 130px;
191
+ }
192
+ .row-fluid {
193
+ width: 100%;
194
+ *zoom: 1;
195
+ }
196
+ .row-fluid:before,
197
+ .row-fluid:after {
198
+ display: table;
199
+ content: "";
200
+ line-height: 0;
201
+ }
202
+ .row-fluid:after {
203
+ clear: both;
204
+ }
205
+ .row-fluid [class*="span"] {
206
+ display: block;
207
+ width: 100%;
208
+ min-height: 30px;
209
+ -webkit-box-sizing: border-box;
210
+ -moz-box-sizing: border-box;
211
+ box-sizing: border-box;
212
+ float: left;
213
+ margin-left: 2.564102564102564%;
214
+ *margin-left: 2.5109110747408616%;
215
+ }
216
+ .row-fluid [class*="span"]:first-child {
217
+ margin-left: 0;
218
+ }
219
+ .row-fluid .controls-row [class*="span"] + [class*="span"] {
220
+ margin-left: 2.564102564102564%;
221
+ }
222
+ .row-fluid .span12 {
223
+ width: 100%;
224
+ *width: 99.94680851063829%;
225
+ }
226
+ .row-fluid .span11 {
227
+ width: 91.45299145299145%;
228
+ *width: 91.39979996362975%;
229
+ }
230
+ .row-fluid .span10 {
231
+ width: 82.90598290598291%;
232
+ *width: 82.8527914166212%;
233
+ }
234
+ .row-fluid .span9 {
235
+ width: 74.35897435897436%;
236
+ *width: 74.30578286961266%;
237
+ }
238
+ .row-fluid .span8 {
239
+ width: 65.81196581196582%;
240
+ *width: 65.75877432260411%;
241
+ }
242
+ .row-fluid .span7 {
243
+ width: 57.26495726495726%;
244
+ *width: 57.21176577559556%;
245
+ }
246
+ .row-fluid .span6 {
247
+ width: 48.717948717948715%;
248
+ *width: 48.664757228587014%;
249
+ }
250
+ .row-fluid .span5 {
251
+ width: 40.17094017094017%;
252
+ *width: 40.11774868157847%;
253
+ }
254
+ .row-fluid .span4 {
255
+ width: 31.623931623931625%;
256
+ *width: 31.570740134569924%;
257
+ }
258
+ .row-fluid .span3 {
259
+ width: 23.076923076923077%;
260
+ *width: 23.023731587561375%;
261
+ }
262
+ .row-fluid .span2 {
263
+ width: 14.52991452991453%;
264
+ *width: 14.476723040552828%;
265
+ }
266
+ .row-fluid .span1 {
267
+ width: 5.982905982905983%;
268
+ *width: 5.929714493544281%;
269
+ }
270
+ .row-fluid .offset12 {
271
+ margin-left: 105.12820512820512%;
272
+ *margin-left: 105.02182214948171%;
273
+ }
274
+ .row-fluid .offset12:first-child {
275
+ margin-left: 102.56410256410257%;
276
+ *margin-left: 102.45771958537915%;
277
+ }
278
+ .row-fluid .offset11 {
279
+ margin-left: 96.58119658119658%;
280
+ *margin-left: 96.47481360247316%;
281
+ }
282
+ .row-fluid .offset11:first-child {
283
+ margin-left: 94.01709401709402%;
284
+ *margin-left: 93.91071103837061%;
285
+ }
286
+ .row-fluid .offset10 {
287
+ margin-left: 88.03418803418803%;
288
+ *margin-left: 87.92780505546462%;
289
+ }
290
+ .row-fluid .offset10:first-child {
291
+ margin-left: 85.47008547008548%;
292
+ *margin-left: 85.36370249136206%;
293
+ }
294
+ .row-fluid .offset9 {
295
+ margin-left: 79.48717948717949%;
296
+ *margin-left: 79.38079650845607%;
297
+ }
298
+ .row-fluid .offset9:first-child {
299
+ margin-left: 76.92307692307693%;
300
+ *margin-left: 76.81669394435352%;
301
+ }
302
+ .row-fluid .offset8 {
303
+ margin-left: 70.94017094017094%;
304
+ *margin-left: 70.83378796144753%;
305
+ }
306
+ .row-fluid .offset8:first-child {
307
+ margin-left: 68.37606837606839%;
308
+ *margin-left: 68.26968539734497%;
309
+ }
310
+ .row-fluid .offset7 {
311
+ margin-left: 62.393162393162385%;
312
+ *margin-left: 62.28677941443899%;
313
+ }
314
+ .row-fluid .offset7:first-child {
315
+ margin-left: 59.82905982905982%;
316
+ *margin-left: 59.72267685033642%;
317
+ }
318
+ .row-fluid .offset6 {
319
+ margin-left: 53.84615384615384%;
320
+ *margin-left: 53.739770867430444%;
321
+ }
322
+ .row-fluid .offset6:first-child {
323
+ margin-left: 51.28205128205128%;
324
+ *margin-left: 51.175668303327875%;
325
+ }
326
+ .row-fluid .offset5 {
327
+ margin-left: 45.299145299145295%;
328
+ *margin-left: 45.1927623204219%;
329
+ }
330
+ .row-fluid .offset5:first-child {
331
+ margin-left: 42.73504273504273%;
332
+ *margin-left: 42.62865975631933%;
333
+ }
334
+ .row-fluid .offset4 {
335
+ margin-left: 36.75213675213675%;
336
+ *margin-left: 36.645753773413354%;
337
+ }
338
+ .row-fluid .offset4:first-child {
339
+ margin-left: 34.18803418803419%;
340
+ *margin-left: 34.081651209310785%;
341
+ }
342
+ .row-fluid .offset3 {
343
+ margin-left: 28.205128205128204%;
344
+ *margin-left: 28.0987452264048%;
345
+ }
346
+ .row-fluid .offset3:first-child {
347
+ margin-left: 25.641025641025642%;
348
+ *margin-left: 25.53464266230224%;
349
+ }
350
+ .row-fluid .offset2 {
351
+ margin-left: 19.65811965811966%;
352
+ *margin-left: 19.551736679396257%;
353
+ }
354
+ .row-fluid .offset2:first-child {
355
+ margin-left: 17.094017094017094%;
356
+ *margin-left: 16.98763411529369%;
357
+ }
358
+ .row-fluid .offset1 {
359
+ margin-left: 11.11111111111111%;
360
+ *margin-left: 11.004728132387708%;
361
+ }
362
+ .row-fluid .offset1:first-child {
363
+ margin-left: 8.547008547008547%;
364
+ *margin-left: 8.440625568285142%;
365
+ }
366
+ input,
367
+ textarea,
368
+ .uneditable-input {
369
+ margin-left: 0;
370
+ }
371
+ .controls-row [class*="span"] + [class*="span"] {
372
+ margin-left: 30px;
373
+ }
374
+ input.span12,
375
+ textarea.span12,
376
+ .uneditable-input.span12 {
377
+ width: 1156px;
378
+ }
379
+ input.span11,
380
+ textarea.span11,
381
+ .uneditable-input.span11 {
382
+ width: 1056px;
383
+ }
384
+ input.span10,
385
+ textarea.span10,
386
+ .uneditable-input.span10 {
387
+ width: 956px;
388
+ }
389
+ input.span9,
390
+ textarea.span9,
391
+ .uneditable-input.span9 {
392
+ width: 856px;
393
+ }
394
+ input.span8,
395
+ textarea.span8,
396
+ .uneditable-input.span8 {
397
+ width: 756px;
398
+ }
399
+ input.span7,
400
+ textarea.span7,
401
+ .uneditable-input.span7 {
402
+ width: 656px;
403
+ }
404
+ input.span6,
405
+ textarea.span6,
406
+ .uneditable-input.span6 {
407
+ width: 556px;
408
+ }
409
+ input.span5,
410
+ textarea.span5,
411
+ .uneditable-input.span5 {
412
+ width: 456px;
413
+ }
414
+ input.span4,
415
+ textarea.span4,
416
+ .uneditable-input.span4 {
417
+ width: 356px;
418
+ }
419
+ input.span3,
420
+ textarea.span3,
421
+ .uneditable-input.span3 {
422
+ width: 256px;
423
+ }
424
+ input.span2,
425
+ textarea.span2,
426
+ .uneditable-input.span2 {
427
+ width: 156px;
428
+ }
429
+ input.span1,
430
+ textarea.span1,
431
+ .uneditable-input.span1 {
432
+ width: 56px;
433
+ }
434
+ .thumbnails {
435
+ margin-left: -30px;
436
+ }
437
+ .thumbnails > li {
438
+ margin-left: 30px;
439
+ }
440
+ .row-fluid .thumbnails {
441
+ margin-left: 0;
442
+ }
443
+ }
444
+ @media (min-width: 768px) and (max-width: 979px) {
445
+ .row {
446
+ margin-left: -20px;
447
+ *zoom: 1;
448
+ }
449
+ .row:before,
450
+ .row:after {
451
+ display: table;
452
+ content: "";
453
+ line-height: 0;
454
+ }
455
+ .row:after {
456
+ clear: both;
457
+ }
458
+ [class*="span"] {
459
+ float: left;
460
+ min-height: 1px;
461
+ margin-left: 20px;
462
+ }
463
+ .container,
464
+ .navbar-static-top .container,
465
+ .navbar-fixed-top .container,
466
+ .navbar-fixed-bottom .container {
467
+ width: 724px;
468
+ }
469
+ .span12 {
470
+ width: 724px;
471
+ }
472
+ .span11 {
473
+ width: 662px;
474
+ }
475
+ .span10 {
476
+ width: 600px;
477
+ }
478
+ .span9 {
479
+ width: 538px;
480
+ }
481
+ .span8 {
482
+ width: 476px;
483
+ }
484
+ .span7 {
485
+ width: 414px;
486
+ }
487
+ .span6 {
488
+ width: 352px;
489
+ }
490
+ .span5 {
491
+ width: 290px;
492
+ }
493
+ .span4 {
494
+ width: 228px;
495
+ }
496
+ .span3 {
497
+ width: 166px;
498
+ }
499
+ .span2 {
500
+ width: 104px;
501
+ }
502
+ .span1 {
503
+ width: 42px;
504
+ }
505
+ .offset12 {
506
+ margin-left: 764px;
507
+ }
508
+ .offset11 {
509
+ margin-left: 702px;
510
+ }
511
+ .offset10 {
512
+ margin-left: 640px;
513
+ }
514
+ .offset9 {
515
+ margin-left: 578px;
516
+ }
517
+ .offset8 {
518
+ margin-left: 516px;
519
+ }
520
+ .offset7 {
521
+ margin-left: 454px;
522
+ }
523
+ .offset6 {
524
+ margin-left: 392px;
525
+ }
526
+ .offset5 {
527
+ margin-left: 330px;
528
+ }
529
+ .offset4 {
530
+ margin-left: 268px;
531
+ }
532
+ .offset3 {
533
+ margin-left: 206px;
534
+ }
535
+ .offset2 {
536
+ margin-left: 144px;
537
+ }
538
+ .offset1 {
539
+ margin-left: 82px;
540
+ }
541
+ .row-fluid {
542
+ width: 100%;
543
+ *zoom: 1;
544
+ }
545
+ .row-fluid:before,
546
+ .row-fluid:after {
547
+ display: table;
548
+ content: "";
549
+ line-height: 0;
550
+ }
551
+ .row-fluid:after {
552
+ clear: both;
553
+ }
554
+ .row-fluid [class*="span"] {
555
+ display: block;
556
+ width: 100%;
557
+ min-height: 30px;
558
+ -webkit-box-sizing: border-box;
559
+ -moz-box-sizing: border-box;
560
+ box-sizing: border-box;
561
+ float: left;
562
+ margin-left: 2.7624309392265194%;
563
+ *margin-left: 2.709239449864817%;
564
+ }
565
+ .row-fluid [class*="span"]:first-child {
566
+ margin-left: 0;
567
+ }
568
+ .row-fluid .controls-row [class*="span"] + [class*="span"] {
569
+ margin-left: 2.7624309392265194%;
570
+ }
571
+ .row-fluid .span12 {
572
+ width: 100%;
573
+ *width: 99.94680851063829%;
574
+ }
575
+ .row-fluid .span11 {
576
+ width: 91.43646408839778%;
577
+ *width: 91.38327259903608%;
578
+ }
579
+ .row-fluid .span10 {
580
+ width: 82.87292817679558%;
581
+ *width: 82.81973668743387%;
582
+ }
583
+ .row-fluid .span9 {
584
+ width: 74.30939226519337%;
585
+ *width: 74.25620077583166%;
586
+ }
587
+ .row-fluid .span8 {
588
+ width: 65.74585635359117%;
589
+ *width: 65.69266486422946%;
590
+ }
591
+ .row-fluid .span7 {
592
+ width: 57.18232044198895%;
593
+ *width: 57.12912895262725%;
594
+ }
595
+ .row-fluid .span6 {
596
+ width: 48.61878453038674%;
597
+ *width: 48.56559304102504%;
598
+ }
599
+ .row-fluid .span5 {
600
+ width: 40.05524861878453%;
601
+ *width: 40.00205712942283%;
602
+ }
603
+ .row-fluid .span4 {
604
+ width: 31.491712707182323%;
605
+ *width: 31.43852121782062%;
606
+ }
607
+ .row-fluid .span3 {
608
+ width: 22.92817679558011%;
609
+ *width: 22.87498530621841%;
610
+ }
611
+ .row-fluid .span2 {
612
+ width: 14.3646408839779%;
613
+ *width: 14.311449394616199%;
614
+ }
615
+ .row-fluid .span1 {
616
+ width: 5.801104972375691%;
617
+ *width: 5.747913483013988%;
618
+ }
619
+ .row-fluid .offset12 {
620
+ margin-left: 105.52486187845304%;
621
+ *margin-left: 105.41847889972962%;
622
+ }
623
+ .row-fluid .offset12:first-child {
624
+ margin-left: 102.76243093922652%;
625
+ *margin-left: 102.6560479605031%;
626
+ }
627
+ .row-fluid .offset11 {
628
+ margin-left: 96.96132596685082%;
629
+ *margin-left: 96.8549429881274%;
630
+ }
631
+ .row-fluid .offset11:first-child {
632
+ margin-left: 94.1988950276243%;
633
+ *margin-left: 94.09251204890089%;
634
+ }
635
+ .row-fluid .offset10 {
636
+ margin-left: 88.39779005524862%;
637
+ *margin-left: 88.2914070765252%;
638
+ }
639
+ .row-fluid .offset10:first-child {
640
+ margin-left: 85.6353591160221%;
641
+ *margin-left: 85.52897613729868%;
642
+ }
643
+ .row-fluid .offset9 {
644
+ margin-left: 79.8342541436464%;
645
+ *margin-left: 79.72787116492299%;
646
+ }
647
+ .row-fluid .offset9:first-child {
648
+ margin-left: 77.07182320441989%;
649
+ *margin-left: 76.96544022569647%;
650
+ }
651
+ .row-fluid .offset8 {
652
+ margin-left: 71.2707182320442%;
653
+ *margin-left: 71.16433525332079%;
654
+ }
655
+ .row-fluid .offset8:first-child {
656
+ margin-left: 68.50828729281768%;
657
+ *margin-left: 68.40190431409427%;
658
+ }
659
+ .row-fluid .offset7 {
660
+ margin-left: 62.70718232044199%;
661
+ *margin-left: 62.600799341718584%;
662
+ }
663
+ .row-fluid .offset7:first-child {
664
+ margin-left: 59.94475138121547%;
665
+ *margin-left: 59.838368402492065%;
666
+ }
667
+ .row-fluid .offset6 {
668
+ margin-left: 54.14364640883978%;
669
+ *margin-left: 54.037263430116376%;
670
+ }
671
+ .row-fluid .offset6:first-child {
672
+ margin-left: 51.38121546961326%;
673
+ *margin-left: 51.27483249088986%;
674
+ }
675
+ .row-fluid .offset5 {
676
+ margin-left: 45.58011049723757%;
677
+ *margin-left: 45.47372751851417%;
678
+ }
679
+ .row-fluid .offset5:first-child {
680
+ margin-left: 42.81767955801105%;
681
+ *margin-left: 42.71129657928765%;
682
+ }
683
+ .row-fluid .offset4 {
684
+ margin-left: 37.01657458563536%;
685
+ *margin-left: 36.91019160691196%;
686
+ }
687
+ .row-fluid .offset4:first-child {
688
+ margin-left: 34.25414364640884%;
689
+ *margin-left: 34.14776066768544%;
690
+ }
691
+ .row-fluid .offset3 {
692
+ margin-left: 28.45303867403315%;
693
+ *margin-left: 28.346655695309746%;
694
+ }
695
+ .row-fluid .offset3:first-child {
696
+ margin-left: 25.69060773480663%;
697
+ *margin-left: 25.584224756083227%;
698
+ }
699
+ .row-fluid .offset2 {
700
+ margin-left: 19.88950276243094%;
701
+ *margin-left: 19.783119783707537%;
702
+ }
703
+ .row-fluid .offset2:first-child {
704
+ margin-left: 17.12707182320442%;
705
+ *margin-left: 17.02068884448102%;
706
+ }
707
+ .row-fluid .offset1 {
708
+ margin-left: 11.32596685082873%;
709
+ *margin-left: 11.219583872105325%;
710
+ }
711
+ .row-fluid .offset1:first-child {
712
+ margin-left: 8.56353591160221%;
713
+ *margin-left: 8.457152932878806%;
714
+ }
715
+ input,
716
+ textarea,
717
+ .uneditable-input {
718
+ margin-left: 0;
719
+ }
720
+ .controls-row [class*="span"] + [class*="span"] {
721
+ margin-left: 20px;
722
+ }
723
+ input.span12,
724
+ textarea.span12,
725
+ .uneditable-input.span12 {
726
+ width: 710px;
727
+ }
728
+ input.span11,
729
+ textarea.span11,
730
+ .uneditable-input.span11 {
731
+ width: 648px;
732
+ }
733
+ input.span10,
734
+ textarea.span10,
735
+ .uneditable-input.span10 {
736
+ width: 586px;
737
+ }
738
+ input.span9,
739
+ textarea.span9,
740
+ .uneditable-input.span9 {
741
+ width: 524px;
742
+ }
743
+ input.span8,
744
+ textarea.span8,
745
+ .uneditable-input.span8 {
746
+ width: 462px;
747
+ }
748
+ input.span7,
749
+ textarea.span7,
750
+ .uneditable-input.span7 {
751
+ width: 400px;
752
+ }
753
+ input.span6,
754
+ textarea.span6,
755
+ .uneditable-input.span6 {
756
+ width: 338px;
757
+ }
758
+ input.span5,
759
+ textarea.span5,
760
+ .uneditable-input.span5 {
761
+ width: 276px;
762
+ }
763
+ input.span4,
764
+ textarea.span4,
765
+ .uneditable-input.span4 {
766
+ width: 214px;
767
+ }
768
+ input.span3,
769
+ textarea.span3,
770
+ .uneditable-input.span3 {
771
+ width: 152px;
772
+ }
773
+ input.span2,
774
+ textarea.span2,
775
+ .uneditable-input.span2 {
776
+ width: 90px;
777
+ }
778
+ input.span1,
779
+ textarea.span1,
780
+ .uneditable-input.span1 {
781
+ width: 28px;
782
+ }
783
+ }
784
+ @media (max-width: 767px) {
785
+ body {
786
+ padding-left: 20px;
787
+ padding-right: 20px;
788
+ }
789
+ .navbar-fixed-top,
790
+ .navbar-fixed-bottom,
791
+ .navbar-static-top {
792
+ margin-left: -20px;
793
+ margin-right: -20px;
794
+ }
795
+ .container-fluid {
796
+ padding: 0;
797
+ }
798
+ .dl-horizontal dt {
799
+ float: none;
800
+ clear: none;
801
+ width: auto;
802
+ text-align: left;
803
+ }
804
+ .dl-horizontal dd {
805
+ margin-left: 0;
806
+ }
807
+ .container {
808
+ width: auto;
809
+ }
810
+ .row-fluid {
811
+ width: 100%;
812
+ }
813
+ .row,
814
+ .thumbnails {
815
+ margin-left: 0;
816
+ }
817
+ .thumbnails > li {
818
+ float: none;
819
+ margin-left: 0;
820
+ }
821
+ [class*="span"],
822
+ .uneditable-input[class*="span"],
823
+ .row-fluid [class*="span"] {
824
+ float: none;
825
+ display: block;
826
+ width: 100%;
827
+ margin-left: 0;
828
+ -webkit-box-sizing: border-box;
829
+ -moz-box-sizing: border-box;
830
+ box-sizing: border-box;
831
+ }
832
+ .span12,
833
+ .row-fluid .span12 {
834
+ width: 100%;
835
+ -webkit-box-sizing: border-box;
836
+ -moz-box-sizing: border-box;
837
+ box-sizing: border-box;
838
+ }
839
+ .row-fluid [class*="offset"]:first-child {
840
+ margin-left: 0;
841
+ }
842
+ .input-large,
843
+ .input-xlarge,
844
+ .input-xxlarge,
845
+ input[class*="span"],
846
+ select[class*="span"],
847
+ textarea[class*="span"],
848
+ .uneditable-input {
849
+ display: block;
850
+ width: 100%;
851
+ min-height: 30px;
852
+ -webkit-box-sizing: border-box;
853
+ -moz-box-sizing: border-box;
854
+ box-sizing: border-box;
855
+ }
856
+ .input-prepend input,
857
+ .input-append input,
858
+ .input-prepend input[class*="span"],
859
+ .input-append input[class*="span"] {
860
+ display: inline-block;
861
+ width: auto;
862
+ }
863
+ .controls-row [class*="span"] + [class*="span"] {
864
+ margin-left: 0;
865
+ }
866
+ .modal {
867
+ position: fixed;
868
+ top: 20px;
869
+ left: 20px;
870
+ right: 20px;
871
+ width: auto;
872
+ margin: 0;
873
+ }
874
+ .modal.fade {
875
+ top: -100px;
876
+ }
877
+ .modal.fade.in {
878
+ top: 20px;
879
+ }
880
+ }
881
+ @media (max-width: 480px) {
882
+ .nav-collapse {
883
+ -webkit-transform: translate3d(0, 0, 0);
884
+ }
885
+ .page-header h1 small {
886
+ display: block;
887
+ line-height: 20px;
888
+ }
889
+ input[type="checkbox"],
890
+ input[type="radio"] {
891
+ border: 1px solid #ccc;
892
+ }
893
+ .form-horizontal .control-label {
894
+ float: none;
895
+ width: auto;
896
+ padding-top: 0;
897
+ text-align: left;
898
+ }
899
+ .form-horizontal .controls {
900
+ margin-left: 0;
901
+ }
902
+ .form-horizontal .control-list {
903
+ padding-top: 0;
904
+ }
905
+ .form-horizontal .form-actions {
906
+ padding-left: 10px;
907
+ padding-right: 10px;
908
+ }
909
+ .media .pull-left,
910
+ .media .pull-right {
911
+ float: none;
912
+ display: block;
913
+ margin-bottom: 10px;
914
+ }
915
+ .media-object {
916
+ margin-right: 0;
917
+ margin-left: 0;
918
+ }
919
+ .modal {
920
+ top: 10px;
921
+ left: 10px;
922
+ right: 10px;
923
+ }
924
+ .modal-header .close {
925
+ padding: 10px;
926
+ margin: -10px;
927
+ }
928
+ .carousel-caption {
929
+ position: static;
930
+ }
931
+ }
932
+ @media (max-width: 979px) {
933
+ body {
934
+ padding-top: 0;
935
+ }
936
+ .navbar-fixed-top,
937
+ .navbar-fixed-bottom {
938
+ position: static;
939
+ }
940
+ .navbar-fixed-top {
941
+ margin-bottom: 20px;
942
+ }
943
+ .navbar-fixed-bottom {
944
+ margin-top: 20px;
945
+ }
946
+ .navbar-fixed-top .navbar-inner,
947
+ .navbar-fixed-bottom .navbar-inner {
948
+ padding: 5px;
949
+ }
950
+ .navbar .container {
951
+ width: auto;
952
+ padding: 0;
953
+ }
954
+ .navbar .brand {
955
+ padding-left: 10px;
956
+ padding-right: 10px;
957
+ margin: 0 0 0 -5px;
958
+ }
959
+ .nav-collapse {
960
+ clear: both;
961
+ }
962
+ .nav-collapse .nav {
963
+ float: none;
964
+ margin: 0 0 10px;
965
+ }
966
+ .nav-collapse .nav > li {
967
+ float: none;
968
+ }
969
+ .nav-collapse .nav > li > a {
970
+ margin-bottom: 2px;
971
+ }
972
+ .nav-collapse .nav > .divider-vertical {
973
+ display: none;
974
+ }
975
+ .nav-collapse .nav .nav-header {
976
+ color: #777777;
977
+ text-shadow: none;
978
+ }
979
+ .nav-collapse .nav > li > a,
980
+ .nav-collapse .dropdown-menu a {
981
+ padding: 9px 15px;
982
+ font-weight: bold;
983
+ color: #777777;
984
+ -webkit-border-radius: 3px;
985
+ -moz-border-radius: 3px;
986
+ border-radius: 3px;
987
+ }
988
+ .nav-collapse .btn {
989
+ padding: 4px 10px 4px;
990
+ font-weight: normal;
991
+ -webkit-border-radius: 4px;
992
+ -moz-border-radius: 4px;
993
+ border-radius: 4px;
994
+ }
995
+ .nav-collapse .dropdown-menu li + li a {
996
+ margin-bottom: 2px;
997
+ }
998
+ .nav-collapse .nav > li > a:hover,
999
+ .nav-collapse .nav > li > a:focus,
1000
+ .nav-collapse .dropdown-menu a:hover,
1001
+ .nav-collapse .dropdown-menu a:focus {
1002
+ background-color: #f2f2f2;
1003
+ }
1004
+ .navbar-inverse .nav-collapse .nav > li > a,
1005
+ .navbar-inverse .nav-collapse .dropdown-menu a {
1006
+ color: #999999;
1007
+ }
1008
+ .navbar-inverse .nav-collapse .nav > li > a:hover,
1009
+ .navbar-inverse .nav-collapse .nav > li > a:focus,
1010
+ .navbar-inverse .nav-collapse .dropdown-menu a:hover,
1011
+ .navbar-inverse .nav-collapse .dropdown-menu a:focus {
1012
+ background-color: #111111;
1013
+ }
1014
+ .nav-collapse.in .btn-group {
1015
+ margin-top: 5px;
1016
+ padding: 0;
1017
+ }
1018
+ .nav-collapse .dropdown-menu {
1019
+ position: static;
1020
+ top: auto;
1021
+ left: auto;
1022
+ float: none;
1023
+ display: none;
1024
+ max-width: none;
1025
+ margin: 0 15px;
1026
+ padding: 0;
1027
+ background-color: transparent;
1028
+ border: none;
1029
+ -webkit-border-radius: 0;
1030
+ -moz-border-radius: 0;
1031
+ border-radius: 0;
1032
+ -webkit-box-shadow: none;
1033
+ -moz-box-shadow: none;
1034
+ box-shadow: none;
1035
+ }
1036
+ .nav-collapse .open > .dropdown-menu {
1037
+ display: block;
1038
+ }
1039
+ .nav-collapse .dropdown-menu:before,
1040
+ .nav-collapse .dropdown-menu:after {
1041
+ display: none;
1042
+ }
1043
+ .nav-collapse .dropdown-menu .divider {
1044
+ display: none;
1045
+ }
1046
+ .nav-collapse .nav > li > .dropdown-menu:before,
1047
+ .nav-collapse .nav > li > .dropdown-menu:after {
1048
+ display: none;
1049
+ }
1050
+ .nav-collapse .navbar-form,
1051
+ .nav-collapse .navbar-search {
1052
+ float: none;
1053
+ padding: 10px 15px;
1054
+ margin: 10px 0;
1055
+ border-top: 1px solid #f2f2f2;
1056
+ border-bottom: 1px solid #f2f2f2;
1057
+ -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
1058
+ -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
1059
+ box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
1060
+ }
1061
+ .navbar-inverse .nav-collapse .navbar-form,
1062
+ .navbar-inverse .nav-collapse .navbar-search {
1063
+ border-top-color: #111111;
1064
+ border-bottom-color: #111111;
1065
+ }
1066
+ .navbar .nav-collapse .nav.pull-right {
1067
+ float: none;
1068
+ margin-left: 0;
1069
+ }
1070
+ .nav-collapse,
1071
+ .nav-collapse.collapse {
1072
+ overflow: hidden;
1073
+ height: 0;
1074
+ }
1075
+ .navbar .btn-navbar {
1076
+ display: block;
1077
+ }
1078
+ .navbar-static .navbar-inner {
1079
+ padding-left: 10px;
1080
+ padding-right: 10px;
1081
+ }
1082
+ }
1083
+ @media (min-width: 980px) {
1084
+ .nav-collapse.collapse {
1085
+ height: auto !important;
1086
+ overflow: visible !important;
1087
+ }
1088
+ }
skin/frontend/base/default/css/conversionbug/productbyzipcode/custom.css ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .cb-recently-view .side-content-view {
2
+ float: right;
3
+ display: inline-block;
4
+ }
5
+ .cb-recently-view .side-content-view a{
6
+ /*background: #3399cc;*/
7
+ padding: 2px 10px;
8
+ color: #000;
9
+ text-decoration: none;
10
+ text-transform: capitalize;
11
+ }
12
+
13
+ .cb-recently-view h6 {
14
+ font-size: 15px;
15
+ text-align: left;
16
+ display: inline-block;
17
+ }
18
+ .block-product-by-zipcode .block-title{
19
+ text-align: center;
20
+ background: #3399cc;
21
+ padding: 4px 0;
22
+ }
23
+ .block-product-by-zipcode .block-title span{
24
+ color: #fff;
25
+ line-height: 30px;
26
+ }
27
+ .cb-recently-view .product-name {
28
+
29
+ max-height: 20px;
30
+
31
+ overflow: hidden;
32
+
33
+ }
34
+
35
+ .cb-recently-view .price-from {
36
+
37
+ margin: 0;
38
+
39
+ }
40
+
41
+ .recently-view .price-box {
42
+ clear: both;
43
+ display: block;
44
+ }
45
+ .recently-view .cart-remove{ float: right;}
46
+ .side-content{padding:50px;}
47
+ .block-recently-viewed{border:1px solid silver;padding:20px 10px;margin-bottom: 20px;margin-top: 20px;margin-right:0 !important;}
48
+ .block-recently-viewed h6{text-align: center;}
49
+ .cb-recently-view .side-content-view{;width: 50%;text-align: right;}
50
+ .cb-recently-view h6{width:50%;float:left}
51
+ .cb-recently-view #owl-demo{clear:both;}
52
+ .recently-view .products-list .product-image{marign:0;display: inline;}
53
+ .recently-view .products-list .product-shop {
54
+ float: right;
55
+ width: 60%;
56
+ }
57
+ .cb-recently-viewed .products-grid .item {
58
+ min-height: 375px !important;
59
+ }
60
+ .cb-recently-viewed .actions{display:block !important;position: absolute;bottom: 0;width:90%;}