zinc - Version 1.0.7

Version Notes

Fix Configurable product issues and fixed minor bugs

Download this release

Release Info

Developer ZincPlatform
Extension zinc
Version 1.0.7
Comparing to
See all releases


Code changes from version 1.0.4 to 1.0.7

Files changed (65) hide show
  1. app/code/local/Zinc/Carebyzinc/Block/Adminhtml/Catalog/Product/Renderer/Category.php +57 -8
  2. app/code/local/Zinc/Carebyzinc/Block/Adminhtml/Catalog/Product/Renderer/Manufacturer.php +31 -0
  3. app/code/local/Zinc/Carebyzinc/Block/Adminhtml/Catalog/Product/Renderer/Model.php +32 -0
  4. app/code/local/Zinc/Carebyzinc/Block/Adminhtml/Catalog/Product/Renderer/Subcategory.php +31 -0
  5. app/code/local/Zinc/Carebyzinc/Block/Adminhtml/Product/Edit/Tab/Form.php +29 -3
  6. app/code/local/Zinc/Carebyzinc/Block/Adminhtml/Product/Grid.php +1 -1
  7. app/code/local/Zinc/Carebyzinc/Helper/Data.php +0 -6
  8. app/code/local/Zinc/Carebyzinc/Model/Carebyzinc.php +72 -64
  9. app/code/local/Zinc/Carebyzinc/Model/Checkout/Cart.php +61 -54
  10. app/code/local/Zinc/Carebyzinc/Model/Checkout/Multishipping.php +190 -0
  11. app/code/local/Zinc/Carebyzinc/Model/Entity/Subcategory.php +5 -3
  12. app/code/local/Zinc/Carebyzinc/Model/Observer.php +99 -11
  13. app/code/local/Zinc/Carebyzinc/Model/Order.php +16 -14
  14. app/code/local/Zinc/Carebyzinc/controllers/Adminhtml/CarebyzincController.php +8 -9
  15. app/code/local/Zinc/Carebyzinc/controllers/Adminhtml/ProductController.php +118 -71
  16. app/code/local/Zinc/Carebyzinc/controllers/Adminhtml/Sales/Order/CreditmemoController.php +52 -0
  17. app/code/local/Zinc/Carebyzinc/controllers/CartController.php +159 -86
  18. app/code/local/Zinc/Carebyzinc/controllers/IndexController.php +46 -63
  19. app/code/local/Zinc/Carebyzinc/controllers/Sales/OrderController.php +53 -0
  20. app/code/local/Zinc/Carebyzinc/etc/config.xml +79 -25
  21. app/code/local/Zinc/Carebyzinc/etc/system.xml +11 -26
  22. app/code/local/Zinc/Carebyzinc/sql/carebyzinc_setup/mysql4-upgrade-1.0.4-1.0.5.php +23 -0
  23. app/code/local/Zinc/Carebyzinc/sql/carebyzinc_setup/mysql4-upgrade-1.0.5-1.0.6.php +23 -0
  24. app/code/local/Zinc/Carebyzinc/sql/carebyzinc_setup/mysql4-upgrade-1.0.6-1.0.7.php +104 -0
  25. app/design/adminhtml/default/default/layout/zinc_carebyzinc.xml +29 -23
  26. app/design/adminhtml/default/default/template/carebyzinc/carebyzinc_massaction.phtml +113 -0
  27. app/design/adminhtml/default/default/template/carebyzinc/order/creditmemo/create/items/renderer/default.phtml +3 -4
  28. app/design/adminhtml/default/default/template/carebyzinc/order/creditmemo/view/items/renderer/default.phtml +3 -4
  29. app/design/adminhtml/default/default/template/carebyzinc/order/invoice/create/items/renderer/default.phtml +3 -4
  30. app/design/adminhtml/default/default/template/carebyzinc/order/invoice/view/items/renderer/default.phtml +3 -4
  31. app/design/adminhtml/default/default/template/carebyzinc/order/shipment/create/items/renderer/default.phtml +3 -3
  32. app/design/adminhtml/default/default/template/carebyzinc/order/shipment/view/items/renderer/default.phtml +3 -3
  33. app/design/adminhtml/default/default/template/carebyzinc/order/view/items/renderer/default.phtml +1 -2
  34. app/design/frontend/base/default/layout/zinc_carebyzinc.xml +36 -50
  35. app/design/frontend/base/default/template/carebyzinc/carebyzinc.phtml +17 -4
  36. app/design/frontend/base/default/template/carebyzinc/checkout/cart.phtml +26 -6
  37. app/design/frontend/base/default/template/carebyzinc/checkout/cart/item/default.phtml +119 -131
  38. app/design/frontend/base/default/template/carebyzinc/checkout/cart/minicart/default.phtml +13 -6
  39. app/design/frontend/base/default/template/carebyzinc/checkout/multishipping/item/default.phtml +12 -2
  40. app/design/frontend/base/default/template/carebyzinc/checkout/onepage/review/info.phtml +97 -0
  41. app/design/frontend/base/default/template/carebyzinc/checkout/onepage/review/item.phtml +12 -4
  42. app/design/frontend/base/default/template/carebyzinc/email/order/items/creditmemo/default.phtml +2 -4
  43. app/design/frontend/base/default/template/carebyzinc/email/order/items/invoice/default.phtml +2 -4
  44. app/design/frontend/base/default/template/carebyzinc/email/order/items/order/default.phtml +2 -4
  45. app/design/frontend/base/default/template/carebyzinc/email/order/items/shipment/default.phtml +2 -4
  46. app/design/frontend/base/default/template/carebyzinc/options/cart.phtml +15 -4
  47. app/design/frontend/base/default/template/carebyzinc/options/default.phtml +22 -13
  48. app/design/frontend/base/default/template/carebyzinc/sales/order/creditmemo/items/renderer/default.phtml +2 -4
  49. app/design/frontend/base/default/template/carebyzinc/sales/order/invoice/items/renderer/default.phtml +2 -4
  50. app/design/frontend/base/default/template/carebyzinc/sales/order/items/renderer/default.phtml +2 -4
  51. app/design/frontend/base/default/template/carebyzinc/sales/order/shipment/items/renderer/default.phtml +0 -79
  52. js/carebyzinc/jquery.min.js +4 -0
  53. js/carebyzinc/noConflict.js +1 -0
  54. media/catalog/product/zinc/warranty.png +0 -0
  55. package.xml +9 -11
  56. skin/frontend/base/default/carebyzinc/css/carebyzinc.css +19 -11
  57. skin/frontend/rwd/default/carebyzinc/css/carebyzinc.css +109 -0
  58. skin/frontend/rwd/default/carebyzinc/css/colorbox.css +71 -0
  59. skin/frontend/rwd/default/carebyzinc/css/images/border.png +0 -0
  60. skin/frontend/rwd/default/carebyzinc/css/images/cancel.png +0 -0
  61. skin/frontend/rwd/default/carebyzinc/css/images/care-preloader.gif +0 -0
  62. skin/frontend/rwd/default/carebyzinc/css/images/controls.png +0 -0
  63. skin/frontend/rwd/default/carebyzinc/css/images/loading.gif +0 -0
  64. skin/frontend/rwd/default/carebyzinc/css/images/loading_background.png +0 -0
  65. skin/frontend/rwd/default/carebyzinc/css/images/overlay.png +0 -0
app/code/local/Zinc/Carebyzinc/Block/Adminhtml/Catalog/Product/Renderer/Category.php CHANGED
@@ -13,7 +13,36 @@ class Zinc_Carebyzinc_Block_Adminhtml_Catalog_Product_Renderer_Category extends
13
  $html = parent::getAfterElementHtml();
14
 
15
  return $html."<script>
16
- document.getElementById('carebyzinc_category').onchange = function() {getSubcategories(this.value)};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
  function getSubcategories(selectElement){
19
  var reloadurl = '". Mage::getUrl('adminhtml/product/getSubcategories')."';
@@ -21,18 +50,38 @@ class Zinc_Carebyzinc_Block_Adminhtml_Catalog_Product_Renderer_Category extends
21
  new Ajax.Request(reloadurl, {parameters: { cat: selectElement},
22
  method: 'post',
23
  onComplete: function(transport) {
24
- var content = JSON.parse(transport.responseText);
25
- var i = 0;
26
- for (var key in content) {
27
- document.getElementById('carebyzinc_subcategory').options[i] = new Option(content[key],content[key]);
28
- i++;
29
- }
 
30
 
31
  }
32
  });
33
  }else
34
  document.getElementById('carebyzinc_subcategory').innerHTML='';
35
- }</script>";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  }
38
  }
13
  $html = parent::getAfterElementHtml();
14
 
15
  return $html."<script>
16
+
17
+ if(document.getElementById('carebyzinc').value != 1){
18
+ $('carebyzinc_category').hide();
19
+ jQuery('label[for=carebyzinc_category], input#carebyzinc_category').hide();
20
+
21
+ }else{
22
+ $('carebyzinc_category').show();
23
+ document.getElementById('carebyzinc_category').className += ' required-entry';
24
+ }
25
+ document.getElementById('carebyzinc_category').onchange = function() {
26
+ getSubcategories(this.value)
27
+ var category = this.value.toLowerCase();
28
+ var subarray = ['bicycle','electronics'];
29
+ if(subarray.indexOf(category) >= 0){
30
+ $('carebyzinc_manufacturer').show();
31
+ jQuery('label[for=carebyzinc_manufacturer], input#carebyzinc_manufacturer').show();
32
+ $('carebyzinc_model').show();
33
+ jQuery('label[for=carebyzinc_model], input#carebyzinc_model').show();
34
+ document.getElementById('carebyzinc_manufacturer').className += ' required-entry validate-length maximum-length-30 minimum-length-1';
35
+ document.getElementById('carebyzinc_model').className += ' required-entry validate-length maximum-length-30 minimum-length-1';
36
+ }else{
37
+ $('carebyzinc_manufacturer').hide();
38
+ jQuery('label[for=carebyzinc_manufacturer], input#carebyzinc_manufacturer').hide();
39
+ $('carebyzinc_model').hide();
40
+ jQuery('label[for=carebyzinc_model], input#carebyzinc_model').hide();
41
+
42
+ }
43
+
44
+
45
+ };
46
 
47
  function getSubcategories(selectElement){
48
  var reloadurl = '". Mage::getUrl('adminhtml/product/getSubcategories')."';
50
  new Ajax.Request(reloadurl, {parameters: { cat: selectElement},
51
  method: 'post',
52
  onComplete: function(transport) {
53
+ var content = JSON.parse(transport.responseText);
54
+ var i = 0;
55
+ document.getElementById('carebyzinc_subcategory').options.length = 0;
56
+ for (var key in content) {
57
+ document.getElementById('carebyzinc_subcategory').options[i] = new Option(content[key],key);
58
+ i++;
59
+ }
60
 
61
  }
62
  });
63
  }else
64
  document.getElementById('carebyzinc_subcategory').innerHTML='';
65
+ }
66
+ document.getElementById('carebyzinc').onchange = function() {
67
+ if(this.value == 1){
68
+ $('carebyzinc_category').show();
69
+ $('carebyzinc_subcategory').show();
70
+ jQuery('label[for=carebyzinc_category], input#carebyzinc_category').show();
71
+ jQuery('label[for=carebyzinc_subcategory], input#carebyzinc_subcategory').show();
72
+ document.getElementById('carebyzinc_category').className += ' required-entry';
73
+ document.getElementById('carebyzinc_subcategory').className += ' required-entry';
74
+
75
+ }else{
76
+ $('carebyzinc_category').hide();
77
+ $('carebyzinc_subcategory').hide();
78
+ jQuery('label[for=carebyzinc_category], input#carebyzinc_category').hide();
79
+ jQuery('label[for=carebyzinc_subcategory], input#carebyzinc_subcategory').hide();
80
+ }
81
+ };
82
+
83
+
84
+ </script>";
85
 
86
  }
87
  }
