Vsourz_Hot_Deals - Version 1.0.0

Version Notes

This is a First Release !!

Download this release

Release Info

Developer Vsourz Digital
Extension Vsourz_Hot_Deals
Version 1.0.0
Comparing to
See all releases


Version 1.0.0

app/code/community/Vsourz/Deals/Block/Deals.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Deals_Block_Deals extends Mage_Catalog_Block_Product_Abstract{
3
+ public function getProducts(){
4
+ $prodCount = $this->getProductCount();
5
+ $catId = $this->getCategoryId();
6
+ if(!$catId){
7
+ $catId = Mage::getStoreConfig('deals/settings/category');
8
+ }
9
+ $prodCnt = $this->getProductCount();
10
+ $_productCollection = Mage::getModel("vsourz_deals/deals")->getItemCollection($prodCnt,$catId, $prodCount);
11
+ return $_productCollection;
12
+ }
13
+ public function getDiscountPer($_product){
14
+ $price = $_product->getPrice();
15
+ $specialPrice = $_product->getSpecialPrice();
16
+ $discountPer = 100-($specialPrice/$price)*100;
17
+ $discountPer = round($discountPer,2);
18
+ return $discountPer.'%';
19
+ }
20
+ public function getDiscountAmt($_product){
21
+ $price = Mage::helper('core')->currency($_product->getPrice(),false,false);
22
+ $specialPrice = Mage::helper('core')->currency($_product->getSpecialPrice(),false,false);
23
+ $discountAmt = round($price-$specialPrice,2);
24
+ return Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol().$discountAmt;
25
+ }
26
+ }
app/code/community/Vsourz/Deals/Helper/Data.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Deals_Helper_Data extends Mage_Core_Helper_Abstract
3
+ {
4
+ public function getImg($product, $w, $h, $imgVersion='image', $file=NULL)
5
+ {
6
+ $url = '';
7
+ if ($h <= 0)
8
+ {
9
+ $url = Mage::helper('catalog/image')
10
+ ->init($product, $imgVersion, $file)
11
+ ->constrainOnly(true)
12
+ ->keepAspectRatio(true)
13
+ ->keepFrame(false)
14
+ //->setQuality(90)
15
+ ->resize($w);
16
+ }
17
+ else
18
+ {
19
+ $url = Mage::helper('catalog/image')
20
+ ->init($product, $imgVersion, $file)
21
+ ->resize($w, $h);
22
+ }
23
+ return $url;
24
+ }
25
+ function altImage($product, $val, $w, $h, $imgVersion='small_image'){
26
+ $product->load('media_gallery');
27
+ $column = 'position';
28
+ $value = $val;
29
+ $gal = $product->getMediaGalleryImages();
30
+ if ($gal = $product->getMediaGalleryImages())
31
+ {
32
+ if ($altImg = $gal->getItemByColumnValue($column, $value))
33
+ {
34
+ return
35
+ '<img class="alt-img lazyOwl" src="' . $this->getImg($product, $w, $h, $imgVersion, $altImg->getFile()) . '" alt="' . $product->getName() . '" />';
36
+ }
37
+ }
38
+ return '';
39
+ }
40
+ }
41
+ ?>
app/code/community/Vsourz/Deals/Model/Deals.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Deals_Model_Deals extends Mage_Catalog_Model_Product{
3
+ public function getItemCollection($prodCnt,$catId = NULL, $prodCount){
4
+ $categoryId = $catId;
5
+ $todayDate = date('m/d/y');
6
+ $tomorrow = mktime(0, 0, 0, date('m'), date('d'), date('y'));
7
+ $tomorrowDate = date('m/d/y', $tomorrow);
8
+ $visibility = array(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH,Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG);
9
+ $collection = $this->getCollection()
10
+ ->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
11
+ ->addAttributeToSelect('*')
12
+ ->addAttributeToFilter('category_id', array('in' => $categoryId))
13
+ ->addAttributeToFilter('visibility', $visibility)
14
+ ->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
15
+ ->addAttributeToFilter('special_from_date', array('date' => true, 'to' => $todayDate))
16
+ ->addAttributeToFilter('special_to_date', array('or'=> array(
17
+ 0 => array('date' => true, 'from' => $tomorrowDate))
18
+ ), 'left')
19
+ ->setPageSize($prodCount)
20
+ ->load();
21
+ Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($collection);
22
+ return $collection;
23
+ }
24
+ }
25
+ ?>
app/code/community/Vsourz/Deals/Model/Source/Truefalse.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Deals_Model_Source_Truefalse
3
+ {
4
+ public function toOptionArray()
5
+ {
6
+ return array(
7
+ array('value' => 'true', 'label' => 'True'),
8
+ array('value' => 'false', 'label' => 'False'),
9
+ );
10
+ }
11
+ }
app/code/community/Vsourz/Deals/data/deals_setup/data-install-0.1.0.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $this->startSetup();
3
+ Mage::register('isSecureArea', 1);
4
+
5
+ // Force the store to be admin
6
+ Mage::app()->setUpdateMode(false);
7
+ Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
8
+
9
+ $category = Mage::getModel('catalog/category');
10
+ $category->setPath('1/2') // set parent to be root category
11
+ ->setStoreId(Mage_Core_Model_App::ADMIN_STORE_ID)
12
+ ->setName('Product Deals')
13
+ ->setIsActive(1)
14
+ ->setIsAnchor(1)
15
+ ->setIncludeInMenu(0)
16
+ ->save();
17
+ $this->endSetup();
18
+ ?>
19
+
app/code/community/Vsourz/Deals/etc/adminhtml.xml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <acl>
4
+ <resources>
5
+ <all>
6
+ <title>Allow Everything</title>
7
+ </all>
8
+ <admin>
9
+ <children>
10
+ <vsourz_Deals>
11
+ <title>Layer Slider</title>
12
+ <sort_order>6</sort_order>
13
+ </vsourz_Deals>
14
+ <system>
15
+ <children>
16
+ <config>
17
+ <children>
18
+ <deals translate="title" module="vsourz_deals">
19
+ <title>Vsourz Deals</title>
20
+ <sort_order>10</sort_order>
21
+ </deals>
22
+ </children>
23
+ </config>
24
+ </children>
25
+ </system>
26
+ </children>
27
+ </admin>
28
+ </resources>
29
+ </acl>
30
+ </config>
app/code/community/Vsourz/Deals/etc/config.xml ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Vsourz_Deals>
5
+ <version>0.1.0</version>
6
+ </Vsourz_Deals>
7
+ </modules>
8
+ <frontend>
9
+ <layout>
10
+ <updates>
11
+ <vsourz_deals>
12
+ <file>deals.xml</file>
13
+ </vsourz_deals>
14
+ </updates>
15
+ </layout>
16
+ </frontend>
17
+ <global>
18
+ <blocks>
19
+ <vsourz_deals>
20
+ <class>Vsourz_Deals_Block</class>
21
+ </vsourz_deals>
22
+ </blocks>
23
+ <models>
24
+ <vsourz_deals>
25
+ <class>Vsourz_Deals_Model</class>
26
+ </vsourz_deals>
27
+ </models>
28
+ <helpers>
29
+ <vsourz_deals>
30
+ <class>Vsourz_Deals_Helper</class>
31
+ </vsourz_deals>
32
+ </helpers>
33
+ <resources>
34
+ <deals_setup>
35
+ <setup>
36
+ <module>Vsourz_Deals</module>
37
+ </setup>
38
+ <connection>
39
+ <use>core_setup</use>
40
+ </connection>
41
+ </deals_setup>
42
+ </resources>
43
+ </global>
44
+ <default>
45
+ <deals>
46
+ <settings>
47
+ <loadjs>0</loadjs>
48
+ <loadcarousel>1</loadcarousel>
49
+ <category>2</category>
50
+ <productcount>4</productcount>
51
+ <autoplay>3000</autoplay>
52
+ </settings>
53
+ </deals>
54
+ </default>
55
+ </config>
app/code/community/Vsourz/Deals/etc/system.xml ADDED
@@ -0,0 +1,149 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <tabs>
4
+ <deals translate="label">
5
+ <label>Vsourz Deals</label>
6
+ <sort_order>155</sort_order>
7
+ </deals>
8
+ </tabs>
9
+ <sections>
10
+ <deals translate="label">
11
+ <label>Product Deals</label>
12
+ <tab>deals</tab>
13
+ <frontend_type>text</frontend_type>
14
+ <sort_order>1000</sort_order>
15
+ <show_in_default>1</show_in_default>
16
+ <show_in_website>1</show_in_website>
17
+ <show_in_store>1</show_in_store>
18
+ <groups>
19
+ <settings translate="label">
20
+ <label>General Settings</label>
21
+ <frontend_type>text</frontend_type>
22
+ <sort_order>10</sort_order>
23
+ <show_in_default>1</show_in_default>
24
+ <show_in_website>1</show_in_website>
25
+ <show_in_store>1</show_in_store>
26
+ <fields>
27
+ <loadjs translate="label">
28
+ <label>Load JQuery Library</label>
29
+ <comment><![CDATA[Select YES if JQuery library in not included in your Magento Project]]></comment>
30
+ <frontend_type>select</frontend_type>
31
+ <source_model>adminhtml/system_config_source_yesno</source_model>
32
+ <sort_order>10</sort_order>
33
+ <show_in_default>1</show_in_default>
34
+ <show_in_website>1</show_in_website>
35
+ <show_in_store>1</show_in_store>
36
+ </loadjs>
37
+ <loadcarousel translate="label">
38
+ <label>Load OwlCarousel JS/CSS</label>
39
+ <comment><![CDATA[Select No if OwlCarousel library is already included in your Magento Project]]></comment>
40
+ <frontend_type>select</frontend_type>
41
+ <source_model>adminhtml/system_config_source_yesno</source_model>
42
+ <sort_order>11</sort_order>
43
+ <show_in_default>1</show_in_default>
44
+ <show_in_website>1</show_in_website>
45
+ <show_in_store>1</show_in_store>
46
+ </loadcarousel>
47
+ <category translate="label">
48
+ <label>Category Id</label>
49
+ <comment><![CDATA[Enter the category Id of the Deals Category]]></comment>
50
+ <frontend_type>text</frontend_type>
51
+ <sort_order>20</sort_order>
52
+ <show_in_default>1</show_in_default>
53
+ <show_in_website>1</show_in_website>
54
+ <show_in_store>1</show_in_store>
55
+ </category>
56
+ <productcount translate="label">
57
+ <label>Product Per Row</label>
58
+ <comment><![CDATA[Enter number of products displayed per row in the list layout. Supports upto 4 products per row]]></comment>
59
+ <frontend_type>text</frontend_type>
60
+ <sort_order>35</sort_order>
61
+ <show_in_default>1</show_in_default>
62
+ <show_in_website>1</show_in_website>
63
+ <show_in_store>1</show_in_store>
64
+ </productcount>
65
+ <autoplay translate="label">
66
+ <label>Autoplay</label>
67
+ <comment><![CDATA[Enter <strong>false</strong> to disable autoplay. All values are in milliseconds]]></comment>
68
+ <frontend_type>text</frontend_type>
69
+ <sort_order>45</sort_order>
70
+ <show_in_default>1</show_in_default>
71
+ <show_in_website>1</show_in_website>
72
+ <show_in_store>1</show_in_store>
73
+ </autoplay>
74
+ </fields>
75
+ </settings>
76
+ <codesnippets>
77
+ <label>Code Snippets</label>
78
+ <frontend_type>text</frontend_type>
79
+ <sort_order>20</sort_order>
80
+ <show_in_default>1</show_in_default>
81
+ <show_in_website>1</show_in_website>
82
+ <show_in_store>1</show_in_store>
83
+ <comment><![CDATA[<div style="font-size:15px;">
84
+ <h4>Product Deals</h4>
85
+ <p>You can use below code snippet to display deals products on frontend. Any number of categorised deals can be created on website.</p>
86
+ <p>1) Use product_count to display limited number of products in this section <b>product_count = 0</b> will display all products in that category</p>
87
+ <p>2) To create separate deals based on the category, you will have to mention the category id in the code snippet while calling it.<br/> Use parameter <b>category_id = "CAT ID"</b></p>
88
+ <b>1. Deal list layout</b><br/>
89
+ <table class="deal-table" border="1" cellpadding="0" cellspacing="1" style="margin-bottom:15px;">
90
+ <tr>
91
+ <td width="130" style="padding:5px"><b style="color:#333;">Admin code</b>
92
+ </td>
93
+ <td style="padding:5px">
94
+ <span class="notice";">{{block type="vsourz_deals/deals" name="deals-products" template="vsourz/deals/deals.phtml" title="Hot Deals List"}}</span>
95
+
96
+ </td>
97
+ </tr>
98
+ <tr>
99
+ <td style="padding:5px">
100
+ <b style="color:#333;">XML code</b>
101
+ </td>
102
+ <td style="padding:5px"><span class="notice";">< block type="vsourz_deals/deals" name="deals-products" template="vsourz/deals/deals.phtml" >
103
+ < action method="setTitle">< title>Deals List< /title>< /action>
104
+ < action method="setCategoryId">< category_id>60< /category_id>< /action>
105
+ < /block></span>
106
+ </td>
107
+ </tr>
108
+ <tr>
109
+ <td style="padding:5px"><b style="color:#333;">PTHML code</b>
110
+ </td>
111
+ <td style="padding:5px"><span class="notice";">
112
+ echo $this->getLayout()->createBlock('vsourz_deals/deals')->setCategoryId('1')->setTitle('Hot Deals')->setTemplate('vsourz/deals/deals.phtml')->toHtml();
113
+ </span></td>
114
+ </tr>
115
+ </table>
116
+ <b>2. Deal Slider</b><br/>
117
+ <table class="deal-table" border="1" cellpadding="0" cellspacing="1" style="margin-bottom:15px;">
118
+ <tr>
119
+ <td width="130" style="padding:5px"><b style="color:#333;">Admin code</b>
120
+ </td>
121
+ <td style="padding:5px">
122
+ <span class="notice";">{{block type="vsourz_deals/deals" name="deals-products" template="vsourz/deals/deals-slider.phtml" title="Hot Deals"}}</span>
123
+ </td>
124
+ </tr>
125
+ <tr>
126
+ <td style="padding:5px">
127
+ <b style="color:#333;">XML code</b>
128
+ </td>
129
+ <td style="padding:5px"><span class="notice";">< block type="vsourz_deals/deals" name="deals-products" template="vsourz/deals/deals-slider.phtml" >
130
+ < action method="setTitle">< title>Deals List< /title>< /action>
131
+ < action method="setCategoryId">< category_id>60< /category_id>< /action>
132
+ < /block></span>
133
+ </td>
134
+ </tr>
135
+ <tr>
136
+ <td style="padding:5px"><b style="color:#333;">PTHML code</b>
137
+ </td>
138
+ <td style="padding:5px"><span class="notice";">
139
+ echo $this->getLayout()->createBlock('vsourz_deals/deals')->setCategoryId('1')->setTitle('Hot Deals')->setTemplate('vsourz/deals/deals-slider.phtml')->toHtml();
140
+ </span></td>
141
+ </tr>
142
+ </table>
143
+ <b>Please Note: In the XML code, we have intentionally placed space in the XML tags. Please remove the spaces while adding the code.</b>
144
+ </div>]]></comment>
145
+ </codesnippets>
146
+ </groups>
147
+ </deals>
148
+ </sections>
149
+ </config>
app/design/frontend/base/default/layout/deals.xml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout version="0.1.0">
3
+ <default>
4
+ <reference name="head">
5
+ <action method="addItem" ifconfig="deals/settings/loadjs"><type>skin_js</type><name>js/deals/jquery-1.10.2.min.js</name></action>
6
+ <action method="addItem"><type>skin_js</type><name>js/deals/jquery.plugin.min.js</name></action>
7
+ <action method="addItem"><type>skin_js</type><name>js/deals/jquery.countdown.min.js</name></action>
8
+ <action method="addItem" ifconfig="deals/settings/loadcarousel"><type>skin_js</type><name>js/deals/owl.carousel.min.js</name></action>
9
+ <action method="addItem" ifconfig="deals/settings/loadcarousel"><type>skin_css</type><name>css/deals/owl.carousel.css</name></action>
10
+ <action method="addItem" ifconfig="deals/settings/loadcarousel"><type>skin_css</type><name>css/deals/owl.transitions.css</name></action>
11
+ <action method="addItem" ifconfig="deals/settings/loadcarousel"><type>skin_css</type><name>css/deals/owl.theme.css</name></action>
12
+ <action method="addItem"><type>skin_css</type><name>css/deals/deals.css</name></action>
13
+ </reference>
14
+ </default>
15
+ </layout>
app/design/frontend/base/default/template/vsourz/deals/deals-slider.phtml ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php $_products = $this->getProducts(); ?>
2
+ <?php $_items = $this->getProductCount(); ?>
3
+ <div class="deal-product deal-slider">
4
+ <div class="block_head_center"><h3><?php echo $this->getTitle(); ?></h3></div>
5
+ <div class="container-slider">
6
+ <div id="owl-demo" class="owl-carousel hot-deals">
7
+ <?php foreach($_products as $_product):?>
8
+ <div class="item">
9
+ <div class="item-inner">
10
+ <div class="item-img">
11
+ <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->escapeHtml($_product->getName()) ?>" class="product-image">
12
+ <img class="main-img lazyOwl" data-src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(250,250) ?>" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>"/>
13
+ </a>
14
+ </div>
15
+ <div class="item-info">
16
+ <div class="info-inner">
17
+ <div class="item-title"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->escapeHtml($_product->getName()) ?>"><?php echo $this->escapeHtml($_product->getName()) ?></a></div>
18
+ <?php echo $this->getPriceHtml($_product, true, '-new') ?>
19
+ <div class="discount">
20
+ <?php echo 'Discount: <span>'.$this->getDiscountPer($_product).'</span>,';?>
21
+ <?php echo 'You save: <span>'.$this->getDiscountAmt($_product).'</span>'; ?>
22
+ </div>
23
+ <?php echo $this->getReviewsSummaryHtml($_product, 'short',true) ?>
24
+ <div data-countdown="<?php echo date('Y/m/d', strtotime($_product['special_to_date'])); ?>" class="timer"></div>
25
+ <div class="actions">
26
+ <?php if($_product->isSaleable()): ?>
27
+ <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><?php echo $this->__('Add to Cart') ?></button>
28
+ <?php else: ?>
29
+ <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
30
+ <?php endif; ?>
31
+
32
+ <ul class="add-to-links">
33
+ <?php if ($this->helper('wishlist')->isAllow()) : ?>
34
+ <li><a href="<?php echo $this->getAddToWishlistUrl($_product) ?>" class="link-wishlist" title="Add to Wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
35
+ <?php endif; ?>
36
+ <?php if ($_compareUrl = $this->getAddToCompareUrl($_product)): ?>
37
+ <li><a href="<?php echo $_compareUrl ?>" class="link-compare" title="Add to Compare"><?php echo $this->__('Add to Compare') ?></a></li>
38
+ <?php endif; ?>
39
+ </ul>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </div>
44
+
45
+ </div>
46
+ <?php endforeach; ?>
47
+ </div>
48
+ </div>
49
+ </div>
50
+ <script type="text/javascript">
51
+ jQuery('[data-countdown]').each(function(){
52
+ var $this = $(this), finaldate = jQuery(this).data('countdown');
53
+ finaldate = new Date(finaldate);
54
+ jQuery(this).countdown({until: finaldate, padZeroes: true});
55
+ })
56
+ </script>
57
+ <?php $autoplay = Mage::getStoreConfig('deals/settings/autoplay'); ?>
58
+ <script type="text/javascript">
59
+ //<![CDATA
60
+ jQuery(document).ready(function() {
61
+
62
+ jQuery(".owl-carousel.hot-deals").owlCarousel({
63
+ items : 2,
64
+ itemsCustom : [
65
+ [0, 1],
66
+ [450, 1],
67
+ [600, 1],
68
+ [700, 1],
69
+ [1000, 1],
70
+ [1200, 1],
71
+ [1400, 1],
72
+ [1600, 1]
73
+ ],
74
+ lazyLoad : true,
75
+ navigation : true,
76
+ pagination : false,
77
+ autoPlay: <?php echo $autoplay ?>,
78
+ navigationText: [
79
+ "<i class='icon-left'></i>",
80
+ "<i class='icon-right'></i>"],
81
+ });
82
+ });
83
+ //]]>
84
+ </script>
app/design/frontend/base/default/template/vsourz/deals/deals.phtml ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php $_products = $this->getProducts(); ?>
2
+ <?php $_items = $this->getProductCount(); ?>
3
+ <div class="deal-product">
4
+ <div class="block_head_center"><h3><?php echo $this->getTitle(); ?></h3></div>
5
+ <div class="container-slider">
6
+ <div id="" class="hot-deals list list-<?php echo Mage::getStoreConfig('deals/settings/productcount')?>">
7
+ <?php foreach($_products as $_product):?>
8
+ <div class="item">
9
+ <div class="item-inner">
10
+ <div data-countdown="<?php echo date('Y/m/d', strtotime($_product['special_to_date'])); ?>" class="timer"></div>
11
+ <div class="item-img">
12
+ <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->escapeHtml($_product->getName()) ?>" class="product-image">
13
+ <img class="main-img" src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(300,300) ?>" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>"/>
14
+ </a>
15
+ </div>
16
+ <div class="item-info">
17
+ <div class="info-inner">
18
+ <div class="item-title"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->escapeHtml($_product->getName()) ?>"><?php echo $this->escapeHtml($_product->getName()) ?></a></div>
19
+ <?php echo $this->getPriceHtml($_product, true, '-new') ?>
20
+ <div class="discount">
21
+ <?php echo 'Discount: <span>'.$this->getDiscountPer($_product).'</span>,';?>
22
+ <?php echo 'You save: <span>'.$this->getDiscountAmt($_product).'</span>'; ?>
23
+ </div>
24
+ <?php echo $this->getReviewsSummaryHtml($_product, 'short',true) ?>
25
+ <div class="actions">
26
+ <?php if($_product->isSaleable()): ?>
27
+ <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><?php echo $this->__('Add to Cart') ?></button>
28
+ <?php else: ?>
29
+ <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
30
+ <?php endif; ?>
31
+ <ul class="add-to-links">
32
+ <?php if ($this->helper('wishlist')->isAllow()) : ?>
33
+ <li><a href="<?php echo $this->getAddToWishlistUrl($_product) ?>" class="link-wishlist" title="Add to Wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
34
+ <?php endif; ?>
35
+ <?php if ($_compareUrl = $this->getAddToCompareUrl($_product)): ?>
36
+ <li><a href="<?php echo $_compareUrl ?>" class="link-compare" title="Add to Compare"><?php echo $this->__('Add to Compare') ?></a></li>
37
+ <?php endif; ?>
38
+ </ul>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ <?php endforeach; ?>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ <script type="text/javascript">
49
+ jQuery('[data-countdown]').each(function(){
50
+ var $this = $(this), finaldate = jQuery(this).data('countdown');
51
+ finaldate = new Date(finaldate);
52
+ jQuery(this).countdown({until: finaldate, padZeroes: true});
53
+ })
54
+ </script>
app/etc/modules/Vsourz_Deals.xml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Open Software License (OSL 3.0)
9
+ * that is bundled with this package in the file LICENSE.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/osl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magentocommerce.com so we can send you a copy immediately.
15
+ *
16
+ * @category Vsourz
17
+ * @package Vsourz_Layerslider
18
+ * @copyright Copyright (c) 2014 Vsourz Ltd
19
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
+ */
21
+ -->
22
+ <config>
23
+ <modules>
24
+ <Vsourz_Deals>
25
+ <active>true</active>
26
+ <codePool>community</codePool>
27
+ </Vsourz_Deals>
28
+ </modules>
29
+ </config>
package.xml ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>Vsourz_Hot_Deals</name>
4
+ <version>1.0.0</version>
5
+ <stability>stable</stability>
6
+ <license uri="http://opensource.org/licenses/MIT">Massachusetts Institute of Technology License (MITL)</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>Hot Deals allows you to list your product in the deals section with attractive countdown timer.</summary>
10
+ <description>Product Deals:&#xD;
11
+ &#xD;
12
+ Create any number of deals using our Product Deals extension. It will provide you the ability to list your products with Special Prices in the Deals section. It will encourage customers to buy from the website and help enhance your sales.&#xD;
13
+ &#xD;
14
+ It will take 10 mins to setup the product deals on your website. Follow these steps to have it setup.&#xD;
15
+ &#xD;
16
+ 1) Download the extension from Magento Connect&#xD;
17
+ 2) Note the category Id for Product deals category&#xD;
18
+ 3) Do general setting for the extension from System &gt;&gt; Configuration&#xD;
19
+ 4) Add the Code Snippet given below to show the product deals on frontend.&#xD;
20
+ &#xD;
21
+ Features&#xD;
22
+ =======&#xD;
23
+ 1. Categorized products deals&#xD;
24
+ 2. Slide and Listing layout&#xD;
25
+ 3. Show countdown - Flexible countdown timer(Days:Hours:Minutes:Seconds)&#xD;
26
+ 4. Shows discount percentage and discount amount on product listing page&#xD;
27
+ 5. Facility to limit number of products displayed&#xD;
28
+ 6. Responsive layout&#xD;
29
+ 7. Support all types of product (Simple, Virtual, Downloadable, Configurable, Grouped, Bundled)&#xD;
30
+ 8. Easy to install and easy to upgrade with no CORE code modifications&#xD;
31
+ 9. Easy to customize front-end via HTML/CSS&#xD;
32
+ &#xD;
33
+ How to use?&#xD;
34
+ ==============&#xD;
35
+ &#xD;
36
+ 1) Install extension from Magento Connect&#xD;
37
+ &#xD;
38
+ 2) Goto Catalog &gt;&gt; Manage Categories. You will see a category named Product Deals created. Copy the ID of the category.&#xD;
39
+ &#xD;
40
+ 3) Go to : System-&gt; Configuration-&gt; Vsourz Deals-&gt; Product Deals and follow below steps&#xD;
41
+ &#xD;
42
+ **** General Setting&#xD;
43
+ a. Load JQuery Library: Select YES if JQuery library in not included in your Magento Project&#xD;
44
+ &#xD;
45
+ b. Load OwlCarousel JS/CSS: If you have already included OwlCarousal then select "No" otherwise "Yes"&#xD;
46
+ &#xD;
47
+ c. Category Id: Insert the category Id of the product deals category.&#xD;
48
+ &#xD;
49
+ Please Note: This is a default category id. To list the products of particular category, you can override the default id from the code snippet given below.&#xD;
50
+ &#xD;
51
+ d. Product Per Row: Enter number of products you want to show in single row. Supports upto fours products per row&#xD;
52
+ &#xD;
53
+ 4) Enter the Special Price, its Start date and End date to list the product in Deals section automatically.&#xD;
54
+ &#xD;
55
+ How to call the deal section on frontend?&#xD;
56
+ &#xD;
57
+ **** Shortcodes ****&#xD;
58
+ You can use below code snippet to display deals products on frontend. Any number of categorised deals can be created on website.&#xD;
59
+ &#xD;
60
+ 1) Use product_count to display limited number of products in this section product_count = 0 will display all products in that category&#xD;
61
+ &#xD;
62
+ 2) To create separate deals based on the category, you will have to mention the category id in the code snippet while calling it.&#xD;
63
+ Use parameter category_id = "CAT ID"&#xD;
64
+ &#xD;
65
+ 1. Deals list layout&#xD;
66
+ &#xD;
67
+ Admin code: {{block type="vsourz_deals/deals" name="deals-products" template="vsourz/deals/deals.phtml" title="Hot Deals List"}}&#xD;
68
+ &#xD;
69
+ XML code: &lt; block type="vsourz_deals/deals" name="deals-products" template="vsourz/deals/deals.phtml" &gt; &lt; action method="setTitle"&gt;&lt; title&gt;Deals List&lt; /title&gt;&lt; /action&gt; &lt; action method="setCategoryId"&gt;&lt; category_id&gt;60&lt; /category_id&gt;&lt; /action&gt; &lt; /block&gt;&#xD;
70
+ &#xD;
71
+ PTHML code: echo $this-&gt;getLayout()-&gt;createBlock('vsourz_deals/deals')-&gt;setCategoryId('1')-&gt;setTitle('Hot Deals')-&gt;setTemplate('vsourz/deals/deals.phtml')-&gt;toHtml();&#xD;
72
+ &#xD;
73
+ 2. Deals Slide Layout&#xD;
74
+ &#xD;
75
+ Admin code: {{block type="vsourz_deals/deals" name="deals-products" template="vsourz/deals/deals-slider.phtml" title="Hot Deals"}}&#xD;
76
+ &#xD;
77
+ XML code: &lt; block type="vsourz_deals/deals" name="deals-products" template="vsourz/deals/deals-slider.phtml" &gt; &lt; action method="setTitle"&gt;&lt; title&gt;Deals List&lt; /title&gt;&lt; /action&gt; &lt; action method="setCategoryId"&gt;&lt; category_id&gt;60&lt; /category_id&gt;&lt; /action&gt; &lt; /block&gt;&#xD;
78
+ &#xD;
79
+ PTHML code: echo $this-&gt;getLayout()-&gt;createBlock('vsourz_deals/deals')-&gt;setCategoryId('1')-&gt;setTitle('Hot Deals')-&gt;setTemplate('vsourz/deals/deals-slider.phtml')-&gt;toHtml();&#xD;
80
+ &#xD;
81
+ Please Note: In the XML code, we have intentionally placed space in the XML tags. Please remove the spaces while adding the code.&#xD;
82
+ </description>
83
+ <notes>This is a First Release !!</notes>
84
+ <authors><author><name>Vsourz Digital</name><user>MAG002979323</user><email>mehul@vsourz.com</email></author></authors>
85
+ <date>2015-05-27</date>
86
+ <time>09:16:01</time>
87
+ <contents><target name="magecommunity"><dir name="Vsourz"><dir name="Deals"><dir name="Block"><file name="Deals.php" hash="afbe05405880194e6671a414c572983a"/></dir><dir name="Helper"><file name="Data.php" hash="52a9032e0f12bc3cd0eb87bb45b48478"/></dir><dir name="Model"><file name="Deals.php" hash="e25d636e58f9f58dc202827b64abfd75"/><dir name="Source"><file name="Truefalse.php" hash="32f870c3200a4dc0e2e931e1715ba5c3"/></dir></dir><dir name="data"><dir name="deals_setup"><file name="data-install-0.1.0.php" hash="50a8b87ec2ee54e543a3f0e6d30b7e8c"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="bead355fab11d2a2680fec3f5c751b5c"/><file name="config.xml" hash="4443cb52b911b409b0a8ce7213b4ef08"/><file name="system.xml" hash="ed490e725e2c944d2d90397bdbc05979"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Vsourz_Deals.xml" hash="da7a1c51758dee2f646e9f1cf8414309"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="deals.xml" hash="0e8a8a4ab3cdbee8f4f0e54a3b59b48c"/></dir><dir name="template"><dir name="vsourz"><dir name="deals"><file name="deals-slider.phtml" hash="23bc1f531e1c8e0eba64026bcf367a23"/><file name="deals.phtml" hash="61d94deef55fc93afaa53a4b6bd8995c"/></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="deals"><file name="deals.css" hash="5b89047184bad153fa6eb189de489d7b"/><file name="owl.carousel.css" hash="d49fbfc6c0444e7c67b2ee7ae284a293"/><file name="owl.theme.css" hash="a361030c37b888ccf0bedb5cf308bfac"/><file name="owl.transitions.css" hash="b1bdaeac4065bf67a7d7a06213192964"/></dir></dir><dir name="js"><dir name="deals"><file name="jquery.countdown.min.js" hash="b18fc832a3544daa2df3304c7712b558"/><file name="jquery.plugin.min.js" hash="2548a741b69e479e2159819c2e9d24da"/><file name="owl.carousel.min.js" hash="8c52f27fcac36c7667f8fb846e1e94d5"/></dir></dir></dir></dir></dir></target></contents>
88
+ <compatible/>
89
+ <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
90
+ </package>
skin/frontend/base/default/css/deals/deals.css ADDED
@@ -0,0 +1,274 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /***** Deal *******/
2
+ .deal-product .list .timer
3
+ {
4
+ color: #fff;
5
+ font-size: 10px;
6
+ left: -5px;
7
+ margin-bottom: 20px;
8
+ position: absolute;
9
+ text-transform: uppercase;
10
+ top: 20px;
11
+ transition: all 0.5s ease-in-out 0s;
12
+ z-index: 99;
13
+ text-align:center;
14
+ }
15
+ .deal-product .list .timer .countdown-amount
16
+ {
17
+ font-weight:bold;
18
+ font-size:14px;
19
+ }
20
+ .list .countdown-row .countdown-section
21
+ {
22
+ background:#4c4c4c;
23
+ display: block;
24
+ height: auto;
25
+ line-height: 15px;
26
+ margin-bottom: 8px;
27
+ padding: 15% 0;
28
+ position: relative;
29
+ text-align: center;
30
+ width: 55px;
31
+ }
32
+ .list .countdown-row .countdown-section:before
33
+ {
34
+ border-color:#3b3b3b transparent transparent;
35
+ border-style: solid;
36
+ border-width: 7px 0 0 6px;
37
+ content: "";
38
+ height: 0;
39
+ left: 0;
40
+ position: absolute;
41
+ top: 100%;
42
+ width: 0;
43
+ }
44
+ .list .countdown-row .countdown-section .countdown-period{display:block;}
45
+ .container-slider{margin:0 -15px;}
46
+
47
+ .deal-product .item-inner{
48
+ position:relative;
49
+ border:1px solid #ececec;
50
+ text-align:center;
51
+ margin-bottom:1px;
52
+ background:#fbfbfb;
53
+ padding:0;
54
+ }
55
+ .deal-product .item-inner .product-image
56
+ {
57
+ border:none;
58
+ }
59
+ .deal-product .item-inner .product-image img{width:100%;}
60
+ .deal-product .item-inner .item-title
61
+ {
62
+ font-size:15px;
63
+ font-weight:bold;
64
+ }
65
+ .deal-product .item{padding:0;}
66
+ .hot-deals.list .item{
67
+ width:25%;
68
+ float:left;
69
+ padding:0 15px;
70
+ margin-bottom:30px;
71
+ }
72
+ .hot-deals.list .item .item-inner{overflow:visible;}
73
+ .hot-deals.list-4 .item{width:25%;}
74
+ .hot-deals.list-3 .item{width:33.33%;}
75
+ .hot-deals.list-2 .item{width:50%;}
76
+ .hot-deals.list:after
77
+ {
78
+ content:"";
79
+ display:block;
80
+ clear:both;
81
+ }
82
+ .hot-deals .item-img
83
+ {
84
+ border-bottom:1px solid #ececec;
85
+ margin-bottom:10px;
86
+ }
87
+ .deal-product .price-box p{margin:0;}
88
+ .deal-product .price-box .old-price .price{
89
+
90
+ font-size:12px;
91
+ }
92
+ .deal-product .price-box .price,
93
+ .deal-product .price-box .special-price .price
94
+ {
95
+ font-size:18px;
96
+ color:#424242;
97
+ }
98
+ .deal-product .deal-product .actions{overflow:hidden;
99
+ position:relative;
100
+ text-align:center;
101
+ }
102
+ .deal-product .hot-deals .add-to-links li
103
+ {
104
+ display:block;
105
+ margin:0;
106
+ }
107
+ .deal-product .hot-deals .owl-controls.clickable .owl-pagination{bottom:28px;}
108
+ .deal-product .hot-deals .owl-pagination{padding-top:15px;}
109
+
110
+ /**** Slider Layout *******/
111
+ .owl-carousel.hot-deals .item-info,
112
+ .owl-carousel.hot-deals .item-img
113
+ {
114
+ float:left;
115
+ width:50%;
116
+ padding:0 15px;
117
+ margin:0;
118
+ border:none;
119
+ text-align:left;
120
+ }
121
+ .owl-carousel.hot-deals .item-inner{overflow:hidden;border:none;background:none;box-shadow:none;}
122
+ .deal-slider .block_head_center h3:before
123
+ {
124
+ border-color: transparent #2E8AB8 transparent transparent;
125
+ border-style: solid;
126
+ border-width: 0 7px 10px 0;
127
+ content: "";
128
+ display: block;
129
+ height: 0;
130
+ left: 0;
131
+ position: absolute;
132
+ top: 100%;
133
+ width: 0;
134
+ }
135
+ .deal-slider .block_head_center h3:after
136
+ {
137
+ border-color: transparent transparent transparent #3399cc;
138
+ border-style: solid;
139
+ border-width: 27px 0 27px 27px;
140
+ content: "";
141
+ display: block;
142
+ height: 0;
143
+ left: 99.99%;
144
+ position: absolute;
145
+ top: 0;
146
+ width: 0;
147
+ }
148
+ .deal-slider .block_head_center
149
+ {
150
+ position:relative;
151
+ min-height:55px;
152
+ }
153
+ .deal-slider .block_head_center h3
154
+ {
155
+ background: #3399cc;
156
+ color: #fff;
157
+ display: block;
158
+ height: 54px;
159
+ left: -7px;
160
+ line-height: 54px;
161
+ padding: 0 20px;
162
+ position: absolute;
163
+ top: 0;
164
+ white-space: nowrap;
165
+ font-weight:bold;
166
+ }
167
+ .deal-product .owl-carousel .timer
168
+ {
169
+ color: #ccc;
170
+ font-size: 10px;
171
+ margin-bottom: 10px;
172
+ text-transform: uppercase;
173
+ z-index: 99;
174
+ }
175
+ .owl-carousel.hot-deals .countdown-row .countdown-section
176
+ {
177
+ display: inline-block;
178
+ height: auto;
179
+ line-height: 15px;
180
+ padding: 5px 0;
181
+ position: relative;
182
+ text-align: center;
183
+ width: 60px;
184
+ float:left;
185
+ }
186
+ .owl-carousel.hot-deals .countdown-row .countdown-section + .countdown-section
187
+ {
188
+ border-left:1px solid #ccc;
189
+ }
190
+ .owl-carousel.hot-deals .countdown-row .countdown-section .countdown-amount
191
+ {
192
+ font-size:14px;
193
+ font-weight:bold;
194
+ color:#333;
195
+ }
196
+ .owl-carousel.hot-deals .countdown-row
197
+ {
198
+ border:1px solid #ccc;
199
+ overflow:hidden;
200
+ display:inline-block;
201
+ }
202
+ .owl-carousel.hot-deals .countdown-row .countdown-section .countdown-period{display:block;}
203
+ .owl-carousel.hot-deals.owl-theme .owl-controls
204
+ {
205
+ position: absolute;
206
+ right: 15px;
207
+ top: -51px;
208
+ }
209
+ .hot-deals .no-rating{margin:0 0 7px 0;}
210
+ .hot-deals .discount{margin:0 0 7px 0;}
211
+ .hot-deals .discount span{font-weight:bold;}
212
+ .owl-carousel.hot-deals.owl-theme .owl-controls .owl-buttons div
213
+ {
214
+ background:#ddd;
215
+ color:#111;
216
+ width:30px;
217
+ height:30px;
218
+ text-indent:0;
219
+ display:inline-block;
220
+ position:relative;
221
+ margin:0 3px;
222
+ line-height:30px;
223
+ text-align:center;
224
+ }
225
+ .owl-carousel.hot-deals.owl-theme .owl-controls .owl-buttons div i
226
+ {
227
+ font-style:normal;
228
+ }
229
+ .owl-carousel.hot-deals.owl-theme .owl-controls .owl-buttons div:hover
230
+ {
231
+ opacity:0.8;
232
+ }
233
+ .owl-carousel.hot-deals.owl-theme .owl-controls .owl-buttons div.owl-prev .icon-left:before
234
+ {
235
+ content:"<";
236
+ display:inline-block;
237
+ }
238
+ .owl-carousel.hot-deals.owl-theme .owl-controls .owl-buttons div.owl-next .icon-right:before
239
+ {
240
+ content:">";
241
+ display:inline-block;
242
+ }
243
+ .deal-slider .container-slider{margin:0;padding:15px 0 0 0;}
244
+
245
+ @media (max-width: 1240px) {
246
+
247
+ }
248
+ @media (max-width: 1022px) {
249
+ .hot-deals.list-4 .item,
250
+ .hot-deals.list-3 .item,
251
+ .hot-deals.list-2 .item,
252
+ .hot-deals.list .item
253
+ {
254
+ width:33.33%;
255
+ }
256
+ }
257
+ @media (max-width: 767px) {
258
+ .hot-deals.list-4 .item,
259
+ .hot-deals.list-3 .item,
260
+ .hot-deals.list-2 .item,
261
+ .hot-deals.list .item
262
+ {
263
+ width:100%;
264
+ }
265
+ }
266
+ @media (max-width: 479px) {
267
+ .hot-deals.list-4 .item,
268
+ .hot-deals.list-3 .item,
269
+ .hot-deals.list-2 .item,
270
+ .hot-deals.list .item
271
+ {
272
+ width:100%;
273
+ }
274
+ }
skin/frontend/base/default/css/deals/owl.carousel.css ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Core Owl Carousel CSS File
3
+ * v1.3.3
4
+ */
5
+
6
+ /* clearfix */
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
+ .owl-carousel{
17
+ display: none;
18
+ position: relative;
19
+ width: 100%;
20
+ -ms-touch-action: pan-y;
21
+ }
22
+ .owl-carousel .owl-wrapper{
23
+ display: none;
24
+ position: relative;
25
+ -webkit-transform: translate3d(0px, 0px, 0px);
26
+ }
27
+ .owl-carousel .owl-wrapper-outer{
28
+ overflow: hidden;
29
+ position: relative;
30
+ width: 100%;
31
+ }
32
+ .owl-carousel .owl-wrapper-outer.autoHeight{
33
+ -webkit-transition: height 500ms ease-in-out;
34
+ -moz-transition: height 500ms ease-in-out;
35
+ -ms-transition: height 500ms ease-in-out;
36
+ -o-transition: height 500ms ease-in-out;
37
+ transition: height 500ms ease-in-out;
38
+ }
39
+
40
+ .owl-carousel .owl-item{
41
+ float: left;
42
+ }
43
+ .owl-controls .owl-page,
44
+ .owl-controls .owl-buttons div{
45
+ cursor: pointer;
46
+ }
47
+ .owl-controls {
48
+ -webkit-user-select: none;
49
+ -khtml-user-select: none;
50
+ -moz-user-select: none;
51
+ -ms-user-select: none;
52
+ user-select: none;
53
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
54
+ }
55
+
56
+ /* mouse grab icon */
57
+ .grabbing {
58
+ cursor:url(grabbing.png) 8 8, move;
59
+ }
60
+
61
+ /* fix */
62
+ .owl-carousel .owl-wrapper,
63
+ .owl-carousel .owl-item{
64
+ -webkit-backface-visibility: hidden;
65
+ -moz-backface-visibility: hidden;
66
+ -ms-backface-visibility: hidden;
67
+ -webkit-transform: translate3d(0,0,0);
68
+ -moz-transform: translate3d(0,0,0);
69
+ -ms-transform: translate3d(0,0,0);
70
+ }
71
+
skin/frontend/base/default/css/deals/owl.theme.css ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Owl Carousel Owl Demo Theme
3
+ * v1.3.3
4
+ */
5
+
6
+ .owl-theme .owl-controls{
7
+ margin-top: 0px;
8
+ text-align: center;
9
+ }
10
+
11
+ /* Styling Next and Prev buttons */
12
+
13
+ .owl-theme .owl-controls .owl-buttons div
14
+ {
15
+ background:url(../images/bg-control.png) no-repeat scroll 0 0 transparent;
16
+ border: 0 none;
17
+ height: 44px;
18
+ position: absolute;
19
+ text-indent: -9999px;
20
+ width: 44px;
21
+
22
+ transition: all 0.3s ease 0s;
23
+ -moz-transition: all 0.3s ease 0s;
24
+ -webkit-transition: all 0.3s ease 0s;
25
+ -o-transition: all 0.3s ease 0s;
26
+ }
27
+
28
+ .owl-theme .owl-controls .owl-buttons .owl-prev
29
+ {
30
+ background-position: 0 0;
31
+ position:absolute;
32
+ left:0;
33
+ top:50%;
34
+ }
35
+ .owl-theme .owl-controls .owl-buttons .owl-next
36
+ {
37
+ background-position: 100% 0;
38
+ position:absolute;
39
+ right:0;
40
+ top:50%;
41
+ }
42
+ .owl-theme .owl-controls .owl-buttons .owl-prev:hover
43
+ {
44
+ background-color: #262626;
45
+ background-position: 0 100%;
46
+ }
47
+ .owl-theme .owl-controls .owl-buttons .owl-next:hover
48
+ {
49
+ background-color: #262626;
50
+ background-position: 100% 100%;
51
+ }
52
+
53
+ /* Styling Pagination*/
54
+
55
+ .owl-theme .owl-controls .owl-page{
56
+ display: inline-block;
57
+ zoom: 1;
58
+ *display: inline;/*IE7 life-saver */
59
+ margin:0 3px;
60
+ }
61
+ .owl-theme .owl-controls .owl-page span{
62
+ display: block;
63
+ background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
64
+ border-radius: 20px;
65
+ box-shadow: 0 0 4px rgba(216, 216, 216, 1) inset;
66
+ -webkit-box-shadow:0 0 4px rgba(216, 216, 216, 1) inset;
67
+ -moz-box-shadow:0 0 4px rgba(216, 216, 216, 1) inset;
68
+ -o-shadow:0 0 4px rgba(216, 216, 216, 1) inset;
69
+ cursor: pointer;
70
+ display: block;
71
+ height: 12px;
72
+ text-indent: -9999px;
73
+ width: 12px;
74
+ z-index: 9;
75
+ margin:0 0 5px 0;
76
+ }
77
+
78
+ .owl-theme .owl-controls .owl-page.active span,
79
+ .owl-theme .owl-controls.clickable .owl-page:hover span{
80
+ background: none repeat scroll 0 0 #d5d5d5;
81
+ }
82
+
83
+ /* If PaginationNumbers is true */
84
+
85
+ .owl-theme .owl-controls .owl-page span.owl-numbers{
86
+ height: auto;
87
+ width: auto;
88
+ color: #FFF;
89
+ padding: 2px 10px;
90
+ font-size: 12px;
91
+ -webkit-border-radius: 30px;
92
+ -moz-border-radius: 30px;
93
+ border-radius: 30px;
94
+ }
95
+
96
+ /* preloading images */
97
+ .owl-item.loading{
98
+ min-height: 150px;
99
+ background: url(AjaxLoader.gif) no-repeat center center
100
+ }
skin/frontend/base/default/css/deals/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/js/deals/jquery.countdown.min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ /* http://keith-wood.name/countdown.html
2
+ Countdown for jQuery v2.0.1.
3
+ Written by Keith Wood (kbwood{at}iinet.com.au) January 2008.
4
+ Available under the MIT (https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt) license.
5
+ Please attribute the author if you use it. */
6
+ (function($){var w='countdown';var Y=0;var O=1;var W=2;var D=3;var H=4;var M=5;var S=6;$.JQPlugin.createPlugin({name:w,defaultOptions:{until:null,since:null,timezone:null,serverSync:null,format:'dHMS',layout:'',compact:false,padZeroes:false,significant:0,description:'',expiryUrl:'',expiryText:'',alwaysExpire:false,onExpiry:null,onTick:null,tickInterval:1},regionalOptions:{'':{labels:['Years','Months','Weeks','Days','Hours','Minutes','Seconds'],labels1:['Year','Month','Week','Day','Hour','Minute','Second'],compactLabels:['y','m','w','d'],whichLabels:null,digits:['0','1','2','3','4','5','6','7','8','9'],timeSeparator:':',isRTL:false}},_getters:['getTimes'],_rtlClass:w+'-rtl',_sectionClass:w+'-section',_amountClass:w+'-amount',_periodClass:w+'-period',_rowClass:w+'-row',_holdingClass:w+'-holding',_showClass:w+'-show',_descrClass:w+'-descr',_timerElems:[],_init:function(){var c=this;this._super();this._serverSyncs=[];var d=(typeof Date.now=='function'?Date.now:function(){return new Date().getTime()});var e=(window.performance&&typeof window.performance.now=='function');function timerCallBack(a){var b=(a<1e12?(e?(performance.now()+performance.timing.navigationStart):d()):a||d());if(b-g>=1000){c._updateElems();g=b}f(timerCallBack)}var f=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||null;var g=0;if(!f||$.noRequestAnimationFrame){$.noRequestAnimationFrame=null;setInterval(function(){c._updateElems()},980)}else{g=window.animationStartTime||window.webkitAnimationStartTime||window.mozAnimationStartTime||window.oAnimationStartTime||window.msAnimationStartTime||d();f(timerCallBack)}},UTCDate:function(a,b,c,e,f,g,h,i){if(typeof b=='object'&&b.constructor==Date){i=b.getMilliseconds();h=b.getSeconds();g=b.getMinutes();f=b.getHours();e=b.getDate();c=b.getMonth();b=b.getFullYear()}var d=new Date();d.setUTCFullYear(b);d.setUTCDate(1);d.setUTCMonth(c||0);d.setUTCDate(e||1);d.setUTCHours(f||0);d.setUTCMinutes((g||0)-(Math.abs(a)<30?a*60:a));d.setUTCSeconds(h||0);d.setUTCMilliseconds(i||0);return d},periodsToSeconds:function(a){return a[0]*31557600+a[1]*2629800+a[2]*604800+a[3]*86400+a[4]*3600+a[5]*60+a[6]},_instSettings:function(a,b){return{_periods:[0,0,0,0,0,0,0]}},_addElem:function(a){if(!this._hasElem(a)){this._timerElems.push(a)}},_hasElem:function(a){return($.inArray(a,this._timerElems)>-1)},_removeElem:function(b){this._timerElems=$.map(this._timerElems,function(a){return(a==b?null:a)})},_updateElems:function(){for(var i=this._timerElems.length-1;i>=0;i--){this._updateCountdown(this._timerElems[i])}},_optionsChanged:function(a,b,c){if(c.layout){c.layout=c.layout.replace(/&lt;/g,'<').replace(/&gt;/g,'>')}this._resetExtraLabels(b.options,c);var d=(b.options.timezone!=c.timezone);$.extend(b.options,c);this._adjustSettings(a,b,c.until!=null||c.since!=null||d);var e=new Date();if((b._since&&b._since<e)||(b._until&&b._until>e)){this._addElem(a[0])}this._updateCountdown(a,b)},_updateCountdown:function(a,b){a=a.jquery?a:$(a);b=b||this._getInst(a);if(!b){return}a.html(this._generateHTML(b)).toggleClass(this._rtlClass,b.options.isRTL);if($.isFunction(b.options.onTick)){var c=b._hold!='lap'?b._periods:this._calculatePeriods(b,b._show,b.options.significant,new Date());if(b.options.tickInterval==1||this.periodsToSeconds(c)%b.options.tickInterval==0){b.options.onTick.apply(a[0],[c])}}var d=b._hold!='pause'&&(b._since?b._now.getTime()<b._since.getTime():b._now.getTime()>=b._until.getTime());if(d&&!b._expiring){b._expiring=true;if(this._hasElem(a[0])||b.options.alwaysExpire){this._removeElem(a[0]);if($.isFunction(b.options.onExpiry)){b.options.onExpiry.apply(a[0],[])}if(b.options.expiryText){var e=b.options.layout;b.options.layout=b.options.expiryText;this._updateCountdown(a[0],b);b.options.layout=e}if(b.options.expiryUrl){window.location=b.options.expiryUrl}}b._expiring=false}else if(b._hold=='pause'){this._removeElem(a[0])}},_resetExtraLabels:function(a,b){for(var n in b){if(n.match(/[Ll]abels[02-9]|compactLabels1/)){a[n]=b[n]}}for(var n in a){if(n.match(/[Ll]abels[02-9]|compactLabels1/)&&typeof b[n]==='undefined'){a[n]=null}}},_adjustSettings:function(a,b,c){var d;var e=0;var f=null;for(var i=0;i<this._serverSyncs.length;i++){if(this._serverSyncs[i][0]==b.options.serverSync){f=this._serverSyncs[i][1];break}}if(f!=null){e=(b.options.serverSync?f:0);d=new Date()}else{var g=($.isFunction(b.options.serverSync)?b.options.serverSync.apply(a[0],[]):null);d=new Date();e=(g?d.getTime()-g.getTime():0);this._serverSyncs.push([b.options.serverSync,e])}var h=b.options.timezone;h=(h==null?-d.getTimezoneOffset():h);if(c||(!c&&b._until==null&&b._since==null)){b._since=b.options.since;if(b._since!=null){b._since=this.UTCDate(h,this._determineTime(b._since,null));if(b._since&&e){b._since.setMilliseconds(b._since.getMilliseconds()+e)}}b._until=this.UTCDate(h,this._determineTime(b.options.until,d));if(e){b._until.setMilliseconds(b._until.getMilliseconds()+e)}}b._show=this._determineShow(b)},_preDestroy:function(a,b){this._removeElem(a[0]);a.empty()},pause:function(a){this._hold(a,'pause')},lap:function(a){this._hold(a,'lap')},resume:function(a){this._hold(a,null)},toggle:function(a){var b=$.data(a,this.name)||{};this[!b._hold?'pause':'resume'](a)},toggleLap:function(a){var b=$.data(a,this.name)||{};this[!b._hold?'lap':'resume'](a)},_hold:function(a,b){var c=$.data(a,this.name);if(c){if(c._hold=='pause'&&!b){c._periods=c._savePeriods;var d=(c._since?'-':'+');c[c._since?'_since':'_until']=this._determineTime(d+c._periods[0]+'y'+d+c._periods[1]+'o'+d+c._periods[2]+'w'+d+c._periods[3]+'d'+d+c._periods[4]+'h'+d+c._periods[5]+'m'+d+c._periods[6]+'s');this._addElem(a)}c._hold=b;c._savePeriods=(b=='pause'?c._periods:null);$.data(a,this.name,c);this._updateCountdown(a,c)}},getTimes:function(a){var b=$.data(a,this.name);return(!b?null:(b._hold=='pause'?b._savePeriods:(!b._hold?b._periods:this._calculatePeriods(b,b._show,b.options.significant,new Date()))))},_determineTime:function(k,l){var m=this;var n=function(a){var b=new Date();b.setTime(b.getTime()+a*1000);return b};var o=function(a){a=a.toLowerCase();var b=new Date();var c=b.getFullYear();var d=b.getMonth();var e=b.getDate();var f=b.getHours();var g=b.getMinutes();var h=b.getSeconds();var i=/([+-]?[0-9]+)\s*(s|m|h|d|w|o|y)?/g;var j=i.exec(a);while(j){switch(j[2]||'s'){case's':h+=parseInt(j[1],10);break;case'm':g+=parseInt(j[1],10);break;case'h':f+=parseInt(j[1],10);break;case'd':e+=parseInt(j[1],10);break;case'w':e+=parseInt(j[1],10)*7;break;case'o':d+=parseInt(j[1],10);e=Math.min(e,m._getDaysInMonth(c,d));break;case'y':c+=parseInt(j[1],10);e=Math.min(e,m._getDaysInMonth(c,d));break}j=i.exec(a)}return new Date(c,d,e,f,g,h,0)};var p=(k==null?l:(typeof k=='string'?o(k):(typeof k=='number'?n(k):k)));if(p)p.setMilliseconds(0);return p},_getDaysInMonth:function(a,b){return 32-new Date(a,b,32).getDate()},_normalLabels:function(a){return a},_generateHTML:function(c){var d=this;c._periods=(c._hold?c._periods:this._calculatePeriods(c,c._show,c.options.significant,new Date()));var e=false;var f=0;var g=c.options.significant;var h=$.extend({},c._show);for(var i=Y;i<=S;i++){e|=(c._show[i]=='?'&&c._periods[i]>0);h[i]=(c._show[i]=='?'&&!e?null:c._show[i]);f+=(h[i]?1:0);g-=(c._periods[i]>0?1:0)}var j=[false,false,false,false,false,false,false];for(var i=S;i>=Y;i--){if(c._show[i]){if(c._periods[i]){j[i]=true}else{j[i]=g>0;g--}}}var k=(c.options.compact?c.options.compactLabels:c.options.labels);var l=c.options.whichLabels||this._normalLabels;var m=function(a){var b=c.options['compactLabels'+l(c._periods[a])];return(h[a]?d._translateDigits(c,c._periods[a])+(b?b[a]:k[a])+' ':'')};var n=(c.options.padZeroes?2:1);var o=function(a){var b=c.options['labels'+l(c._periods[a])];return((!c.options.significant&&h[a])||(c.options.significant&&j[a])?'<span class="'+d._sectionClass+'">'+'<span class="'+d._amountClass+'">'+d._minDigits(c,c._periods[a],n)+'</span>'+'<span class="'+d._periodClass+'">'+(b?b[a]:k[a])+'</span></span>':'')};return(c.options.layout?this._buildLayout(c,h,c.options.layout,c.options.compact,c.options.significant,j):((c.options.compact?'<span class="'+this._rowClass+' '+this._amountClass+(c._hold?' '+this._holdingClass:'')+'">'+m(Y)+m(O)+m(W)+m(D)+(h[H]?this._minDigits(c,c._periods[H],2):'')+(h[M]?(h[H]?c.options.timeSeparator:'')+this._minDigits(c,c._periods[M],2):'')+(h[S]?(h[H]||h[M]?c.options.timeSeparator:'')+this._minDigits(c,c._periods[S],2):''):'<span class="'+this._rowClass+' '+this._showClass+(c.options.significant||f)+(c._hold?' '+this._holdingClass:'')+'">'+o(Y)+o(O)+o(W)+o(D)+o(H)+o(M)+o(S))+'</span>'+(c.options.description?'<span class="'+this._rowClass+' '+this._descrClass+'">'+c.options.description+'</span>':'')))},_buildLayout:function(c,d,e,f,g,h){var j=c.options[f?'compactLabels':'labels'];var k=c.options.whichLabels||this._normalLabels;var l=function(a){return(c.options[(f?'compactLabels':'labels')+k(c._periods[a])]||j)[a]};var m=function(a,b){return c.options.digits[Math.floor(a/b)%10]};var o={desc:c.options.description,sep:c.options.timeSeparator,yl:l(Y),yn:this._minDigits(c,c._periods[Y],1),ynn:this._minDigits(c,c._periods[Y],2),ynnn:this._minDigits(c,c._periods[Y],3),y1:m(c._periods[Y],1),y10:m(c._periods[Y],10),y100:m(c._periods[Y],100),y1000:m(c._periods[Y],1000),ol:l(O),on:this._minDigits(c,c._periods[O],1),onn:this._minDigits(c,c._periods[O],2),onnn:this._minDigits(c,c._periods[O],3),o1:m(c._periods[O],1),o10:m(c._periods[O],10),o100:m(c._periods[O],100),o1000:m(c._periods[O],1000),wl:l(W),wn:this._minDigits(c,c._periods[W],1),wnn:this._minDigits(c,c._periods[W],2),wnnn:this._minDigits(c,c._periods[W],3),w1:m(c._periods[W],1),w10:m(c._periods[W],10),w100:m(c._periods[W],100),w1000:m(c._periods[W],1000),dl:l(D),dn:this._minDigits(c,c._periods[D],1),dnn:this._minDigits(c,c._periods[D],2),dnnn:this._minDigits(c,c._periods[D],3),d1:m(c._periods[D],1),d10:m(c._periods[D],10),d100:m(c._periods[D],100),d1000:m(c._periods[D],1000),hl:l(H),hn:this._minDigits(c,c._periods[H],1),hnn:this._minDigits(c,c._periods[H],2),hnnn:this._minDigits(c,c._periods[H],3),h1:m(c._periods[H],1),h10:m(c._periods[H],10),h100:m(c._periods[H],100),h1000:m(c._periods[H],1000),ml:l(M),mn:this._minDigits(c,c._periods[M],1),mnn:this._minDigits(c,c._periods[M],2),mnnn:this._minDigits(c,c._periods[M],3),m1:m(c._periods[M],1),m10:m(c._periods[M],10),m100:m(c._periods[M],100),m1000:m(c._periods[M],1000),sl:l(S),sn:this._minDigits(c,c._periods[S],1),snn:this._minDigits(c,c._periods[S],2),snnn:this._minDigits(c,c._periods[S],3),s1:m(c._periods[S],1),s10:m(c._periods[S],10),s100:m(c._periods[S],100),s1000:m(c._periods[S],1000)};var p=e;for(var i=Y;i<=S;i++){var q='yowdhms'.charAt(i);var r=new RegExp('\\{'+q+'<\\}([\\s\\S]*)\\{'+q+'>\\}','g');p=p.replace(r,((!g&&d[i])||(g&&h[i])?'$1':''))}$.each(o,function(n,v){var a=new RegExp('\\{'+n+'\\}','g');p=p.replace(a,v)});return p},_minDigits:function(a,b,c){b=''+b;if(b.length>=c){return this._translateDigits(a,b)}b='0000000000'+b;return this._translateDigits(a,b.substr(b.length-c))},_translateDigits:function(b,c){return(''+c).replace(/[0-9]/g,function(a){return b.options.digits[a]})},_determineShow:function(a){var b=a.options.format;var c=[];c[Y]=(b.match('y')?'?':(b.match('Y')?'!':null));c[O]=(b.match('o')?'?':(b.match('O')?'!':null));c[W]=(b.match('w')?'?':(b.match('W')?'!':null));c[D]=(b.match('d')?'?':(b.match('D')?'!':null));c[H]=(b.match('h')?'?':(b.match('H')?'!':null));c[M]=(b.match('m')?'?':(b.match('M')?'!':null));c[S]=(b.match('s')?'?':(b.match('S')?'!':null));return c},_calculatePeriods:function(c,d,e,f){c._now=f;c._now.setMilliseconds(0);var g=new Date(c._now.getTime());if(c._since){if(f.getTime()<c._since.getTime()){c._now=f=g}else{f=c._since}}else{g.setTime(c._until.getTime());if(f.getTime()>c._until.getTime()){c._now=f=g}}var h=[0,0,0,0,0,0,0];if(d[Y]||d[O]){var i=this._getDaysInMonth(f.getFullYear(),f.getMonth());var j=this._getDaysInMonth(g.getFullYear(),g.getMonth());var k=(g.getDate()==f.getDate()||(g.getDate()>=Math.min(i,j)&&f.getDate()>=Math.min(i,j)));var l=function(a){return(a.getHours()*60+a.getMinutes())*60+a.getSeconds()};var m=Math.max(0,(g.getFullYear()-f.getFullYear())*12+g.getMonth()-f.getMonth()+((g.getDate()<f.getDate()&&!k)||(k&&l(g)<l(f))?-1:0));h[Y]=(d[Y]?Math.floor(m/12):0);h[O]=(d[O]?m-h[Y]*12:0);f=new Date(f.getTime());var n=(f.getDate()==i);var o=this._getDaysInMonth(f.getFullYear()+h[Y],f.getMonth()+h[O]);if(f.getDate()>o){f.setDate(o)}f.setFullYear(f.getFullYear()+h[Y]);f.setMonth(f.getMonth()+h[O]);if(n){f.setDate(o)}}var p=Math.floor((g.getTime()-f.getTime())/1000);var q=function(a,b){h[a]=(d[a]?Math.floor(p/b):0);p-=h[a]*b};q(W,604800);q(D,86400);q(H,3600);q(M,60);q(S,1);if(p>0&&!c._since){var r=[1,12,4.3482,7,24,60,60];var s=S;var t=1;for(var u=S;u>=Y;u--){if(d[u]){if(h[s]>=t){h[s]=0;p=1}if(p>0){h[u]++;p=0;s=u;t=1}}t*=r[u]}}if(e){for(var u=Y;u<=S;u++){if(e&&h[u]){e--}else if(!e){h[u]=0}}}return h}})})(jQuery);
skin/frontend/base/default/js/deals/jquery.plugin.min.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ /** Abstract base class for collection plugins v1.0.1.
2
+ Written by Keith Wood (kbwood{at}iinet.com.au) December 2013.
3
+ Licensed under the MIT (https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt) license. */
4
+ (function(){var j=false;window.JQClass=function(){};JQClass.classes={};JQClass.extend=function extender(f){var g=this.prototype;j=true;var h=new this();j=false;for(var i in f){h[i]=typeof f[i]=='function'&&typeof g[i]=='function'?(function(d,e){return function(){var b=this._super;this._super=function(a){return g[d].apply(this,a||[])};var c=e.apply(this,arguments);this._super=b;return c}})(i,f[i]):f[i]}function JQClass(){if(!j&&this._init){this._init.apply(this,arguments)}}JQClass.prototype=h;JQClass.prototype.constructor=JQClass;JQClass.extend=extender;return JQClass}})();(function($){JQClass.classes.JQPlugin=JQClass.extend({name:'plugin',defaultOptions:{},regionalOptions:{},_getters:[],_getMarker:function(){return'is-'+this.name},_init:function(){$.extend(this.defaultOptions,(this.regionalOptions&&this.regionalOptions[''])||{});var c=camelCase(this.name);$[c]=this;$.fn[c]=function(a){var b=Array.prototype.slice.call(arguments,1);if($[c]._isNotChained(a,b)){return $[c][a].apply($[c],[this[0]].concat(b))}return this.each(function(){if(typeof a==='string'){if(a[0]==='_'||!$[c][a]){throw'Unknown method: '+a;}$[c][a].apply($[c],[this].concat(b))}else{$[c]._attach(this,a)}})}},setDefaults:function(a){$.extend(this.defaultOptions,a||{})},_isNotChained:function(a,b){if(a==='option'&&(b.length===0||(b.length===1&&typeof b[0]==='string'))){return true}return $.inArray(a,this._getters)>-1},_attach:function(a,b){a=$(a);if(a.hasClass(this._getMarker())){return}a.addClass(this._getMarker());b=$.extend({},this.defaultOptions,this._getMetadata(a),b||{});var c=$.extend({name:this.name,elem:a,options:b},this._instSettings(a,b));a.data(this.name,c);this._postAttach(a,c);this.option(a,b)},_instSettings:function(a,b){return{}},_postAttach:function(a,b){},_getMetadata:function(d){try{var f=d.data(this.name.toLowerCase())||'';f=f.replace(/'/g,'"');f=f.replace(/([a-zA-Z0-9]+):/g,function(a,b,i){var c=f.substring(0,i).match(/"/g);return(!c||c.length%2===0?'"'+b+'":':b+':')});f=$.parseJSON('{'+f+'}');for(var g in f){var h=f[g];if(typeof h==='string'&&h.match(/^new Date\((.*)\)$/)){f[g]=eval(h)}}return f}catch(e){return{}}},_getInst:function(a){return $(a).data(this.name)||{}},option:function(a,b,c){a=$(a);var d=a.data(this.name);if(!b||(typeof b==='string'&&c==null)){var e=(d||{}).options;return(e&&b?e[b]:e)}if(!a.hasClass(this._getMarker())){return}var e=b||{};if(typeof b==='string'){e={};e[b]=c}this._optionsChanged(a,d,e);$.extend(d.options,e)},_optionsChanged:function(a,b,c){},destroy:function(a){a=$(a);if(!a.hasClass(this._getMarker())){return}this._preDestroy(a,this._getInst(a));a.removeData(this.name).removeClass(this._getMarker())},_preDestroy:function(a,b){}});function camelCase(c){return c.replace(/-([a-z])/g,function(a,b){return b.toUpperCase()})}$.JQPlugin={createPlugin:function(a,b){if(typeof a==='object'){b=a;a='JQPlugin'}a=camelCase(a);var c=camelCase(b.name);JQClass.classes[c]=JQClass.classes[a].extend(b);new JQClass.classes[c]()}}})(jQuery);
skin/frontend/base/default/js/deals/owl.carousel.min.js ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "function"!==typeof Object.create&&(Object.create=function(f){function g(){}g.prototype=f;return new g});
2
+ (function(f,g,k){var l={init:function(a,b){this.$elem=f(b);this.options=f.extend({},f.fn.owlCarousel.options,this.$elem.data(),a);this.userOptions=a;this.loadContent()},loadContent:function(){function a(a){var d,e="";if("function"===typeof b.options.jsonSuccess)b.options.jsonSuccess.apply(this,[a]);else{for(d in a.owl)a.owl.hasOwnProperty(d)&&(e+=a.owl[d].item);b.$elem.html(e)}b.logIn()}var b=this,e;"function"===typeof b.options.beforeInit&&b.options.beforeInit.apply(this,[b.$elem]);"string"===typeof b.options.jsonPath?
3
+ (e=b.options.jsonPath,f.getJSON(e,a)):b.logIn()},logIn:function(){this.$elem.data("owl-originalStyles",this.$elem.attr("style"));this.$elem.data("owl-originalClasses",this.$elem.attr("class"));this.$elem.css({opacity:0});this.orignalItems=this.options.items;this.checkBrowser();this.wrapperWidth=0;this.checkVisible=null;this.setVars()},setVars:function(){if(0===this.$elem.children().length)return!1;this.baseClass();this.eventTypes();this.$userItems=this.$elem.children();this.itemsAmount=this.$userItems.length;
4
+ this.wrapItems();this.$owlItems=this.$elem.find(".owl-item");this.$owlWrapper=this.$elem.find(".owl-wrapper");this.playDirection="next";this.prevItem=0;this.prevArr=[0];this.currentItem=0;this.customEvents();this.onStartup()},onStartup:function(){this.updateItems();this.calculateAll();this.buildControls();this.updateControls();this.response();this.moveEvents();this.stopOnHover();this.owlStatus();!1!==this.options.transitionStyle&&this.transitionTypes(this.options.transitionStyle);!0===this.options.autoPlay&&
5
+ (this.options.autoPlay=5E3);this.play();this.$elem.find(".owl-wrapper").css("display","block");this.$elem.is(":visible")?this.$elem.css("opacity",1):this.watchVisibility();this.onstartup=!1;this.eachMoveUpdate();"function"===typeof this.options.afterInit&&this.options.afterInit.apply(this,[this.$elem])},eachMoveUpdate:function(){!0===this.options.lazyLoad&&this.lazyLoad();!0===this.options.autoHeight&&this.autoHeight();this.onVisibleItems();"function"===typeof this.options.afterAction&&this.options.afterAction.apply(this,
6
+ [this.$elem])},updateVars:function(){"function"===typeof this.options.beforeUpdate&&this.options.beforeUpdate.apply(this,[this.$elem]);this.watchVisibility();this.updateItems();this.calculateAll();this.updatePosition();this.updateControls();this.eachMoveUpdate();"function"===typeof this.options.afterUpdate&&this.options.afterUpdate.apply(this,[this.$elem])},reload:function(){var a=this;g.setTimeout(function(){a.updateVars()},0)},watchVisibility:function(){var a=this;if(!1===a.$elem.is(":visible"))a.$elem.css({opacity:0}),
7
+ g.clearInterval(a.autoPlayInterval),g.clearInterval(a.checkVisible);else return!1;a.checkVisible=g.setInterval(function(){a.$elem.is(":visible")&&(a.reload(),a.$elem.animate({opacity:1},200),g.clearInterval(a.checkVisible))},500)},wrapItems:function(){this.$userItems.wrapAll('<div class="owl-wrapper">').wrap('<div class="owl-item"></div>');this.$elem.find(".owl-wrapper").wrap('<div class="owl-wrapper-outer">');this.wrapperOuter=this.$elem.find(".owl-wrapper-outer");this.$elem.css("display","block")},
8
+ baseClass:function(){var a=this.$elem.hasClass(this.options.baseClass),b=this.$elem.hasClass(this.options.theme);a||this.$elem.addClass(this.options.baseClass);b||this.$elem.addClass(this.options.theme)},updateItems:function(){var a,b;if(!1===this.options.responsive)return!1;if(!0===this.options.singleItem)return this.options.items=this.orignalItems=1,this.options.itemsCustom=!1,this.options.itemsDesktop=!1,this.options.itemsDesktopSmall=!1,this.options.itemsTablet=!1,this.options.itemsTabletSmall=
9
+ !1,this.options.itemsMobile=!1;a=f(this.options.responsiveBaseWidth).width();a>(this.options.itemsDesktop[0]||this.orignalItems)&&(this.options.items=this.orignalItems);if(!1!==this.options.itemsCustom)for(this.options.itemsCustom.sort(function(a,b){return a[0]-b[0]}),b=0;b<this.options.itemsCustom.length;b+=1)this.options.itemsCustom[b][0]<=a&&(this.options.items=this.options.itemsCustom[b][1]);else a<=this.options.itemsDesktop[0]&&!1!==this.options.itemsDesktop&&(this.options.items=this.options.itemsDesktop[1]),
10
+ a<=this.options.itemsDesktopSmall[0]&&!1!==this.options.itemsDesktopSmall&&(this.options.items=this.options.itemsDesktopSmall[1]),a<=this.options.itemsTablet[0]&&!1!==this.options.itemsTablet&&(this.options.items=this.options.itemsTablet[1]),a<=this.options.itemsTabletSmall[0]&&!1!==this.options.itemsTabletSmall&&(this.options.items=this.options.itemsTabletSmall[1]),a<=this.options.itemsMobile[0]&&!1!==this.options.itemsMobile&&(this.options.items=this.options.itemsMobile[1]);this.options.items>this.itemsAmount&&
11
+ !0===this.options.itemsScaleUp&&(this.options.items=this.itemsAmount)},response:function(){var a=this,b,e;if(!0!==a.options.responsive)return!1;e=f(g).width();a.resizer=function(){f(g).width()!==e&&(!1!==a.options.autoPlay&&g.clearInterval(a.autoPlayInterval),g.clearTimeout(b),b=g.setTimeout(function(){e=f(g).width();a.updateVars()},a.options.responsiveRefreshRate))};f(g).resize(a.resizer)},updatePosition:function(){this.jumpTo(this.currentItem);!1!==this.options.autoPlay&&this.checkAp()},appendItemsSizes:function(){var a=
12
+ this,b=0,e=a.itemsAmount-a.options.items;a.$owlItems.each(function(c){var d=f(this);d.css({width:a.itemWidth}).data("owl-item",Number(c));if(0===c%a.options.items||c===e)c>e||(b+=1);d.data("owl-roundPages",b)})},appendWrapperSizes:function(){this.$owlWrapper.css({width:this.$owlItems.length*this.itemWidth*2,left:0});this.appendItemsSizes()},calculateAll:function(){this.calculateWidth();this.appendWrapperSizes();this.loops();this.max()},calculateWidth:function(){this.itemWidth=Math.round(this.$elem.width()/
13
+ this.options.items)},max:function(){var a=-1*(this.itemsAmount*this.itemWidth-this.options.items*this.itemWidth);this.options.items>this.itemsAmount?this.maximumPixels=a=this.maximumItem=0:(this.maximumItem=this.itemsAmount-this.options.items,this.maximumPixels=a);return a},min:function(){return 0},loops:function(){var a=0,b=0,e,c;this.positionsInArray=[0];this.pagesInArray=[];for(e=0;e<this.itemsAmount;e+=1)b+=this.itemWidth,this.positionsInArray.push(-b),!0===this.options.scrollPerPage&&(c=f(this.$owlItems[e]),
14
+ c=c.data("owl-roundPages"),c!==a&&(this.pagesInArray[a]=this.positionsInArray[e],a=c))},buildControls:function(){if(!0===this.options.navigation||!0===this.options.pagination)this.owlControls=f('<div class="owl-controls"/>').toggleClass("clickable",!this.browser.isTouch).appendTo(this.$elem);!0===this.options.pagination&&this.buildPagination();!0===this.options.navigation&&this.buildButtons()},buildButtons:function(){var a=this,b=f('<div class="owl-buttons"/>');a.owlControls.append(b);a.buttonPrev=
15
+ f("<div/>",{"class":"owl-prev",html:a.options.navigationText[0]||""});a.buttonNext=f("<div/>",{"class":"owl-next",html:a.options.navigationText[1]||""});b.append(a.buttonPrev).append(a.buttonNext);b.on("touchstart.owlControls mousedown.owlControls",'div[class^="owl"]',function(a){a.preventDefault()});b.on("touchend.owlControls mouseup.owlControls",'div[class^="owl"]',function(b){b.preventDefault();f(this).hasClass("owl-next")?a.next():a.prev()})},buildPagination:function(){var a=this;a.paginationWrapper=
16
+ f('<div class="owl-pagination"/>');a.owlControls.append(a.paginationWrapper);a.paginationWrapper.on("touchend.owlControls mouseup.owlControls",".owl-page",function(b){b.preventDefault();Number(f(this).data("owl-page"))!==a.currentItem&&a.goTo(Number(f(this).data("owl-page")),!0)})},updatePagination:function(){var a,b,e,c,d,g;if(!1===this.options.pagination)return!1;this.paginationWrapper.html("");a=0;b=this.itemsAmount-this.itemsAmount%this.options.items;for(c=0;c<this.itemsAmount;c+=1)0===c%this.options.items&&
17
+ (a+=1,b===c&&(e=this.itemsAmount-this.options.items),d=f("<div/>",{"class":"owl-page"}),g=f("<span></span>",{text:!0===this.options.paginationNumbers?a:"","class":!0===this.options.paginationNumbers?"owl-numbers":""}),d.append(g),d.data("owl-page",b===c?e:c),d.data("owl-roundPages",a),this.paginationWrapper.append(d));this.checkPagination()},checkPagination:function(){var a=this;if(!1===a.options.pagination)return!1;a.paginationWrapper.find(".owl-page").each(function(){f(this).data("owl-roundPages")===
18
+ f(a.$owlItems[a.currentItem]).data("owl-roundPages")&&(a.paginationWrapper.find(".owl-page").removeClass("active"),f(this).addClass("active"))})},checkNavigation:function(){if(!1===this.options.navigation)return!1;!1===this.options.rewindNav&&(0===this.currentItem&&0===this.maximumItem?(this.buttonPrev.addClass("disabled"),this.buttonNext.addClass("disabled")):0===this.currentItem&&0!==this.maximumItem?(this.buttonPrev.addClass("disabled"),this.buttonNext.removeClass("disabled")):this.currentItem===
19
+ this.maximumItem?(this.buttonPrev.removeClass("disabled"),this.buttonNext.addClass("disabled")):0!==this.currentItem&&this.currentItem!==this.maximumItem&&(this.buttonPrev.removeClass("disabled"),this.buttonNext.removeClass("disabled")))},updateControls:function(){this.updatePagination();this.checkNavigation();this.owlControls&&(this.options.items>=this.itemsAmount?this.owlControls.hide():this.owlControls.show())},destroyControls:function(){this.owlControls&&this.owlControls.remove()},next:function(a){if(this.isTransition)return!1;
20
+ this.currentItem+=!0===this.options.scrollPerPage?this.options.items:1;if(this.currentItem>this.maximumItem+(!0===this.options.scrollPerPage?this.options.items-1:0))if(!0===this.options.rewindNav)this.currentItem=0,a="rewind";else return this.currentItem=this.maximumItem,!1;this.goTo(this.currentItem,a)},prev:function(a){if(this.isTransition)return!1;this.currentItem=!0===this.options.scrollPerPage&&0<this.currentItem&&this.currentItem<this.options.items?0:this.currentItem-(!0===this.options.scrollPerPage?
21
+ this.options.items:1);if(0>this.currentItem)if(!0===this.options.rewindNav)this.currentItem=this.maximumItem,a="rewind";else return this.currentItem=0,!1;this.goTo(this.currentItem,a)},goTo:function(a,b,e){var c=this;if(c.isTransition)return!1;"function"===typeof c.options.beforeMove&&c.options.beforeMove.apply(this,[c.$elem]);a>=c.maximumItem?a=c.maximumItem:0>=a&&(a=0);c.currentItem=c.owl.currentItem=a;if(!1!==c.options.transitionStyle&&"drag"!==e&&1===c.options.items&&!0===c.browser.support3d)return c.swapSpeed(0),
22
+ !0===c.browser.support3d?c.transition3d(c.positionsInArray[a]):c.css2slide(c.positionsInArray[a],1),c.afterGo(),c.singleItemTransition(),!1;a=c.positionsInArray[a];!0===c.browser.support3d?(c.isCss3Finish=!1,!0===b?(c.swapSpeed("paginationSpeed"),g.setTimeout(function(){c.isCss3Finish=!0},c.options.paginationSpeed)):"rewind"===b?(c.swapSpeed(c.options.rewindSpeed),g.setTimeout(function(){c.isCss3Finish=!0},c.options.rewindSpeed)):(c.swapSpeed("slideSpeed"),g.setTimeout(function(){c.isCss3Finish=!0},
23
+ c.options.slideSpeed)),c.transition3d(a)):!0===b?c.css2slide(a,c.options.paginationSpeed):"rewind"===b?c.css2slide(a,c.options.rewindSpeed):c.css2slide(a,c.options.slideSpeed);c.afterGo()},jumpTo:function(a){"function"===typeof this.options.beforeMove&&this.options.beforeMove.apply(this,[this.$elem]);a>=this.maximumItem||-1===a?a=this.maximumItem:0>=a&&(a=0);this.swapSpeed(0);!0===this.browser.support3d?this.transition3d(this.positionsInArray[a]):this.css2slide(this.positionsInArray[a],1);this.currentItem=
24
+ this.owl.currentItem=a;this.afterGo()},afterGo:function(){this.prevArr.push(this.currentItem);this.prevItem=this.owl.prevItem=this.prevArr[this.prevArr.length-2];this.prevArr.shift(0);this.prevItem!==this.currentItem&&(this.checkPagination(),this.checkNavigation(),this.eachMoveUpdate(),!1!==this.options.autoPlay&&this.checkAp());"function"===typeof this.options.afterMove&&this.prevItem!==this.currentItem&&this.options.afterMove.apply(this,[this.$elem])},stop:function(){this.apStatus="stop";g.clearInterval(this.autoPlayInterval)},
25
+ checkAp:function(){"stop"!==this.apStatus&&this.play()},play:function(){var a=this;a.apStatus="play";if(!1===a.options.autoPlay)return!1;g.clearInterval(a.autoPlayInterval);a.autoPlayInterval=g.setInterval(function(){a.next(!0)},a.options.autoPlay)},swapSpeed:function(a){"slideSpeed"===a?this.$owlWrapper.css(this.addCssSpeed(this.options.slideSpeed)):"paginationSpeed"===a?this.$owlWrapper.css(this.addCssSpeed(this.options.paginationSpeed)):"string"!==typeof a&&this.$owlWrapper.css(this.addCssSpeed(a))},
26
+ addCssSpeed:function(a){return{"-webkit-transition":"all "+a+"ms ease","-moz-transition":"all "+a+"ms ease","-o-transition":"all "+a+"ms ease",transition:"all "+a+"ms ease"}},removeTransition:function(){return{"-webkit-transition":"","-moz-transition":"","-o-transition":"",transition:""}},doTranslate:function(a){return{"-webkit-transform":"translate3d("+a+"px, 0px, 0px)","-moz-transform":"translate3d("+a+"px, 0px, 0px)","-o-transform":"translate3d("+a+"px, 0px, 0px)","-ms-transform":"translate3d("+
27
+ a+"px, 0px, 0px)",transform:"translate3d("+a+"px, 0px,0px)"}},transition3d:function(a){this.$owlWrapper.css(this.doTranslate(a))},css2move:function(a){this.$owlWrapper.css({left:a})},css2slide:function(a,b){var e=this;e.isCssFinish=!1;e.$owlWrapper.stop(!0,!0).animate({left:a},{duration:b||e.options.slideSpeed,complete:function(){e.isCssFinish=!0}})},checkBrowser:function(){var a=k.createElement("div");a.style.cssText=" -moz-transform:translate3d(0px, 0px, 0px); -ms-transform:translate3d(0px, 0px, 0px); -o-transform:translate3d(0px, 0px, 0px); -webkit-transform:translate3d(0px, 0px, 0px); transform:translate3d(0px, 0px, 0px)";
28
+ a=a.style.cssText.match(/translate3d\(0px, 0px, 0px\)/g);this.browser={support3d:null!==a&&1===a.length,isTouch:"ontouchstart"in g||g.navigator.msMaxTouchPoints}},moveEvents:function(){if(!1!==this.options.mouseDrag||!1!==this.options.touchDrag)this.gestures(),this.disabledEvents()},eventTypes:function(){var a=["s","e","x"];this.ev_types={};!0===this.options.mouseDrag&&!0===this.options.touchDrag?a=["touchstart.owl mousedown.owl","touchmove.owl mousemove.owl","touchend.owl touchcancel.owl mouseup.owl"]:
29
+ !1===this.options.mouseDrag&&!0===this.options.touchDrag?a=["touchstart.owl","touchmove.owl","touchend.owl touchcancel.owl"]:!0===this.options.mouseDrag&&!1===this.options.touchDrag&&(a=["mousedown.owl","mousemove.owl","mouseup.owl"]);this.ev_types.start=a[0];this.ev_types.move=a[1];this.ev_types.end=a[2]},disabledEvents:function(){this.$elem.on("dragstart.owl",function(a){a.preventDefault()});this.$elem.on("mousedown.disableTextSelect",function(a){return f(a.target).is("input, textarea, select, option")})},
30
+ gestures:function(){function a(a){if(void 0!==a.touches)return{x:a.touches[0].pageX,y:a.touches[0].pageY};if(void 0===a.touches){if(void 0!==a.pageX)return{x:a.pageX,y:a.pageY};if(void 0===a.pageX)return{x:a.clientX,y:a.clientY}}}function b(a){"on"===a?(f(k).on(d.ev_types.move,e),f(k).on(d.ev_types.end,c)):"off"===a&&(f(k).off(d.ev_types.move),f(k).off(d.ev_types.end))}function e(b){b=b.originalEvent||b||g.event;d.newPosX=a(b).x-h.offsetX;d.newPosY=a(b).y-h.offsetY;d.newRelativeX=d.newPosX-h.relativePos;
31
+ "function"===typeof d.options.startDragging&&!0!==h.dragging&&0!==d.newRelativeX&&(h.dragging=!0,d.options.startDragging.apply(d,[d.$elem]));(8<d.newRelativeX||-8>d.newRelativeX)&&!0===d.browser.isTouch&&(void 0!==b.preventDefault?b.preventDefault():b.returnValue=!1,h.sliding=!0);(10<d.newPosY||-10>d.newPosY)&&!1===h.sliding&&f(k).off("touchmove.owl");d.newPosX=Math.max(Math.min(d.newPosX,d.newRelativeX/5),d.maximumPixels+d.newRelativeX/5);!0===d.browser.support3d?d.transition3d(d.newPosX):d.css2move(d.newPosX)}
32
+ function c(a){a=a.originalEvent||a||g.event;var c;a.target=a.target||a.srcElement;h.dragging=!1;!0!==d.browser.isTouch&&d.$owlWrapper.removeClass("grabbing");d.dragDirection=0>d.newRelativeX?d.owl.dragDirection="left":d.owl.dragDirection="right";0!==d.newRelativeX&&(c=d.getNewPosition(),d.goTo(c,!1,"drag"),h.targetElement===a.target&&!0!==d.browser.isTouch&&(f(a.target).on("click.disable",function(a){a.stopImmediatePropagation();a.stopPropagation();a.preventDefault();f(a.target).off("click.disable")}),
33
+ a=f._data(a.target,"events").click,c=a.pop(),a.splice(0,0,c)));b("off")}var d=this,h={offsetX:0,offsetY:0,baseElWidth:0,relativePos:0,position:null,minSwipe:null,maxSwipe:null,sliding:null,dargging:null,targetElement:null};d.isCssFinish=!0;d.$elem.on(d.ev_types.start,".owl-wrapper",function(c){c=c.originalEvent||c||g.event;var e;if(3===c.which)return!1;if(!(d.itemsAmount<=d.options.items)){if(!1===d.isCssFinish&&!d.options.dragBeforeAnimFinish||!1===d.isCss3Finish&&!d.options.dragBeforeAnimFinish)return!1;
34
+ !1!==d.options.autoPlay&&g.clearInterval(d.autoPlayInterval);!0===d.browser.isTouch||d.$owlWrapper.hasClass("grabbing")||d.$owlWrapper.addClass("grabbing");d.newPosX=0;d.newRelativeX=0;f(this).css(d.removeTransition());e=f(this).position();h.relativePos=e.left;h.offsetX=a(c).x-e.left;h.offsetY=a(c).y-e.top;b("on");h.sliding=!1;h.targetElement=c.target||c.srcElement}})},getNewPosition:function(){var a=this.closestItem();a>this.maximumItem?a=this.currentItem=this.maximumItem:0<=this.newPosX&&(this.currentItem=
35
+ a=0);return a},closestItem:function(){var a=this,b=!0===a.options.scrollPerPage?a.pagesInArray:a.positionsInArray,e=a.newPosX,c=null;f.each(b,function(d,g){e-a.itemWidth/20>b[d+1]&&e-a.itemWidth/20<g&&"left"===a.moveDirection()?(c=g,a.currentItem=!0===a.options.scrollPerPage?f.inArray(c,a.positionsInArray):d):e+a.itemWidth/20<g&&e+a.itemWidth/20>(b[d+1]||b[d]-a.itemWidth)&&"right"===a.moveDirection()&&(!0===a.options.scrollPerPage?(c=b[d+1]||b[b.length-1],a.currentItem=f.inArray(c,a.positionsInArray)):
36
+ (c=b[d+1],a.currentItem=d+1))});return a.currentItem},moveDirection:function(){var a;0>this.newRelativeX?(a="right",this.playDirection="next"):(a="left",this.playDirection="prev");return a},customEvents:function(){var a=this;a.$elem.on("owl.next",function(){a.next()});a.$elem.on("owl.prev",function(){a.prev()});a.$elem.on("owl.play",function(b,e){a.options.autoPlay=e;a.play();a.hoverStatus="play"});a.$elem.on("owl.stop",function(){a.stop();a.hoverStatus="stop"});a.$elem.on("owl.goTo",function(b,e){a.goTo(e)});
37
+ a.$elem.on("owl.jumpTo",function(b,e){a.jumpTo(e)})},stopOnHover:function(){var a=this;!0===a.options.stopOnHover&&!0!==a.browser.isTouch&&!1!==a.options.autoPlay&&(a.$elem.on("mouseover",function(){a.stop()}),a.$elem.on("mouseout",function(){"stop"!==a.hoverStatus&&a.play()}))},lazyLoad:function(){var a,b,e,c,d;if(!1===this.options.lazyLoad)return!1;for(a=0;a<this.itemsAmount;a+=1)b=f(this.$owlItems[a]),"loaded"!==b.data("owl-loaded")&&(e=b.data("owl-item"),c=b.find(".lazyOwl"),"string"!==typeof c.data("src")?
38
+ b.data("owl-loaded","loaded"):(void 0===b.data("owl-loaded")&&(c.hide(),b.addClass("loading").data("owl-loaded","checked")),(d=!0===this.options.lazyFollow?e>=this.currentItem:!0)&&e<this.currentItem+this.options.items&&c.length&&this.lazyPreload(b,c)))},lazyPreload:function(a,b){function e(){a.data("owl-loaded","loaded").removeClass("loading");b.removeAttr("data-src");"fade"===d.options.lazyEffect?b.fadeIn(400):b.show();"function"===typeof d.options.afterLazyLoad&&d.options.afterLazyLoad.apply(this,
39
+ [d.$elem])}function c(){f+=1;d.completeImg(b.get(0))||!0===k?e():100>=f?g.setTimeout(c,100):e()}var d=this,f=0,k;"DIV"===b.prop("tagName")?(b.css("background-image","url("+b.data("src")+")"),k=!0):b[0].src=b.data("src");c()},autoHeight:function(){function a(){var a=f(e.$owlItems[e.currentItem]).height();e.wrapperOuter.css("height",a+"px");e.wrapperOuter.hasClass("autoHeight")||g.setTimeout(function(){e.wrapperOuter.addClass("autoHeight")},0)}function b(){d+=1;e.completeImg(c.get(0))?a():100>=d?g.setTimeout(b,
40
+ 100):e.wrapperOuter.css("height","")}var e=this,c=f(e.$owlItems[e.currentItem]).find("img"),d;void 0!==c.get(0)?(d=0,b()):a()},completeImg:function(a){return!a.complete||"undefined"!==typeof a.naturalWidth&&0===a.naturalWidth?!1:!0},onVisibleItems:function(){var a;!0===this.options.addClassActive&&this.$owlItems.removeClass("active");this.visibleItems=[];for(a=this.currentItem;a<this.currentItem+this.options.items;a+=1)this.visibleItems.push(a),!0===this.options.addClassActive&&f(this.$owlItems[a]).addClass("active");
41
+ this.owl.visibleItems=this.visibleItems},transitionTypes:function(a){this.outClass="owl-"+a+"-out";this.inClass="owl-"+a+"-in"},singleItemTransition:function(){var a=this,b=a.outClass,e=a.inClass,c=a.$owlItems.eq(a.currentItem),d=a.$owlItems.eq(a.prevItem),f=Math.abs(a.positionsInArray[a.currentItem])+a.positionsInArray[a.prevItem],g=Math.abs(a.positionsInArray[a.currentItem])+a.itemWidth/2;a.isTransition=!0;a.$owlWrapper.addClass("owl-origin").css({"-webkit-transform-origin":g+"px","-moz-perspective-origin":g+
42
+ "px","perspective-origin":g+"px"});d.css({position:"relative",left:f+"px"}).addClass(b).on("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend",function(){a.endPrev=!0;d.off("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend");a.clearTransStyle(d,b)});c.addClass(e).on("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend",function(){a.endCurrent=!0;c.off("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend");a.clearTransStyle(c,e)})},clearTransStyle:function(a,
43
+ b){a.css({position:"",left:""}).removeClass(b);this.endPrev&&this.endCurrent&&(this.$owlWrapper.removeClass("owl-origin"),this.isTransition=this.endCurrent=this.endPrev=!1)},owlStatus:function(){this.owl={userOptions:this.userOptions,baseElement:this.$elem,userItems:this.$userItems,owlItems:this.$owlItems,currentItem:this.currentItem,prevItem:this.prevItem,visibleItems:this.visibleItems,isTouch:this.browser.isTouch,browser:this.browser,dragDirection:this.dragDirection}},clearEvents:function(){this.$elem.off(".owl owl mousedown.disableTextSelect");
44
+ f(k).off(".owl owl");f(g).off("resize",this.resizer)},unWrap:function(){0!==this.$elem.children().length&&(this.$owlWrapper.unwrap(),this.$userItems.unwrap().unwrap(),this.owlControls&&this.owlControls.remove());this.clearEvents();this.$elem.attr("style",this.$elem.data("owl-originalStyles")||"").attr("class",this.$elem.data("owl-originalClasses"))},destroy:function(){this.stop();g.clearInterval(this.checkVisible);this.unWrap();this.$elem.removeData()},reinit:function(a){a=f.extend({},this.userOptions,
45
+ a);this.unWrap();this.init(a,this.$elem)},addItem:function(a,b){var e;if(!a)return!1;if(0===this.$elem.children().length)return this.$elem.append(a),this.setVars(),!1;this.unWrap();e=void 0===b||-1===b?-1:b;e>=this.$userItems.length||-1===e?this.$userItems.eq(-1).after(a):this.$userItems.eq(e).before(a);this.setVars()},removeItem:function(a){if(0===this.$elem.children().length)return!1;a=void 0===a||-1===a?-1:a;this.unWrap();this.$userItems.eq(a).remove();this.setVars()}};f.fn.owlCarousel=function(a){return this.each(function(){if(!0===
46
+ f(this).data("owl-init"))return!1;f(this).data("owl-init",!0);var b=Object.create(l);b.init(a,this);f.data(this,"owlCarousel",b)})};f.fn.owlCarousel.options={items:5,itemsCustom:!1,itemsDesktop:[1199,4],itemsDesktopSmall:[979,3],itemsTablet:[768,2],itemsTabletSmall:!1,itemsMobile:[479,1],singleItem:!1,itemsScaleUp:!1,slideSpeed:200,paginationSpeed:800,rewindSpeed:1E3,autoPlay:!1,stopOnHover:!1,navigation:!1,navigationText:["prev","next"],rewindNav:!0,scrollPerPage:!1,pagination:!0,paginationNumbers:!1,
47
+ responsive:!0,responsiveRefreshRate:200,responsiveBaseWidth:g,baseClass:"owl-carousel",theme:"owl-theme",lazyLoad:!1,lazyFollow:!0,lazyEffect:"fade",autoHeight:!1,jsonPath:!1,jsonSuccess:!1,dragBeforeAnimFinish:!0,mouseDrag:!0,touchDrag:!0,addClassActive:!1,transitionStyle:!1,beforeUpdate:!1,afterUpdate:!1,beforeInit:!1,afterInit:!1,beforeMove:!1,afterMove:!1,afterAction:!1,startDragging:!1,afterLazyLoad:!1}})(jQuery,window,document);