TPP_TabularPricePane - Version 1.0.0

Version Notes

Install this module using Magento Connect Manager or manually file copy as per module directory structure.

Download this release

Release Info

Developer ikhodal Team
Extension TPP_TabularPricePane
Version 1.0.0
Comparing to
See all releases


Version 1.0.0

Files changed (24) hide show
  1. app/code/community/TPP/TabularPricePane/Block/Html/Head.php +36 -0
  2. app/code/community/TPP/TabularPricePane/Block/List.php +318 -0
  3. app/code/community/TPP/TabularPricePane/Helper/Data.php +27 -0
  4. app/code/community/TPP/TabularPricePane/Model/Filters.php +33 -0
  5. app/code/community/TPP/TabularPricePane/controllers/IndexController.php +49 -0
  6. app/code/community/TPP/TabularPricePane/etc/config.xml +73 -0
  7. app/code/community/TPP/TabularPricePane/etc/widget.xml +305 -0
  8. app/design/frontend/base/default/layout/tabularpricepane.xml +40 -0
  9. app/design/frontend/base/default/template/tabularpricepane/ajax_load_more.phtml +109 -0
  10. app/design/frontend/base/default/template/tabularpricepane/ajax_products.phtml +152 -0
  11. app/design/frontend/base/default/template/tabularpricepane/pane_style_1.phtml +61 -0
  12. app/design/frontend/base/default/template/tabularpricepane/pane_style_2.phtml +61 -0
  13. app/design/frontend/base/default/template/tabularpricepane/pane_style_3.phtml +61 -0
  14. app/design/frontend/base/default/template/tabularpricepane/tab_style_1.phtml +60 -0
  15. app/design/frontend/base/default/template/tabularpricepane/tab_style_2.phtml +60 -0
  16. app/design/frontend/base/default/template/tabularpricepane/tab_style_3.phtml +60 -0
  17. app/etc/modules/TPP_TabularPricePane.xml +37 -0
  18. js/tpp/jquery-1.10.2.min.js +6 -0
  19. js/tpp/tabularpricepane.js +226 -0
  20. package.xml +18 -0
  21. skin/frontend/base/default/css/tpp/tabularpricepane.css +100 -0
  22. skin/frontend/base/default/images/tpp/loader.gif +0 -0
  23. skin/frontend/base/default/images/tpp/searchicon.png +0 -0
  24. skin/frontend/base/default/images/tpp/view.png +0 -0