app/code/local/Zinc/Carebyzinc/Block/Adminhtml/Catalog/Product/Renderer/Manufacturer.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * ZincPlatform
4
+ * @package Zinc_Carebyzinc
5
+ * @copyright Copyright (c) 2016-2017 Zinplatform (http://www.zincplatform.com/)
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
+
9
+ class Zinc_Carebyzinc_Block_Adminhtml_Catalog_Product_Renderer_Manufacturer extends Varien_Data_Form_Element_Text
10
+ {
11
+ public function getAfterElementHtml()
12
+ {
13
+ $html = parent::getAfterElementHtml();
14
+
15
+ return $html."<script>
16
+ var category = document.getElementById('carebyzinc_category').value.toLowerCase();
17
+ var subarray = ['bicycle','electronics'];
18
+ if((document.getElementById('carebyzinc').value == 1) && (subarray.indexOf(category) >= 0)){
19
+ $('carebyzinc_manufacturer').show();
20
+ jQuery('label[for=carebyzinc_manufacturer], input#carebyzinc_manufacturer').show();
21
+ document.getElementById('carebyzinc_manufacturer').className += ' required-entry validate-length maximum-length-30 minimum-length-1';
22
+
23
+ }else{
24
+ $('carebyzinc_manufacturer').hide();
25
+ jQuery('label[for=carebyzinc_manufacturer], input#carebyzinc_manufacturer').hide();
26
+ }
27
+
28
+ </script>";
29
+
30
+ }
31
+ }
app/code/local/Zinc/Carebyzinc/Block/Adminhtml/Catalog/Product/Renderer/Model.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * ZincPlatform
4
+ * @package Zinc_Carebyzinc
5
+ * @copyright Copyright (c) 2016-2017 Zinplatform (http://www.zincplatform.com/)
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
+
9
+ class Zinc_Carebyzinc_Block_Adminhtml_Catalog_Product_Renderer_Model extends Varien_Data_Form_Element_Text
10
+ {
11
+ public function getAfterElementHtml()
12
+ {
13
+ $html = parent::getAfterElementHtml();
14
+
15
+ return $html."<script>
16
+
17
+ if((document.getElementById('carebyzinc').value == 1) && (subarray.indexOf(category) >= 0)){
18
+ var category = document.getElementById('carebyzinc_category').value.toLowerCase();
19
+ var subarray = ['bicycle','electronics'];
20
+ $('carebyzinc_model').show();
21
+ jQuery('label[for=carebyzinc_model], input#carebyzinc_model').show();
22
+ document.getElementById('carebyzinc_model').className += ' required-entry validate-length maximum-length-30 minimum-length-1';
23
+
24
+ }else{
25
+ $('carebyzinc_model').hide();
26
+ jQuery('label[for=carebyzinc_model], input#carebyzinc_model').hide();
27
+ }
28
+
29
+ </script>";
30
+
31
+ }
32
+ }
app/code/local/Zinc/Carebyzinc/Block/Adminhtml/Catalog/Product/Renderer/Subcategory.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * ZincPlatform
4
+ * @package Zinc_Carebyzinc
5
+ * @copyright Copyright (c) 2016-2017 Zinplatform (http://www.zincplatform.com/)
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
+
9
+ class Zinc_Carebyzinc_Block_Adminhtml_Catalog_Product_Renderer_Subcategory extends Varien_Data_Form_Element_Select
10
+ {
11
+ public function getAfterElementHtml()
12
+ {
13
+ $html = parent::getAfterElementHtml();
14
+
15
+ return $html."<script>
16
+
17
+ if(document.getElementById('carebyzinc').value != 1){
18
+ $('carebyzinc_subcategory').hide();
19
+ jQuery('label[for=carebyzinc_subcategory], input#carebyzinc_category').hide();
20
+
21
+
22
+ }else{
23
+ $('carebyzinc_subcategory').show();
24
+ jQuery('label[for=carebyzinc_subcategory], input#carebyzinc_category').show();
25
+ document.getElementById('carebyzinc_subcategory').className += ' required-entry';
26
+ }
27
+
28
+ </script>";
29
+
30
+ }
31
+ }
app/code/local/Zinc/Carebyzinc/Block/Adminhtml/Product/Edit/Tab/Form.php CHANGED
@@ -44,10 +44,11 @@ class Zinc_Carebyzinc_Block_Adminhtml_Product_Edit_Tab_Form extends Mage_Adminht
44
  new Ajax.Request(reloadurl, {parameters: { cat: selectElement},
45
  method: 'post',
46
  onComplete: function(transport) {
47
- var content = JSON.parse(transport.responseText);
48
- var i = 0;
 
49
  for (var key in content) {
50
- document.getElementById('carebyzinc_subcategory').options[i] = new Option(content[key],content[key]);
51
  i++;
52
  }
53
 
@@ -78,6 +79,31 @@ class Zinc_Carebyzinc_Block_Adminhtml_Product_Edit_Tab_Form extends Mage_Adminht
78
 
79
 
80
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
 
82
  if ( Mage::getSingleton('adminhtml/session')->getVendorData() )
83
  {
44
  new Ajax.Request(reloadurl, {parameters: { cat: selectElement},
45
  method: 'post',
46
  onComplete: function(transport) {
47
+ var content = JSON.parse(transport.responseText);
48
+ var i = 0;
49
+ document.getElementById('carebyzinc_subcategory').options.length = 0;
50
  for (var key in content) {
51
+ document.getElementById('carebyzinc_subcategory').options[i] = new Option(content[key],key);
52
  i++;
53
  }
54
 
79
 
80
 
81
  }
82
+ $fieldset->addField('carebyzinc_manufacturer', 'text', array(
83
+ 'label' => Mage::helper('carebyzinc')->__('Manufacturer'),
84
+ 'class' => 'required-entry validate-length maximum-length-30 ',
85
+ 'required' => true,
86
+ 'name' => 'carebyzinc_manufacturer',
87
+ ));
88
+ $fieldset->addField('carebyzinc_model', 'text', array(
89
+ 'label' => Mage::helper('carebyzinc')->__('Model'),
90
+ 'class' => 'required-entry validate-length maximum-length-30 ',
91
+ 'required' => true,
92
+ 'name' => 'carebyzinc_model',
93
+ ));
94
+
95
+ $this->setChild('form_after', $this->getLayout()
96
+ ->createBlock('adminhtml/widget_form_element_dependence')
97
+ ->addFieldMap('carebyzinc', 'carebyzinc')
98
+ ->addFieldMap('carebyzinc_category', 'carebyzinc_category')
99
+ ->addFieldMap('carebyzinc_manufacturer', 'carebyzinc_manufacturer')
100
+ ->addFieldMap('carebyzinc_model', 'carebyzinc_model')
101
+ ->addFieldMap('carebyzinc_subcategory', 'carebyzinc_subcategory')
102
+ ->addFieldDependence('carebyzinc_category', 'carebyzinc', 1)
103
+ ->addFieldDependence('carebyzinc_subcategory', 'carebyzinc', 1)
104
+ ->addFieldDependence('carebyzinc_model', 'carebyzinc_category', array((string)'Bicycle',(string)'Electronics'))
105
+ ->addFieldDependence('carebyzinc_manufacturer', 'carebyzinc_category', array((string)'Bicycle',(string)'Electronics'))
106
+ );
107
 
108
  if ( Mage::getSingleton('adminhtml/session')->getVendorData() )
109
  {
app/code/local/Zinc/Carebyzinc/Block/Adminhtml/Product/Grid.php CHANGED
@@ -19,7 +19,7 @@ class Zinc_Carebyzinc_Block_Adminhtml_Product_Grid extends Mage_Adminhtml_Block_
19
  public function setCollection($collection)
20
  {
21
 
22
- $collection->addFieldToFilter('price',array('gteq' => 500));
23
  $collection->addAttributeToSelect('carebyzinc');
24
  $collection->addAttributeToSelect('carebyzinc_category');
25
  //$collection->addAttributeToSelect('carebyzinc_subcategory');
19
  public function setCollection($collection)
20
  {
21
 
22
+ $collection->addAttributeToFilter('visibility',array('neq'=>1));
23
  $collection->addAttributeToSelect('carebyzinc');
24
  $collection->addAttributeToSelect('carebyzinc_category');
25
  //$collection->addAttributeToSelect('carebyzinc_subcategory');
app/code/local/Zinc/Carebyzinc/Helper/Data.php CHANGED
@@ -36,13 +36,7 @@ class Zinc_Carebyzinc_Helper_Data extends Mage_Core_Helper_Abstract
36
  return Mage::getUrl('carebyzinc/index/removeWarranty', array('id' => $itemId));
37
 
38
  }
39
- public function validatePrice($price){
40
- if($price >=500)
41
- return true;
42
- else
43
- return false;
44
 
45
- }
46
  public function callApi($url){
47
 
48
  $ch = curl_init($url);
36
  return Mage::getUrl('carebyzinc/index/removeWarranty', array('id' => $itemId));
37
 
38
  }
 
 
 
 
 
39
 
 
40
  public function callApi($url){
41
 
42
  $ch = curl_init($url);
app/code/local/Zinc/Carebyzinc/Model/Carebyzinc.php CHANGED
@@ -31,8 +31,7 @@ class Zinc_Carebyzinc_Model_Carebyzinc extends Mage_Core_Model_Abstract
31
  $price = $product->getFinalPrice();
32
  if($optionPrice)
33
  $price += $optionPrice;
34
- $userId = $this->getUserId();
35
- $data = array();
36
  $data['sku'] = array(
37
  'merchant_sku_id' => $product->getId(),
38
  'sku_name' => $product->getName(),
@@ -42,10 +41,18 @@ class Zinc_Carebyzinc_Model_Carebyzinc extends Mage_Core_Model_Abstract
42
  'subcategory2' => '',
43
  'description' => $product->getShortDescription(),
44
  'price' => $price,
45
- 'currency' => $currencyCode,
46
- 'user_id' => $userId
47
  );
48
-
 
 
 
 
 
 
 
 
 
49
  if(! $zip){
50
  $helper = Mage::helper('carebyzinc');
51
  $zip = $helper->getZipCode();
@@ -65,7 +72,7 @@ class Zinc_Carebyzinc_Model_Carebyzinc extends Mage_Core_Model_Abstract
65
  }else{
66
  $response = $outData['response'];
67
  $response = (array)json_decode($response, true);
68
- return $response['errors'];
69
  }
70
 
71
  }
@@ -75,7 +82,6 @@ class Zinc_Carebyzinc_Model_Carebyzinc extends Mage_Core_Model_Abstract
75
 
76
  $currencyCode = Mage::app()->getStore()->getBaseCurrencyCode();
77
  $_item = Mage::getModel('sales/quote_item')->load($itemId);
78
- $userId = $this->getUserId();
79
  $data = array();
80
  $data['sku'] = array(
81
  'merchant_sku_id' => $product->getId(),
@@ -86,9 +92,18 @@ class Zinc_Carebyzinc_Model_Carebyzinc extends Mage_Core_Model_Abstract
86
  'subcategory2' => '',
87
  'description' => $product->getShortDescription(),
88
  'price' => $_item->getPrice(),
89
- 'currency' => $currencyCode,
90
- 'user_id' => $userId
91
  );
 
 
 
 
 
 
 
 
 
 
92
  if(! $zip){
93
  $helper = Mage::helper('carebyzinc');
94
  $zip = $helper->getZipCode();
@@ -98,16 +113,23 @@ class Zinc_Carebyzinc_Model_Carebyzinc extends Mage_Core_Model_Abstract
98
  if($outData['code'] == '200'){
99
  $response = $outData['response'];
100
  $quoteData = json_decode($response, true);
101
- $priceQuote = array();
102
- foreach($quoteData['price_quotes'] as $item):
103
- $priceQuote[$itemId][$item['id']] = $item;
104
- endforeach;
105
- Mage::getSingleton('core/session')->setCareByZincQuote($priceQuote);
106
- return $priceQuote;
 
 
 
 
 
 
 
107
  }else{
108
  $response = $outData['response'];
109
  $response = (array)json_decode($response, true);
110
- return $response['errors'];
111
  }
112
 
113
  }
@@ -125,17 +147,8 @@ class Zinc_Carebyzinc_Model_Carebyzinc extends Mage_Core_Model_Abstract
125
  $protocol = 'http://' ;
126
  $url = $protocol.$path.'/'.$action;
127
  return $url;
128
- }
129
 
130
- public function getUserId()
131
- {
132
-
133
- if((Mage::getStoreConfig('carebyzinc/api/testmode')) == 'live')
134
- $userId = Mage::getStoreConfig('carebyzinc/api/user_id');
135
- else
136
- $userId = Mage::getStoreConfig('carebyzinc/api/test_user_id');
137
- return $userId;
138
- }
139
  public function getToken()
140
  {
141
 
@@ -150,16 +163,15 @@ class Zinc_Carebyzinc_Model_Carebyzinc extends Mage_Core_Model_Abstract
150
  $outData = array();
151
  $values = json_encode($data);
152
  $url = $this->getApiUrl($action);
153
- $uid = $this->getUserId();
154
  $token = $this->getToken();
155
  $email = Mage::getStoreConfig('carebyzinc/api/xuser_email');
156
  if(($action =='price_quotes/generate') || ($action == 'policies' ))
157
- $header = array( "Content-Type: application/json","uid:$uid","X-User-Token:$token","X-User-Email:$email","token-type:Bearer");
158
  elseif($action == 'token')
159
  $header = array( "Content-Type: application/json","X-User-Token:$token","X-User-Email:$email","token-type:Bearer");
160
 
161
  else
162
- $header = array( "Content-Type: application/json","uid:$uid","token-type:Bearer");
163
 
164
  $ch = curl_init($url);
165
  curl_setopt($ch, CURLOPT_URL, $url);
@@ -177,45 +189,30 @@ class Zinc_Carebyzinc_Model_Carebyzinc extends Mage_Core_Model_Abstract
177
  return $outData;
178
  }
179
 
180
- public function getwarrantyStatus( $item_id )
181
- {
182
  if($item_id < 0){
183
  return '';
184
  }
185
- $cart = Mage::getSingleton('checkout/cart');
186
- $quoteItem = $cart->getQuote()->getItemById($item_id);
187
- $product = Mage::getModel('catalog/product')->load($quoteItem->getProductId());
188
- if(($product->getCarebyzinc() != 1) && ($quoteItem->getCarebyzincOption())){
189
- if ($additionalOption = $quoteItem->getOptionByCode('additional_options'))
190
- {
191
- $additionalOptions = (array) unserialize($additionalOption->getValue());
192
- }
193
- $additionalOptionsArray = array();
194
- foreach($additionalOptions as $option){
195
- if($option['label'] != 'carebyzinc')
196
- $additionalOptionsArray[] = $option;
197
- }
198
- $quoteItem->setCarebyzincOption('');
199
 
200
- if(! empty($additionalOptionsArray)){
201
- $quoteItem->addOption(array( 'product_id' => $quoteItem->getProductId(),
202
- 'code' => 'additional_options',
203
- 'value' => serialize($additionalOptionsArray)
204
- ));
205
- }else{
206
- $quoteItem->getOptionByCode('additional_options')->delete();
207
- }
208
- $productPrice = $quoteItem->getProduct()->getFinalPrice();
209
- $quoteItem->setCustomPrice($productPrice);
210
- $quoteItem->setOriginalCustomPrice($productPrice);
211
- $quoteItem->getProduct()->setIsSuperMode(true);
212
- $quoteItem->save();
213
- $cart->getQuote()->collectTotals()->save();
214
-
215
- }
216
  return true;
217
- }
218
- public function getCategoryArray()
 
 
219
  {
220
 
221
 
@@ -231,7 +228,7 @@ class Zinc_Carebyzinc_Model_Carebyzinc extends Mage_Core_Model_Abstract
231
  {
232
  if($category)
233
  $dataArray = $this->getCategoryJson();
234
- $subcategory = array();
235
  foreach($dataArray as $key => $value){
236
  if($key == $category){
237
  foreach($value as $val){
@@ -255,5 +252,16 @@ class Zinc_Carebyzinc_Model_Carebyzinc extends Mage_Core_Model_Abstract
255
 
256
  }
257
 
 
 
 
 
 
 
 
 
 
 
 
258
 
259
  }
31
  $price = $product->getFinalPrice();
32
  if($optionPrice)
33
  $price += $optionPrice;
34
+ $data = array();
 
35
  $data['sku'] = array(
36
  'merchant_sku_id' => $product->getId(),
37
  'sku_name' => $product->getName(),
41
  'subcategory2' => '',
42
  'description' => $product->getShortDescription(),
43
  'price' => $price,
44
+ 'currency' => $currencyCode
 
45
  );
46
+ $catArray = array('bicycle','electronics');
47
+ if(in_array(strtolower($product->getCarebyzincCategory()),$catArray)){
48
+
49
+ if(($product->getCarebyzincModel()) && ($product->getCarebyzincManufacturer())){
50
+ $additional = array('model'=>$product->getCarebyzincModel());
51
+ $data['sku']['additional_info'] = json_encode($additional);
52
+ $data['sku']['brand'] = $product->getCarebyzincManufacturer();
53
+ }
54
+
55
+ }
56
  if(! $zip){
57
  $helper = Mage::helper('carebyzinc');
58
  $zip = $helper->getZipCode();
72
  }else{
73
  $response = $outData['response'];
74
  $response = (array)json_decode($response, true);
75
+ return 'No Quotes Available';
76
  }
77
 
78
  }
82
 
83
  $currencyCode = Mage::app()->getStore()->getBaseCurrencyCode();
84
  $_item = Mage::getModel('sales/quote_item')->load($itemId);
 
85
  $data = array();
86
  $data['sku'] = array(
87
  'merchant_sku_id' => $product->getId(),
92
  'subcategory2' => '',
93
  'description' => $product->getShortDescription(),
94
  'price' => $_item->getPrice(),
95
+ 'currency' => $currencyCode
 
96
  );
97
+ $catArray = array('bicycle','electronics');
98
+ if(in_array(strtolower($product->getCarebyzincCategory()),$catArray)){
99
+
100
+ if(($product->getCarebyzincModel()) && ($product->getCarebyzincManufacturer())){
101
+ $additional = array('model'=>$product->getCarebyzincModel());
102
+ $data['sku']['additional_info'] = json_encode($additional);
103
+ $data['sku']['brand'] = $product->getCarebyzincManufacturer();
104
+ }
105
+
106
+ }
107
  if(! $zip){
108
  $helper = Mage::helper('carebyzinc');
109
  $zip = $helper->getZipCode();
113
  if($outData['code'] == '200'){
114
  $response = $outData['response'];
115
  $quoteData = json_decode($response, true);
116
+ $priceQuote = array();
117
+ if(! empty($quoteData['price_quotes'])){
118
+ $priceQuote = Mage::getSingleton('core/session')->getCareByZincQuote();
119
+ foreach($quoteData['price_quotes'] as $item):
120
+ if($priceQuote[$itemId])
121
+ unset($priceQuote[$itemId]);
122
+ $priceQuote[$itemId][$item['id']] = $item;
123
+ endforeach;
124
+ Mage::getSingleton('core/session')->setCareByZincQuote($priceQuote);
125
+ return $priceQuote;
126
+ }else{
127
+ return 'No Quotes Available';
128
+ }
129
  }else{
130
  $response = $outData['response'];
131
  $response = (array)json_decode($response, true);
132
+ return 'No Quotes Available';//return $response['errors'];
133
  }
134
 
135
  }
147
  $protocol = 'http://' ;
148
  $url = $protocol.$path.'/'.$action;
149
  return $url;
150
+ }
151
 
 
 
 
 
 
 
 
 
 
152
  public function getToken()
153
  {
154
 
163
  $outData = array();
164
  $values = json_encode($data);
165
  $url = $this->getApiUrl($action);
 
166
  $token = $this->getToken();
167
  $email = Mage::getStoreConfig('carebyzinc/api/xuser_email');
168
  if(($action =='price_quotes/generate') || ($action == 'policies' ))
169
+ $header = array( "Content-Type: application/json","X-User-Token:$token","X-User-Email:$email","token-type:Bearer");
170
  elseif($action == 'token')
171
  $header = array( "Content-Type: application/json","X-User-Token:$token","X-User-Email:$email","token-type:Bearer");
172
 
173
  else
174
+ $header = array( "Content-Type: application/json","token-type:Bearer");
175
 
176
  $ch = curl_init($url);
177
  curl_setopt($ch, CURLOPT_URL, $url);
189
  return $outData;
190
  }
191
 
192
+ public function getwarrantyStatus( $item_id,$warrentyitem )
193
+ {
194
  if($item_id < 0){
195
  return '';
196
  }
197
+ $cart = Mage::getModel('checkout/cart');
198
+ $quoteItem = $cart->getQuote()->getItemById($item_id);
199
+ if($quoteItem){
200
+ $product = Mage::getModel('catalog/product')->load($quoteItem->getProductId());
201
+ if(($product->getCarebyzinc() != 1) && ($quoteItem->getCarebyzincVariantid())){
 
 
 
 
 
 
 
 
 
202
 
203
+ $quoteItem->setCarebyzincVariantid(NULL);
204
+ $quoteItem->save();
205
+ $cartHelper = Mage::helper('checkout/cart');
206
+ $cartHelper->getCart()->removeItem($warrentyitem)->save();
207
+ $cart->getQuote()->collectTotals()->save();
208
+
209
+ }
210
+ }
 
 
 
 
 
 
 
 
211
  return true;
212
+ }
213
+
214
+
215
+ public function getCategoryArray()
216
  {
217
 
218
 
228
  {
229
  if($category)
230
  $dataArray = $this->getCategoryJson();
231
+ $subcategory = array(''=>'Please Select');
232
  foreach($dataArray as $key => $value){
233
  if($key == $category){
234
  foreach($value as $val){
252
 
253
  }
254
 
255
+ public function getWarrentyName($itemId)
256
+ {
257
+ $name = '';
258
+ $orderItem = Mage::getModel('sales/quote_item')->load($itemId);
259
+ $product = Mage::getModel('catalog/product')->load($orderItem->getProductId());
260
+ if($product)
261
+ $name = ' for '. $product->getName();
262
+ return $name;
263
+
264
+ }
265
+
266
 
267
  }
app/code/local/Zinc/Carebyzinc/Model/Checkout/Cart.php CHANGED
@@ -17,14 +17,15 @@ class Zinc_Carebyzinc_Model_Checkout_Cart extends Mage_Checkout_Model_Cart
17
  public function addProduct($productInfo, $requestInfo=null)
18
  {
19
  $product = $this->_getProduct($productInfo);
20
- $request = $this->_getProductRequest($requestInfo);
 
21
  $productId = $product->getId();
22
  $flag = 0;$qty = 0;
23
  $productType = $product->getTypeId();
24
  if(($productType == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE || $productType == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) && ($product->getCarebyzinc() == 1))
25
  {
26
  $flag = 1;
27
- $qty = $request->getQty();
28
  $request['qty'] = 1;
29
  }
30
  if ($product->getStockItem()) {
@@ -36,63 +37,68 @@ class Zinc_Carebyzinc_Model_Checkout_Cart extends Mage_Checkout_Model_Cart
36
  $request->setQty($minimumQty);
37
  }
38
  }
39
- if($flag){
40
- $helper = Mage::helper('carebyzinc');
41
-
42
 
43
  if ($productId) {
44
  try {
45
- for($i= 0;$i<$qty;$i++){
46
- $additionalOptions = array();
47
- $product = Mage::getModel('catalog/product')
48
- ->setStoreId(Mage::app()->getStore()->getId())
49
- ->load($productId);
50
- $result = $this->getQuote()->addProduct($product, $request);
51
- if(is_object($result)){
52
- $result = ( $result->getParentItem() ? $result->getParentItem() : $result );
53
- $carebyzincId = $request->getCarebyzincOption();
54
- $priceQuote = Mage::getSingleton('core/session')->getCareQuote();
55
- $carebyzincAry = $priceQuote[$carebyzincId];
56
- $productPrice = $result->getProduct()->getFinalPrice();
57
- $valid = $helper->validatePrice($productPrice);
58
- if($valid){
59
- if($price = $carebyzincAry['price_per_year']){
60
- $newPrice = $productPrice + $price;
61
- $result->setCustomPrice($newPrice);
62
- $result->setOriginalCustomPrice($newPrice);
63
- $result->setCarebyzincPrice($price);
64
- $result->getProduct()->setIsSuperMode(true);
65
- }
66
- if ($additionalOption = $result->getOptionByCode('additional_options'))
67
- {
68
- $additionalOptions = (array) unserialize($additionalOption->getValue());
69
- }
70
-
71
- if( $item = $priceQuote[$carebyzincId]){
72
- $additionalOptions[] = array(
73
- 'label' => 'carebyzinc',
74
- 'value' => $carebyzincId,
75
- );
76
- $result->setCarebyzincOption(serialize($priceQuote[$carebyzincId]));
77
 
78
-
79
- }else{
80
- $additionalOptions[] = array(
81
- 'label' => 'carebyzinc',
82
- 'value' => '',
83
- );
84
-
85
-
86
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  }
88
- $result->addOption(array(
89
- 'product_id' => $result->getProductId(),
90
- 'code' => 'additional_options',
91
- 'value' => serialize($additionalOptions)
92
- ));
93
- $this->getQuote()->save();
94
- }
95
- }}
96
  } catch (Mage_Core_Exception $e) {
97
  $this->getCheckoutSession()->setUseNotice(false);
98
  $result = $e->getMessage();
@@ -119,6 +125,7 @@ class Zinc_Carebyzinc_Model_Checkout_Cart extends Mage_Checkout_Model_Cart
119
 
120
  Mage::dispatchEvent('checkout_cart_product_add_after', array('quote_item' => $result, 'product' => $product));
121
  $this->getCheckoutSession()->setLastAddedProductId($productId);
 
122
  }else{
123
  if ($productId) {
124
  try {
17
  public function addProduct($productInfo, $requestInfo=null)
18
  {
19
  $product = $this->_getProduct($productInfo);
20
+ $request = $this->_getProductRequest($requestInfo);
21
+
22
  $productId = $product->getId();
23
  $flag = 0;$qty = 0;
24
  $productType = $product->getTypeId();
25
  if(($productType == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE || $productType == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) && ($product->getCarebyzinc() == 1))
26
  {
27
  $flag = 1;
28
+ $qty = $request->getQty()?$request->getQty():1;
29
  $request['qty'] = 1;
30
  }
31
  if ($product->getStockItem()) {
37
  $request->setQty($minimumQty);
38
  }
39
  }
40
+ if($flag){
 
 
41
 
42
  if ($productId) {
43
  try {
44
+ for($i= 0;$i<$qty;$i++){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
 
46
+ $additionalOptions = array();
47
+ $product = Mage::getModel('catalog/product')
48
+ ->setStoreId(Mage::app()->getStore()->getId())
49
+ ->load($productId);
50
+ $result = $this->getQuote()->addProduct($product, $request);
51
+ if(is_object($result)){
52
+
53
+ $result = ( $result->getParentItem() ? $result->getParentItem() : $result );
54
+
55
+ $carebyzincId = $request->getCarebyzincOption();
56
+ $priceQuote = Mage::getSingleton('core/session')->getCareQuote();
57
+ $carebyzincAry = $priceQuote[$carebyzincId];
58
+ if(! empty($carebyzincAry)){
59
+
60
+ $productPrice = $result->getProduct()->getFinalPrice();
61
+
62
+ if($carebyzincId){
63
+ $result->setCarebyzincVariantid($carebyzincId);
64
+ $warrantPrdctId = Mage::getStoreConfig('carebyzinc/general/warranty_product');
65
+ if($warrantPrdctId){
66
+ $req = $this->_getProductRequest(array('product'=>$warrantPrdctId,'qty'=>1,'form_key'=>$request['form_key']));
67
+
68
+ $this->getQuote()->save();
69
+ $careParentId = $result->getId();
70
+
71
+ $warrantyProduct = Mage::getModel('catalog/product')->load($warrantPrdctId);
72
+ $productPrice = $warrantyProduct->getPrice();
73
+ if($price = $carebyzincAry['price_per_year'])
74
+ $newPrice = $productPrice + $price;
75
+ $resultItem = $this->getQuote()->addProduct($warrantyProduct, $req);
76
+ $resultItem->setCustomPrice($newPrice);
77
+ $resultItem->setOriginalCustomPrice($newPrice);
78
+ $resultItem->setCarebyzincPrice($price);
79
+ $resultItem->setCarebyzincParentid((int)$careParentId);
80
+ $resultItem->getProduct()->setIsSuperMode(true);
81
+ if( $item = $priceQuote[$carebyzincId]){
82
+ $additionalOptions[] = array(
83
+ 'label' => 'carebyzinc',
84
+ 'value' => $carebyzincId,
85
+ );
86
+ $resultItem->setCarebyzincOption(serialize($priceQuote[$carebyzincId]));
87
+
88
+ }
89
+ $resultItem->addOption(array(
90
+ 'product_id' => $resultItem->getProductId(),
91
+ 'code' => 'additional_options',
92
+ 'value' => serialize($additionalOptions)
93
+ ));
94
+ $this->getQuote()->save();
95
+ }
96
+ }
97
+
98
+
99
+ }
100
+ }
101
  }
 
 
 
 
 
 
 
 
102
  } catch (Mage_Core_Exception $e) {
103
  $this->getCheckoutSession()->setUseNotice(false);
104
  $result = $e->getMessage();
125
 
126
  Mage::dispatchEvent('checkout_cart_product_add_after', array('quote_item' => $result, 'product' => $product));
127
  $this->getCheckoutSession()->setLastAddedProductId($productId);
128
+ Mage::getSingleton('core/session')->unsCareQuote();
129
  }else{
130
  if ($productId) {
131
  try {
app/code/local/Zinc/Carebyzinc/Model/Checkout/Multishipping.php ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * ZincPlatform
4
+ * @package Zinc_Carebyzinc
5
+ * @copyright Copyright (c) 2016-2017 Zinplatform (http://www.zincplatform.com/)
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
+ class Zinc_Carebyzinc_Model_Checkout_Multishipping extends Mage_Checkout_Model_Type_Multishipping
9
+ {
10
+
11
+ /**
12
+ * Assign quote items to addresses and specify items qty
13
+ *
14
+ * array structure:
15
+ * array(
16
+ * $quoteItemId => array(
17
+ * 'qty' => $qty,
18
+ * 'address' => $customerAddressId
19
+ * )
20
+ * )
21
+ *
22
+ * @param array $info
23
+ * @return Mage_Checkout_Model_Type_Multishipping
24
+ */
25
+ public function setShippingItemsInformation($info)
26
+ {
27
+ if (is_array($info)) {
28
+ $allQty = 0;
29
+ $itemsInfo = array();
30
+ foreach ($info as $itemData) {
31
+ foreach ($itemData as $quoteItemId => $data) {
32
+ $allQty += $data['qty'];
33
+ $itemsInfo[$quoteItemId] = $data;
34
+ }
35
+ }
36
+
37
+ $maxQty = (int)Mage::getStoreConfig('shipping/option/checkout_multiple_maximum_qty');
38
+ if ($allQty > $maxQty) {
39
+ Mage::throwException(Mage::helper('checkout')->__('Maximum qty allowed for Shipping to multiple addresses is %s', $maxQty));
40
+ }
41
+ $quote = $this->getQuote();
42
+ $addresses = $quote->getAllShippingAddresses();
43
+ foreach ($addresses as $address) {
44
+ $quote->removeAddress($address->getId());
45
+ }
46
+
47
+ foreach ($info as $itemData) {
48
+ foreach ($itemData as $quoteItemId => $data) {
49
+ $this->_addShippingItem($quoteItemId, $data);
50
+ }
51
+ }
52
+
53
+ /**
54
+ * Delete all not virtual quote items which are not added to shipping address
55
+ * MultishippingQty should be defined for each quote item when it processed with _addShippingItem
56
+ */
57
+ foreach ($quote->getAllItems() as $_item) {
58
+ if (!$_item->getProduct()->getIsVirtual() &&
59
+ !$_item->getParentItem() &&
60
+ !$_item->getMultishippingQty()
61
+ ) {
62
+ $quote->removeItem($_item->getId());
63
+ }
64
+ }
65
+
66
+ if ($billingAddress = $quote->getBillingAddress()) {
67
+ $quote->removeAddress($billingAddress->getId());
68
+ }
69
+
70
+ if ($customerDefaultBilling = $this->getCustomerDefaultBillingAddress()) {
71
+ $quote->getBillingAddress()->importCustomerAddress($customerDefaultBilling);
72
+ }
73
+
74
+ foreach ($quote->getAllItems() as $_item) {
75
+ if (!$_item->getProduct()->getIsVirtual()) {
76
+ continue;
77
+ }
78
+
79
+ if (isset($itemsInfo[$_item->getId()]['qty'])) {
80
+ if ($qty = (int)$itemsInfo[$_item->getId()]['qty']) {
81
+ if(Mage::getStoreConfig('carebyzinc/general/enabled')){
82
+ $qty = 1;
83
+ $itemsInfo[$_item->getId()]['qty'] = 1;
84
+ }
85
+ $_item->setQty($qty);
86
+ $quote->getBillingAddress()->addItem($_item);
87
+ } else {
88
+ $_item->setQty(0);
89
+ $quote->removeItem($_item->getId());
90
+ }
91
+ }
92
+
93
+ }
94
+
95
+ $this->save();
96
+ Mage::dispatchEvent('checkout_type_multishipping_set_shipping_items', array('quote'=>$quote));
97
+ }
98
+ return $this;
99
+ }
100
+
101
+ protected function _addShippingItem($quoteItemId, $data)
102
+ {
103
+
104
+ $qty = isset($data['qty']) ? (int) $data['qty'] : 1;
105
+ //$qty = $qty > 0 ? $qty : 1;
106
+ $addressId = isset($data['address']) ? $data['address'] : false;
107
+ $quoteItem = $this->getQuote()->getItemById($quoteItemId);
108
+ if(Mage::getStoreConfig('carebyzinc/general/enabled')){
109
+ if($qty>1){
110
+ $limit = $qty;
111
+ $qty = 1;
112
+ if($quoteItem->getProductId() != Mage::getStoreConfig('carebyzinc/general/warranty_product')){
113
+ for($i =1; $i<$limit;$i++){
114
+ $product = Mage::getModel('catalog/product')->load($quoteItem->getProductId());
115
+ $quote = Mage::getSingleton('checkout/session')->getQuote();
116
+ $result = $quote->addProduct($product, $quoteItem->getBuyRequest());
117
+ $quote->collectTotals()->save();
118
+
119
+ if ($addressId && $result) {
120
+ /**
121
+ * Skip item processing if qty 0
122
+ */
123
+ if ($qty === 0) {
124
+ return $this;
125
+ }
126
+ $quoteItem->setMultishippingQty((int)$result->getMultishippingQty());
127
+ $quoteItem->setQty($result->getMultishippingQty());
128
+ $address = $this->getCustomer()->getAddressById($addressId);
129
+ if ($address->getId()) {
130
+ if (!$quoteAddress = $this->getQuote()->getShippingAddressByCustomerAddressId($address->getId())) {
131
+ $quoteAddress = Mage::getModel('sales/quote_address')->importCustomerAddress($address);
132
+ $this->getQuote()->addShippingAddress($quoteAddress);
133
+ if ($couponCode = $this->getCheckoutSession()->getCartCouponCode()) {
134
+ $this->getQuote()->setCouponCode($couponCode);
135
+ }
136
+ }
137
+
138
+ $quoteAddress = $this->getQuote()->getShippingAddressByCustomerAddressId($address->getId());
139
+ if ($quoteAddressItem = $quoteAddress->getItemByQuoteItemId($result->getId())) {
140
+ $quoteAddressItem->setQty((int)($quoteAddressItem->getQty()));
141
+ } else {
142
+ $quoteAddress->addItem($result, $qty);
143
+ }
144
+ /**
145
+ * Require shiping rate recollect
146
+ */
147
+ $quoteAddress->setCollectShippingRates((boolean) $this->getCollectRatesFlag());
148
+ }
149
+ }
150
+
151
+ }
152
+
153
+ }
154
+
155
+ }
156
+ }
157
+ if ($addressId && $quoteItem) {
158
+ /**
159
+ * Skip item processing if qty 0
160
+ */
161
+ if ($qty === 0) {
162
+ return $this;
163
+ }
164
+ $quoteItem->setMultishippingQty((int)$quoteItem->getMultishippingQty()+$qty);
165
+ $quoteItem->setQty($quoteItem->getMultishippingQty());
166
+ $address = $this->getCustomer()->getAddressById($addressId);
167
+ if ($address->getId()) {
168
+ if (!$quoteAddress = $this->getQuote()->getShippingAddressByCustomerAddressId($address->getId())) {
169
+ $quoteAddress = Mage::getModel('sales/quote_address')->importCustomerAddress($address);
170
+ $this->getQuote()->addShippingAddress($quoteAddress);
171
+ if ($couponCode = $this->getCheckoutSession()->getCartCouponCode()) {
172
+ $this->getQuote()->setCouponCode($couponCode);
173
+ }
174
+ }
175
+
176
+ $quoteAddress = $this->getQuote()->getShippingAddressByCustomerAddressId($address->getId());
177
+ if ($quoteAddressItem = $quoteAddress->getItemByQuoteItemId($quoteItemId)) {
178
+ $quoteAddressItem->setQty((int)($quoteAddressItem->getQty()+$qty));
179
+ } else {
180
+ $quoteAddress->addItem($quoteItem, $qty);
181
+ }
182
+ /**
183
+ * Require shiping rate recollect
184
+ */
185
+ $quoteAddress->setCollectShippingRates((boolean) $this->getCollectRatesFlag());
186
+ }
187
+ }
188
+ return $this;
189
+ }
190
+ }
app/code/local/Zinc/Carebyzinc/Model/Entity/Subcategory.php CHANGED
@@ -10,9 +10,11 @@ class Zinc_Carebyzinc_Model_Entity_Subcategory extends Mage_Eav_Model_Entity_Att
10
  {
11
  public function getAllOptions()
12
  {
13
- $this->_options = array();
14
- if($category = Mage::registry('current_product')->getCarebyzincCategory())
15
- $this->_options = Mage::getModel('carebyzinc/carebyzinc')->getSubcategoryArray($category);
 
 
16
  return $this->_options;
17
  }
18
  }
10
  {
11
  public function getAllOptions()
12
  {
13
+ $this->_options = array();
14
+ if(Mage::registry('current_product')){
15
+ if($category = Mage::registry('current_product')->getCarebyzincCategory())
16
+ $this->_options = Mage::getModel('carebyzinc/carebyzinc')->getSubcategoryArray($category);
17
+ }
18
  return $this->_options;
19
  }
20
  }
app/code/local/Zinc/Carebyzinc/Model/Observer.php CHANGED
@@ -19,29 +19,117 @@ class Zinc_Carebyzinc_Model_Observer{
19
  endif;
20
 
21
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  public function cartLoad($observer)
23
  {
24
  if( ! Mage::getStoreConfig('carebyzinc/general/enabled')){
25
  $cartHelper = Mage::helper('checkout/cart');
26
  $cart = Mage::getModel('checkout/cart')->getQuote();
 
27
  foreach ($cart->getAllItems() as $item) {
28
- if($item->getCarebyzincOption()){
29
- $cartHelper->getCart()->removeItem($item->getId())->save();
30
- }
31
- $additionalOptions = array();
32
- $item->addOption(array(
33
- 'product_id' => $item->getProductId(),
34
- 'code' => 'additional_options',
35
- 'value' => serialize($additionalOptions)
36
- ));
37
- $item->save();
 
 
 
 
 
 
 
 
 
38
  }
39
 
40
-
41
  }
42
 
43
  }
44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
 
46
 
47
  }
19
  endif;
20
 
21
  }
22
+
23
+ public function setCarebyzinc($observer)
24
+ {
25
+ if(Mage::getStoreConfig('carebyzinc/general/enabled')){
26
+ $order = $observer->getEvent()->getOrder();
27
+ $orderId = $order->getId();
28
+ $orderItems = $order->getAllItems();
29
+ foreach($orderItems as $item){
30
+ if(($item->getCarebyzincParentid()) && ($item->getCarebyzincOption())){
31
+
32
+ $careParentId = 0;
33
+ $orderItemCollection = Mage::getModel('sales/order_item')->getCollection()
34
+ ->addFieldToFilter('quote_item_id', $item->getCarebyzincParentid())
35
+ ->addFieldToFilter('order_id', $orderId);
36
+ foreach($orderItemCollection as $col){
37
+ $careParentId = $col->getItemId();
38
+ }
39
+ if($careParentId){
40
+ $item->setCarebyzincParentid((int)$careParentId);
41
+ $item->save();
42
+ }
43
+
44
+
45
+
46
+ }
47
+
48
+ }
49
+ }
50
+
51
+ }
52
+
53
  public function cartLoad($observer)
54
  {
55
  if( ! Mage::getStoreConfig('carebyzinc/general/enabled')){
56
  $cartHelper = Mage::helper('checkout/cart');
57
  $cart = Mage::getModel('checkout/cart')->getQuote();
58
+ $idArray = array();
59
  foreach ($cart->getAllItems() as $item) {
60
+ if($item->getCarebyzincVariantid()){
61
+ $item->setCarebyzincVariantid(NULL);
62
+ $item->save();
63
+ $idArray[] = $item->getId();
64
+ }else{
65
+ if(($item->getProductId() == Mage::getStoreConfig('carebyzinc/general/warranty_product')) || (in_array($item->getCarebyzincParentid(),$idArray)) ){
66
+ $cartHelper->getCart()->removeItem($item->getId())->save();
67
+ }
68
+ }
69
+
70
+
71
+ }
72
+ }else{
73
+ $cart = Mage::getModel('checkout/cart')->getQuote();
74
+ foreach ($cart->getAllItems() as $item) {
75
+ if($item->getProductId() == Mage::getStoreConfig('carebyzinc/general/warranty_product')){
76
+ $model = Mage::getModel('carebyzinc/carebyzinc');
77
+ $carebyStatus = $model->getwarrantyStatus($item->getCarebyzincParentid(),$item->getId());
78
+ }
79
  }
80
 
 
81
  }
82
 
83
  }
84
 
85
+ public function warrantyDelete($observer)
86
+ {
87
+ $_item = $observer->getEvent()->getQuoteItem();
88
+ $itemId = $_item->getId();
89
+ $productId = $_item->getProductId();
90
+ if(Mage::getStoreConfig('carebyzinc/general/enabled')){
91
+ $cartHelper = Mage::helper('checkout/cart');
92
+ if($_item->getCarebyzincVariantid()){
93
+ $cart = Mage::getModel('checkout/cart')->getQuote();
94
+ foreach ($cart->getAllItems() as $item) {
95
+ if($item->getCarebyzincParentid() == $itemId)
96
+ $cartHelper->getCart()->removeItem($item->getId())->save();
97
+
98
+ }
99
+ }else{
100
+ if($productId == Mage::getStoreConfig('carebyzinc/general/warranty_product')){
101
+ $itemId = $_item->getCarebyzincParentid();
102
+ $cart = Mage::getSingleton('checkout/cart');
103
+ $item = $cart->getQuote()->getItemById($itemId);
104
+ if($item){
105
+ $item->setCarebyzincVariantid(NULL);
106
+ $item->save();
107
+ }
108
+ }
109
+ }
110
+
111
+ }
112
+
113
+ }
114
+ public function salesQuoteItemSetProduct(Varien_Event_Observer $observer)
115
+ {
116
+ /* @var $item Mage_Sales_Model_Quote_Item */
117
+ $item = $observer->getQuoteItem();
118
+ $name = '';
119
+
120
+ if($item->getProductId() == Mage::getStoreConfig('carebyzinc/general/warranty_product')){
121
+ $quoteItem = Mage::getModel('sales/quote_item')->load($item->getCarebyzincParentid());
122
+ $carebyzincAry = (array) unserialize($item->getCarebyzincOption());
123
+
124
+ if($quoteItem)
125
+ $name = $item->getName().' for '.$quoteItem->getName();
126
+ if($name)
127
+ $item->setName($name);
128
+ if($carebyzincAry['quote_type'])
129
+ $item->setSku($carebyzincAry['quote_type']);
130
+ }
131
+ return $this;
132
+ }
133
 
134
 
135
  }
app/code/local/Zinc/Carebyzinc/Model/Order.php CHANGED
@@ -21,10 +21,9 @@ class Zinc_Carebyzinc_Model_Order extends Mage_Core_Model_Abstract
21
  {
22
  $data = array();
23
  $currencyCode = Mage::app()->getStore()->getBaseCurrencyCode();
24
- $data['user_id'] = $this->getUserId();
25
  $data['customer'] = $this->getUserAddress($order);
26
  $carebyItem = 0;$policyKeyArray = array();
27
- $orderItems = $order->getAllVisibleItems();
28
  $fromname = Mage::getStoreConfig('trans_email/ident_general/name');
29
  $fromemail = Mage::getStoreConfig('trans_email/ident_general/email');
30
  $translate = Mage::getSingleton('core/translate');
@@ -37,11 +36,19 @@ class Zinc_Carebyzinc_Model_Order extends Mage_Core_Model_Abstract
37
  $mode = 1;
38
  else
39
  $mode = 0;
 
40
  foreach($orderItems as $item){
41
- if($item->getCarebyzincOption()){
42
-
43
- $policyNo = '';
44
- $carebyzincAry = (array) unserialize($item->getCarebyzincOption()) ;
 
 
 
 
 
 
 
45
  $product = Mage::getModel('catalog/product')->load($item->getProductId());
46
  $data['price_quote_id'] = $carebyzincAry['id'];
47
  $data['sku_id'] = $carebyzincAry['sku_id'];
@@ -63,8 +70,7 @@ class Zinc_Carebyzinc_Model_Order extends Mage_Core_Model_Abstract
63
  $careOrder->setOrderIncId($order->getIncrementId());
64
  $careOrder->setItemId($item->getId());
65
  $careOrder->setWarrentyPrice($carebyzincAry['price_per_year']);
66
- $price = $item->getPrice() - $carebyzincAry['price_per_year'];
67
- $careOrder->setProductPrice($price);
68
  $careOrder->setCarebyzincProvider($carebyzincAry['provider']);
69
  $name = $order->getCustomerFirstname(). ' '. $order->getCustomerLastname();
70
  $careOrder->setCustomerName($name);
@@ -88,7 +94,7 @@ class Zinc_Carebyzinc_Model_Order extends Mage_Core_Model_Abstract
88
  $anyDate = $order->getCreatedAt();
89
  $dateTimestamp = Mage::getModel('core/date')->timestamp(strtotime($anyDate));
90
  $date = date("Y-m-d",$dateTimestamp);
91
- $subject = $this->getUserId().'_'.$policyKeyArray[$i].'_'.$storeObj->getFrontendName().'_'.$date;
92
  $emailTemplate = Mage::getModel('core/email_template')->loadDefault('sales_email_order_template');
93
  $emailTemplateVariables = array();
94
  $emailTemplateVariables['order'] = $order;
@@ -105,11 +111,7 @@ class Zinc_Carebyzinc_Model_Order extends Mage_Core_Model_Abstract
105
  }
106
  }
107
 
108
- private function getUserId()
109
- {
110
- $userId = Mage::getStoreConfig('carebyzinc/api/user_id');
111
- return $userId;
112
- }
113
 
114
  public function getUserAddress($order)
115
  {
21
  {
22
  $data = array();
23
  $currencyCode = Mage::app()->getStore()->getBaseCurrencyCode();
 
24
  $data['customer'] = $this->getUserAddress($order);
25
  $carebyItem = 0;$policyKeyArray = array();
26
+ $orderItems = $order->getAllVisibleItems();
27
  $fromname = Mage::getStoreConfig('trans_email/ident_general/name');
28
  $fromemail = Mage::getStoreConfig('trans_email/ident_general/email');
29
  $translate = Mage::getSingleton('core/translate');
36
  $mode = 1;
37
  else
38
  $mode = 0;
39
+ $orderId = $order->getId();
40
  foreach($orderItems as $item){
41
+
42
+ if($item->getCarebyzincVariantid()){
43
+ $policyNo = ''; $carezincOption = '';
44
+ $orderItemCollection = Mage::getModel('sales/order_item')->getCollection()
45
+ ->addFieldToFilter('carebyzinc_parentid', $item->getQuoteItemId())
46
+ ->addFieldToFilter('order_id', $orderId);
47
+
48
+ foreach($orderItemCollection as $col){
49
+ $carezincOption = $col->getCarebyzincOption();
50
+ }
51
+ $carebyzincAry = (array) unserialize($carezincOption) ;
52
  $product = Mage::getModel('catalog/product')->load($item->getProductId());
53
  $data['price_quote_id'] = $carebyzincAry['id'];
54
  $data['sku_id'] = $carebyzincAry['sku_id'];
70
  $careOrder->setOrderIncId($order->getIncrementId());
71
  $careOrder->setItemId($item->getId());
72
  $careOrder->setWarrentyPrice($carebyzincAry['price_per_year']);
73
+ $careOrder->setProductPrice($item->getPrice());
 
74
  $careOrder->setCarebyzincProvider($carebyzincAry['provider']);
75
  $name = $order->getCustomerFirstname(). ' '. $order->getCustomerLastname();
76
  $careOrder->setCustomerName($name);
94
  $anyDate = $order->getCreatedAt();
95
  $dateTimestamp = Mage::getModel('core/date')->timestamp(strtotime($anyDate));
96
  $date = date("Y-m-d",$dateTimestamp);
97
+ $subject = $policyKeyArray[$i].'_'.$storeObj->getFrontendName().'_'.$date;
98
  $emailTemplate = Mage::getModel('core/email_template')->loadDefault('sales_email_order_template');
99
  $emailTemplateVariables = array();
100
  $emailTemplateVariables['order'] = $order;
111
  }
112
  }
113
 
114
+
 
 
 
 
115
 
116
  public function getUserAddress($order)
117
  {
app/code/local/Zinc/Carebyzinc/controllers/Adminhtml/CarebyzincController.php CHANGED
@@ -9,18 +9,17 @@ class Zinc_Carebyzinc_Adminhtml_CarebyzincController extends Mage_Adminhtml_Cont
9
  {
10
  public function validateAction()
11
  {
12
- $model = Mage::getModel('carebyzinc/carebyzinc');
13
- $data['uid'] = $model->getUserId();
14
  $data['X-User-Token'] = $model->getToken();
15
  $data['X-User-Email'] = Mage::getStoreConfig('carebyzinc/api/xuser_email');
16
 
17
 
18
- $result = $model->callApi($data,'token','post');
19
- if($result['code'] == 200)
20
- $response = 'Success';
21
- else
22
- $response = 'Error';
23
- Mage::app()->getResponse()->setBody($response);
24
- }
25
 
26
  }
9
  {
10
  public function validateAction()
11
  {
12
+ $model = Mage::getModel('carebyzinc/carebyzinc');
 
13
  $data['X-User-Token'] = $model->getToken();
14
  $data['X-User-Email'] = Mage::getStoreConfig('carebyzinc/api/xuser_email');
15
 
16
 
17
+ $result = $model->callApi($data,'token','post');
18
+ if($result['code'] == 200)
19
+ $response = 'Success';
20
+ else
21
+ $response = 'Error';
22
+ Mage::app()->getResponse()->setBody($response);
23
+ }
24
 
25
  }
app/code/local/Zinc/Carebyzinc/controllers/Adminhtml/ProductController.php CHANGED
@@ -64,13 +64,15 @@ class Zinc_Carebyzinc_Adminhtml_ProductController extends Mage_Adminhtml_Control
64
  {
65
  $post = $this->getRequest()->getPost();
66
  $id = $this->getRequest()->getParam('id');
67
- $model = Mage::getModel('catalog/product')->load($id);
68
- $model->setCarebyzincCategory($post['category']);
69
- $model->setCarebyzincSubcategory($post['subcategory']);
70
- $model->setCarebyzinc($post['carebyzinc']);
71
- $model->save();
72
- $this->_redirect('*/*/');
73
- return;
 
 
74
 
75
  }
76
 
@@ -81,29 +83,39 @@ class Zinc_Carebyzinc_Adminhtml_ProductController extends Mage_Adminhtml_Control
81
  public function massCarebyzincAction()
82
  {
83
  $productIds = (array)$this->getRequest()->getParam('product');
84
- $carebyzinc = (int)$this->getRequest()->getParam('zinc_carebyzinc');
85
-
86
- try {
87
- $this->_validateMassCarebyzinc($productIds, $carebyzinc);
88
- Mage::getSingleton('catalog/product_action')
89
- ->updateAttributes($productIds, array('carebyzinc' => $carebyzinc));
 
 
 
 
 
 
90
 
91
- $this->_getSession()->addSuccess(
92
- $this->__('Total of %d record(s) have been updated.', count($productIds))
93
- );
94
- }
95
- catch (Mage_Core_Model_Exception $e) {
96
- $this->_getSession()->addError($e->getMessage());
97
- } catch (Mage_Core_Exception $e) {
98
- $this->_getSession()->addError($e->getMessage());
99
- } catch (Exception $e) {
100
- $this->_getSession()
101
- ->addException($e, $this->__('An error occurred while updating the product(s)'));
102
- }
103
- if($this->getRequest()->getParam('pid'))
104
- $this->_redirect('*/*/');
105
- else
106
- $this->_redirect('adminhtml/catalog_product/index');
 
 
 
 
107
  }
108
 
109
  /**
@@ -115,44 +127,42 @@ class Zinc_Carebyzinc_Adminhtml_ProductController extends Mage_Adminhtml_Control
115
  $productIds = (array)$this->getRequest()->getParam('product');
116
  $category = $this->getRequest()->getParam('carebyzinc_category');
117
  $subCat = 'Other';
118
- if(!is_array($productIds)) {
119
- Mage::getSingleton('adminhtml/session')->addError(Mage::helper('carebyzinc')->__('Please select Product(s).'));
120
- }else {
121
- try {
122
- $this->_validateMassCarebyzinc($productIds, $category);
123
- $subCategories = Mage::getModel('carebyzinc/carebyzinc')->getSubCategoryArray($category);
124
- foreach ($productIds as $product_id) {
125
- $productModel = Mage::getModel('catalog/product')->load($product_id);
126
- $name = $productModel->getName();
127
- foreach($subCategories as $subcat){
128
- if (stripos($name, $subcat) !== false) {
129
- $subCat = $subcat;
130
- break;
 
 
 
 
 
 
 
 
 
 
131
  }
132
- }
133
- $productModel->setCarebyzincCategory($category);
134
- $productModel->setCarebyzincSubcategory($subCat);
135
- $productModel->save();
136
-
137
- }
138
-
139
- $this->_getSession()->addSuccess(
140
- $this->__('Total of %d record(s) have been updated.', count($productIds))
141
- );
142
- }
143
- catch (Mage_Core_Model_Exception $e) {
144
- $this->_getSession()->addError($e->getMessage());
145
- } catch (Mage_Core_Exception $e) {
146
- $this->_getSession()->addError($e->getMessage());
147
- } catch (Exception $e) {
148
- $this->_getSession()
149
- ->addException($e, $this->__('An error occurred while updating the product(s)'));
150
- }
151
- }
152
- if($this->getRequest()->getParam('pid'))
153
- $this->_redirect('*/*/');
154
- else
155
- $this->_redirect('adminhtml/catalog_product/index');
156
  }
157
 
158
  public function _validateMassCarebyzinc(array $productIds, $carebyzinc)
@@ -161,14 +171,51 @@ class Zinc_Carebyzinc_Adminhtml_ProductController extends Mage_Adminhtml_Control
161
  throw new Mage_Core_Exception(
162
  $this->__('Some of the processed products have no SKU value defined. Please fill it prior to performing operations on these products.')
163
  );
164
- }
165
  }
166
 
167
  public function getSubcategoriesAction()
168
  {
169
- $cid = $this->getRequest()->getParam('cat');
170
- $subCategories = Mage::getModel('carebyzinc/carebyzinc')->getSubCategoryArray($cid);
171
- return $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($subCategories));
172
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
173
  }
174
  }
64
  {
65
  $post = $this->getRequest()->getPost();
66
  $id = $this->getRequest()->getParam('id');
67
+ $model = Mage::getModel('catalog/product')->load($id);
68
+ $model->setCarebyzincCategory($post['category']);
69
+ $model->setCarebyzincSubcategory($post['subcategory']);
70
+ $model->setCarebyzincManufacturer($post['carebyzinc_manufacturer']);
71
+ $model->setCarebyzincModel($post['carebyzinc_model']);
72
+ $model->setCarebyzinc($post['carebyzinc']);
73
+ $model->save();
74
+ $this->_redirect('*/*/');
75
+ return;
76
 
77
  }
78
 
83
  public function massCarebyzincAction()
84
  {
85
  $productIds = (array)$this->getRequest()->getParam('product');
86
+ $carebyzinc = (int)$this->getRequest()->getParam('zinc_carebyzinc');
87
+ $this->_validateMassCarebyzinc($productIds, $carebyzinc);
88
+ if($carebyzinc == 1){
89
+ $this->loadLayout();
90
+ $this->_setActiveMenu('carebyzinc/products');
91
+ $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
92
+ $block = $this->getLayout()->getBlock('carebyzinc_massaction');
93
+ $block->setProductIds(implode(',',$productIds));
94
+ $this->renderLayout();
95
+ }else{
96
+
97
+ try {
98
 
99
+ Mage::getSingleton('catalog/product_action')
100
+ ->updateAttributes($productIds, array('carebyzinc' => $carebyzinc));
101
+
102
+ $this->_getSession()->addSuccess(
103
+ $this->__('Total of %d record(s) have been updated.', count($productIds))
104
+ );
105
+ }
106
+ catch (Mage_Core_Model_Exception $e) {
107
+ $this->_getSession()->addError($e->getMessage());
108
+ } catch (Mage_Core_Exception $e) {
109
+ $this->_getSession()->addError($e->getMessage());
110
+ } catch (Exception $e) {
111
+ $this->_getSession()
112
+ ->addException($e, $this->__('An error occurred while updating the product(s)'));
113
+ }
114
+ if($this->getRequest()->getParam('pid'))
115
+ $this->_redirect('*/*/');
116
+ else
117
+ $this->_redirect('adminhtml/catalog_product/index');
118
+ }
119
  }
120
 
121
  /**
127
  $productIds = (array)$this->getRequest()->getParam('product');
128
  $category = $this->getRequest()->getParam('carebyzinc_category');
129
  $subCat = 'Other';
130
+ if(!is_array($productIds)) {
131
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('carebyzinc')->__('Please select Product(s).'));
132
+ }else{
133
+ try {
134
+ $this->_validateMassCarebyzinc($productIds, $category);
135
+ $subCategories = Mage::getModel('carebyzinc/carebyzinc')->getSubCategoryArray($category);
136
+ foreach ($productIds as $product_id) {
137
+ $productModel = Mage::getModel('catalog/product')->load($product_id);
138
+ $name = $productModel->getName();
139
+ foreach($subCategories as $subcat){
140
+ if (stripos($name, $subcat) !== false) {
141
+ $subCat = $subcat;
142
+ break;
143
+ }
144
+ }
145
+ $productModel->setCarebyzincCategory($category);
146
+ $productModel->setCarebyzincSubcategory($subCat);
147
+ $productModel->save();
148
+
149
+ }
150
+ $this->_getSession()->addSuccess(
151
+ $this->__('Total of %d record(s) have been updated.', count($productIds))
152
+ );
153
  }
154
+ catch (Mage_Core_Model_Exception $e) {
155
+ $this->_getSession()->addError($e->getMessage());
156
+ } catch (Mage_Core_Exception $e) {
157
+ $this->_getSession()->addError($e->getMessage());
158
+ } catch (Exception $e) {
159
+ $this->_getSession()->addException($e, $this->__('An error occurred while updating the product(s)'));
160
+ }
161
+ }
162
+ if($this->getRequest()->getParam('pid'))
163
+ $this->_redirect('*/*/');
164
+ else
165
+ $this->_redirect('adminhtml/catalog_product/index');
 
 
 
 
 
 
 
 
 
 
 
 
166
  }
167
 
168
  public function _validateMassCarebyzinc(array $productIds, $carebyzinc)
171
  throw new Mage_Core_Exception(
172
  $this->__('Some of the processed products have no SKU value defined. Please fill it prior to performing operations on these products.')
173
  );
174
+ }
175
  }
176
 
177
  public function getSubcategoriesAction()
178
  {
179
+ $cid = $this->getRequest()->getParam('cat');
180
+ $subCategories = Mage::getModel('carebyzinc/carebyzinc')->getSubCategoryArray($cid);
181
+ return $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($subCategories));
182
+
183
+ }
184
+ public function saveCarebyzincCategoryAction()
185
+ {
186
+ $post = $this->getRequest()->getPost();
187
+ $subCategory = '';
188
+ if($post['carebyzinc_subcategory']){
189
+ $subCategory = $post['carebyzinc_subcategory'];
190
+ }
191
+ $category = $post['carebyzinc_category'];
192
+ $productIds = explode(',',$post['product_ids']);
193
+ $subCategories = Mage::getModel('carebyzinc/carebyzinc')->getSubCategoryArray($category);
194
+ foreach ($productIds as $product_id) {
195
+ $productModel = Mage::getModel('catalog/product')->load($product_id);
196
+ $name = $productModel->getName();
197
+ if(! $subCategory){
198
+ foreach($subCategories as $subcat){
199
+ if (stripos($name, $subcat) !== false) {
200
+ $subCategory = $subcat;
201
+ break;
202
+ }
203
+ }
204
+ }
205
+ if(! $subCategory){
206
+ $subCategory = 'Other';
207
+ }
208
+ $productModel->setCarebyzincCategory($category);
209
+ $productModel->setCarebyzincSubcategory($subCategory);
210
+ $productModel->setCarebyzinc(1);
211
+ $productModel->setCarebyzincManufacturer($post['carebyzinc_manufacturer']);
212
+ $productModel->setCarebyzincModel($post['carebyzinc_model']);
213
+ $productModel->save();
214
+ }
215
+ $this->_getSession()->addSuccess(
216
+ $this->__('Total of %d record(s) have been updated.', count($productIds))
217
+ );
218
+ $this->_redirect('*/*/');
219
+
220
  }
221
  }
app/code/local/Zinc/Carebyzinc/controllers/Adminhtml/Sales/Order/CreditmemoController.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * ZincPlatform
4
+ * @package Zinc_Carebyzinc
5
+ * @copyright Copyright (c) 2016-2017 Zinplatform (http://www.zincplatform.com/)
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
+
9
+ /**
10
+ * Adminhtml sales order creditmemo controller
11
+ */
12
+
13
+
14
+ require_once(Mage::getModuleDir('controllers','Mage_Adminhtml').DS.'Sales/Order'. DS.'CreditmemoController.php');
15
+
16
+ class Zinc_Carebyzinc_Adminhtml_Sales_Order_CreditmemoController extends Mage_Adminhtml_Sales_Order_CreditmemoController
17
+ {
18
+ /**
19
+ * Get requested items qtys and return to stock flags
20
+ */
21
+ protected function _getItemData()
22
+ {
23
+ $data = $this->getRequest()->getParam('creditmemo');
24
+ if (!$data) {
25
+ $data = Mage::getSingleton('adminhtml/session')->getFormData(true);
26
+ }
27
+
28
+ if (isset($data['items'])) {
29
+
30
+ if(Mage::getStoreConfig('carebyzinc/general/enabled')){
31
+ foreach($data['items'] as $key=>$value){
32
+ $orderItem = Mage::getModel('sales/order_item')->load($key);
33
+ if($orderItem->getProductId() == Mage::getStoreConfig('carebyzinc/general/warranty_product')){
34
+ if($data['items'][$key]['qty']==0){
35
+ if($data['items'][$orderItem->getCarebyzincParentid()]['qty'] == 0){}
36
+ else{
37
+ $data['items'][$key]['qty'] = 1;
38
+ }
39
+
40
+ }
41
+ }
42
+ }
43
+ }
44
+ $qtys = $data['items'];
45
+
46
+ } else {
47
+ $qtys = array();
48
+ }
49
+ return $qtys;
50
+ }
51
+
52
+ }
app/code/local/Zinc/Carebyzinc/controllers/CartController.php CHANGED
@@ -16,9 +16,10 @@ class Zinc_Carebyzinc_CartController extends Mage_Checkout_CartController
16
  * Update product configuration for a cart item
17
  */
18
  public function updateItemOptionsAction()
19
- {
20
  $cart = $this->_getCart();
21
  $id = (int) $this->getRequest()->getParam('id');
 
22
  $params = $this->getRequest()->getParams();
23
  if (!isset($params['options'])) {
24
  $params['options'] = array();
@@ -32,88 +33,39 @@ class Zinc_Carebyzinc_CartController extends Mage_Checkout_CartController
32
 
33
  $product = Mage::getModel('catalog/product')->load($quoteItem->getProductId());
34
  $productType = $product->getTypeId();
35
- $carebyzinc = '';
36
- $flag = 0;$price = 0;
37
- $additionalOptions = array();
38
  if(($productType == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE || $productType == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) && ($product->getCarebyzinc() == 1))
39
  {
40
- $newPrice = $quoteItem->getPrice();
41
  $qty = 1;
42
  $flag = 1;
43
  }
44
-
 
 
 
 
 
 
45
  if (isset($params['qty'])) {
46
  if($flag){
47
  $qty = $params['qty'];
48
- $params['qty'] = 1;
 
49
  }
50
  $filter = new Zend_Filter_LocalizedToNormalized(
51
  array('locale' => Mage::app()->getLocale()->getLocaleCode())
52
  );
53
  $params['qty'] = $filter->filter($params['qty']);
54
- }
55
-
56
- if($flag)
57
- {
58
- $carebyzincOption = $params['carebyzinc_option'];
59
- if ($additionalOption = $quoteItem->getOptionByCode('additional_options'))
60
- {
61
- $additionalOptions = (array) unserialize($additionalOption->getValue());
62
- }
63
- if($carebyzincOption){
64
- $priceQuote = Mage::getSingleton('core/session')->getCareQuote();
65
- $carebyzincAry = $priceQuote[$carebyzincOption];
66
- $price = $carebyzincAry['price_per_year']?$carebyzincAry['price_per_year']:0;
67
- $carebyzinc = serialize($priceQuote[$carebyzincOption]);
68
- foreach($additionalOptions as $option){
69
- if($option['label'] == 'carebyzinc'){
70
- $option['value'] = $carebyzincOption;
71
- break;
72
- }
73
- }
74
-
75
- Mage::getSingleton('core/session')->unsCareQuote();
76
-
77
- }else{
78
- $carebyzinc = $quoteItem->getCarebyzincOption();
79
- $price = $quoteItem->getCarebyzincPrice();
80
- }
81
-
82
- }
83
  $item = $cart->updateItem($id, new Varien_Object($params));
84
 
85
  if($flag){
86
- $productPrice = $item->getProduct()->getFinalPrice();
87
- $newPrice = $productPrice + $price;
88
- if($carebyzinc){
89
- $item->setCarebyzincOption($carebyzinc);
90
- $item->addOption(array(
91
- 'product_id' => $item->getProductId(),
92
- 'code' => 'additional_options',
93
- 'value' => serialize($additionalOptions)
94
- ));
95
- $item->setCarebyzincPrice($price);
96
- $item->setCustomPrice($newPrice);
97
- $item->setOriginalCustomPrice($newPrice);
98
- $item->getProduct()->setIsSuperMode(true);
99
- }
100
  if($qty >1){
101
  $quote = Mage::getSingleton('checkout/session')->getQuote();
102
  for($i = 1;$i<=($qty-1);$i++){
103
  $result = $quote->addProduct($product, $item->getBuyRequest());
104
- $result = ( $result->getParentItem() ? $result->getParentItem() : $result );
105
- if($carebyzinc){
106
- $result->setCarebyzincOption($carebyzinc);
107
- $result->setCarebyzincPrice($price);
108
- $result->addOption(array(
109
- 'product_id' => $item->getProductId(),
110
- 'code' => 'additional_options',
111
- 'value' => serialize($additionalOptions)
112
- ));
113
-
114
- $result->setCustomPrice($newPrice);
115
- $result->setOriginalCustomPrice($newPrice);
116
- }
117
  }
118
  }
119
 
@@ -180,7 +132,7 @@ class Zinc_Carebyzinc_CartController extends Mage_Checkout_CartController
180
  $filter = new Zend_Filter_LocalizedToNormalized(
181
  array('locale' => Mage::app()->getLocale()->getLocaleCode())
182
  );
183
- $cart = $this->_getCart();
184
  foreach ($cartData as $index => $data) {
185
  $quote = Mage::getSingleton('checkout/session')->getQuote();
186
  $oldQuoteItem = $quote->getItemById($index);
@@ -190,42 +142,34 @@ class Zinc_Carebyzinc_CartController extends Mage_Checkout_CartController
190
  ->setStoreId(Mage::app()->getStore()->getId())
191
  ->load($oldQuoteItem->getProductId());
192
  $productType = $product->getTypeId();
193
- $newPrice = 0;$price = 0;$additionalOptions = array();
194
  if(($productType == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE || $productType == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) && ($product->getCarebyzinc() == 1))
195
- {
196
- $additionalOption = $oldQuoteItem->getOptionByCode('additional_options');
197
- $newPrice = $oldQuoteItem->getPrice();
198
- $price = $oldQuoteItem->getCarebyzincPrice();
199
  $qty = 1;
200
- $flag = 1;
201
- if ($additionalOption = $oldQuoteItem->getOptionByCode('additional_options'))
202
- {
203
- $additionalOptions = (array) unserialize($additionalOption->getValue());
204
- }
205
  }
 
206
  if (isset($data['qty'])) {
207
  if($flag){
208
  $qty = $data['qty'];
209
- $data['qty'] = 1;
 
 
 
 
 
 
 
 
210
  }
211
  $cartData[$index]['qty'] = $filter->filter(trim($data['qty']));
212
  }
 
213
  if($flag){
214
  if($qty >1){
215
  for($i = 1;$i<=($qty-1);$i++){
216
 
217
  $result = $quote->addProduct($product, $oldQuoteItem->getBuyRequest());
218
- $result = ( $result->getParentItem() ? $result->getParentItem() : $result );
219
- $result->setCarebyzincOption($oldQuoteItem->getCarebyzincOption());
220
- $result->setCarebyzincPrice($price);
221
- $result->addOption(array(
222
- 'product_id' => $result->getProductId(),
223
- 'code' => 'additional_options',
224
- 'value' => serialize($additionalOptions)
225
- ));
226
-
227
- $result->setCustomPrice($newPrice);
228
- $result->setOriginalCustomPrice($newPrice);
229
  }
230
  }
231
  }
@@ -247,5 +191,134 @@ class Zinc_Carebyzinc_CartController extends Mage_Checkout_CartController
247
  Mage::logException($e);
248
  }
249
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
250
 
251
  }
16
  * Update product configuration for a cart item
17
  */
18
  public function updateItemOptionsAction()
19
+ {
20
  $cart = $this->_getCart();
21
  $id = (int) $this->getRequest()->getParam('id');
22
+
23
  $params = $this->getRequest()->getParams();
24
  if (!isset($params['options'])) {
25
  $params['options'] = array();
33
 
34
  $product = Mage::getModel('catalog/product')->load($quoteItem->getProductId());
35
  $productType = $product->getTypeId();
36
+ $flag = 0;
 
 
37
  if(($productType == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE || $productType == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) && ($product->getCarebyzinc() == 1))
38
  {
 
39
  $qty = 1;
40
  $flag = 1;
41
  }
42
+ if($product->getId() == Mage::getStoreConfig('carebyzinc/general/warranty_product')){
43
+ $flag = 0;
44
+ if($qty >1){
45
+ $params['qty'] = 1;
46
+ $qty = 1;
47
+ }
48
+ }
49
  if (isset($params['qty'])) {
50
  if($flag){
51
  $qty = $params['qty'];
52
+ if($qty >1)
53
+ $params['qty'] = 1;
54
  }
55
  $filter = new Zend_Filter_LocalizedToNormalized(
56
  array('locale' => Mage::app()->getLocale()->getLocaleCode())
57
  );
58
  $params['qty'] = $filter->filter($params['qty']);
59
+ }
60
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  $item = $cart->updateItem($id, new Varien_Object($params));
62
 
63
  if($flag){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  if($qty >1){
65
  $quote = Mage::getSingleton('checkout/session')->getQuote();
66
  for($i = 1;$i<=($qty-1);$i++){
67
  $result = $quote->addProduct($product, $item->getBuyRequest());
68
+ $result = ( $result->getParentItem() ? $result->getParentItem() : $result );
 
 
 
 
 
 
 
 
 
 
 
 
69
  }
70
  }
71
 
132
  $filter = new Zend_Filter_LocalizedToNormalized(
133
  array('locale' => Mage::app()->getLocale()->getLocaleCode())
134
  );
135
+ $cart = $this->_getCart();
136
  foreach ($cartData as $index => $data) {
137
  $quote = Mage::getSingleton('checkout/session')->getQuote();
138
  $oldQuoteItem = $quote->getItemById($index);
142
  ->setStoreId(Mage::app()->getStore()->getId())
143
  ->load($oldQuoteItem->getProductId());
144
  $productType = $product->getTypeId();
 
145
  if(($productType == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE || $productType == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) && ($product->getCarebyzinc() == 1))
146
+ {
 
 
 
147
  $qty = 1;
148
+ $flag = 1;
 
 
 
 
149
  }
150
+
151
  if (isset($data['qty'])) {
152
  if($flag){
153
  $qty = $data['qty'];
154
+ if($qty >1)
155
+ $data['qty'] = 1;
156
+ }
157
+ if($product->getId() == Mage::getStoreConfig('carebyzinc/general/warranty_product')){
158
+ $flag = 0;
159
+ if($data['qty'] >1){
160
+ $data['qty'] = 1;
161
+ $qty = 1;
162
+ }
163
  }
164
  $cartData[$index]['qty'] = $filter->filter(trim($data['qty']));
165
  }
166
+
167
  if($flag){
168
  if($qty >1){
169
  for($i = 1;$i<=($qty-1);$i++){
170
 
171
  $result = $quote->addProduct($product, $oldQuoteItem->getBuyRequest());
172
+ $result = ( $result->getParentItem() ? $result->getParentItem() : $result );
 
 
 
 
 
 
 
 
 
 
173
  }
174
  }
175
  }
191
  Mage::logException($e);
192
  }
193
  }
194
+
195
+
196
+ /**
197
+ * Minicart delete action
198
+ */
199
+ public function ajaxDeleteAction()
200
+ {
201
+ if (!$this->_validateFormKey()) {
202
+ Mage::throwException('Invalid form key');
203
+ }
204
+ $id = (int) $this->getRequest()->getParam('id');
205
+ $result = array();
206
+ if ($id) {
207
+ try {
208
+
209
+ if(Mage::getStoreConfig('carebyzinc/general/enabled')){
210
+ $cartHelper = Mage::helper('checkout/cart');
211
+ $cart = Mage::getSingleton('checkout/cart');
212
+ $_item = $cart->getQuote()->getItemById($id);
213
+ $itemId = $_item->getId();
214
+ $productId = $_item->getProductId();
215
+ if($_item->getCarebyzincVariantid()){
216
+ $cart = Mage::getModel('checkout/cart')->getQuote();
217
+ foreach ($cart->getAllItems() as $item) {
218
+ if($item->getCarebyzincParentid() == $itemId)
219
+ $cartHelper->getCart()->removeItem($item->getId())->save();
220
+
221
+ }
222
+ }else{
223
+ if($productId == Mage::getStoreConfig('carebyzinc/general/warranty_product')){
224
+ $itemId = $_item->getCarebyzincParentid();
225
+ $cart = Mage::getSingleton('checkout/cart');
226
+ $item = $cart->getQuote()->getItemById($itemId);
227
+ $item->setCarebyzincVariantid(NULL);
228
+ $item->save();
229
+ }
230
+ }
231
+
232
+ }
233
+
234
+ $this->_getCart()->removeItem($id)->save();
235
+
236
+ $result['qty'] = $this->_getCart()->getSummaryQty();
237
+
238
+ $this->loadLayout();
239
+ $result['content'] = $this->getLayout()->getBlock('minicart_content')->toHtml();
240
+
241
+ $result['success'] = 1;
242
+ $result['message'] = $this->__('Item was removed successfully.');
243
+ Mage::dispatchEvent('ajax_cart_remove_item_success', array('id' => $id));
244
+ } catch (Exception $e) {
245
+ $result['success'] = 0;
246
+ $result['error'] = $this->__('Can not remove the item.');
247
+ }
248
+ }
249
+
250
+ $this->getResponse()->setHeader('Content-type', 'application/json');
251
+ $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
252
+ }
253
+
254
+
255
+ /**
256
+ * Minicart ajax update qty action
257
+ */
258
+ public function ajaxUpdateAction()
259
+ {
260
+ if (!$this->_validateFormKey()) {
261
+ Mage::throwException('Invalid form key');
262
+ }
263
+ $id = (int)$this->getRequest()->getParam('id');
264
+ $qty = $this->getRequest()->getParam('qty');
265
+ $result = array();
266
+ if ($id) {
267
+ try {
268
+ $cart = $this->_getCart();
269
+ $quoteItem = $cart->getQuote()->getItemById($id);
270
+ if (!$quoteItem) {
271
+ Mage::throwException($this->__('Quote item is not found.'));
272
+ }
273
+ $product = Mage::getModel('catalog/product')
274
+ ->setStoreId(Mage::app()->getStore()->getId())
275
+ ->load($quoteItem->getProductId());
276
+ if($product->getCarebyzinc() == 1)
277
+ {
278
+ $qty = 1;
279
+ $flag = 1;
280
+ }
281
+ if($product->getId() == Mage::getStoreConfig('carebyzinc/general/warranty_product')){
282
+ $flag = 0;
283
+ if($qty >1){
284
+ $qty = 1;
285
+ }
286
+ }
287
+ if (isset($qty)) {
288
+ $filter = new Zend_Filter_LocalizedToNormalized(
289
+ array('locale' => Mage::app()->getLocale()->getLocaleCode())
290
+ );
291
+ $qty = $filter->filter($qty);
292
+ }
293
+
294
+
295
+ if ($qty == 0) {
296
+ $cart->removeItem($id);
297
+ } else {
298
+ $quoteItem->setQty($qty)->save();
299
+ }
300
+ $this->_getCart()->save();
301
+
302
+ $this->loadLayout();
303
+ $result['content'] = $this->getLayout()->getBlock('minicart_content')->toHtml();
304
+
305
+ $result['qty'] = $this->_getCart()->getSummaryQty();
306
+
307
+ if (!$quoteItem->getHasError()) {
308
+ $result['message'] = $this->__('Item was updated successfully.');
309
+ } else {
310
+ $result['notice'] = $quoteItem->getMessage();
311
+ }
312
+ $result['success'] = 1;
313
+ } catch (Exception $e) {
314
+ $result['success'] = 0;
315
+ $result['error'] = $this->__('Can not save item.');
316
+ }
317
+ }
318
+
319
+ $this->getResponse()->setHeader('Content-type', 'application/json');
320
+ $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
321
+ }
322
+
323
 
324
  }
app/code/local/Zinc/Carebyzinc/controllers/IndexController.php CHANGED
@@ -27,6 +27,7 @@ class Zinc_Carebyzinc_IndexController extends Mage_Core_Controller_Front_Action
27
  $response = '';
28
  $this->loadLayout();
29
  $product = Mage::getModel('catalog/product')->load($product_id);
 
30
  if(! empty($configOptionsArray)){
31
  $attributes = $product->getTypeInstance(true)->getConfigurableAttributes($product);
32
  $priceVal = 0;
@@ -58,6 +59,8 @@ class Zinc_Carebyzinc_IndexController extends Mage_Core_Controller_Front_Action
58
  $response = is_array($response[$itemId])?$response[$itemId]:$response;
59
  $quoteBlock->setTemplate('carebyzinc/options/cart.phtml');
60
  $quoteBlock->setItemId($itemId);
 
 
61
 
62
  } else {
63
  $response = $model->getPriceQuote($product,$zip,$customoptionPrice);
@@ -70,80 +73,60 @@ class Zinc_Carebyzinc_IndexController extends Mage_Core_Controller_Front_Action
70
  }
71
 
72
  public function updatePriceQuoteinCartAction()
73
- {
 
74
  $carebyzincId = $this->getRequest()->getParam('carebyzinc');
75
  $itemId = $this->getRequest()->getParam('itemId');
76
  $priceQuoteSession = Mage::getSingleton('core/session')->getCareByZincQuote();
77
  $priceQuote = $priceQuoteSession[$itemId];
78
-
79
  if($carebyzincItem = $priceQuote[$carebyzincId]){
80
- $additionalOptions[] = array(
81
- 'label' => 'carebyzinc',
82
- 'value' => $carebyzincId,
83
- );
84
-
85
  $cart = Mage::getSingleton('checkout/cart');
86
- $item = $cart->getQuote()->getItemById($itemId);
87
- $item->getProduct()->setIsSuperMode(true);
88
- if($price = $carebyzincItem['price_per_year']){
89
- $product = Mage::getModel('catalog/product')->load($item->getProductId());
90
- $productPrice = $item->getProduct()->getFinalPrice();
91
- $newPrice = $productPrice + $price;
92
- $item->setCarebyzincPrice($price);
93
- $item->setCustomPrice($newPrice);
94
- $item->setOriginalCustomPrice($newPrice);
95
- }
96
- if ($additionalOption = $item->getOptionByCode('additional_options'))
97
- {
98
- $additionalOptions = (array) unserialize($additionalOption->getValue());
99
- }
100
- $item->setCarebyzincOption(serialize($priceQuote[$carebyzincId]));
101
- $item->addOption(array(
102
- 'product_id' => $item->getProductId(),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
  'code' => 'additional_options',
104
  'value' => serialize($additionalOptions)
105
  ));
106
- $item->save();
107
- $cart->save();
 
 
 
108
  Mage::getSingleton('core/session')->unsCareByZincQuote();
109
  }
110
  echo 'success';
111
  }
112
- public function removeWarrantyAction()
113
- {
114
- $item_id = $this->getRequest()->getParam('id');
115
- if($item_id < 0){
116
- return '';
117
- }
118
- $cart = Mage::getSingleton('checkout/cart');
119
- $quoteItem = $cart->getQuote()->getItemById($item_id);
120
- if ($additionalOption = $quoteItem->getOptionByCode('additional_options'))
121
- {
122
- $additionalOptions = (array) unserialize($additionalOption->getValue());
123
- }
124
- $additionalOptionsArray = array();
125
- foreach($additionalOptions as $option){
126
- if($option['label'] != 'carebyzinc')
127
- $additionalOptionsArray[] = $option;
128
- }
129
- $quoteItem->setCarebyzincOption('');
130
- $productPrice = $quoteItem->getProduct()->getFinalPrice();
131
- if(! empty($additionalOptionsArray)){
132
- $quoteItem->addOption(array( 'product_id' => $quoteItem->getProductId(),
133
- 'code' => 'additional_options',
134
- 'value' => serialize($additionalOptionsArray)
135
- ));
136
- }else{
137
- $quoteItem->getOptionByCode('additional_options')->delete();
138
-
139
- }
140
- $quoteItem->setCarebyzincPrice(0);
141
- $quoteItem->setCustomPrice($productPrice);
142
- $quoteItem->setOriginalCustomPrice($productPrice);
143
- $quoteItem->getProduct()->setIsSuperMode(true);
144
- $quoteItem->save();
145
- $cart->getQuote()->collectTotals()->save();
146
- $this->_redirect('checkout/cart/');
147
- }
148
-
149
  }
27
  $response = '';
28
  $this->loadLayout();
29
  $product = Mage::getModel('catalog/product')->load($product_id);
30
+ $basePrice = $product->getPrice();
31
  if(! empty($configOptionsArray)){
32
  $attributes = $product->getTypeInstance(true)->getConfigurableAttributes($product);
33
  $priceVal = 0;
59
  $response = is_array($response[$itemId])?$response[$itemId]:$response;
60
  $quoteBlock->setTemplate('carebyzinc/options/cart.phtml');
61
  $quoteBlock->setItemId($itemId);
62
+ $quoteBlock->setZipData($zip);
63
+ $quoteBlock->setPId($product->getId());
64
 
65
  } else {
66
  $response = $model->getPriceQuote($product,$zip,$customoptionPrice);
73
  }
74
 
75
  public function updatePriceQuoteinCartAction()
76
+ {
77
+
78
  $carebyzincId = $this->getRequest()->getParam('carebyzinc');
79
  $itemId = $this->getRequest()->getParam('itemId');
80
  $priceQuoteSession = Mage::getSingleton('core/session')->getCareByZincQuote();
81
  $priceQuote = $priceQuoteSession[$itemId];
82
+ $additionalOptions = array();
83
  if($carebyzincItem = $priceQuote[$carebyzincId]){
84
+
 
 
 
 
85
  $cart = Mage::getSingleton('checkout/cart');
86
+ $item = $cart->getQuote()->getItemById($itemId);
87
+ $item->setCarebyzincVariantid($carebyzincId);
88
+ $item->save();
89
+ $warrantPrdctId = Mage::getStoreConfig('carebyzinc/general/warranty_product');
90
+ if($warrantPrdctId){
91
+
92
+ $req = array('qty'=>1);
93
+ $careParentId = $itemId;
94
+ $warrantyProduct = Mage::getModel('catalog/product')->load($warrantPrdctId);
95
+ $productPrice = $warrantyProduct->getPrice();
96
+
97
+ if($price = $carebyzincItem['price_per_year'])
98
+ $newPrice = $productPrice + $price;
99
+ $quote = Mage::getSingleton('checkout/session')->getQuote();
100
+
101
+ $quoteItem = $quote->addProduct($warrantyProduct,1);
102
+ $quoteItem->setCustomPrice($newPrice);
103
+ $quoteItem->setOriginalCustomPrice($newPrice);
104
+ $quoteItem->setCarebyzincPrice($price);
105
+ $quoteItem->setCarebyzincParentid((int)$careParentId);
106
+ $quoteItem->getProduct()->setIsSuperMode(true);
107
+
108
+ if( $item = $priceQuote[$carebyzincId]){
109
+ $additionalOptions[] = array(
110
+ 'label' => 'carebyzinc',
111
+ 'value' => $carebyzincId,
112
+ );
113
+ $quoteItem->setCarebyzincOption(serialize($priceQuote[$carebyzincId]));
114
+
115
+ }
116
+ $quoteItem->addOption(array(
117
+ 'product_id' => $quoteItem->getProductId(),
118
  'code' => 'additional_options',
119
  'value' => serialize($additionalOptions)
120
  ));
121
+
122
+ $quote->collectTotals()->save();
123
+
124
+ }
125
+
126
  Mage::getSingleton('core/session')->unsCareByZincQuote();
127
  }
128
  echo 'success';
129
  }
130
+
131
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  }
app/code/local/Zinc/Carebyzinc/controllers/Sales/OrderController.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * ZincPlatform
4
+ * @package Zinc_Carebyzinc
5
+ * @copyright Copyright (c) 2016-2017 Zinplatform (http://www.zincplatform.com/)
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
+
9
+
10
+ require_once 'Mage/Sales/controllers/OrderController.php';
11
+ class Zinc_Carebyzinc_Sales_OrderController extends Mage_Sales_OrderController
12
+ {
13
+
14
+ /**
15
+ * Action for reorder
16
+ */
17
+ public function reorderAction()
18
+ {
19
+ if (!$this->_loadValidOrder()) {
20
+ return;
21
+ }
22
+ $order = Mage::registry('current_order');
23
+
24
+ $cart = Mage::getSingleton('checkout/cart');
25
+ $cartTruncated = false;
26
+ /* @var $cart Mage_Checkout_Model_Cart */
27
+
28
+ $items = $order->getItemsCollection();
29
+ foreach ($items as $item) {
30
+ try {
31
+ if($item->getProductId() != Mage::getStoreConfig('carebyzinc/general/warranty_product'))
32
+ $cart->addOrderItem($item);
33
+ } catch (Mage_Core_Exception $e){
34
+ if (Mage::getSingleton('checkout/session')->getUseNotice(true)) {
35
+ Mage::getSingleton('checkout/session')->addNotice($e->getMessage());
36
+ }
37
+ else {
38
+ Mage::getSingleton('checkout/session')->addError($e->getMessage());
39
+ }
40
+ $this->_redirect('*/*/history');
41
+ } catch (Exception $e) {
42
+ Mage::getSingleton('checkout/session')->addException($e,
43
+ Mage::helper('checkout')->__('Cannot add the item to shopping cart.')
44
+ );
45
+ $this->_redirect('checkout/cart');
46
+ }
47
+ }
48
+
49
+ $cart->save();
50
+ $this->_redirect('checkout/cart');
51
+ }
52
+
53
+ }
app/code/local/Zinc/Carebyzinc/etc/config.xml CHANGED
@@ -10,7 +10,7 @@
10
  <config>
11
  <modules>
12
  <Zinc_Carebyzinc>
13
- <version>1.0.4</version>
14
  </Zinc_Carebyzinc>
15
  </modules>
16
  <frontend>
@@ -32,16 +32,16 @@
32
  </layout>
33
  </frontend>
34
 
35
- <admin>
36
- <routers>
37
- <adminhtml>
38
- <args>
39
- <modules>
40
- <carebyzinc after="Mage_Adminhtml">Zinc_Carebyzinc_Adminhtml</carebyzinc>
41
- </modules>
42
  </args>
43
- </adminhtml>
44
- </routers>
45
  </admin>
46
  <adminhtml>
47
  <layout>
@@ -58,37 +58,63 @@
58
  <from><![CDATA[#^/checkout/cart/#]]></from>
59
  <to>/carebyzinc/cart/</to>
60
  </zinc_carebyzinc>
61
- </rewrite>
 
 
 
 
 
62
 
63
  <sales>
64
  <quote>
65
  <item>
66
  <product_attributes>
67
  <carebyzinc_option />
 
 
 
68
  </product_attributes>
69
  </item>
70
  </quote>
71
  </sales>
72
  <events>
73
- <controller_action_predispatch_checkout_cart_index>
 
 
 
 
 
 
 
 
 
74
  <observers>
75
  <modify_carebyzinc>
76
  <type>singleton</type>
77
- <class>Zinc_Carebyzinc_Model_Observer</class>
78
  <method>cartLoad</method>
79
  </modify_carebyzinc>
80
  </observers>
81
- </controller_action_predispatch_checkout_cart_index>
82
- <controller_action_predispatch_checkout_cart_onepage>
83
  <observers>
84
- <modify_carebyzinc>
85
  <type>singleton</type>
86
- <class>Zinc_Carebyzinc_Model_Observer</class>
87
- <method>cartLoad</method>
88
- </modify_carebyzinc>
 
 
 
 
 
 
 
 
 
89
  </observers>
90
- </controller_action_predispatch_checkout_cart_onepage>
91
- <sales_order_save_after>
92
  <observers>
93
  <save_carebyzinc>
94
  <type>singleton</type>
@@ -96,18 +122,45 @@
96
  <method>saveCarebyzinc</method>
97
  </save_carebyzinc>
98
  </observers>
99
- </sales_order_save_after>
100
- </events>
101
- <fieldsets>
 
 
 
 
 
 
 
 
 
102
  <sales_convert_quote_item>
103
  <carebyzinc_option>
104
  <to_order_item>*</to_order_item>
105
  </carebyzinc_option>
 
 
 
 
 
 
 
 
 
106
  </sales_convert_quote_item>
107
  <sales_convert_order_item>
108
  <carebyzinc_option>
109
  <to_quote_item>*</to_quote_item>
110
  </carebyzinc_option>
 
 
 
 
 
 
 
 
 
111
  </sales_convert_order_item>
112
  </fieldsets>
113
  <models>
@@ -126,13 +179,14 @@
126
  <checkout>
127
  <rewrite>
128
  <cart>Zinc_Carebyzinc_Model_Checkout_Cart</cart>
 
129
  </rewrite>
130
  </checkout>
131
  <sales>
132
  <rewrite>
133
  <quote>Zinc_Carebyzinc_Model_Sales_Quote</quote>
134
  </rewrite>
135
- </sales>
136
  </models>
137
  <resources>
138
  <carebyzinc_setup>
10
  <config>
11
  <modules>
12
  <Zinc_Carebyzinc>
13
+ <version>1.0.7</version>
14
  </Zinc_Carebyzinc>
15
  </modules>
16
  <frontend>
32
  </layout>
33
  </frontend>
34
 
35
+ <admin>
36
+ <routers>
37
+ <adminhtml>
38
+ <args>
39
+ <modules>
40
+ <zinc_carebyzinc before="Mage_Adminhtml">Zinc_Carebyzinc_Adminhtml</zinc_carebyzinc>
41
+ </modules>
42
  </args>
43
+ </adminhtml>
44
+ </routers>
45
  </admin>
46
  <adminhtml>
47
  <layout>
58
  <from><![CDATA[#^/checkout/cart/#]]></from>
59
  <to>/carebyzinc/cart/</to>
60
  </zinc_carebyzinc>
61
+ <carebyzinc_order>
62
+ <from><![CDATA[#^/sales/order/#]]></from>
63
+ <to>/carebyzinc/sales_order/</to>
64
+ </carebyzinc_order>
65
+
66
+ </rewrite>
67
 
68
  <sales>
69
  <quote>
70
  <item>
71
  <product_attributes>
72
  <carebyzinc_option />
73
+ <carebyzinc_price />
74
+ <carebyzinc_variantid />
75
+ <carebyzinc_parentid />
76
  </product_attributes>
77
  </item>
78
  </quote>
79
  </sales>
80
  <events>
81
+ <controller_action_predispatch_checkout_cart_index>
82
+ <observers>
83
+ <modify_carebyzinc>
84
+ <type>singleton</type>
85
+ <class>Zinc_Carebyzinc_Model_Observer</class>
86
+ <method>cartLoad</method>
87
+ </modify_carebyzinc>
88
+ </observers>
89
+ </controller_action_predispatch_checkout_cart_index>
90
+ <controller_action_predispatch_checkout_onepage_index>
91
  <observers>
92
  <modify_carebyzinc>
93
  <type>singleton</type>
94
+ <class>Zinc_Carebyzinc_Model_Observer</class>
95
  <method>cartLoad</method>
96
  </modify_carebyzinc>
97
  </observers>
98
+ </controller_action_predispatch_checkout_onepage_index>
99
+ <sales_quote_remove_item>
100
  <observers>
101
+ <delete_carebyzinc>
102
  <type>singleton</type>
103
+ <class>Zinc_Carebyzinc_Model_Observer</class>
104
+ <method>warrantyDelete</method>
105
+ </delete_carebyzinc>
106
+ </observers>
107
+ </sales_quote_remove_item>
108
+ <sales_model_service_quote_submit_after>
109
+ <observers>
110
+ <set_carebyzinc>
111
+ <type>singleton</type>
112
+ <class>Zinc_Carebyzinc_Model_Observer</class>
113
+ <method>setCarebyzinc</method>
114
+ </set_carebyzinc>
115
  </observers>
116
+ </sales_model_service_quote_submit_after>
117
+ <sales_order_save_after>
118
  <observers>
119
  <save_carebyzinc>
120
  <type>singleton</type>
122
  <method>saveCarebyzinc</method>
123
  </save_carebyzinc>
124
  </observers>
125
+ </sales_order_save_after>
126
+ <sales_quote_item_set_product>
127
+ <observers>
128
+ <set_itemname>
129
+ <type>singleton</type>
130
+ <class>Zinc_Carebyzinc_Model_Observer</class>
131
+ <method>salesQuoteItemSetProduct</method>
132
+ </set_itemname>
133
+ </observers>
134
+ </sales_quote_item_set_product>
135
+ </events>
136
+ <fieldsets>
137
  <sales_convert_quote_item>
138
  <carebyzinc_option>
139
  <to_order_item>*</to_order_item>
140
  </carebyzinc_option>
141
+ <carebyzinc_price>
142
+ <to_order_item>*</to_order_item>
143
+ </carebyzinc_price>
144
+ <carebyzinc_variantid>
145
+ <to_order_item>*</to_order_item>
146
+ </carebyzinc_variantid>
147
+ <carebyzinc_parentid>
148
+ <to_order_item>*</to_order_item>
149
+ </carebyzinc_parentid>
150
  </sales_convert_quote_item>
151
  <sales_convert_order_item>
152
  <carebyzinc_option>
153
  <to_quote_item>*</to_quote_item>
154
  </carebyzinc_option>
155
+ <carebyzinc_price>
156
+ <to_quote_item>*</to_quote_item>
157
+ </carebyzinc_price>
158
+ <carebyzinc_variantid>
159
+ <to_quote_item>*</to_quote_item>
160
+ </carebyzinc_variantid>
161
+ <carebyzinc_parentid>
162
+ <to_quote_item>*</to_quote_item>
163
+ </carebyzinc_parentid>
164
  </sales_convert_order_item>
165
  </fieldsets>
166
  <models>
179
  <checkout>
180
  <rewrite>
181
  <cart>Zinc_Carebyzinc_Model_Checkout_Cart</cart>
182
+ <type_multishipping>Zinc_Carebyzinc_Model_Checkout_Multishipping</type_multishipping>
183
  </rewrite>
184
  </checkout>
185
  <sales>
186
  <rewrite>
187
  <quote>Zinc_Carebyzinc_Model_Sales_Quote</quote>
188
  </rewrite>
189
+ </sales>
190
  </models>
191
  <resources>
192
  <carebyzinc_setup>
app/code/local/Zinc/Carebyzinc/etc/system.xml CHANGED
@@ -64,6 +64,15 @@
64
  <show_in_store>1</show_in_store>
65
  <frontend_type>text</frontend_type>
66
  </defaultzip>
 
 
 
 
 
 
 
 
 
67
 
68
 
69
  </fields>
@@ -119,19 +128,7 @@
119
  <show_in_website>1</show_in_website>
120
  <show_in_store>1</show_in_store>
121
  </url>
122
- <user_id>
123
- <label>User ID</label>
124
- <frontend_type>text</frontend_type>
125
- <depends>
126
- <testmode>
127
- <value>live</value>
128
- </testmode>
129
- </depends>
130
- <sort_order>20</sort_order>
131
- <show_in_default>1</show_in_default>
132
- <show_in_website>1</show_in_website>
133
- <show_in_store>1</show_in_store>
134
- </user_id>
135
  <xuser_token>
136
  <label>X-User-Token</label>
137
  <frontend_type>text</frontend_type>
@@ -145,19 +142,7 @@
145
  <show_in_website>1</show_in_website>
146
  <show_in_store>1</show_in_store>
147
  </xuser_token>
148
- <test_user_id>
149
- <label>Test API User ID</label>
150
- <frontend_type>text</frontend_type>
151
- <depends>
152
- <testmode>
153
- <value>test</value>
154
- </testmode>
155
- </depends>
156
- <sort_order>20</sort_order>
157
- <show_in_default>1</show_in_default>
158
- <show_in_website>1</show_in_website>
159
- <show_in_store>1</show_in_store>
160
- </test_user_id>
161
  <test_xuser_token>
162
  <label>Test API X-User-Token</label>
163
  <frontend_type>text</frontend_type>
64
  <show_in_store>1</show_in_store>
65
  <frontend_type>text</frontend_type>
66
  </defaultzip>
67
+ <warranty_product>
68
+ <label>Warranty Product Id</label>
69
+ <sort_order>50</sort_order>
70
+ <validate>required-entry validate-number</validate>
71
+ <show_in_default>1</show_in_default>
72
+ <show_in_website>1</show_in_website>
73
+ <show_in_store>1</show_in_store>
74
+ <frontend_type>text</frontend_type>
75
+ </warranty_product>
76
 
77
 
78
  </fields>
128
  <show_in_website>1</show_in_website>
129
  <show_in_store>1</show_in_store>
130
  </url>
131
+
 
 
 
 
 
 
 
 
 
 
 
 
132
  <xuser_token>
133
  <label>X-User-Token</label>
134
  <frontend_type>text</frontend_type>
142
  <show_in_website>1</show_in_website>
143
  <show_in_store>1</show_in_store>
144
  </xuser_token>
145
+
 
 
 
 
 
 
 
 
 
 
 
 
146
  <test_xuser_token>
147
  <label>Test API X-User-Token</label>
148
  <frontend_type>text</frontend_type>
app/code/local/Zinc/Carebyzinc/sql/carebyzinc_setup/mysql4-upgrade-1.0.4-1.0.5.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * ZincPlatform
4
+ * @package Zinc_Carebyzinc
5
+ * @copyright Copyright (c) 2016-2017 Zinplatform (http://www.zincplatform.com/)
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
+ $installer = new Mage_Sales_Model_Resource_Setup('core_setup');
9
+ $entities = array(
10
+ 'quote_item',
11
+ 'order_item'
12
+ );
13
+ $options = array(
14
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
15
+ 'visible' => true,
16
+ 'required' => false
17
+ );
18
+ foreach ($entities as $entity) {
19
+ $installer->addAttribute($entity, 'carebyzinc_variantid', $options);
20
+ }
21
+
22
+ $installer->endSetup();
23
+
app/code/local/Zinc/Carebyzinc/sql/carebyzinc_setup/mysql4-upgrade-1.0.5-1.0.6.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * ZincPlatform
4
+ * @package Zinc_Carebyzinc
5
+ * @copyright Copyright (c) 2016-2017 Zinplatform (http://www.zincplatform.com/)
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
+ $installer = new Mage_Sales_Model_Resource_Setup('core_setup');
9
+ $entities = array(
10
+ 'quote_item',
11
+ 'order_item'
12
+ );
13
+ $options = array(
14
+ 'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
15
+ 'visible' => true,
16
+ 'required' => false
17
+ );
18
+ foreach ($entities as $entity) {
19
+ $installer->addAttribute($entity, 'carebyzinc_parentid', $options);
20
+ }
21
+
22
+ $installer->endSetup();
23
+
app/code/local/Zinc/Carebyzinc/sql/carebyzinc_setup/mysql4-upgrade-1.0.6-1.0.7.php ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * ZincPlatform
4
+ * @package Zinc_Carebyzinc
5
+ * @copyright Copyright (c) 2016-2017 Zinplatform (http://www.zincplatform.com/)
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
+
9
+ $installer = $this;
10
+
11
+ $installer->startSetup();
12
+
13
+ Mage::app()->getStore()->setId(Mage_Core_Model_App::ADMIN_STORE_ID);
14
+
15
+ $websiteIds = Mage::getModel('core/website')->getCollection()
16
+ ->addFieldToFilter('website_id', array('neq'=>0))
17
+ ->getAllIds();
18
+
19
+ $product = Mage::getModel('catalog/product');
20
+ $product->setWebsiteIds($websiteIds);
21
+ $product->setTypeId('virtual');
22
+ $product->addData(array(
23
+ 'sku' => 'carebyzinc',
24
+ 'name' => 'Warranty',
25
+ 'attribute_set_id' => $product->getDefaultAttributeSetId(),
26
+ 'status' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED,
27
+ 'visibility' => Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE,
28
+ 'weight' => 1,
29
+ 'price' => 0.00,
30
+ 'tax_class_id' => 0,
31
+ 'description' => 'Warranty',
32
+ 'short_description' => 'Warranty',
33
+
34
+
35
+ ));
36
+
37
+ $product->setMediaGallery (array('images'=>array (), 'values'=>array ()))
38
+ ->addImageToMediaGallery('media/catalog/product/zinc/warranty.png', array('image','thumbnail','small_image'), false, false) ;
39
+
40
+ $product->save();
41
+
42
+ $stockItem = Mage::getModel('cataloginventory/stock_item');
43
+ $stockItem->assignProduct($product)
44
+ ->setData('stock_id', 1)
45
+ ->setData('store_id', 1);
46
+
47
+ $stockItem->setData('qty', 99999)
48
+ ->setData('is_in_stock', 1)
49
+ ->setData('manage_stock', 1)
50
+ ->setData('use_config_manage_stock', 0)
51
+ ->save();
52
+
53
+ $installer->endSetup();
54
+
55
+ $catalogInstaller = Mage::getResourceModel('catalog/setup', 'catalog_setup');
56
+
57
+ $catalogInstaller->startSetup();
58
+
59
+ $catalogInstaller->updateAttribute(Mage_Catalog_Model_Product::ENTITY,'carebyzinc_subcategory','frontend_input_renderer','carebyzinc/adminhtml_catalog_product_renderer_subcategory');
60
+
61
+ $catalogInstaller->addAttribute('catalog_product', 'carebyzinc_manufacturer', array(
62
+ 'group' => 'Zinc Admin',
63
+ 'label' => 'Manufacturer',
64
+ 'type' => 'varchar',
65
+ 'visible' => true,
66
+ 'input' => 'text',
67
+ 'required' => false,
68
+ 'user_defined' => false,
69
+ 'searchable' => false,
70
+ 'filterable' => false,
71
+ 'comparable' => false,
72
+ 'visible_on_front' => true,
73
+ 'visible_in_advanced_search' => false,
74
+ 'input_renderer' => 'carebyzinc/adminhtml_catalog_product_renderer_manufacturer',
75
+ 'unique' => false,
76
+ // 'note' => 'Maximum 30 Characters',
77
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
78
+ ));
79
+ $catalogInstaller->addAttribute('catalog_product', 'carebyzinc_model', array(
80
+ 'group' => 'Zinc Admin',
81
+ 'label' => 'Model',
82
+ 'input' => 'text',
83
+ 'type' => 'varchar',
84
+ 'visible' => true,
85
+ 'required' => false,
86
+ 'user_defined' => false,
87
+ 'searchable' => false,
88
+ 'filterable' => false,
89
+ 'comparable' => false,
90
+ 'visible_on_front' => true,
91
+ 'visible_in_advanced_search' => false,
92
+ 'input_renderer' => 'carebyzinc/adminhtml_catalog_product_renderer_model',
93
+ 'unique' => false,
94
+ // 'note' => 'Maximum 30 Characters',
95
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
96
+ ));
97
+
98
+
99
+
100
+ $catalogInstaller->endSetup();
101
+
102
+
103
+
104
+
app/design/adminhtml/default/default/layout/zinc_carebyzinc.xml CHANGED
@@ -1,5 +1,25 @@
1
  <?xml version="1.0"?>
2
- <layout version="0.1.0">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  <adminhtml_product_index>
4
  <reference name="content">
5
  <block type="carebyzinc/adminhtml_product" name="product" />
@@ -29,7 +49,7 @@
29
  </action>
30
  </reference>
31
  </adminhtml_sales_order_view>
32
- <adminhtml_sales_order_invoice_new>
33
  <reference name="order_items">
34
  <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
35
  <type>default</type>
@@ -56,25 +76,7 @@
56
  <template>carebyzinc/order/invoice/view/items/renderer/default.phtml</template>
57
  </action>
58
  </reference>
59
- </adminhtml_sales_order_invoice_view>
60
- <adminhtml_sales_order_shipment_new>
61
- <reference name="order_items">
62
- <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
63
- <type>default</type>
64
- <block>adminhtml/sales_items_renderer_default</block>
65
- <template>carebyzinc/order/shipment/create/items/renderer/default.phtml</template>
66
- </action>
67
- </reference>
68
- </adminhtml_sales_order_shipment_new>
69
- <adminhtml_sales_order_shipment_view>
70
- <reference name="shipment_items">
71
- <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
72
- <type>default</type>
73
- <block>adminhtml/sales_items_renderer_default</block>
74
- <template>carebyzinc/order/shipment/view/items/renderer/default.phtml</template>
75
- </action>
76
- </reference>
77
- </adminhtml_sales_order_shipment_view>
78
  <adminhtml_sales_order_creditmemo_new>
79
  <reference name="order_items">
80
  <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
@@ -84,7 +86,7 @@
84
  </action>
85
  </reference>
86
  </adminhtml_sales_order_creditmemo_new>
87
- <adminhtml_sales_order_creditmemo_updateqty>
88
  <reference name="order_items">
89
  <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
90
  <type>default</type>
@@ -102,6 +104,10 @@
102
  </action>
103
  </reference>
104
  </adminhtml_sales_order_creditmemo_view>
105
-
 
 
 
 
106
 
107
  </layout>
1
  <?xml version="1.0"?>
2
+ <layout version="0.1.0">
3
+ <adminhtml_catalog_product_edit>
4
+ <reference name="head">
5
+ <action method="addJs" ifconfig="carebyzinc/general/enabled">
6
+ <script>carebyzinc/jquery.min.js</script>
7
+ </action>
8
+ <action method="addJs" ifconfig="carebyzinc/general/enabled">
9
+ <script>carebyzinc/noConflict.js</script>
10
+ </action>
11
+ </reference>
12
+ </adminhtml_catalog_product_edit>
13
+ <adminhtml_catalog_product_action_attribute_edit>
14
+ <reference name="head">
15
+ <action method="addJs" ifconfig="carebyzinc/general/enabled">
16
+ <script>carebyzinc/jquery.min.js</script>
17
+ </action>
18
+ <action method="addJs" ifconfig="carebyzinc/general/enabled">
19
+ <script>carebyzinc/noConflict.js</script>
20
+ </action>
21
+ </reference>
22
+ </adminhtml_catalog_product_action_attribute_edit>
23
  <adminhtml_product_index>
24
  <reference name="content">
25
  <block type="carebyzinc/adminhtml_product" name="product" />
49
  </action>
50
  </reference>
51
  </adminhtml_sales_order_view>
52
+ <adminhtml_sales_order_invoice_new>
53
  <reference name="order_items">
54
  <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
55
  <type>default</type>
76
  <template>carebyzinc/order/invoice/view/items/renderer/default.phtml</template>
77
  </action>
78
  </reference>
79
+ </adminhtml_sales_order_invoice_view>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
  <adminhtml_sales_order_creditmemo_new>
81
  <reference name="order_items">
82
  <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
86
  </action>
87
  </reference>
88
  </adminhtml_sales_order_creditmemo_new>
89
+ <adminhtml_sales_order_creditmemo_updateqty>
90
  <reference name="order_items">
91
  <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
92
  <type>default</type>
104
  </action>
105
  </reference>
106
  </adminhtml_sales_order_creditmemo_view>
107
+ <adminhtml_product_masscarebyzinc>
108
+ <reference name="content">
109
+ <block type="carebyzinc/adminhtml_product" name="carebyzinc_massaction" template="carebyzinc/carebyzinc_massaction.phtml" />
110
+ </reference>
111
+ </adminhtml_product_masscarebyzinc>
112
 
113
  </layout>
app/design/adminhtml/default/default/template/carebyzinc/carebyzinc_massaction.phtml ADDED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Care by Zinc in Massaction Page
4
+ */
5
+
6
+ ?>
7
+
8
+ <div class="main-col-inner">
9
+ <div id="messages"></div>
10
+ <div class="content-header">
11
+ <h3 class="icon-head head-adminhtml-product"><?php echo $this->__('Select Care by Zinc Categories')?></h3>
12
+ <p class="form-buttons">
13
+ <button id="id_massedit_form_back" title="<?php echo $this->__('Back')?>" type="button" class="scalable back" onclick="setLocation('<?php echo $this->getUrl("*/*/index")?>')" style=""><span><span><span><?php echo $this->__('Back')?></span></span></span></button>
14
+ <button id="id_massedit_form_save" title="<?php echo $this->__('Save')?>" type="button" class="scalable save" onclick="editForm.submit();" style=""><span><span><span><?php echo $this->__('Save')?></span></span></span></button>
15
+ </p>
16
+ </div>
17
+ <div class="entry-edit">
18
+ <form id="massedit_form" action="<?php echo $this->getUrl("*/*/saveCarebyzincCategory")?>" method="post" enctype="multipart/form-data">
19
+ <?php echo $this->getBlockHtml('formkey') ?>
20
+ <input name="product_ids" value="<?php echo $this->getProductIds();?>" type="hidden" />
21
+ <div id="product_tabs_form_section_content" style="">
22
+ <div class="entry-edit">
23
+ <div class="entry-edit-head">
24
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('Care By Zinc')?></h4>
25
+ <div class="form-buttons"></div>
26
+ </div>
27
+ <div class="fieldset " id="carebyzinc_form">
28
+ <div class="hor-scroll">
29
+ <table class="form-list" cellspacing="0">
30
+ <tbody>
31
+
32
+ <tr>
33
+ <td class="label"><label for="carebyzinc_category"><?php echo $this->__('Category')?>
34
+ <span class="required">*</span></label></td>
35
+ <?php $categories = Mage::getModel('carebyzinc/carebyzinc')->getCategoryArray();?>
36
+ <td class="value">
37
+ <select id="carebyzinc_category" name="carebyzinc_category" class="required-entry select" onchange="getSubcategories(this.value); ">
38
+ <?php foreach($categories as $key => $value):?>
39
+ <option value="<?php echo $key;?>"><?php echo $value;?></option>
40
+ <?php endforeach;?>
41
+ </select>
42
+ </td>
43
+ </tr>
44
+ <tr>
45
+ <td class="label"><label for="carebyzinc_subcategory"><?php echo $this->__('Sub Category')?> <span class="required">*</span></label></td>
46
+ <td class="value">
47
+ <select id="carebyzinc_subcategory" name="carebyzinc_subcategory" class="select">
48
+ <option value="" selected="selected"><?php echo $this->__('Please Select')?></option>
49
+ </select>
50
+ </td>
51
+
52
+ <td>
53
+ <label for="guess_subcategory">
54
+ <input type="checkbox" id="guess_subcategory" name="guess_subcategory" /> <?php echo $this->__('Guess a Sub Category')?>
55
+ </label>
56
+ </td>
57
+ </tr>
58
+ <tr style="display: none;" id="carebyzinc_manufacturer_tr" >
59
+ <td class="label"><label for="carebyzinc_manufacturer"><?php echo $this->__('Manufacturer')?>' <span class="required">*</span></label></td>
60
+ <td class="value">
61
+ <input id="carebyzinc_manufacturer" name="carebyzinc_manufacturer" class="input-text" type="text">
62
+ </td>
63
+ </tr>
64
+ <tr id="carebyzinc_model_tr" style="display: none;">
65
+ <td class="label"><label for="carebyzinc_model"><?php echo $this->__('Model')?> <span class="required">*</span></label></td>
66
+ <td class="value">
67
+ <input id="carebyzinc_model" name="carebyzinc_model" type="text" class="input-text">
68
+ </td>
69
+ </tr>
70
+ </tbody>
71
+ </table>
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </div></form></div>
76
+ <script type="text/javascript">
77
+ editForm = new varienForm('massedit_form', '');
78
+ function getSubcategories(selectElement){
79
+ var reloadurl = '<?php echo $this->getUrl("adminhtml/product/getSubcategories")?>';
80
+ if(selectElement){
81
+ var category = selectElement.toLowerCase();
82
+ var subarray = ['bicycle','electronics'];
83
+ if(subarray.indexOf(category) >= 0){
84
+ $('carebyzinc_manufacturer_tr').show();
85
+ $('carebyzinc_model_tr').show();
86
+ document.getElementById('carebyzinc_manufacturer').className += ' required-entry validate-length maximum-length-30 minimum-length-1';
87
+ document.getElementById('carebyzinc_model').className += ' required-entry validate-length maximum-length-30 minimum-length-1';
88
+ }else{
89
+ $('carebyzinc_manufacturer_tr').hide();
90
+ $('carebyzinc_model_tr').hide();
91
+ document.getElementById('carebyzinc_manufacturer').className = 'input-text';
92
+ document.getElementById('carebyzinc_model').className = 'input-text';
93
+ }
94
+ new Ajax.Request(reloadurl, {parameters: { cat: selectElement},
95
+ method: 'post',
96
+ onComplete: function(transport) {
97
+ var content = JSON.parse(transport.responseText);
98
+ var i = 0;
99
+ document.getElementById('carebyzinc_subcategory').options.length = 0;
100
+ for (var key in content) {
101
+ document.getElementById('carebyzinc_subcategory').options[i] = new Option(content[key],key);
102
+ i++;
103
+ }
104
+
105
+ }
106
+ });
107
+ }else
108
+ document.getElementById('carebyzinc_subcategory').innerHTML='';
109
+ }
110
+ </script>
111
+
112
+ </div>
113
+
app/design/adminhtml/default/default/template/carebyzinc/order/creditmemo/create/items/renderer/default.phtml CHANGED
@@ -34,10 +34,9 @@
34
  <div class="product-cart-careby">
35
  <p><strong><?php echo $this->__('Care By Zinc'); ?></strong><br />
36
  <?php echo $carebyzincAry['description'] ?><br />
37
- <?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?><br />
38
- <span>Provider:</span> <?php echo $carebyzincAry['provider'] ?><br />
39
- <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getId(),'item_id');?>
40
- <span>Policy Key:</span> <?php echo $order->getCarebyzincKey(); ?>
41
  </p>
42
  </div>
43
  <?php endif;?>
34
  <div class="product-cart-careby">
35
  <p><strong><?php echo $this->__('Care By Zinc'); ?></strong><br />
36
  <?php echo $carebyzincAry['description'] ?><br />
37
+ <span><?php echo $this->__('Provider:');?></span> <?php echo $carebyzincAry['provider'] ?><br />
38
+ <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getCarebyzincParentid(),'item_id');?>
39
+ <span><?php echo $this->__('Policy Key:');?></span> <?php echo $order->getCarebyzincKey(); ?>
 
40
  </p>
41
  </div>
42
  <?php endif;?>
app/design/adminhtml/default/default/template/carebyzinc/order/creditmemo/view/items/renderer/default.phtml CHANGED
@@ -35,10 +35,9 @@
35
  <div class="product-cart-careby">
36
  <p><strong><?php echo $this->__('Care By Zinc'); ?></strong><br />
37
  <?php echo $carebyzincAry['description'] ?><br />
38
- <?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?><br />
39
- <span>Provider:</span> <?php echo $carebyzincAry['provider'] ?>
40
- <br/> <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getId(),'item_id');?>
41
- <span>Policy Key:</span> <?php echo $order->getCarebyzincKey(); ?>
42
  </p>
43
  </div>
44
  <?php endif;?>
35
  <div class="product-cart-careby">
36
  <p><strong><?php echo $this->__('Care By Zinc'); ?></strong><br />
37
  <?php echo $carebyzincAry['description'] ?><br />
38
+ <span><?php echo $this->__('Provider:');?></span> <?php echo $carebyzincAry['provider'] ?>
39
+ <br/> <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getCarebyzincParentid(),'item_id');?>
40
+ <span><?php echo $this->__('Policy Key:');?></span> <?php echo $order->getCarebyzincKey(); ?>
 
41
  </p>
42
  </div>
43
  <?php endif;?>
app/design/adminhtml/default/default/template/carebyzinc/order/invoice/create/items/renderer/default.phtml CHANGED
@@ -34,10 +34,9 @@
34
  <div class="product-cart-careby">
35
  <p><strong><?php echo $this->__('Care By Zinc'); ?></strong><br />
36
  <?php echo $carebyzincAry['description'] ?><br />
37
- <?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?><br />
38
- <span>Provider:</span> <?php echo $carebyzincAry['provider'] ?><br/>
39
- <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getId(),'item_id');?>
40
- <span>Policy Key:</span> <?php echo $order->getCarebyzincKey(); ?>
41
  </p>
42
  </div>
43
  <?php endif;?>
34
  <div class="product-cart-careby">
35
  <p><strong><?php echo $this->__('Care By Zinc'); ?></strong><br />
36
  <?php echo $carebyzincAry['description'] ?><br />
37
+ <span><?php echo $this->__('Provider:');?></span> <?php echo $carebyzincAry['provider'] ?><br/>
38
+ <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getCarebyzincParentid(),'item_id');?>
39
+ <span><?php echo $this->__('Policy Key:');?></span> <?php echo $order->getCarebyzincKey(); ?>
 
40
  </p>
41
  </div>
42
  <?php endif;?>
app/design/adminhtml/default/default/template/carebyzinc/order/invoice/view/items/renderer/default.phtml CHANGED
@@ -35,10 +35,9 @@
35
  <div class="product-cart-careby">
36
  <p><strong><?php echo $this->__('Care By Zinc'); ?></strong><br />
37
  <?php echo $carebyzincAry['description'] ?><br />
38
- <?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?><br />
39
- <span>Provider:</span> <?php echo $carebyzincAry['provider'] ?><br/>
40
- <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getId(),'item_id');?>
41
- <span>Policy Key:</span> <?php echo $order->getCarebyzincKey(); ?>
42
  </p>
43
  </div>
44
  <?php endif;?>
35
  <div class="product-cart-careby">
36
  <p><strong><?php echo $this->__('Care By Zinc'); ?></strong><br />
37
  <?php echo $carebyzincAry['description'] ?><br />
38
+ <span><?php echo $this->__('Provider:');?></span> <?php echo $carebyzincAry['provider'] ?><br/>
39
+ <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getCarebyzincParentid(),'item_id');?>
40
+ <span><?php echo $this->__('Policy Key:');?></span> <?php echo $order->getCarebyzincKey(); ?>
 
41
  </p>
42
  </div>
43
  <?php endif;?>
app/design/adminhtml/default/default/template/carebyzinc/order/shipment/create/items/renderer/default.phtml CHANGED
@@ -35,9 +35,9 @@
35
  <p><strong><?php echo $this->__('Care By Zinc'); ?></strong><br />
36
  <?php echo $carebyzincAry['description'] ?><br />
37
  <?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?><br />
38
- <span>Provider:</span> <?php echo $carebyzincAry['provider'] ?>
39
- <br/> <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getId(),'item_id');?>
40
- <span>Policy Key:</span> <?php echo $order->getCarebyzincKey(); ?>
41
  </p>
42
  </div>
43
  <?php endif;?>
35
  <p><strong><?php echo $this->__('Care By Zinc'); ?></strong><br />
36
  <?php echo $carebyzincAry['description'] ?><br />
37
  <?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?><br />
38
+ <span><?php echo $this->__('Provider:');?></span> <?php echo $carebyzincAry['provider'] ?>
39
+ <br/> <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getCarebyzincParentid(),'item_id');?>
40
+ <span><?php echo $this->__('Policy Key:');?></span> <?php echo $order->getCarebyzincKey(); ?>
41
  </p>
42
  </div>
43
  <?php endif;?>
app/design/adminhtml/default/default/template/carebyzinc/order/shipment/view/items/renderer/default.phtml CHANGED
@@ -35,9 +35,9 @@
35
  <p><strong><?php echo $this->__('Care By Zinc'); ?></strong><br />
36
  <?php echo $carebyzincAry['description'] ?><br />
37
  <?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?><br />
38
- <span>Provider:</span> <?php echo $carebyzincAry['provider'] ?>
39
- <br/> <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getId(),'item_id');?>
40
- <span>Policy Key:</span> <?php echo $order->getCarebyzincKey(); ?>
41
  </p>
42
  </div>
43
  <?php endif;?>
35
  <p><strong><?php echo $this->__('Care By Zinc'); ?></strong><br />
36
  <?php echo $carebyzincAry['description'] ?><br />
37
  <?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?><br />
38
+ <span><?php echo $this->__('Provider:');?></span> <?php echo $carebyzincAry['provider'] ?>
39
+ <br/> <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getCarebyzincParentid(),'item_id');?>
40
+ <span><?php echo $this->__('Policy Key:');?></span> <?php echo $order->getCarebyzincKey(); ?>
41
  </p>
42
  </div>
43
  <?php endif;?>
app/design/adminhtml/default/default/template/carebyzinc/order/view/items/renderer/default.phtml CHANGED
@@ -40,8 +40,7 @@
40
  <div class="product-cart-careby">
41
  <p><strong><?php echo $this->__('Care By Zinc'); ?></strong><br />
42
  <?php echo $carebyzincAry['description'] ?><br />
43
- <?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?><br />
44
- <span>Provider:</span> <?php echo $carebyzincAry['provider'] ?></p>
45
  </div>
46
  <?php endif;?>
47
  <?php if ($this->canDisplayContainer()): ?>
40
  <div class="product-cart-careby">
41
  <p><strong><?php echo $this->__('Care By Zinc'); ?></strong><br />
42
  <?php echo $carebyzincAry['description'] ?><br />
43
+ <span><?php echo $this->__('Provider:');?></span> <?php echo $carebyzincAry['provider'] ?></p>
 
44
  </div>
45
  <?php endif;?>
46
  <?php if ($this->canDisplayContainer()): ?>
app/design/frontend/base/default/layout/zinc_carebyzinc.xml CHANGED
@@ -68,39 +68,54 @@
68
  </action>
69
  <action method="chooseTemplate"/>
70
  <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
71
- <type>simple</type>
72
  <block>checkout/cart_item_renderer</block>
73
  <template>carebyzinc/checkout/cart/item/default.phtml</template>
74
- </action>
75
- <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
76
- <type>grouped</type>
77
- <block>checkout/cart_item_renderer_grouped</block>
78
  <template>carebyzinc/checkout/cart/item/default.phtml</template>
79
  </action>
80
- <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
81
  <type>configurable</type>
82
  <block>checkout/cart_item_renderer_configurable</block>
83
  <template>carebyzinc/checkout/cart/item/default.phtml</template>
84
- </action>
85
  </reference>
86
  </checkout_cart_index>
 
 
 
 
 
 
 
 
 
 
 
87
  <checkout_onepage_review>
 
88
  <reference name="root">
89
- <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
 
 
 
90
  <type>default</type>
91
  <block>checkout/cart_item_renderer</block>
92
  <template>carebyzinc/checkout/onepage/review/item.phtml</template>
93
- </action>
94
- <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
95
- <type>grouped</type>
96
- <block>checkout/cart_item_renderer_grouped</block>
97
- <template>carebyzinc/checkout/onepage/review/item.phtml</template>
98
- </action>
99
- <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
100
- <type>configurable</type>
101
- <block>checkout/cart_item_renderer_configurable</block>
102
- <template>carebyzinc/checkout/onepage/review/item.phtml</template>
103
- </action>
104
 
105
  </reference>
106
 
@@ -235,26 +250,7 @@
235
  </action>
236
  </reference>
237
  </sales_order_printinvoice>
238
- <sales_order_shipment>
239
- <reference name="shipment_items">
240
- <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
241
- <type>default</type>
242
- <block>sales/order_item_renderer_default</block>
243
- <template>carebyzinc/sales/order/shipment/items/renderer/default.phtml</template>
244
- </action>
245
-
246
- </reference>
247
- </sales_order_shipment>
248
- <sales_order_printshipment>
249
- <reference name="sales.order.print.shipment">
250
- <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
251
- <type>default</type>
252
- <block>sales/order_item_renderer_default</block>
253
- <template>carebyzinc/sales/order/shipment/items/renderer/default.phtml</template>
254
- </action>
255
-
256
- </reference>
257
- </sales_order_printshipment>
258
  <sales_order_creditmemo>
259
  <reference name="creditmemo_items">
260
  <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
@@ -314,17 +310,7 @@
314
  </action>
315
  </reference>
316
  </sales_email_order_invoice_items>
317
- <sales_email_order_shipment_items>
318
- <reference name="items">
319
- <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
320
- <type>default</type>
321
- <block>sales/order_email_items_order_default</block>
322
- <template>carebyzinc/email/order/items/shipment/default.phtml</template>
323
- </action>
324
-
325
- </reference>
326
-
327
- </sales_email_order_shipment_items>
328
  <sales_email_order_creditmemo_items>
329
  <reference name="items">
330
  <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
68
  </action>
69
  <action method="chooseTemplate"/>
70
  <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
71
+ <type>virtual</type>
72
  <block>checkout/cart_item_renderer</block>
73
  <template>carebyzinc/checkout/cart/item/default.phtml</template>
74
+ </action>
75
+ <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
76
+ <type>simple</type>
77
+ <block>checkout/cart_item_renderer</block>
78
  <template>carebyzinc/checkout/cart/item/default.phtml</template>
79
  </action>
80
+ <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
81
  <type>configurable</type>
82
  <block>checkout/cart_item_renderer_configurable</block>
83
  <template>carebyzinc/checkout/cart/item/default.phtml</template>
84
+ </action>
85
  </reference>
86
  </checkout_cart_index>
87
+
88
+ <checkout_onepage_index>
89
+ <reference name="head">
90
+ <action method="addJs" ifconfig="carebyzinc/general/enabled">
91
+ <script>carebyzinc/jquery.colorbox.js</script>
92
+ </action>
93
+ <action method="addCss" ifconfig="carebyzinc/general/enabled">
94
+ <stylesheet>carebyzinc/css/colorbox.css</stylesheet>
95
+ </action>
96
+ </reference>
97
+ </checkout_onepage_index>
98
  <checkout_onepage_review>
99
+
100
  <reference name="root">
101
+ <action method="setTemplate" ifconfig="carebyzinc/general/enabled">
102
+ <template>carebyzinc/checkout/onepage/review/info.phtml</template>
103
+ </action>
104
+ <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
105
  <type>default</type>
106
  <block>checkout/cart_item_renderer</block>
107
  <template>carebyzinc/checkout/onepage/review/item.phtml</template>
108
+ </action>
109
+ <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
110
+ <type>grouped</type>
111
+ <block>checkout/cart_item_renderer_grouped</block>
112
+ <template>carebyzinc/checkout/onepage/review/item.phtml</template>
113
+ </action>
114
+ <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
115
+ <type>configurable</type>
116
+ <block>checkout/cart_item_renderer_configurable</block>
117
+ <template>carebyzinc/checkout/onepage/review/item.phtml</template>
118
+ </action>
119
 
120
  </reference>
121
 
250
  </action>
251
  </reference>
252
  </sales_order_printinvoice>
253
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
  <sales_order_creditmemo>
255
  <reference name="creditmemo_items">
256
  <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
310
  </action>
311
  </reference>
312
  </sales_email_order_invoice_items>
313
+
 
 
 
 
 
 
 
 
 
 
314
  <sales_email_order_creditmemo_items>
315
  <reference name="items">
316
  <action method="addItemRender" ifconfig="carebyzinc/general/enabled">
app/design/frontend/base/default/template/carebyzinc/carebyzinc.phtml CHANGED
@@ -9,14 +9,14 @@
9
  $productType = $product->getTypeId();
10
  $price = $product->getFinalPrice();
11
  $helper = Mage::helper('carebyzinc');
12
- if(($productType == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE || $productType == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) && ($product->getCarebyzinc() == 1) && ($helper->validatePrice($price) == 'true') && ($helper->checkQuoteVisibility())):
13
 
14
  $zip = $helper->getZipCode(); ?>
15
  <div class="product-box">
16
  <h1 class="product-title"><?php echo $helper->getTitle()?></h1>
17
  <input type="text" name="zipcode" id="zipcode" value="<?php echo $zip ;?>" placeholder="Enter Zip code here" style="width:21%"/>
18
  <button class="btn-zinc showCarebyzinc" onclick="showCarebyzinc(); return false;">Get Quote <span id="care-loader" class="care-loader"></span></button>
19
- <div id="carebyzincCnt" class="product-wrap"></div>
20
  </div>
21
  <script>
22
  //<![CDATA[
@@ -64,7 +64,7 @@ function showCarebyzinc(){
64
  });
65
  }
66
  else
67
- alert('Enter a valid zipcode');
68
  }else
69
  alert('Enter a valid zipcode');
70
  }
@@ -77,8 +77,21 @@ function showCarebyzinc(){
77
  $('carebyzincCnt').update('');
78
  });
79
 
80
-
 
 
 
 
 
 
 
 
 
 
 
 
81
 
 
82
 
83
  //]]>
84
  </script>
9
  $productType = $product->getTypeId();
10
  $price = $product->getFinalPrice();
11
  $helper = Mage::helper('carebyzinc');
12
+ if(($productType == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE || $productType == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) && ($product->getCarebyzinc() == 1) && ($helper->checkQuoteVisibility())):
13
 
14
  $zip = $helper->getZipCode(); ?>
15
  <div class="product-box">
16
  <h1 class="product-title"><?php echo $helper->getTitle()?></h1>
17
  <input type="text" name="zipcode" id="zipcode" value="<?php echo $zip ;?>" placeholder="Enter Zip code here" style="width:21%"/>
18
  <button class="btn-zinc showCarebyzinc" onclick="showCarebyzinc(); return false;">Get Quote <span id="care-loader" class="care-loader"></span></button>
19
+ <div id="carebyzincCnt"></div>
20
  </div>
21
  <script>
22
  //<![CDATA[
64
  });
65
  }
66
  else
67
+ alert('Enter a valid zip code');
68
  }else
69
  alert('Enter a valid zipcode');
70
  }
77
  $('carebyzincCnt').update('');
78
  });
79
 
80
+ function checkAction(item){
81
+ var radioButtons = $("input[type='radio'][name='"+ item.name +"']");
82
+ var radioStates = {};
83
+ jQuery('input[name=' + item.name + ']').click(function() {
84
+ var val = jQuery(this).val();
85
+ jQuery(this).attr('checked', (radioStates[val] = !radioStates[val]));
86
+
87
+ jQuery.each(radioButtons, function(index, rd) {
88
+ if(rd.value !== val) {
89
+ radioStates[rd.value] = false;
90
+ }
91
+ });
92
+ });
93
 
94
+ }
95
 
96
  //]]>
97
  </script>
app/design/frontend/base/default/template/carebyzinc/checkout/cart.phtml CHANGED
@@ -196,9 +196,9 @@ function showCarebyzinc(pid,itemId){
196
  });
197
  }
198
  else
199
- alert('Enter a valid zipcode');
200
  }else
201
- alert('Enter a valid zipcode');
202
  }
203
 
204
  function updateCareByZinc(itemId)
@@ -213,10 +213,10 @@ function updateCareByZinc(itemId)
213
  c = i;
214
  }
