Dexxtz_Custom_Grid - Version 1.0.0

Version Notes

Started

Download this release

Release Info

Developer Magento Core Team
Extension Dexxtz_Custom_Grid
Version 1.0.0
Comparing to
See all releases


Version 1.0.0

app/code/community/Dexxtz/Customgrid/Block/Adminhtml/Catalog/Product/Grid.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+
11
+ class Dexxtz_Customgrid_Block_Adminhtml_Catalog_Product_Grid extends Mage_Adminhtml_Block_Catalog_Product_Grid
12
+ {
13
+ protected function _prepareCollection()
14
+ {
15
+ parent::_prepareCollection();
16
+ $value = Mage::helper('customgrid')->getActive('catalog_product', 'weight');
17
+
18
+ if ($value == 1) {
19
+ $this->getCollection()->addFieldToFilter('weight', 1);
20
+ }
21
+
22
+ $value = Mage::helper('customgrid')->getActive('catalog_product', 'new_until');
23
+
24
+ if ($value == 1) {
25
+ $this->getCollection()->addFieldToFilter('news_to_date', 1);
26
+ }
27
+
28
+ $value = Mage::helper('customgrid')->getActive('catalog_product', 'image');
29
+
30
+ if ($value == 1) {
31
+ $this->getCollection()->addFieldToFilter('image', 1);
32
+ }
33
+
34
+ return $this;
35
+ }
36
+
37
+ protected function _prepareColumns()
38
+ {
39
+ $helper = Mage::helper('customgrid');
40
+ $value = $helper->getActive('catalog_product', 'weight');
41
+ $after = $helper->getAfter('catalog_product', 'weight');
42
+
43
+ if ($value == 1) {
44
+ $this->addColumnAfter('weight', $helper->getCatalogProductWeightColumnParams(), $after);
45
+ }
46
+
47
+ $value = $helper->getActive('catalog_product', 'new_until');
48
+ $after = $helper->getAfter('catalog_product', 'new_until');
49
+
50
+ if ($value == 1) {
51
+ $this->addColumnAfter('news_to_date', $helper->getCatalogProductNewUntilColumnParams(), $after);
52
+ }
53
+
54
+ $value = $helper->getActive('catalog_product', 'image');
55
+ $after = $helper->getAfter('catalog_product', 'image');
56
+
57
+ if ($value == 1) {
58
+ $this->addColumnAfter('image', $helper->getCatalogProductImageColumnParams(), $after);
59
+ }
60
+
61
+ $value = $helper->getActive('catalog_product', 'categories');
62
+ $after = $helper->getAfter('catalog_product', 'categories');
63
+
64
+ if ($value == 1) {
65
+ $this->addColumnAfter('category', $helper->getCatalogProductCategoryColumnParams(), $after);
66
+ }
67
+
68
+ parent::_prepareColumns();
69
+
70
+ return $this;
71
+ }
72
+ }
app/code/community/Dexxtz/Customgrid/Block/Adminhtml/Customer/Grid.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+
11
+ class Dexxtz_Customgrid_Block_Adminhtml_Customer_Grid extends Mage_Adminhtml_Block_Customer_Grid
12
+ {
13
+ protected function _prepareCollection()
14
+ {
15
+ parent::_prepareCollection();
16
+ $value = Mage::helper('customgrid')->getActive('customer', 'dob');
17
+
18
+ if ($value == 1) {
19
+ $this->getCollection()->addFieldToFilter('dob', 1);
20
+ }
21
+
22
+ $value = Mage::helper('customgrid')->getActive('customer', 'taxvat');
23
+
24
+ if ($value == 1) {
25
+ $this->getCollection()->addFieldToFilter('taxvat', 1);
26
+ }
27
+
28
+ $value = Mage::helper('customgrid')->getActive('customer', 'gender');
29
+
30
+ if ($value == 1) {
31
+ $this->getCollection()->addFieldToFilter('gender', 1);
32
+ }
33
+
34
+ return $this;
35
+ }
36
+
37
+ protected function _prepareColumns()
38
+ {
39
+ $helper = Mage::helper('customgrid');
40
+ $value = $helper->getActive('customer', 'dob');
41
+ $after = $helper->getAfter('customer', 'dob');
42
+
43
+ if ($value == 1) {
44
+ $this->addColumnAfter('dob', $helper->getCustomerDobColumnParams(), $after);
45
+ }
46
+
47
+ $value = $helper->getActive('customer', 'last_login');
48
+ $after = $helper->getAfter('customer', 'last_login');
49
+
50
+ if ($value == 1) {
51
+ $this->addColumnAfter('last_login', $helper->getCustomerLastLoginColumnParams(), $after);
52
+ }
53
+
54
+ $value = $helper->getActive('customer', 'last_order');
55
+ $after = $helper->getAfter('customer', 'last_order');
56
+
57
+ if ($value == 1) {
58
+ $this->addColumnAfter('last_order', $helper->getCustomerLastOrderColumnParams(), $after);
59
+ }
60
+
61
+ $value = $helper->getActive('customer', 'taxvat');
62
+ $after = $helper->getAfter('customer', 'taxvat');
63
+
64
+ if ($value == 1) {
65
+ $this->addColumnAfter('taxvat', $helper->getCustomerTaxvatColumnParams(), $after);
66
+ }
67
+
68
+ $value = $helper->getActive('customer', 'gender');
69
+ $after = $helper->getAfter('customer', 'gender');
70
+
71
+ if ($value == 1) {
72
+ $this->addColumnAfter('gender', $helper->getCustomerGenderColumnParams(), $after);
73
+ }
74
+
75
+ parent::_prepareColumns();
76
+
77
+ return $this;
78
+ }
79
+ }
app/code/community/Dexxtz/Customgrid/Block/Adminhtml/Template/Grid/Renderer/Category.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+
11
+ use Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract as Render;
12
+
13
+ class Dexxtz_Customgrid_Block_Adminhtml_Template_Grid_Renderer_Category extends Render
14
+ {
15
+ public function render(Varien_Object $row)
16
+ {
17
+ $productCategories = array();
18
+ $productId = $row->getData('entity_id');
19
+ $product = Mage::getModel('catalog/product')->load($productId);
20
+ $categories = $product->getCategoryCollection()->addAttributeToSelect('name');
21
+
22
+ foreach ($categories as $category)
23
+ $productCategories[] = $category->getName();
24
+
25
+ return implode(', ',$productCategories);
26
+ }
27
+ }
app/code/community/Dexxtz/Customgrid/Block/Adminhtml/Template/Grid/Renderer/Image.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+
11
+ use Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract as Render;
12
+
13
+ class Dexxtz_Customgrid_Block_Adminhtml_Template_Grid_Renderer_Image extends Render
14
+ {
15
+ public function render(Varien_Object $row)
16
+ {
17
+ return $this->_getValue($row['entity_id']);
18
+ }
19
+ protected function _getValue(Varien_Object $row)
20
+ {
21
+ $product = Mage::getModel('catalog/product')->load($row);
22
+ if($product->getImage() != 'no_selection') {
23
+ $url = Mage::helper('catalog/image')->init($product, 'image')->resize(60);
24
+ $out = '<img src="'. $url .'" />';
25
+ } else {
26
+ $skin = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);
27
+ $url = $skin . 'adminhtml/default/default/images/placeholder/thumbnail.jpg';
28
+ $out = '<img width="60" heigth="60" src="'. $url .'" />';
29
+ }
30
+
31
+ return $out;
32
+ }
33
+ }
app/code/community/Dexxtz/Customgrid/Helper/Data.php ADDED
@@ -0,0 +1,321 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+
11
+ class Dexxtz_Customgrid_Helper_Data extends Mage_Core_Helper_Abstract
12
+ {
13
+ public function getActive($tab, $field)
14
+ {
15
+ $field .= '_active';
16
+ $value = Mage::getStoreConfig('dexxtz_customgrid/' . $tab . '/' . $field);
17
+
18
+ return $value;
19
+ }
20
+
21
+ public function getAfter($tab, $field)
22
+ {
23
+ $field .= '_show_after';
24
+ $value = Mage::getStoreConfig('dexxtz_customgrid/' . $tab . '/' . $field);
25
+
26
+ return $value;
27
+ }
28
+
29
+ private function getColumnTitle($tab, $field)
30
+ {
31
+ $field .= '_column_title';
32
+ $value = Mage::getStoreConfig('dexxtz_customgrid/' . $tab . '/' . $field);
33
+
34
+ return $value;
35
+ }
36
+
37
+ private function getTitle($tab, $field)
38
+ {
39
+ $field .= '_title_align';
40
+ $value = Mage::getStoreConfig('dexxtz_customgrid/' . $tab . '/' . $field);
41
+
42
+ return $value;
43
+ }
44
+
45
+ private function getContent($tab, $field)
46
+ {
47
+ $field .= '_content_align';
48
+ $value = Mage::getStoreConfig('dexxtz_customgrid/' . $tab . '/' . $field);
49
+
50
+ return $value;
51
+ }
52
+
53
+ private function getWidth($tab, $field)
54
+ {
55
+ $field .= '_column_width';
56
+ $value = Mage::getStoreConfig('dexxtz_customgrid/' . $tab . '/' . $field);
57
+
58
+ return $value;
59
+ }
60
+
61
+ public function getObservation($observation){
62
+ $tr = 'tr#row_dexxtz_customgrid_sales_order_payment_label';
63
+ $obs = '<strong>Obs:</strong> ';
64
+ $js = 'jQuery("' . $tr . '").closest("form").prepend("<p>' . $obs . $this->__($observation) . '</p>");';
65
+
66
+ return $js;
67
+ }
68
+
69
+ public function getSystemLayout($title, $hr = false, $variable, $field)
70
+ {
71
+ $style = "style='font-weight:bold; font-size:14px;'";
72
+ $hr = ($hr == true) ? "<hr style='margin-bottom: 15px;' />" : null;
73
+ $layout = "<td colspan='4' class='label' $style>$hr" . $this->__($title) . "</td>";
74
+
75
+ $js = 'var ' . $variable . ' = jQuery("tr#row_dexxtz_customgrid_' . $field . '_label");
76
+ ' . $variable . '.empty();
77
+ ' . $variable . '.append("' . $layout . '")';
78
+
79
+ return $js;
80
+ }
81
+
82
+ /**
83
+ * Sales Order Payment
84
+ */
85
+ public function getSalesOrderPaymentColumnParams()
86
+ {
87
+ $array = array('header' => $this->getColumnTitle('sales_order', 'payment'),
88
+ 'index' => 'payment_method',
89
+ 'filter_index' => 'payment.method',
90
+ 'header_css_class' => $this->getTitle('sales_order', 'payment'),
91
+ 'align' => $this->getContent('sales_order', 'payment'),
92
+ 'type' => 'text',
93
+ 'width' => $this->getWidth('sales_order', 'payment'));
94
+
95
+ return $array;
96
+ }
97
+
98
+ public function getSalesOrderPaymentAfter()
99
+ {
100
+ $value = Mage::getStoreConfig('dexxtz_customgrid/sales_order/payment_show_after');
101
+
102
+ return $value;
103
+ }
104
+
105
+ /**
106
+ * Sales Order Shipping Method
107
+ */
108
+ public function getSalesOrderShippingColumnParams()
109
+ {
110
+ $array = array('header' => $this->getColumnTitle('sales_order', 'shipping'),
111
+ 'index' => 'shipping_description',
112
+ 'filter_index' => 'shipping.shipping_description',
113
+ 'header_css_class' => $this->getTitle('sales_order', 'shipping'),
114
+ 'align' => $this->getContent('sales_order', 'shipping'),
115
+ 'type' => 'text',
116
+ 'width' => $this->getWidth('sales_order', 'shipping'));
117
+
118
+ return $array;
119
+ }
120
+
121
+ public function getSalesOrderShippingAfter()
122
+ {
123
+ $value = Mage::getStoreConfig('dexxtz_customgrid/sales_order/shipping_show_after');
124
+
125
+ return $value;
126
+ }
127
+
128
+ /**
129
+ * Sales Order Customer Email
130
+ */
131
+ public function getSalesOrderCustomerEmailColumnParams()
132
+ {
133
+ $array = array('header' => $this->getColumnTitle('sales_order', 'customer_email'),
134
+ 'index' => 'customer_email',
135
+ 'filter_index' => 'customer.customer_email',
136
+ 'header_css_class' => $this->getTitle('sales_order', 'customer_email'),
137
+ 'align' => $this->getContent('sales_order', 'customer_email'),
138
+ 'type' => 'text',
139
+ 'width' => $this->getWidth('sales_order', 'customer_email'));
140
+
141
+ return $array;
142
+ }
143
+
144
+ public function getSalesOrderCustomerEmailAfter()
145
+ {
146
+ $value = Mage::getStoreConfig('dexxtz_customgrid/sales_order/customer_email_show_after');
147
+
148
+ return $value;
149
+ }
150
+
151
+
152
+ /**
153
+ * Catalog Product Weight
154
+ */
155
+ public function getCatalogProductWeightColumnParams()
156
+ {
157
+ $array = array('header' => $this->getColumnTitle('catalog_product', 'weight'),
158
+ 'index' => 'weight',
159
+ 'filter_index' => 'weight',
160
+ 'header_css_class' => $this->getTitle('catalog_product', 'weight'),
161
+ 'align' => $this->getContent('catalog_product', 'weight'),
162
+ 'type' => 'text',
163
+ 'width' => $this->getWidth('catalog_product', 'weight'));
164
+
165
+ return $array;
166
+ }
167
+
168
+ /**
169
+ * Catalog Product New Until
170
+ */
171
+ public function getCatalogProductNewUntilColumnParams()
172
+ {
173
+ $array = array('header' => $this->getColumnTitle('catalog_product', 'new_until'),
174
+ 'index' => 'news_to_date',
175
+ 'filter_index' => 'news_to_date',
176
+ 'header_css_class' => $this->getTitle('catalog_product', 'new_until'),
177
+ 'align' => $this->getContent('catalog_product', 'new_until'),
178
+ 'type' => 'date',
179
+ 'width' => $this->getWidth('catalog_product', 'new_until'));
180
+
181
+ return $array;
182
+ }
183
+
184
+ /**
185
+ * Catalog Product Image
186
+ */
187
+ public function getCatalogProductImageColumnParams()
188
+ {
189
+ $array = array('header' => $this->getColumnTitle('catalog_product', 'image'),
190
+ 'index' => 'image',
191
+ 'filter_index' => 'image',
192
+ 'header_css_class' => $this->getTitle('catalog_product', 'image'),
193
+ 'align' => $this->getContent('catalog_product', 'image'),
194
+ 'type' => 'text',
195
+ 'width' => $this->getWidth('catalog_product', 'image'),
196
+ 'renderer' => 'Dexxtz_Customgrid_Block_Adminhtml_Template_Grid_Renderer_Image');
197
+
198
+ return $array;
199
+ }
200
+
201
+ /**
202
+ * Catalog Product Categories
203
+ */
204
+ public function getCatalogProductCategoryColumnParams()
205
+ {
206
+ $array = array('header' => $this->getColumnTitle('catalog_product', 'categories'),
207
+ 'index' => 'category_ids',
208
+ 'header_css_class' => $this->getTitle('catalog_product', 'categories'),
209
+ 'align' => $this->getContent('catalog_product', 'image'),
210
+ 'type' => 'options',
211
+ 'options' => Mage::helper('customgrid')->getCategoryOptions(),
212
+ 'width' => $this->getWidth('catalog_product', 'categories'),
213
+ 'filter_condition_callback' => array($this, 'categoryFilter'),
214
+ 'renderer' => 'Dexxtz_Customgrid_Block_Adminhtml_Template_Grid_Renderer_Category',
215
+ 'sortable' => false);
216
+
217
+ return $array;
218
+ }
219
+
220
+ public function categoryFilter($collection, $column)
221
+ {
222
+ if (!$value = $column->getFilter()->getValue()) {
223
+ return;
224
+ }
225
+
226
+ $collection->joinField('category_id', $collection->getTable('catalog/category_product'), 'category_id', 'product_id = entity_id', '{{table}}.category_id=' . $column->getFilter()->getValue(), 'inner');
227
+ }
228
+
229
+ private function getCategoryOptions()
230
+ {
231
+ $categoryCollection = Mage::getModel('catalog/category')->getCollection()->addNameToResult()->addAttributeToSort('position', 'asc');
232
+
233
+ foreach ($categoryCollection as $category)
234
+ if ($category->getId() > 1 && $category->getName() != 'Root Catalog')
235
+ $options[$category->getId()] = $category->getName();
236
+
237
+ return $options;
238
+ }
239
+
240
+ /**
241
+ * Customer Dob
242
+ */
243
+ public function getCustomerDobColumnParams()
244
+ {
245
+ $array = array('header' => $this->getColumnTitle('customer', 'dob'),
246
+ 'index' => 'dob',
247
+ 'filter_index' => 'dob',
248
+ 'header_css_class' => $this->getTitle('customer', 'dob'),
249
+ 'align' => $this->getContent('customer', 'dob'),
250
+ 'type' => 'date',
251
+ 'width' => $this->getWidth('customer', 'dob'));
252
+
253
+ return $array;
254
+ }
255
+
256
+ /**
257
+ * Customer Last Login
258
+ */
259
+ public function getCustomerLastLoginColumnParams()
260
+ {
261
+ $array = array('header' => $this->getColumnTitle('customer', 'last_login'),
262
+ 'index' => 'last_login',
263
+ 'filter_index' => 'last_login',
264
+ 'header_css_class' => $this->getTitle('customer', 'last_login'),
265
+ 'align' => $this->getContent('customer', 'last_login'),
266
+ 'type' => 'date',
267
+ 'width' => $this->getWidth('customer', 'last_login'),
268
+ 'filter' => false,
269
+ 'sortable' => false);
270
+
271
+ return $array;
272
+ }
273
+
274
+ /**
275
+ * Customer Date Last Order
276
+ */
277
+ public function getCustomerLastOrderColumnParams()
278
+ {
279
+ $array = array('header' => $this->getColumnTitle('customer', 'last_order'),
280
+ 'index' => 'last_order',
281
+ 'filter_index' => 'last_order',
282
+ 'header_css_class' => $this->getTitle('customer', 'last_order'),
283
+ 'align' => $this->getContent('customer', 'last_order'),
284
+ 'type' => 'date',
285
+ 'width' => $this->getWidth('customer', 'last_order'),
286
+ 'filter' => false,
287
+ 'sortable' => false);
288
+ return $array;
289
+ }
290
+
291
+ /**
292
+ * Customer Taxvat
293
+ */
294
+ public function getCustomerTaxvatColumnParams()
295
+ {
296
+ $array = array('header' => $this->getColumnTitle('customer', 'taxvat'),
297
+ 'index' => 'taxvat',
298
+ 'filter_index' => 'taxvat',
299
+ 'header_css_class' => $this->getTitle('customer', 'taxvat'),
300
+ 'align' => $this->getContent('customer', 'taxvat'),
301
+ 'type' => 'text',
302
+ 'width' => $this->getWidth('customer', 'taxvat'));
303
+ return $array;
304
+ }
305
+
306
+ /**
307
+ * Customer Gender
308
+ */
309
+ public function getCustomerGenderColumnParams()
310
+ {
311
+ $array = array('header' => $this->getColumnTitle('customer', 'gender'),
312
+ 'index' => 'gender',
313
+ 'filter_index' => 'gender',
314
+ 'header_css_class' => $this->getTitle('customer', 'gender'),
315
+ 'align' => $this->getContent('customer', 'gender'),
316
+ 'type' => 'options',
317
+ 'options' => array(1 => $this->__('Male'), 2 => $this->__('Female')),
318
+ 'width' => $this->getWidth('customer', 'gender'));
319
+ return $array;
320
+ }
321
+ }
app/code/community/Dexxtz/Customgrid/Model/Adminhtml/Comment/Sales/Order/Payment.php ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+
11
+ class Dexxtz_Customgrid_Model_Adminhtml_Comment_Sales_Order_Payment
12
+ {
13
+ public function getCommentText()
14
+ {
15
+ $helper = Mage::helper('customgrid');
16
+ $skin = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);
17
+ $jquery = $skin . 'adminhtml/default/default/dexxtz/customgrid/js/jquery-2.1.1.js';
18
+
19
+ $comment .= '<script src="' . $jquery . '"></script>';
20
+ $comment .= '<script type="text/javascript">
21
+ var jQuery = jQuery.noConflict();
22
+ jQuery(document).ready(function(){
23
+
24
+ ' . $helper->getObservation('When you export records from the grid option, ideally disable the additional fields, like this export the records correctly.') . '
25
+
26
+ <!-- Sales Order -->
27
+
28
+ ' . $helper->getSystemLayout('Payment Method', false, 'payment', 'sales_order_payment') . '
29
+
30
+ ' . $helper->getSystemLayout('Shipping Method', true, 'shipping', 'sales_order_shipping') . '
31
+
32
+ ' . $helper->getSystemLayout('Customer E-mail', true, 'email', 'sales_order_customer_email') . '
33
+
34
+ <!-- Catalog Product -->
35
+
36
+ ' . $helper->getSystemLayout('Weight', false, 'weight', 'catalog_product_weight') . '
37
+
38
+ ' . $helper->getSystemLayout('New Until', true, 'nUntil', 'catalog_product_new_until') . '
39
+
40
+ ' . $helper->getSystemLayout('Image', true, 'image', 'catalog_product_image') . '
41
+
42
+ ' . $helper->getSystemLayout('Categories', true, 'categories', 'catalog_product_categories') . '
43
+
44
+ <!-- Customer -->
45
+
46
+ ' . $helper->getSystemLayout('Date of Birth', false, 'dob', 'customer_dob') . '
47
+
48
+ ' . $helper->getSystemLayout('Last Login', true, 'login', 'customer_last_login') . '
49
+
50
+ ' . $helper->getSystemLayout('Last Order', true, 'order', 'customer_last_order') . '
51
+
52
+ ' . $helper->getSystemLayout('Taxvat', true, 'taxvat', 'customer_taxvat') . '
53
+
54
+ ' . $helper->getSystemLayout('Gender', true, 'gender', 'customer_gender') . '
55
+ });
56
+ </script>';
57
+
58
+ return $comment;
59
+ }
60
+ }
app/code/community/Dexxtz/Customgrid/Model/Observer.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+
11
+ class Dexxtz_Customgrid_Model_Observer
12
+ {
13
+ public function salesOrderGridCollectionLoadBefore($observer)
14
+ {
15
+ $collection = $observer->getOrderGridCollection();
16
+ $select = $collection->getSelect();
17
+ $select->joinLeft(array('payment' => $collection->getTable('sales/order_payment')), 'payment.parent_id = main_table.entity_id',array('payment_method' => 'method'));
18
+ $select->joinLeft(array('shipping' => $collection->getTable('sales/order')), 'shipping.entity_id = main_table.entity_id', array('shipping_description' => 'shipping_description'));
19
+ $select->join(array('customer' => $collection->getTable('sales/order')), 'customer.entity_id = main_table.entity_id', array('customer_email'));
20
+ }
21
+
22
+ public function onEavLoadBefore(Varien_Event_Observer $observer) {
23
+
24
+ $collection = $observer->getCollection();
25
+ if (!isset($collection)) return;
26
+
27
+ if (is_a($collection, 'Mage_Catalog_Model_Resource_Product_Collection')) {
28
+ $collection->addAttributeToSelect('weight');
29
+ $collection->addAttributeToSelect('news_to_date');
30
+ $collection->addAttributeToSelect('image');
31
+ }
32
+
33
+ if (is_a($collection, 'Mage_Customer_Model_Resource_Customer_Collection')) {
34
+ $collection->addAttributeToSelect('dob');
35
+ $collection->getSelect()->columns(array('last_login' => new Zend_Db_Expr ("(SELECT MAX(login_at) FROM `log_customer` WHERE customer_id = e.entity_id)")));
36
+ $collection->getSelect()->columns(array('last_order' => new Zend_Db_Expr ("(SELECT MAX(created_at) FROM " . $collection->getTable('sales/order') . " WHERE customer_id = e.entity_id)")));
37
+ $collection->addAttributeToSelect('taxvat');
38
+ $collection->addAttributeToSelect('gender');
39
+ }
40
+ }
41
+ }
app/code/community/Dexxtz/Customgrid/Model/System/Config/Source/Catalog/Product/After.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+
11
+ class Dexxtz_Customgrid_Model_System_Config_Source_Catalog_Product_After
12
+ {
13
+ public function toOptionArray()
14
+ {
15
+ $helper = Mage::helper('catalog');
16
+
17
+ $options = array(array("value" => "massaction" , "label" => $helper->__('Selection')),
18
+ array("value" => "entity_id" , "label" => $helper->__('ID')),
19
+ array("value" => "name" , "label" => $helper->__('Name')),
20
+ array("value" => "type" , "label" => $helper->__('Type')),
21
+ array("value" => "set_name" , "label" => $helper->__('Attrib. Set Name')),
22
+ array("value" => "sku" , "label" => $helper->__('SKU')),
23
+ array("value" => "price" , "label" => $helper->__('Price')),
24
+ array("value" => "qty" , "label" => $helper->__('Qty')),
25
+ array("value" => "visibility" , "label" => $helper->__('Visibility')),
26
+ array("value" => "status" , "label" => $helper->__('Status')),
27
+ array("value" => "websites" , "label" => $helper->__('Websites'))
28
+ );
29
+
30
+ return $options;
31
+ }
32
+ }
app/code/community/Dexxtz/Customgrid/Model/System/Config/Source/Content.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+
11
+ class Dexxtz_Customgrid_Model_System_Config_Source_Content
12
+ {
13
+ public function toOptionArray()
14
+ {
15
+ $helper = Mage::helper('sales');
16
+
17
+ $options = array(array("value" => "left" , "label" => $helper->__('Left')),
18
+ array("value" => "center" , "label" => $helper->__('Center')),
19
+ array("value" => "right" , "label" => $helper->__('Right'))
20
+ );
21
+
22
+ return $options;
23
+ }
24
+ }
app/code/community/Dexxtz/Customgrid/Model/System/Config/Source/Customer/After.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+
11
+ class Dexxtz_Customgrid_Model_System_Config_Source_Customer_After
12
+ {
13
+ public function toOptionArray()
14
+ {
15
+ $helper = Mage::helper('customer');
16
+
17
+ $options = array(array("value" => "massaction" , "label" => $helper->__('Selection')),
18
+ array("value" => "entity_id" , "label" => $helper->__('ID')),
19
+ array("value" => "name" , "label" => $helper->__('Name')),
20
+ array("value" => "email" , "label" => $helper->__('Email')),
21
+ array("value" => "group" , "label" => $helper->__('Group')),
22
+ array("value" => "Telephone" , "label" => $helper->__('Telephone')),
23
+ array("value" => "billing_postcode" , "label" => $helper->__('Zip')),
24
+ array("value" => "billing_country_id" , "label" => $helper->__('Country')),
25
+ array("value" => "billing_region" , "label" => $helper->__('State/Province')),
26
+ array("value" => "customer_since" , "label" => $helper->__('Customer Since')),
27
+ array("value" => "website_id" , "label" => $helper->__('Websites'))
28
+ );
29
+
30
+ return $options;
31
+ }
32
+ }
app/code/community/Dexxtz/Customgrid/Model/System/Config/Source/Sales/Order/After.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+
11
+ class Dexxtz_Customgrid_Model_System_Config_Source_Sales_Order_After
12
+ {
13
+ public function toOptionArray()
14
+ {
15
+ $helper = Mage::helper('sales');
16
+
17
+ $options = array(array("value" => "massaction" , "label" => $helper->__('Selection')),
18
+ array("value" => "real_order_id" , "label" => $helper->__('Order')),
19
+ array("value" => "store_id" , "label" => $helper->__('Purchased From (Store)')),
20
+ array("value" => "created_at" , "label" => $helper->__('Purchased On')),
21
+ array("value" => "billing_name" , "label" => $helper->__('Bill to Name')),
22
+ array("value" => "shipping_name" , "label" => $helper->__('Ship to Name')),
23
+ array("value" => "base_grand_total" , "label" => $helper->__('G.T. (Base)')),
24
+ array("value" => "grand_total" , "label" => $helper->__('G.T. (Purchased)')),
25
+ array("value" => "status" , "label" => $helper->__('Status'))
26
+ );
27
+
28
+ return $options;
29
+ }
30
+ }
app/code/community/Dexxtz/Customgrid/Model/System/Config/Source/Title.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+
11
+ class Dexxtz_Customgrid_Model_System_Config_Source_Title
12
+ {
13
+ public function toOptionArray()
14
+ {
15
+ $helper = Mage::helper('sales');
16
+
17
+ $options = array(array("value" => "a-left" , "label" => $helper->__('Left')),
18
+ array("value" => "a-center" , "label" => $helper->__('Center')),
19
+ array("value" => "a-right" , "label" => $helper->__('Right'))
20
+ );
21
+
22
+ return $options;
23
+ }
24
+ }
app/code/community/Dexxtz/Customgrid/etc/config.xml ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!--
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+ -->
11
+ <config>
12
+ <modules>
13
+ <Dexxtz_Customgrid>
14
+ <version>1.0.0</version>
15
+ </Dexxtz_Customgrid>
16
+ </modules>
17
+ <frontend>
18
+ <routers>
19
+ <customgrid>
20
+ <use>admin</use>
21
+ <args>
22
+ <module>Dexxtz_Customgrid</module>
23
+ <frontName>customgrid</frontName>
24
+ </args>
25
+ </customgrid>
26
+ </routers>
27
+ <translate>
28
+ <modules>
29
+ <Dexxtz_Customgrid>
30
+ <files>
31
+ <default>Dexxtz_Customgrid.csv</default>
32
+ </files>
33
+ </Dexxtz_Customgrid>
34
+ </modules>
35
+ </translate>
36
+ <layout>
37
+ <updates>
38
+ <customgrid>
39
+ <file>dexxtz/customgrid.xml</file>
40
+ </customgrid>
41
+ </updates>
42
+ </layout>
43
+ </frontend>
44
+ <admin>
45
+ <routers>
46
+ <customgrid>
47
+ <use>admin</use>
48
+ <args>
49
+ <module>Dexxtz_Customgrid</module>
50
+ <frontName>customgrid</frontName>
51
+ </args>
52
+ </customgrid>
53
+ </routers>
54
+ </admin>
55
+ <adminhtml>
56
+ <acl>
57
+ <resources>
58
+ <admin>
59
+ <children>
60
+ <system>
61
+ <children>
62
+ <config>
63
+ <children>
64
+ <dexxtz_customgrid translate="title" module="customgrid">
65
+ <title>Dexxtz Customgrid</title>
66
+ <sort_order>60</sort_order>
67
+ </dexxtz_customgrid>
68
+ </children>
69
+ </config>
70
+ </children>
71
+ </system>
72
+ </children>
73
+ </admin>
74
+ </resources>
75
+ </acl>
76
+ <translate>
77
+ <modules>
78
+ <Dexxtz_Customgrid>
79
+ <files>
80
+ <default>Dexxtz_Customgrid.csv</default>
81
+ </files>
82
+ </Dexxtz_Customgrid>
83
+ <customgrid_write>
84
+ <connection>
85
+ <use>core_write</use>
86
+ </connection>
87
+ </customgrid_write>
88
+ <customgrid_read>
89
+ <connection>
90
+ <use>core_read</use>
91
+ </connection>
92
+ </customgrid_read>
93
+ </modules>
94
+ </translate>
95
+ <layout>
96
+ <updates>
97
+ <customgrid>
98
+ <file>dexxtz/customgrid.xml</file>
99
+ </customgrid>
100
+ </updates>
101
+ </layout>
102
+ <events>
103
+ <sales_order_grid_collection_load_before>
104
+ <observers>
105
+ <dexxtz_customgrid>
106
+ <model>dexxtz_customgrid/observer</model>
107
+ <method>salesOrderGridCollectionLoadBefore</method>
108
+ </dexxtz_customgrid>
109
+ </observers>
110
+ </sales_order_grid_collection_load_before>
111
+ <eav_collection_abstract_load_before>
112
+ <observers>
113
+ <dexxtz_customgrid>
114
+ <class>dexxtz_customgrid/observer</class>
115
+ <method>onEavLoadBefore</method>
116
+ </dexxtz_customgrid>
117
+ </observers>
118
+ </eav_collection_abstract_load_before>
119
+ </events>
120
+ </adminhtml>
121
+ <global>
122
+ <resources>
123
+ <dexxtz_customgrid_setup>
124
+ <setup>
125
+ <module>Dexxtz_Customgrid</module>
126
+ </setup>
127
+ <connection>
128
+ <use>core_setup</use>
129
+ </connection>
130
+ </dexxtz_customgrid_setup>
131
+ </resources>
132
+ <blocks>
133
+ <dexxtz_customgrid>
134
+ <class>Dexxtz_Customgrid_Block</class>
135
+ </dexxtz_customgrid>
136
+ <adminhtml>
137
+ <rewrite>
138
+ <catalog_product_grid>Dexxtz_Customgrid_Block_Adminhtml_Catalog_Product_Grid</catalog_product_grid>
139
+ <customer_grid>Dexxtz_Customgrid_Block_Adminhtml_Customer_Grid</customer_grid>
140
+ </rewrite>
141
+ </adminhtml>
142
+ </blocks>
143
+ <models>
144
+ <dexxtz_customgrid>
145
+ <class>Dexxtz_Customgrid_Model</class>
146
+ </dexxtz_customgrid>
147
+ </models>
148
+ <helpers>
149
+ <customgrid>
150
+ <class>Dexxtz_Customgrid_Helper</class>
151
+ </customgrid>
152
+ </helpers>
153
+ </global>
154
+ </config>
app/code/community/Dexxtz/Customgrid/etc/system.xml ADDED
@@ -0,0 +1,1036 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+ -->
11
+ <config>
12
+ <tabs>
13
+ <dexxtz translate="label">
14
+ <label>Dexxtz</label>
15
+ <sort_order>150</sort_order>
16
+ </dexxtz>
17
+ </tabs>
18
+ <sections>
19
+ <dexxtz_customgrid translate="label" module="customgrid">
20
+ <label>Custom Grid</label>
21
+ <tab>dexxtz</tab>
22
+ <frontend_type>text</frontend_type>
23
+ <sort_order>60</sort_order>
24
+ <show_in_default>1</show_in_default>
25
+ <show_in_website>1</show_in_website>
26
+ <show_in_store>1</show_in_store>
27
+ <groups>
28
+ <sales_order translate="label">
29
+ <label>Settings Sales Orders Grid</label>
30
+ <frontend_type>text</frontend_type>
31
+ <sort_order>10</sort_order>
32
+ <show_in_default>1</show_in_default>
33
+ <show_in_website>1</show_in_website>
34
+ <show_in_store>1</show_in_store>
35
+ <fields>
36
+ <payment_label>
37
+ <comment>
38
+ <model>dexxtz_customgrid/adminhtml_comment_sales_order_payment</model>
39
+ </comment>
40
+ <frontend_type>label</frontend_type>
41
+ <sort_order>5</sort_order>
42
+ <show_in_default>1</show_in_default>
43
+ <show_in_website>1</show_in_website>
44
+ <show_in_store>1</show_in_store>
45
+ </payment_label>
46
+ <payment_active>
47
+ <label>Add Payment Column</label>
48
+ <comment>Enables or disables the column of payment.</comment>
49
+ <frontend_type>select</frontend_type>
50
+ <source_model>adminhtml/system_config_source_yesno</source_model>
51
+ <sort_order>10</sort_order>
52
+ <show_in_default>1</show_in_default>
53
+ <show_in_website>1</show_in_website>
54
+ <show_in_store>1</show_in_store>
55
+ </payment_active>
56
+ <payment_show_after>
57
+ <label>Show after column</label>
58
+ <comment>Show the new column after column selected.</comment>
59
+ <frontend_type>select</frontend_type>
60
+ <source_model>dexxtz_customgrid/system_config_source_sales_order_after</source_model>
61
+ <sort_order>20</sort_order>
62
+ <show_in_default>1</show_in_default>
63
+ <show_in_website>1</show_in_website>
64
+ <show_in_store>1</show_in_store>
65
+ <depends>
66
+ <payment_active>1</payment_active>
67
+ </depends>
68
+ </payment_show_after>
69
+ <payment_column_title>
70
+ <label>Column title</label>
71
+ <comment>Title that will appear in the column.</comment>
72
+ <frontend_type>text</frontend_type>
73
+ <sort_order>30</sort_order>
74
+ <show_in_default>1</show_in_default>
75
+ <show_in_website>1</show_in_website>
76
+ <show_in_store>1</show_in_store>
77
+ <depends>
78
+ <payment_active>1</payment_active>
79
+ </depends>
80
+ </payment_column_title>
81
+ <payment_title_align>
82
+ <label>Alignment of title</label>
83
+ <comment>Alignment of the column title.</comment>
84
+ <frontend_type>select</frontend_type>
85
+ <source_model>dexxtz_customgrid/system_config_source_title</source_model>
86
+ <sort_order>40</sort_order>
87
+ <show_in_default>1</show_in_default>
88
+ <show_in_website>1</show_in_website>
89
+ <show_in_store>1</show_in_store>
90
+ <depends>
91
+ <payment_active>1</payment_active>
92
+ </depends>
93
+ </payment_title_align>
94
+ <payment_content_align>
95
+ <label>Alignment of content</label>
96
+ <comment>Alignment of the contents of the column.</comment>
97
+ <frontend_type>select</frontend_type>
98
+ <source_model>dexxtz_customgrid/system_config_source_content</source_model>
99
+ <sort_order>50</sort_order>
100
+ <show_in_default>1</show_in_default>
101
+ <show_in_website>1</show_in_website>
102
+ <show_in_store>1</show_in_store>
103
+ <depends>
104
+ <payment_active>1</payment_active>
105
+ </depends>
106
+ </payment_content_align>
107
+ <payment_column_width>
108
+ <label>Column width</label>
109
+ <comment>Column length measured in pixel, Ex: 100px</comment>
110
+ <tooltip>The length works only if the minimum size of each column, has not yet been reached.</tooltip>
111
+ <frontend_type>text</frontend_type>
112
+ <sort_order>60</sort_order>
113
+ <show_in_default>1</show_in_default>
114
+ <show_in_website>1</show_in_website>
115
+ <show_in_store>1</show_in_store>
116
+ <depends>
117
+ <payment_active>1</payment_active>
118
+ </depends>
119
+ </payment_column_width>
120
+ <shipping_label>
121
+ <frontend_type>label</frontend_type>
122
+ <sort_order>65</sort_order>
123
+ <show_in_default>1</show_in_default>
124
+ <show_in_website>1</show_in_website>
125
+ <show_in_store>1</show_in_store>
126
+ </shipping_label>
127
+ <shipping_active>
128
+ <label>Add Shipping Column</label>
129
+ <comment>Enables or disables the column of shipping.</comment>
130
+ <frontend_type>select</frontend_type>
131
+ <source_model>adminhtml/system_config_source_yesno</source_model>
132
+ <sort_order>70</sort_order>
133
+ <show_in_default>1</show_in_default>
134
+ <show_in_website>1</show_in_website>
135
+ <show_in_store>1</show_in_store>
136
+ </shipping_active>
137
+ <shipping_show_after>
138
+ <label>Show after column</label>
139
+ <comment>Show the new column after column selected.</comment>
140
+ <frontend_type>select</frontend_type>
141
+ <source_model>dexxtz_customgrid/system_config_source_sales_order_after</source_model>
142
+ <sort_order>80</sort_order>
143
+ <show_in_default>1</show_in_default>
144
+ <show_in_website>1</show_in_website>
145
+ <show_in_store>1</show_in_store>
146
+ <depends>
147
+ <shipping_active>1</shipping_active>
148
+ </depends>
149
+ </shipping_show_after>
150
+ <shipping_column_title>
151
+ <label>Column title</label>
152
+ <comment>Title that will appear in the column.</comment>
153
+ <frontend_type>text</frontend_type>
154
+ <sort_order>90</sort_order>
155
+ <show_in_default>1</show_in_default>
156
+ <show_in_website>1</show_in_website>
157
+ <show_in_store>1</show_in_store>
158
+ <depends>
159
+ <shipping_active>1</shipping_active>
160
+ </depends>
161
+ </shipping_column_title>
162
+ <shipping_title_align>
163
+ <label>Alignment of title</label>
164
+ <comment>Alignment of the column title.</comment>
165
+ <frontend_type>select</frontend_type>
166
+ <source_model>dexxtz_customgrid/system_config_source_title</source_model>
167
+ <sort_order>100</sort_order>
168
+ <show_in_default>1</show_in_default>
169
+ <show_in_website>1</show_in_website>
170
+ <show_in_store>1</show_in_store>
171
+ <depends>
172
+ <shipping_active>1</shipping_active>
173
+ </depends>
174
+ </shipping_title_align>
175
+ <shipping_content_align>
176
+ <label>Alignment of content</label>
177
+ <comment>Alignment of the contents of the column.</comment>
178
+ <frontend_type>select</frontend_type>
179
+ <source_model>dexxtz_customgrid/system_config_source_content</source_model>
180
+ <sort_order>110</sort_order>
181
+ <show_in_default>1</show_in_default>
182
+ <show_in_website>1</show_in_website>
183
+ <show_in_store>1</show_in_store>
184
+ <depends>
185
+ <shipping_active>1</shipping_active>
186
+ </depends>
187
+ </shipping_content_align>
188
+ <shipping_column_width>
189
+ <label>Column width</label>
190
+ <comment>Column length measured in pixel, Ex: 100px</comment>
191
+ <tooltip>The length works only if the minimum size of each column, has not yet been reached.</tooltip>
192
+ <frontend_type>text</frontend_type>
193
+ <sort_order>120</sort_order>
194
+ <show_in_default>1</show_in_default>
195
+ <show_in_website>1</show_in_website>
196
+ <show_in_store>1</show_in_store>
197
+ <depends>
198
+ <shipping_active>1</shipping_active>
199
+ </depends>
200
+ </shipping_column_width>
201
+ <customer_email_label>
202
+ <frontend_type>label</frontend_type>
203
+ <sort_order>125</sort_order>
204
+ <show_in_default>1</show_in_default>
205
+ <show_in_website>1</show_in_website>
206
+ <show_in_store>1</show_in_store>
207
+ </customer_email_label>
208
+ <customer_email_active>
209
+ <label>Add Customer E-mail Column</label>
210
+ <comment>Enables or disables the column of e-mail.</comment>
211
+ <frontend_type>select</frontend_type>
212
+ <source_model>adminhtml/system_config_source_yesno</source_model>
213
+ <sort_order>130</sort_order>
214
+ <show_in_default>1</show_in_default>
215
+ <show_in_website>1</show_in_website>
216
+ <show_in_store>1</show_in_store>
217
+ </customer_email_active>
218
+ <customer_email_show_after>
219
+ <label>Show after column</label>
220
+ <comment>Show the new column after column selected.</comment>
221
+ <frontend_type>select</frontend_type>
222
+ <source_model>dexxtz_customgrid/system_config_source_sales_order_after</source_model>
223
+ <sort_order>140</sort_order>
224
+ <show_in_default>1</show_in_default>
225
+ <show_in_website>1</show_in_website>
226
+ <show_in_store>1</show_in_store>
227
+ <depends>
228
+ <customer_email_active>1</customer_email_active>
229
+ </depends>
230
+ </customer_email_show_after>
231
+ <customer_email_column_title>
232
+ <label>Column title</label>
233
+ <comment>Title that will appear in the column.</comment>
234
+ <frontend_type>text</frontend_type>
235
+ <sort_order>150</sort_order>
236
+ <show_in_default>1</show_in_default>
237
+ <show_in_website>1</show_in_website>
238
+ <show_in_store>1</show_in_store>
239
+ <depends>
240
+ <customer_email_active>1</customer_email_active>
241
+ </depends>
242
+ </customer_email_column_title>
243
+ <customer_email_title_align>
244
+ <label>Alignment of title</label>
245
+ <comment>Alignment of the column title.</comment>
246
+ <frontend_type>select</frontend_type>
247
+ <source_model>dexxtz_customgrid/system_config_source_title</source_model>
248
+ <sort_order>160</sort_order>
249
+ <show_in_default>1</show_in_default>
250
+ <show_in_website>1</show_in_website>
251
+ <show_in_store>1</show_in_store>
252
+ <depends>
253
+ <customer_email_active>1</customer_email_active>
254
+ </depends>
255
+ </customer_email_title_align>
256
+ <customer_email_content_align>
257
+ <label>Alignment of content</label>
258
+ <comment>Alignment of the contents of the column.</comment>
259
+ <frontend_type>select</frontend_type>
260
+ <source_model>dexxtz_customgrid/system_config_source_content</source_model>
261
+ <sort_order>170</sort_order>
262
+ <show_in_default>1</show_in_default>
263
+ <show_in_website>1</show_in_website>
264
+ <show_in_store>1</show_in_store>
265
+ <depends>
266
+ <customer_email_active>1</customer_email_active>
267
+ </depends>
268
+ </customer_email_content_align>
269
+ <customer_email_column_width>
270
+ <label>Column width</label>
271
+ <comment>Column length measured in pixel, Ex: 100px</comment>
272
+ <tooltip>The length works only if the minimum size of each column, has not yet been reached.</tooltip>
273
+ <frontend_type>text</frontend_type>
274
+ <sort_order>180</sort_order>
275
+ <show_in_default>1</show_in_default>
276
+ <show_in_website>1</show_in_website>
277
+ <show_in_store>1</show_in_store>
278
+ <depends>
279
+ <customer_email_active>1</customer_email_active>
280
+ </depends>
281
+ </customer_email_column_width>
282
+ </fields>
283
+ </sales_order>
284
+ <catalog_product translate="label">
285
+ <label>Settings Catalog Product Grid</label>
286
+ <frontend_type>text</frontend_type>
287
+ <sort_order>20</sort_order>
288
+ <show_in_default>1</show_in_default>
289
+ <show_in_website>1</show_in_website>
290
+ <show_in_store>1</show_in_store>
291
+ <fields>
292
+ <weight_label>
293
+ <frontend_type>label</frontend_type>
294
+ <sort_order>5</sort_order>
295
+ <show_in_default>1</show_in_default>
296
+ <show_in_website>1</show_in_website>
297
+ <show_in_store>1</show_in_store>
298
+ </weight_label>
299
+ <weight_active>
300
+ <label>Add Weight Column</label>
301
+ <comment>Enables or disables the column of weight.</comment>
302
+ <frontend_type>select</frontend_type>
303
+ <source_model>adminhtml/system_config_source_yesno</source_model>
304
+ <sort_order>10</sort_order>
305
+ <show_in_default>1</show_in_default>
306
+ <show_in_website>1</show_in_website>
307
+ <show_in_store>1</show_in_store>
308
+ </weight_active>
309
+ <weight_show_after>
310
+ <label>Show after column</label>
311
+ <comment>Show the new column after column selected.</comment>
312
+ <frontend_type>select</frontend_type>
313
+ <source_model>dexxtz_customgrid/system_config_source_catalog_product_after</source_model>
314
+ <sort_order>20</sort_order>
315
+ <show_in_default>1</show_in_default>
316
+ <show_in_website>1</show_in_website>
317
+ <show_in_store>1</show_in_store>
318
+ <depends>
319
+ <weight_active>1</weight_active>
320
+ </depends>
321
+ </weight_show_after>
322
+ <weight_column_title>
323
+ <label>Column title</label>
324
+ <comment>Title that will appear in the column.</comment>
325
+ <frontend_type>text</frontend_type>
326
+ <sort_order>30</sort_order>
327
+ <show_in_default>1</show_in_default>
328
+ <show_in_website>1</show_in_website>
329
+ <show_in_store>1</show_in_store>
330
+ <depends>
331
+ <weight_active>1</weight_active>
332
+ </depends>
333
+ </weight_column_title>
334
+ <weight_title_align>
335
+ <label>Alignment of title</label>
336
+ <comment>Alignment of the column title.</comment>
337
+ <frontend_type>select</frontend_type>
338
+ <source_model>dexxtz_customgrid/system_config_source_title</source_model>
339
+ <sort_order>40</sort_order>
340
+ <show_in_default>1</show_in_default>
341
+ <show_in_website>1</show_in_website>
342
+ <show_in_store>1</show_in_store>
343
+ <depends>
344
+ <weight_active>1</weight_active>
345
+ </depends>
346
+ </weight_title_align>
347
+ <weight_content_align>
348
+ <label>Alignment of content</label>
349
+ <comment>Alignment of the contents of the column.</comment>
350
+ <frontend_type>select</frontend_type>
351
+ <source_model>dexxtz_customgrid/system_config_source_content</source_model>
352
+ <sort_order>50</sort_order>
353
+ <show_in_default>1</show_in_default>
354
+ <show_in_website>1</show_in_website>
355
+ <show_in_store>1</show_in_store>
356
+ <depends>
357
+ <weight_active>1</weight_active>
358
+ </depends>
359
+ </weight_content_align>
360
+ <weight_column_width>
361
+ <label>Column width</label>
362
+ <comment>Column length measured in pixel, Ex: 100px</comment>
363
+ <tooltip>The length works only if the minimum size of each column, has not yet been reached.</tooltip>
364
+ <frontend_type>text</frontend_type>
365
+ <sort_order>60</sort_order>
366
+ <show_in_default>1</show_in_default>
367
+ <show_in_website>1</show_in_website>
368
+ <show_in_store>1</show_in_store>
369
+ <depends>
370
+ <weight_active>1</weight_active>
371
+ </depends>
372
+ </weight_column_width>
373
+ <new_until_label>
374
+ <frontend_type>label</frontend_type>
375
+ <sort_order>65</sort_order>
376
+ <show_in_default>1</show_in_default>
377
+ <show_in_website>1</show_in_website>
378
+ <show_in_store>1</show_in_store>
379
+ </new_until_label>
380
+ <new_until_active>
381
+ <label>Add New Until Column</label>
382
+ <comment>Enables or disables the column of new until.</comment>
383
+ <frontend_type>select</frontend_type>
384
+ <source_model>adminhtml/system_config_source_yesno</source_model>
385
+ <sort_order>70</sort_order>
386
+ <show_in_default>1</show_in_default>
387
+ <show_in_website>1</show_in_website>
388
+ <show_in_store>1</show_in_store>
389
+ </new_until_active>
390
+ <new_until_show_after>
391
+ <label>Show after column</label>
392
+ <comment>Show the new column after column selected.</comment>
393
+ <frontend_type>select</frontend_type>
394
+ <source_model>dexxtz_customgrid/system_config_source_catalog_product_after</source_model>
395
+ <sort_order>80</sort_order>
396
+ <show_in_default>1</show_in_default>
397
+ <show_in_website>1</show_in_website>
398
+ <show_in_store>1</show_in_store>
399
+ <depends>
400
+ <new_until_active>1</new_until_active>
401
+ </depends>
402
+ </new_until_show_after>
403
+ <new_until_column_title>
404
+ <label>Column title</label>
405
+ <comment>Title that will appear in the column.</comment>
406
+ <frontend_type>text</frontend_type>
407
+ <sort_order>90</sort_order>
408
+ <show_in_default>1</show_in_default>
409
+ <show_in_website>1</show_in_website>
410
+ <show_in_store>1</show_in_store>
411
+ <depends>
412
+ <new_until_active>1</new_until_active>
413
+ </depends>
414
+ </new_until_column_title>
415
+ <new_until_title_align>
416
+ <label>Alignment of title</label>
417
+ <comment>Alignment of the column title.</comment>
418
+ <frontend_type>select</frontend_type>
419
+ <source_model>dexxtz_customgrid/system_config_source_title</source_model>
420
+ <sort_order>100</sort_order>
421
+ <show_in_default>1</show_in_default>
422
+ <show_in_website>1</show_in_website>
423
+ <show_in_store>1</show_in_store>
424
+ <depends>
425
+ <new_until_active>1</new_until_active>
426
+ </depends>
427
+ </new_until_title_align>
428
+ <new_until_content_align>
429
+ <label>Alignment of content</label>
430
+ <comment>Alignment of the contents of the column.</comment>
431
+ <frontend_type>select</frontend_type>
432
+ <source_model>dexxtz_customgrid/system_config_source_content</source_model>
433
+ <sort_order>110</sort_order>
434
+ <show_in_default>1</show_in_default>
435
+ <show_in_website>1</show_in_website>
436
+ <show_in_store>1</show_in_store>
437
+ <depends>
438
+ <new_until_active>1</new_until_active>
439
+ </depends>
440
+ </new_until_content_align>
441
+ <new_until_column_width>
442
+ <label>Column width</label>
443
+ <comment>Column length measured in pixel, Ex: 100px</comment>
444
+ <tooltip>The length works only if the minimum size of each column, has not yet been reached.</tooltip>
445
+ <frontend_type>text</frontend_type>
446
+ <sort_order>120</sort_order>
447
+ <show_in_default>1</show_in_default>
448
+ <show_in_website>1</show_in_website>
449
+ <show_in_store>1</show_in_store>
450
+ <depends>
451
+ <new_until_active>1</new_until_active>
452
+ </depends>
453
+ </new_until_column_width>
454
+ <image_label>
455
+ <frontend_type>label</frontend_type>
456
+ <sort_order>125</sort_order>
457
+ <show_in_default>1</show_in_default>
458
+ <show_in_website>1</show_in_website>
459
+ <show_in_store>1</show_in_store>
460
+ </image_label>
461
+ <image_active>
462
+ <label>Add Image Column</label>
463
+ <comment>Enables or disables the column of image.</comment>
464
+ <frontend_type>select</frontend_type>
465
+ <source_model>adminhtml/system_config_source_yesno</source_model>
466
+ <sort_order>130</sort_order>
467
+ <show_in_default>1</show_in_default>
468
+ <show_in_website>1</show_in_website>
469
+ <show_in_store>1</show_in_store>
470
+ </image_active>
471
+ <image_show_after>
472
+ <label>Show after column</label>
473
+ <comment>Show the new column after column selected.</comment>
474
+ <frontend_type>select</frontend_type>
475
+ <source_model>dexxtz_customgrid/system_config_source_catalog_product_after</source_model>
476
+ <sort_order>140</sort_order>
477
+ <show_in_default>1</show_in_default>
478
+ <show_in_website>1</show_in_website>
479
+ <show_in_store>1</show_in_store>
480
+ <depends>
481
+ <image_active>1</image_active>
482
+ </depends>
483
+ </image_show_after>
484
+ <image_column_title>
485
+ <label>Column title</label>
486
+ <comment>Title that will appear in the column.</comment>
487
+ <frontend_type>text</frontend_type>
488
+ <sort_order>150</sort_order>
489
+ <show_in_default>1</show_in_default>
490
+ <show_in_website>1</show_in_website>
491
+ <show_in_store>1</show_in_store>
492
+ <depends>
493
+ <image_active>1</image_active>
494
+ </depends>
495
+ </image_column_title>
496
+ <image_title_align>
497
+ <label>Alignment of title</label>
498
+ <comment>Alignment of the column title.</comment>
499
+ <frontend_type>select</frontend_type>
500
+ <source_model>dexxtz_customgrid/system_config_source_title</source_model>
501
+ <sort_order>160</sort_order>
502
+ <show_in_default>1</show_in_default>
503
+ <show_in_website>1</show_in_website>
504
+ <show_in_store>1</show_in_store>
505
+ <depends>
506
+ <image_active>1</image_active>
507
+ </depends>
508
+ </image_title_align>
509
+ <image_content_align>
510
+ <label>Alignment of content</label>
511
+ <comment>Alignment of the contents of the column.</comment>
512
+ <frontend_type>select</frontend_type>
513
+ <source_model>dexxtz_customgrid/system_config_source_content</source_model>
514
+ <sort_order>170</sort_order>
515
+ <show_in_default>1</show_in_default>
516
+ <show_in_website>1</show_in_website>
517
+ <show_in_store>1</show_in_store>
518
+ <depends>
519
+ <image_active>1</image_active>
520
+ </depends>
521
+ </image_content_align>
522
+ <image_column_width>
523
+ <label>Column width</label>
524
+ <comment>Column length measured in pixel, Ex: 100px</comment>
525
+ <tooltip>The length works only if the minimum size of each column, has not yet been reached.</tooltip>
526
+ <frontend_type>text</frontend_type>
527
+ <sort_order>180</sort_order>
528
+ <show_in_default>1</show_in_default>
529
+ <show_in_website>1</show_in_website>
530
+ <show_in_store>1</show_in_store>
531
+ <depends>
532
+ <image_active>1</image_active>
533
+ </depends>
534
+ </image_column_width>
535
+ <categories_label>
536
+ <frontend_type>label</frontend_type>
537
+ <sort_order>185</sort_order>
538
+ <show_in_default>1</show_in_default>
539
+ <show_in_website>1</show_in_website>
540
+ <show_in_store>1</show_in_store>
541
+ </categories_label>
542
+ <categories_active>
543
+ <label>Add Categories Column</label>
544
+ <comment>Enables or disables the column of categories.</comment>
545
+ <frontend_type>select</frontend_type>
546
+ <source_model>adminhtml/system_config_source_yesno</source_model>
547
+ <sort_order>190</sort_order>
548
+ <show_in_default>1</show_in_default>
549
+ <show_in_website>1</show_in_website>
550
+ <show_in_store>1</show_in_store>
551
+ </categories_active>
552
+ <categories_show_after>
553
+ <label>Show after column</label>
554
+ <comment>Show the new column after column selected.</comment>
555
+ <frontend_type>select</frontend_type>
556
+ <source_model>dexxtz_customgrid/system_config_source_catalog_product_after</source_model>
557
+ <sort_order>200</sort_order>
558
+ <show_in_default>1</show_in_default>
559
+ <show_in_website>1</show_in_website>
560
+ <show_in_store>1</show_in_store>
561
+ <depends>
562
+ <categories_active>1</categories_active>
563
+ </depends>
564
+ </categories_show_after>
565
+ <categories_column_title>
566
+ <label>Column title</label>
567
+ <comment>Title that will appear in the column.</comment>
568
+ <frontend_type>text</frontend_type>
569
+ <sort_order>210</sort_order>
570
+ <show_in_default>1</show_in_default>
571
+ <show_in_website>1</show_in_website>
572
+ <show_in_store>1</show_in_store>
573
+ <depends>
574
+ <categories_active>1</categories_active>
575
+ </depends>
576
+ </categories_column_title>
577
+ <categories_title_align>
578
+ <label>Alignment of title</label>
579
+ <comment>Alignment of the column title.</comment>
580
+ <frontend_type>select</frontend_type>
581
+ <source_model>dexxtz_customgrid/system_config_source_title</source_model>
582
+ <sort_order>220</sort_order>
583
+ <show_in_default>1</show_in_default>
584
+ <show_in_website>1</show_in_website>
585
+ <show_in_store>1</show_in_store>
586
+ <depends>
587
+ <categories_active>1</categories_active>
588
+ </depends>
589
+ </categories_title_align>
590
+ <categories_content_align>
591
+ <label>Alignment of content</label>
592
+ <comment>Alignment of the contents of the column.</comment>
593
+ <frontend_type>select</frontend_type>
594
+ <source_model>dexxtz_customgrid/system_config_source_content</source_model>
595
+ <sort_order>230</sort_order>
596
+ <show_in_default>1</show_in_default>
597
+ <show_in_website>1</show_in_website>
598
+ <show_in_store>1</show_in_store>
599
+ <depends>
600
+ <categories_active>1</categories_active>
601
+ </depends>
602
+ </categories_content_align>
603
+ <categories_column_width>
604
+ <label>Column width</label>
605
+ <comment>Column length measured in pixel, Ex: 100px</comment>
606
+ <tooltip>The length works only if the minimum size of each column, has not yet been reached.</tooltip>
607
+ <frontend_type>text</frontend_type>
608
+ <sort_order>240</sort_order>
609
+ <show_in_default>1</show_in_default>
610
+ <show_in_website>1</show_in_website>
611
+ <show_in_store>1</show_in_store>
612
+ <depends>
613
+ <categories_active>1</categories_active>
614
+ </depends>
615
+ </categories_column_width>
616
+ </fields>
617
+ </catalog_product>
618
+ <customer translate="label">
619
+ <label>Settings Customer Grid</label>
620
+ <frontend_type>text</frontend_type>
621
+ <sort_order>30</sort_order>
622
+ <show_in_default>1</show_in_default>
623
+ <show_in_website>1</show_in_website>
624
+ <show_in_store>1</show_in_store>
625
+ <fields>
626
+ <dob_label>
627
+ <frontend_type>label</frontend_type>
628
+ <sort_order>5</sort_order>
629
+ <show_in_default>1</show_in_default>
630
+ <show_in_website>1</show_in_website>
631
+ <show_in_store>1</show_in_store>
632
+ </dob_label>
633
+ <dob_active>
634
+ <label>Add Date of Birth Column</label>
635
+ <comment>Enables or disables the column of date of birth.</comment>
636
+ <frontend_type>select</frontend_type>
637
+ <source_model>adminhtml/system_config_source_yesno</source_model>
638
+ <sort_order>10</sort_order>
639
+ <show_in_default>1</show_in_default>
640
+ <show_in_website>1</show_in_website>
641
+ <show_in_store>1</show_in_store>
642
+ </dob_active>
643
+ <dob_show_after>
644
+ <label>Show after column</label>
645
+ <comment>Show the new column after column selected.</comment>
646
+ <frontend_type>select</frontend_type>
647
+ <source_model>dexxtz_customgrid/system_config_source_customer_after</source_model>
648
+ <sort_order>20</sort_order>
649
+ <show_in_default>1</show_in_default>
650
+ <show_in_website>1</show_in_website>
651
+ <show_in_store>1</show_in_store>
652
+ <depends>
653
+ <dob_active>1</dob_active>
654
+ </depends>
655
+ </dob_show_after>
656
+ <dob_column_title>
657
+ <label>Column title</label>
658
+ <comment>Title that will appear in the column.</comment>
659
+ <frontend_type>text</frontend_type>
660
+ <sort_order>30</sort_order>
661
+ <show_in_default>1</show_in_default>
662
+ <show_in_website>1</show_in_website>
663
+ <show_in_store>1</show_in_store>
664
+ <depends>
665
+ <dob_active>1</dob_active>
666
+ </depends>
667
+ </dob_column_title>
668
+ <dob_title_align>
669
+ <label>Alignment of title</label>
670
+ <comment>Alignment of the column title.</comment>
671
+ <frontend_type>select</frontend_type>
672
+ <source_model>dexxtz_customgrid/system_config_source_title</source_model>
673
+ <sort_order>40</sort_order>
674
+ <show_in_default>1</show_in_default>
675
+ <show_in_website>1</show_in_website>
676
+ <show_in_store>1</show_in_store>
677
+ <depends>
678
+ <dob_active>1</dob_active>
679
+ </depends>
680
+ </dob_title_align>
681
+ <dob_content_align>
682
+ <label>Alignment of content</label>
683
+ <comment>Alignment of the contents of the column.</comment>
684
+ <frontend_type>select</frontend_type>
685
+ <source_model>dexxtz_customgrid/system_config_source_content</source_model>
686
+ <sort_order>50</sort_order>
687
+ <show_in_default>1</show_in_default>
688
+ <show_in_website>1</show_in_website>
689
+ <show_in_store>1</show_in_store>
690
+ <depends>
691
+ <dob_active>1</dob_active>
692
+ </depends>
693
+ </dob_content_align>
694
+ <dob_column_width>
695
+ <label>Column width</label>
696
+ <comment>Column length measured in pixel, Ex: 100px</comment>
697
+ <tooltip>The length works only if the minimum size of each column, has not yet been reached.</tooltip>
698
+ <frontend_type>text</frontend_type>
699
+ <sort_order>60</sort_order>
700
+ <show_in_default>1</show_in_default>
701
+ <show_in_website>1</show_in_website>
702
+ <show_in_store>1</show_in_store>
703
+ <depends>
704
+ <dob_active>1</dob_active>
705
+ </depends>
706
+ </dob_column_width>
707
+ <last_login_label>
708
+ <frontend_type>label</frontend_type>
709
+ <sort_order>65</sort_order>
710
+ <show_in_default>1</show_in_default>
711
+ <show_in_website>1</show_in_website>
712
+ <show_in_store>1</show_in_store>
713
+ </last_login_label>
714
+ <last_login_active>
715
+ <label>Add Last Login Column</label>
716
+ <comment>Enables or disables the column of last login.</comment>
717
+ <frontend_type>select</frontend_type>
718
+ <source_model>adminhtml/system_config_source_yesno</source_model>
719
+ <sort_order>70</sort_order>
720
+ <show_in_default>1</show_in_default>
721
+ <show_in_website>1</show_in_website>
722
+ <show_in_store>1</show_in_store>
723
+ </last_login_active>
724
+ <last_login_show_after>
725
+ <label>Show after column</label>
726
+ <comment>Show the new column after column selected.</comment>
727
+ <frontend_type>select</frontend_type>
728
+ <source_model>dexxtz_customgrid/system_config_source_customer_after</source_model>
729
+ <sort_order>80</sort_order>
730
+ <show_in_default>1</show_in_default>
731
+ <show_in_website>1</show_in_website>
732
+ <show_in_store>1</show_in_store>
733
+ <depends>
734
+ <last_login_active>1</last_login_active>
735
+ </depends>
736
+ </last_login_show_after>
737
+ <last_login_column_title>
738
+ <label>Column title</label>
739
+ <comment>Title that will appear in the column.</comment>
740
+ <frontend_type>text</frontend_type>
741
+ <sort_order>90</sort_order>
742
+ <show_in_default>1</show_in_default>
743
+ <show_in_website>1</show_in_website>
744
+ <show_in_store>1</show_in_store>
745
+ <depends>
746
+ <last_login_active>1</last_login_active>
747
+ </depends>
748
+ </last_login_column_title>
749
+ <last_login_title_align>
750
+ <label>Alignment of title</label>
751
+ <comment>Alignment of the column title.</comment>
752
+ <frontend_type>select</frontend_type>
753
+ <source_model>dexxtz_customgrid/system_config_source_title</source_model>
754
+ <sort_order>100</sort_order>
755
+ <show_in_default>1</show_in_default>
756
+ <show_in_website>1</show_in_website>
757
+ <show_in_store>1</show_in_store>
758
+ <depends>
759
+ <last_login_active>1</last_login_active>
760
+ </depends>
761
+ </last_login_title_align>
762
+ <last_login_content_align>
763
+ <label>Alignment of content</label>
764
+ <comment>Alignment of the contents of the column.</comment>
765
+ <frontend_type>select</frontend_type>
766
+ <source_model>dexxtz_customgrid/system_config_source_content</source_model>
767
+ <sort_order>110</sort_order>
768
+ <show_in_default>1</show_in_default>
769
+ <show_in_website>1</show_in_website>
770
+ <show_in_store>1</show_in_store>
771
+ <depends>
772
+ <last_login_active>1</last_login_active>
773
+ </depends>
774
+ </last_login_content_align>
775
+ <last_login_column_width>
776
+ <label>Column width</label>
777
+ <comment>Column length measured in pixel, Ex: 100px</comment>
778
+ <tooltip>The length works only if the minimum size of each column, has not yet been reached.</tooltip>
779
+ <frontend_type>text</frontend_type>
780
+ <sort_order>120</sort_order>
781
+ <show_in_default>1</show_in_default>
782
+ <show_in_website>1</show_in_website>
783
+ <show_in_store>1</show_in_store>
784
+ <depends>
785
+ <last_login_active>1</last_login_active>
786
+ </depends>
787
+ </last_login_column_width>
788
+ <last_order_label>
789
+ <frontend_type>label</frontend_type>
790
+ <sort_order>125</sort_order>
791
+ <show_in_default>1</show_in_default>
792
+ <show_in_website>1</show_in_website>
793
+ <show_in_store>1</show_in_store>
794
+ </last_order_label>
795
+ <last_order_active>
796
+ <label>Add Last Order Column</label>
797
+ <comment>Enables or disables the column of last order.</comment>
798
+ <frontend_type>select</frontend_type>
799
+ <source_model>adminhtml/system_config_source_yesno</source_model>
800
+ <sort_order>130</sort_order>
801
+ <show_in_default>1</show_in_default>
802
+ <show_in_website>1</show_in_website>
803
+ <show_in_store>1</show_in_store>
804
+ </last_order_active>
805
+ <last_order_show_after>
806
+ <label>Show after column</label>
807
+ <comment>Show the new column after column selected.</comment>
808
+ <frontend_type>select</frontend_type>
809
+ <source_model>dexxtz_customgrid/system_config_source_customer_after</source_model>
810
+ <sort_order>140</sort_order>
811
+ <show_in_default>1</show_in_default>
812
+ <show_in_website>1</show_in_website>
813
+ <show_in_store>1</show_in_store>
814
+ <depends>
815
+ <last_order_active>1</last_order_active>
816
+ </depends>
817
+ </last_order_show_after>
818
+ <last_order_column_title>
819
+ <label>Column title</label>
820
+ <comment>Title that will appear in the column.</comment>
821
+ <frontend_type>text</frontend_type>
822
+ <sort_order>150</sort_order>
823
+ <show_in_default>1</show_in_default>
824
+ <show_in_website>1</show_in_website>
825
+ <show_in_store>1</show_in_store>
826
+ <depends>
827
+ <last_order_active>1</last_order_active>
828
+ </depends>
829
+ </last_order_column_title>
830
+ <last_order_title_align>
831
+ <label>Alignment of title</label>
832
+ <comment>Alignment of the column title.</comment>
833
+ <frontend_type>select</frontend_type>
834
+ <source_model>dexxtz_customgrid/system_config_source_title</source_model>
835
+ <sort_order>160</sort_order>
836
+ <show_in_default>1</show_in_default>
837
+ <show_in_website>1</show_in_website>
838
+ <show_in_store>1</show_in_store>
839
+ <depends>
840
+ <last_order_active>1</last_order_active>
841
+ </depends>
842
+ </last_order_title_align>
843
+ <last_order_content_align>
844
+ <label>Alignment of content</label>
845
+ <comment>Alignment of the contents of the column.</comment>
846
+ <frontend_type>select</frontend_type>
847
+ <source_model>dexxtz_customgrid/system_config_source_content</source_model>
848
+ <sort_order>170</sort_order>
849
+ <show_in_default>1</show_in_default>
850
+ <show_in_website>1</show_in_website>
851
+ <show_in_store>1</show_in_store>
852
+ <depends>
853
+ <last_order_active>1</last_order_active>
854
+ </depends>
855
+ </last_order_content_align>
856
+ <last_order_column_width>
857
+ <label>Column width</label>
858
+ <comment>Column length measured in pixel, Ex: 100px</comment>
859
+ <tooltip>The length works only if the minimum size of each column, has not yet been reached.</tooltip>
860
+ <frontend_type>text</frontend_type>
861
+ <sort_order>180</sort_order>
862
+ <show_in_default>1</show_in_default>
863
+ <show_in_website>1</show_in_website>
864
+ <show_in_store>1</show_in_store>
865
+ <depends>
866
+ <last_order_active>1</last_order_active>
867
+ </depends>
868
+ </last_order_column_width>
869
+ <taxvat_label>
870
+ <frontend_type>label</frontend_type>
871
+ <sort_order>185</sort_order>
872
+ <show_in_default>1</show_in_default>
873
+ <show_in_website>1</show_in_website>
874
+ <show_in_store>1</show_in_store>
875
+ </taxvat_label>
876
+ <taxvat_active>
877
+ <label>Add Taxvat Column</label>
878
+ <comment>Enables or disables the column of taxvat.</comment>
879
+ <frontend_type>select</frontend_type>
880
+ <source_model>adminhtml/system_config_source_yesno</source_model>
881
+ <sort_order>190</sort_order>
882
+ <show_in_default>1</show_in_default>
883
+ <show_in_website>1</show_in_website>
884
+ <show_in_store>1</show_in_store>
885
+ </taxvat_active>
886
+ <taxvat_show_after>
887
+ <label>Show after column</label>
888
+ <comment>Show the new column after column selected.</comment>
889
+ <frontend_type>select</frontend_type>
890
+ <source_model>dexxtz_customgrid/system_config_source_customer_after</source_model>
891
+ <sort_order>200</sort_order>
892
+ <show_in_default>1</show_in_default>
893
+ <show_in_website>1</show_in_website>
894
+ <show_in_store>1</show_in_store>
895
+ <depends>
896
+ <taxvat_active>1</taxvat_active>
897
+ </depends>
898
+ </taxvat_show_after>
899
+ <taxvat_column_title>
900
+ <label>Column title</label>
901
+ <comment>Title that will appear in the column.</comment>
902
+ <frontend_type>text</frontend_type>
903
+ <sort_order>210</sort_order>
904
+ <show_in_default>1</show_in_default>
905
+ <show_in_website>1</show_in_website>
906
+ <show_in_store>1</show_in_store>
907
+ <depends>
908
+ <taxvat_active>1</taxvat_active>
909
+ </depends>
910
+ </taxvat_column_title>
911
+ <taxvat_title_align>
912
+ <label>Alignment of title</label>
913
+ <comment>Alignment of the column title.</comment>
914
+ <frontend_type>select</frontend_type>
915
+ <source_model>dexxtz_customgrid/system_config_source_title</source_model>
916
+ <sort_order>220</sort_order>
917
+ <show_in_default>1</show_in_default>
918
+ <show_in_website>1</show_in_website>
919
+ <show_in_store>1</show_in_store>
920
+ <depends>
921
+ <taxvat_active>1</taxvat_active>
922
+ </depends>
923
+ </taxvat_title_align>
924
+ <taxvat_content_align>
925
+ <label>Alignment of content</label>
926
+ <comment>Alignment of the contents of the column.</comment>
927
+ <frontend_type>select</frontend_type>
928
+ <source_model>dexxtz_customgrid/system_config_source_content</source_model>
929
+ <sort_order>230</sort_order>
930
+ <show_in_default>1</show_in_default>
931
+ <show_in_website>1</show_in_website>
932
+ <show_in_store>1</show_in_store>
933
+ <depends>
934
+ <taxvat_active>1</taxvat_active>
935
+ </depends>
936
+ </taxvat_content_align>
937
+ <taxvat_column_width>
938
+ <label>Column width</label>
939
+ <comment>Column length measured in pixel, Ex: 100px</comment>
940
+ <tooltip>The length works only if the minimum size of each column, has not yet been reached.</tooltip>
941
+ <frontend_type>text</frontend_type>
942
+ <sort_order>240</sort_order>
943
+ <show_in_default>1</show_in_default>
944
+ <show_in_website>1</show_in_website>
945
+ <show_in_store>1</show_in_store>
946
+ <depends>
947
+ <taxvat_active>1</taxvat_active>
948
+ </depends>
949
+ </taxvat_column_width>
950
+ <gender_label>
951
+ <frontend_type>label</frontend_type>
952
+ <sort_order>245</sort_order>
953
+ <show_in_default>1</show_in_default>
954
+ <show_in_website>1</show_in_website>
955
+ <show_in_store>1</show_in_store>
956
+ </gender_label>
957
+ <gender_active>
958
+ <label>Add Gender Column</label>
959
+ <comment>Enables or disables the column of gender.</comment>
960
+ <frontend_type>select</frontend_type>
961
+ <source_model>adminhtml/system_config_source_yesno</source_model>
962
+ <sort_order>250</sort_order>
963
+ <show_in_default>1</show_in_default>
964
+ <show_in_website>1</show_in_website>
965
+ <show_in_store>1</show_in_store>
966
+ </gender_active>
967
+ <gender_show_after>
968
+ <label>Show after column</label>
969
+ <comment>Show the new column after column selected.</comment>
970
+ <frontend_type>select</frontend_type>
971
+ <source_model>dexxtz_customgrid/system_config_source_customer_after</source_model>
972
+ <sort_order>260</sort_order>
973
+ <show_in_default>1</show_in_default>
974
+ <show_in_website>1</show_in_website>
975
+ <show_in_store>1</show_in_store>
976
+ <depends>
977
+ <gender_active>1</gender_active>
978
+ </depends>
979
+ </gender_show_after>
980
+ <gender_column_title>
981
+ <label>Column title</label>
982
+ <comment>Title that will appear in the column.</comment>
983
+ <frontend_type>text</frontend_type>
984
+ <sort_order>270</sort_order>
985
+ <show_in_default>1</show_in_default>
986
+ <show_in_website>1</show_in_website>
987
+ <show_in_store>1</show_in_store>
988
+ <depends>
989
+ <gender_active>1</gender_active>
990
+ </depends>
991
+ </gender_column_title>
992
+ <gender_title_align>
993
+ <label>Alignment of title</label>
994
+ <comment>Alignment of the column title.</comment>
995
+ <frontend_type>select</frontend_type>
996
+ <source_model>dexxtz_customgrid/system_config_source_title</source_model>
997
+ <sort_order>280</sort_order>
998
+ <show_in_default>1</show_in_default>
999
+ <show_in_website>1</show_in_website>
1000
+ <show_in_store>1</show_in_store>
1001
+ <depends>
1002
+ <gender_active>1</gender_active>
1003
+ </depends>
1004
+ </gender_title_align>
1005
+ <gender_content_align>
1006
+ <label>Alignment of content</label>
1007
+ <comment>Alignment of the contents of the column.</comment>
1008
+ <frontend_type>select</frontend_type>
1009
+ <source_model>dexxtz_customgrid/system_config_source_content</source_model>
1010
+ <sort_order>290</sort_order>
1011
+ <show_in_default>1</show_in_default>
1012
+ <show_in_website>1</show_in_website>
1013
+ <show_in_store>1</show_in_store>
1014
+ <depends>
1015
+ <gender_active>1</gender_active>
1016
+ </depends>
1017
+ </gender_content_align>
1018
+ <gender_column_width>
1019
+ <label>Column width</label>
1020
+ <comment>Column length measured in pixel, Ex: 100px</comment>
1021
+ <tooltip>The length works only if the minimum size of each column, has not yet been reached.</tooltip>
1022
+ <frontend_type>text</frontend_type>
1023
+ <sort_order>300</sort_order>
1024
+ <show_in_default>1</show_in_default>
1025
+ <show_in_website>1</show_in_website>
1026
+ <show_in_store>1</show_in_store>
1027
+ <depends>
1028
+ <gender_active>1</gender_active>
1029
+ </depends>
1030
+ </gender_column_width>
1031
+ </fields>
1032
+ </customer>
1033
+ </groups>
1034
+ </dexxtz_customgrid>
1035
+ </sections>
1036
+ </config>
app/design/adminhtml/default/default/layout/dexxtz/customgrid.xml ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+ -->
11
+ <layout>
12
+ <sales_order_grid_update_handle translate="label" module="dexxtz_customgrid">
13
+ <reference name="sales_order.grid">
14
+ <action method="addColumnAfter" ifconfig="dexxtz_customgrid/sales_order/payment_active">
15
+ <columnId>payment_method</columnId>
16
+ <arguments helper="customgrid/getSalesOrderPaymentColumnParams" />
17
+ <after helper="customgrid/getSalesOrderPaymentAfter" />
18
+ </action>
19
+ <action method="addColumnAfter" ifconfig="dexxtz_customgrid/sales_order/shipping_active">
20
+ <columnId>shipping_description</columnId>
21
+ <arguments helper="customgrid/getSalesOrderShippingColumnParams" />
22
+ <after helper="customgrid/getSalesOrderShippingAfter" />
23
+ </action>
24
+ <action method="addColumnAfter" ifconfig="dexxtz_customgrid/sales_order/customer_email_active">
25
+ <columnId>customer_email</columnId>
26
+ <arguments helper="customgrid/getSalesOrderCustomerEmailColumnParams" />
27
+ <after helper="customgrid/getSalesOrderCustomerEmailAfter" />
28
+ </action>
29
+ </reference>
30
+ </sales_order_grid_update_handle>
31
+
32
+ <adminhtml_sales_order_grid>
33
+ <update handle="sales_order_grid_update_handle" />
34
+ </adminhtml_sales_order_grid>
35
+
36
+ <adminhtml_sales_order_index>
37
+ <update handle="sales_order_grid_update_handle" />
38
+ </adminhtml_sales_order_index>
39
+ </layout>
app/etc/modules/Dexxtz_Customgrid.xml ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Copyright [2014] [Dexxtz]
5
+ *
6
+ * @package Dexxtz_Customgrid
7
+ * @author Dexxtz
8
+ * @license http://www.apache.org/licenses/LICENSE-2.0
9
+ */
10
+ -->
11
+ <config>
12
+ <modules>
13
+ <Dexxtz_Customgrid>
14
+ <active>true</active>
15
+ <codePool>community</codePool>
16
+ </Dexxtz_Customgrid>
17
+ </modules>
18
+ </config>
app/locale/en_US/Dexxtz_Customgrid.csv ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "Custom Grid","Custom Grid"
2
+ "When you export records from the grid option, ideally disable the additional fields, like this export the records correctly.","When you export records from the grid option, ideally disable the additional fields, like this export the records correctly."
3
+ "Settings Sales Orders Grid","Settings Sales Orders Grid"
4
+ "Payment Method","Payment Method"
5
+ "Add Payment Column","Add Payment Column"
6
+ "Yes","Yes"
7
+ "No","No"
8
+ "Enables or disables the column of payment.","Enables or disables the column of payment."
9
+ "Show after column","Show after column"
10
+ "Show the new column after column selected.","Show the new column after column selected."
11
+ "Column title","Column title"
12
+ "Title that will appear in the column.","Title that will appear in the column."
13
+ "Alignment of title","Alignment of title"
14
+ "Left","Left"
15
+ "Center","Center"
16
+ "Right","Right"
17
+ "Alignment of the column title.","Alignment of the column title."
18
+ "Alignment of content","Alignment of content"
19
+ "Alignment of the contents of the column.","Alignment of the contents of the column."
20
+ "Column width","Column width"
21
+ "Column length measured in pixel, Ex: 100px","Column length measured in pixel, Ex: 100px"
22
+ "The length works only if the minimum size of each column, has not yet been reached.","The length works only if the minimum size of each column, has not yet been reached."
23
+ "Shipping Method","Shipping Method"
24
+ "Add Shipping Column","Add Shipping Column"
25
+ "Enables or disables the column of shipping.","Enables or disables the column of shipping."
26
+ "Customer E-mail","Customer E-mail"
27
+ "Add Customer E-mail Column","Add Customer E-mail Column"
28
+ "Enables or disables the column of e-mail.","Enables or disables the column of e-mail."
29
+ "Settings Catalog Product Grid","Settings Catalog Product Grid"
30
+ "Weight","Weight"
31
+ "Add Weight Column","Add Weight Column"
32
+ "Enables or disables the column of weight.","Enables or disables the column of weight."
33
+ "New Until","New Until"
34
+ "Add New Until Column","Add New Until Column"
35
+ "Enables or disables the column of new until.","Enables or disables the column of new until."
36
+ "Image","Image"
37
+ "Add Image Column","Add Image Column"
38
+ "Enables or disables the column of image.","Enables or disables the column of image."
39
+ "Categories","Categories"
40
+ "Add Categories Column","Add Categories Column"
41
+ "Enables or disables the column of categories.","Enables or disables the column of categories."
42
+ "Settings Customer Grid","Settings Customer Grid"
43
+ "Date of Birth","Date of Birth"
44
+ "Add Date of Birth Column","Add Date of Birth Column"
45
+ "Enables or disables the column of date of birth.","Enables or disables the column of date of birth."
46
+ "Last Login","Last Login"
47
+ "Add Last Login Column","Add Last Login Column"
48
+ "Enables or disables the column of last login.","Enables or disables the column of last login."
49
+ "Last Order","Last Order"
50
+ "Add Last Order Column","Add Last Order Column"
51
+ "Enables or disables the column of last order.","Enables or disables the column of last order."
52
+ "Taxvat","Taxvat"
53
+ "Add Taxvat Column","Add Taxvat Column"
54
+ "Enables or disables the column of taxvat.","Enables or disables the column of taxvat."
55
+ "Gender","Gender"
56
+ "Add Gender Column","Add Gender Column"
57
+ "Enables or disables the column of gender.","Enables or disables the column of gender."
app/locale/pt_BR/Dexxtz_Customgrid.csv ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "Custom Grid","Grade Personalizada"
2
+ "When you export records from the grid option, ideally disable the additional fields, like this export the records correctly.","Quando for exportar os registros pela grade de registros, o ideal é desativar os campos adicionais, para exportar os registros corretamente."
3
+ "Settings Sales Orders Grid","Configuração da Grade de Pedidos"
4
+ "Payment Method","Método de Pagamento"
5
+ "Add Payment Column","Adicionar coluna de Pagamento"
6
+ "Yes","Sim"
7
+ "No","Não"
8
+ "Enables or disables the column of payment.","Ativa ou desativa a coluna de pagamento."
9
+ "Show after column","Exibir após coluna de"
10
+ "Show the new column after column selected.","Exibe a nova coluna após coluna selecionada."
11
+ "Column title","Título da coluna"
12
+ "Title that will appear in the column.","Título que será exibido na coluna."
13
+ "Alignment of title","Alinhamento do título da coluna"
14
+ "Left","Esquerda"
15
+ "Center","Centralizado"
16
+ "Right","Direita"
17
+ "Alignment of the column title.","Posição do título na coluna."
18
+ "Alignment of content","Alinhamento do conteúdo"
19
+ "Alignment of the contents of the column.","Posição do conteúdo na coluna."
20
+ "Column width","Comprimento da coluna"
21
+ "Column length measured in pixel, Ex: 100px","Comprimento da coluna medido em pixéis, Ex: 100px"
22
+ "The length works only if the minimum size of each column, has not yet been reached.","Personalização do comprimento, funciona somente se o comprimento mínimo de cada coluna, ainda não foi atingido."
23
+ "Shipping Method","Método de Entrega"
24
+ "Add Shipping Column","Adicionar coluna de Entrega"
25
+ "Enables or disables the column of shipping.","Ativa ou desativa a coluna de entrega."
26
+ "Customer E-mail","E-mail de Cliente"
27
+ "Add Customer E-mail Column","Adicionar coluna de E-mail"
28
+ "Enables or disables the column of e-mail.","Ativa ou desativa a coluna de e-mail do cliente."
29
+ "Settings Catalog Product Grid","Configuração da Grade de Produtos"
30
+ "Weight","Peso"
31
+ "Add Weight Column","Adicionar coluna de Peso"
32
+ "Enables or disables the column of weight.","Ativa ou desativa a coluna de peso."
33
+ "New Until","Novo até"
34
+ "Add New Until Column","Adicionar coluna de novo até"
35
+ "Enables or disables the column of new until.","Ativa ou desativa a coluna de novo até."
36
+ "Image","Imagem"
37
+ "Add Image Column","Adicionar coluna de Imagem"
38
+ "Enables or disables the column of image.","Ativa ou desativa a coluna de imagem."
39
+ "Categories","Categorias"
40
+ "Add Categories Column","Adionar coluna de Categorias"
41
+ "Enables or disables the column of categories.","Ativa ou desativa a coluna de categorias."
42
+ "Settings Customer Grid","Configuração da Grade de Clientes"
43
+ "Date of Birth","Data de Nascimento"
44
+ "Add Date of Birth Column","Adicionar Data de Nascimento"
45
+ "Enables or disables the column of date of birth.","Ativa ou desativa a coluna de data de nascimento."
46
+ "Last Login","Último Acesso"
47
+ "Add Last Login Column","Adicionar Último Acesso"
48
+ "Enables or disables the column of last login.","Ativa ou desativa a coluna de último acesso."
49
+ "Last Order","Último Pedido"
50
+ "Add Last Order Column","Adicionar Último Pedido"
51
+ "Enables or disables the column of last order.","Ativa ou desativa a coluna de último pedido."
52
+ "Taxvat","CPF/CNPJ"
53
+ "Add Taxvat Column","Adicionar coluna de CPF/CNPJ"
54
+ "Enables or disables the column of taxvat.","Ativa ou desativa a coluna de cpf/cnpj."
55
+ "Gender","Sexo"
56
+ "Add Gender Column","Adicionar coluna de Sexo"
57
+ "Enables or disables the column of gender.","Ativa ou desativa a coluna de sexo."
58
+ "Male","Masculino"
59
+ "Female","Feminino"
package.xml ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>Dexxtz_Custom_Grid</name>
4
+ <version>1.0.0</version>
5
+ <stability>stable</stability>
6
+ <license uri="http://opensource.org/licenses/apachepl.php">Apache Software License</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>Custom fields in grid</summary>
10
+ <description>Get up to 12 new custom fields</description>
11
+ <notes>Started</notes>
12
+ <authors><author><name>D&#xE9;cio Mattos</name><user>auto-converted</user><email>dexxtz@gmail.com</email></author></authors>
13
+ <date>2014-11-21</date>
14
+ <time>22:25:48</time>
15
+ <contents><target name="magecommunity"><dir name="Dexxtz"><dir name="Customgrid"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><file name="Grid.php" hash="05fc3b3d74a43b4b796418ce9556b1e0"/></dir></dir><dir name="Customer"><file name="Grid.php" hash="ff7c8308534e4fb4924e8aad524d57fa"/></dir><dir name="Template"><dir name="Grid"><dir name="Renderer"><file name="Category.php" hash="b16128d749bbbffa674349923d53bedb"/><file name="Image.php" hash="daeb1e25096fea36ad430fdf19e233e7"/></dir></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="c329cda88c920a3eb36ef9fe2d33787f"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="Comment"><dir name="Sales"><dir name="Order"><file name="Payment.php" hash="0550cbbb3847b6ddc861dc9c916baa36"/></dir></dir></dir></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Catalog"><dir name="Product"><file name="After.php" hash="b83bd51ef9026220d1dcab24c0c5a591"/></dir></dir><dir name="Customer"><file name="After.php" hash="313b036f1253abb5f9f8b01d0f49adde"/></dir><dir name="Sales"><dir name="Order"><file name="After.php" hash="dc62dadb36911ff056ecbdf934db585a"/></dir></dir><file name="Content.php" hash="5a088080c2037b0b02c3fa050ed86e03"/><file name="Title.php" hash="d4c92169c59d0c55633d649fcd4427ad"/></dir></dir></dir><file name="Observer.php" hash="f434adbec1abe659e122daac09e95f09"/></dir><dir name="etc"><file name="config.xml" hash="126a0bc87505948487bf45994bfeb892"/><file name="system.xml" hash="cb0b9331684b17a92438c1754676ccdc"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Dexxtz_Customgrid.xml" hash="7f420a3835552b7e035cbaaa54b11b03"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="dexxtz"><file name="customgrid.xml" hash="a6dafe8dd524fbd02802a83b7bfc78e2"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="pt_BR"><file name="Dexxtz_Customgrid.csv" hash="f6f18aeca4d9490b95a37381ac50269a"/></dir><dir name="en_US"><file name="Dexxtz_Customgrid.csv" hash="42f66c65379c9066987b1106dc56a91c"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="dexxtz"><dir name="customgrid"><dir name="js"><file name="jquery-2.1.1.js" hash="9a094379d98c6458d480ad5a51c4aa27"/></dir></dir></dir></dir></dir></dir></target></contents>
16
+ <compatible/>
17
+ <dependencies/>
18
+ </package>
skin/adminhtml/default/default/dexxtz/customgrid/js/jquery-2.1.1.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ /*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
2
+ !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)
3
+ },_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},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(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ab=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ib={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qb[0].contentDocument,b.write(),b.close(),c=sb(a,b),qb.detach()),rb[a]=c),c}var ub=/^margin/,vb=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)};function xb(a,b,c){var d,e,f,g,h=a.style;return c=c||wb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),vb.test(g)&&ub.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function yb(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var zb=/^(none|table(?!-c[ea]).+)/,Ab=new RegExp("^("+Q+")(.*)$","i"),Bb=new RegExp("^([+-])=("+Q+")","i"),Cb={position:"absolute",visibility:"hidden",display:"block"},Db={letterSpacing:"0",fontWeight:"400"},Eb=["Webkit","O","Moz","ms"];function Fb(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Eb.length;while(e--)if(b=Eb[e]+c,b in a)return b;return d}function Gb(a,b,c){var d=Ab.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Hb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ib(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wb(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xb(a,b,f),(0>e||null==e)&&(e=a.style[b]),vb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Hb(a,b,c||(g?"border":"content"),d,f)+"px"}function Jb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",tb(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Bb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xb(a,b,d)),"normal"===e&&b in Db&&(e=Db[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?zb.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Cb,function(){return Ib(a,b,d)}):Ib(a,b,d):void 0},set:function(a,c,d){var e=d&&wb(a);return Gb(a,c,d?Hb(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=yb(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xb,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ub.test(a)||(n.cssHooks[a+b].set=Gb)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wb(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Jb(this,!0)},hide:function(){return Jb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Kb(a,b,c,d,e){return new Kb.prototype.init(a,b,c,d,e)}n.Tween=Kb,Kb.prototype={constructor:Kb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Kb.propHooks[this.prop];return a&&a.get?a.get(this):Kb.propHooks._default.get(this)},run:function(a){var b,c=Kb.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Kb.propHooks._default.set(this),this}},Kb.prototype.init.prototype=Kb.prototype,Kb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Kb.propHooks.scrollTop=Kb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Kb.prototype.init,n.fx.step={};var Lb,Mb,Nb=/^(?:toggle|show|hide)$/,Ob=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pb=/queueHooks$/,Qb=[Vb],Rb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Ob.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Ob.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sb(){return setTimeout(function(){Lb=void 0}),Lb=n.now()}function Tb(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ub(a,b,c){for(var d,e=(Rb[b]||[]).concat(Rb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Vb(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||tb(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Nb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?tb(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ub(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xb(a,b,c){var d,e,f=0,g=Qb.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Lb||Sb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Lb||Sb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wb(k,j.opts.specialEasing);g>f;f++)if(d=Qb[f].call(j,a,k,j.opts))return d;return n.map(k,Ub,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xb,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Rb[c]=Rb[c]||[],Rb[c].unshift(b)},prefilter:function(a,b){b?Qb.unshift(a):Qb.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xb(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Tb(b,!0),a,d,e)}}),n.each({slideDown:Tb("show"),slideUp:Tb("hide"),slideToggle:Tb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(Lb=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),Lb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Mb||(Mb=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Mb),Mb=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Yb,Zb,$b=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Zb:Yb)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))
4
+ },removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Zb={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$b[b]||n.find.attr;$b[b]=function(a,b,d){var e,f;return d||(f=$b[b],$b[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$b[b]=f),e}});var _b=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_b.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ac=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ac," ").indexOf(b)>=0)return!0;return!1}});var bc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.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(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cc=n.now(),dc=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var ec,fc,gc=/#.*$/,hc=/([?&])_=[^&]*/,ic=/^(.*?):[ \t]*([^\r\n]*)$/gm,jc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,kc=/^(?:GET|HEAD)$/,lc=/^\/\//,mc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,nc={},oc={},pc="*/".concat("*");try{fc=location.href}catch(qc){fc=l.createElement("a"),fc.href="",fc=fc.href}ec=mc.exec(fc.toLowerCase())||[];function rc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function sc(a,b,c,d){var e={},f=a===oc;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function tc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function uc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function vc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:fc,type:"GET",isLocal:jc.test(ec[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":pc,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":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?tc(tc(a,n.ajaxSettings),b):tc(n.ajaxSettings,a)},ajaxPrefilter:rc(nc),ajaxTransport:rc(oc),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=ic.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||fc)+"").replace(gc,"").replace(lc,ec[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=mc.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===ec[1]&&h[2]===ec[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(ec[3]||("http:"===ec[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),sc(nc,k,b,v),2===t)return v;i=k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!kc.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(dc.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=hc.test(d)?d.replace(hc,"$1_="+cc++):d+(dc.test(d)?"&":"?")+"_="+cc++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+pc+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=sc(oc,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=uc(k,v,f)),u=vc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var wc=/%20/g,xc=/\[\]$/,yc=/\r?\n/g,zc=/^(?:submit|button|image|reset|file)$/i,Ac=/^(?:input|select|textarea|keygen)/i;function Bc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||xc.test(a)?d(a,e):Bc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Bc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Bc(c,a[c],b,e);return d.join("&").replace(wc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Ac.test(this.nodeName)&&!zc.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(yc,"\r\n")}}):{name:b.name,value:c.replace(yc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cc=0,Dc={},Ec={0:200,1223:204},Fc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Dc)Dc[a]()}),k.cors=!!Fc&&"withCredentials"in Fc,k.ajax=Fc=!!Fc,n.ajaxTransport(function(a){var b;return k.cors||Fc&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Dc[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Ec[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Dc[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Gc=[],Hc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Gc.pop()||n.expando+"_"+cc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Hc.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Hc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Hc,"$1"+e):b.jsonp!==!1&&(b.url+=(dc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Gc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Ic=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Ic)return Ic.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Jc=a.document.documentElement;function Kc(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Kc(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Jc;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Jc})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Kc(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=yb(k.pixelPosition,function(a,c){return c?(c=xb(a,b),vb.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Lc=a.jQuery,Mc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Mc),b&&a.jQuery===n&&(a.jQuery=Lc),n},typeof b===U&&(a.jQuery=a.$=n),n});