app/code/community/TPP/TabularPricePane/Block/Html/Head.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ * Tabular Price Pane
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 helpdesk@ikhodal.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade to newer
19
+ * versions in the future.
20
+ *
21
+ * @package TPP_TabularPricePane
22
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ */
25
+ class TPP_TabularPricePane_Block_Html_Head extends Mage_Page_Block_Html_Head
26
+ {
27
+ public function getCssJsHtml()
28
+ {
29
+ $__html = "<script type='text/javascript'> var site_url = '".$this->getUrl('')."'; var js_url = '".$this->getJsUrl('')."'; var skin_url = '".$this->getSkinUrl('')."'; </script>
30
+ <!--[if IE 8]><script type='text/javascript'> document.getElementsByClassName = Element.prototype.getElementsByClassName = function(cn) { return this.querySelectorAll((' ' + cn).replace(/[~!@$%^&*()_+\-=,./';:\"?><[\]{}|`#]/g, '\\$&').replace(/\s*(\s|$)/g, '$1').replace(/\s/g, '.'));};</script><![endif]-->
31
+ ";
32
+ $__html .= parent::getCssJsHtml();
33
+ return $__html;
34
+ }
35
+ }
36
+ ?>
app/code/community/TPP/TabularPricePane/Block/List.php ADDED
@@ -0,0 +1,318 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ * Tabular Price Pane
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 helpdesk@ikhodal.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade to newer
19
+ * versions in the future.
20
+ *
21
+ * @package TPP_TabularPricePane
22
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ */
25
+
26
+ class TPP_TabularPricePane_Block_List extends Mage_Catalog_Block_Product_Abstract implements Mage_Widget_Block_Interface {
27
+
28
+ protected $_serializer = null;
29
+ protected $_products_per_row;
30
+ protected $_productCollection;
31
+ public $_config = array();
32
+
33
+ /**
34
+ * Initialization
35
+ */
36
+ protected function _construct() {
37
+ $this->_serializer = new Varien_Object();
38
+ parent::_construct();
39
+ }
40
+
41
+ /**
42
+ * get category id by path
43
+ *
44
+ * @param string $cidPath
45
+ *
46
+ * @return int
47
+ */
48
+ public function getCategoryIdByPath($cidPath)
49
+ {
50
+ if(trim($cidPath)=="") return 0;
51
+
52
+ $store_id = Mage::app()->getStore()->getId();
53
+ $ob = Mage::getResourceModel('catalog/url')->getRewriteByIdPath($cidPath, $store_id);
54
+ if(!$ob){
55
+ $categoryId = explode("/",$cidPath);
56
+ $categoryId = $categoryId[1];
57
+ }else{
58
+ $categoryId = $ob->getCategoryId();
59
+ }
60
+ return $categoryId;
61
+ }
62
+
63
+ /**
64
+ * Produce list rendered as default html with backend configuration.
65
+ * @return string
66
+ */
67
+ protected function _toHtml() {
68
+ $category_id = 0;
69
+ if($this->getData('cat_path'))
70
+ $category_id = $this->getCategoryIdByPath($this->getData('cat_path'));
71
+
72
+ $this->_config = array(
73
+ 'widget_title'=>$this->getData('widget_title'),
74
+ 'price_from'=>$this->getData('price_from'),
75
+ 'price_to'=>$this->getData('price_to'),
76
+ 'price_difference'=>$this->getData('price_difference'),
77
+ 'number_of_product_display'=>$this->getData('number_of_product_display'),
78
+ 'price_text_color'=>$this->getData('price_text_color'),
79
+ 'title_text_color'=>$this->getData('title_text_color'),
80
+ 'price_tab_text_color'=>$this->getData('price_tab_text_color'),
81
+ 'price_tab_background_color'=>$this->getData('price_tab_background_color'),
82
+ 'header_text_color'=>$this->getData('header_text_color'),
83
+ 'header_background_color'=>$this->getData('header_background_color'),
84
+ 'display_title_price_over_image'=>$this->getData('display_title_price_over_image'),
85
+ 'hide_widget_title'=>$this->getData('hide_widget_title'),
86
+ 'hide_searchbox'=>$this->getData('hide_searchbox'),
87
+ 'hide_categorybox'=>$this->getData('hide_categorybox'),
88
+ 'hide_product_title'=>$this->getData('hide_product_title'),
89
+ 'hide_product_price'=>$this->getData('hide_product_price'),
90
+ 'block_id'=>$this->getData('block_id'),
91
+ 'category_id'=>$category_id,
92
+ 'tp_widget_width'=>$this->getData('tp_widget_width')
93
+ );
94
+
95
+ return $this->renderView();
96
+ }
97
+
98
+ /**
99
+ * Load the filtered product collections from database.
100
+ * @return collection
101
+ */
102
+ public function getAllProducts() {
103
+ $collection = Mage::getModel('catalog/product')->getCollection();
104
+ $collection->addStoreFilter();
105
+ Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
106
+ Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
107
+ $this->_addProductAttributesAndPrices($collection);
108
+ $collection->setPageSize((int)$this->_config["number_of_product_display"]);
109
+ $this->_productCollection = $collection;
110
+ return $collection;
111
+ }
112
+
113
+ /**
114
+ * Configured price list calculated based on price from, price to and difference between two prices.
115
+ * @return array
116
+ */
117
+ public function getPriceTabArray(){
118
+ $price_from = $this->getData('price_from');
119
+ $collection = Mage::getModel('catalog/product')->getCollection();
120
+ $collection->addStoreFilter();
121
+ Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
122
+ Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
123
+ $this->_addProductAttributesAndPrices($collection);
124
+
125
+ if(trim($this->getData('price_to'))!="" && intval($this->getData('price_to'))>0)
126
+ $price_to = $this->getData('price_to');
127
+ else
128
+ $price_to = $collection->getMaxPrice();
129
+
130
+ $price_difference = $this->getData('price_difference');
131
+ if(trim($price_difference) == "" || intval($price_difference)<=0)
132
+ $price_difference = $price_to-$price_from;
133
+
134
+ $_arr_price_list = array();
135
+ for($i=$price_from+$price_difference;$i<=$price_to;$i=$i+$price_difference){
136
+ if((($i+$price_difference)>$price_to)){
137
+ $_arr_price_list[] = array('from'=>($i-$price_difference+1),'to'=>$i);
138
+ if($i!=$price_to)
139
+ $_arr_price_list[] = array('from'=>$i,'to'=>$price_to);
140
+ }
141
+ else {
142
+ if($i==$price_from+$price_difference)
143
+ $_arr_price_list[] = array('from'=>($i-$price_difference),'to'=>$i);
144
+ else
145
+ $_arr_price_list[] = array('from'=>($i-$price_difference+1),'to'=>$i);
146
+ }
147
+ }
148
+
149
+ return $_arr_price_list;
150
+ }
151
+
152
+ /**
153
+ * Load the more products on ajax based filteration.
154
+ * @return collection
155
+ */
156
+ public function loadMoreFilteredProducts(){
157
+ $params = $this->getRequest()->getParams();
158
+ $_from = (isset($params["from"])?($params["from"]):0);
159
+ $_to =(isset($params["to"])?($params["to"]):0);
160
+ $_total =(isset($params["total"])?($params["total"]):0);
161
+ $category_id =(isset($params["category_id"])?($params["category_id"]):0);
162
+ $product_search_text =(isset($params["product_search_text"])?($params["product_search_text"]):"");
163
+
164
+ $_limit_start =(isset($params["limit_start"])?($params["limit_start"]):0);
165
+ $_limit_end = $params["number_of_product_display"];
166
+
167
+ $collection = Mage::getModel('catalog/product')->getCollection();
168
+ $collection->addAttributeToSelect('image');
169
+ $collection->addStoreFilter();
170
+ Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
171
+ Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
172
+ $this->addProductAttributesAndPrices($collection);
173
+
174
+ if($category_id>0){
175
+ $collection->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
176
+ ->addAttributeToFilter('category_id', array('in' => array($category_id)));
177
+ }else{
178
+ $category_res = $this->_getCategories();
179
+ $_all_active_category = array();
180
+ foreach($category_res as $_category){
181
+ $_all_active_category[] = $_category->getId();
182
+ }
183
+ $collection->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'inner')
184
+ ->addAttributeToFilter('category_id', array('in' => $_all_active_category));
185
+
186
+ }
187
+
188
+ if($product_search_text!=""){
189
+ $collection->addAttributeToFilter('name', array('like' => '%'.$product_search_text.'%'));
190
+ }
191
+ $collection->getSelect()->where('price_index.final_price <= '.$_to.' and price_index.final_price >= '.$_from)->limit($_limit_end,$_limit_start)->group('e.entity_id')->order('price_index.final_price', 'asc');
192
+ $collection->load();
193
+ return $collection;
194
+ }
195
+
196
+ /**
197
+ * Load the product collection on ajax based filteration.
198
+ * @return collection
199
+ */
200
+ public function loadFilteredProducts(){
201
+ $params = $this->getRequest()->getParams();
202
+ $_from = (isset($params["from"])?($params["from"]):0);
203
+ $_to =(isset($params["to"])?($params["to"]):0);
204
+ $category_id =(isset($params["category_id"])?($params["category_id"]):0);
205
+ $product_search_text =(isset($params["product_search_text"])?($params["product_search_text"]):"");
206
+ $_limit_start =(isset($params["limit_start"])?($params["limit_start"]):0);
207
+ $flg_pr =(isset($params["flg_pr"])?($params["flg_pr"]):0);
208
+ $_limit_end = $params["number_of_product_display"];
209
+
210
+ $collection = Mage::getModel('catalog/product')->getCollection();
211
+ $collection->addAttributeToSelect('image');
212
+ $collection->addStoreFilter();
213
+ Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
214
+ Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
215
+ $this->addProductAttributesAndPrices($collection);
216
+
217
+ if($category_id>0){
218
+ $collection->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'inner')
219
+ ->addAttributeToFilter('category_id', array('in' => array($category_id)));
220
+ }else{
221
+ $category_res = $this->_getCategories();
222
+ $_all_active_category = array();
223
+ foreach($category_res as $_category){
224
+ $_all_active_category[] = $_category->getId();
225
+ }
226
+ $collection->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'inner')
227
+ ->addAttributeToFilter('category_id', array('in' => $_all_active_category));
228
+ }
229
+
230
+ if($product_search_text!=""){
231
+ $collection->addAttributeToFilter('name', array('like' => '%'.$product_search_text.'%'));
232
+ }
233
+ $collection->getSelect()->where('price_index.final_price <= '.$_to.' and price_index.final_price >= '.$_from)->limit($_limit_end,$_limit_start)->group('e.entity_id')->order('price_index.final_price', 'asc');
234
+ $collection->load();
235
+ return $collection;
236
+ }
237
+
238
+ /**
239
+ * Returns the count of searched products.
240
+ * @return int
241
+ */
242
+ function getTotalProducts($_from=0,$_to=0,$category_id,$product_search_text,$c_flg,$is_default_category_with_hidden) {
243
+ $collection = Mage::getModel('catalog/product')->getCollection();
244
+ $collection->addAttributeToSelect('image');
245
+ $collection->addStoreFilter();
246
+ Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
247
+ Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
248
+ $this->addProductAttributesAndPrices($collection);
249
+
250
+ $_category_filter_query = "";
251
+ if($category_id>0 && ($c_flg==1 || $is_default_category_with_hidden==1)){
252
+ $collection->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'inner')
253
+ ->addAttributeToFilter('category_id', array('in' => array($category_id)));
254
+ }else{
255
+ $category_res = $this->_getCategories();
256
+ $_all_active_category = array();
257
+ foreach($category_res as $_category){
258
+ $_all_active_category[] = $_category->getId();
259
+ }
260
+ $collection->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'inner')
261
+ ->addAttributeToFilter('category_id', array('in' => $_all_active_category));
262
+
263
+ }
264
+
265
+ $_product_text_filter_query = "";
266
+ if($product_search_text!="" && $c_flg==1){
267
+ $collection->addAttributeToFilter('name', array('like' => '%'.$product_search_text.'%'));
268
+ }
269
+ $collection->getSelect()->where('price_index.final_price <= '.$_to.' and price_index.final_price >= '.$_from)->group('e.entity_id');
270
+ return $collection->count();
271
+ }
272
+
273
+ /**
274
+ * Define the fields to select/filter from database.
275
+ * @return collection
276
+ */
277
+ protected function addProductAttributesAndPrices(Mage_Catalog_Model_Resource_Product_Collection $collection)
278
+ {
279
+ Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($collection);
280
+ $collection->addAttributeToFilter('status', array('eq' => 1));
281
+ $collection->joinField('qty','cataloginventory/stock_item','qty','product_id=entity_id','{{table}}.stock_id=1','left')
282
+ ->addAttributeToFilter('qty', array('gt' => 0));
283
+ $collection->addAttributeToFilter('type_id', array('in' => array('downloadable','virtual','simple')));
284
+ return $collection
285
+ ->addMinimalPrice()
286
+ ->addFinalPrice()
287
+ ->addStoreFilter()
288
+ ->addTaxPercents()
289
+ ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
290
+ ->addUrlRewrite();
291
+ }
292
+
293
+ /**
294
+ * Returns a collection of all the active categories
295
+ * @return collection
296
+ */
297
+ protected function _getCategories() {
298
+ return Mage::getModel('catalog/category')->getCollection()->addAttributeToFilter('is_active',array('1'))->load();
299
+ }
300
+
301
+ /**
302
+ * Returns number of products that are displayed per row
303
+ * @return int
304
+ */
305
+ public function getProductsPerRow() {
306
+ if (is_null($this->_products_per_row))
307
+ $this->_products_per_row = (int) $this->getData('products_per_row') ? (int) $this->getData('products_per_row') : 3;
308
+ return $this->_products_per_row;
309
+ }
310
+
311
+ /**
312
+ * Returns unique code to widget
313
+ */
314
+ public function getUCode() {
315
+ return $this->_config["block_id"];
316
+ }
317
+
318
+ }
app/code/community/TPP/TabularPricePane/Helper/Data.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ * Tabular Price Pane
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 helpdesk@ikhodal.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade to newer
19
+ * versions in the future.
20
+ *
21
+ * @package TPP_TabularPricePane
22
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ */
25
+ class TPP_TabularPricePane_Helper_Data extends Mage_Core_Helper_Abstract
26
+ {
27
+ }
app/code/community/TPP/TabularPricePane/Model/Filters.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ * Tabular Price Pane
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 helpdesk@ikhodal.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade to newer
19
+ * versions in the future.
20
+ *
21
+ * @package TPP_TabularPricePane
22
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ */
25
+ class TPP_TabularPricePane_Model_Filters {
26
+ public function toOptionArray() {
27
+ $vl=md5("sitaram_".time());
28
+ return array(
29
+ array('value' => 'block_id_'.$vl, 'label' => $vl),
30
+ );
31
+ }
32
+ }
33
+ ?>
app/code/community/TPP/TabularPricePane/controllers/IndexController.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ * Tabular Price Pane
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 helpdesk@ikhodal.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade to newer
19
+ * versions in the future.
20
+ *
21
+ * @package TPP_TabularPricePane
22
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ */
25
+
26
+ class TPP_TabularPricePane_IndexController extends Mage_Core_Controller_Front_Action {
27
+
28
+ /**
29
+ * Action loadmore
30
+ *
31
+ * Load the more products based on ajax filteration
32
+ */
33
+ public function loadmoreAction()
34
+ {
35
+ $this->loadLayout();
36
+ $this->renderLayout();
37
+ }
38
+
39
+ /**
40
+ * Action index
41
+ *
42
+ * Load the first page products based on ajax filteration
43
+ */
44
+ public function indexAction()
45
+ {
46
+ $this->loadLayout();
47
+ $this->renderLayout();
48
+ }
49
+ }
app/code/community/TPP/TabularPricePane/etc/config.xml ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ *
5
+ * Tabular Price Pane
6
+ *
7
+ * NOTICE OF LICENSE
8
+ *
9
+ * This source file is subject to the Open Software License (OSL 3.0)
10
+ * that is bundled with this package in the file LICENSE.txt.
11
+ * It is also available through the world-wide-web at this URL:
12
+ * http://opensource.org/licenses/osl-3.0.php
13
+ * If you did not receive a copy of the license and are unable to
14
+ * obtain it through the world-wide-web, please send an email
15
+ * to helpdesk@ikhodal.com so we can send you a copy immediately.
16
+ *
17
+ * DISCLAIMER
18
+ *
19
+ * Do not edit or add to this file if you wish to upgrade to newer
20
+ * versions in the future.
21
+ *
22
+ * @package TPP_TabularPricePane
23
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+ -->
27
+ <config>
28
+ <modules>
29
+ <TPP_TabularPricePane>
30
+ <version>0.0.0.1</version>
31
+ </TPP_TabularPricePane>
32
+ </modules>
33
+ <global>
34
+ <helpers>
35
+ <tabularpricepane>
36
+ <class>TPP_TabularPricePane_Helper</class>
37
+ </tabularpricepane>
38
+ </helpers>
39
+ <blocks>
40
+ <tabularpricepane>
41
+ <class>TPP_TabularPricePane_Block</class>
42
+ </tabularpricepane>
43
+ <page>
44
+ <rewrite>
45
+ <html_head>TPP_TabularPricePane_Block_Html_Head</html_head>
46
+ </rewrite>
47
+ </page>
48
+ </blocks>
49
+ <models>
50
+ <tabularpricepane>
51
+ <class>TPP_TabularPricePane_Model</class>
52
+ </tabularpricepane>
53
+ </models>
54
+ </global>
55
+ <frontend>
56
+ <routers>
57
+ <tabularpricepane>
58
+ <use>standard</use>
59
+ <args>
60
+ <module>TPP_TabularPricePane</module>
61
+ <frontName>tabularpricepane</frontName>
62
+ </args>
63
+ </tabularpricepane>
64
+ </routers>
65
+ <layout>
66
+ <updates>
67
+ <tabularpricepane>
68
+ <file>tabularpricepane.xml</file>
69
+ </tabularpricepane>
70
+ </updates>
71
+ </layout>
72
+ </frontend>
73
+ </config>
app/code/community/TPP/TabularPricePane/etc/widget.xml ADDED
@@ -0,0 +1,305 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ *
5
+ * Tabular Price Pane
6
+ *
7
+ * NOTICE OF LICENSE
8
+ *
9
+ * This source file is subject to the Open Software License (OSL 3.0)
10
+ * that is bundled with this package in the file LICENSE.txt.
11
+ * It is also available through the world-wide-web at this URL:
12
+ * http://opensource.org/licenses/osl-3.0.php
13
+ * If you did not receive a copy of the license and are unable to
14
+ * obtain it through the world-wide-web, please send an email
15
+ * to helpdesk@ikhodal.com so we can send you a copy immediately.
16
+ *
17
+ * DISCLAIMER
18
+ *
19
+ * Do not edit or add to this file if you wish to upgrade to newer
20
+ * versions in the future.
21
+ *
22
+ * @package TPP_TabularPricePane
23
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+ -->
27
+ <widgets>
28
+ <tabularpricepane_list type="tabularpricepane/list" translate="name description" module="tabularpricepane">
29
+ <name>Tabular Price Pane</name>
30
+ <description>Tabular Price Pane Widget for Magento.</description>
31
+ <parameters>
32
+ <widget_title>
33
+ <label>Widget title</label>
34
+ <visible>1</visible>
35
+ <required>1</required>
36
+ <type>text</type>
37
+ <value>Tabular Price Pane</value>
38
+ <description>Set the title for widget heading. You can also hide it by "Hide widget title?" field selection to "Yes" on this form.</description>
39
+ </widget_title>
40
+
41
+ <price_from>
42
+ <label>Price from</label>
43
+ <visible>1</visible>
44
+ <required>1</required>
45
+ <type>text</type>
46
+ <value>0</value>
47
+ <description>Add the integer value for starting the price tab filter.</description>
48
+ </price_from>
49
+
50
+ <price_to>
51
+ <label>Price to</label>
52
+ <visible>1</visible>
53
+ <required>1</required>
54
+ <type>text</type>
55
+ <value>1000</value>
56
+ <description>Add the integer value for ending the price tab filter or Enter the '0'(zero) value to auto calculate it's value as maximum of store price.</description>
57
+ </price_to>
58
+
59
+ <price_difference>
60
+ <label>Price difference</label>
61
+ <visible>1</visible>
62
+ <required>1</required>
63
+ <type>text</type>
64
+ <value>100</value>
65
+ <description>Add the integer value to divide the From and To values in the specified difference or Enter the '0'(zero) value to auto calculate it's value like (priceDifference = priceTo - priceFrom).</description>
66
+ </price_difference>
67
+
68
+ <cat_path translate="label">
69
+ <visible>1</visible>
70
+ <required>0</required>
71
+ <label>Default category</label>
72
+ <type>label</type>
73
+ <helper_block>
74
+ <type>adminhtml/catalog_category_widget_chooser</type>
75
+ <data>
76
+ <button translate="open">
77
+ <open>Select category</open>
78
+ </button>
79
+ </data>
80
+ </helper_block>
81
+ <description>Select any category as default to load the products on first priority.</description>
82
+ </cat_path>
83
+
84
+ <number_of_product_display>
85
+ <label>Number of products to display</label>
86
+ <visible>1</visible>
87
+ <required>1</required>
88
+ <type>text</type>
89
+ <value>4</value>
90
+ <description>Add the integer value to load default number of products on price tab clicking.</description>
91
+ </number_of_product_display>
92
+
93
+ <price_text_color>
94
+ <label>Product price text color</label>
95
+ <visible>1</visible>
96
+ <required>1</required>
97
+ <type>text</type>
98
+ <value>#000</value>
99
+ <description>Add color code or color name for product price.</description>
100
+ </price_text_color>
101
+
102
+ <title_text_color>
103
+ <label>Product title text color</label>
104
+ <visible>1</visible>
105
+ <required>1</required>
106
+ <type>text</type>
107
+ <value>#000</value>
108
+ <description>Add color code or color name for product title name.</description>
109
+ </title_text_color>
110
+
111
+ <price_tab_text_color>
112
+ <label>From - To price tab text color</label>
113
+ <visible>1</visible>
114
+ <required>1</required>
115
+ <type>text</type>
116
+ <value>#000</value>
117
+ <description>Add color code or color name for (From - To) price tab text.</description>
118
+ </price_tab_text_color>
119
+
120
+ <price_tab_background_color>
121
+ <label>From - To price tab background color</label>
122
+ <visible>1</visible>
123
+ <required>1</required>
124
+ <type>text</type>
125
+ <value>#F1F1F1</value>
126
+ <description>Add color code or color name for (From - To) price tab background.</description>
127
+ </price_tab_background_color>
128
+
129
+ <header_text_color>
130
+ <label>Widget title text color</label>
131
+ <visible>1</visible>
132
+ <required>1</required>
133
+ <type>text</type>
134
+ <value>#FFF</value>
135
+ <description>Add color code or color name for widget heading title.</description>
136
+ </header_text_color>
137
+
138
+ <header_background_color>
139
+ <label>Widget title background color</label>
140
+ <visible>1</visible>
141
+ <required>1</required>
142
+ <type>text</type>
143
+ <value>#19D56E</value>
144
+ <description>Add color code or color name for widget heading background.</description>
145
+ </header_background_color>
146
+
147
+ <tp_widget_width>
148
+ <label>Widget Width</label>
149
+ <visible>1</visible>
150
+ <required>1</required>
151
+ <type>text</type>
152
+ <value>100%</value>
153
+ <description>Add width of widget in pixel or percentage. Default width is 100%</description>
154
+ </tp_widget_width>
155
+
156
+ <display_title_price_over_image>
157
+ <label>Display title and price over image?</label>
158
+ <visible>1</visible>
159
+ <required>0</required>
160
+ <type>select</type>
161
+ <values>
162
+ <no translate="label">
163
+ <label>No</label>
164
+ <value>no</value>
165
+ </no>
166
+ <yes translate="label">
167
+ <label>Yes</label>
168
+ <value>yes</value>
169
+ </yes>
170
+ </values>
171
+ <description>Select "Yes" to hide title and price with add to cart button below of product image and display over product image when product image mouse hover. Default is "No" to display it below product image.</description>
172
+ </display_title_price_over_image>
173
+
174
+ <hide_widget_title>
175
+ <label>Hide widget title?</label>
176
+ <visible>1</visible>
177
+ <required>0</required>
178
+ <type>select</type>
179
+ <values>
180
+ <no translate="label">
181
+ <label>No</label>
182
+ <value>no</value>
183
+ </no>
184
+ <yes translate="label">
185
+ <label>Yes</label>
186
+ <value>yes</value>
187
+ </yes>
188
+ </values>
189
+ <description>Select "Yes" to hide widget heading. Default is "No" to display it.</description>
190
+ </hide_widget_title>
191
+
192
+ <hide_searchbox>
193
+ <label>Hide search textbox?</label>
194
+ <visible>1</visible>
195
+ <required>0</required>
196
+ <type>select</type>
197
+ <values>
198
+ <no translate="label">
199
+ <label>No</label>
200
+ <value>no</value>
201
+ </no>
202
+ <yes translate="label">
203
+ <label>Yes</label>
204
+ <value>yes</value>
205
+ </yes>
206
+ </values>
207
+ <description>Select "Yes" to hide search textbox field. Default is "No" to display it.</description>
208
+ </hide_searchbox>
209
+ <hide_categorybox>
210
+ <label>Hide category dropdown?</label>
211
+ <visible>1</visible>
212
+ <required>0</required>
213
+ <type>select</type>
214
+ <values>
215
+ <no translate="label">
216
+ <label>No</label>
217
+ <value>no</value>
218
+ </no>
219
+ <yes translate="label">
220
+ <label>Yes</label>
221
+ <value>yes</value>
222
+ </yes>
223
+ </values>
224
+ <description>Select "Yes" to hide category dropdown field. Default is "No" to display it.</description>
225
+ </hide_categorybox>
226
+
227
+ <hide_product_title>
228
+ <label>Hide product title?</label>
229
+ <visible>1</visible>
230
+ <required>0</required>
231
+ <type>select</type>
232
+ <values>
233
+ <no translate="label">
234
+ <label>No</label>
235
+ <value>no</value>
236
+ </no>
237
+ <yes translate="label">
238
+ <label>Yes</label>
239
+ <value>yes</value>
240
+ </yes>
241
+ </values>
242
+ <description>Select "Yes" to hide the product title. Default is "No" to display it.</description>
243
+ </hide_product_title>
244
+
245
+ <hide_product_price>
246
+ <label>Hide product price?</label>
247
+ <visible>1</visible>
248
+ <required>0</required>
249
+ <type>select</type>
250
+ <values>
251
+ <no translate="label">
252
+ <label>No</label>
253
+ <value>no</value>
254
+ </no>
255
+ <yes translate="label">
256
+ <label>Yes</label>
257
+ <value>yes</value>
258
+ </yes>
259
+ </values>
260
+ <description>Select "Yes" to hide the product price. Default is "No" to display it.</description>
261
+ </hide_product_price>
262
+ <template translate="label">
263
+ <label>Fronted template</label>
264
+ <visible>1</visible>
265
+ <required>1</required>
266
+ <type>select</type>
267
+ <values>
268
+ <pane_style_1 translate="label">
269
+ <value>tabularpricepane/pane_style_1.phtml</value>
270
+ <label>Pane style 1</label>
271
+ </pane_style_1>
272
+ <pane_style_2 translate="label">
273
+ <value>tabularpricepane/pane_style_2.phtml</value>
274
+ <label>Pane style 2</label>
275
+ </pane_style_2>
276
+ <pane_style_3 translate="label">
277
+ <value>tabularpricepane/pane_style_3.phtml</value>
278
+ <label>Pane style 3</label>
279
+ </pane_style_3>
280
+
281
+ <tab_style_1 translate="label">
282
+ <value>tabularpricepane/tab_style_1.phtml</value>
283
+ <label>Tab style 1</label>
284
+ </tab_style_1>
285
+ <tab_style_2 translate="label">
286
+ <value>tabularpricepane/tab_style_2.phtml</value>
287
+ <label>Tab style 2</label>
288
+ </tab_style_2>
289
+ <tab_style_3 translate="label">
290
+ <value>tabularpricepane/tab_style_3.phtml</value>
291
+ <label>Tab style 3</label>
292
+ </tab_style_3>
293
+ </values>
294
+ </template>
295
+ <block_id>
296
+ <label>Unique Widget ID</label>
297
+ <visible>1</visible>
298
+ <required>1</required>
299
+ <type>select</type>
300
+ <source_model>tabularpricepane/filters</source_model>
301
+ <description>Auto generated unique widget ID.</description>
302
+ </block_id>
303
+ </parameters>
304
+ </tabularpricepane_list>
305
+ </widgets>
app/design/frontend/base/default/layout/tabularpricepane.xml ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ /**
4
+ *
5
+ * Tabular Price Pane
6
+ *
7
+ * NOTICE OF LICENSE
8
+ *
9
+ * This source file is subject to the Open Software License (OSL 3.0)
10
+ * that is bundled with this package in the file LICENSE.txt.
11
+ * It is also available through the world-wide-web at this URL:
12
+ * http://opensource.org/licenses/osl-3.0.php
13
+ * If you did not receive a copy of the license and are unable to
14
+ * obtain it through the world-wide-web, please send an email
15
+ * to helpdesk@ikhodal.com so we can send you a copy immediately.
16
+ *
17
+ * DISCLAIMER
18
+ *
19
+ * Do not edit or add to this file if you wish to upgrade to newer
20
+ * versions in the future.
21
+ *
22
+ * @package TPP_TabularPricePane
23
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+ -->
27
+ <layout version="0.1.0">
28
+ <default>
29
+ <reference name="head">
30
+ <action method="addCss"><stylesheet>css/tpp/tabularpricepane.css</stylesheet></action>
31
+ <action method="addJs"><script>tpp/tabularpricepane.js</script></action>
32
+ </reference>
33
+ </default>
34
+ <tabularpricepane_index_index>
35
+ <block type="tabularpricepane/list" name="root" template="tabularpricepane/ajax_products.phtml" />
36
+ </tabularpricepane_index_index>
37
+ <tabularpricepane_index_loadmore>
38
+ <block type="tabularpricepane/list" name="root" template="tabularpricepane/ajax_load_more.phtml" />
39
+ </tabularpricepane_index_loadmore>
40
+ </layout>
app/design/frontend/base/default/template/tabularpricepane/ajax_load_more.phtml ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ * Tabular Price Pane
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 helpdesk@ikhodal.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade to newer
19
+ * versions in the future.
20
+ *
21
+ * @package TPP_TabularPricePane
22
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ */
25
+
26
+ $params = $this->getRequest()->getParams();
27
+ $_from = (isset($params["from"])?($params["from"]):0);
28
+ $_to =(isset($params["to"])?($params["to"]):0);
29
+ $_total =(isset($params["total"])?($params["total"]):0);
30
+ $category_id =(isset($params["category_id"])?($params["category_id"]):0);
31
+ $product_search_text =(isset($params["product_search_text"])?($params["product_search_text"]):"");
32
+ $_limit_start =(isset($params["limit_start"])?($params["limit_start"]):0);
33
+ $_limit_end = $params["number_of_product_display"];
34
+ $all_pg = ceil(($_total/$params["number_of_product_display"]));
35
+ $cur_all_pg =ceil(($_limit_start)/$params["number_of_product_display"]);
36
+ ?><script language='javascript'>var request_obj_<?php echo $params["vcode"]; ?> = { category_id:'<?php echo $params["category_id"]; ?>',hide_categorybox:'<?php echo $params["hide_categorybox"]; ?>',hide_searchbox:'<?php echo $params["hide_searchbox"]; ?>',hide_product_price:'<?php echo $params["hide_product_price"]; ?>', hide_product_title:'<?php echo $params["hide_product_title"]; ?>',product_price_color:'<?php echo $params["product_price_color"]; ?>', product_title_color:'<?php echo $params["product_title_color"]; ?>', price_tab_text_color:'<?php echo $params["price_tab_text_color"]; ?>', price_tab_background_color:'<?php echo $params["price_tab_background_color"]; ?>', header_text_color:'<?php echo $params["header_text_color"]; ?>', header_background_color:'<?php echo $params["header_background_color"]; ?>',display_title_price_over_image:'<?php echo $params["display_title_price_over_image"]; ?>',number_of_product_display:'<?php echo $params["number_of_product_display"]; ?>',vcode:'<?php echo $params["vcode"]; ?>'}</script><?php
37
+ $_total_products = $this->getTotalProducts($_from,$_to,$category_id,$product_search_text,1,0);
38
+ if($_total_products<=0){
39
+ ?><div class="ik-product-no-items"><?php echo $this->__('No products found.'); ?></div><?php
40
+ die();
41
+ }
42
+ $collection = $this->loadMoreFilteredProducts();
43
+ foreach($collection as $_product){
44
+ $_product = $_product->load();
45
+ ?>
46
+ <div class='ik-product-item pid-<?php echo $_product->getId(); ?>'>
47
+ <div class='ik-product-image' onmouseout="pr_item_image_mouseout(this)" onmouseover="pr_item_image_mousehover(this)">
48
+ <a href="<?php echo $_product->getProductUrl(); ?>">
49
+ <div class="ov-layer">
50
+ <?php if($params["display_title_price_over_image"]=='yes'){ ?>
51
+ <div class='ik-overlay-product-content'>
52
+ <?php if($params["hide_product_title"]=='no'){ ?>
53
+ <div class='ik-product-name' style="color:<?php echo $params["product_title_color"]; ?>" >
54
+ <?php echo $_product->getName(); ?>
55
+ </div>
56
+ <?php } ?>
57
+
58
+ <?php if($params["hide_product_price"]=='no'){ ?>
59
+ <div class='ik-product-sale-price' style="color:<?php echo $params["product_price_color"]; ?>" >
60
+ <?php echo Mage::helper('core')->currency($_product->getFinalPrice(), true, true); ?>
61
+ </div>
62
+ <?php } ?>
63
+ <?php if($_product->isSaleable()){ ?>
64
+ <p><button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="btn-crt" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></p>
65
+ <?php } ?>
66
+ <div class="clr"></div>
67
+ </div>
68
+ <div class="clr"></div>
69
+ <?php } ?>
70
+ </div>
71
+ <div class="clr"></div>
72
+ </a>
73
+ <a href="<?php echo $_product->getProductUrl(); ?>">
74
+ <img src = "<?php echo Mage::helper('catalog/image')->init($_product, 'small_image')->resize(250); ?>" />
75
+ </a>
76
+ </div>
77
+ <?php if($params["display_title_price_over_image"]=='no'){ ?>
78
+ <div class='ik-product-content'>
79
+ <?php if($params["hide_product_title"]=='no'){ ?>
80
+ <div class='ik-product-name'>
81
+ <a href="<?php echo $_product->getProductUrl(); ?>" style="color:<?php echo $params["product_title_color"]; ?>" >
82
+ <?php echo $_product->getName(); ?>
83
+ </a>
84
+ </div>
85
+ <?php } ?>
86
+ <?php if($params["hide_product_price"]=='no'){ ?>
87
+ <div class='ik-product-sale-price' style="color:<?php echo $params["product_price_color"]; ?>">
88
+ <?php echo Mage::helper('core')->currency($_product->getFinalPrice(), true, true); ?>
89
+ </div>
90
+ <?php } ?>
91
+ <?php if($_product->isSaleable()){ ?>
92
+ <p><button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="btn-crt" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></p>
93
+ <?php } ?>
94
+ </div>
95
+ <?php } ?>
96
+ </div>
97
+ <?php
98
+ }
99
+ if(($all_pg)>=$cur_all_pg+2){
100
+ ?>
101
+ <div class="clr"></div>
102
+ <div class='ik-product-load-more' align="center" onclick='loadMoreProducts("<?php echo $params["from"]; ?>","<?php echo $params["to"]; ?>","<?php echo $_limit_start+$_limit_end; ?>","<?php echo $params["vcode"]."-".$params["from"]."-".$params["to"]; ?>","<?php echo $_total; ?>",request_obj_<?php echo $params["vcode"]; ?>)'>
103
+ <?php echo $this->__('Load More'); ?>
104
+ </div>
105
+ <?php
106
+ } else{
107
+ ?><div class="clr"></div><?php
108
+ }
109
+ ?>
app/design/frontend/base/default/template/tabularpricepane/ajax_products.phtml ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ * Tabular Price Pane
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 helpdesk@ikhodal.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade to newer
19
+ * versions in the future.
20
+ *
21
+ * @package TPP_TabularPricePane
22
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ */
25
+
26
+ $params = $this->getRequest()->getParams();
27
+ $_from = (isset($params["from"])?($params["from"]):0);
28
+ $_to =(isset($params["to"])?($params["to"]):0);
29
+ $category_id =(isset($params["category_id"])?($params["category_id"]):0);
30
+ $product_search_text =(isset($params["product_search_text"])?($params["product_search_text"]):"");
31
+ $_limit_start =(isset($params["limit_start"])?($params["limit_start"]):0);
32
+ $_limit_end = $params["number_of_product_display"];
33
+ $is_default_category_with_hidden = 0;
34
+ if($params["hide_categorybox"]=="yes")
35
+ $is_default_category_with_hidden = 1;
36
+
37
+ ?><script language='javascript'>var request_obj_<?php echo $params["vcode"]; ?> = {category_id:'<?php echo $category_id; ?>',hide_categorybox:'<?php echo $params["hide_categorybox"]; ?>',hide_searchbox:'<?php echo $params["hide_searchbox"]; ?>', hide_product_price:'<?php echo $params["hide_product_price"]; ?>', hide_product_title:'<?php echo $params["hide_product_title"]; ?>', product_price_color:'<?php echo $params["product_price_color"]; ?>', product_title_color:'<?php echo $params["product_title_color"]; ?>', price_tab_text_color:'<?php echo $params["price_tab_text_color"]; ?>',price_tab_background_color:'<?php echo $params["price_tab_background_color"]; ?>', header_text_color:'<?php echo $params["header_text_color"]; ?>', header_background_color:'<?php echo $params["header_background_color"]; ?>',display_title_price_over_image:'<?php echo $params["display_title_price_over_image"]; ?>', number_of_product_display:'<?php echo $params["number_of_product_display"]; ?>',vcode:'<?php echo $params["vcode"]; ?>'} </script><?php
38
+ if($this->getTotalProducts($_from,$_to,$category_id,$product_search_text,0,$is_default_category_with_hidden)>0){
39
+ $_category_res = Mage::getModel('catalog/category')->getCollection()->addAttributeToFilter('is_active',array('1'))->load();
40
+ if(count($_category_res)>0 && !($params["hide_searchbox"]=='yes' && $params["hide_categorybox"]=='yes')){
41
+ ?>
42
+ <div class="ik-product-category">
43
+ <?php if($params["hide_searchbox"]=='no'){ ?>
44
+ <div class="ik-search-title" >
45
+ <?php echo $this->__('Search'); ?><br />
46
+ <input type="text" name="txtSearch" placeholder="<?php echo $this->__('Search'); ?>" value="<?php echo htmlspecialchars($product_search_text); ?>" class="ik-product-search-text" />
47
+ </div>
48
+ <?php } ?>
49
+
50
+ <?php if($params["hide_categorybox"]=='no'){ ?>
51
+ <div class="ik-search-category" >
52
+ <?php echo $this->__('Category'); ?><br />
53
+ <select name="drpCategory" style="padding:3px !important; margin:0px !important; height:26px !important; border:1px solid #ccc !important" class="ik-drp-product-category" >
54
+ <option value="0"><?php echo $this->__('All') ?></option>
55
+ <?php
56
+ foreach($_category_res as $_category){
57
+ $_category = $_category->load();
58
+ $_category_name = $_category->getName();
59
+ $_category_id = $_category->getId();
60
+ if($category_id==$_category_id){
61
+ ?><option selected="true" value="<?php echo $_category_id; ?>"><?php echo $_category_name; ?></option><?php
62
+ }else{
63
+ ?><option value="<?php echo $_category_id; ?>"><?php echo $_category_name; ?></option><?php
64
+ }
65
+ }
66
+ ?>
67
+ </select>
68
+ </div>
69
+ <?php } ?>
70
+
71
+ <div class="ik-search-button" onclick='fillProducts("<?php echo $params["vcode"]."-".$_from."-".$_to; ?>","<?php echo $_from; ?>","<?php echo $_to; ?>",request_obj_<?php echo $params["vcode"]; ?>,2)'>
72
+ <br /><img width="18px" alt="Search" height="18px" src="<?php echo $this->getSkinUrl('images/tpp/searchicon.png') ?>" />
73
+ </div>
74
+ <div class="clrb"></div>
75
+ </div>
76
+ <?php
77
+ }
78
+ }
79
+ $_total_products = $this->getTotalProducts($_from,$_to,$category_id,$product_search_text,1,$is_default_category_with_hidden);
80
+ if($_total_products<=0){
81
+ ?><div class="ik-product-no-items"><?php echo $this->__('No products found.') ?></div><?php
82
+ die();
83
+ }
84
+ $collection = $this->loadFilteredProducts();
85
+ foreach($collection as $_product){
86
+ $_product = $_product->load();
87
+ ?>
88
+ <div class='ik-product-item pid-<?php echo $_product->getId(); ?>'>
89
+ <div class='ik-product-image' onmouseout="pr_item_image_mouseout(this)" onmouseover="pr_item_image_mousehover(this)">
90
+ <a href="<?php echo $_product->getProductUrl(); ?>">
91
+ <div class="ov-layer" >
92
+ <?php if($params["display_title_price_over_image"]=='yes'){ ?>
93
+ <div class='ik-overlay-product-content'>
94
+ <?php if($params["hide_product_title"]=='no'){ ?>
95
+ <div class='ik-product-name' style="color:<?php echo $params["product_title_color"]; ?>" >
96
+ <?php echo $_product->getName(); ?>
97
+ </div>
98
+ <?php } ?>
99
+ <?php if($params["hide_product_price"]=='no'){ ?>
100
+ <div class='ik-product-sale-price' style="color:<?php echo $params["product_price_color"]; ?>" >
101
+ <?php echo Mage::helper('core')->currency($_product->getFinalPrice(), true, true); ?>
102
+ </div>
103
+ <?php } ?>
104
+ <?php if($_product->isSaleable()){ ?>
105
+ <p><button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="btn-crt" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></p>
106
+ <?php } ?>
107
+ <div class="clr"></div>
108
+ </div>
109
+ <div class="clr"></div>
110
+ <?php } ?>
111
+ </div>
112
+ <div class="clr"></div>
113
+ </a>
114
+ <div class="clr"></div>
115
+ <a href="<?php echo $_product->getProductUrl(); ?>">
116
+ <img src = "<?php echo Mage::helper('catalog/image')->init($_product, 'small_image')->resize(250); ?>" />
117
+ </a>
118
+ </div>
119
+ <?php if($params["display_title_price_over_image"]=='no'){ ?>
120
+ <div class='ik-product-content'>
121
+ <?php if($params["hide_product_title"]=='no'){ ?>
122
+ <div class='ik-product-name'>
123
+ <a href="<?php echo $_product->getProductUrl(); ?>" style="color:<?php echo $params["product_title_color"]; ?>" >
124
+ <?php echo $_product->getName(); ?>
125
+ </a>
126
+ </div>
127
+ <?php } ?>
128
+
129
+ <?php if($params["hide_product_price"]=='no'){ ?>
130
+ <div class='ik-product-sale-price' style="color:<?php echo $params["product_price_color"]; ?>">
131
+ <?php
132
+ echo Mage::helper('core')->currency($_product->getFinalPrice(), true, true); ?>
133
+ </div>
134
+ <?php } ?>
135
+ <?php if($_product->isSaleable()){ ?>
136
+ <p><button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="btn-crt" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></p>
137
+ <?php } ?>
138
+ </div>
139
+ <?php } ?>
140
+ </div>
141
+ <?php
142
+ }
143
+ if($_total_products>$params["number_of_product_display"]){ ?>
144
+ <div class="clr"></div>
145
+ <div class='ik-product-load-more' align="center" onclick='loadMoreProducts("<?php echo $params["from"]; ?>","<?php echo $params["to"]; ?>","<?php echo $_limit_start+$_limit_end; ?>","<?php echo $params["vcode"]."-".$params["from"]."-".$params["to"]; ?>","<?php echo $_total_products; ?>",request_obj_<?php echo $params["vcode"]; ?>)'>
146
+ <?php echo $this->__('Load More') ?>
147
+ </div>
148
+ <?php
149
+ }else{
150
+ ?><div class="clr"></div><?php
151
+ }
152
+ ?>
app/design/frontend/base/default/template/tabularpricepane/pane_style_1.phtml ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ * Tabular Price Pane
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 helpdesk@ikhodal.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade to newer
19
+ * versions in the future.
20
+ *
21
+ * @package TPP_TabularPricePane
22
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ */
25
+
26
+ $vcode = $this->getUCode(); ?>
27
+ <script type='text/javascript' language='javascript'> var default_category_id_<?php echo $vcode; ?> = '<?php echo $this->_config["category_id"]; ?>'; var request_obj_<?php echo $vcode; ?> = { category_id:'<?php echo $this->_config["category_id"]; ?>',hide_categorybox:'<?php echo $this->_config["hide_categorybox"]; ?>',hide_searchbox:'<?php echo $this->_config["hide_searchbox"]; ?>', hide_product_price:'<?php echo $this->_config["hide_product_price"]; ?>',price_difference:'<?php echo $this->_config["price_difference"]; ?>', hide_product_title:'<?php echo $this->_config["hide_product_title"]; ?>',product_price_color:'<?php echo $this->_config["price_text_color"]; ?>', product_title_color:'<?php echo $this->_config["title_text_color"]; ?>',price_tab_text_color:'<?php echo $this->_config["price_tab_text_color"]; ?>', price_tab_background_color:'<?php echo $this->_config["price_tab_background_color"]; ?>',header_text_color:'<?php echo $this->_config["header_text_color"]; ?>', header_background_color:'<?php echo $this->_config["header_background_color"]; ?>',display_title_price_over_image:'<?php echo $this->_config["display_title_price_over_image"]; ?>', number_of_product_display:'<?php echo $this->_config["number_of_product_display"]; ?>', vcode:'<?php echo $vcode; ?>'}</script>
28
+ <?php $_price_list = $this->getPriceTabArray(); ?>
29
+ <div id="tabularpricepane" style="width:<?php echo $this->_config["tp_widget_width"]; ?>" class="<?php echo ((trim($this->_config["display_title_price_over_image"])=="yes")?"disp_title_over_img":""); ?>">
30
+ <?php if($this->_config["hide_widget_title"]=="no"){ ?>
31
+ <div class="ik-price-tab-title-head" style="background-color:<?php echo $this->_config["header_background_color"]; ?>;color:<?php echo $this->_config["header_text_color"]; ?>" >
32
+ <?php echo $this->_config["widget_title"]; ?>
33
+ </div>
34
+ <?php } ?>
35
+ <span class='wp-load-icon'>
36
+ <img width="18px" height="18px" src="<?php echo $this->getSkinUrl('images/tpp/loader.gif') ?>" />
37
+ </span>
38
+ <div class="wea_content lt-grid">
39
+ <?php
40
+ if(count($_price_list)>0){
41
+ foreach($_price_list as $_price_list_item){
42
+ ?>
43
+ <div class="item-price-list">
44
+ <div class="price-item" onmouseout="price_tab_ms_out(this)" onmouseover="price_tab_ms_hover(this)" id="<?php echo $vcode.'-'.$_price_list_item["from"].'-'.$_price_list_item["to"]; ?>" onclick="fillProducts(this.id,'<?php echo $_price_list_item["from"];?>','<?php echo $_price_list_item["to"]; ?>',request_obj_<?php echo $vcode; ?>,1)" style="color:<?php echo $this->_config["price_tab_text_color"]; ?>;background-color:<?php echo $this->_config["price_tab_background_color"]; ?>;" >
45
+ <div class="price-item-text" onmouseout="price_tab_ms_out(this.parentNode)" onmouseover="price_tab_ms_hover(this.parentNode)">
46
+ <?php echo Mage::helper('core')->currency($_price_list_item["from"], true, true).' - '.Mage::helper('core')->currency($_price_list_item["to"], true, true); ?>
47
+ </div>
48
+ <div class="ld-price-item-text"></div>
49
+ <div class="clr"></div>
50
+ </div>
51
+ <div class="item-products"></div>
52
+ <div class="clr"></div>
53
+ </div>
54
+ <div class="clr"></div>
55
+ <?php
56
+ }
57
+ }
58
+ ?>
59
+ <div class="clr"></div>
60
+ </div>
61
+ </div>
app/design/frontend/base/default/template/tabularpricepane/pane_style_2.phtml ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ * Tabular Price Pane
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 helpdesk@ikhodal.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade to newer
19
+ * versions in the future.
20
+ *
21
+ * @package TPP_TabularPricePane
22
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ */
25
+
26
+ $vcode = $this->getUCode(); ?>
27
+ <script type='text/javascript' language='javascript'>var default_category_id_<?php echo $vcode; ?> = '<?php echo $this->_config["category_id"]; ?>'; var request_obj_<?php echo $vcode; ?> = { category_id:'<?php echo $this->_config["category_id"]; ?>',hide_categorybox:'<?php echo $this->_config["hide_categorybox"]; ?>',hide_searchbox:'<?php echo $this->_config["hide_searchbox"]; ?>', hide_product_price:'<?php echo $this->_config["hide_product_price"]; ?>',price_difference:'<?php echo $this->_config["price_difference"]; ?>', hide_product_title:'<?php echo $this->_config["hide_product_title"]; ?>',product_price_color:'<?php echo $this->_config["price_text_color"]; ?>', product_title_color:'<?php echo $this->_config["title_text_color"]; ?>',price_tab_text_color:'<?php echo $this->_config["price_tab_text_color"]; ?>', price_tab_background_color:'<?php echo $this->_config["price_tab_background_color"]; ?>',header_text_color:'<?php echo $this->_config["header_text_color"]; ?>', header_background_color:'<?php echo $this->_config["header_background_color"]; ?>',display_title_price_over_image:'<?php echo $this->_config["display_title_price_over_image"]; ?>', number_of_product_display:'<?php echo $this->_config["number_of_product_display"]; ?>', vcode:'<?php echo $vcode; ?>'}</script>
28
+ <?php $_price_list = $this->getPriceTabArray(); ?>
29
+ <div id="tabularpricepane" style="width:<?php echo $this->_config["tp_widget_width"]; ?>" class="pane_style_2 <?php echo ((trim($this->_config["display_title_price_over_image"])=="yes")?"disp_title_over_img":""); ?>">
30
+ <?php if($this->_config["hide_widget_title"]=="no"){ ?>
31
+ <div class="ik-price-tab-title-head" style="background-color:<?php echo $this->_config["header_background_color"]; ?>;color:<?php echo $this->_config["header_text_color"]; ?>" >
32
+ <?php echo $this->_config["widget_title"]; ?>
33
+ </div>
34
+ <?php } ?>
35
+ <span class='wp-load-icon'>
36
+ <img width="18px" height="18px" src="<?php echo $this->getSkinUrl('images/tpp/loader.gif') ?>" />
37
+ </span>
38
+ <div class="wea_content lt-grid">
39
+ <?php
40
+ if(count($_price_list)>0){
41
+ foreach($_price_list as $_price_list_item){
42
+ ?>
43
+ <div class="item-price-list">
44
+ <div class="price-item" onmouseout="price_tab_ms_out(this)" onmouseover="price_tab_ms_hover(this)" id="<?php echo $vcode.'-'.$_price_list_item["from"].'-'.$_price_list_item["to"]; ?>" onclick="fillProducts(this.id,'<?php echo $_price_list_item["from"];?>','<?php echo $_price_list_item["to"]; ?>',request_obj_<?php echo $vcode; ?>,1)" style="color:<?php echo $this->_config["price_tab_text_color"]; ?>;background-color:<?php echo $this->_config["price_tab_background_color"]; ?>;" >
45
+ <div onmouseout="price_tab_ms_out(this.parentNode)" onmouseover="price_tab_ms_hover(this.parentNode)" class="price-item-text">
46
+ <?php echo Mage::helper('core')->currency($_price_list_item["from"], true, true).' - '.Mage::helper('core')->currency($_price_list_item["to"], true, true); ?>
47
+ </div>
48
+ <div class="ld-price-item-text"></div>
49
+ <div class="clr"></div>
50
+ </div>
51
+ <div class="item-products"></div>
52
+ <div class="clr"></div>
53
+ </div>
54
+ <div class="clr"></div>
55
+ <?php
56
+ }
57
+ }
58
+ ?>
59
+ <div class="clr"></div>
60
+ </div>
61
+ </div>
app/design/frontend/base/default/template/tabularpricepane/pane_style_3.phtml ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ * Tabular Price Pane
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 helpdesk@ikhodal.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade to newer
19
+ * versions in the future.
20
+ *
21
+ * @package TPP_TabularPricePane
22
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ */
25
+
26
+ $vcode = $this->getUCode(); ?>
27
+ <script language='javascript'> var default_category_id_<?php echo $vcode; ?> = '<?php echo $this->_config["category_id"]; ?>'; var request_obj_<?php echo $vcode; ?> = { category_id:'<?php echo $this->_config["category_id"]; ?>',hide_categorybox:'<?php echo $this->_config["hide_categorybox"]; ?>',hide_searchbox:'<?php echo $this->_config["hide_searchbox"]; ?>', hide_product_price:'<?php echo $this->_config["hide_product_price"]; ?>',price_difference:'<?php echo $this->_config["price_difference"]; ?>', hide_product_title:'<?php echo $this->_config["hide_product_title"]; ?>',product_price_color:'<?php echo $this->_config["price_text_color"]; ?>', product_title_color:'<?php echo $this->_config["title_text_color"]; ?>',price_tab_text_color:'<?php echo $this->_config["price_tab_text_color"]; ?>', price_tab_background_color:'<?php echo $this->_config["price_tab_background_color"]; ?>',header_text_color:'<?php echo $this->_config["header_text_color"]; ?>', header_background_color:'<?php echo $this->_config["header_background_color"]; ?>',display_title_price_over_image:'<?php echo $this->_config["display_title_price_over_image"]; ?>', number_of_product_display:'<?php echo $this->_config["number_of_product_display"]; ?>', vcode:'<?php echo $vcode; ?>'}</script>
28
+ <?php $_price_list = $this->getPriceTabArray(); ?>
29
+ <div id="tabularpricepane" style="width:<?php echo $this->_config["tp_widget_width"]; ?>" class="pane_style_3 <?php echo ((trim($this->_config["display_title_price_over_image"])=="yes")?"disp_title_over_img":""); ?>">
30
+ <?php if($this->_config["hide_widget_title"]=="no"){ ?>
31
+ <div class="ik-price-tab-title-head" style="background-color:<?php echo $this->_config["header_background_color"]; ?>;color:<?php echo $this->_config["header_text_color"]; ?>" >
32
+ <?php echo $this->_config["widget_title"]; ?>
33
+ </div>
34
+ <?php } ?>
35
+ <span class='wp-load-icon'>
36
+ <img width="18px" height="18px" src="<?php echo $this->getSkinUrl('images/tpp/loader.gif') ?>" />
37
+ </span>
38
+ <div class="wea_content lt-grid">
39
+ <?php
40
+ if(count($_price_list)>0){
41
+ foreach($_price_list as $_price_list_item){
42
+ ?>
43
+ <div class="item-price-list">
44
+ <div class="price-item" onmouseout="price_tab_ms_out(this)" onmouseover="price_tab_ms_hover(this)" id="<?php echo $vcode.'-'.$_price_list_item["from"].'-'.$_price_list_item["to"]; ?>" onclick="fillProducts(this.id,'<?php echo $_price_list_item["from"];?>','<?php echo $_price_list_item["to"]; ?>',request_obj_<?php echo $vcode; ?>,1)" style="color:<?php echo $this->_config["price_tab_text_color"]; ?>;background-color:<?php echo $this->_config["price_tab_background_color"]; ?>;" >
45
+ <div onmouseout="price_tab_ms_out(this.parentNode)" onmouseover="price_tab_ms_hover(this.parentNode)" class="price-item-text">
46
+ <?php echo Mage::helper('core')->currency($_price_list_item["from"], true, true).' - '.Mage::helper('core')->currency($_price_list_item["to"], true, true); ?>
47
+ </div>
48
+ <div class="ld-price-item-text"></div>
49
+ <div class="clr"></div>
50
+ </div>
51
+ <div class="item-products"></div>
52
+ <div class="clr"></div>
53
+ </div>
54
+ <div class="clr"></div>
55
+ <?php
56
+ }
57
+ }
58
+ ?>
59
+ <div class="clr"></div>
60
+ </div>
61
+ </div>
app/design/frontend/base/default/template/tabularpricepane/tab_style_1.phtml ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ * Tabular Price Pane
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 helpdesk@ikhodal.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade to newer
19
+ * versions in the future.
20
+ *
21
+ * @package TPP_TabularPricePane
22
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ */
25
+
26
+ $vcode = $this->getUCode(); ?>
27
+ <script type='text/javascript' language='javascript'>var default_category_id_<?php echo $vcode; ?> = '<?php echo $this->_config["category_id"]; ?>'; var request_obj_<?php echo $vcode; ?> = { category_id:'<?php echo $this->_config["category_id"]; ?>',hide_categorybox:'<?php echo $this->_config["hide_categorybox"]; ?>',hide_searchbox:'<?php echo $this->_config["hide_searchbox"]; ?>', hide_product_price:'<?php echo $this->_config["hide_product_price"]; ?>',price_difference:'<?php echo $this->_config["price_difference"]; ?>', hide_product_title:'<?php echo $this->_config["hide_product_title"]; ?>',product_price_color:'<?php echo $this->_config["price_text_color"]; ?>', product_title_color:'<?php echo $this->_config["title_text_color"]; ?>',price_tab_text_color:'<?php echo $this->_config["price_tab_text_color"]; ?>', price_tab_background_color:'<?php echo $this->_config["price_tab_background_color"]; ?>',header_text_color:'<?php echo $this->_config["header_text_color"]; ?>', header_background_color:'<?php echo $this->_config["header_background_color"]; ?>',display_title_price_over_image:'<?php echo $this->_config["display_title_price_over_image"]; ?>', number_of_product_display:'<?php echo $this->_config["number_of_product_display"]; ?>', vcode:'<?php echo $vcode; ?>'}</script>
28
+ <?php $_price_list = $this->getPriceTabArray(); ?>
29
+ <div id="tabularpricepane" style="width:<?php echo $this->_config["tp_widget_width"]; ?>" class="<?php echo ((trim($this->_config["display_title_price_over_image"])=="yes")?"disp_title_over_img":""); ?>">
30
+ <?php if($this->_config["hide_widget_title"]=="no"){ ?>
31
+ <div class="ik-price-tab-title-head" style="background-color:<?php echo $this->_config["header_background_color"]; ?>;color:<?php echo $this->_config["header_text_color"]; ?>" >
32
+ <?php echo $this->_config["widget_title"]; ?>
33
+ </div>
34
+ <?php } ?>
35
+ <span class='wp-load-icon'>
36
+ <img src="<?php echo $this->getSkinUrl('images/tpp/loader.gif') ?>" />
37
+ </span>
38
+ <div class="wea_content lt-tab">
39
+ <?php
40
+ if(count($_price_list)>0){
41
+ foreach($_price_list as $_price_list_item){
42
+ ?>
43
+ <div class="item-price-list">
44
+ <div class="price-item" onmouseout="price_tab_ms_out(this)" onmouseover="price_tab_ms_hover(this)" id="<?php echo $vcode.'-'.$_price_list_item["from"].'-'.$_price_list_item["to"]; ?>" onclick="fillProducts(this.id,'<?php echo $_price_list_item["from"];?>','<?php echo $_price_list_item["to"]; ?>',request_obj_<?php echo $vcode; ?>,1)" style="color:<?php echo $this->_config["price_tab_text_color"]; ?>;background-color:<?php echo $this->_config["price_tab_background_color"]; ?>;" >
45
+ <div onmouseout="price_tab_ms_out(this.parentNode)" onmouseover="price_tab_ms_hover(this.parentNode)" class="price-item-text">
46
+ <?php echo Mage::helper('core')->currency($_price_list_item["from"], true, true).' - '.Mage::helper('core')->currency($_price_list_item["to"], true, true); ?>
47
+ </div>
48
+ <div class="ld-price-item-text"></div>
49
+ <div class="clr"></div>
50
+ </div>
51
+ </div>
52
+ <?php
53
+ }
54
+ }
55
+ ?>
56
+ <div class="clr"></div>
57
+ <div class="item-products"></div>
58
+ <div class="clr"></div>
59
+ </div>
60
+ </div>
app/design/frontend/base/default/template/tabularpricepane/tab_style_2.phtml ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ * Tabular Price Pane
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 helpdesk@ikhodal.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade to newer
19
+ * versions in the future.
20
+ *
21
+ * @package TPP_TabularPricePane
22
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ */
25
+
26
+ $vcode = $this->getUCode(); ?>
27
+ <script type='text/javascript' language='javascript'>var default_category_id_<?php echo $vcode; ?> = '<?php echo $this->_config["category_id"]; ?>'; var request_obj_<?php echo $vcode; ?> = { category_id:'<?php echo $this->_config["category_id"]; ?>',hide_categorybox:'<?php echo $this->_config["hide_categorybox"]; ?>',hide_searchbox:'<?php echo $this->_config["hide_searchbox"]; ?>', hide_product_price:'<?php echo $this->_config["hide_product_price"]; ?>',price_difference:'<?php echo $this->_config["price_difference"]; ?>', hide_product_title:'<?php echo $this->_config["hide_product_title"]; ?>',product_price_color:'<?php echo $this->_config["price_text_color"]; ?>', product_title_color:'<?php echo $this->_config["title_text_color"]; ?>',price_tab_text_color:'<?php echo $this->_config["price_tab_text_color"]; ?>', price_tab_background_color:'<?php echo $this->_config["price_tab_background_color"]; ?>',header_text_color:'<?php echo $this->_config["header_text_color"]; ?>', header_background_color:'<?php echo $this->_config["header_background_color"]; ?>',display_title_price_over_image:'<?php echo $this->_config["display_title_price_over_image"]; ?>', number_of_product_display:'<?php echo $this->_config["number_of_product_display"]; ?>', vcode:'<?php echo $vcode; ?>'}</script>
28
+ <?php $_price_list = $this->getPriceTabArray(); ?>
29
+ <div id="tabularpricepane" style="width:<?php echo $this->_config["tp_widget_width"]; ?>" class="tab_style_2 <?php echo ((trim($this->_config["display_title_price_over_image"])=="yes")?"disp_title_over_img":""); ?>">
30
+ <?php if($this->_config["hide_widget_title"]=="no"){ ?>
31
+ <div class="ik-price-tab-title-head" style="background-color:<?php echo $this->_config["header_background_color"]; ?>;color:<?php echo $this->_config["header_text_color"]; ?>" >
32
+ <?php echo $this->_config["widget_title"]; ?>
33
+ </div>
34
+ <?php } ?>
35
+ <span class='wp-load-icon'>
36
+ <img src="<?php echo $this->getSkinUrl('images/tpp/loader.gif') ?>" />
37
+ </span>
38
+ <div class="wea_content lt-tab">
39
+ <?php
40
+ if(count($_price_list)>0){
41
+ foreach($_price_list as $_price_list_item){
42
+ ?>
43
+ <div class="item-price-list">
44
+ <div onmouseout="price_tab_ms_out(this)" onmouseover="price_tab_ms_hover(this)" class="price-item" id="<?php echo $vcode.'-'.$_price_list_item["from"].'-'.$_price_list_item["to"]; ?>" onclick="fillProducts(this.id,'<?php echo $_price_list_item["from"];?>','<?php echo $_price_list_item["to"]; ?>',request_obj_<?php echo $vcode; ?>,1)" style="color:<?php echo $this->_config["price_tab_text_color"]; ?>;background-color:<?php echo $this->_config["price_tab_background_color"]; ?>;" >
45
+ <div onmouseout="price_tab_ms_out(this.parentNode)" onmouseover="price_tab_ms_hover(this.parentNode)" class="price-item-text">
46
+ <?php echo Mage::helper('core')->currency($_price_list_item["from"], true, true).' - '.Mage::helper('core')->currency($_price_list_item["to"], true, true); ?>
47
+ </div>
48
+ <div class="ld-price-item-text"></div>
49
+ <div class="clr"></div>
50
+ </div>
51
+ </div>
52
+ <?php
53
+ }
54
+ }
55
+ ?>
56
+ <div class="clr"></div>
57
+ <div class="item-products"></div>
58
+ <div class="clr"></div>
59
+ </div>
60
+ </div>
app/design/frontend/base/default/template/tabularpricepane/tab_style_3.phtml ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ * Tabular Price Pane
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 helpdesk@ikhodal.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade to newer
19
+ * versions in the future.
20
+ *
21
+ * @package TPP_TabularPricePane
22
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ */
25
+
26
+ $vcode = $this->getUCode(); ?>
27
+ <script type='text/javascript' language='javascript'>var default_category_id_<?php echo $vcode; ?> = '<?php echo $this->_config["category_id"]; ?>'; var request_obj_<?php echo $vcode; ?> = { category_id:'<?php echo $this->_config["category_id"]; ?>',hide_categorybox:'<?php echo $this->_config["hide_categorybox"]; ?>',hide_searchbox:'<?php echo $this->_config["hide_searchbox"]; ?>', hide_product_price:'<?php echo $this->_config["hide_product_price"]; ?>',price_difference:'<?php echo $this->_config["price_difference"]; ?>', hide_product_title:'<?php echo $this->_config["hide_product_title"]; ?>',product_price_color:'<?php echo $this->_config["price_text_color"]; ?>', product_title_color:'<?php echo $this->_config["title_text_color"]; ?>',price_tab_text_color:'<?php echo $this->_config["price_tab_text_color"]; ?>', price_tab_background_color:'<?php echo $this->_config["price_tab_background_color"]; ?>',header_text_color:'<?php echo $this->_config["header_text_color"]; ?>', header_background_color:'<?php echo $this->_config["header_background_color"]; ?>',display_title_price_over_image:'<?php echo $this->_config["display_title_price_over_image"]; ?>', number_of_product_display:'<?php echo $this->_config["number_of_product_display"]; ?>', vcode:'<?php echo $vcode; ?>'}</script>
28
+ <?php $_price_list = $this->getPriceTabArray(); ?>
29
+ <div id="tabularpricepane" style="width:<?php echo $this->_config["tp_widget_width"]; ?>" class="tab_style_3 <?php echo ((trim($this->_config["display_title_price_over_image"])=="yes")?"disp_title_over_img":""); ?>">
30
+ <?php if($this->_config["hide_widget_title"]=="no"){ ?>
31
+ <div class="ik-price-tab-title-head" style="background-color:<?php echo $this->_config["header_background_color"]; ?>;color:<?php echo $this->_config["header_text_color"]; ?>" >
32
+ <?php echo $this->_config["widget_title"]; ?>
33
+ </div>
34
+ <?php } ?>
35
+ <span class='wp-load-icon'>
36
+ <img src="<?php echo $this->getSkinUrl('images/tpp/loader.gif') ?>" />
37
+ </span>
38
+ <div class="wea_content lt-tab">
39
+ <?php
40
+ if(count($_price_list)>0){
41
+ foreach($_price_list as $_price_list_item){
42
+ ?>
43
+ <div class="item-price-list">
44
+ <div onmouseout="price_tab_ms_out(this)" onmouseover="price_tab_ms_hover(this)" class="price-item" id="<?php echo $vcode.'-'.$_price_list_item["from"].'-'.$_price_list_item["to"]; ?>" onclick="fillProducts(this.id,'<?php echo $_price_list_item["from"];?>','<?php echo $_price_list_item["to"]; ?>',request_obj_<?php echo $vcode; ?>,1)" style="color:<?php echo $this->_config["price_tab_text_color"]; ?>;background-color:<?php echo $this->_config["price_tab_background_color"]; ?>;" >
45
+ <div onmouseout="price_tab_ms_out(this.parentNode)" onmouseover="price_tab_ms_hover(this.parentNode)" class="price-item-text">
46
+ <?php echo Mage::helper('core')->currency($_price_list_item["from"], true, true).' - '.Mage::helper('core')->currency($_price_list_item["to"], true, true); ?>
47
+ </div>
48
+ <div class="ld-price-item-text"></div>
49
+ <div class="clr"></div>
50
+ </div>
51
+ </div>
52
+ <?php
53
+ }
54
+ }
55
+ ?>
56
+ <div class="clr"></div>
57
+ <div class="item-products"></div>
58
+ <div class="clr"></div>
59
+ </div>
60
+ </div>
app/etc/modules/TPP_TabularPricePane.xml ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ *
5
+ * Tabular Price Pane
6
+ *
7
+ * NOTICE OF LICENSE
8
+ *
9
+ * This source file is subject to the Open Software License (OSL 3.0)
10
+ * that is bundled with this package in the file LICENSE.txt.
11
+ * It is also available through the world-wide-web at this URL:
12
+ * http://opensource.org/licenses/osl-3.0.php
13
+ * If you did not receive a copy of the license and are unable to
14
+ * obtain it through the world-wide-web, please send an email
15
+ * to helpdesk@ikhodal.com so we can send you a copy immediately.
16
+ *
17
+ * DISCLAIMER
18
+ *
19
+ * Do not edit or add to this file if you wish to upgrade to newer
20
+ * versions in the future.
21
+ *
22
+ * @package TPP_TabularPricePane
23
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+ -->
27
+ <config>
28
+ <modules>
29
+ <TPP_TabularPricePane>
30
+ <active>true</active>
31
+ <codePool>community</codePool>
32
+ <depends>
33
+ <Mage_Catalog />
34
+ </depends>
35
+ </TPP_TabularPricePane>
36
+ </modules>
37
+ </config>
js/tpp/jquery-1.10.2.min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ /*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
2
+ //@ sourceMappingURL=jquery-1.10.2.min.map
3
+ */
4
+ (function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
5
+ }({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);
6
+ u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
js/tpp/tabularpricepane.js ADDED
@@ -0,0 +1,226 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ *
3
+ * Tabular Price Pane
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to helpdesk@ikhodal.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade to newer
18
+ * versions in the future.
19
+ *
20
+ * @package TPP_TabularPricePane
21
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
22
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
23
+ */
24
+ if ( (typeof jQuery === 'undefined') && !window.jQuery ) {
25
+ document.write(("<script type='text/javascript' src='"+js_url+"tpp/jquery-1.10.2.min.js'></script>"));
26
+ } else {
27
+ if((typeof jQuery === 'undefined') && window.jQuery) {
28
+ jQuery = window.jQuery;
29
+ } else if((typeof jQuery !== 'undefined') && !window.jQuery) {
30
+ window.jQuery = jQuery;
31
+ }
32
+ }
33
+ var flg_v1 = 0;
34
+ function loadMoreProducts(from,to,limit,elementId,total,request_obj){
35
+ if(flg_v1==1) return;
36
+ jQuery(document).ready(function($){
37
+ var root_element = $("#"+elementId).parent();
38
+ if($("#"+elementId).parent().parent().hasClass("lt-tab"))
39
+ root_element = $("#"+elementId).parent().parent();
40
+
41
+ var category_id = $(root_element).find(".item-products").find(".ik-drp-product-category").val();
42
+ var product_search_text = $(root_element).find(".item-products").find(".ik-product-search-text").val();
43
+ if((category_id==='undefined')) category_id = 0;
44
+ if((product_search_text==='undefined')) product_search_text = "";
45
+ $(root_element).find(".item-products").find(".ik-product-load-more").html("<div align='center'>"+$(".wp-load-icon").html()+"</div>");
46
+ flg_v1 = 1;
47
+ $.ajax({
48
+ url: site_url+'tabularpricepane/index/loadmore',
49
+ data: {'from' : from,'to' : to,'limit_start' : limit,'hide_categorybox':request_obj.hide_categorybox,'total' : total,'category_id' : category_id,'product_search_text' : product_search_text,'hide_searchbox' : request_obj.hide_searchbox,'price_difference' : request_obj.price_difference,'hide_product_price' : request_obj.hide_product_price,'hide_product_title' : request_obj.hide_product_title,'product_price_color' : request_obj.product_price_color,'product_title_color' : request_obj.product_title_color,'price_tab_text_color' : request_obj.price_tab_text_color,'price_tab_background_color' : request_obj.price_tab_background_color,'header_text_color' : request_obj.header_text_color,'header_background_color' : request_obj.header_background_color,'display_title_price_over_image' : request_obj.display_title_price_over_image,'number_of_product_display' : request_obj.number_of_product_display,'vcode' : request_obj.vcode },
50
+ success:function(data) {
51
+ printData(elementId,data,"loadmore");
52
+ },error: function(errorThrown){ console.log(errorThrown);}
53
+ });
54
+ });
55
+ }
56
+ function fillProducts(elementId,from,to,request_obj,flg_pr){
57
+ if(flg_v1==1) return;
58
+ jQuery(document).ready(function($){
59
+ var root_element = $("#"+elementId).parent();
60
+ if($("#"+elementId).parent().parent().hasClass("lt-tab"))
61
+ root_element = $("#"+elementId).parent().parent();
62
+
63
+ $(root_element).parent().find(".price-item").each(function(){
64
+ $(this).removeClass("pn-active");
65
+ });
66
+
67
+ $("#"+elementId).addClass("pn-active");
68
+
69
+ if(flg_pr==2){
70
+ var category_id = $(root_element).find(".item-products").find(".ik-drp-product-category").val();
71
+ $(root_element).find(".ik-search-button").html("<br />"+$(".wp-load-icon").html());
72
+ }
73
+ else{
74
+ if($("#"+elementId).parent().parent().hasClass("lt-grid")){
75
+ $(root_element).find(".item-products").hide();
76
+ $(root_element).parent().find(".item-products").hide();
77
+ }
78
+ var category_id = eval("default_category_id_"+request_obj.vcode);
79
+ $("#"+elementId).find(".ik-load-content,.ik-product-no-items").remove();
80
+ $("#"+elementId).find(".ld-price-item-text").html("<div class='ik-load-content'>"+$(".wp-load-icon").html()+"</div>");
81
+ }
82
+ var product_search_text = $(root_element).find(".item-products").find(".ik-product-search-text").val();
83
+ if((category_id==='undefined')) category_id = 0;
84
+ if((product_search_text==='undefined')) product_search_text = "";
85
+ flg_v1 = 1;
86
+ $.ajax({
87
+ url: site_url+"tabularpricepane/index",
88
+ data: {'action':'getProducts1','from' : from,'to' : to,flg_pr:flg_pr,'hide_categorybox':request_obj.hide_categorybox,'category_id' : category_id,'product_search_text' : product_search_text,'hide_searchbox' : request_obj.hide_searchbox,'price_difference' : request_obj.price_difference,'hide_product_price' : request_obj.hide_product_price,'hide_product_title' : request_obj.hide_product_title,'product_price_color' : request_obj.product_price_color,'product_title_color' : request_obj.product_title_color,'price_tab_text_color' : request_obj.price_tab_text_color,'price_tab_background_color' : request_obj.price_tab_background_color,'header_text_color' : request_obj.header_text_color,'header_background_color' : request_obj.header_background_color,'display_title_price_over_image' : request_obj.display_title_price_over_image,'number_of_product_display' : request_obj.number_of_product_display,'vcode' : request_obj.vcode},
89
+ success:function(data) {
90
+ printData(elementId,data,"fillproduct");
91
+ },error: function(errorThrown){ console.log(errorThrown);}
92
+ });
93
+ });
94
+
95
+ ;(function($){
96
+ $(window).resize(function(){
97
+ $(".wea_content .item-products").each(function(){
98
+ var root_element = $(this).parent();
99
+ var cnt_width = $(this).parent().width();
100
+ $(this).find(".ik-product-item").each(function(){
101
+ if(cnt_width > 1024)
102
+ $(this).css("width","230px");
103
+ else if(cnt_width <= 1024 && cnt_width > 768)
104
+ $(this).css("width","19%");
105
+ else if(cnt_width <= 858 && cnt_width > 640)
106
+ $(this).css("width","24%");
107
+ else if(cnt_width <= 640 && cnt_width > 480)
108
+ $(this).css("width","32%");
109
+ else if(cnt_width <= 480 && cnt_width > 260)
110
+ $(this).css("width","49%");
111
+ else if(cnt_width <= 260)
112
+ $(this).css("width","99%");
113
+ });
114
+ if(cnt_width<=390 && cnt_width > 280){
115
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-title").css("width","82%");
116
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-category").css("width","82%");
117
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-category").css("padding-top","10px");
118
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-button").css("padding-top","14px");
119
+ }else if(cnt_width<=280){
120
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-title").css("width","82%");
121
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-category").css("width","82%");
122
+ }else{
123
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-title").removeAttr("style");
124
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-category").removeAttr("style");
125
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-button").removeAttr("style");
126
+ }
127
+ });
128
+ });
129
+ })(jQuery);
130
+ }
131
+ function printData(elementId,data,flg){
132
+ jQuery(document).ready(function($){
133
+
134
+ var root_element = $("#"+elementId).parent();
135
+ if($("#"+elementId).parent().parent().hasClass("lt-tab"))
136
+ root_element = $("#"+elementId).parent().parent();
137
+
138
+ if(flg=="loadmore"){
139
+ $(root_element).find(".item-products").find(".wp-load-icon").remove();
140
+ $(root_element).find(".item-products").find(".clr").remove();
141
+ $(root_element).find(".item-products").find(".ik-product-load-more").remove();
142
+ $(root_element).find(".item-products").append(data).fadeIn(400);
143
+ $(root_element).find(".item-products").append("<div class='clr'></div>");
144
+ }else{
145
+ $("#"+elementId).find(".ik-load-content,.ik-product-no-items").remove();
146
+ //$(root_element).find(".item-products").fadeOut(1);
147
+ //$(root_element).parent().find(".item-products").fadeOut(1);
148
+ $(root_element).find(".item-products").html(data).fadeIn(400);
149
+ }
150
+
151
+ var cnt_width = $("#"+elementId).parent().parent().width();
152
+ var prod_item_height = [];
153
+ $(root_element).find(".item-products").find(".ik-product-item").each(function(){
154
+
155
+ if(cnt_width > 1024)
156
+ $(this).css("width","230px");
157
+ else if(cnt_width <= 1024 && cnt_width > 768)
158
+ $(this).css("width","19%");
159
+ else if(cnt_width <= 858 && cnt_width > 640)
160
+ $(this).css("width","24%");
161
+ else if(cnt_width <= 640 && cnt_width > 480)
162
+ $(this).css("width","32%");
163
+ else if(cnt_width <= 480 && cnt_width > 260)
164
+ $(this).css("width","49%");
165
+ else if(cnt_width <= 260)
166
+ $(this).css("width","99%");
167
+
168
+ prod_item_height.push($(this).find(".ik-product-name").height());
169
+ });
170
+
171
+ if(cnt_width<=390 && cnt_width > 280){
172
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-title").css("width","82%");
173
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-category").css("width","82%");
174
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-category").css("padding-top","10px");
175
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-button").css("padding-top","14px");
176
+ }else if(cnt_width<=280){
177
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-title").css("width","82%");
178
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-category").css("width","82%");
179
+ }else{
180
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-title").removeAttr("style");
181
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-category").removeAttr("style");
182
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-button").removeAttr("style");
183
+ }
184
+ if($(root_element).find(".item-products").find(".ik-product-category .ik-search-category").length<=0){
185
+ $(root_element).find(".item-products").find(".ik-product-category .ik-search-title").css("margin-right",0);
186
+ }
187
+
188
+ if(cnt_width > 260)
189
+ $(root_element).find(".item-products").find(".ik-product-item").find(".ik-product-name").css("height",(Math.max.apply(Math,prod_item_height))+"px");
190
+
191
+ flg_v1 = 0;
192
+ });
193
+ }
194
+ var flg_ms_hover = 0;
195
+ function pr_item_image_mousehover(ob_pii){
196
+ if(flg_ms_hover == 1) return;
197
+ jQuery(document).ready(function($){
198
+ $(ob_pii).find(".ov-layer").show();
199
+ $(ob_pii).find(".ov-layer").css("visibility","visible");
200
+ $(ob_pii).find(".ov-layer").css("top","40");
201
+ flg_ms_hover = 1;
202
+ if($.trim($(ob_pii).find(".ov-layer").html())!="")
203
+ $(ob_pii).find(".ov-layer").animate({opacity:0.9,top:0},0);
204
+ else
205
+ $(ob_pii).find(".ov-layer").animate({opacity:0.5,top:0},0);
206
+ });
207
+ }
208
+ function pr_item_image_mouseout(ob_pii){
209
+ jQuery(document).ready(function($){
210
+ $(ob_pii).find(".ov-layer").animate({opacity:0,top:40},0);
211
+ flg_ms_hover = 0;
212
+ $(ob_pii).find(".ov-layer").hide();
213
+ $(ob_pii).find(".ov-layer").css("visibility","hidden");
214
+ });
215
+ }
216
+
217
+ function price_tab_ms_out(ob_ms_eff){
218
+ jQuery(document).ready(function($){
219
+ $(ob_ms_eff).removeClass("pn-active-bg");
220
+ });
221
+ }
222
+ function price_tab_ms_hover(ob_ms_eff){
223
+ jQuery(document).ready(function($){
224
+ $(ob_ms_eff).addClass("pn-active-bg");
225
+ });
226
+ }
package.xml ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>TPP_TabularPricePane</name>
4
+ <version>1.0.0</version>
5
+ <stability>stable</stability>
6
+ <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL) v3.0</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>Tabular Price Pane</summary>
10
+ <description>Display products filtered by price, product title and categories with different layout.</description>
11
+ <notes>Install this module using Magento Connect Manager or manually file copy as per module directory structure.</notes>
12
+ <authors><author><name>ikhodal Team</name><user>ikhodal</user><email>helpdesk@ikhodal.com</email></author></authors>
13
+ <date>2016-02-08</date>
14
+ <time>23:36:01</time>
15
+ <contents><target name="mage"><dir name="."><dir name="app"><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="tabularpricepane.xml" hash="b3e551abe93452031933e27d0c054d45"/></dir><dir name="template"><dir name="tabularpricepane"><file name="ajax_load_more.phtml" hash="836cf8a4062c71a0dba846b4a77ef6e2"/><file name="ajax_products.phtml" hash="ef613cabecc1610e5322990ddb14f22b"/><file name="pane_style_1.phtml" hash="f16c1fa99ce6ce5788870d4cada07870"/><file name="pane_style_2.phtml" hash="b1069d1051174482d3d1b8729c70be2f"/><file name="pane_style_3.phtml" hash="55253223ab6f806eea789447af4c30f3"/><file name="tab_style_1.phtml" hash="7d091477996e4e5fd7e0d45398067a3f"/><file name="tab_style_2.phtml" hash="df8064f00498f073ee401203ed0d89cf"/><file name="tab_style_3.phtml" hash="a6caf373b9937703586a440f1418f0a8"/></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="TPP_TabularPricePane.xml" hash="9a4cd0b549e0ad6fd5d86dd5bf57d850"/></dir></dir><dir name="code"><dir name="community"><dir name="TPP"><dir name="TabularPricePane"><dir name="Block"><file name="List.php" hash="40c969bf5741c1ce0b263715a0030d5a"/><dir name="Html"><file name="Head.php" hash="252e2f239141bbc406f17075bac9de3b"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="e569e23ef074c421d75267b0c6e25b6d"/></dir><dir name="etc"><file name="config.xml" hash="616808b840433972b8421977a42b2f12"/><file name="widget.xml" hash="8aeb0e517ad2139a5c0caaa7575dcc42"/></dir><dir name="Helper"><file name="Data.php" hash="672e4afe75147ce29b3bd22ac37ca8b5"/></dir><dir name="Model"><file name="Filters.php" hash="7e35aa811110eeccd1e5080926d259be"/></dir></dir></dir></dir></dir></dir><dir name="js"><dir name="tpp"><file name="tabularpricepane.js" hash="191edce72cb9686a9840e660e79eed97"/><file name="jquery-1.10.2.min.js" hash="841dc30647f93349b7d8ef61deebe411"/></dir></dir><dir name="skin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="tpp"><file name="tabularpricepane.css" hash="6a52d63d68fcdd29aba6e7bdf552d92c"/></dir></dir><dir name="images"><dir name="tpp"><file name="loader.gif" hash="fa35cca340bd4fa098babcaa4bed65df"/><file name="searchicon.png" hash="7d01889a4eb3a3d8ac5032f616916048"/><file name="view.png" hash="d0c16266a4b3d59c70930255cf3c1f81"/></dir></dir></dir></dir></dir></dir></dir></target></contents>
16
+ <compatible/>
17
+ <dependencies><required><php><min>5.3.21</min><max>5.6.8</max></php></required></dependencies>
18
+ </package>
skin/frontend/base/default/css/tpp/tabularpricepane.css ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ *
3
+ * Tabular Price Pane
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to helpdesk@ikhodal.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade to newer
18
+ * versions in the future.
19
+ *
20
+ * @package TPP_TabularPricePane
21
+ * @copyright Copyright (c) 2016-2017 ikhodal (http://www.ikhodal.com).
22
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
23
+ */
24
+
25
+ #tabularpricepane { margin:0; padding:0; font-size:12px; font-weight:normal; text-transform: none;}
26
+ #tabularpricepane .ik-price-tab-title-head{ color:#fff; font-weight:bold; margin-bottom:2px; font-size: 15px; padding:8px 13px;}
27
+ #tabularpricepane .wp-load-icon { display:none; margin-left:10px; width:10px; height:10px; background-color:#fff; }
28
+ #tabularpricepane .item-price-list{ background: none; padding:0; margin:0px 0px 2px 0px; color:#424242; }
29
+ #tabularpricepane .item-products { background: #F7F7F7;}
30
+ #tabularpricepane .ik-prouct-search-text { width:60px; padding:3px;}
31
+ #tabularpricepane .price-item { cursor:pointer; background: #F1F1F1; padding:8px 25px 8px 13px;font-weight:normal; font-size: 12px; }
32
+ #tabularpricepane input.ik-product-search-text { height:25px; font-size: 12px; margin:0; width:100%; border:1px solid #ccc; padding:0px 2px }
33
+ #tabularpricepane select.ik-drp-product-category { height:26px; font-size: 12px; margin:0; text-align: left; width:100%; border:1px solid #ccc; padding:0 1px; }
34
+ #tabularpricepane .ik-product-category { padding:10px 3px; }
35
+ #tabularpricepane .ik-product-category span{ float:left; width:20px; height:20px}
36
+ #tabularpricepane .ik-product-category .ik-search-title { float:left; width:164px;margin-right:10px;font-weight: normal; }
37
+ #tabularpricepane .ik-product-category .ik-search-button { cursor:pointer; width:18px; height:18px; float:left; padding-top: 5px; margin-left: 7px; }
38
+ #tabularpricepane .ik-product-category .ik-search-category { width:164px; float:left;font-weight: normal; }
39
+ #tabularpricepane .ik-product-item { float:left;padding:5px 0 0 0; margin:0 0.5%}
40
+ #tabularpricepane .ik-product-item p { margin:0; padding:0}
41
+ #tabularpricepane .ik-product-load-more{ cursor:pointer; text-align:center; padding:10px 5px 5px; text-align:center; font-size: 12px;font-weight:bold; clear:both}
42
+ #tabularpricepane .ik-product-content .ik-product-name { margin-top:5px; font-size: 12px; word-wrap:break-word}
43
+ #tabularpricepane .ik-product-content .ik-product-name a { text-decoration:none; word-wrap:break-word;font-weight: normal;}
44
+ #tabularpricepane .ik-product-content .ik-product-name a:hover{ transition: all 0.5s ease-out 0.7s; color:#ccc;font-weight: normal; }
45
+ #tabularpricepane .ik-product-content .ik-product-sale-price { color:#424242; font-size: 12px; font-weight:normal }
46
+ #tabularpricepane .ik-product-image img { width:100%}
47
+ #tabularpricepane .ik-product-no-items { padding:10px 10px 10px 4px; font-size:13px }
48
+ #tabularpricepane .price-item{ clear:both; position:relative}
49
+ #tabularpricepane .price-item-text { float:left; min-height:18px;}
50
+ #tabularpricepane .ld-price-item-text { width:22px; height:22px; right:5px; position:absolute; top:9px }
51
+ #tabularpricepane .ik-load-content-cnt { width:20px; height:20px; -webkit-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); -moz-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); margin-top:0px; padding:1px; display:block; background-color:#f7f7f7; -webkit-border-radius:10px; -moz-border-radius:10px; border-radius:10px; }
52
+ #tabularpricepane .ik-load-content { width:20px; height:20px; }
53
+ #tabularpricepane .ik-load-content-more { padding:10px; }
54
+ #tabularpricepane .clr, #tabularpricepane .clrb { clear:both}
55
+ #tabularpricepane .ik-product-image { position :relative; }
56
+ #tabularpricepane div.ov-layer .ik-overlay-product-content { margin-top:0px;color:#000;background:#fff; padding:5px; border-bottom:1px solid #fff;border-top:1px solid #fff; }
57
+ #tabularpricepane div.ov-layer .ik-overlay-product-content .ik-product-name {line-height:16px;text-decoration:none;}
58
+ #tabularpricepane div.ov-layer .ik-overlay-product-content .ik-product-name a { color:#000; text-decoration:none; position:relative }
59
+ #tabularpricepane div.ov-layer .ik-overlay-product-content .ik-product-sale-price { color:#000; position:relative }
60
+ #tabularpricepane div.ov-layer {display:block; visibility:hidden;position:relative; top:40px; left:0;-webkit-transition: -webkit-transform 1s; position: absolute; -o-transition-duration: 1s; width: 100%; -moz-transition-duration: 1s; -webkit-transition: -webkit-transform 1s; z-index: 10; cursor: pointer; height: 100%; background:url(../../images/tpp/view.png) right bottom no-repeat #000; opacity: 0; color:#fff; font-size:13px;}
61
+ #tabularpricepane div.ov-layer:hover {box-shadow: 0px 0px 3px #000;-moz-transition-duration: 1s; -webkit-transition: -webkit-transform 1s; -o-transition-duration: 1s; -webkit-box-shadow: 0px 0px 3px #333; -moz-box-shadow: 0px 0px 3px #333; opacity: .6;}
62
+ #tabularpricepane button { margin:0px; padding:0px; float:none;}
63
+ #tabularpricepane .btn-crt, #tabularpricepane #btnSearch { padding:0px; margin:0px; border:0px; background-color:#DADADA; color:#464646; padding:3px 8px; font-size:11px; }
64
+ #tabularpricepane .btn-crt { margin:5px 0; font-style:normal; cursor:pointer;font-weight: normal;}
65
+ #tabularpricepane .btn-crt:hover{background-color:#959595; color:#fff; }
66
+ #tabularpricepane .item-products{ padding:0 10px 0px 10px;}
67
+ #tabularpricepane .pn-active, #tabularpricepane .pn-active-bg{ background-color:#ccc !important; }
68
+ #tabularpricepane input.ik-product-search-text:focus,
69
+ #tabularpricepane select.ik-drp-product-category:focus { background-color:#FFF; }
70
+ #tabularpricepane .ik-product-sale-price .price { color:inherit;font-size:12px}
71
+ #tabularpricepane .price-item-text .price { color:inherit;font-size:12px}
72
+ /* Pane Style 2 Start */
73
+ .pane_style_2 .item-price-list, .pane_style_2 .ik-price-tab-title-head { border: 1px solid #e7e7e7;-webkit-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); -moz-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1);box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); border-radius: 0px; }
74
+ .pane_style_2 .price-item{ -webkit-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); }
75
+ /* Pane Style 2 End */
76
+ /* Pane Style 3 Start */
77
+ .pane_style_3 .item-price-list, .pane_style_3 .ik-price-tab-title-head{ -webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px; border: 1px solid #e7e7e7; -webkit-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); -moz-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1);box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1);}
78
+ .pane_style_3 .price-item{-webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px;-webkit-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); -moz-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1);box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); border-left:2px solid #696969;}
79
+ .pane_style_3 .pn-active {border-radius: 4px 4px 0px 0px;-webkit-border-radius: 4px 4px 0px 0px; -moz-border-radius: 4px 4px 0px 0px;}
80
+ .pane_style_3 .item-products{ border-left:2px solid #e7e7e7}
81
+ /* Pane Style 3 End */
82
+ /* Tab Style 2 Start */
83
+ .tab_style_2 .item-price-list, .tab_style_2 .ik-price-tab-title-head { border: 1px solid #e7e7e7; -webkit-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); -moz-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); border-radius: 0px; }
84
+ .tab_style_2 .price-item { -webkit-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); -moz-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); }
85
+ /* Tab Style 2 End */
86
+ /* Tab Style 3 Start */
87
+ .tab_style_3 .item-price-list,.tab_style_3 .ik-price-tab-title-head{ -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px; border: 1px solid #e7e7e7; -webkit-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); -moz-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); }
88
+ .tab_style_3 .price-item { -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px; -webkit-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); -moz-box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); box-shadow: 0px 1px 1px #fff inset, 1px 1px 3px rgba(0, 0, 0, 0.1); border-left:2px solid #696969;}
89
+ .tab_style_3 .pn-active { border-radius: 4px; -webkit-border-radius: 4px; -moz-border-radius: 4px;}
90
+ /* Tab Style 3 End */
91
+ .disp_title_over_img .ik-product-item { min-height:auto !important }
92
+ #tabularpricepane .lt-tab .item-price-list { width:auto; float:left; margin-right:2px;}
93
+ #tabularpricepane .lt-tab .item-price-list .ik-load-content{ margin-left:5px;}
94
+ @media only screen and (max-width: 1280px) { #tabularpricepane .ik-product-item { width: 20%; } }
95
+ @media only screen and (max-width: 1024px) { #tabularpricepane .ik-product-item { width: 25%; } }
96
+ @media only screen and (max-width: 768px) { #tabularpricepane .ik-price-tab-title-head { font-size:12px} }
97
+ @media only screen and (max-width: 640px) { #tabularpricepane .ik-product-item { width: 33%; } }
98
+ @media only screen and (max-width: 480px) { #tabularpricepane .ik-product-item { width: 50%; } }
99
+ @media only screen and (max-width: 360px) { #tabularpricepane .ik-product-category .ik-search-title { width: 128px; } #tabularpricepane .ik-product-category .ik-search-category { width: 139px; } }
100
+ @media only screen and (max-width: 320px) { #tabularpricepane .ik-product-category .ik-search-category { width: 101px; } }
skin/frontend/base/default/images/tpp/loader.gif ADDED
Binary file
skin/frontend/base/default/images/tpp/searchicon.png ADDED
Binary file
skin/frontend/base/default/images/tpp/view.png ADDED
Binary file