215
  }
216
- if (c == -1)
217
- alert('Please select an option.');
218
- else{
219
-
220
  var val = document.querySelector('input[name="'+name+'"]:checked').value;
221
  new Ajax.Request(url, {
222
  method: 'post',
@@ -238,5 +238,25 @@ function updateCareByZinc(itemId)
238
  jQuery.colorbox({iframe: true, href: elementURL, innerWidth: 645,fastIframe: false, innerHeight: 509,width:"70%"});
239
  });
240
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
241
  //]]>
242
  </script>
196
  });
197
  }
198
  else
199
+ alert('Enter a valid zip code');
200
  }else
201
+ alert('Enter a valid zip code');
202
  }
203
 
204
  function updateCareByZinc(itemId)
213
  c = i;
214
  }
215
  }
216
+ if (c == -1){
217
+ document.getElementById('advice-required-entry_'+itemId).style.display="block";
218
+ }else{
219
+ document.getElementById('advice-required-entry_'+itemId).style.display="none";
220
  var val = document.querySelector('input[name="'+name+'"]:checked').value;
221
  new Ajax.Request(url, {
222
  method: 'post',
238
  jQuery.colorbox({iframe: true, href: elementURL, innerWidth: 645,fastIframe: false, innerHeight: 509,width:"70%"});
239
  });
240
  });
241
+
242
+ function checkAction(item){
243
+ var radioButtons = $("input[type='radio'][name='"+ item.name +"']");
244
+ var radioStates = {};
245
+ jQuery('input[name=' + item.name + ']').click(function() {
246
+ var val = jQuery(this).val();
247
+ jQuery(this).attr('checked', (radioStates[val] = !radioStates[val]));
248
+
249
+ jQuery.each(radioButtons, function(index, rd) {
250
+ if(rd.value !== val) {
251
+ radioStates[rd.value] = false;
252
+ }
253
+ });
254
+ });
255
+
256
+ }
257
+ function openUpdatezip(itemId){
258
+ document.getElementById('updatezipside_'+itemId).style.display="block";
259
+ }
260
+
261
  //]]>
262
  </script>
app/design/frontend/base/default/template/carebyzinc/checkout/cart/item/default.phtml CHANGED
@@ -1,28 +1,10 @@
1
  <?php
2
- /**
3
- * Magento
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Academic Free License (AFL 3.0)
8
- * that is bundled with this package in the file LICENSE_AFL.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/afl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magento.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magento.com for more information.
20
- *
21
- * @category design
22
- * @package rwd_default
23
- * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
- * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
- */
26
  ?>
27
  <?php
28
  $_item = $this->getItem();
@@ -31,24 +13,36 @@ $canApplyMsrp = Mage::helper('catalog')->canApplyMsrp($_item->getProduct(), Mage
31
  ?>
32
  <?php
33
  $product = Mage::getModel('catalog/product')->load($_item->getProductId());
34
- $productType = $product->getTypeId();
35
- $flag = 0;
36
  $model = Mage::getModel('carebyzinc/carebyzinc');
37
- if($product->getCarebyzinc() != 1)
38
- $carebyStatus = $model->getwarrantyStatus($_item->getId());
39
  $helper = Mage::helper('carebyzinc');
40
-
41
- if(($productType == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE) || ($productType == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) )
42
- $flag = 1;
43
-
44
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
 
46
  <tr <?php if($flag) echo "style='border-bottom:0px'"; ?>>
47
- <td class="product-cart-image" rowspan="2">
48
  <?php if ($this->hasProductUrl()):?>
49
  <a href="<?php echo $this->getProductUrl() ?>" title="<?php echo $this->escapeHtml($this->getProductName()) ?>" class="product-image">
50
- <?php endif;?>
51
- <img src="<?php echo $this->getProductThumbnail()->resize(180); ?>" alt="<?php echo $this->escapeHtml($this->getProductName()) ?>" />
52
  <?php if ($this->hasProductUrl()):?>
53
  </a>
54
  <?php endif;?>
@@ -73,45 +67,51 @@ if(($productType == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE) || ($productTy
73
  <a href="<?php echo $this->getDeleteUrl() ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Remove Item')) ?>" class="btn-remove btn-remove2"><?php echo $this->__('Remove Item') ?></a>
74
 
75
  <h2 class="product-name">
76
- <?php if ($this->hasProductUrl()):?>
77
- <a href="<?php echo $this->getProductUrl() ?>"><?php echo $this->escapeHtml($this->getProductName()) ?></a>
78
- <?php else: ?>
79
- <?php echo $this->escapeHtml($this->getProductName()) ?>
80
- <?php endif; ?>
 
 
 
 
 
 
81
  </h2>
82
 
83
  <div class="product-cart-sku">
84
  <span class="label"><?php echo $this->__('SKU'); ?>:</span> <?php echo $this->escapeHtml($_item->getSku()); ?>
85
  </div>
86
 
87
- <?php if ($_options = $this->getOptionList()):?>
88
  <dl class="item-options">
89
  <?php foreach ($_options as $_option) : ?>
90
- <?php if($_option['label'] != 'carebyzinc'):?>
91
- <?php $_formatedOptionValue = $this->getFormatedOptionValue($_option) ?>
92
- <dt><?php echo $this->escapeHtml($_option['label']) ?></dt>
93
- <dd<?php if (isset($_formatedOptionValue['full_view'])): ?> class="truncated"<?php endif; ?>><?php echo $_formatedOptionValue['value'] ?>
94
- <?php if (isset($_formatedOptionValue['full_view'])): ?>
95
- <div class="truncated_full_value">
96
- <dl class="item-options">
97
- <dt><?php echo $this->escapeHtml($_option['label']) ?></dt>
98
- <dd><?php echo $_formatedOptionValue['full_view'] ?></dd>
99
- </dl>
100
- </div>
101
- <?php endif; ?>
102
- </dd>
103
- <?php endif;?>
104
  <?php endforeach; ?>
105
  </dl>
106
- <?php endif;?>
107
 
108
- <?php if ($messages = $this->getMessages()): ?>
109
  <?php foreach ($messages as $message): ?>
110
  <p class="item-msg <?php echo $message['type'] ?>">
111
  * <?php echo $this->escapeHtml($message['text']) ?>
112
  </p>
113
  <?php endforeach; ?>
114
- <?php endif; ?>
115
 
116
  <?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?>
117
  <?php if ($addInfoBlock): ?>
@@ -344,76 +344,64 @@ if(($productType == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE) || ($productTy
344
  <a href="<?php echo $this->getDeleteUrl() ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Remove Item')) ?>" class="btn-remove btn-remove2"><?php echo $this->__('Remove Item') ?></a>
345
  </td>
346
  </tr>
347
- <?php
348
-
349
- if($flag):
350
- $careByZinc = $_item->getCarebyzincOption();
351
- ?>
352
- <tr><td colspan="5">
353
- <?php if($careByZinc): ?>
354
-
355
-
356
- <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
357
- <div class="product-cart-careby">
358
- <a href="<?php echo $helper->getDeleteUrl($_item->getId()) ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Remove Warranty')) ?>" class="remove_warranty"><?php //echo $this->__('Remove Warranty') ?>
359
- </a>
360
- <p class="care-price"><?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?></p>
361
- <p class="warranty_desc quotelabel"><?php echo $carebyzincAry['description'] ?></p>
362
-
363
- </div>
364
-
365
- <?php else:?>
366
- <?php
367
-
368
- if (($product->getCarebyzinc() == 1) && ($helper->validatePrice($_item->getPrice()) == 'true')):
369
- $zip = $helper->getZipCode();
370
-
371
- ?>
372
-
373
- <div class="product-box">
374
- <h1 class="product-title"><?php echo $helper->getTitle()?></h1>
375
- <input type="text" name="zipcode_<?php echo $_item->getId(); ?>" id="zipcode_<?php echo $_item->getId(); ?>" value="<?php echo $zip ;?>" placeholder="Enter Zip code here" style="width:21%"/>
376
-
377
- <button class="btn-zinc showCarebyzinc" id="showCarebyzinc_<?php echo $_item->getId(); ?>" onclick="showCarebyzinc(<?php echo $_item->getProductId(); ?>,<?php echo $_item->getId(); ?>); return false;"><?php echo $this->__('Get Quote')?><span id="care-loader_<?php echo $_item->getId(); ?>" class="care-loader"></span></button>
378
-
379
- <div id="carebyzincCnt_<?php echo $_item->getId(); ?>" class="carebyzincCnt product-container" style="display:block;">
380
- <?php
381
- $product = Mage::getModel('catalog/product')->load($_item->getProductId());
382
- $itemId = $_item->getId();
383
- $quoteDataSession = $model->getPriceQuoteinCart($product, $itemId,$zip);
384
-
385
- ?>
386
- <?php if(! empty($quoteDataSession)):?>
387
- <?php if( is_array($quoteDataSession)):
388
- $quoteData = $quoteDataSession[$itemId];?>
389
- <ul class="product-list">
390
- <?php foreach($quoteData as $qitem): ?>
391
- <li>
392
- <div class="bx-l">
393
- <div class="squared input">
394
- <input type="radio" value="<?php echo $qitem['id']; ?>" id="carebyzinc_<?php echo $itemId.'_'.$qitem['id']; ?>" name="carebyzinc_option_<?php echo $itemId?>" />
395
- <label for="carebyzinc_<?php echo $itemId.'_'.$qitem['id']; ?>" ></label>
396
- </div>
397
- </div>
398
- <div class="bx-r">
399
- <h2 class="p-price"><?php echo Mage::helper('core')->currency($qitem['price_per_year']); ?></h2>
400
- <h3 class="p-name quotelabel"><?php echo $qitem['description']; ?></h3>
401
-
402
- </div>
403
- </li>
404
- <?php endforeach; ?>
405
- </ul>
406
- <button type="button" title="Add" class="button" id="button-container_<?php echo $itemId?>" onclick="updateCareByZinc(<?php echo $itemId?>)"><span><span>Add</span></span></button>
407
- <?php else:
408
- echo $quoteDataSession;
409
- ?>
410
- <?php endif; ?>
411
- <?php endif; ?>
412
-
413
-
414
- </div>
415
- </div>
416
- <?php endif;?>
417
  <?php endif;?>
418
- </td></tr>
419
- <?php endif;?>
1
  <?php
2
+ /**
3
+ * ZincPlatform
4
+ * @package Zinc_Carebyzinc
5
+ * @copyright Copyright (c) 2016-2017 Zinplatform (http://www.zincplatform.com/)
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  ?>
9
  <?php
10
  $_item = $this->getItem();
13
  ?>
14
  <?php
15
  $product = Mage::getModel('catalog/product')->load($_item->getProductId());
16
+ $flag = 0;$warrantyflag = 0;
 
17
  $model = Mage::getModel('carebyzinc/carebyzinc');
 
 
18
  $helper = Mage::helper('carebyzinc');
19
+ if(($product->getCarebyzinc() == 1) && ($product->getCarebyzincCategory() != NULL)){
20
+ $flag = 1;
21
+ }
22
+ if($_item->getCarebyzincVariantid())
23
+ $flag = 0;
24
+ if($_item->getProductId() == Mage::getStoreConfig('carebyzinc/general/warranty_product')){
25
+ $carebyStatus = $model->getwarrantyStatus($_item->getCarebyzincParentid(),$_item->getId());
26
+ $flag = 1;$warrantyflag = 1;
27
+
28
+ }elseif (($product->getCarebyzinc() == 1) && (! $_item->getCarebyzincVariantid()) ){
29
+ $zip = $helper->getZipCode();
30
+ $product = Mage::getModel('catalog/product')->load($_item->getProductId());
31
+ $itemId = $_item->getId();
32
+ $quoteDataSession = $model->getPriceQuoteinCart($product, $itemId,$zip);
33
+ if((empty($quoteDataSession)) || (! is_array($quoteDataSession))){
34
+ $flag = 0;
35
+ }
36
+ }
37
+
38
+ ?>
39
 
40
  <tr <?php if($flag) echo "style='border-bottom:0px'"; ?>>
41
+ <td class="product-cart-image"<?php if($flag):?> rowspan="2" <?php endif;?>>
42
  <?php if ($this->hasProductUrl()):?>
43
  <a href="<?php echo $this->getProductUrl() ?>" title="<?php echo $this->escapeHtml($this->getProductName()) ?>" class="product-image">
44
+ <?php endif;?>
45
+ <img src="<?php echo $this->getProductThumbnail()->resize(180); ?>" alt="<?php echo $this->escapeHtml($this->getProductName()) ?>" <?php if ($warrantyflag):?> style="max-width: 100%;" <?php endif;?>/>
46
  <?php if ($this->hasProductUrl()):?>
47
  </a>
48
  <?php endif;?>
67
  <a href="<?php echo $this->getDeleteUrl() ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Remove Item')) ?>" class="btn-remove btn-remove2"><?php echo $this->__('Remove Item') ?></a>
68
 
69
  <h2 class="product-name">
70
+ <?php if ($this->hasProductUrl()):?>
71
+ <a href="<?php echo $this->getProductUrl() ?>"><?php echo $this->escapeHtml($this->getProductName()) ?></a>
72
+ <?php else: ?>
73
+ <?php if($_item->getProductId() == Mage::getStoreConfig('carebyzinc/general/warranty_product')):
74
+ $name = $model->getWarrentyName($_item->getCarebyzincParentid());
75
+ ?>
76
+ <?php echo $this->escapeHtml($this->getProductName().$name) ?>
77
+ <?php else:?>
78
+ <?php echo $this->escapeHtml($this->getProductName()) ?>
79
+ <?php endif; ?>
80
+ <?php endif; ?>
81
  </h2>
82
 
83
  <div class="product-cart-sku">
84
  <span class="label"><?php echo $this->__('SKU'); ?>:</span> <?php echo $this->escapeHtml($_item->getSku()); ?>
85
  </div>
86
 
87
+ <?php if ($_options = $this->getOptionList()):?>
88
  <dl class="item-options">
89
  <?php foreach ($_options as $_option) : ?>
90
+ <?php if($_option['label'] != 'carebyzinc'):?>
91
+ <?php $_formatedOptionValue = $this->getFormatedOptionValue($_option) ?>
92
+ <dt><?php echo $this->escapeHtml($_option['label']) ?></dt>
93
+ <dd<?php if (isset($_formatedOptionValue['full_view'])): ?> class="truncated"<?php endif; ?>><?php echo $_formatedOptionValue['value'] ?>
94
+ <?php if (isset($_formatedOptionValue['full_view'])): ?>
95
+ <div class="truncated_full_value">
96
+ <dl class="item-options">
97
+ <dt><?php echo $this->escapeHtml($_option['label']) ?></dt>
98
+ <dd><?php echo $_formatedOptionValue['full_view'] ?></dd>
99
+ </dl>
100
+ </div>
101
+ <?php endif; ?>
102
+ </dd>
103
+ <?php endif;?>
104
  <?php endforeach; ?>
105
  </dl>
106
+ <?php endif;?>
107
 
108
+ <?php if ($messages = $this->getMessages()): ?>
109
  <?php foreach ($messages as $message): ?>
110
  <p class="item-msg <?php echo $message['type'] ?>">
111
  * <?php echo $this->escapeHtml($message['text']) ?>
112
  </p>
113
  <?php endforeach; ?>
114
+ <?php endif; ?>
115
 
116
  <?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?>
117
  <?php if ($addInfoBlock): ?>
344
  <a href="<?php echo $this->getDeleteUrl() ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Remove Item')) ?>" class="btn-remove btn-remove2"><?php echo $this->__('Remove Item') ?></a>
345
  </td>
346
  </tr>
347
+
348
+ <?php $careByZinc = $_item->getCarebyzincOption();?>
349
+ <?php if($careByZinc): ?>
350
+ <tr>
351
+ <td colspan="5">
352
+ <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
353
+ <div class="product-cart-careby">
354
+ <p class="warranty_desc quotelabel"><?php echo $carebyzincAry['description'] ?></p>
355
+ </div>
356
+ </td>
357
+ </tr>
358
+
359
+ <?php else:?>
360
+ <?php
361
+ if (($product->getCarebyzinc() == 1) && (! $_item->getCarebyzincVariantid()) && ($_item->getProductId() != Mage::getStoreConfig('carebyzinc/general/warranty_product'))):
362
+ $zip = $helper->getZipCode();
363
+ $product = Mage::getModel('catalog/product')->load($_item->getProductId());
364
+ $itemId = $_item->getId();
365
+ $quoteDataSession = $model->getPriceQuoteinCart($product, $itemId,$zip);
366
+ ?>
367
+ <?php if(! empty($quoteDataSession)):?>
368
+ <?php if( is_array($quoteDataSession)):
369
+ $quoteData = $quoteDataSession[$itemId];?>
370
+ <tr><td colspan="5">
371
+
372
+ <div class="product-box">
373
+ <div id="carebyzincCnt_<?php echo $_item->getId(); ?>" class="carebyzincCnt product-container" style="display:block;">
374
+
375
+ <ul class="product-list">
376
+ <?php foreach($quoteData as $qitem): ?>
377
+ <li>
378
+ <div class="bx-l">
379
+ <div class="squared input">
380
+ <input type="radio" value="<?php echo $qitem['id']; ?>" id="carebyzinc_<?php echo $itemId.'_'.$qitem['id']; ?>" name="carebyzinc_option_<?php echo $itemId?>" onclick="updateCareByZinc(<?php echo $itemId?>)"/>
381
+ <label for="carebyzinc_<?php echo $itemId.'_'.$qitem['id']; ?>" ></label>
382
+ </div>
383
+ </div>
384
+ <div class="bx-r">
385
+ <h2 class="p-price"><?php echo Mage::helper('core')->currency($qitem['price_per_year']); ?></h2>
386
+ <h3 class="p-name quotelabel"><?php echo $qitem['description']; ?></h3>
387
+
388
+ </div>
389
+ </li>
390
+ <?php endforeach; ?>
391
+ </ul>
392
+ <div class="validation-advice carebyzinc_validation" id="advice-required-entry_<?php echo $_item->getId(); ?>" style="display:none;"><?php echo $this->__('This is a required field.');?></div>
393
+ <span><?php echo $this->__('Based on zip:')?></span> <span class="updatezip" onclick="openUpdatezip(<?php echo $itemId; ?>)"><strong><u><?php echo $zip ;?></u></strong></span>
394
+ <div id="updatezipside_<?php echo $_item->getId(); ?>" style="display:none;">
395
+ <input type="text" name="zipcode_<?php echo $_item->getId(); ?>" id="zipcode_<?php echo $_item->getId(); ?>" value="<?php echo $zip ;?>" placeholder="Enter Zip code here" style="width:21%"/>
396
+
397
+ <button class="btn-zinc showCarebyzinc" id="showCarebyzinc_<?php echo $_item->getId(); ?>" onclick="showCarebyzinc(<?php echo $_item->getProductId(); ?>,<?php echo $_item->getId(); ?>); return false;"><?php echo $this->__('Confirm')?><span id="care-loader_<?php echo $_item->getId(); ?>" class="care-loader"></span></button>
398
+
399
+ </div>
400
+ </div>
401
+ </div>
402
+ </td></tr>
403
+
404
+ <?php endif; ?>
405
+ <?php endif;?>
406
+ <?php endif;?>
 
 
 
 
 
 
 
 
 
 
407
  <?php endif;?>
 
 
app/design/frontend/base/default/template/carebyzinc/checkout/cart/minicart/default.phtml CHANGED
@@ -25,6 +25,7 @@
25
  */
26
  ?>
27
  <?php
 
28
  $_item = $this->getItem();
29
  $isVisibleProduct = $_item->getProduct()->isVisibleInSiteVisibility();
30
  $canApplyMsrp = Mage::helper('catalog')->canApplyMsrp($_item->getProduct(), Mage_Catalog_Model_Product_Attribute_Source_Msrp_Type::TYPE_BEFORE_ORDER_CONFIRM);
@@ -36,7 +37,16 @@
36
  <span class="product-image"><img src="<?php echo $this->getProductThumbnail()->resize(50, 50)->setWatermarkSize('30x10'); ?>" width="50" height="50" alt="<?php echo $this->escapeHtml($this->getProductName()) ?>" /></span>
37
  <?php endif; ?>
38
  <div class="product-details">
39
- <p class="product-name"><?php if ($this->hasProductUrl()): ?><a href="<?php echo $this->getProductUrl() ?>"><?php endif; ?><?php echo $this->escapeHtml($this->getProductName()) ?><?php if ($this->hasProductUrl()): ?></a><?php endif; ?></p>
 
 
 
 
 
 
 
 
 
40
 
41
  <table class="info-wrapper">
42
  <tbody>
@@ -165,9 +175,7 @@
165
  <?php endif; ?>
166
  <?php endif ?>
167
  <?php
168
- $productModel = Mage::getModel('catalog/product')->load($this->getProduct()->getId());
169
  $_options = $this->getOptionList();$i = 1;
170
- if($productModel->getCarebyzinc() == 1){
171
  foreach ($_options as $_option) {
172
  if($_option['label'] != 'carebyzinc')
173
  $i++;
@@ -175,7 +183,7 @@
175
 
176
  }
177
 
178
- }
179
  ?>
180
  <?php if($i):
181
 
@@ -196,7 +204,7 @@
196
  <?php endif; ?>
197
  <?php endforeach; ?>
198
  <?php $careByZinc = $_item->getCarebyzincOption();?>
199
- <?php if($careByZinc && $productModel->getCarebyzinc() == 1): ?>
200
 
201
  <dt><?php echo Mage::helper('carebyzinc')->getTitle() ?></dt>
202
  <dd>
@@ -205,7 +213,6 @@
205
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
206
  <div class="product-cart-careby">
207
  <p><?php echo $carebyzincAry['description'] ?></p>
208
- <p class="care-price"><?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?></p>
209
 
210
  </div>
211
  </dd>
25
  */
26
  ?>
27
  <?php
28
+ $model = Mage::getModel('carebyzinc/carebyzinc');
29
  $_item = $this->getItem();
30
  $isVisibleProduct = $_item->getProduct()->isVisibleInSiteVisibility();
31
  $canApplyMsrp = Mage::helper('catalog')->canApplyMsrp($_item->getProduct(), Mage_Catalog_Model_Product_Attribute_Source_Msrp_Type::TYPE_BEFORE_ORDER_CONFIRM);
37
  <span class="product-image"><img src="<?php echo $this->getProductThumbnail()->resize(50, 50)->setWatermarkSize('30x10'); ?>" width="50" height="50" alt="<?php echo $this->escapeHtml($this->getProductName()) ?>" /></span>
38
  <?php endif; ?>
39
  <div class="product-details">
40
+ <p class="product-name">
41
+ <?php if ($this->hasProductUrl()): ?><a href="<?php echo $this->getProductUrl() ?>"><?php endif; ?>
42
+ <?php if($_item->getProductId() == Mage::getStoreConfig('carebyzinc/general/warranty_product')):
43
+ $name = $model->getWarrentyName($_item->getCarebyzincParentid());
44
+ ?>
45
+ <?php echo $this->escapeHtml($this->getProductName().$name) ?>
46
+ <?php else:?>
47
+ <?php echo $this->escapeHtml($this->getProductName()) ?>
48
+ <?php endif; ?>
49
+ <?php if ($this->hasProductUrl()): ?></a><?php endif; ?></p>
50
 
51
  <table class="info-wrapper">
52
  <tbody>
175
  <?php endif; ?>
176
  <?php endif ?>
177
  <?php
 
178
  $_options = $this->getOptionList();$i = 1;
 
179
  foreach ($_options as $_option) {
180
  if($_option['label'] != 'carebyzinc')
181
  $i++;
183
 
184
  }
185
 
186
+
187
  ?>
188
  <?php if($i):
189
 
204
  <?php endif; ?>
205
  <?php endforeach; ?>
206
  <?php $careByZinc = $_item->getCarebyzincOption();?>
207
+ <?php if($careByZinc): ?>
208
 
209
  <dt><?php echo Mage::helper('carebyzinc')->getTitle() ?></dt>
210
  <dd>
213
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
214
  <div class="product-cart-careby">
215
  <p><?php echo $carebyzincAry['description'] ?></p>
 
216
 
217
  </div>
218
  </dd>
app/design/frontend/base/default/template/carebyzinc/checkout/multishipping/item/default.phtml CHANGED
@@ -24,7 +24,18 @@
24
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
  */
26
  ?>
27
- <h3 class="product-name"><a href="<?php echo $this->getProductUrl() ?>"><?php echo $this->escapeHtml($this->getProductName()) ?></a></h3>
 
 
 
 
 
 
 
 
 
 
 
28
  <?php
29
  $careByZinc = $this->getItem()->getCarebyzincOption();
30
  ?>
@@ -33,7 +44,6 @@
33
  <div class="product-cart-careby">
34
  <p><?php echo $carebyzincAry['description'] ?></p>
35
  <p class="care-price"><?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?></p>
36
- <p class="care-prov"><span>Provider:</span> <?php echo $carebyzincAry['provider'] ?></p>
37
  </div>
38
 
39
  <?php endif; ?>
24
  * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
  */
26
  ?>
27
+ <h3 class="product-name">
28
+ <?php if($this->getItem()->getProductId() == Mage::getStoreConfig('carebyzinc/general/warranty_product')):
29
+ $model = Mage::getModel('carebyzinc/carebyzinc');
30
+ $name = $model->getWarrentyName($this->getItem()->getCarebyzincParentid());
31
+ ?>
32
+ <?php echo $this->escapeHtml($this->getProductName().$name) ?>
33
+ <?php else:?>
34
+ <a href="<?php echo $this->getProductUrl() ?>">
35
+ <?php echo $this->escapeHtml($this->getProductName()) ?>
36
+ </a>
37
+ <?php endif; ?>
38
+ </h3>
39
  <?php
40
  $careByZinc = $this->getItem()->getCarebyzincOption();
41
  ?>
44
  <div class="product-cart-careby">
45
  <p><?php echo $carebyzincAry['description'] ?></p>
46
  <p class="care-price"><?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?></p>
 
47
  </div>
48
 
49
  <?php endif; ?>
app/design/frontend/base/default/template/carebyzinc/checkout/onepage/review/info.phtml ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package rwd_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php echo $this->getChildHtml('items_before'); ?>
28
+ <div id="checkout-review-table-wrapper">
29
+ <?php $_tableClass = $this->helper('tax')->displayCartBothPrices() ? 'linearize-table-large' : 'linearize-table'; ?>
30
+ <table class="data-table <?php echo $_tableClass; ?> checkout-review-table" id="checkout-review-table">
31
+ <?php if ($this->helper('tax')->displayCartBothPrices()): $colspan = $rowspan = 2; else: $colspan = $rowspan = 1; endif; ?>
32
+ <col />
33
+ <col width="1" />
34
+ <col width="1" />
35
+ <col width="1" />
36
+ <?php if ($this->helper('tax')->displayCartBothPrices()): ?>
37
+ <col width="1" />
38
+ <col width="1" />
39
+ <?php endif; ?>
40
+ <thead>
41
+ <tr>
42
+ <th rowspan="<?php echo $rowspan ?>"><?php echo $this->__('Product') ?></th>
43
+ <th colspan="<?php echo $colspan ?>" class="a-center"><?php echo $this->__('Price') ?></th>
44
+ <th rowspan="<?php echo $rowspan ?>" class="a-center"><?php echo $this->__('Qty') ?></th>
45
+ <th colspan="<?php echo $colspan ?>" class="a-center"><?php echo $this->__('Subtotal') ?></th>
46
+ </tr>
47
+ <?php if ($this->helper('tax')->displayCartBothPrices()): ?>
48
+ <tr>
49
+ <th class="a-right"><?php echo $this->helper('tax')->getIncExcTaxLabel(false) ?></th>
50
+ <th><?php echo $this->helper('tax')->getIncExcTaxLabel(true) ?></th>
51
+ <th class="a-right"><?php echo $this->helper('tax')->getIncExcTaxLabel(false) ?></th>
52
+ <th><?php echo $this->helper('tax')->getIncExcTaxLabel(true) ?></th>
53
+ </tr>
54
+ <?php endif; ?>
55
+ </thead>
56
+ <?php echo $this->getChildHtml('totals'); ?>
57
+ <tbody>
58
+ <?php foreach($this->getItems() as $_item): ?>
59
+ <?php echo $this->getItemHtml($_item)?>
60
+ <?php endforeach ?>
61
+ </tbody>
62
+ </table>
63
+ </div>
64
+ <?php echo $this->getChildHtml('items_after'); ?>
65
+ <script type="text/javascript">
66
+ //<![CDATA[
67
+ decorateTable('checkout-review-table');
68
+ truncateOptions();
69
+ //]]>
70
+ </script>
71
+ <div id="checkout-review-submit">
72
+ <?php echo $this->getChildHtml('agreements') ?>
73
+ <div class="buttons-set" id="review-buttons-container">
74
+ <?php echo $this->getChildHtml('button') ?>
75
+ <span class="please-wait" id="review-please-wait" style="display:none;">
76
+ <img src="<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif') ?>" alt="<?php echo Mage::helper('core')->quoteEscape($this->__('Submitting order information...')) ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Submitting order information...')) ?>" class="v-middle" /> <?php echo $this->__('Submitting order information...') ?>
77
+ </span>
78
+ <p class="f-left"><?php echo $this->__('Forgot an Item?') ?> <a href="<?php echo $this->getUrl('checkout/cart') ?>" onclick="return confirm('<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Are you sure you want to leave this page? You will need to go through the checkout steps again.')); ?>')"><?php echo $this->__('Edit Your Cart') ?></a></p>
79
+ </div>
80
+ <script type="text/javascript">
81
+ //<![CDATA[
82
+ review = new Review('<?php echo $this->getUrl('checkout/onepage/saveOrder', array('form_key' => Mage::getSingleton('core/session')->getFormKey())) ?>', '<?php echo $this->getUrl('checkout/onepage/success') ?>', $('checkout-agreements'));
83
+ //]]>
84
+ </script>
85
+ </div>
86
+ <script type="text/javascript">
87
+ jQuery.noConflict();
88
+ jQuery(document).ready(function() {
89
+ jQuery("a", ".quotelabel").click(
90
+ function(event) {
91
+ event.preventDefault();
92
+ var elementURL = jQuery(this).attr("href");
93
+ jQuery.colorbox({iframe: true, href: elementURL, innerWidth: 645,fastIframe: false, innerHeight: 509,width:"70%"});
94
+ });
95
+ });
96
+ //]]>
97
+ </script>
app/design/frontend/base/default/template/carebyzinc/checkout/onepage/review/item.phtml CHANGED
@@ -26,7 +26,17 @@
26
  ?>
27
  <?php $_item = $this->getItem()?>
28
  <tr>
29
- <td><h3 class="product-name"><?php echo $this->escapeHtml($this->getProductName()) ?></h3>
 
 
 
 
 
 
 
 
 
 
30
 
31
  <?php
32
  $careByZinc = $_item->getCarebyzincOption();
@@ -34,9 +44,7 @@
34
  <?php if($careByZinc): ?>
35
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
36
  <div class="product-cart-careby">
37
- <p><?php echo $carebyzincAry['description'] ?></p>
38
- <p class="care-price"><?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?></p>
39
- <p class="care-prov"><span>Provider:</span> <?php echo $carebyzincAry['provider'] ?></p>
40
  </div>
41
 
42
  <?php endif; ?>
26
  ?>
27
  <?php $_item = $this->getItem()?>
28
  <tr>
29
+ <td>
30
+ <h3 class="product-name">
31
+ <?php if($_item->getProductId() == Mage::getStoreConfig('carebyzinc/general/warranty_product')):
32
+ $model = Mage::getModel('carebyzinc/carebyzinc');
33
+ $name = $model->getWarrentyName($_item->getCarebyzincParentid());
34
+ ?>
35
+ <?php echo $this->escapeHtml($this->getProductName().$name) ?>
36
+ <?php else:?>
37
+ <?php echo $this->escapeHtml($this->getProductName()) ?>
38
+ <?php endif; ?>
39
+ </h3>
40
 
41
  <?php
42
  $careByZinc = $_item->getCarebyzincOption();
44
  <?php if($careByZinc): ?>
45
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
46
  <div class="product-cart-careby">
47
+ <p class="quotelabel"><?php echo $carebyzincAry['description'] ?></p>
 
 
48
  </div>
49
 
50
  <?php endif; ?>
app/design/frontend/base/default/template/carebyzinc/email/order/items/creditmemo/default.phtml CHANGED
@@ -44,10 +44,8 @@
44
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
45
  <div class="product-cart-careby">
46
  <p><?php echo $carebyzincAry['description'] ?></p>
47
- <p class="care-price"><?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?></p>
48
- <p class="care-prov"><span>Provider:</span> <?php echo $carebyzincAry['provider'] ?></p>
49
- <?php $order = Mage::getModel('carebyzinc/order')->load($_item->getOrderItem()->getId(),'item_id');?>
50
- <p><span>Policy Key:</span> <b> <?php echo $order->getCarebyzincKey(); ?></b></p>
51
  </div>
52
  <?php endif; ?>
53
  <?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?>
44
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
45
  <div class="product-cart-careby">
46
  <p><?php echo $carebyzincAry['description'] ?></p>
47
+ <?php $order = Mage::getModel('carebyzinc/order')->load($_item->getOrderItem()->getCarebyzincParentid(),'item_id');?>
48
+ <p><span><?php echo $this->__('Policy Key:');?></span> <b> <?php echo $order->getCarebyzincKey(); ?></b></p>
 
 
49
  </div>
50
  <?php endif; ?>
51
  <?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?>
app/design/frontend/base/default/template/carebyzinc/email/order/items/invoice/default.phtml CHANGED
@@ -45,10 +45,8 @@
45
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
46
  <div class="product-cart-careby">
47
  <p><?php echo $carebyzincAry['description'] ?></p>
48
- <p class="care-price"><?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?></p>
49
- <p class="care-prov"><span>Provider:</span> <?php echo $carebyzincAry['provider'] ?></p>
50
- <?php $order = Mage::getModel('carebyzinc/order')->load($_item->getOrderItem()->getId(),'item_id');?>
51
- <p><span>Policy Key:</span> <b><?php echo $order->getCarebyzincKey(); ?></b></p>
52
  </div>
53
  <?php endif; ?>
54
  <?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?>
45
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
46
  <div class="product-cart-careby">
47
  <p><?php echo $carebyzincAry['description'] ?></p>
48
+ <?php $order = Mage::getModel('carebyzinc/order')->load($_item->getOrderItem()->getCarebyzincParentid(),'item_id');?>
49
+ <p><span><?php echo $this->__('Policy Key:');?></span> <b><?php echo $order->getCarebyzincKey(); ?></b></p>
 
 
50
  </div>
51
  <?php endif; ?>
52
  <?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?>
app/design/frontend/base/default/template/carebyzinc/email/order/items/order/default.phtml CHANGED
@@ -47,10 +47,8 @@
47
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
48
  <div class="product-cart-careby">
49
  <p><?php echo $carebyzincAry['description'] ?></p>
50
- <p class="care-price"><?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?></p>
51
- <p class="care-prov"><span>Provider:</span> <?php echo $carebyzincAry['provider'] ?></p>
52
- <?php $order = Mage::getModel('carebyzinc/order')->load($_item->getId(),'item_id');?>
53
- <p><span>Policy Key:</span> <b><?php echo $order->getCarebyzincKey(); ?></b></p>
54
  </div>
55
  <?php endif; ?>
56
  <?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?>
47
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
48
  <div class="product-cart-careby">
49
  <p><?php echo $carebyzincAry['description'] ?></p>
50
+ <?php $order = Mage::getModel('carebyzinc/order')->load($_item->getCarebyzincParentid(),'item_id');?>
51
+ <p><span><?php echo $this->__('Policy Key:');?></span> <b><?php echo $order->getCarebyzincKey(); ?></b></p>
 
 
52
  </div>
53
  <?php endif; ?>
54
  <?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?>
app/design/frontend/base/default/template/carebyzinc/email/order/items/shipment/default.phtml CHANGED
@@ -42,10 +42,8 @@
42
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
43
  <div class="product-cart-careby">
44
  <p><?php echo $carebyzincAry['description'] ?></p>
45
- <p class="care-price"><?php echo $this->helper('checkout')->formatPrice($carebyzincAry['price_per_year']) ?></p>
46
- <p class="care-prov"><span>Provider:</span> <?php echo $carebyzincAry['provider'] ?></p>
47
- <?php $order = Mage::getModel('carebyzinc/order')->load($_item->getOrderItem()->getId(),'item_id');?>
48
- <p><span>Policy Key:</span> <b> <?php echo $order->getCarebyzincKey(); ?></b></p>
49
  </div>
50
  <?php endif; ?>
51
  <?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?>
42
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
43
  <div class="product-cart-careby">
44
  <p><?php echo $carebyzincAry['description'] ?></p>
45
+ <?php $order = Mage::getModel('carebyzinc/order')->load($_item->getOrderItem()->getCarebyzincParentid(),'item_id');?>
46
+ <p><span><?php echo $this->__('Policy Key:');?></span> <b> <?php echo $order->getCarebyzincKey(); ?></b></p>
 
 
47
  </div>
48
  <?php endif; ?>
49
  <?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?>
app/design/frontend/base/default/template/carebyzinc/options/cart.phtml CHANGED
@@ -1,5 +1,6 @@
1
  <?php $quoteData = $this->getQuoteData();
2
  $itemId = $this->getItemId();
 
3
  ?>
4
  <?php if(! empty($quoteData)): ?>
5
 
@@ -9,7 +10,7 @@
9
  <li>
10
  <div class="bx-l">
11
  <div class="squared input">
12
- <input type="radio" value="<?php echo $item['id']; ?>" id="carebyzinc_<?php echo $itemId.'_'.$item['id']; ?>" name="carebyzinc_option_<?php echo $itemId?>" />
13
  <label for="carebyzinc_<?php echo $itemId.'_'.$item['id']; ?>"></label>
14
  </div>
15
  </div>
@@ -20,12 +21,22 @@
20
  </li>
21
  <?php endforeach; ?>
22
  </ul>
23
- <button type="button" title="Add" class="button" id="button-container_<?php echo $itemId?>" onclick="updateCareByZinc(<?php echo $itemId?>)"><span><span>Add</span></span></button>
 
 
 
 
 
 
 
 
 
 
24
  <?php else:
25
- echo $quoteData;
26
  ?>
27
  <?php endif; ?>
28
  <?php else:
29
- echo 'No quotes available';
30
  ?>
31
  <?php endif; ?>
1
  <?php $quoteData = $this->getQuoteData();
2
  $itemId = $this->getItemId();
3
+ $pId = $this->getPId();
4
  ?>
5
  <?php if(! empty($quoteData)): ?>
6
 
10
  <li>
11
  <div class="bx-l">
12
  <div class="squared input">
13
+ <input type="radio" value="<?php echo $item['id']; ?>" id="carebyzinc_<?php echo $itemId.'_'.$item['id']; ?>" name="carebyzinc_option_<?php echo $itemId?>" onclick="updateCareByZinc(<?php echo $itemId?>)"/>
14
  <label for="carebyzinc_<?php echo $itemId.'_'.$item['id']; ?>"></label>
15
  </div>
16
  </div>
21
  </li>
22
  <?php endforeach; ?>
23
  </ul>
24
+ <?php $helper = Mage::helper('carebyzinc');
25
+ $zip = $this->getZipData()? $this->getZipData():$helper->getZipCode();?>
26
+
27
+ <div class="validation-advice carebyzinc_validation" id="advice-required-entry_<?php echo $itemId; ?>" style="display:none;"><?php echo $this->__('This is a required field.');?></div>
28
+ <span><?php echo $this->__('Based on zip:')?></span> <span class="updatezip" onclick="openUpdatezip(<?php echo $itemId; ?>)"><strong><u><?php echo $zip ;?></u></strong></span>
29
+ <div id="updatezipside_<?php echo $itemId; ?>" style="display:none;">
30
+ <input type="text" name="zipcode_<?php echo $itemId; ?>" id="zipcode_<?php echo $itemId; ?>" value="<?php echo $zip ;?>" placeholder="Enter Zip code here" style="width:21%"/>
31
+
32
+ <button class="btn-zinc showCarebyzinc" id="showCarebyzinc_<?php echo $itemId; ?>" onclick="showCarebyzinc(<?php echo $pId; ?>,<?php echo $itemId; ?>); return false;"><?php echo $this->__('Confirm')?><span id="care-loader_<?php echo $itemId; ?>" class="care-loader"></span></button>
33
+
34
+ </div>
35
  <?php else:
36
+ //echo $quoteData;
37
  ?>
38
  <?php endif; ?>
39
  <?php else:
40
+ //echo 'No quotes available';
41
  ?>
42
  <?php endif; ?>
app/design/frontend/base/default/template/carebyzinc/options/default.phtml CHANGED
@@ -1,12 +1,14 @@
1
  <?php $quoteData = $this->getQuoteData();?>
2
  <?php if(! empty($quoteData)): ?>
3
  <?php if( is_array($quoteData)): ?>
 
 
4
  <ul class="product-list">
5
  <?php foreach($quoteData as $item): ?>
6
  <li>
7
  <div class="bx-l">
8
  <div class="squared input">
9
- <input type="radio" value="<?php echo $item['id']; ?>" id="carebyzinc_<?php echo $item['id']; ?>" name="carebyzinc_option" />
10
  <label for="carebyzinc_<?php echo $item['id']; ?>"></label>
11
  </div>
12
  </div>
@@ -17,23 +19,30 @@
17
  </li>
18
  <?php endforeach; ?>
19
  </ul>
20
-
21
  <script>
22
- jQuery.noConflict();
23
- jQuery(document).ready(function() {
24
- jQuery("a", ".quotelabel").click(
25
- function(event) {
26
  event.preventDefault();
27
  var elementURL = jQuery(this).attr("href");
28
  jQuery.colorbox({iframe: true, href: elementURL, innerWidth: 645,fastIframe: false, innerHeight: 509,width:"70%"});
29
  });
30
- });
 
 
 
 
 
 
 
 
 
 
 
 
31
  </script>
32
- <?php else:
33
- echo $quoteData;
34
- ?>
35
  <?php endif; ?>
36
- <?php else:
37
- echo 'No quotes available';
38
- ?>
39
  <?php endif; ?>
1
  <?php $quoteData = $this->getQuoteData();?>
2
  <?php if(! empty($quoteData)): ?>
3
  <?php if( is_array($quoteData)): ?>
4
+ <div class="product-wrap">
5
+
6
  <ul class="product-list">
7
  <?php foreach($quoteData as $item): ?>
8
  <li>
9
  <div class="bx-l">
10
  <div class="squared input">
11
+ <input type="radio" value="<?php echo $item['id']; ?>" id="carebyzinc_<?php echo $item['id']; ?>" name="carebyzinc_option" onclick="checkAction(this)"/>
12
  <label for="carebyzinc_<?php echo $item['id']; ?>"></label>
13
  </div>
14
  </div>
19
  </li>
20
  <?php endforeach; ?>
21
  </ul>
22
+ </div>
23
  <script>
24
+ //<![CDATA[
25
+ jQuery(".quotelabel").on("click","a", function(event){
 
 
26
  event.preventDefault();
27
  var elementURL = jQuery(this).attr("href");
28
  jQuery.colorbox({iframe: true, href: elementURL, innerWidth: 645,fastIframe: false, innerHeight: 509,width:"70%"});
29
  });
30
+ //]]>
31
+ </script>
32
+ <?php else:?>
33
+ <div id="warning_div"><?php echo $quoteData;?></div>
34
+ <script>
35
+ //<![CDATA[
36
+ hideDivData();
37
+ function hideDivData(){
38
+ setTimeout(function() {
39
+ jQuery('#warning_div').fadeOut('fast');
40
+ }, 1000);
41
+ }
42
+ //]]>
43
  </script>
 
 
 
44
  <?php endif; ?>
45
+ <?php else:?>
46
+ <p style="color:red;"><?php echo $this->__( 'No quotes available');?>
47
+ </p>
48
  <?php endif; ?>
app/design/frontend/base/default/template/carebyzinc/sales/order/creditmemo/items/renderer/default.phtml CHANGED
@@ -36,10 +36,8 @@
36
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
37
  <div class="product-cart-careby">
38
  <p><?php echo $carebyzincAry['description'] ?></p>
39
- <p class="care-price"><?php echo $this->getOrder()->formatPrice($carebyzincAry['price_per_year']) ?></p>
40
- <p class="care-prov"><span>Provider:</span> <?php echo $carebyzincAry['provider'] ?></p>
41
- <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getId(),'item_id');?>
42
- <p><span>Policy Key:</span> <?php echo $order->getCarebyzincKey(); ?></p>
43
  </div>
44
 
45
  <?php endif; ?>
36
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
37
  <div class="product-cart-careby">
38
  <p><?php echo $carebyzincAry['description'] ?></p>
39
+ <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getCarebyzincParentid(),'item_id');?>
40
+ <p><span><?php echo $this->__('Policy Key:');?></span> <?php echo $order->getCarebyzincKey(); ?></p>
 
 
41
  </div>
42
 
43
  <?php endif; ?>
app/design/frontend/base/default/template/carebyzinc/sales/order/invoice/items/renderer/default.phtml CHANGED
@@ -35,10 +35,8 @@
35
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
36
  <div class="product-cart-careby">
37
  <p><?php echo $carebyzincAry['description'] ?></p>
38
- <p class="care-price"><?php echo $this->getOrder()->formatPrice($carebyzincAry['price_per_year']) ?></p>
39
- <p class="care-prov"><span>Provider:</span> <?php echo $carebyzincAry['provider'] ?></p>
40
- <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getId(),'item_id');?>
41
- <p><span>Policy Key:</span> <?php echo $order->getCarebyzincKey(); ?></p>
42
  </div>
43
 
44
  <?php endif; ?>
35
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
36
  <div class="product-cart-careby">
37
  <p><?php echo $carebyzincAry['description'] ?></p>
38
+ <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getCarebyzincParentid(),'item_id');?>
39
+ <p><span><?php echo $this->__('Policy Key:');?></span> <?php echo $order->getCarebyzincKey(); ?></p>
 
 
40
  </div>
41
 
42
  <?php endif; ?>
app/design/frontend/base/default/template/carebyzinc/sales/order/items/renderer/default.phtml CHANGED
@@ -36,10 +36,8 @@
36
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
37
  <div class="product-cart-careby">
38
  <p><?php echo $carebyzincAry['description'] ?></p>
39
- <p class="care-price"><?php echo $this->getOrder()->formatPrice($carebyzincAry['price_per_year']) ?></p>
40
- <p class="care-prov"><span>Provider:</span> <?php echo $carebyzincAry['provider'] ?></p>
41
- <?php $order = Mage::getModel('carebyzinc/order')->load($_item->getId(),'item_id');?>
42
- <p><span>Policy Key:</span> <?php echo $order->getCarebyzincKey(); ?></p>
43
  </div>
44
 
45
  <?php endif; ?>
36
  <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
37
  <div class="product-cart-careby">
38
  <p><?php echo $carebyzincAry['description'] ?></p>
39
+ <?php $order = Mage::getModel('carebyzinc/order')->load($_item->getCarebyzincParentid(),'item_id');?>
40
+ <p><span><?php echo $this->__('Policy Key:');?></span> <?php echo $order->getCarebyzincKey(); ?></p>
 
 
41
  </div>
42
 
43
  <?php endif; ?>
app/design/frontend/base/default/template/carebyzinc/sales/order/shipment/items/renderer/default.phtml DELETED
@@ -1,79 +0,0 @@
1
- <?php
2
- /**
3
- * Magento
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Academic Free License (AFL 3.0)
8
- * that is bundled with this package in the file LICENSE_AFL.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/afl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magento.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magento.com for more information.
20
- *
21
- * @category design
22
- * @package base_default
23
- * @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
24
- * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
- */
26
- ?>
27
- <?php $_item = $this->getItem() ?>
28
- <?php $_order = $this->getItem()->getOrderItem()->getOrder() ?>
29
- <tr class="border" id="order-item-row-<?php echo $_item->getId() ?>">
30
- <td><h4 class="product-name"><?php echo $this->escapeHtml($_item->getName()) ?></h4>
31
- <?php
32
- $careByZinc = $this->getItem()->getOrderItem()->getCarebyzincOption();
33
- ?>
34
- <?php if($careByZinc): ?>
35
- <?php $carebyzincAry = (array) unserialize($careByZinc); ?>
36
- <div class="product-cart-careby">
37
- <p><?php echo $carebyzincAry['description'] ?></p>
38
- <p class="care-price"><?php echo $this->getOrder()->formatPrice($carebyzincAry['price_per_year']) ?></p>
39
- <p class="care-prov"><span>Provider:</span> <?php echo $carebyzincAry['provider'] ?></p>
40
- <?php $order = Mage::getModel('carebyzinc/order')->load($this->getItem()->getOrderItem()->getId(),'item_id');?>
41
- <p><span>Policy Key:</span> <?php echo $order->getCarebyzincKey(); ?></p>
42
- </div>
43
-
44
- <?php endif; ?>
45
- <?php if($_options = $this->getItemOptions()): ?>
46
- <dl class="item-options">
47
- <?php foreach ($_options as $_option) : ?>
48
- <dt><?php echo $this->escapeHtml($_option['label']) ?></dt>
49
- <?php if (!$this->getPrintStatus()): ?>
50
- <?php $_formatedOptionValue = $this->getFormatedOptionValue($_option) ?>
51
- <dd<?php if (isset($_formatedOptionValue['full_view'])): ?> class="truncated"<?php endif; ?>>
52
- <?php echo $_formatedOptionValue['value'] ?>
53
- <?php if (isset($_formatedOptionValue['full_view'])): ?>
54
- <div class="truncated_full_value">
55
- <dl class="item-options">
56
- <dt><?php echo $this->escapeHtml($_option['label']) ?></dt>
57
- <dd><?php echo $_formatedOptionValue['full_view'] ?></dd>
58
- </dl>
59
- </div>
60
- <?php endif; ?>
61
- </dd>
62
- <?php else: ?>
63
- <dd><?php echo $this->escapeHtml( (isset($_option['print_value']) ? $_option['print_value'] : $_option['value']) ) ?></dd>
64
- <?php endif; ?>
65
- <?php endforeach; ?>
66
- </dl>
67
- <?php endif; ?>
68
- <?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?>
69
- <?php if ($addInfoBlock) :?>
70
- <?php echo $addInfoBlock->setItem($_item->getOrderItem())->toHtml(); ?>
71
- <?php endif; ?>
72
- <?php echo $this->escapeHtml($_item->getDescription()) ?>
73
- <?php if($this->helper('giftmessage/message')->getIsMessagesAvailable('order_item', $_item->getOrderItem()) && $_item->getGiftMessageId()): ?>
74
- <a href="#" id="order-item-gift-message-link-<?php echo $_item->getId() ?>" class="gift-message-link" onclick="return giftMessageToogle('<?php echo $_item->getId() ?>')"><?php echo $this->__('Gift Message') ?></a>
75
- <?php endif; ?>
76
- </td>
77
- <td><?php echo $this->escapeHtml(Mage::helper('core/string')->splitInjection($this->getSku())) ?></td>
78
- <td class="a-center"><?php echo $_item->getQty()*1 ?></td>
79
- </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/carebyzinc/jquery.min.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ /*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */
2
+ (function(a,b){function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bA.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bW(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bP,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bW(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bW(a,c,d,e,"*",g));return l}function bV(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bL),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function by(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bt:bu;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bf(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function V(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(Q.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(w,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:H?function(a){return a==null?"":H.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?F.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(!b)return-1;if(I)return I.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=G.call(arguments,2),g=function(){return a.apply(c,f.concat(G.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){J["[object "+b+"]"]=b.toLowerCase()}),A=e.uaMatch(z),A.browser&&(e.browser[A.browser]=!0,e.browser.version=A.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?C=function(){c.removeEventListener("DOMContentLoaded",C,!1),e.ready()}:c.attachEvent&&(C=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",C),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g+"With"](this===b?d:this,[h])}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u,v;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete
3
+ t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,M(a.origType,a.selector),f.extend({},a,{handler:L,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,M(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?D:C):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=D;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=D;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=D,this.stopPropagation()},isDefaultPrevented:C,isPropagationStopped:C,isImmediatePropagationStopped:C};var E=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},F=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?F:E,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?F:E)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="submit"||c==="image")&&f(b).closest("form").length&&J("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&J("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var G,H=function(a){var b=f.nodeName(a,"input")?a.type:"",c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var K={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||C,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=w.exec(h),k="",j&&(k=j[0],h=h.replace(w,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,K[h]?(a.push(K[h]+k),h=h+k):h=(K[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+M(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+M(h,m),e)}return this}}),f.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".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var N=/Until$/,O=/^(?:parents|prevUntil|prevAll)/,P=/,/,Q=/^.[^:#\[\.,]*$/,R=Array.prototype.slice,S=f.expr.match.POS,T={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(V(this,a,!1),"not",a)},filter:function(a){return this.pushStack(V(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=S.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|object|embed|option|style)/i,bb=/checked\s*(?:[^=]|=\s*.checked.)/i,bc=/\/(java|ecma)script/i,bd=/^\s*<!(?:\[CDATA\[|\-\-)/,be={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bb.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bf(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bl)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!ba.test(a[0])&&(f.support.checkClone||!bb.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean
4
+ (a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bk(k[i]);else bk(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bc.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bm=/alpha\([^)]*\)/i,bn=/opacity=([^)]*)/,bo=/([A-Z]|^ms)/g,bp=/^-?\d+(?:px)?$/i,bq=/^-?\d/,br=/^([\-+])=([\-+.\de]+)/,bs={position:"absolute",visibility:"hidden",display:"block"},bt=["Left","Right"],bu=["Top","Bottom"],bv,bw,bx;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bv(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=br.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bv)return bv(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return by(a,b,d);f.swap(a,bs,function(){e=by(a,b,d)});return e}},set:function(a,b){if(!bp.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bK=/^(?:select|textarea)/i,bL=/\s+/,bM=/([?&])_=[^&]*/,bN=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bO=f.fn.load,bP={},bQ={},bR,bS,bT=["*/"]+["*"];try{bR=e.href}catch(bU){bR=c.createElement("a"),bR.href="",bR=bR.href}bS=bN.exec(bR.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bO)return bO.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bJ,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bK.test(this.nodeName)||bE.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bB,"\r\n")}}):{name:b.name,value:c.replace(bB,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?bX(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),bX(a,b);return a},ajaxSettings:{url:bR,isLocal:bF.test(bS[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bT},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bV(bP),ajaxTransport:bV(bQ),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?bZ(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=b$(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bD.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bC,"").replace(bH,bS[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bL),d.crossDomain==null&&(r=bN.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bS[1]&&r[2]==bS[2]&&(r[3]||(r[1]==="http:"?80:443))==(bS[3]||(bS[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bW(bP,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bG.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bI.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bM,"$1_="+x);d.url=y+(y===d.url?(bI.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bT+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bW(bQ,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bz,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cq("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cr(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cq("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cq("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cr(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cq("show",1),slideUp:cq("hide",1),slideToggle:cq("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return d.step(a)}var d=this,e=f.fx;this.startTime=cn||co(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&f.timers.push(g)&&!cl&&(cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||co(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cs=/^t(?:able|d|h)$/i,ct=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cu(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cs.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=ct.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!ct.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cu(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cu(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNaN(j)?i:j}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
js/carebyzinc/noConflict.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery.noConflict();
media/catalog/product/zinc/warranty.png ADDED
Binary file
package.xml CHANGED
@@ -1,20 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>zinc</name>
4
- <version>1.0.4</version>
5
  <stability>stable</stability>
6
- <license uri="http://opensource.org/licenses/osl-3.0.php">OSL 3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Zinc is an application to allow merchants cross sell warranties and product protections online.</summary>
10
- <description>Zinc enables online merchants to seamlessly offer product protection insurance and warranty plans for their products. Similar to a white-labelled Apple Care experience, after a quick on-boarding process, merchants would be able to deploy an &#x201C;insure&#x201D; button on their site, and Zinc takes care of the rest to issue, bind and support the insurance and warranty contracts.&#xD;
11
- Zinc partners with the best insurance and warranty providers to offer tailored policies for each merchant. For product lines including jewelries, furniture, apparels, sporting goods and consumer electronics, enjoy the additional margin and improved customer satisfaction without writing a single line of code.</description>
12
- <notes>Zinc enables online merchants to seamlessly offer product protection insurance and warranty plans for their products. Similar to a white-labelled Apple Care experience, after a quick on-boarding process, merchants would be able to deploy an &#x201C;insure&#x201D; button on their site, and Zinc takes care of the rest to issue, bind and support the insurance and warranty contracts.&#xD;
13
- Zinc partners with the best insurance and warranty providers to offer tailored policies for each merchant. For product lines including jewelries, furniture, apparels, sporting goods and consumer electronics, enjoy the additional margin and improved customer satisfaction without writing a single line of code.</notes>
14
- <authors><author><name>ZincPlatform</name><user>ZincPlatform</user><email>sam.li@zincplatform.com</email></author></authors>
15
- <date>2016-09-23</date>
16
- <time>11:18:06</time>
17
- <contents><target name="magelocal"><dir name="Zinc"><dir name="Carebyzinc"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><file name="Grid.php" hash="dc6cb39059a6be0f4388e6157156932d"/><dir name="Renderer"><file name="Category.php" hash="35314c66e1c37f7ebb2ce2a5257e7d88"/></dir></dir></dir><dir name="Order"><file name="Grid.php" hash="f3686d6d5eb5084fb6a6ff52d10e2700"/></dir><file name="Order.php" hash="8ad16b270a3d721125f598582d59065b"/><dir name="Product"><dir name="Edit"><file name="Form.php" hash="676122e90b68bfec48e7d8c32b330ea8"/><dir name="Tab"><file name="Form.php" hash="aac4c1be4ef687610012e6aad6d89fb4"/></dir><file name="Tabs.php" hash="db637798104873a38241fe683f511e27"/></dir><file name="Edit.php" hash="504cc82857251201ff83bd10544d5927"/><file name="Grid.php" hash="098916a3543f4c9fdd15d0d2beebae9f"/></dir><file name="Product.php" hash="e603838ed67849456c5230395d081e1b"/><dir name="System"><dir name="Config"><file name="Tokenvalidate.php" hash="24e6f31db4da9d1bbb1b8380b42d1f05"/></dir></dir></dir><file name="Carebyzinc.php" hash="e7cab3fcb5c8792677a7db8d39603d6a"/></dir><dir name="Helper"><file name="Data.php" hash="af8aedf07070a2687ff9846bd1e5ea3d"/></dir><dir name="Model"><file name="Carebyzinc.php" hash="55be6ffd0c9d5fb439fdfeaab36a863d"/><dir name="Checkout"><file name="Cart.php" hash="066cdb9d428f8e7841ede8496538294b"/></dir><dir name="Entity"><file name="Category.php" hash="cfca0b90e178b2f695236925d4318df1"/><file name="Subcategory.php" hash="3dc00a09a3caee211fed08ebeb4e9c5e"/></dir><dir name="Mysql4"><dir name="Order"><file name="Collection.php" hash="73eb61cc74cfdd568f1644c664a25ed6"/></dir><file name="Order.php" hash="fdc62f0551b1714f7c0e7fec8e87495c"/></dir><file name="Observer.php" hash="00a0f1b4ac0ad91956622ed19558d86d"/><file name="Order.php" hash="59129ae6c623e34c3ad78057b79d9f87"/><dir name="Sales"><file name="Quote.php" hash="65cb7a95b7c01e1ee259e9ab38e73ece"/></dir><dir name="System"><dir name="Config"><file name="Protocol.php" hash="7fa3b71a3ff8d7c50a9c7fd0dd02062f"/><file name="Source.php" hash="2e29cb2b89d849ca20bcfde1648c6dd9"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="CarebyzincController.php" hash="aae737218c7850dec382d4b3904476c0"/><file name="OrderController.php" hash="abb2466958fa6f7b9ed13b5675e06f5c"/><file name="ProductController.php" hash="4175dbf2b87dda0757080060d9916a89"/></dir><file name="CartController.php" hash="24758faa94cbd54c9646085142332483"/><file name="IndexController.php" hash="e75309459f126240209707f5e1f8fd5c"/></dir><dir name="etc"><file name="adminhtml.xml" hash="06cfc2ccc3fe727bee732ff3dd6df96f"/><file name="config.xml" hash="5793c069e5c1ab75fc6ff6c557b55b73"/><file name="system.xml" hash="341fcc4a5ca5bc1d8b54be339b21718e"/></dir><dir name="sql"><dir name="carebyzinc_setup"><file name="mysql4-install-0.1.0.php" hash="c342593327c1d0428217b315dcdced1c"/><file name="mysql4-upgrade-0.1.0-0.2.0.php" hash="108da13421767fab0083f7c4cc9b16e2"/><file name="mysql4-upgrade-0.2.0-1.0.0.php" hash="10ebb8695adeba50e281b39ad0cf20ed"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="761f18c5ecf1635e95c597e6ee137f45"/><file name="mysql4-upgrade-1.0.1-1.0.2.php" hash="fd29cdd9a47b882ecea7de944d8e4d38"/><file name="mysql4-upgrade-1.0.2-1.0.3.php" hash="ac78f6811e781b4a03233188918658d3"/><file name="mysql4-upgrade-1.0.3-1.0.4.php" hash="b661111a5ded4c7604932caa6467ecb7"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Zinc_Carebyzinc.xml" hash="4d2b3b715ff40beadbf897a373561e85"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="zinc_carebyzinc.xml" hash="755c6fa9b8ebea40cf085cb4781b735a"/></dir><dir name="template"><dir name="carebyzinc"><dir name="order"><dir name="creditmemo"><dir name="create"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="a4895ad08ec75605c3dc6678647762ca"/></dir></dir></dir><dir name="view"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="20c580806b7240e3d19cc0a7dce46142"/></dir></dir></dir></dir><dir name="invoice"><dir name="create"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="77e6e5fdb4be945178d09c1815ab14b2"/></dir></dir></dir><dir name="view"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="a984189e5dd627aa3497458aea7c9cb6"/></dir></dir></dir></dir><dir name="shipment"><dir name="create"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="a3f4b3b21862422e0675a3411df545a7"/></dir></dir></dir><dir name="view"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="e9f0d61dc484f8b3179608f941bbc827"/></dir></dir></dir></dir><dir name="view"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="ba480a97ff97df6fae56931a5d878e26"/></dir></dir></dir></dir><dir name="system"><file name="tokenvalidate.phtml" hash="c8f6847678e6327cc168d19bb1f889f9"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="zinc_carebyzinc.xml" hash="416ecb557e7ccb03fab996dcfc216d26"/></dir><dir name="template"><dir name="carebyzinc"><file name="carebyzinc.phtml" hash="4e0fc49993f641e794d466b8f5d728b3"/><dir name="checkout"><dir name="cart"><dir name="item"><file name="default.phtml" hash="c8efaf7fece8e1834d5eed19d7ff8aaa"/></dir><dir name="minicart"><file name="default.phtml" hash="059d0ac79a1c4ac4b668882e5d5e189a"/></dir></dir><file name="cart.phtml" hash="d3f071659786d33a98cb1aa844f36416"/><dir name="multishipping"><dir name="item"><file name="default.phtml" hash="302298bf393f3c0d94b26ea7ee39096d"/></dir></dir><dir name="onepage"><dir name="review"><file name="item.phtml" hash="d5448146086a1f01e9ce193575a481bf"/></dir></dir></dir><dir name="email"><dir name="order"><dir name="items"><dir name="creditmemo"><file name="default.phtml" hash="05f2240b619bccd7b126b8140174749b"/></dir><dir name="invoice"><file name="default.phtml" hash="f709eb917fd5de6a82ff0a04a4413459"/></dir><dir name="order"><file name="default.phtml" hash="bbb4a160b0ae393d2d2e7ef81705463c"/></dir><dir name="shipment"><file name="default.phtml" hash="806df424ce07c15195bfd5fc4b8da192"/></dir></dir></dir></dir><dir name="options"><file name="cart.phtml" hash="0c847ef443520ffdad30c10424a5ce37"/><file name="default.phtml" hash="f9807435fc04e76610d265a0e5da5f11"/></dir><dir name="sales"><dir name="order"><dir name="creditmemo"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="aa9efe3d2eac3422ea96c4a5e54c738d"/></dir></dir></dir><dir name="invoice"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="1ae13d107b76d113360afe8526ecc286"/></dir></dir></dir><dir name="items"><dir name="renderer"><file name="default.phtml" hash="ba81982f366ea2d222c2615a0e90c3e4"/></dir></dir><dir name="shipment"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="e8ac8a72cb4a4e9b5d5fc75b4d542225"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="carebyzinc"><file name="jquery.colorbox.js" hash="931988f42363a4824812885ffc27d99e"/><file name="product.js" hash="007f9365ae78449497daa03e83169fd3"/></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="carebyzinc"><dir name="css"><file name="carebyzinc.css" hash="61a00a3992f44bd396cc71dfaac0fa8d"/><file name="colorbox.css" hash="4b7379294ea68f88b0bba06cd803a646"/><dir name="images"><file name="border.png" hash="b593eef877678cd14706323d199e047d"/><file name="cancel.png" hash="7d54d20abee3ff4e694a98798f261d09"/><file name="care-preloader.gif" hash="eba7ca3ef216ece9ab9974f0cc524536"/><file name="controls.png" hash="05ad6ec2cbc17a7f3d1b1aac6dbe770d"/><file name="loading.gif" hash="f1d7268ba36b264f8b33b5b2bf0f108c"/><file name="loading_background.png" hash="7649e6a7c32b6d29ce63255a30b7405a"/><file name="overlay.png" hash="8918e1f6fbaae9e65880f3eff6fa3713"/></dir></dir></dir></dir></dir></dir></target></contents>
18
  <compatible/>
19
- <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
20
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>zinc</name>
4
+ <version>1.0.7</version>
5
  <stability>stable</stability>
6
+ <license>OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Zinc is an application to allow merchants cross sell warranties and product protections online.</summary>
10
+ <description>Zinc enables online merchants to seamlessly offer product protection insurance and warranty plans for their products. </description>
11
+ <notes>Fix Configurable product issues and fixed minor bugs</notes>
12
+ <authors><author><name>Sam Li</name><user>ZincPlatform</user><email>sam.li@zincplatform.com</email></author></authors>
13
+ <date>2017-04-19</date>
14
+ <time>04:21:06</time>
15
+ <contents><target name="magelocal"><dir name="Zinc"><dir name="Carebyzinc"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><file name="Grid.php" hash="dc6cb39059a6be0f4388e6157156932d"/><dir name="Renderer"><file name="Category.php" hash="61226784107fb456d937264d785c33c8"/><file name="Manufacturer.php" hash="1161494098478dc016bce23869806c05"/><file name="Model.php" hash="8c59d310ea275521c30a41c0269683c2"/><file name="Subcategory.php" hash="5b72ca48d2f4a50646fe799448f6ccd0"/></dir></dir></dir><dir name="Order"><file name="Grid.php" hash="f3686d6d5eb5084fb6a6ff52d10e2700"/></dir><file name="Order.php" hash="8ad16b270a3d721125f598582d59065b"/><dir name="Product"><dir name="Edit"><file name="Form.php" hash="676122e90b68bfec48e7d8c32b330ea8"/><dir name="Tab"><file name="Form.php" hash="14aed4e9c8d3fc736c9358c010cadf1a"/></dir><file name="Tabs.php" hash="db637798104873a38241fe683f511e27"/></dir><file name="Edit.php" hash="504cc82857251201ff83bd10544d5927"/><file name="Grid.php" hash="c471ae0ff3aa9ac5a2b891c87df221fb"/></dir><file name="Product.php" hash="e603838ed67849456c5230395d081e1b"/><dir name="System"><dir name="Config"><file name="Tokenvalidate.php" hash="24e6f31db4da9d1bbb1b8380b42d1f05"/></dir></dir></dir><file name="Carebyzinc.php" hash="e7cab3fcb5c8792677a7db8d39603d6a"/></dir><dir name="Helper"><file name="Data.php" hash="91ced6d138a68348415e034a5035de63"/></dir><dir name="Model"><file name="Carebyzinc.php" hash="bf7341c7afc41330a8e56a88bfce28fb"/><dir name="Checkout"><file name="Cart.php" hash="be75cc17a7593589f50d2b3424c2ba2f"/><file name="Multishipping.php" hash="0dda682d23bf5b96c8d11c3da3d9bfa4"/></dir><dir name="Entity"><file name="Category.php" hash="cfca0b90e178b2f695236925d4318df1"/><file name="Subcategory.php" hash="41ba25ee7a4d07a95c27f30ac0bf69dc"/></dir><dir name="Mysql4"><dir name="Order"><file name="Collection.php" hash="73eb61cc74cfdd568f1644c664a25ed6"/></dir><file name="Order.php" hash="fdc62f0551b1714f7c0e7fec8e87495c"/></dir><file name="Observer.php" hash="94070127ee6b2e773f9351a6038ab44a"/><file name="Order.php" hash="6c4fbce789985b6fcb4b1a94749b74f2"/><dir name="Sales"><file name="Quote.php" hash="65cb7a95b7c01e1ee259e9ab38e73ece"/></dir><dir name="System"><dir name="Config"><file name="Protocol.php" hash="7fa3b71a3ff8d7c50a9c7fd0dd02062f"/><file name="Source.php" hash="2e29cb2b89d849ca20bcfde1648c6dd9"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="CarebyzincController.php" hash="17c600837868272b8d052f2599e0e70f"/><file name="OrderController.php" hash="abb2466958fa6f7b9ed13b5675e06f5c"/><file name="ProductController.php" hash="bbb425fa6535637df84114baea24f085"/><dir name="Sales"><dir name="Order"><file name="CreditmemoController.php" hash="81f7bcad7606cb1a3fe808259cd47173"/></dir></dir></dir><file name="CartController.php" hash="b3f27702781c1e261c6730b2e5b90b00"/><file name="IndexController.php" hash="cdc4f06db9e95549a30f6475b7032aa9"/><dir name="Sales"><file name="OrderController.php" hash="0339596d5830e8c1de7f47b86331a47a"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="06cfc2ccc3fe727bee732ff3dd6df96f"/><file name="config.xml" hash="39b9912c98e9e2b179973b8e8252cc79"/><file name="system.xml" hash="2cb40531a4b96af83ee4c75f3b9f62cb"/></dir><dir name="sql"><dir name="carebyzinc_setup"><file name="mysql4-install-0.1.0.php" hash="c342593327c1d0428217b315dcdced1c"/><file name="mysql4-upgrade-0.1.0-0.2.0.php" hash="108da13421767fab0083f7c4cc9b16e2"/><file name="mysql4-upgrade-0.2.0-1.0.0.php" hash="10ebb8695adeba50e281b39ad0cf20ed"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="761f18c5ecf1635e95c597e6ee137f45"/><file name="mysql4-upgrade-1.0.1-1.0.2.php" hash="fd29cdd9a47b882ecea7de944d8e4d38"/><file name="mysql4-upgrade-1.0.2-1.0.3.php" hash="ac78f6811e781b4a03233188918658d3"/><file name="mysql4-upgrade-1.0.3-1.0.4.php" hash="b661111a5ded4c7604932caa6467ecb7"/><file name="mysql4-upgrade-1.0.4-1.0.5.php" hash="0a5c1d77cfa3660f8976c4dec907e338"/><file name="mysql4-upgrade-1.0.5-1.0.6.php" hash="21528eaf2e8d493488fdfe1073292073"/><file name="mysql4-upgrade-1.0.6-1.0.7.php" hash="7a657189520bd0ca1f646245c7158d12"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Zinc_Carebyzinc.xml" hash="4d2b3b715ff40beadbf897a373561e85"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="zinc_carebyzinc.xml" hash="17338a9719d71165dac38c10839d86ad"/></dir><dir name="template"><dir name="carebyzinc"><file name="carebyzinc_massaction.phtml" hash="5768f1b539cb3d60872e20ec40710266"/><dir name="order"><dir name="creditmemo"><dir name="create"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="81b8edfa17f0baec00a2d1fb5f9afe03"/></dir></dir></dir><dir name="view"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="be2417354e4035669c7722856ea7beea"/></dir></dir></dir></dir><dir name="invoice"><dir name="create"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="ec89a299e6cf7068a24580c7cbaa1c64"/></dir></dir></dir><dir name="view"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="068e7689e80cc4f3ddef5e34731f1407"/></dir></dir></dir></dir><dir name="shipment"><dir name="create"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="1f6dc82e72dff2a2f89df63eb04adfb3"/></dir></dir></dir><dir name="view"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="57d8d0365b5a8521094dd972f0afd91f"/></dir></dir></dir></dir><dir name="view"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="2ee24c3069f693e28e6b82710b4d5f79"/></dir></dir></dir></dir><dir name="system"><file name="tokenvalidate.phtml" hash="c8f6847678e6327cc168d19bb1f889f9"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="zinc_carebyzinc.xml" hash="3cae8cea33d4a18466430e9aa3502f1f"/></dir><dir name="template"><dir name="carebyzinc"><file name="carebyzinc.phtml" hash="3f7d99825019f79775e197ecfad752c4"/><dir name="checkout"><dir name="cart"><dir name="item"><file name="default.phtml" hash="a96879c6260e377345577d04caf3de9a"/></dir><dir name="minicart"><file name="default.phtml" hash="02d2455538277a570a0e1066002bb6f9"/></dir></dir><file name="cart.phtml" hash="6f93a00d50bc31b81386229776bd148a"/><dir name="multishipping"><dir name="item"><file name="default.phtml" hash="60d4b1f26ff75401ce296ce2f8d6182f"/></dir></dir><dir name="onepage"><dir name="review"><file name="info.phtml" hash="af3945f40e8846ed50f7ea100cb5988d"/><file name="item.phtml" hash="3c8272ed8901359d1906850b3dbb03b6"/></dir></dir></dir><dir name="email"><dir name="order"><dir name="items"><dir name="creditmemo"><file name="default.phtml" hash="8a2ac27dd9b6c8dc8b4bae6a7e5ddda8"/></dir><dir name="invoice"><file name="default.phtml" hash="e12be1097a1f18c0db7882c11f7a6641"/></dir><dir name="order"><file name="default.phtml" hash="793605d82ba878ccbdf42dd12f28c03d"/></dir><dir name="shipment"><file name="default.phtml" hash="f6402f09d846768acb7ce2deee933f2e"/></dir></dir></dir></dir><dir name="options"><file name="cart.phtml" hash="18e0240d1cf783bf2ef2aed6d185da27"/><file name="default.phtml" hash="11e1ef3b8149de578498321f22d94b4d"/></dir><dir name="sales"><dir name="order"><dir name="creditmemo"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="9453ba266319722eb98d8623e7d2b430"/></dir></dir></dir><dir name="invoice"><dir name="items"><dir name="renderer"><file name="default.phtml" hash="bc9aa0720ab66aac609def09cb1a9b34"/></dir></dir></dir><dir name="items"><dir name="renderer"><file name="default.phtml" hash="40e189989f63b6bb40fdc284c75a66ee"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="carebyzinc"><file name="jquery.colorbox.js" hash="931988f42363a4824812885ffc27d99e"/><file name="jquery.min.js" hash="219073097031d9c1a95a1291d66f3a10"/><file name="noConflict.js" hash="3179f2255b046d5f2e9a71e365287bef"/><file name="product.js" hash="007f9365ae78449497daa03e83169fd3"/></dir></dir></target><target name="magemedia"><dir name="catalog"><dir name="product"><dir name="zinc"><file name="warranty.png" hash="e7dc52b5e26fc42bb62e5ad21b3004ba"/></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="carebyzinc"><dir name="css"><file name="carebyzinc.css" hash="3d4ef0a233b948c06df939a5e6626346"/><file name="colorbox.css" hash="4b7379294ea68f88b0bba06cd803a646"/><dir name="images"><file name="border.png" hash="b593eef877678cd14706323d199e047d"/><file name="cancel.png" hash="7d54d20abee3ff4e694a98798f261d09"/><file name="care-preloader.gif" hash="eba7ca3ef216ece9ab9974f0cc524536"/><file name="controls.png" hash="05ad6ec2cbc17a7f3d1b1aac6dbe770d"/><file name="loading.gif" hash="f1d7268ba36b264f8b33b5b2bf0f108c"/><file name="loading_background.png" hash="7649e6a7c32b6d29ce63255a30b7405a"/><file name="overlay.png" hash="8918e1f6fbaae9e65880f3eff6fa3713"/></dir></dir></dir></dir></dir><dir name="rwd"><dir name="default"><dir name="carebyzinc"><dir name="css"><file name="carebyzinc.css" hash="3d4ef0a233b948c06df939a5e6626346"/><file name="colorbox.css" hash="4b7379294ea68f88b0bba06cd803a646"/><dir name="images"><file name="border.png" hash="b593eef877678cd14706323d199e047d"/><file name="cancel.png" hash="7d54d20abee3ff4e694a98798f261d09"/><file name="care-preloader.gif" hash="eba7ca3ef216ece9ab9974f0cc524536"/><file name="controls.png" hash="05ad6ec2cbc17a7f3d1b1aac6dbe770d"/><file name="loading.gif" hash="f1d7268ba36b264f8b33b5b2bf0f108c"/><file name="loading_background.png" hash="7649e6a7c32b6d29ce63255a30b7405a"/><file name="overlay.png" hash="8918e1f6fbaae9e65880f3eff6fa3713"/></dir></dir></dir></dir></dir></dir></target></contents>
 
 
16
  <compatible/>
17
+ <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>
skin/frontend/base/default/carebyzinc/css/carebyzinc.css CHANGED
@@ -6,9 +6,13 @@
6
  .product-box { margin-bottom: 20px; }
7
  .product-container { border: 1px solid #efefef; border-radius: 2px;display: none; }
8
  .checkout-cart-index .product-container { border-width: 0; }
 
9
  .checkout-cart-index .product-box { border: 1px solid #efefef; }
10
- .product-title { font-size: 16px;text-transform: capitalize; /*border-bottom: 1px solid #efefef;*/ padding: 10px 5px 0; margin-bottom: 10px;display: inline-block;}
11
- .product-wrap { border: 1px solid #ccc;padding: 10px;border-radius: 2px; display: none; }
 
 
 
12
  .product-list { list-style-type: none;padding-left: 0; margin: 0;}
13
  .bx-l,.bx-r { float: left; position: relative; }
14
  .bx-l { width: 25px; }
@@ -18,7 +22,7 @@
18
  .product-list li:last-child { border-bottom: 0; }
19
  .product-list li:hover{ background: #f7f7f7; }
20
  .product-list li:after { clear: both; content: '.'; display: block; visibility: hidden; height: 0; }
21
- .product-list li .p-name { font-size: 13px;text-transform: capitalize;margin: 0; display: inline-block;}
22
  .product-list li .p-price,.care-price { font-size: 15px;color: #007ead;font-weight: 600; display: inline-block;/* margin: 2px 0; margin-left: 15px;*/}
23
  .care-price { /*color: #636363;*/ color:#007ead; }
24
  .product-list li .p-provider,.care-prov { text-transform: lowercase; font-size: 11px;font-weight: normal; font-style: italic;}
@@ -32,15 +36,16 @@
32
  height: 15px;
33
  top: 3px;
34
  left: 0;
35
- border-radius: 15px;
 
36
  /*-webkit-box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,.4);
37
  -moz-box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,.4);
38
  box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,.4);*/
39
- background: -webkit-linear-gradient(top, #0291c6 0%, #006d95 100%);
40
  background: -moz-linear-gradient(top, #0291c6 0%, #006d95 100%);
41
  background: -o-linear-gradient(top, #0291c6 0%, #006d95 100%);
42
  background: -ms-linear-gradient(top, #0291c6 0%, #006d95 100%);
43
- background: linear-gradient(top, #0291c6 0%, #006d95 100%);
44
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#222', endColorstr='#45484d',GradientType=0 );
45
  }
46
  .squared label:after {
@@ -52,9 +57,9 @@
52
  width: 7px;
53
  height: 4px;
54
  background: transparent;
55
- top: 5px;
56
- left: 4px;
57
- border: 2px solid #fcfff4;
58
  border-top: none;
59
  border-right: none;
60
  -webkit-transform: rotate(-45deg);
@@ -73,12 +78,15 @@
73
  filter: alpha(opacity=100);
74
  opacity: 1;
75
  }
76
- .btn-zinc { background:#037daa;border:none;outline:none;color:#fff;border-radius:2px;padding:5px 10px;font-size:14px;margin-top: 0px;cursor: pointer; position: relative;}
 
 
77
  .btn-zinc:hover,.btn-zinc:active { background: #017099; }
78
  .btn-zinc.selected { background: #868686; }
79
 
80
 
81
- .product-container .button { margin: auto;color: #fff !important; margin-bottom: 5px;background: #3399cc !important; margin-top: 5px; border-radius: 2px; padding: 7px 20px !important; font-size: 15px;margin-left: 30px;}
 
82
  .remove_warranty { background: url(images/cancel.png) no-repeat; display: inline-block; width: 13px; height: 13px; background-size: 100%; }
83
  .product-cart-careby .warranty_desc { font-weight: bolder;display: inline-block; /*color: #3399cc;*/}
84
 
6
  .product-box { margin-bottom: 20px; }
7
  .product-container { border: 1px solid #efefef; border-radius: 2px;display: none; }
8
  .checkout-cart-index .product-container { border-width: 0; }
9
+ .checkout-cart-index .product-container .updatezip { cursor: pointer; }
10
  .checkout-cart-index .product-box { border: 1px solid #efefef; }
11
+ .product-title { font-size: 16px;text-transform: capitalize; padding: 10px 5px 0 0; margin-bottom: 10px;display: inline-block;}
12
+ .carebyzincCnt .product-title { font-size: 13px }
13
+ .carebyzincCnt.product-container .product-title + input { font-size: 13px;height: 25px; }
14
+ .product-wrap { border: 1px solid #ccc;padding: 10px;border-radius: 2px; }
15
+ .carebyzincCnt{display: none;}
16
  .product-list { list-style-type: none;padding-left: 0; margin: 0;}
17
  .bx-l,.bx-r { float: left; position: relative; }
18
  .bx-l { width: 25px; }
22
  .product-list li:last-child { border-bottom: 0; }
23
  .product-list li:hover{ background: #f7f7f7; }
24
  .product-list li:after { clear: both; content: '.'; display: block; visibility: hidden; height: 0; }
25
+ .product-list li .p-name { font-size: 11px;text-transform: capitalize;margin: 0; display: inline-block;}
26
  .product-list li .p-price,.care-price { font-size: 15px;color: #007ead;font-weight: 600; display: inline-block;/* margin: 2px 0; margin-left: 15px;*/}
27
  .care-price { /*color: #636363;*/ color:#007ead; }
28
  .product-list li .p-provider,.care-prov { text-transform: lowercase; font-size: 11px;font-weight: normal; font-style: italic;}
36
  height: 15px;
37
  top: 3px;
38
  left: 0;
39
+ border-radius: 2px;
40
+ border: 2px solid #0291c6;
41
  /*-webkit-box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,.4);
42
  -moz-box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,.4);
43
  box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,.4);*/
44
+ /*background: -webkit-linear-gradient(top, #0291c6 0%, #006d95 100%);
45
  background: -moz-linear-gradient(top, #0291c6 0%, #006d95 100%);
46
  background: -o-linear-gradient(top, #0291c6 0%, #006d95 100%);
47
  background: -ms-linear-gradient(top, #0291c6 0%, #006d95 100%);
48
+ background: linear-gradient(top, #0291c6 0%, #006d95 100%);*/
49
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#222', endColorstr='#45484d',GradientType=0 );
50
  }
51
  .squared label:after {
57
  width: 7px;
58
  height: 4px;
59
  background: transparent;
60
+ top: 3px;
61
+ left: 2.5px;
62
+ border: 2px solid #006d95;
63
  border-top: none;
64
  border-right: none;
65
  -webkit-transform: rotate(-45deg);
78
  filter: alpha(opacity=100);
79
  opacity: 1;
80
  }
81
+ .btn-zinc { background:#037daa;border:none;outline:none;color:#fff;border-radius:2px;padding:2px 10px;font-size:13px;margin-top: 0px;cursor: pointer; position: relative;height: 30px;line-height: 18px;}
82
+ .carebyzincCnt.product-container .btn-zinc { height: 25px; }
83
+ .add-to-cart-wrapper .product-box #zipcode { margin-top: 5px; }
84
  .btn-zinc:hover,.btn-zinc:active { background: #017099; }
85
  .btn-zinc.selected { background: #868686; }
86
 
87
 
88
+ .product-container .button { margin: auto;color: #fff !important; margin-bottom: 5px;background: #3399cc !important; margin-top: 5px; border-radius: 2px; padding: 1px 5px !important; font-size: 12px;margin-left: 30px;line-height: 18px;}
89
+ .product-container .button + span,.product-container .button + span.updatezip { font-size: 13px; }
90
  .remove_warranty { background: url(images/cancel.png) no-repeat; display: inline-block; width: 13px; height: 13px; background-size: 100%; }
91
  .product-cart-careby .warranty_desc { font-weight: bolder;display: inline-block; /*color: #3399cc;*/}
92
 
skin/frontend/rwd/default/carebyzinc/css/carebyzinc.css ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Zinc_Carebyzinc v1.0.0 (http://www.zincplatform.com)
3
+ * Copyright 2016-2017
4
+ *
5
+ */
6
+ .product-box { margin-bottom: 20px; }
7
+ .product-container { border: 1px solid #efefef; border-radius: 2px;display: none; }
8
+ .checkout-cart-index .product-container { border-width: 0; }
9
+ .checkout-cart-index .product-container .updatezip { cursor: pointer; }
10
+ .checkout-cart-index .product-box { border: 1px solid #efefef; }
11
+ .product-title { font-size: 16px;text-transform: capitalize; padding: 10px 5px 0 0; margin-bottom: 10px;display: inline-block;}
12
+ .carebyzincCnt .product-title { font-size: 13px }
13
+ .carebyzincCnt.product-container .product-title + input { font-size: 13px;height: 25px; }
14
+ .product-wrap { border: 1px solid #ccc;padding: 10px;border-radius: 2px; }
15
+ .carebyzincCnt{display: none;}
16
+ .product-list { list-style-type: none;padding-left: 0; margin: 0;}
17
+ .bx-l,.bx-r { float: left; position: relative; }
18
+ .bx-l { width: 25px; }
19
+ .bx-r { width: -webkit-calc(100% - 25px); width: -moz-calc(100% - 25px); width: calc(100% - 25px); }
20
+ .product-list .input input[type=radio] ,.squared input[type=radio] { visibility: hidden; }
21
+ .product-list li { color: #535353;border-bottom: 1px solid #f7f7f7;padding: 5px 5px;transition: all .2s; }
22
+ .product-list li:last-child { border-bottom: 0; }
23
+ .product-list li:hover{ background: #f7f7f7; }
24
+ .product-list li:after { clear: both; content: '.'; display: block; visibility: hidden; height: 0; }
25
+ .product-list li .p-name { font-size: 11px;text-transform: capitalize;margin: 0; display: inline-block;}
26
+ .product-list li .p-price,.care-price { font-size: 15px;color: #007ead;font-weight: 600; display: inline-block;/* margin: 2px 0; margin-left: 15px;*/}
27
+ .care-price { /*color: #636363;*/ color:#007ead; }
28
+ .product-list li .p-provider,.care-prov { text-transform: lowercase; font-size: 11px;font-weight: normal; font-style: italic;}
29
+ .product-list li .p-provider span ,.care-prov span { text-transform: uppercase;position: relative; font-weight: 600; }
30
+ .product-list li .p-provider span:after { content: ":";position: relative; margin: 0 5px; font-weight: bold;}
31
+ .squared { width: 20px; margin-right: 10px; position: relative; }
32
+ .squared label {
33
+ cursor: pointer;
34
+ position: absolute;
35
+ width: 15px;
36
+ height: 15px;
37
+ top: 3px;
38
+ left: 0;
39
+ border-radius: 2px;
40
+ border: 2px solid #0291c6;
41
+ /*-webkit-box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,.4);
42
+ -moz-box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,.4);
43
+ box-shadow: inset 0px 1px 1px rgba(0,0,0,0.5), 0px 1px 0px rgba(255,255,255,.4);*/
44
+ /*background: -webkit-linear-gradient(top, #0291c6 0%, #006d95 100%);
45
+ background: -moz-linear-gradient(top, #0291c6 0%, #006d95 100%);
46
+ background: -o-linear-gradient(top, #0291c6 0%, #006d95 100%);
47
+ background: -ms-linear-gradient(top, #0291c6 0%, #006d95 100%);
48
+ background: linear-gradient(top, #0291c6 0%, #006d95 100%);*/
49
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#222', endColorstr='#45484d',GradientType=0 );
50
+ }
51
+ .squared label:after {
52
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
53
+ filter: alpha(opacity=0);
54
+ opacity: 0;
55
+ content: '';
56
+ position: absolute;
57
+ width: 7px;
58
+ height: 4px;
59
+ background: transparent;
60
+ top: 3px;
61
+ left: 2.5px;
62
+ border: 2px solid #006d95;
63
+ border-top: none;
64
+ border-right: none;
65
+ -webkit-transform: rotate(-45deg);
66
+ -moz-transform: rotate(-45deg);
67
+ -o-transform: rotate(-45deg);
68
+ -ms-transform: rotate(-45deg);
69
+ transform: rotate(-45deg);
70
+ }
71
+ .squared label:hover::after {
72
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
73
+ filter: alpha(opacity=30);
74
+ opacity: 0.3;
75
+ }
76
+ .squared input[type=radio]:checked + label:after {
77
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
78
+ filter: alpha(opacity=100);
79
+ opacity: 1;
80
+ }
81
+ .btn-zinc { background:#037daa;border:none;outline:none;color:#fff;border-radius:2px;padding:2px 10px;font-size:13px;margin-top: 0px;cursor: pointer; position: relative;height: 30px;line-height: 18px;}
82
+ .carebyzincCnt.product-container .btn-zinc { height: 25px; }
83
+ .add-to-cart-wrapper .product-box #zipcode { margin-top: 5px; }
84
+ .btn-zinc:hover,.btn-zinc:active { background: #017099; }
85
+ .btn-zinc.selected { background: #868686; }
86
+
87
+
88
+ .product-container .button { margin: auto;color: #fff !important; margin-bottom: 5px;background: #3399cc !important; margin-top: 5px; border-radius: 2px; padding: 1px 5px !important; font-size: 12px;margin-left: 30px;line-height: 18px;}
89
+ .product-container .button + span,.product-container .button + span.updatezip { font-size: 13px; }
90
+ .remove_warranty { background: url(images/cancel.png) no-repeat; display: inline-block; width: 13px; height: 13px; background-size: 100%; }
91
+ .product-cart-careby .warranty_desc { font-weight: bolder;display: inline-block; /*color: #3399cc;*/}
92
+
93
+ .care-loader { background: rgba(255, 255, 255, 0.8) url(images/care-preloader.gif) no-repeat center center; height: 100%; width: 100%; display:none; background-size: 20px; position: absolute; top: 0; left: 0; }
94
+ #care-loader.show { display: inline-block; }
95
+ /*#care-loader.hide { display: inline-block; }*/
96
+ /*.care-loader { display: none; }*/
97
+ .product-cart-careby { padding-left: 15px; }
98
+
99
+
100
+ @media only screen and (max-width: 599px) {
101
+ .product-list li .p-price .price, .care-price .price { font-weight: 600 !important; }
102
+ .product-list li .p-price, .care-price { display: block;margin-left: 0; }
103
+ }
104
+ .desc_popup{
105
+ margin: 12px 10px;
106
+ padding-top: 7px;
107
+ display:none;
108
+ }
109
+ .product-list li .p-price,.care-price { margin: 0 7px 0 2px;}
skin/frontend/rwd/default/carebyzinc/css/colorbox.css ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Colorbox Core Style:
3
+ The following CSS is consistent between example themes and should not be altered.
4
+ */
5
+ #colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden; -webkit-transform: translate3d(0,0,0);}
6
+ #cboxWrapper {max-width:none;}
7
+ #cboxOverlay{position:fixed; width:100%; height:100%;}
8
+ #cboxMiddleLeft, #cboxBottomLeft{clear:left;}
9
+ #cboxContent{position:relative;}
10
+ #cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
11
+ #cboxTitle{margin:0;}
12
+ #cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
13
+ #cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
14
+ .cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
15
+ .cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;}
16
+ #colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
17
+
18
+ /*
19
+ User Style:
20
+ Change the following styles to modify the appearance of Colorbox. They are
21
+ ordered & tabbed in a way that represents the nesting of the generated HTML.
22
+ */
23
+ #cboxOverlay{background:url(images/overlay.png) repeat 0 0; opacity: 0.9; filter: alpha(opacity = 90);}
24
+ #colorbox{outline:0;}
25
+ #cboxTopLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px 0;}
26
+ #cboxTopRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px 0;}
27
+ #cboxBottomLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px -29px;}
28
+ #cboxBottomRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px -29px;}
29
+ #cboxMiddleLeft{width:21px; background:url(images/controls.png) left top repeat-y;}
30
+ #cboxMiddleRight{width:21px; background:url(images/controls.png) right top repeat-y;}
31
+ #cboxTopCenter{height:21px; background:url(images/border.png) 0 0 repeat-x;}
32
+ #cboxBottomCenter{height:21px; background:url(images/border.png) 0 -29px repeat-x;}
33
+ #cboxContent{background:#fff; overflow:hidden;}
34
+ .cboxIframe{background:#fff;}
35
+ #cboxError{padding:50px; border:1px solid #ccc;}
36
+ #cboxLoadedContent{margin-bottom:28px;}
37
+ #cboxTitle{position:absolute; bottom:4px; left:0; text-align:center; width:100%; color:#949494;}
38
+ #cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;}
39
+ #cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;}
40
+ #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
41
+
42
+ /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
43
+ #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
44
+
45
+ /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
46
+ #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
47
+
48
+ #cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;}
49
+ #cboxPrevious{position:absolute; bottom:0; left:0; background:url(images/controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;}
50
+ #cboxPrevious:hover{background-position:-75px -25px;}
51
+ #cboxNext{position:absolute; bottom:0; left:27px; background:url(images/controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;}
52
+ #cboxNext:hover{background-position:-50px -25px;}
53
+ #cboxClose{position:absolute; top:0; right:0; background:url(images/controls.png) no-repeat -25px 0; width:25px; height:25px; text-indent:-9999px;}
54
+ #cboxClose:hover{background-position:-25px -25px;}
55
+
56
+ /*
57
+ The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
58
+ when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9.
59
+ See: http://jacklmoore.com/notes/ie-transparency-problems/
60
+ */
61
+ .cboxIE #cboxTopLeft,
62
+ .cboxIE #cboxTopCenter,
63
+ .cboxIE #cboxTopRight,
64
+ .cboxIE #cboxBottomLeft,
65
+ .cboxIE #cboxBottomCenter,
66
+ .cboxIE #cboxBottomRight,
67
+ .cboxIE #cboxMiddleLeft,
68
+ .cboxIE #cboxMiddleRight {
69
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
70
+ }
71
+
skin/frontend/rwd/default/carebyzinc/css/images/border.png ADDED
Binary file
skin/frontend/rwd/default/carebyzinc/css/images/cancel.png ADDED
Binary file
skin/frontend/rwd/default/carebyzinc/css/images/care-preloader.gif ADDED
Binary file
skin/frontend/rwd/default/carebyzinc/css/images/controls.png ADDED
Binary file
skin/frontend/rwd/default/carebyzinc/css/images/loading.gif ADDED
Binary file
skin/frontend/rwd/default/carebyzinc/css/images/loading_background.png ADDED
Binary file
skin/frontend/rwd/default/carebyzinc/css/images/overlay.png ADDED
Binary file