magebuzz_category_sidebar_navigation - Version 0.1.1

Version Notes

Category Sidebar Navigation

Download this release

Release Info

Developer Magebuzz
Extension magebuzz_category_sidebar_navigation
Version 0.1.1
Comparing to
See all releases


Code changes from version 0.1.0 to 0.1.1

Files changed (120) hide show
  1. app/code/community/Magebuzz/Catsidebarnav/Block/Catsidebarnav.php +10 -13
  2. app/code/community/Magebuzz/Catsidebarnav/Block/Sidebar.php +34 -12
  3. app/code/community/Magebuzz/Catsidebarnav/etc/config.xml +33 -36
  4. app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Edit.php +0 -61
  5. app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Edit/Grid.php +0 -322
  6. app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Edit/Renderer/Visibility.php +0 -22
  7. app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Featuredproducts.php +0 -12
  8. app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Featuredproducts/Edit.php +0 -45
  9. app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Featuredproducts/Edit/Form.php +0 -19
  10. app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Featuredproducts/Edit/Tab/Form.php +0 -58
  11. app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Featuredproducts/Edit/Tabs.php +0 -24
  12. app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Featuredproducts/Grid.php +0 -116
  13. app/code/community/Magebuzz/Featuredproducts/Block/Featuredproducts.php +0 -17
  14. app/code/community/Magebuzz/Featuredproducts/Block/Leftsidebar.php +0 -50
  15. app/code/community/Magebuzz/Featuredproducts/Block/Listing.php +0 -64
  16. app/code/community/Magebuzz/Featuredproducts/Block/Product/List.php +0 -81
  17. app/code/community/Magebuzz/Featuredproducts/Block/Rightsidebar.php +0 -51
  18. app/code/community/Magebuzz/Featuredproducts/Helper/Data.php +0 -20
  19. app/code/community/Magebuzz/Featuredproducts/Model/Featuredproducts.php +0 -10
  20. app/code/community/Magebuzz/Featuredproducts/Model/Mysql4/Featuredproducts.php +0 -10
  21. app/code/community/Magebuzz/Featuredproducts/Model/Mysql4/Featuredproducts/Collection.php +0 -10
  22. app/code/community/Magebuzz/Featuredproducts/Model/Status.php +0 -15
  23. app/code/community/Magebuzz/Featuredproducts/Model/System/Config/Source/Leftright.php +0 -12
  24. app/code/community/Magebuzz/Featuredproducts/Model/System/Config/Source/Sort.php +0 -14
  25. app/code/community/Magebuzz/Featuredproducts/controllers/Adminhtml/FeaturedproductsController.php +0 -225
  26. app/code/community/Magebuzz/Featuredproducts/controllers/IndexController.php +0 -56
  27. app/code/community/Magebuzz/Featuredproducts/etc/adminhtml.xml +0 -39
  28. app/code/community/Magebuzz/Featuredproducts/etc/config.xml +0 -118
  29. app/code/community/Magebuzz/Featuredproducts/etc/system.xml +0 -135
  30. app/code/community/Magebuzz/Featuredproducts/sql/featuredproducts_setup/mysql4-install-0.1.0.php +0 -34
  31. app/code/community/Magebuzz/Info/Block/System/Config/Extensions.php +75 -0
  32. app/code/community/Magebuzz/Info/Block/System/Config/General.php +21 -0
  33. app/code/community/Magebuzz/Info/Helper/Data.php +4 -0
  34. app/code/community/Magebuzz/Info/Model/Feed.php +45 -0
  35. app/code/community/Magebuzz/{Productslider → Info}/etc/adminhtml.xml +4 -5
  36. app/code/community/Magebuzz/Info/etc/config.xml +85 -0
  37. app/code/community/Magebuzz/Info/etc/system.xml +61 -0
  38. app/code/community/Magebuzz/Productslider/Block/Adminhtml/Productslider.php +0 -12
  39. app/code/community/Magebuzz/Productslider/Block/Adminhtml/Productslider/Edit.php +0 -45
  40. app/code/community/Magebuzz/Productslider/Block/Adminhtml/Productslider/Edit/Form.php +0 -19
  41. app/code/community/Magebuzz/Productslider/Block/Adminhtml/Productslider/Edit/Tab/Main.php +0 -62
  42. app/code/community/Magebuzz/Productslider/Block/Adminhtml/Productslider/Edit/Tabs.php +0 -23
  43. app/code/community/Magebuzz/Productslider/Block/Adminhtml/Productslider/Grid.php +0 -121
  44. app/code/community/Magebuzz/Productslider/Block/Catalog/Product/List/Bestseller.php +0 -46
  45. app/code/community/Magebuzz/Productslider/Block/Catalog/Product/List/Mostviewed.php +0 -47
  46. app/code/community/Magebuzz/Productslider/Block/Catalog/Product/List/Random.php +0 -46
  47. app/code/community/Magebuzz/Productslider/Block/Catalog/Product/List/RecentlyAdd.php +0 -68
  48. app/code/community/Magebuzz/Productslider/Block/Position.php +0 -28
  49. app/code/community/Magebuzz/Productslider/Block/Productslider.php +0 -208
  50. app/code/community/Magebuzz/Productslider/Helper/Data.php +0 -6
  51. app/code/community/Magebuzz/Productslider/Model/Mysql4/Productslider.php +0 -10
  52. app/code/community/Magebuzz/Productslider/Model/Mysql4/Productslider/Collection.php +0 -10
  53. app/code/community/Magebuzz/Productslider/Model/Productslider.php +0 -10
  54. app/code/community/Magebuzz/Productslider/Model/Session.php +0 -10
  55. app/code/community/Magebuzz/Productslider/Model/Status.php +0 -15
  56. app/code/community/Magebuzz/Productslider/Model/System/Config/Position.php +0 -13
  57. app/code/community/Magebuzz/Productslider/Model/System/Config/Styles.php +0 -13
  58. app/code/community/Magebuzz/Productslider/Model/System/Config/Type.php +0 -15
  59. app/code/community/Magebuzz/Productslider/Model/Wysiwyg/Config.php +0 -34
  60. app/code/community/Magebuzz/Productslider/controllers/BestsellerController.php +0 -9
  61. app/code/community/Magebuzz/Productslider/controllers/IndexController.php +0 -9
  62. app/code/community/Magebuzz/Productslider/controllers/MostviewedController.php +0 -9
  63. app/code/community/Magebuzz/Productslider/controllers/RandomController.php +0 -9
  64. app/code/community/Magebuzz/Productslider/controllers/RecentlyAddController.php +0 -9
  65. app/code/community/Magebuzz/Productslider/etc/config.xml +0 -148
  66. app/code/community/Magebuzz/Productslider/etc/system.xml +0 -113
  67. app/code/community/Magebuzz/Productslider/sql/productslider_setup/mysql4-install-0.1.0.php +0 -9
  68. app/code/community/Magebuzz/Testimonial/Block/Adminhtml/Testimonial.php +0 -14
  69. app/code/community/Magebuzz/Testimonial/Block/Adminhtml/Testimonial/Edit.php +0 -45
  70. app/code/community/Magebuzz/Testimonial/Block/Adminhtml/Testimonial/Edit/Form.php +0 -19
  71. app/code/community/Magebuzz/Testimonial/Block/Adminhtml/Testimonial/Edit/Tab/Form.php +0 -114
  72. app/code/community/Magebuzz/Testimonial/Block/Adminhtml/Testimonial/Edit/Tabs.php +0 -24
  73. app/code/community/Magebuzz/Testimonial/Block/Adminhtml/Testimonial/Grid.php +0 -153
  74. app/code/community/Magebuzz/Testimonial/Block/Adminhtml/Testimonial/Renderer/Image.php +0 -19
  75. app/code/community/Magebuzz/Testimonial/Block/Captcha.php +0 -6
  76. app/code/community/Magebuzz/Testimonial/Block/Form.php +0 -27
  77. app/code/community/Magebuzz/Testimonial/Block/Form/Login.php +0 -5
  78. app/code/community/Magebuzz/Testimonial/Block/Sidebar.php +0 -28
  79. app/code/community/Magebuzz/Testimonial/Block/Testimonial.php +0 -48
  80. app/code/community/Magebuzz/Testimonial/Helper/Data.php +0 -11
  81. app/code/community/Magebuzz/Testimonial/Model/Mysql4/Testimonial.php +0 -9
  82. app/code/community/Magebuzz/Testimonial/Model/Mysql4/Testimonial/Collection.php +0 -10
  83. app/code/community/Magebuzz/Testimonial/Model/Session.php +0 -8
  84. app/code/community/Magebuzz/Testimonial/Model/Status.php +0 -17
  85. app/code/community/Magebuzz/Testimonial/Model/Testimonial.php +0 -32
  86. app/code/community/Magebuzz/Testimonial/controllers/Adminhtml/TestimonialController.php +0 -267
  87. app/code/community/Magebuzz/Testimonial/controllers/FormController.php +0 -172
  88. app/code/community/Magebuzz/Testimonial/controllers/IndexController.php +0 -34
  89. app/code/community/Magebuzz/Testimonial/etc/adminhtml.xml +0 -51
  90. app/code/community/Magebuzz/Testimonial/etc/config.xml +0 -140
  91. app/code/community/Magebuzz/Testimonial/etc/system.xml +0 -187
  92. app/code/community/Magebuzz/Testimonial/sql/testimonial_setup/mysql4-install-0.1.0.php +0 -28
  93. app/design/adminhtml/default/default/layout/catsidebarnav.xml +0 -12
  94. app/design/frontend/{default → base}/default/layout/catsidebarnav.xml +0 -0
  95. app/design/frontend/base/default/template/catsidebarnav/catsidebarnav.phtml +16 -0
  96. app/design/frontend/default/default/template/catsidebarnav/catsidebarnav.phtml +0 -85
  97. app/etc/modules/Magebuzz_Info.xml +9 -0
  98. js/magebuzz/catsidebarnav/jquery.min.js +4 -0
  99. js/magebuzz/catsidebarnav/jquery.noconflict.js +1 -0
  100. package.xml +8 -9
  101. skin/adminhtml/default/default/images/magebuzz/facebook.png +0 -0
  102. skin/adminhtml/default/default/images/magebuzz/ok.gif +0 -0
  103. skin/adminhtml/default/default/images/magebuzz/twitter.png +0 -0
  104. skin/adminhtml/default/default/images/magebuzz/update.gif +0 -0
  105. skin/frontend/base/default/css/magebuzz/catsidebarnav/click.css +20 -0
  106. skin/frontend/base/default/css/magebuzz/catsidebarnav/fly-out.css +121 -0
  107. skin/frontend/{default → base}/default/css/magebuzz/catsidebarnav/images/arrow.png +0 -0
  108. skin/frontend/{default → base}/default/css/magebuzz/catsidebarnav/images/arrow_active.png +0 -0
  109. skin/frontend/{default → base}/default/css/magebuzz/catsidebarnav/images/bg_title.gif +0 -0
  110. skin/frontend/{default → base}/default/css/magebuzz/catsidebarnav/images/sub_icon.gif +0 -0
  111. skin/frontend/{default → base}/default/css/magebuzz/catsidebarnav/images/sub_icon_2.gif +0 -0
  112. skin/frontend/base/default/css/magebuzz/catsidebarnav/static.css +16 -0
  113. skin/frontend/base/default/js/magebuzz/catsidebarnav/click2click.js +24 -0
  114. skin/frontend/base/default/js/magebuzz/catsidebarnav/fly-out/fly-out.js +3 -0
  115. skin/frontend/{default/default/js/magebuzz/catsidebarnav → base/default/js/magebuzz/catsidebarnav/fly-out}/hoverIntent.js +0 -0
  116. skin/frontend/{default/default/js/magebuzz/catsidebarnav → base/default/js/magebuzz/catsidebarnav/fly-out}/superfish.js +0 -0
  117. skin/frontend/default/default/css/magebuzz/catsidebarnav/click.css +0 -22
  118. skin/frontend/default/default/css/magebuzz/catsidebarnav/fly-out.css +0 -124
  119. skin/frontend/default/default/css/magebuzz/catsidebarnav/static.css +0 -18
  120. skin/frontend/default/default/js/magebuzz/catsidebarnav/jquery-1.2.6.min.js +0 -32
app/code/community/Magebuzz/Catsidebarnav/Block/Catsidebarnav.php CHANGED
@@ -1,26 +1,23 @@
1
  <?php
2
  class Magebuzz_Catsidebarnav_Block_Catsidebarnav extends Mage_Catalog_Block_Navigation
3
  {
4
- public function _prepareLayout()
5
- {
6
  return parent::_prepareLayout();
7
- }
8
 
9
- public function getCatsidebarnav()
10
- {
11
- if (!$this->hasData('catsidebarnav')) {
12
- $this->setData('catsidebarnav', Mage::registry('catsidebarnav'));
13
- }
14
- return $this->getData('catsidebarnav');
15
-
16
- }
17
  public function leftSidebarBlock() {
18
  $block = $this->getParentBlock();
19
  if($block) {
20
 
21
  if(Mage::helper('catsidebarnav')->displayOnSideBar() == 'left') {
22
  $sidebarBlock = $this->getLayout()->createBlock('catsidebarnav/sidebar');
23
- $block->insert($sidebarBlock,'', true, 'cat-sidebar');
24
  }
25
  }
26
  }
@@ -30,7 +27,7 @@ class Magebuzz_Catsidebarnav_Block_Catsidebarnav extends Mage_Catalog_Block_Navi
30
  if(Mage::helper('catsidebarnav')->displayOnSideBar() == 'right') {
31
  $sidebarBlock = $this->getLayout()->createBlock('catsidebarnav/sidebar');
32
 
33
- $block->insert($sidebarBlock, '', true, 'cat-sidebar');
34
  }
35
  }
36
  }
1
  <?php
2
  class Magebuzz_Catsidebarnav_Block_Catsidebarnav extends Mage_Catalog_Block_Navigation
3
  {
4
+ public function _prepareLayout() {
 
5
  return parent::_prepareLayout();
6
+ }
7
 
8
+ public function getCatsidebarnav() {
9
+ if (!$this->hasData('catsidebarnav')) {
10
+ $this->setData('catsidebarnav', Mage::registry('catsidebarnav'));
11
+ }
12
+ return $this->getData('catsidebarnav');
13
+ }
 
 
14
  public function leftSidebarBlock() {
15
  $block = $this->getParentBlock();
16
  if($block) {
17
 
18
  if(Mage::helper('catsidebarnav')->displayOnSideBar() == 'left') {
19
  $sidebarBlock = $this->getLayout()->createBlock('catsidebarnav/sidebar');
20
+ $block->insert($sidebarBlock,'', false, 'cat-sidebar');
21
  }
22
  }
23
  }
27
  if(Mage::helper('catsidebarnav')->displayOnSideBar() == 'right') {
28
  $sidebarBlock = $this->getLayout()->createBlock('catsidebarnav/sidebar');
29
 
30
+ $block->insert($sidebarBlock, '', false, 'cat-sidebar');
31
  }
32
  }
33
  }
app/code/community/Magebuzz/Catsidebarnav/Block/Sidebar.php CHANGED
@@ -5,18 +5,36 @@ class Magebuzz_Catsidebarnav_Block_Sidebar extends Magebuzz_Catsidebarnav_Block_
5
  $this->setTemplate('catsidebarnav/catsidebarnav.phtml');
6
  return parent::_construct();
7
  }
8
- public function _prepareLayout()
9
- {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  return parent::_prepareLayout();
11
- }
12
- public function getStoreCategories()
13
- {
14
- $helper = Mage::helper('catsidebarnav/category');
15
- return $helper->getAllCategories();
16
- }
17
- protected function _renderCategoryMenuItemHtml($category, $level = 0, $isLast = false, $isFirst = false,
18
- $isOutermost = false, $outermostItemClass = '', $childrenWrapClass = '', $noEventAttributes = false)
19
- {
20
  $showType=Mage::getStoreConfig('catsidebarnav/display_settings/show_type');
21
  if (!$category->getIsActive()) {
22
  return '';
@@ -133,5 +151,9 @@ class Magebuzz_Catsidebarnav_Block_Sidebar extends Magebuzz_Catsidebarnav_Block_
133
 
134
  $html = implode("\n", $html);
135
  return $html;
136
- }
 
 
 
 
137
  }
5
  $this->setTemplate('catsidebarnav/catsidebarnav.phtml');
6
  return parent::_construct();
7
  }
8
+ public function _prepareLayout() {
9
+ $headBlock = $this->getLayout()->getBlock('head');
10
+ $headBlock->addJs('magebuzz/catsidebarnav/jquery.min.js');
11
+ $headBlock->addJs('magebuzz/catsidebarnav/jquery.noconflict.js');
12
+ $type = Mage::helper('catsidebarnav')->getShowType();
13
+ switch($type) {
14
+ case "static":
15
+ $headBlock->addCss('css/magebuzz/catsidebarnav/static.css');
16
+ break;
17
+ case "click-2-click":
18
+ $headBlock->addCss('css/magebuzz/catsidebarnav/click.css');
19
+ $headBlock->addItem('skin_js','js/magebuzz/catsidebarnav/click2click.js');
20
+ break;
21
+ case "fly-out":
22
+ $headBlock->addCss('css/magebuzz/catsidebarnav/fly-out.css');
23
+ $headBlock->addItem('skin_js','js/magebuzz/catsidebarnav/fly-out/hoverIntent.js');
24
+ $headBlock->addItem('skin_js','js/magebuzz/catsidebarnav/fly-out/superfish.js');
25
+ $headBlock->addItem('skin_js','js/magebuzz/catsidebarnav/fly-out/fly-out.js');
26
+ break;
27
+ default:
28
+ $headBlock->addCss('css/magebuzz/catsidebarnav/static.css');
29
+ break;
30
+ }
31
  return parent::_prepareLayout();
32
+ }
33
+ public function getStoreCategories() {
34
+ $helper = Mage::helper('catsidebarnav/category');
35
+ return $helper->getAllCategories();
36
+ }
37
+ protected function _renderCategoryMenuItemHtml($category, $level = 0, $isLast = false, $isFirst = false,$isOutermost = false, $outermostItemClass = '', $childrenWrapClass = '', $noEventAttributes = false) {
 
 
 
38
  $showType=Mage::getStoreConfig('catsidebarnav/display_settings/show_type');
39
  if (!$category->getIsActive()) {
40
  return '';
151
 
152
  $html = implode("\n", $html);
153
  return $html;
154
+ }
155
+ public function addCssJsHead() {
156
+
157
+ return $this;
158
+ }
159
  }
app/code/community/Magebuzz/Catsidebarnav/etc/config.xml CHANGED
@@ -2,29 +2,26 @@
2
  <config>
3
  <modules>
4
  <Magebuzz_Catsidebarnav>
5
- <version>0.1.0</version>
6
  </Magebuzz_Catsidebarnav>
7
  </modules>
8
  <frontend>
9
- <secure_url>
10
- <catsidebarnav>/catsidebarnav/</catsidebarnav>
11
- </secure_url>
12
- <routers>
13
- <catsidebarnav>
14
- <use>standard</use>
15
- <args>
16
- <module>Magebuzz_Catsidebarnav</module>
17
- <frontName>catsidebarnav</frontName>
18
- </args>
19
- </catsidebarnav>
20
- </routers>
21
- <layout>
22
- <updates>
23
- <catsidebarnav>
24
- <file>catsidebarnav.xml</file>
25
- </catsidebarnav>
26
- </updates>
27
- </layout>
28
  </frontend>
29
  <admin>
30
  <routers>
@@ -38,13 +35,22 @@
38
  </routers>
39
  </admin>
40
  <adminhtml>
41
- <layout>
42
- <updates>
43
- <catsidebarnav>
44
- <file>catsidebarnav.xml</file>
45
- </catsidebarnav>
46
- </updates>
47
- </layout>
 
 
 
 
 
 
 
 
 
48
  </adminhtml>
49
  <global>
50
  <models>
@@ -122,13 +128,4 @@
122
  </display_settings>
123
  </catsidebarnav>
124
  </default>
125
- <translate>
126
- <modules>
127
- <Magebuzz_Catsidebarnav>
128
- <files>
129
- <default>Magebuzz_Catsidebarnav.csv</default>
130
- </files>
131
- </Magebuzz_Catsidebarnav>
132
- </modules>
133
- </translate>
134
  </config>
2
  <config>
3
  <modules>
4
  <Magebuzz_Catsidebarnav>
5
+ <version>0.1.1</version>
6
  </Magebuzz_Catsidebarnav>
7
  </modules>
8
  <frontend>
9
+ <routers>
10
+ <catsidebarnav>
11
+ <use>standard</use>
12
+ <args>
13
+ <module>Magebuzz_Catsidebarnav</module>
14
+ <frontName>catsidebarnav</frontName>
15
+ </args>
16
+ </catsidebarnav>
17
+ </routers>
18
+ <layout>
19
+ <updates>
20
+ <catsidebarnav>
21
+ <file>catsidebarnav.xml</file>
22
+ </catsidebarnav>
23
+ </updates>
24
+ </layout>
 
 
 
25
  </frontend>
26
  <admin>
27
  <routers>
35
  </routers>
36
  </admin>
37
  <adminhtml>
38
+ <layout>
39
+ <updates>
40
+ <catsidebarnav>
41
+ <file>catsidebarnav.xml</file>
42
+ </catsidebarnav>
43
+ </updates>
44
+ </layout>
45
+ <translate>
46
+ <modules>
47
+ <Magebuzz_Catsidebarnav>
48
+ <files>
49
+ <default>Magebuzz_Catsidebarnav.csv</default>
50
+ </files>
51
+ </Magebuzz_Catsidebarnav>
52
+ </modules>
53
+ </translate>
54
  </adminhtml>
55
  <global>
56
  <models>
128
  </display_settings>
129
  </catsidebarnav>
130
  </default>
 
 
 
 
 
 
 
 
 
131
  </config>
app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Edit.php DELETED
@@ -1,61 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Featuredproducts_Block_Adminhtml_Edit extends Mage_Adminhtml_Block_Widget_Grid_Container {
4
-
5
- protected $_saveButtonLabel = 'Save Featured Products';
6
-
7
- public function __construct() {
8
- $this->_blockGroup = 'featuredproducts';
9
- $this->_controller = 'adminhtml_edit';
10
-
11
- $this->_headerText = Mage::helper('adminhtml')->__('Featured products');
12
-
13
- parent::__construct();
14
-
15
- $this->_removeButton('add');
16
-
17
- $this->_addButton('save', array(
18
- 'label' => $this->_saveButtonLabel,
19
- 'onclick' => 'categorySubmit(\'' . $this->getSaveUrl() . '\')',
20
- 'class' => 'Save',
21
- ));
22
- }
23
-
24
- public function getSaveUrl() {
25
- return $this->getUrl('*/*/save', array('store' => $this->getRequest()->getParam('store')));
26
- }
27
-
28
- protected function _afterToHtml($html) {
29
- return $this->_prependHtml() . parent::_afterToHtml($html);
30
- }
31
-
32
- private function _prependHtml() {
33
- $html = '
34
-
35
- <form id="featured_edit_form" action="' . $this->getSaveUrl() . '" method="post" enctype="multipart/form-data">
36
- <input name="form_key" type="hidden" value="' . $this->getFormKey() . '" />
37
- <div class="no-display">
38
- <input type="hidden" name="featured_products" id="in_featured_products" value="" />
39
- </div>
40
- </form>
41
- ';
42
-
43
- return $html;
44
- }
45
-
46
- public function getHeaderHtml() {
47
- return '<h3 style="background-image: url(' . $this->getSkinUrl('images/product_rating_full_star.gif') . ');" class="' . $this->getHeaderCssClass() . '">' . $this->getHeaderText() . '</h3>';
48
- }
49
-
50
- protected function _prepareLayout() {
51
- $this->setChild('store_switcher', $this->getLayout()->createBlock('adminhtml/store_switcher', 'store_switcher')->setUseConfirm(false)
52
- );
53
- return parent::_prepareLayout();
54
- }
55
-
56
- public function getGridHtml() {
57
-
58
- return $this->getChildHtml('store_switcher') . $this->getChildHtml('grid');
59
- }
60
-
61
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Edit/Grid.php DELETED
@@ -1,322 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Featuredproducts_Block_Adminhtml_Edit_Grid extends Mage_Adminhtml_Block_Widget_Grid {
4
-
5
- public function __construct() {
6
- parent::__construct();
7
-
8
- $this->setId('magebuzz_featured_products');
9
- $this->setDefaultSort('entity_id');
10
- $this->setUseAjax(true);
11
-
12
- $this->setRowClickCallback('FeaturedRowClick');
13
- }
14
-
15
- public function getProduct() {
16
- return Mage::registry('product');
17
- }
18
-
19
- protected function _getStore() {
20
- $storeId = (int) $this->getRequest()->getParam('store', 0);
21
- return Mage::app()->getStore($storeId);
22
- }
23
-
24
- protected function _addColumnFilterToCollection($column) {
25
-
26
- if ($this->getCollection()) {
27
- if ($column->getId() == 'websites') {
28
-
29
- $this->getCollection()->joinField('websites', 'catalog/product_website', 'website_id', 'product_id=entity_id', null, 'left');
30
- }
31
- }
32
-
33
-
34
- if ($column->getId() == "featured") {
35
- $productIds = $this->_getSelectedProducts();
36
-
37
- if (empty($productIds)) {
38
- $productIds = 0;
39
- }
40
- if ($column->getFilter()->getValue()) {
41
- $this->getCollection()->addFieldToFilter('entity_id', array('in' => $productIds));
42
- } elseif (!empty($productIds)) {
43
- $this->getCollection()->addFieldToFilter('entity_id', array('nin' => $productIds));
44
- }
45
- } else {
46
-
47
- parent::_addColumnFilterToCollection($column);
48
- }
49
-
50
- return $this;
51
- }
52
-
53
- protected function _prepareCollection() {
54
- $store = $this->_getStore();
55
-
56
-
57
- $collection = Mage::getModel('catalog/product')->getCollection()
58
- ->addAttributeToSelect('name')
59
- ->addAttributeToSelect('sku')
60
- ->addAttributeToSelect('magebuzz_featured_product')
61
- ->addAttributeToSelect('type_id')
62
- ->addAttributeToFilter('visibility', array('nin' => array(1,3)));
63
-
64
-
65
- if ($store->getId()) {
66
- //$collection->setStoreId($store->getId());
67
- $collection->addStoreFilter($store);
68
- $collection->joinAttribute('custom_name', 'catalog_product/name', 'entity_id', null, 'inner', $store->getId());
69
- $collection->joinAttribute('status', 'catalog_product/status', 'entity_id', null, 'inner', $store->getId());
70
- $collection->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', 1, 'inner', $store->getId());
71
- $collection->joinAttribute('price', 'catalog_product/price', 'entity_id', null, 'left', $store->getId());
72
- } else {
73
- $collection->addAttributeToSelect('price');
74
- $collection->addAttributeToSelect('status');
75
- $collection->addAttributeToSelect('visibility');
76
- }
77
-
78
-
79
-
80
- $this->setCollection($collection);
81
-
82
-
83
-
84
- parent::_prepareCollection();
85
-
86
- $this->getCollection()->addWebsiteNamesToResult();
87
- return $this;
88
- }
89
-
90
- protected function _prepareColumns() {
91
-
92
-
93
- $this->addColumn('featured', array(
94
- 'header_css_class' => 'a-center',
95
- 'type' => 'checkbox',
96
- 'name' => 'featured',
97
- 'values' => $this->_getSelectedProducts(),
98
- 'align' => 'center',
99
- 'index' => 'entity_id'
100
- ));
101
-
102
- $this->addColumn('entity_id', array(
103
- 'header' => Mage::helper('catalog')->__('ID'),
104
- 'sortable' => true,
105
- 'width' => '60',
106
- 'index' => 'entity_id'
107
- ));
108
-
109
- $this->addColumn('name', array(
110
- 'header' => Mage::helper('catalog')->__('Name'),
111
- 'index' => 'name'
112
- ));
113
-
114
- $this->addColumn('type',
115
- array(
116
- 'header'=> Mage::helper('catalog')->__('Type'),
117
- 'width' => '60px',
118
- 'index' => 'type_id',
119
- 'type' => 'options',
120
- 'options' => Mage::getSingleton('catalog/product_type')->getOptionArray(),
121
- ));
122
-
123
- $this->addColumn('sku', array(
124
- 'header' => Mage::helper('catalog')->__('SKU'),
125
- 'width' => '140',
126
- 'index' => 'sku'
127
- ));
128
-
129
- $this->addColumn('visibility', array(
130
- 'header' => Mage::helper('catalog')->__('Visibility'),
131
- 'width' => '140',
132
- 'index' => 'visibility',
133
- 'filter' => false,
134
- 'renderer' => 'featuredproducts/adminhtml_edit_renderer_visibility',
135
- ));
136
-
137
- if (!Mage::app()->isSingleStoreMode()) {
138
- $this->addColumn('websites', array(
139
- 'header' => Mage::helper('catalog')->__('Websites'),
140
- 'width' => '100px',
141
- 'sortable' => false,
142
- 'index' => 'websites',
143
- 'type' => 'options',
144
- 'options' => Mage::getModel('core/website')->getCollection()->toOptionHash(),
145
- ));
146
- }
147
-
148
- /*
149
- $this->addColumn('visibility',
150
- array(
151
- 'header'=> Mage::helper('catalog')->__('Visibility'),
152
- 'width' => '70px',
153
- 'index' => 'visibility',
154
- 'type' => 'options',
155
- 'options' => Mage::getModel('catalog/product_visibility')->getOptionArray(),
156
- ));
157
- */
158
-
159
-
160
-
161
- $store = $this->_getStore();
162
- $this->addColumn('price',
163
- array(
164
- 'header'=> Mage::helper('catalog')->__('Price'),
165
- 'type' => 'price',
166
- 'currency_code' => $store->getBaseCurrency()->getCode(),
167
- 'index' => 'price',
168
- ));
169
-
170
- /*
171
- $this->addColumn('price', array(
172
- 'header' => Mage::helper('catalog')->__('Price'),
173
- 'type' => 'currency',
174
- 'width' => '1',
175
- 'currency_code' => (string) Mage::getStoreConfig(Mage_Directory_Model_Currency::XML_PATH_CURRENCY_BASE),
176
- 'index' => 'price'
177
- ));
178
- */
179
-
180
-
181
-
182
- return parent::_prepareColumns();
183
- }
184
-
185
- public function getGridUrl() {
186
- return $this->getUrl('*/*/grid', array('_current' => true));
187
- }
188
-
189
- protected function _getSelectedProducts($json=false) {
190
- $temp = $this->getRequest()->getPost('featured_ids');
191
- $store = $this->_getStore();
192
-
193
- if ($temp) {
194
- parse_str($temp, $featured_ids);
195
- }
196
-
197
- $_prod = Mage::getModel('catalog/product')->getCollection()
198
- ->joinAttribute('magebuzz_featured_product', 'catalog_product/magebuzz_featured_product', 'entity_id', null, 'left', $store->getId())
199
- ->addAttributeToFilter('magebuzz_featured_product', '1');
200
-
201
- $products = $_prod->getColumnValues('entity_id');
202
- $selected_products = array();
203
-
204
-
205
- if ($json == true) {
206
- foreach ($products as $key => $value) {
207
- $selected_products[$value] = '1';
208
- }
209
- return Zend_Json::encode($selected_products);
210
- } else {
211
-
212
- foreach ($products as $key => $value) {
213
- if ((isset($featured_ids[$value])) && ($featured_ids[$value] == 0)) {
214
-
215
- }else
216
- $selected_products[$value] = '0';
217
- }
218
-
219
- if (isset($featured_ids))
220
- foreach ($featured_ids as $key => $value) {
221
- if ($value == 1)
222
- $selected_products[$key] = '0';
223
- }
224
-
225
- return array_keys($selected_products);
226
- }
227
-
228
- return $products;
229
- }
230
-
231
- //add javascript before/after grid html
232
- protected function _afterToHtml($html) {
233
- return $this->_prependHtml() . parent::_afterToHtml($html). $this->_appendHtml();
234
- }
235
-
236
- private function _prependHtml() {
237
- $gridName = $this->getJsObjectName();
238
-
239
- $html =
240
- <<<EndHTML
241
- <script type="text/javascript">
242
- //<![CDATA[
243
-
244
- categoryForm = new varienForm('featured_edit_form');
245
- categoryForm.submit= function (url) {
246
-
247
- this._submit();
248
-
249
- return true;
250
-
251
-
252
- };
253
-
254
- function categorySubmit(url) {
255
-
256
- var params = {};
257
- var fields = $('featured_edit_form').getElementsBySelector('input', 'select');
258
-
259
- categoryForm.submit();
260
- }
261
-
262
- function FeaturedRowClick(grid, event)
263
- {
264
- var trElement = Event.findElement(event, 'tr');
265
- var isInput = Event.element(event).tagName == 'INPUT';
266
-
267
- var checkbox = Element.getElementsBySelector(trElement, 'input.checkbox').first();
268
- if(!checkbox) return;
269
-
270
- if(checkbox.checked) checkBoxes.set(checkbox.value, 1);
271
- else checkBoxes.set(checkbox.value, 0);
272
-
273
- //else checkBoxes.unset(checkbox.value);
274
-
275
-
276
- $("in_featured_products").value = checkBoxes.toQueryString();
277
- //console.log("Products", checkBoxes);
278
- $gridName.reloadParams = {'featured_ids':checkBoxes.toQueryString()};
279
- }
280
-
281
- //]]>
282
-
283
-
284
-
285
-
286
- </script>
287
- EndHTML;
288
-
289
- return $html;
290
- }
291
-
292
- private function _appendHtml() {
293
- $html =
294
- '
295
- <script type="text/javascript">
296
- var checkBoxes = $H();
297
-
298
- var checkbox_all = $$("#magebuzz_featured_products_table thead input.checkbox").first();
299
- var everycheckbox = $$("#magebuzz_featured_products_table tbody input.checkbox");
300
-
301
- checkbox_all.observe("click", function(event) {
302
-
303
- if(checkbox_all.checked)
304
- {
305
- everycheckbox.each(function(element, index) {
306
- checkBoxes.set(element.value, 1)
307
- });
308
- } else
309
- {
310
- everycheckbox.each(function(element, index) {
311
- checkBoxes.set(element.value, 0)
312
- });
313
- }
314
- $("in_featured_products").value = checkBoxes.toQueryString();
315
- });
316
- </script>
317
- ';
318
-
319
- return $html;
320
- }
321
-
322
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Edit/Renderer/Visibility.php DELETED
@@ -1,22 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Featuredproducts_Block_Adminhtml_Edit_Renderer_Visibility extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
4
- {
5
- protected $_values;
6
-
7
- /**
8
- * Renders grid column
9
- *
10
- * @param Varien_Object $row
11
- * @return string
12
- */
13
- public function render(Varien_Object $row)
14
- {
15
-
16
- $this->_values = Mage::getModel('catalog/product_visibility')->getOptionArray();
17
-
18
- $html = $this->_values[$row->getData($this->getColumn()->getIndex())];
19
-
20
- return $html;
21
- }
22
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Featuredproducts.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
- class Magebuzz_Featuredproducts_Block_Adminhtml_Featuredproducts extends Mage_Adminhtml_Block_Widget_Grid_Container
3
- {
4
- public function __construct()
5
- {
6
- $this->_controller = 'adminhtml_featuredproducts';
7
- $this->_blockGroup = 'featuredproducts';
8
- $this->_headerText = Mage::helper('featuredproducts')->__('Item Manager');
9
- $this->_addButtonLabel = Mage::helper('featuredproducts')->__('Add Item');
10
- parent::__construct();
11
- }
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Featuredproducts/Edit.php DELETED
@@ -1,45 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Featuredproducts_Block_Adminhtml_Featuredproducts_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
4
- {
5
- public function __construct()
6
- {
7
- parent::__construct();
8
-
9
- $this->_objectId = 'id';
10
- $this->_blockGroup = 'featuredproducts';
11
- $this->_controller = 'adminhtml_featuredproducts';
12
-
13
- $this->_updateButton('save', 'label', Mage::helper('featuredproducts')->__('Save Item'));
14
- $this->_updateButton('delete', 'label', Mage::helper('featuredproducts')->__('Delete Item'));
15
-
16
- $this->_addButton('saveandcontinue', array(
17
- 'label' => Mage::helper('adminhtml')->__('Save And Continue Edit'),
18
- 'onclick' => 'saveAndContinueEdit()',
19
- 'class' => 'save',
20
- ), -100);
21
-
22
- $this->_formScripts[] = "
23
- function toggleEditor() {
24
- if (tinyMCE.getInstanceById('featuredproducts_content') == null) {
25
- tinyMCE.execCommand('mceAddControl', false, 'featuredproducts_content');
26
- } else {
27
- tinyMCE.execCommand('mceRemoveControl', false, 'featuredproducts_content');
28
- }
29
- }
30
-
31
- function saveAndContinueEdit(){
32
- editForm.submit($('edit_form').action+'back/edit/');
33
- }
34
- ";
35
- }
36
-
37
- public function getHeaderText()
38
- {
39
- if( Mage::registry('featuredproducts_data') && Mage::registry('featuredproducts_data')->getId() ) {
40
- return Mage::helper('featuredproducts')->__("Edit Item '%s'", $this->htmlEscape(Mage::registry('featuredproducts_data')->getTitle()));
41
- } else {
42
- return Mage::helper('featuredproducts')->__('Add Item');
43
- }
44
- }
45
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Featuredproducts/Edit/Form.php DELETED
@@ -1,19 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Featuredproducts_Block_Adminhtml_Featuredproducts_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
4
- {
5
- protected function _prepareForm()
6
- {
7
- $form = new Varien_Data_Form(array(
8
- 'id' => 'edit_form',
9
- 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
10
- 'method' => 'post',
11
- 'enctype' => 'multipart/form-data'
12
- )
13
- );
14
-
15
- $form->setUseContainer(true);
16
- $this->setForm($form);
17
- return parent::_prepareForm();
18
- }
19
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Featuredproducts/Edit/Tab/Form.php DELETED
@@ -1,58 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Featuredproducts_Block_Adminhtml_Featuredproducts_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
4
- {
5
- protected function _prepareForm()
6
- {
7
- $form = new Varien_Data_Form();
8
- $this->setForm($form);
9
- $fieldset = $form->addFieldset('featuredproducts_form', array('legend'=>Mage::helper('featuredproducts')->__('Item information')));
10
-
11
- $fieldset->addField('title', 'text', array(
12
- 'label' => Mage::helper('featuredproducts')->__('Title'),
13
- 'class' => 'required-entry',
14
- 'required' => true,
15
- 'name' => 'title',
16
- ));
17
-
18
- $fieldset->addField('filename', 'file', array(
19
- 'label' => Mage::helper('featuredproducts')->__('File'),
20
- 'required' => false,
21
- 'name' => 'filename',
22
- ));
23
-
24
- $fieldset->addField('status', 'select', array(
25
- 'label' => Mage::helper('featuredproducts')->__('Status'),
26
- 'name' => 'status',
27
- 'values' => array(
28
- array(
29
- 'value' => 1,
30
- 'label' => Mage::helper('featuredproducts')->__('Enabled'),
31
- ),
32
-
33
- array(
34
- 'value' => 2,
35
- 'label' => Mage::helper('featuredproducts')->__('Disabled'),
36
- ),
37
- ),
38
- ));
39
-
40
- $fieldset->addField('content', 'editor', array(
41
- 'name' => 'content',
42
- 'label' => Mage::helper('featuredproducts')->__('Content'),
43
- 'title' => Mage::helper('featuredproducts')->__('Content'),
44
- 'style' => 'width:700px; height:500px;',
45
- 'wysiwyg' => false,
46
- 'required' => true,
47
- ));
48
-
49
- if ( Mage::getSingleton('adminhtml/session')->getFeaturedProductsData() )
50
- {
51
- $form->setValues(Mage::getSingleton('adminhtml/session')->getFeaturedProductsData());
52
- Mage::getSingleton('adminhtml/session')->setFeaturedProductsData(null);
53
- } elseif ( Mage::registry('featuredproducts_data') ) {
54
- $form->setValues(Mage::registry('featuredproducts_data')->getData());
55
- }
56
- return parent::_prepareForm();
57
- }
58
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Featuredproducts/Edit/Tabs.php DELETED
@@ -1,24 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Featuredproducts_Block_Adminhtml_Featuredproducts_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
4
- {
5
-
6
- public function __construct()
7
- {
8
- parent::__construct();
9
- $this->setId('featuredproducts_tabs');
10
- $this->setDestElementId('edit_form');
11
- $this->setTitle(Mage::helper('featuredproducts')->__('Item Information'));
12
- }
13
-
14
- protected function _beforeToHtml()
15
- {
16
- $this->addTab('form_section', array(
17
- 'label' => Mage::helper('featuredproducts')->__('Item Information'),
18
- 'title' => Mage::helper('featuredproducts')->__('Item Information'),
19
- 'content' => $this->getLayout()->createBlock('featuredproducts/adminhtml_featuredproducts_edit_tab_form')->toHtml(),
20
- ));
21
-
22
- return parent::_beforeToHtml();
23
- }
24
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Block/Adminhtml/Featuredproducts/Grid.php DELETED
@@ -1,116 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Featuredproducts_Block_Adminhtml_Featuredproducts_Grid extends Mage_Adminhtml_Block_Widget_Grid
4
- {
5
- public function __construct()
6
- {
7
- parent::__construct();
8
- $this->setId('featuredproductsGrid');
9
- $this->setDefaultSort('featuredproducts_id');
10
- $this->setDefaultDir('ASC');
11
- $this->setSaveParametersInSession(true);
12
- }
13
-
14
- protected function _prepareCollection()
15
- {
16
- $collection = Mage::getModel('featuredproducts/featuredproducts')->getCollection();
17
- $this->setCollection($collection);
18
- return parent::_prepareCollection();
19
- }
20
-
21
- protected function _prepareColumns()
22
- {
23
- $this->addColumn('featuredproducts_id', array(
24
- 'header' => Mage::helper('featuredproducts')->__('ID'),
25
- 'align' =>'right',
26
- 'width' => '50px',
27
- 'index' => 'featuredproducts_id',
28
- ));
29
-
30
- $this->addColumn('title', array(
31
- 'header' => Mage::helper('featuredproducts')->__('Title'),
32
- 'align' =>'left',
33
- 'index' => 'title',
34
- ));
35
-
36
- /*
37
- $this->addColumn('content', array(
38
- 'header' => Mage::helper('featuredproducts')->__('Item Content'),
39
- 'width' => '150px',
40
- 'index' => 'content',
41
- ));
42
- */
43
-
44
- $this->addColumn('status', array(
45
- 'header' => Mage::helper('featuredproducts')->__('Status'),
46
- 'align' => 'left',
47
- 'width' => '80px',
48
- 'index' => 'status',
49
- 'type' => 'options',
50
- 'options' => array(
51
- 1 => 'Enabled',
52
- 2 => 'Disabled',
53
- ),
54
- ));
55
-
56
- $this->addColumn('action',
57
- array(
58
- 'header' => Mage::helper('featuredproducts')->__('Action'),
59
- 'width' => '100',
60
- 'type' => 'action',
61
- 'getter' => 'getId',
62
- 'actions' => array(
63
- array(
64
- 'caption' => Mage::helper('featuredproducts')->__('Edit'),
65
- 'url' => array('base'=> '*/*/edit'),
66
- 'field' => 'id'
67
- )
68
- ),
69
- 'filter' => false,
70
- 'sortable' => false,
71
- 'index' => 'stores',
72
- 'is_system' => true,
73
- ));
74
-
75
- $this->addExportType('*/*/exportCsv', Mage::helper('featuredproducts')->__('CSV'));
76
- $this->addExportType('*/*/exportXml', Mage::helper('featuredproducts')->__('XML'));
77
-
78
- return parent::_prepareColumns();
79
- }
80
-
81
- protected function _prepareMassaction()
82
- {
83
- $this->setMassactionIdField('featuredproducts_id');
84
- $this->getMassactionBlock()->setFormFieldName('featuredproducts');
85
-
86
- $this->getMassactionBlock()->addItem('delete', array(
87
- 'label' => Mage::helper('featuredproducts')->__('Delete'),
88
- 'url' => $this->getUrl('*/*/massDelete'),
89
- 'confirm' => Mage::helper('featuredproducts')->__('Are you sure?')
90
- ));
91
-
92
- $statuses = Mage::getSingleton('featuredproducts/status')->getOptionArray();
93
-
94
- array_unshift($statuses, array('label'=>'', 'value'=>''));
95
- $this->getMassactionBlock()->addItem('status', array(
96
- 'label'=> Mage::helper('featuredproducts')->__('Change status'),
97
- 'url' => $this->getUrl('*/*/massStatus', array('_current'=>true)),
98
- 'additional' => array(
99
- 'visibility' => array(
100
- 'name' => 'status',
101
- 'type' => 'select',
102
- 'class' => 'required-entry',
103
- 'label' => Mage::helper('featuredproducts')->__('Status'),
104
- 'values' => $statuses
105
- )
106
- )
107
- ));
108
- return $this;
109
- }
110
-
111
- public function getRowUrl($row)
112
- {
113
- return $this->getUrl('*/*/edit', array('id' => $row->getId()));
114
- }
115
-
116
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Block/Featuredproducts.php DELETED
@@ -1,17 +0,0 @@
1
- <?php
2
- class Magebuzz_Featuredproducts_Block_Featuredproducts extends Mage_Core_Block_Template
3
- {
4
- public function _prepareLayout()
5
- {
6
- return parent::_prepareLayout();
7
- }
8
-
9
- public function getFeaturedProducts()
10
- {
11
- if (!$this->hasData('featuredproducts')) {
12
- $this->setData('featuredproducts', Mage::registry('featuredproducts'));
13
- }
14
- return $this->getData('featuredproducts');
15
-
16
- }
17
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Block/Leftsidebar.php DELETED
@@ -1,50 +0,0 @@
1
- <?php
2
- class Magebuzz_Featuredproducts_Block_Leftsidebar extends Mage_Core_Block_Template
3
- {
4
- public function _prepareLayout()
5
- {
6
- return parent::_prepareLayout();
7
- }
8
-
9
- public function getFeaturedProducts()
10
- {
11
- if (!$this->hasData('featuredproducts')) {
12
- $this->setData('featuredproducts', Mage::registry('featuredproducts'));
13
- }
14
- return $this->getData('featuredproducts');
15
- }
16
-
17
- protected function _getProductCollection()
18
- {
19
- if (is_null($this->_productCollection)) {
20
- $collection = Mage::getModel('catalog/product')->getCollection();
21
-
22
- $attributes = Mage::getSingleton('catalog/config')
23
- ->getProductAttributes();
24
-
25
- $collection->addAttributeToSelect($attributes)
26
- ->addMinimalPrice()
27
- ->addFinalPrice()
28
- ->addTaxPercents()
29
- ->addAttributeToFilter('magebuzz_featured_product', 1, 'left')
30
- ->addStoreFilter();
31
-
32
- Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
33
- Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
34
- $this->_productCollection = $collection;
35
- }
36
- return $this->_productCollection;
37
- }
38
-
39
- public function getFeaturedProductCollection()
40
- {
41
- return $this->_getProductCollection();
42
- }
43
-
44
- public function getFilteredProductCollection($category)
45
- {
46
- $_filteredProductCollection = $this->_getProductCollection();
47
- $_filteredProductCollection->addCategoryFilter($category)->addAttributeToSelect('*');
48
- return $_filteredProductCollection;
49
- }
50
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Block/Listing.php DELETED
@@ -1,64 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Featuredproducts_Block_Listing extends Mage_Catalog_Block_Product_Abstract
4
- {
5
- /*
6
- * Check sort option and limits set in System->Configuration and apply them
7
- * Additionally, set template to block so call from CMS will look like {{block type="featuredproducts/listing"}}
8
- */
9
- public function __construct()
10
- {
11
- $this->setTemplate('magebuzz/featuredproducts/block_featured_products.phtml');
12
-
13
- $this->setLimit((int)Mage::getStoreConfig("featuredproducts/general/number_of_items"));
14
- $sort_by = Mage::getStoreConfig("featuredproducts/general/product_sort_by");
15
- //$this->setItemsPerRow((int)Mage::getStoreConfig("featuredproducts/general/number_of_items_per_row"));
16
-
17
- switch ($sort_by) {
18
- case 0:
19
- $this->setSortBy("rand()");
20
- break;
21
- case 1:
22
- $this->setSortBy("created_at desc");
23
- break;
24
- default:
25
- $this->setSortBy("rand()");
26
- }
27
- }
28
-
29
- /*
30
- * Load featured products collection
31
- * */
32
- protected function _beforeToHtml()
33
- {
34
- $collection = Mage::getResourceModel('catalog/product_collection');
35
-
36
- $attributes = Mage::getSingleton('catalog/config')
37
- ->getProductAttributes();
38
-
39
- $collection->addAttributeToSelect($attributes)
40
- ->addMinimalPrice()
41
- ->addFinalPrice()
42
- ->addTaxPercents()
43
- ->addAttributeToFilter('magebuzz_featured_product', 1, 'left')
44
- ->addStoreFilter()
45
- ->getSelect()->order($this->getSortBy())->limit($this->getLimit());
46
-
47
- Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
48
- Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
49
-
50
- $this->_productCollection = $collection;
51
-
52
- $this->setProductCollection($collection);
53
- return parent::_beforeToHtml();
54
- }
55
-
56
- /*
57
- * Return label for CMS block output
58
- * */
59
- protected function getBlockLabel()
60
- {
61
- return $this->helper('featuredproducts')->getCmsBlockLabel();
62
- }
63
-
64
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Block/Product/List.php DELETED
@@ -1,81 +0,0 @@
1
- <?php
2
- class Magebuzz_Featuredproducts_Block_Product_List extends Mage_Catalog_Block_Product_List
3
- {
4
- protected $_productCollection;
5
- protected $_sort_by;
6
-
7
-
8
- protected function _prepareLayout()
9
- {
10
- if ($breadcrumbsBlock = $this->getLayout()->getBlock('breadcrumbs')) {
11
- $breadcrumbsBlock->addCrumb('home', array(
12
- 'label'=>Mage::helper('catalog')->__('Home'),
13
- 'title'=>Mage::helper('catalog')->__('Go to Home Page'),
14
- 'link'=>Mage::getBaseUrl()
15
- ));
16
- }
17
-
18
- parent::_prepareLayout();
19
- }
20
-
21
- /*
22
- * Remove "Position" option from Sort By dropdown
23
- * */
24
- protected function _beforeToHtml()
25
- {
26
- parent::_beforeToHtml();
27
- $toolbar = $this->getToolbarBlock();
28
- $toolbar->removeOrderFromAvailableOrders('position');
29
- return $this;
30
- }
31
-
32
-
33
- /*
34
- * Load featured products collection
35
- * */
36
- protected function _getProductCollection()
37
- {
38
- if (is_null($this->_productCollection)) {
39
- $collection = Mage::getModel('catalog/product')->getCollection();
40
-
41
- $attributes = Mage::getSingleton('catalog/config')
42
- ->getProductAttributes();
43
-
44
- $collection->addAttributeToSelect($attributes)
45
- ->addMinimalPrice()
46
- ->addFinalPrice()
47
- ->addTaxPercents()
48
- ->addAttributeToFilter('magebuzz_featured_product', 1, 'left')
49
- ->addStoreFilter();
50
-
51
- Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
52
- Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
53
- $this->_productCollection = $collection;
54
- }
55
- return $this->_productCollection;
56
- }
57
-
58
- /**
59
- * Retrieve loaded featured products collection
60
- *
61
- * @return Mage_Eav_Model_Entity_Collection_Abstract
62
- */
63
- public function getFeaturedProductCollection()
64
- {
65
- return $this->_getProductCollection();
66
- }
67
-
68
-
69
-
70
- /**
71
- * Get HTML if there's anything to show
72
- */
73
- protected function _toHtml()
74
- {
75
- if ($this->_getProductCollection()->count()){
76
- return parent::_toHtml();
77
- }
78
- return '';
79
- }
80
-
81
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Block/Rightsidebar.php DELETED
@@ -1,51 +0,0 @@
1
- <?php
2
- class Magebuzz_Featuredproducts_Block_Rightsidebar extends Mage_Core_Block_Template
3
- {
4
- public function _prepareLayout()
5
- {
6
- return parent::_prepareLayout();
7
- }
8
-
9
- public function getFeaturedProducts()
10
- {
11
- if (!$this->hasData('featuredproducts')) {
12
- $this->setData('featuredproducts', Mage::registry('featuredproducts'));
13
- }
14
- return $this->getData('featuredproducts');
15
-
16
- }
17
-
18
- protected function _getProductCollection()
19
- {
20
- if (is_null($this->_productCollection)) {
21
- $collection = Mage::getModel('catalog/product')->getCollection();
22
-
23
- $attributes = Mage::getSingleton('catalog/config')
24
- ->getProductAttributes();
25
-
26
- $collection->addAttributeToSelect($attributes)
27
- ->addMinimalPrice()
28
- ->addFinalPrice()
29
- ->addTaxPercents()
30
- ->addAttributeToFilter('magebuzz_featured_product', 1, 'left')
31
- ->addStoreFilter();
32
-
33
- Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
34
- Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
35
- $this->_productCollection = $collection;
36
- }
37
- return $this->_productCollection;
38
- }
39
-
40
- public function getFeaturedProductCollection()
41
- {
42
- return $this->_getProductCollection();
43
- }
44
-
45
- public function getFilteredProductCollection($category)
46
- {
47
- $_filteredProductCollection = $this->_getProductCollection();
48
- $_filteredProductCollection->addCategoryFilter($category)->addAttributeToSelect('*');
49
- return $_filteredProductCollection;
50
- }
51
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Helper/Data.php DELETED
@@ -1,20 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Featuredproducts_Helper_Data extends Mage_Core_Helper_Abstract
4
- {
5
- const PATH_PAGE_HEADING = 'featuredproducts/general/title';
6
- const PATH_CMS_HEADING = 'featuredproducts/general/title';
7
- const DEFAULT_LABEL = 'Featured Products';
8
-
9
- public function getCmsBlockLabel()
10
- {
11
- $configValue = Mage::getStoreConfig(self::PATH_CMS_HEADING);
12
- return strlen($configValue) > 0 ? $configValue : self::DEFAULT_LABEL;
13
- }
14
-
15
- public function getPageLabel()
16
- {
17
- $configValue = Mage::getStoreConfig(self::PATH_PAGE_HEADING);
18
- return strlen($configValue) > 0 ? $configValue : self::DEFAULT_LABEL;
19
- }
20
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Model/Featuredproducts.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Featuredproducts_Model_Featuredproducts extends Mage_Core_Model_Abstract
4
- {
5
- public function _construct()
6
- {
7
- parent::_construct();
8
- $this->_init('featuredproducts/featuredproducts');
9
- }
10
- }
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Model/Mysql4/Featuredproducts.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Featuredproducts_Model_Mysql4_Featuredproducts extends Mage_Core_Model_Mysql4_Abstract
4
- {
5
- public function _construct()
6
- {
7
- // Note that the featuredproducts_id refers to the key field in your database table.
8
- $this->_init('featuredproducts/featuredproducts', 'featuredproducts_id');
9
- }
10
- }
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Model/Mysql4/Featuredproducts/Collection.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Featuredproducts_Model_Mysql4_Featuredproducts_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
4
- {
5
- public function _construct()
6
- {
7
- parent::_construct();
8
- $this->_init('featuredproducts/featuredproducts');
9
- }
10
- }
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Model/Status.php DELETED
@@ -1,15 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Featuredproducts_Model_Status extends Varien_Object
4
- {
5
- const STATUS_ENABLED = 1;
6
- const STATUS_DISABLED = 2;
7
-
8
- static public function getOptionArray()
9
- {
10
- return array(
11
- self::STATUS_ENABLED => Mage::helper('featuredproducts')->__('Enabled'),
12
- self::STATUS_DISABLED => Mage::helper('featuredproducts')->__('Disabled')
13
- );
14
- }
15
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Model/System/Config/Source/Leftright.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
- class Magebuzz_Featuredproducts_Model_System_Config_Source_Leftright
3
- {
4
- public function toOptionArray()
5
- {
6
- return array(
7
- array('value' => 0, 'label'=>Mage::helper('adminhtml')->__('Left')),
8
- array('value' => 1, 'label'=>Mage::helper('adminhtml')->__('Right')),
9
- );
10
- }
11
-
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/Model/System/Config/Source/Sort.php DELETED
@@ -1,14 +0,0 @@
1
- <?php
2
- class Magebuzz_Featuredproducts_Model_System_Config_Source_Sort
3
- {
4
- /*
5
- * Prepare data for System->Configuration dropdown
6
- * */
7
- public function toOptionArray()
8
- {
9
- return array(
10
- 0 => Mage::helper('adminhtml')->__('Random'),
11
- 1 => Mage::helper('adminhtml')->__('Last Added')
12
- );
13
- }
14
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/controllers/Adminhtml/FeaturedproductsController.php DELETED
@@ -1,225 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Featuredproducts_Adminhtml_FeaturedproductsController extends Mage_Adminhtml_Controller_Action
4
- {
5
-
6
- protected function _initProduct()
7
- {
8
-
9
- $product = Mage::getModel('catalog/product')
10
- ->setStoreId($this->getRequest()->getParam('store', 0));
11
-
12
-
13
- if ($setId = (int) $this->getRequest()->getParam('set')) {
14
- $product->setAttributeSetId($setId);
15
- }
16
-
17
- if ($typeId = $this->getRequest()->getParam('type')) {
18
- $product->setTypeId($typeId);
19
- }
20
-
21
- $product->setData('_edit_mode', true);
22
-
23
- Mage::register('product', $product);
24
-
25
- return $product;
26
- }
27
-
28
- protected function _initAction() {
29
- $this->loadLayout()
30
- ->_setActiveMenu('featuredproducts/items')
31
- ->_addBreadcrumb(Mage::helper('adminhtml')->__('Items Manager'), Mage::helper('adminhtml')->__('Item Manager'));
32
-
33
- return $this;
34
- }
35
-
36
- public function indexAction() {
37
- $this->_initProduct();
38
- $this->loadLayout()->_setActiveMenu('catalog/featuredproduct');
39
- $this->_addContent($this->getLayout()->createBlock('featuredproducts/adminhtml_edit'));
40
- $this->renderLayout();
41
- }
42
-
43
- public function manageAction() {
44
- $this->_initProduct();
45
- $this->loadLayout()->_setActiveMenu('catalog/featuredproduct');
46
- $this->_addContent($this->getLayout()->createBlock('featuredproducts/adminhtml_edit'));
47
- $this->renderLayout();
48
- }
49
-
50
- public function gridAction()
51
- {
52
- $this->getResponse()->setBody($this->getLayout()->createBlock('featuredproducts/adminhtml_edit_grid')->toHtml());
53
- }
54
-
55
- public function editAction() {
56
- $id = $this->getRequest()->getParam('id');
57
- $model = Mage::getModel('featuredproducts/featuredproducts')->load($id);
58
-
59
- if ($model->getId() || $id == 0) {
60
- $data = Mage::getSingleton('adminhtml/session')->getFormData(true);
61
- if (!empty($data)) {
62
- $model->setData($data);
63
- }
64
-
65
- Mage::register('featuredproducts_data', $model);
66
-
67
- $this->loadLayout();
68
- $this->_setActiveMenu('featuredproducts/items');
69
-
70
- $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item Manager'), Mage::helper('adminhtml')->__('Item Manager'));
71
- $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item News'), Mage::helper('adminhtml')->__('Item News'));
72
-
73
- $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
74
-
75
- $this->_addContent($this->getLayout()->createBlock('featuredproducts/adminhtml_featuredproducts_edit'))
76
- ->_addLeft($this->getLayout()->createBlock('featuredproducts/adminhtml_featuredproducts_edit_tabs'));
77
-
78
- $this->renderLayout();
79
- } else {
80
- Mage::getSingleton('adminhtml/session')->addError(Mage::helper('featuredproducts')->__('Item does not exist'));
81
- $this->_redirect('*/*/');
82
- }
83
- }
84
-
85
- public function newAction() {
86
- $this->_forward('edit');
87
- }
88
-
89
- public function saveAction() {
90
- $data = $this->getRequest()->getPost();
91
- $collection = Mage::getModel('catalog/product')->getCollection();
92
- $storeId = $this->getRequest()->getParam('store', 0);
93
-
94
-
95
- parse_str($data['featured_products'], $featured_products);
96
-
97
-
98
- $collection->addIdFilter(array_keys($featured_products));
99
-
100
- try {
101
- foreach($collection->getItems() as $product)
102
- {
103
-
104
- $product->setData('magebuzz_featured_product',$featured_products[$product->getEntityId()]);
105
- $product->setStoreId($storeId);
106
- $product->save();
107
- }
108
-
109
- $this->_getSession()->addSuccess($this->__('Featured product was successfully saved.'));
110
- $this->_redirect('*/*/index', array('store'=> $this->getRequest()->getParam('store')));
111
-
112
- } catch (Exception $e){
113
- $this->_getSession()->addError($e->getMessage());
114
- $this->_redirect('*/*/index', array('store'=> $this->getRequest()->getParam('store')));
115
- }
116
- }
117
-
118
- protected function _validateSecretKey()
119
- {
120
- return true;
121
- }
122
-
123
- protected function _isAllowed()
124
- {
125
- return Mage::getSingleton('admin/session')->isAllowed('admin/catalog/featuredproduct');
126
- }
127
-
128
- public function deleteAction() {
129
- if( $this->getRequest()->getParam('id') > 0 ) {
130
- try {
131
- $model = Mage::getModel('featuredproducts/featuredproducts');
132
-
133
- $model->setId($this->getRequest()->getParam('id'))
134
- ->delete();
135
-
136
- Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully deleted'));
137
- $this->_redirect('*/*/');
138
- } catch (Exception $e) {
139
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
140
- $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
141
- }
142
- }
143
- $this->_redirect('*/*/');
144
- }
145
-
146
- public function massDeleteAction() {
147
- $featuredproductsIds = $this->getRequest()->getParam('featuredproducts');
148
- if(!is_array($featuredproductsIds)) {
149
- Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Please select item(s)'));
150
- } else {
151
- try {
152
- foreach ($featuredproductsIds as $featuredproductsId) {
153
- $featuredproducts = Mage::getModel('featuredproducts/featuredproducts')->load($featuredproductsId);
154
- $featuredproducts->delete();
155
- }
156
- Mage::getSingleton('adminhtml/session')->addSuccess(
157
- Mage::helper('adminhtml')->__(
158
- 'Total of %d record(s) were successfully deleted', count($featuredproductsIds)
159
- )
160
- );
161
- } catch (Exception $e) {
162
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
163
- }
164
- }
165
- $this->_redirect('*/*/index');
166
- }
167
-
168
- public function massStatusAction()
169
- {
170
- $featuredproductsIds = $this->getRequest()->getParam('featuredproducts');
171
- if(!is_array($featuredproductsIds)) {
172
- Mage::getSingleton('adminhtml/session')->addError($this->__('Please select item(s)'));
173
- } else {
174
- try {
175
- foreach ($featuredproductsIds as $featuredproductsId) {
176
- $featuredproducts = Mage::getSingleton('featuredproducts/featuredproducts')
177
- ->load($featuredproductsId)
178
- ->setStatus($this->getRequest()->getParam('status'))
179
- ->setIsMassupdate(true)
180
- ->save();
181
- }
182
- $this->_getSession()->addSuccess(
183
- $this->__('Total of %d record(s) were successfully updated', count($featuredproductsIds))
184
- );
185
- } catch (Exception $e) {
186
- $this->_getSession()->addError($e->getMessage());
187
- }
188
- }
189
- $this->_redirect('*/*/index');
190
- }
191
-
192
- public function exportCsvAction()
193
- {
194
- $fileName = 'featuredproducts.csv';
195
- $content = $this->getLayout()->createBlock('featuredproducts/adminhtml_featuredproducts_grid')
196
- ->getCsv();
197
-
198
- $this->_sendUploadResponse($fileName, $content);
199
- }
200
-
201
- public function exportXmlAction()
202
- {
203
- $fileName = 'featuredproducts.xml';
204
- $content = $this->getLayout()->createBlock('featuredproducts/adminhtml_featuredproducts_grid')
205
- ->getXml();
206
-
207
- $this->_sendUploadResponse($fileName, $content);
208
- }
209
-
210
- protected function _sendUploadResponse($fileName, $content, $contentType='application/octet-stream')
211
- {
212
- $response = $this->getResponse();
213
- $response->setHeader('HTTP/1.1 200 OK','');
214
- $response->setHeader('Pragma', 'public', true);
215
- $response->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true);
216
- $response->setHeader('Content-Disposition', 'attachment; filename='.$fileName);
217
- $response->setHeader('Last-Modified', date('r'));
218
- $response->setHeader('Accept-Ranges', 'bytes');
219
- $response->setHeader('Content-Length', strlen($content));
220
- $response->setHeader('Content-type', $contentType);
221
- $response->setBody($content);
222
- $response->sendResponse();
223
- die;
224
- }
225
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/controllers/IndexController.php DELETED
@@ -1,56 +0,0 @@
1
- <?php
2
- class Magebuzz_Featuredproducts_IndexController extends Mage_Core_Controller_Front_Action
3
- {
4
- public function indexAction()
5
- {
6
-
7
- /*
8
- * Load an object by id
9
- * Request looking like:
10
- * http://site.com/featuredproducts?id=15
11
- * or
12
- * http://site.com/featuredproducts/id/15
13
- */
14
- /*
15
- $featuredproducts_id = $this->getRequest()->getParam('id');
16
-
17
- if($featuredproducts_id != null && $featuredproducts_id != '') {
18
- $featuredproducts = Mage::getModel('featuredproducts/featuredproducts')->load($featuredproducts_id)->getData();
19
- } else {
20
- $featuredproducts = null;
21
- }
22
- */
23
-
24
- /*
25
- * If no param we load a the last created item
26
- */
27
- /*
28
- if($featuredproducts == null) {
29
- $resource = Mage::getSingleton('core/resource');
30
- $read= $resource->getConnection('core_read');
31
- $featuredproductsTable = $resource->getTableName('featuredproducts');
32
-
33
- $select = $read->select()
34
- ->from($featuredproductsTable,array('featuredproducts_id','title','content','status'))
35
- ->where('status',1)
36
- ->order('created_time DESC') ;
37
-
38
- $featuredproducts = $read->fetchRow($select);
39
- }
40
- Mage::register('featuredproducts', $featuredproducts);
41
- */
42
- $template = Mage::getConfig()->getNode('global/page/layouts/'.Mage::getStoreConfig("featuredproducts/general/layout").'/template');
43
-
44
- $this->loadLayout();
45
-
46
- $this->getLayout()->getBlock('root')->setTemplate($template);
47
-
48
- $breadcrumbsBlock = $this->getLayout()->getBlock('breadcrumbs');
49
- $breadcrumbsBlock->addCrumb('featured_products', array(
50
- 'label'=>Mage::helper('featuredproducts')->__(Mage::helper('featuredproducts')->getPageLabel()),
51
- 'title'=>Mage::helper('featuredproducts')->__(Mage::helper('featuredproducts')->getPageLabel()),
52
- ));
53
-
54
- $this->renderLayout();
55
- }
56
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/etc/adminhtml.xml DELETED
@@ -1,39 +0,0 @@
1
- <?xml version="1.0"?>
2
- <config>
3
- <menu>
4
- <featuredproducts module="featuredproducts">
5
- <title>Featured Products</title>
6
- <sort_order>71</sort_order>
7
- <children>
8
- <items module="featuredproducts">
9
- <title>Manage Featured Products</title>
10
- <sort_order>0</sort_order>
11
- <action>featuredproducts/adminhtml_featuredproducts/manage</action>
12
- </items>
13
- </children>
14
- </featuredproducts>
15
- </menu>
16
- <acl>
17
- <resources>
18
- <all>
19
- <title>Allow Everything</title>
20
- </all>
21
- <admin>
22
- <children>
23
- <system>
24
- <children>
25
- <config>
26
- <children>
27
- <featuredproducts translate="title">
28
- <title>Featured Products Setting</title>
29
- <sort_order>50</sort_order>
30
- </featuredproducts>
31
- </children>
32
- </config>
33
- </children>
34
- </system>
35
- </children>
36
- </admin>
37
- </resources>
38
- </acl>
39
- </config>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/etc/config.xml DELETED
@@ -1,118 +0,0 @@
1
- <?xml version="1.0"?>
2
- <config>
3
- <modules>
4
- <Magebuzz_Featuredproducts>
5
- <version>0.1.0</version>
6
- </Magebuzz_Featuredproducts>
7
- </modules>
8
- <frontend>
9
- <routers>
10
- <featuredproducts>
11
- <use>standard</use>
12
- <args>
13
- <module>Magebuzz_Featuredproducts</module>
14
- <frontName>featuredproducts</frontName>
15
- </args>
16
- </featuredproducts>
17
- </routers>
18
- <layout>
19
- <updates>
20
- <featuredproducts>
21
- <file>featuredproducts.xml</file>
22
- </featuredproducts>
23
- </updates>
24
- </layout>
25
- </frontend>
26
- <admin>
27
- <routers>
28
- <featuredproducts>
29
- <use>admin</use>
30
- <args>
31
- <module>Magebuzz_Featuredproducts</module>
32
- <frontName>featuredproducts</frontName>
33
- </args>
34
- </featuredproducts>
35
- <adminhtml>
36
- <args>
37
- <modules>
38
- <featuredproducts before="Mage_Adminhtml">Magebuzz_Featuredproducts_Adminhtml</featuredproducts>
39
- </modules>
40
- </args>
41
- </adminhtml>
42
- </routers>
43
- </admin>
44
- <adminhtml>
45
- <!-- <layout>
46
- <updates>
47
- <featuredproducts>
48
- <file>featuredproducts.xml</file>
49
- </featuredproducts>
50
- </updates>
51
- </layout> -->
52
- </adminhtml>
53
- <global>
54
- <models>
55
- <featuredproducts>
56
- <class>Magebuzz_Featuredproducts_Model</class>
57
- <resourceModel>featuredproducts_mysql4</resourceModel>
58
- </featuredproducts>
59
- <featuredproducts_mysql4>
60
- <class>Magebuzz_Featuredproducts_Model_Mysql4</class>
61
- <entities>
62
- <featuredproducts>
63
- <table>featuredproducts</table>
64
- </featuredproducts>
65
- </entities>
66
- </featuredproducts_mysql4>
67
- </models>
68
- <resources>
69
- <featuredproducts_setup>
70
- <setup>
71
- <module>Magebuzz_Featuredproducts</module>
72
- <class>Mage_Eav_Model_Entity_Setup</class>
73
- </setup>
74
- <connection>
75
- <use>core_setup</use>
76
- </connection>
77
- </featuredproducts_setup>
78
- <featuredproducts_write>
79
- <connection>
80
- <use>core_write</use>
81
- </connection>
82
- </featuredproducts_write>
83
- <featuredproducts_read>
84
- <connection>
85
- <use>core_read</use>
86
- </connection>
87
- </featuredproducts_read>
88
- </resources>
89
- <blocks>
90
- <featuredproducts>
91
- <class>Magebuzz_Featuredproducts_Block</class>
92
- </featuredproducts>
93
- </blocks>
94
- <helpers>
95
- <featuredproducts>
96
- <class>Magebuzz_Featuredproducts_Helper</class>
97
- </featuredproducts>
98
- </helpers>
99
- </global>
100
-
101
- <default>
102
- <featuredproducts>
103
- <general>
104
- <title>Featured Products</title>
105
- <product_sort_by>random</product_sort_by>
106
- <number_of_items>5</number_of_items>
107
- <layout>two_columns_right</layout>
108
- <enable_module>1</enable_module>
109
- <display_on_sidebar>1</display_on_sidebar>
110
- <position_of_sidebar>0</position_of_sidebar>
111
- <filter_by_category>0</filter_by_category>
112
- <number_of_products_to_show>5</number_of_products_to_show>
113
- <number_of_products_per_row>5</number_of_products_per_row>
114
- </general>
115
- </featuredproducts>
116
- </default>
117
-
118
- </config>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/etc/system.xml DELETED
@@ -1,135 +0,0 @@
1
- <?xml version="1.0"?>
2
- <config>
3
-
4
- <tabs>
5
- <magebuzz module="featuredproducts">
6
- <label>Magebuzz add-ons</label>
7
- <sort_order>110</sort_order>
8
- </magebuzz>
9
- </tabs>
10
-
11
- <sections>
12
- <featuredproducts translate="label" module="featuredproducts">
13
- <class>separator-top</class>
14
- <label>Featured Products</label>
15
- <tab>magebuzz</tab>
16
- <sort_order>10</sort_order>
17
- <show_in_default>1</show_in_default>
18
- <show_in_website>1</show_in_website>
19
- <show_in_store>1</show_in_store>
20
- <groups>
21
- <general translate="label">
22
- <label>General</label>
23
- <frontend_type>text</frontend_type>
24
- <sort_order>1</sort_order>
25
- <show_in_default>1</show_in_default>
26
- <show_in_website>1</show_in_website>
27
- <show_in_store>1</show_in_store>
28
- <fields>
29
- <enable_module translate="label comment">
30
- <label>Enable Module</label>
31
- <frontend_type>select</frontend_type>
32
- <source_model>adminhtml/system_config_source_yesno</source_model>
33
- <sort_order>0</sort_order>
34
- <show_in_default>1</show_in_default>
35
- <show_in_website>1</show_in_website>
36
- <show_in_store>1</show_in_store>
37
- </enable_module>
38
-
39
- <title translate="label comment">
40
- <label>Title</label>
41
- <frontend_type>text</frontend_type>
42
- <sort_order>1</sort_order>
43
- <show_in_default>1</show_in_default>
44
- <show_in_website>1</show_in_website>
45
- <show_in_store>1</show_in_store>
46
- </title>
47
-
48
- <display_on_sidebar translate="label comment">
49
- <label>Display On Sidebar</label>
50
- <frontend_type>select</frontend_type>
51
- <source_model>adminhtml/system_config_source_yesno</source_model>
52
- <sort_order>2</sort_order>
53
- <show_in_default>1</show_in_default>
54
- <show_in_website>1</show_in_website>
55
- <show_in_store>1</show_in_store>
56
- </display_on_sidebar>
57
-
58
- <position_of_sidebar translate="label comment">
59
- <label>Position of sidebar</label>
60
- <comment>Select which side to display </comment>
61
- <frontend_type>select</frontend_type>
62
- <source_model>featuredproducts/system_config_source_leftright</source_model>
63
- <sort_order>3</sort_order>
64
- <show_in_default>1</show_in_default>
65
- <show_in_website>1</show_in_website>
66
- <show_in_store>1</show_in_store>
67
- </position_of_sidebar>
68
-
69
- <filter_by_category translate="label comment">
70
- <label>Filter by category</label>
71
- <frontend_type>select</frontend_type>
72
- <source_model>adminhtml/system_config_source_yesno</source_model>
73
- <sort_order>4</sort_order>
74
- <show_in_default>1</show_in_default>
75
- <show_in_website>1</show_in_website>
76
- <show_in_store>1</show_in_store>
77
- </filter_by_category>
78
-
79
- <number_of_products_to_show translate="label comment">
80
- <label>Number of product to show</label>
81
- <comment>On both main site, category site or sidebar</comment>
82
- <frontend_type>text</frontend_type>
83
- <sort_order>5</sort_order>
84
- <show_in_default>1</show_in_default>
85
- <show_in_website>1</show_in_website>
86
- <show_in_store>1</show_in_store>
87
- </number_of_products_to_show>
88
-
89
- <layout translate="label">
90
- <label>Layout</label>
91
- <frontend_type>select</frontend_type>
92
- <source_model>page/source_layout</source_model>
93
- <sort_order>6</sort_order>
94
- <show_in_default>1</show_in_default>
95
- <show_in_website>0</show_in_website>
96
- <show_in_store>0</show_in_store>
97
- </layout>
98
-
99
- <product_sort_by translate="label">
100
- <label>Sort By in Main Block</label>
101
- <comment>Main block is used in content section of the site</comment>
102
- <frontend_type>select</frontend_type>
103
- <source_model>featuredproducts/system_config_source_sort</source_model>
104
- <sort_order>7</sort_order>
105
- <show_in_default>1</show_in_default>
106
- <show_in_website>0</show_in_website>
107
- <show_in_store>0</show_in_store>
108
- </product_sort_by>
109
-
110
- <number_of_items translate="label comment">
111
- <label>Number Of Items in Main Block</label>
112
- <comment>How many featured products will be showed in main block?</comment>
113
- <frontend_type>text</frontend_type>
114
- <sort_order>8</sort_order>
115
- <show_in_default>1</show_in_default>
116
- <show_in_website>1</show_in_website>
117
- <show_in_store>1</show_in_store>
118
- </number_of_items>
119
-
120
- <number_of_products_per_row translate="label comment">
121
- <label>Products Per Row</label>
122
- <comment>How many featured products will be showed in a row in grid mode?</comment>
123
- <frontend_type>text</frontend_type>
124
- <sort_order>9</sort_order>
125
- <show_in_default>1</show_in_default>
126
- <show_in_website>1</show_in_website>
127
- <show_in_store>1</show_in_store>
128
- </number_of_products_per_row>
129
-
130
- </fields>
131
- </general>
132
- </groups>
133
- </featuredproducts>
134
- </sections>
135
- </config>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Featuredproducts/sql/featuredproducts_setup/mysql4-install-0.1.0.php DELETED
@@ -1,34 +0,0 @@
1
- <?php
2
-
3
- $installer = $this;
4
-
5
- $installer->startSetup();
6
-
7
- $installer->addAttribute('catalog_product', 'magebuzz_featured_product', array(
8
- 'group' => 'General',
9
- 'type' => 'int',
10
- 'backend' => '',
11
- 'frontend' => '',
12
- 'label' => 'Featured product',
13
- 'input' => 'boolean',
14
- 'class' => '',
15
- 'source' => '',
16
- 'is_global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
17
- 'visible' => true,
18
- 'required' => false,
19
- 'user_defined' => false,
20
- 'default' => '0',
21
- 'searchable' => false,
22
- 'filterable' => false,
23
- 'comparable' => false,
24
- 'visible_on_front' => false,
25
- 'unique' => false,
26
- 'apply_to' => 'simple,configurable,virtual,bundle,downloadable',
27
- 'is_configurable' => false,
28
- 'used_in_product_listing'=> '1'
29
- ));
30
-
31
-
32
- $installer->updateAttribute('catalog_product', 'magebuzz_featured_product', 'used_in_product_listing', '1');
33
-
34
- $installer->endSetup();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Info/Block/System/Config/Extensions.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Magebuzz_Info_Block_System_Config_Extensions extends Mage_Adminhtml_Block_System_Config_Form_Fieldset {
3
+ public function render(Varien_Data_Form_Element_Abstract $element) {
4
+ $html = $this->_getHeaderHtml($element);
5
+
6
+ $modules = array_keys((array)Mage::getConfig()->getNode('modules')->children());
7
+ sort($modules);
8
+
9
+ foreach ($modules as $moduleName) {
10
+ if (strstr($moduleName, 'Magebuzz_') === false) {
11
+ continue;
12
+ }
13
+ if ($moduleName == 'Magebuzz_Info') {
14
+ continue;
15
+ }
16
+ $html.= $this->_getFieldHtml($element, $moduleName);
17
+ }
18
+
19
+ $html .= $this->_getFooterHtml($element);
20
+ return $html;
21
+ }
22
+
23
+ protected function _getFieldHtml($fieldset, $moduleCode) {
24
+ $currentVer = Mage::getConfig()->getModuleConfig($moduleCode)->version;
25
+
26
+ if (!$currentVer) {
27
+ return '';
28
+ }
29
+ $moduleName = substr($moduleCode, strpos($moduleCode, '_') + 1);
30
+ $allExtensions = unserialize(Mage::app()->loadCache('mb_extensions'));
31
+ $status = '<a target="_blank"><img src="'.$this->getSkinUrl('images/magebuzz/ok.gif').'" title="'.$this->__("Installed").'"/></a>';
32
+
33
+ if ($allExtensions && isset($allExtensions[$moduleCode])){
34
+ $ext = $allExtensions[$moduleCode];
35
+ $url = $ext['url'];
36
+ $name = $ext['name'];
37
+ $lastVer = $ext['version'];
38
+
39
+ $moduleName = '<a href="'.$url.'" target="_blank" title="'.$name.'">'.$name."</a>";
40
+ if ($this->_convertVersion($currentVer) < $this->_convertVersion($lastVer)) {
41
+ $status = '<a href="'.$url.'" target="_blank"><img src="'.$this->getSkinUrl('images/magebuzz/update.gif').'" alt="'.$this->__("Update available").'" title="'.$this->__("Update available").'"/></a>';
42
+ }
43
+ }
44
+
45
+ $moduleName = $status . ' ' . $moduleName;
46
+
47
+ $field = $fieldset->addField($moduleCode, 'label', array(
48
+ 'name' => 'dummy',
49
+ 'label' => $moduleName,
50
+ 'value' => $currentVer,
51
+ ))->setRenderer($this->_getFieldRenderer());
52
+
53
+ return $field->toHtml();
54
+ }
55
+
56
+ protected function _getFieldRenderer() {
57
+ if (empty($this->_fieldRenderer)) {
58
+ $this->_fieldRenderer = Mage::getBlockSingleton('adminhtml/system_config_form_field');
59
+ }
60
+ return $this->_fieldRenderer;
61
+ }
62
+
63
+ protected function _convertVersion($v) {
64
+ $digits = @explode(".", $v);
65
+ $version = 0;
66
+ if (is_array($digits)){
67
+ foreach ($digits as $k=>$v){
68
+ $version += ($v * pow(10, max(0, (3-$k))));
69
+ }
70
+
71
+ }
72
+ return $version;
73
+ }
74
+
75
+ }
app/code/community/Magebuzz/Info/Block/System/Config/General.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Magebuzz_Info_Block_System_Config_General extends Mage_Adminhtml_Block_System_Config_Form_Fieldset {
3
+ public function render(Varien_Data_Form_Element_Abstract $element) {
4
+ $html = $this->_getHeaderHtml($element);
5
+
6
+ $html .= $this->_getInfo();
7
+
8
+ $html .= $this->_getFooterHtml($element);
9
+ return $html;
10
+ }
11
+
12
+ protected function _getInfo() {
13
+ $html = '<div class="support-info">';
14
+ $html .= '<h3>Support Policy</h3>';
15
+ $html .= '<p>We provide 6 months free support for all of our extensions and templates. We are not responsible for any bug or issue caused of your changes to our products. To report a bug, you can easily go to <a href="http://www.magebuzz.com/support/" title="Magebuzz Support" target="_blank">our Support Page</a>, email, call or submit a ticket.</p>';
16
+ $html .= '<h3>Read the blog</h3><p>The <a href="http://www.magebuzz.com/blog/" target="_blank">Magebuzz Blog</a> is updated regularly with Magento tutorials, Magebuzz new products, updates, promotions... Visit <a href="http://www.magebuzz.com/blog/" target="_blank">Magebuzz Blog</a> recently to be kept updated.</p>';
17
+ $html .= '<h3>Follow Us</h3><div class="magebuzz-follow"><ul><li style="float:left" class="facebook"><a href="http://www.facebook.com/MageBuzz" title="Facebook" target="_blank"><img src="' . $this->getSkinUrl('images/magebuzz/facebook.png') . '" alt="Facebook"/></a></li><li style="float:left" class="twitter"><a href="https://twitter.com/MageBuzz" title="Twitter" target="_blank"><img src="' . $this->getSkinUrl('images/magebuzz/twitter.png') . '" alt="Twitter"/></a></li></ul></div>';
18
+ $html .= '</div>';
19
+ return $html;
20
+ }
21
+ }
app/code/community/Magebuzz/Info/Helper/Data.php ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ <?php
2
+ class Magebuzz_Info_Helper_Data extends Mage_Core_Helper_Abstract {
3
+
4
+ }
app/code/community/Magebuzz/Info/Model/Feed.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Magebuzz_Info_Model_Feed extends Mage_AdminNotification_Model_Feed {
3
+ const URL_NEWS = 'http://www.magebuzz.com/feed_news.xml';
4
+
5
+ public function _construct() {
6
+ parent::_construct();
7
+ $this->_init('info/feed');
8
+ }
9
+
10
+ public function checkUpdate() {
11
+ if (!extension_loaded('curl')) {
12
+ return $this;
13
+ }
14
+ if (!Mage::getStoreConfig('info/notification/enable')) {
15
+ return $this;
16
+ }
17
+ $feedData = array();
18
+ $feedXml = $this->getFeedData();
19
+
20
+ if ($feedXml && $feedXml->channel && $feedXml->channel->item) {
21
+ foreach ($feedXml->channel->item as $item) {
22
+ $date = $this->getDate((string)$item->pubDate);
23
+ $feedData[] = array(
24
+ 'severity' => 3,
25
+ 'date_added' => $this->getDate($date),
26
+ 'title' => (string)$item->title,
27
+ 'description' => (string)$item->description,
28
+ 'url' => (string)$item->link,
29
+ );
30
+ }
31
+ if ($feedData) {
32
+ Mage::getModel('adminnotification/inbox')->parse(array_reverse($feedData));
33
+ }
34
+ }
35
+ $this->setLastUpdate();
36
+ }
37
+
38
+ public function getFeedUrl() {
39
+ if (is_null($this->_feedUrl)) {
40
+ $this->_feedUrl = self::URL_NEWS;
41
+ }
42
+ //$query = '?s=' . urlencode(Mage::getStoreConfig('web/unsecure/base_url'));
43
+ return $this->_feedUrl;
44
+ }
45
+ }
app/code/community/Magebuzz/{Productslider → Info}/etc/adminhtml.xml RENAMED
@@ -11,10 +11,9 @@
11
  <children>
12
  <config>
13
  <children>
14
- <productslider translate="title">
15
- <title>Productslider Permission Setting</title>
16
- <sort_order>50</sort_order>
17
- </productslider>
18
  </children>
19
  </config>
20
  </children>
@@ -22,5 +21,5 @@
22
  </children>
23
  </admin>
24
  </resources>
25
- </acl>
26
  </config>
11
  <children>
12
  <config>
13
  <children>
14
+ <info>
15
+ <title>Magebuzz Info</title>
16
+ </info>
 
17
  </children>
18
  </config>
19
  </children>
21
  </children>
22
  </admin>
23
  </resources>
24
+ </acl>
25
  </config>
app/code/community/Magebuzz/Info/etc/config.xml ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Magebuzz_Info>
5
+ <version>0.1.0</version>
6
+ </Magebuzz_Info>
7
+ </modules>
8
+ <admin>
9
+ <routers>
10
+ <info>
11
+ <use>admin</use>
12
+ <args>
13
+ <module>Magebuzz_Info</module>
14
+ <frontName>info</frontName>
15
+ </args>
16
+ </info>
17
+ </routers>
18
+ </admin>
19
+ <adminhtml>
20
+ <events>
21
+ <controller_action_predispatch>
22
+ <observers>
23
+ <magebuzz_info_feed>
24
+ <type>singleton</type>
25
+ <class>info/feed</class>
26
+ <method>checkUpdate</method>
27
+ </magebuzz_info_feed>
28
+ </observers>
29
+ </controller_action_predispatch>
30
+ </events>
31
+ </adminhtml>
32
+ <global>
33
+ <models>
34
+ <info>
35
+ <class>Magebuzz_Info_Model</class>
36
+ <resourceModel>info_mysql4</resourceModel>
37
+ </info>
38
+ <info_mysql4>
39
+ <class>Magebuzz_Info_Model_Mysql4</class>
40
+ <entities>
41
+ <info>
42
+ <table>info</table>
43
+ </info>
44
+ </entities>
45
+ </info_mysql4>
46
+ </models>
47
+ <resources>
48
+ <info_setup>
49
+ <setup>
50
+ <module>Magebuzz_Info</module>
51
+ </setup>
52
+ <connection>
53
+ <use>core_setup</use>
54
+ </connection>
55
+ </info_setup>
56
+ <info_write>
57
+ <connection>
58
+ <use>core_write</use>
59
+ </connection>
60
+ </info_write>
61
+ <info_read>
62
+ <connection>
63
+ <use>core_read</use>
64
+ </connection>
65
+ </info_read>
66
+ </resources>
67
+ <blocks>
68
+ <info>
69
+ <class>Magebuzz_Info_Block</class>
70
+ </info>
71
+ </blocks>
72
+ <helpers>
73
+ <info>
74
+ <class>Magebuzz_Info_Helper</class>
75
+ </info>
76
+ </helpers>
77
+ </global>
78
+ <default>
79
+ <info>
80
+ <notification>
81
+ <enable>1</enable>
82
+ </notification>
83
+ </info>
84
+ </default>
85
+ </config>
app/code/community/Magebuzz/Info/etc/system.xml ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <tabs>
4
+ <magebuzz translate="label">
5
+ <label>MageBuzz Add-ons</label>
6
+ <sort_order>400</sort_order>
7
+ </magebuzz>
8
+ </tabs>
9
+ <sections>
10
+ <info translate="label" module="info">
11
+ <class>separator-top</class>
12
+ <label>Info</label>
13
+ <tab>magebuzz</tab>
14
+ <frontend_type>text</frontend_type>
15
+ <sort_order>999</sort_order>
16
+ <show_in_default>1</show_in_default>
17
+ <show_in_website>1</show_in_website>
18
+ <show_in_store>0</show_in_store>
19
+ <groups>
20
+ <general translate="label">
21
+ <label>Info</label>
22
+ <frontend_type>text</frontend_type>
23
+ <frontend_model>info/system_config_general</frontend_model>
24
+ <sort_order>1</sort_order>
25
+ <show_in_default>1</show_in_default>
26
+ <show_in_website>1</show_in_website>
27
+ <show_in_store>0</show_in_store>
28
+ </general>
29
+ <installed_extensions translate="label">
30
+ <label>Installed Magebuzz Extensions</label>
31
+ <frontend_type>text</frontend_type>
32
+ <frontend_model>info/system_config_extensions</frontend_model>
33
+ <sort_order>2</sort_order>
34
+ <show_in_default>1</show_in_default>
35
+ <show_in_website>1</show_in_website>
36
+ <show_in_store>0</show_in_store>
37
+ </installed_extensions>
38
+ <notification translate="label">
39
+ <label>Notification</label>
40
+ <frontend_type>text</frontend_type>
41
+ <comment><![CDATA[<p style="color:#EA7601">Select Yes to receive notification about new extensions, templates, updates or promotions and discounts from Magebuzz Store.</p>]]></comment>
42
+ <sort_order>3</sort_order>
43
+ <show_in_default>1</show_in_default>
44
+ <show_in_website>1</show_in_website>
45
+ <show_in_store>0</show_in_store>
46
+ <fields>
47
+ <enable>
48
+ <label>Receive Notification about new product, update and promotions</label>
49
+ <sort_order>1</sort_order>
50
+ <show_in_default>1</show_in_default>
51
+ <show_in_website>1</show_in_website>
52
+ <show_in_store>0</show_in_store>
53
+ <frontend_type>select</frontend_type>
54
+ <source_model>adminhtml/system_config_source_yesno</source_model>
55
+ </enable>
56
+ </fields>
57
+ </notification>
58
+ </groups>
59
+ </info>
60
+ </sections>
61
+ </config>
app/code/community/Magebuzz/Productslider/Block/Adminhtml/Productslider.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
- class Magebuzz_Productslider_Block_Adminhtml_Productslider extends Mage_Adminhtml_Block_Widget_Grid_Container
3
- {
4
- public function __construct()
5
- {
6
- $this->_controller = 'adminhtml_productslider';
7
- $this->_blockGroup = 'productslider';
8
- $this->_headerText = Mage::helper('productslider')->__('Item Manager');
9
- $this->_addButtonLabel = Mage::helper('productslider')->__('Add Item');
10
- parent::__construct();
11
- }
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Block/Adminhtml/Productslider/Edit.php DELETED
@@ -1,45 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Productslider_Block_Adminhtml_Productslider_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
4
- {
5
- public function __construct()
6
- {
7
- parent::__construct();
8
-
9
- $this->_objectId = 'id';
10
- $this->_blockGroup = 'productslider';
11
- $this->_controller = 'adminhtml_productslider';
12
-
13
- $this->_updateButton('save', 'label', Mage::helper('productslider')->__('Save Item'));
14
- $this->_updateButton('delete', 'label', Mage::helper('productslider')->__('Delete Item'));
15
-
16
- $this->_addButton('saveandcontinue', array(
17
- 'label' => Mage::helper('adminhtml')->__('Save And Continue Edit'),
18
- 'onclick' => 'saveAndContinueEdit()',
19
- 'class' => 'save',
20
- ), -100);
21
-
22
- $this->_formScripts[] = "
23
- function toggleEditor() {
24
- if (tinyMCE.getInstanceById('productslider_content') == null) {
25
- tinyMCE.execCommand('mceAddControl', false, 'productslider_content');
26
- } else {
27
- tinyMCE.execCommand('mceRemoveControl', false, 'productslider_content');
28
- }
29
- }
30
-
31
- function saveAndContinueEdit(){
32
- editForm.submit($('edit_form').action+'back/edit/');
33
- }
34
- ";
35
- }
36
-
37
- public function getHeaderText()
38
- {
39
- if( Mage::registry('productslider_data') && Mage::registry('productslider_data')->getId() ) {
40
- return Mage::helper('productslider')->__("Edit Item '%s'", $this->htmlEscape(Mage::registry('productslider_data')->getTitle()));
41
- } else {
42
- return Mage::helper('productslider')->__('Add Item');
43
- }
44
- }
45
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Block/Adminhtml/Productslider/Edit/Form.php DELETED
@@ -1,19 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Productslider_Block_Adminhtml_Productslider_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
4
- {
5
- protected function _prepareForm()
6
- {
7
- $form = new Varien_Data_Form(array(
8
- 'id' => 'edit_form',
9
- 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
10
- 'method' => 'post',
11
- 'enctype' => 'multipart/form-data'
12
- )
13
- );
14
-
15
- $form->setUseContainer(true);
16
- $this->setForm($form);
17
- return parent::_prepareForm();
18
- }
19
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Block/Adminhtml/Productslider/Edit/Tab/Main.php DELETED
@@ -1,62 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Productslider_Block_Adminhtml_Productslider_Edit_Tab_Main extends Mage_Adminhtml_Block_Widget_Form
4
- {
5
-
6
- protected function _prepareForm()
7
- {
8
- $form = new Varien_Data_Form();
9
- $form->setHtmlIdPrefix('productslider_');
10
- $this->setForm($form);
11
- $fieldset = $form->addFieldset('productslider_form', array('legend'=>Mage::helper('productslider')->__('Item information')));
12
-
13
- $fieldset->addField('title', 'text', array(
14
- 'label' => Mage::helper('productslider')->__('Title'),
15
- 'class' => 'required-entry',
16
- 'required' => true,
17
- 'name' => 'title',
18
- ));
19
-
20
- $fieldset->addField('filename', 'file', array(
21
- 'label' => Mage::helper('productslider')->__('File'),
22
- 'required' => false,
23
- 'name' => 'filename',
24
- ));
25
-
26
- $fieldset->addField('status', 'select', array(
27
- 'label' => Mage::helper('productslider')->__('Status'),
28
- 'name' => 'status',
29
- 'values' => array(
30
- array(
31
- 'value' => 1,
32
- 'label' => Mage::helper('productslider')->__('Enabled'),
33
- ),
34
-
35
- array(
36
- 'value' => 2,
37
- 'label' => Mage::helper('productslider')->__('Disabled'),
38
- ),
39
- ),
40
- ));
41
-
42
-
43
-
44
- $fieldset->addField('content', 'editor', array(
45
- 'name' => 'content',
46
- 'label' => Mage::helper('productslider')->__('Content'),
47
- 'title' => Mage::helper('productslider')->__('Content'),
48
- 'style' => 'width:500px; height:300px;',
49
- 'config' => Mage::getSingleton('productslider/wysiwyg_config')->getConfig(),
50
- 'required' => true,
51
- ));
52
-
53
- if ( Mage::getSingleton('adminhtml/session')->getProductsliderData() )
54
- {
55
- $form->setValues(Mage::getSingleton('adminhtml/session')->getProductsliderData());
56
- Mage::getSingleton('adminhtml/session')->setProductsliderData(null);
57
- } elseif ( Mage::registry('productslider_data') ) {
58
- $form->setValues(Mage::registry('productslider_data')->getData());
59
- }
60
- return parent::_prepareForm();
61
- }
62
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Block/Adminhtml/Productslider/Edit/Tabs.php DELETED
@@ -1,23 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Productslider_Block_Adminhtml_Productslider_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
4
- {
5
-
6
- public function __construct()
7
- {
8
- parent::__construct();
9
- $this->setId('productslider_tabs');
10
- $this->setDestElementId('edit_form');
11
- $this->setTitle(Mage::helper('productslider')->__('Item Information'));
12
- }
13
-
14
- protected function _beforeToHtml()
15
- {
16
- $this->addTab('form_section', array(
17
- 'label' => Mage::helper('productslider')->__('Item Information'),
18
- 'title' => Mage::helper('productslider')->__('Item Information'),
19
- 'content' => $this->getLayout()->createBlock('productslider/adminhtml_productslider_edit_tab_main')->toHtml(),
20
- ));
21
- return parent::_beforeToHtml();
22
- }
23
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Block/Adminhtml/Productslider/Grid.php DELETED
@@ -1,121 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Productslider_Block_Adminhtml_Productslider_Grid extends Mage_Adminhtml_Block_Widget_Grid
4
- {
5
- public function __construct()
6
- {
7
- parent::__construct();
8
- $this->setId('productsliderGrid');
9
- $this->setUseAjax(true);
10
- $this->setDefaultSort('productslider_id');
11
- $this->setDefaultDir('ASC');
12
- $this->setSaveParametersInSession(true);
13
- }
14
-
15
- protected function _prepareCollection()
16
- {
17
- $collection = Mage::getModel('productslider/productslider')->getCollection();
18
- $this->setCollection($collection);
19
- return parent::_prepareCollection();
20
- }
21
-
22
- protected function _prepareColumns()
23
- {
24
- $this->addColumn('productslider_id', array(
25
- 'header' => Mage::helper('productslider')->__('ID'),
26
- 'align' =>'right',
27
- 'width' => '50px',
28
- 'index' => 'productslider_id',
29
- ));
30
-
31
- $this->addColumn('title', array(
32
- 'header' => Mage::helper('productslider')->__('Title'),
33
- 'align' =>'left',
34
- 'index' => 'title',
35
- ));
36
-
37
- /*
38
- $this->addColumn('content', array(
39
- 'header' => Mage::helper('productslider')->__('Item Content'),
40
- 'width' => '150px',
41
- 'index' => 'content',
42
- ));
43
- */
44
-
45
- $this->addColumn('status', array(
46
- 'header' => Mage::helper('productslider')->__('Status'),
47
- 'align' => 'left',
48
- 'width' => '80px',
49
- 'index' => 'status',
50
- 'type' => 'options',
51
- 'options' => array(
52
- 1 => 'Enabled',
53
- 2 => 'Disabled',
54
- ),
55
- ));
56
-
57
- $this->addColumn('action',
58
- array(
59
- 'header' => Mage::helper('productslider')->__('Action'),
60
- 'width' => '100',
61
- 'type' => 'action',
62
- 'getter' => 'getId',
63
- 'actions' => array(
64
- array(
65
- 'caption' => Mage::helper('productslider')->__('Edit'),
66
- 'url' => array('base'=> '*/*/edit'),
67
- 'field' => 'id'
68
- )
69
- ),
70
- 'filter' => false,
71
- 'sortable' => false,
72
- 'index' => 'stores',
73
- 'is_system' => true,
74
- ));
75
-
76
- $this->addExportType('*/*/exportCsv', Mage::helper('productslider')->__('CSV'));
77
- $this->addExportType('*/*/exportXml', Mage::helper('productslider')->__('XML'));
78
-
79
- return parent::_prepareColumns();
80
- }
81
-
82
- protected function _prepareMassaction()
83
- {
84
- $this->setMassactionIdField('productslider_id');
85
- $this->getMassactionBlock()->setFormFieldName('productslider');
86
-
87
- $this->getMassactionBlock()->addItem('delete', array(
88
- 'label' => Mage::helper('productslider')->__('Delete'),
89
- 'url' => $this->getUrl('*/*/massDelete'),
90
- 'confirm' => Mage::helper('productslider')->__('Are you sure?')
91
- ));
92
-
93
- $statuses = Mage::getSingleton('productslider/status')->getOptionArray();
94
-
95
- array_unshift($statuses, array('label'=>'', 'value'=>''));
96
- $this->getMassactionBlock()->addItem('status', array(
97
- 'label'=> Mage::helper('productslider')->__('Change status'),
98
- 'url' => $this->getUrl('*/*/massStatus', array('_current'=>true)),
99
- 'additional' => array(
100
- 'visibility' => array(
101
- 'name' => 'status',
102
- 'type' => 'select',
103
- 'class' => 'required-entry',
104
- 'label' => Mage::helper('productslider')->__('Status'),
105
- 'values' => $statuses
106
- )
107
- )
108
- ));
109
- return $this;
110
- }
111
-
112
- public function getRowUrl($row)
113
- {
114
- return $this->getUrl('*/*/edit', array('id' => $row->getId()));
115
- }
116
- public function getGridUrl()
117
- {
118
- return $this->getUrl('*/*/grid', array('_current'=> true));
119
- }
120
-
121
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Block/Catalog/Product/List/Bestseller.php DELETED
@@ -1,46 +0,0 @@
1
- <?php
2
- class Magebuzz_Productslider_Block_Catalog_Product_List_Bestseller extends Mage_Catalog_Block_Product_List
3
- {
4
- public function _prepareLayout()
5
- {
6
- return parent::_prepareLayout();
7
- }
8
- protected function _getProductCollection()
9
- {
10
- if (is_null($this->_productCollection)) {
11
- $this->_productCollection = Mage::getResourceModel('reports/product_collection')
12
- ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
13
- ->addOrderedQty()
14
- ->addMinimalPrice()
15
- ->addTaxPercents()
16
- ->addStoreFilter();
17
- Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($this->_productCollection);
18
- Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($this->_productCollection);
19
- }
20
- return $this->_productCollection;
21
- }
22
- protected function _beforeToHtml()
23
- {
24
- $toolbar = $this->getToolbarBlock();
25
- $collection = $this->_getProductCollection();
26
-
27
- $toolbar->setAvailableOrders(array(
28
- 'ordered_qty' => $this->__('Most Purchased'),
29
- 'name' => $this->__('Name'),
30
- 'price' => $this->__('Price')
31
- ))
32
- ->setDefaultOrder('ordered_qty')
33
- ->setDefaultDirection('desc');
34
-
35
- $toolbar->setCollection($collection);
36
-
37
- $this->setChild('toolbar', $toolbar);
38
- Mage::dispatchEvent('catalog_block_product_list_collection', array(
39
- 'collection'=>$this->_getProductCollection(),
40
- ));
41
-
42
- $this->_getProductCollection()->load();
43
- Mage::getModel('review/review')->appendSummary($this->_getProductCollection());
44
- return parent::_beforeToHtml();
45
- }
46
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Block/Catalog/Product/List/Mostviewed.php DELETED
@@ -1,47 +0,0 @@
1
- <?php
2
- class Magebuzz_Productslider_Block_Catalog_Product_List_Mostviewed extends Mage_Catalog_Block_Product_List
3
- {
4
- public function _prepareLayout()
5
- {
6
- return parent::_prepareLayout();
7
- }
8
- protected function _getProductCollection()
9
- {
10
- if (is_null($this->_productCollection)) {
11
- $this->_productCollection = Mage::getResourceModel('reports/product_collection')
12
- ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
13
- ->addViewsCount()
14
- ->addMinimalPrice()
15
- ->addTaxPercents()
16
- ->addStoreFilter();
17
- Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($this->_productCollection);
18
- Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($this->_productCollection);
19
- }
20
- return $this->_productCollection;
21
- }
22
- protected function _beforeToHtml()
23
- {
24
- $toolbar = $this->getToolbarBlock();
25
- $collection = $this->_getProductCollection();
26
-
27
- $toolbar
28
- ->setAvailableOrders(array(
29
- 'views_count' => $this->__('View Count'),
30
- 'name' => $this->__('Name'),
31
- 'price' => $this->__('Price')
32
- ))
33
- ->setDefaultOrder('views_count')
34
- ->setDefaultDirection('desc');
35
-
36
- $toolbar->setCollection($collection);
37
-
38
- $this->setChild('toolbar', $toolbar);
39
- Mage::dispatchEvent('catalog_block_product_list_collection', array(
40
- 'collection'=>$this->_getProductCollection(),
41
- ));
42
-
43
- $this->_getProductCollection()->load();
44
- Mage::getModel('review/review')->appendSummary($this->_getProductCollection());
45
- return parent::_beforeToHtml();
46
- }
47
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Block/Catalog/Product/List/Random.php DELETED
@@ -1,46 +0,0 @@
1
- <?php
2
- class Magebuzz_Productslider_Block_Catalog_Product_List_Random extends Mage_Catalog_Block_Product_List
3
- {
4
- public function _prepareLayout()
5
- {
6
- parent::_prepareLayout();
7
- if (!$this->getTemplate()) {
8
- $this->setTemplate('productslider/productslider.phtml');
9
- }
10
- return $this;
11
- }
12
- protected function _getProductCollection()
13
- {
14
- $this->_productCollection = Mage::getResourceModel('catalog/product_collection')
15
- ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
16
- ->addMinimalPrice()
17
- ->addTaxPercents()
18
- ->addStoreFilter();
19
- Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($this->_productCollection);
20
- Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($this->_productCollection);
21
- return $this->_productCollection;
22
- }
23
- protected function _beforeToHtml()
24
- {
25
- $toolbar = $this->getToolbarBlock();
26
- $collection = $this->_getProductCollection();
27
-
28
- $toolbar->setAvailableOrders(array(
29
- 'name' => $this->__('Name'),
30
- 'price' => $this->__('Price')
31
- ))
32
- ->setDefaultOrder('price')
33
- ->setDefaultDirection('desc');
34
-
35
- $toolbar->setCollection($collection);
36
-
37
- $this->setChild('toolbar', $toolbar);
38
- Mage::dispatchEvent('catalog_block_product_list_collection', array(
39
- 'collection'=>$this->_getProductCollection(),
40
- ));
41
-
42
- $this->_getProductCollection()->load();
43
- Mage::getModel('review/review')->appendSummary($this->_getProductCollection());
44
- return parent::_beforeToHtml();
45
- }
46
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Block/Catalog/Product/List/RecentlyAdd.php DELETED
@@ -1,68 +0,0 @@
1
- <?php
2
- class Magebuzz_Productslider_Block_Catalog_Product_List_RecentlyAdd extends Mage_Catalog_Block_Product_List
3
- {
4
- public function _prepareLayout()
5
- {
6
- parent::_prepareLayout();
7
- if (!$this->getTemplate()) {
8
- $this->setTemplate('productslider/productslider.phtml');
9
- }
10
- return $this;
11
- }
12
-
13
- protected function _getProductCollection()
14
- {
15
- $todayDate = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
16
-
17
- if (is_null($this->_productCollection)) {
18
- $this->_productCollection = Mage::getResourceModel('catalog/product_collection')
19
- ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
20
- ->addAttributeToSelect('*') //Need this so products show up correctly in product listing
21
- ->addAttributeToFilter('news_from_date', array('or'=> array(
22
- 0 => array('date' => true, 'to' => $todayDate),
23
- 1 => array('is' => new Zend_Db_Expr('null')))
24
- ), 'left')
25
- ->addAttributeToFilter('news_to_date', array('or'=> array(
26
- 0 => array('date' => true, 'from' => $todayDate),
27
- 1 => array('is' => new Zend_Db_Expr('null')))
28
- ), 'left')
29
- ->addAttributeToFilter(
30
- array(
31
- array('attribute' => 'news_from_date', 'is'=>new Zend_Db_Expr('not null')),
32
- array('attribute' => 'news_to_date', 'is'=>new Zend_Db_Expr('not null'))
33
- )
34
- )
35
- ->addAttributeToSort('news_from_date', 'desc')
36
- ->addMinimalPrice()
37
- ->addTaxPercents()
38
- ->addStoreFilter();
39
-
40
- Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($this->_productCollection);
41
- Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($this->_productCollection);
42
- }
43
- return $this->_productCollection;
44
- }
45
- protected function _beforeToHtml()
46
- {
47
- $toolbar = $this->getToolbarBlock();
48
- $collection = $this->_getProductCollection();
49
-
50
- $toolbar->setAvailableOrders(array(
51
- 'name' => $this->__('Name'),
52
- 'price' => $this->__('Price')
53
- ))
54
- ->setDefaultOrder('price')
55
- ->setDefaultDirection('desc');
56
-
57
- $toolbar->setCollection($collection);
58
-
59
- $this->setChild('toolbar', $toolbar);
60
- Mage::dispatchEvent('catalog_block_product_list_collection', array(
61
- 'collection'=>$this->_getProductCollection(),
62
- ));
63
-
64
- $this->_getProductCollection()->load();
65
- Mage::getModel('review/review')->appendSummary($this->_getProductCollection());
66
- return parent::_beforeToHtml();
67
- }
68
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Block/Position.php DELETED
@@ -1,28 +0,0 @@
1
- <?php
2
- class Magebuzz_Productslider_Block_Position extends Magebuzz_Productslider_Block_Productslider
3
- {
4
- public function _prepareLayout()
5
- {
6
- $is_homepage = false;
7
- $slider_position = Mage::getStoreConfig('productslider/slider_setting/slider_position');
8
- $current_category = Mage::registry('current_category');
9
- $in_category = $this->inCategoryPage();
10
- if($this->getUrl('') == $this->getUrl('*/*/*', array('_use_rewrite'=>true)))
11
- {
12
- $is_homepage = true;
13
- }
14
- parent::_prepareLayout();
15
- if (!$this->getTemplate() && $slider_position == 'only_home' && $is_homepage == true) {
16
- $this->setTemplate('productslider/productslider.phtml');
17
- }
18
- if (!$this->getTemplate() && $slider_position == 'only_category_page' && $in_category == 'catalog_category_view') {
19
- $this->setTemplate('productslider/productslider.phtml');
20
- }
21
- if (!$this->getTemplate() && $slider_position == 'both_home_category') {
22
- if($in_category == 'catalog_category_view' || $is_homepage == true){
23
- $this->setTemplate('productslider/productslider.phtml');
24
- }
25
- }
26
- return $this;
27
- }
28
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Block/Productslider.php DELETED
@@ -1,208 +0,0 @@
1
- <?php
2
- class Magebuzz_Productslider_Block_Productslider extends Mage_Catalog_Block_Product_Abstract
3
- {
4
- public function _prepareLayout()
5
- {
6
- return parent::_prepareLayout();
7
- }
8
-
9
- public function getProductslider()
10
- {
11
- if (!$this->hasData('productslider')) {
12
- $this->setData('productslider', Mage::registry('productslider'));
13
- }
14
- return $this->getData('productslider');
15
-
16
- }
17
- public function __construct() {
18
- $productType = $this->getProductsType();
19
- if(!$this->getProductCollection()){
20
- switch ($productType) {
21
- case 'random':
22
- $this->setProductCollection($this->getRandomProducts());
23
- $this->setPageTitle('Random Products');
24
- break;
25
- case 'bestseller':
26
- $this->setProductCollection($this->getBestsellerProducts());
27
- $this->setPageTitle('Bestseller Products');
28
- break;
29
- case 'mostviewed':
30
- $this->setProductCollection($this->getMostviewedProducts());
31
- $this->setPageTitle('Most Viewed Products');
32
- break;
33
- case 'recentlyadded':
34
- $this->setProductCollection($this->getRecentlyAdded());
35
- $this->setPageTitle('Recently Added');
36
- break;
37
- case 'special':
38
- $this->setProductCollection($this->getSpecialProducts());
39
- $this->setPageTitle('Special Products');
40
- break;
41
- default:
42
- $this->setProductCollection($this->getRandomProducts());
43
- $this->setPageTitle('Random Products');
44
- break;
45
- }
46
- }
47
- return $this;
48
- }
49
- public function getBestsellerProducts(){
50
- $_limit = $this->getNumProduct();
51
- $current_category = Mage::registry('current_category');
52
- $is_category_filter = Mage::getStoreConfig('productslider/product_setting/category_filter');
53
- $collection = Mage::getResourceModel('reports/product_collection')
54
- ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
55
- ->addOrderedQty()
56
- ->addMinimalPrice()
57
- ->addTaxPercents()
58
- ->addStoreFilter();
59
- Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
60
- Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($collection);
61
- if($current_category && $is_category_filter == '1'){
62
- $current_category_id = Mage::registry('current_category')->getId();
63
- $currentCategory = Mage::getModel('catalog/category')->load($current_category_id);
64
- $collection->addCategoryFilter($currentCategory);
65
- }
66
- $collection->setPageSize($_limit);
67
- return $collection;
68
- }
69
- public function getMostviewedProducts(){
70
- $_limit = $this->getNumProduct();
71
- $current_category = Mage::registry('current_category');
72
- $is_category_filter = Mage::getStoreConfig('productslider/product_setting/category_filter');
73
- $collection = Mage::getResourceModel('reports/product_collection')
74
- ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
75
- ->addViewsCount()
76
- ->addMinimalPrice()
77
- ->addTaxPercents()
78
- ->addStoreFilter();
79
- Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
80
- Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($collection);
81
- if($current_category && $is_category_filter == '1'){
82
- $current_category_id = Mage::registry('current_category')->getId();
83
- $currentCategory = Mage::getModel('catalog/category')->load($current_category_id);
84
- $collection->addCategoryFilter($currentCategory);
85
- }
86
- $collection->setPageSize($_limit);
87
- return $collection;
88
- }
89
- public function getRandomProducts() {
90
- $_limit = $this->getNumProduct();
91
- $current_category = Mage::registry('current_category');
92
- $is_category_filter = Mage::getStoreConfig('productslider/product_setting/category_filter');
93
- $collection = Mage::getResourceModel('catalog/product_collection')
94
- ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
95
- ->addMinimalPrice()
96
- ->addTaxPercents()
97
- ->addStoreFilter();
98
- Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
99
- Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($collection);
100
- $collection->getSelect()->order('rand()');
101
- if($current_category && $is_category_filter == '1'){
102
- $current_category_id = Mage::registry('current_category')->getId();
103
- $currentCategory = Mage::getModel('catalog/category')->load($current_category_id);
104
- $collection->addCategoryFilter($currentCategory);
105
- }
106
- $collection->setPageSize($_limit);
107
- return $collection;
108
- }
109
- public function getRecentlyAdded() {
110
- $_limit = $this->getNumProduct();
111
- $current_category = Mage::registry('current_category');
112
- $is_category_filter = Mage::getStoreConfig('productslider/product_setting/category_filter');
113
- //var_dump($is_category_filter); die();
114
- $todayDate = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
115
- $collection = Mage::getResourceModel('catalog/product_collection')
116
- ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
117
- ->addAttributeToSelect('*') //Need this so products show up correctly in product listing
118
- ->addAttributeToFilter('news_from_date', array('or'=> array(
119
- 0 => array('date' => true, 'to' => $todayDate),
120
- 1 => array('is' => new Zend_Db_Expr('null')))
121
- ), 'left')
122
- ->addAttributeToFilter('news_to_date', array('or'=> array(
123
- 0 => array('date' => true, 'from' => $todayDate),
124
- 1 => array('is' => new Zend_Db_Expr('null')))
125
- ), 'left')
126
- ->addAttributeToFilter(
127
- array(
128
- array('attribute' => 'news_from_date', 'is'=>new Zend_Db_Expr('not null')),
129
- array('attribute' => 'news_to_date', 'is'=>new Zend_Db_Expr('not null'))
130
- )
131
- )
132
- ->addAttributeToSort('news_from_date', 'desc')
133
- ->addMinimalPrice()
134
- ->addTaxPercents()
135
- ->addStoreFilter();
136
-
137
- Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
138
- Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($collection);
139
- if($current_category && $is_category_filter == '1'){
140
- $current_category_id = Mage::registry('current_category')->getId();
141
- $currentCategory = Mage::getModel('catalog/category')->load($current_category_id);
142
- $collection->addCategoryFilter($currentCategory);
143
- }
144
- $collection->setPageSize($_limit);
145
- return $collection;
146
- }
147
- public function getSpecialProducts() {
148
- $_limit = $this->getNumProduct();
149
- $current_category = Mage::registry('current_category');
150
- $is_category_filter = Mage::getStoreConfig('productslider/product_setting/category_filter');
151
- $todayDate = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
152
- $collection = Mage::getResourceModel('catalog/product_collection')
153
- ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
154
- ->addAttributeToFilter('special_from_date', array('or'=> array(
155
- 0 => array('date' => true, 'to' => $todayDate),
156
- 1 => array('is' => new Zend_Db_Expr('null')))
157
- ), 'left')
158
- ->addAttributeToFilter('special_to_date', array('or'=> array(
159
- 0 => array('date' => true, 'from' => $todayDate),
160
- 1 => array('is' => new Zend_Db_Expr('null')))
161
- ), 'left')
162
- ->addAttributeToFilter(
163
- array(
164
- array('attribute' => 'special_from_date', 'is'=>new Zend_Db_Expr('not null')),
165
- array('attribute' => 'special_to_date', 'is'=>new Zend_Db_Expr('not null'))
166
- )
167
- )
168
- ->addAttributeToSort('special_to_date','desc')
169
- ->addTaxPercents()
170
- ->addStoreFilter();
171
- Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
172
- Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($collection);
173
- if($current_category && $is_category_filter == '1'){
174
- $current_category_id = Mage::registry('current_category')->getId();
175
- $currentCategory = Mage::getModel('catalog/category')->load($current_category_id);
176
- $collection->addCategoryFilter($currentCategory);
177
- }
178
- $collection->setPageSize($_limit);
179
- return $collection;
180
- }
181
- public function inCategoryPage($check='_')
182
- {
183
- return $this->getRequest()->getRequestedRouteName().$check.
184
- $this->getRequest()->getRequestedControllerName().$check.
185
- $this->getRequest()->getRequestedActionName();
186
- }
187
- public function getProductsType(){
188
- $producttype = Mage::getStoreConfig('productslider/product_setting/type_product');
189
- return $producttype;
190
- }
191
- public function getWidthSlider() {
192
- $width_slider = (int) Mage::getStoreConfig('productslider/slider_setting/width_slider');
193
- return $width_slider;
194
- }
195
- public function getHeightSlider() {
196
- $height_slider = (int) Mage::getStoreConfig('productslider/slider_setting/height_slider');
197
- return $height_slider;
198
- }
199
- public function getSliderStyle(){
200
- return Mage::getStoreConfig('productslider/slider_setting/type_slider');
201
- }
202
- public function getNumProduct(){
203
- return (int)Mage::getStoreConfig('productslider/product_setting/num_products');
204
- }
205
- public function showDescription(){
206
- return (int)Mage::getStoreConfig('productslider/product_setting/show_description');
207
- }
208
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Helper/Data.php DELETED
@@ -1,6 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Productslider_Helper_Data extends Mage_Core_Helper_Abstract
4
- {
5
-
6
- }
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Model/Mysql4/Productslider.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Productslider_Model_Mysql4_Productslider extends Mage_Core_Model_Mysql4_Abstract
4
- {
5
- public function _construct()
6
- {
7
- // Note that the productslider_id refers to the key field in your database table.
8
- $this->_init('productslider/productslider', 'productslider_id');
9
- }
10
- }
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Model/Mysql4/Productslider/Collection.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Productslider_Model_Mysql4_Productslider_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
4
- {
5
- public function _construct()
6
- {
7
- parent::_construct();
8
- $this->_init('productslider/productslider');
9
- }
10
- }
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Model/Productslider.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Productslider_Model_Productslider extends Mage_Core_Model_Abstract
4
- {
5
- public function _construct()
6
- {
7
- parent::_construct();
8
- $this->_init('productslider/productslider');
9
- }
10
- }
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Model/Session.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Productslider_Model_Session extends Mage_Core_Model_Abstract
4
- {
5
- public function _construct()
6
- {
7
- parent::_construct();
8
- $this->_init('productslider');
9
- }
10
- }
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Model/Status.php DELETED
@@ -1,15 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Productslider_Model_Status extends Varien_Object
4
- {
5
- const STATUS_ENABLED = 1;
6
- const STATUS_DISABLED = 2;
7
-
8
- static public function getOptionArray()
9
- {
10
- return array(
11
- self::STATUS_ENABLED => Mage::helper('productslider')->__('Enabled'),
12
- self::STATUS_DISABLED => Mage::helper('productslider')->__('Disabled')
13
- );
14
- }
15
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Model/System/Config/Position.php DELETED
@@ -1,13 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Productslider_Model_System_Config_Position
4
- {
5
- public function toOptionArray()
6
- {
7
- return array(
8
- array('value' => 'only_home', 'label'=>Mage::helper('adminhtml')->__('Home')),
9
- array('value' => 'only_category_page', 'label'=>Mage::helper('adminhtml')->__('Category Page')),
10
- array('value' => 'both_home_category', 'label'=>Mage::helper('adminhtml')->__('Home page & Category page')),
11
- );
12
- }
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Model/System/Config/Styles.php DELETED
@@ -1,13 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Productslider_Model_System_Config_Styles
4
- {
5
- public function toOptionArray()
6
- {
7
- return array(
8
- array('value' => 'simple-slider', 'label'=>Mage::helper('adminhtml')->__('Simple Slider')),
9
- array('value' => 'slider-scrollbar', 'label'=>Mage::helper('adminhtml')->__('Slider With Horizontal Scrollbar')),
10
- array('value' => 'slider-lightbox', 'label'=>Mage::helper('adminhtml')->__('Slider With Lightbox')),
11
- );
12
- }
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Model/System/Config/Type.php DELETED
@@ -1,15 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Productslider_Model_System_Config_Type
4
- {
5
- public function toOptionArray()
6
- {
7
- return array(
8
- array('value' => 'random', 'label'=>Mage::helper('adminhtml')->__('Random Products')),
9
- array('value' => 'bestseller', 'label'=>Mage::helper('adminhtml')->__('Bestseller')),
10
- array('value' => 'mostviewed', 'label'=>Mage::helper('adminhtml')->__('Most Viewed')),
11
- array('value' => 'recentlyadded', 'label'=>Mage::helper('adminhtml')->__('Recently Added')),
12
- array('value' => 'special', 'label'=>Mage::helper('adminhtml')->__('Special Products')),
13
- );
14
- }
15
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/Model/Wysiwyg/Config.php DELETED
@@ -1,34 +0,0 @@
1
- <?php
2
- class Magebuzz_Productslider_Model_Wysiwyg_Config extends Mage_Cms_Model_Wysiwyg_Config
3
- {
4
- public function getConfig($data = array())
5
- {
6
- $config = new Varien_Object();
7
-
8
- $config->setData(array(
9
- 'enabled' => $this->isEnabled(),
10
- 'hidden' => $this->isHidden(),
11
- 'use_container' => false,
12
- 'add_variables' => false,
13
- 'add_widgets' => false,
14
- 'no_display' => false,
15
- 'translator' => Mage::helper('cms'),
16
- 'files_browser_window_url' => Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/cms_wysiwyg_images/index'),
17
- 'files_browser_window_width' => (int) Mage::getConfig()->getNode('adminhtml/cms/browser/window_width'),
18
- 'files_browser_window_height' => (int) Mage::getConfig()->getNode('adminhtml/cms/browser/window_height'),
19
- 'encode_directives' => true,
20
- 'directives_url' => Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/cms_wysiwyg/directive'),
21
- 'popup_css' => Mage::getBaseUrl('js').'mage/adminhtml/wysiwyg/tiny_mce/themes/advanced/skins/default/dialog.css',
22
- 'content_css' => Mage::getBaseUrl('js').'mage/adminhtml/wysiwyg/tiny_mce/themes/advanced/skins/default/content.css',
23
- 'width' => '100%',
24
- 'plugins' => array()
25
- ));
26
-
27
- $config->setData('directives_url_quoted', preg_quote($config->getData('directives_url')));
28
-
29
- if (is_array($data)) {
30
- $config->addData($data);
31
- }
32
- return $config;
33
- }
34
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/controllers/BestsellerController.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- class Magebuzz_Productslider_BestsellerController extends Mage_Core_Controller_Front_Action
3
- {
4
- public function indexAction()
5
- {
6
- $this->loadLayout();
7
- $this->renderLayout();
8
- }
9
- }
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/controllers/IndexController.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- class Magebuzz_Productslider_IndexController extends Mage_Core_Controller_Front_Action
3
- {
4
- public function indexAction()
5
- {
6
- $this->loadLayout();
7
- $this->renderLayout();
8
- }
9
- }
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/controllers/MostviewedController.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- class Magebuzz_Productslider_MostviewedController extends Mage_Core_Controller_Front_Action
3
- {
4
- public function indexAction()
5
- {
6
- $this->loadLayout();
7
- $this->renderLayout();
8
- }
9
- }
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/controllers/RandomController.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- class Magebuzz_Productslider_RandomController extends Mage_Core_Controller_Front_Action
3
- {
4
- public function indexAction()
5
- {
6
- $this->loadLayout();
7
- $this->renderLayout();
8
- }
9
- }
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/controllers/RecentlyAddController.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- class Magebuzz_Productslider_RecentlyAddController extends Mage_Core_Controller_Front_Action
3
- {
4
- public function indexAction()
5
- {
6
- $this->loadLayout();
7
- $this->renderLayout();
8
- }
9
- }
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/etc/config.xml DELETED
@@ -1,148 +0,0 @@
1
- <?xml version="1.0"?>
2
- <config>
3
- <modules>
4
- <Magebuzz_Productslider>
5
- <version>0.1.0</version>
6
- </Magebuzz_Productslider>
7
- </modules>
8
- <frontend>
9
- <secure_url>
10
- <productslider>/productslider/</productslider>
11
- </secure_url>
12
- <routers>
13
- <productslider>
14
- <use>standard</use>
15
- <args>
16
- <module>Magebuzz_Productslider</module>
17
- <frontName>productslider</frontName>
18
- </args>
19
- </productslider>
20
- </routers>
21
- <layout>
22
- <updates>
23
- <productslider>
24
- <file>productslider.xml</file>
25
- </productslider>
26
- </updates>
27
- </layout>
28
- </frontend>
29
- <admin>
30
- <routers>
31
- <productslider>
32
- <use>admin</use>
33
- <args>
34
- <module>Magebuzz_Productslider</module>
35
- <frontName>productslider</frontName>
36
- </args>
37
- </productslider>
38
- </routers>
39
- </admin>
40
- <adminhtml>
41
- <layout>
42
- <updates>
43
- <productslider>
44
- <file>productslider.xml</file>
45
- </productslider>
46
- </updates>
47
- </layout>
48
- </adminhtml>
49
- <global>
50
- <models>
51
- <productslider>
52
- <class>Magebuzz_Productslider_Model</class>
53
- <resourceModel>productslider_mysql4</resourceModel>
54
- </productslider>
55
- <productslider_mysql4>
56
- <class>Magebuzz_Productslider_Model_Mysql4</class>
57
- <entities>
58
- <productslider>
59
- <table>productslider</table>
60
- </productslider>
61
- </entities>
62
- </productslider_mysql4>
63
- </models>
64
- <resources>
65
- <productslider_setup>
66
- <setup>
67
- <module>Magebuzz_Productslider</module>
68
- </setup>
69
- <connection>
70
- <use>core_setup</use>
71
- </connection>
72
- </productslider_setup>
73
- <productslider_write>
74
- <connection>
75
- <use>core_write</use>
76
- </connection>
77
- </productslider_write>
78
- <productslider_read>
79
- <connection>
80
- <use>core_read</use>
81
- </connection>
82
- </productslider_read>
83
- </resources>
84
- <blocks>
85
- <productslider>
86
- <class>Magebuzz_Productslider_Block</class>
87
- </productslider>
88
- <!--Emplement Rewrite Block In Module-->
89
- <!--<target_module>
90
- <rewrite>
91
- <path_to>Magebuzz_Productslider_Block_Example</path_to>
92
- </rewrite>
93
- </target_module>-->
94
- </blocks>
95
- <helpers>
96
- <productslider>
97
- <class>Magebuzz_Productslider_Helper</class>
98
- </productslider>
99
- </helpers>
100
- <!--Emplement Events Used In Module-->
101
- <!--<events>
102
- <event_name>
103
- <observers>
104
- <productslider>
105
- <type>singleton</type>
106
- <class>productslider/observer</class>
107
- <method>methodName</method>
108
- </productslider>
109
- </observers>
110
- </event_name>
111
- </events>-->
112
- <template>
113
- <email>
114
- <productslider_general_email_template>
115
- <label>Title Email</label>
116
- <file>productslider_example.html</file>
117
- <type>html</type>
118
- </productslider_general_email_template>
119
- </email>
120
- </template>
121
- </global>
122
- <!--Set Default Value For Setting Options-->
123
- <default>
124
- <productslider>
125
- <slider_setting>
126
- <width_slider>685</width_slider>
127
- <height_slider>210</height_slider>
128
- <type_slider>simple-slider</type_slider>
129
- <slider_position>only_home</slider_position>
130
- </slider_setting>
131
- <product_setting>
132
- <type_product>random</type_product>
133
- <category_filter>1</category_filter>
134
- <num_products>6</num_products>
135
- <show_description>1</show_description>
136
- </product_setting>
137
- </productslider>
138
- </default>
139
- <translate>
140
- <modules>
141
- <Magebuzz_Productslider>
142
- <files>
143
- <default>Magebuzz_Productslider.csv</default>
144
- </files>
145
- </Magebuzz_Productslider>
146
- </modules>
147
- </translate>
148
- </config>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/etc/system.xml DELETED
@@ -1,113 +0,0 @@
1
- <?xml version="1.0"?>
2
- <config>
3
- <tabs>
4
- <magebuzz translate="label">
5
- <label>Magebuzz Add-ons</label>
6
- <sort_order>400</sort_order>
7
- </magebuzz>
8
- </tabs>
9
- <sections>
10
- <productslider translate="label" module="productslider">
11
- <label>Product Slider</label>
12
- <tab>magebuzz</tab>
13
- <frontend_type>text</frontend_type>
14
- <sort_order>299</sort_order>
15
- <show_in_default>1</show_in_default>
16
- <show_in_website>1</show_in_website>
17
- <show_in_store>1</show_in_store>
18
- <groups>
19
- <slider_setting translate="label">
20
- <label>Slider Setting</label>
21
- <frontend_type>text</frontend_type>
22
- <sort_order>1</sort_order>
23
- <show_in_default>1</show_in_default>
24
- <show_in_website>1</show_in_website>
25
- <show_in_store>1</show_in_store>
26
- <fields>
27
- <width_slider translate="label comment">
28
- <label>Slider Width</label>
29
- <frontend_type>text</frontend_type>
30
- <sort_order>1</sort_order>
31
- <show_in_default>1</show_in_default>
32
- <show_in_website>1</show_in_website>
33
- <show_in_store>1</show_in_store>
34
- </width_slider>
35
- <height_slider translate="label comment">
36
- <label>Slider Height</label>
37
- <frontend_type>text</frontend_type>
38
- <sort_order>2</sort_order>
39
- <show_in_default>1</show_in_default>
40
- <show_in_website>1</show_in_website>
41
- <show_in_store>1</show_in_store>
42
- </height_slider>
43
- <type_slider translate="label, comment">
44
- <label>Type of slider</label>
45
- <comment><![CDATA[Choose the style of slider]]></comment>
46
- <frontend_type>select</frontend_type>
47
- <source_model>productslider/system_config_styles</source_model>
48
- <sort_order>3</sort_order>
49
- <show_in_default>1</show_in_default>
50
- <show_in_website>1</show_in_website>
51
- <show_in_store>1</show_in_store>
52
- </type_slider>
53
- <slider_position translate="label, comment">
54
- <label>Slider Position</label>
55
- <comment><![CDATA[Choose position of slider]]></comment>
56
- <frontend_type>select</frontend_type>
57
- <source_model>productslider/system_config_position</source_model>
58
- <sort_order>5</sort_order>
59
- <show_in_default>1</show_in_default>
60
- <show_in_website>1</show_in_website>
61
- <show_in_store>1</show_in_store>
62
- </slider_position>
63
- </fields>
64
- </slider_setting>
65
- <product_setting translate="label">
66
- <label>Product Setting</label>
67
- <frontend_type>text</frontend_type>
68
- <sort_order>2</sort_order>
69
- <show_in_default>1</show_in_default>
70
- <show_in_website>1</show_in_website>
71
- <show_in_store>1</show_in_store>
72
- <fields>
73
- <type_product translate="label comment">
74
- <label>Product Type</label>
75
- <frontend_type>select</frontend_type>
76
- <source_model>productslider/system_config_type</source_model>
77
- <sort_order>1</sort_order>
78
- <show_in_default>1</show_in_default>
79
- <show_in_website>1</show_in_website>
80
- <show_in_store>1</show_in_store>
81
- </type_product>
82
- <category_filter translate="label comment">
83
- <label>Category Filter</label>
84
- <frontend_type>select</frontend_type>
85
- <source_model>adminhtml/system_config_source_yesno</source_model>
86
- <sort_order>2</sort_order>
87
- <show_in_default>1</show_in_default>
88
- <show_in_website>1</show_in_website>
89
- <show_in_store>1</show_in_store>
90
- </category_filter>
91
- <num_products translate="label, comment">
92
- <label>Number of Product Show</label>
93
- <frontend_type>text</frontend_type>
94
- <sort_order>3</sort_order>
95
- <show_in_default>1</show_in_default>
96
- <show_in_website>1</show_in_website>
97
- <show_in_store>1</show_in_store>
98
- </num_products>
99
- <show_description translate="label comment">
100
- <label>Show Product Description</label>
101
- <frontend_type>select</frontend_type>
102
- <source_model>adminhtml/system_config_source_yesno</source_model>
103
- <sort_order>4</sort_order>
104
- <show_in_default>1</show_in_default>
105
- <show_in_website>1</show_in_website>
106
- <show_in_store>1</show_in_store>
107
- </show_description>
108
- </fields>
109
- </product_setting>
110
- </groups>
111
- </productslider>
112
- </sections>
113
- </config>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Productslider/sql/productslider_setup/mysql4-install-0.1.0.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
-
3
- $installer = $this;
4
-
5
- $installer->startSetup();
6
-
7
- $installer->endSetup();
8
-
9
- ?>
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Block/Adminhtml/Testimonial.php DELETED
@@ -1,14 +0,0 @@
1
- <?php
2
- class Magebuzz_Testimonial_Block_Adminhtml_Testimonial extends Mage_Adminhtml_Block_Widget_Grid_Container {
3
-
4
-
5
- public function __construct() {
6
- $this->_controller = 'adminhtml_testimonial';
7
- $this->_blockGroup = 'testimonial';
8
- $this->_headerText = Mage::helper('testimonial')->__('Manage Testimonials');
9
- $this->_addButtonLabel = Mage::helper('testimonial')->__('Add New Testimonial');
10
- parent::__construct();
11
- }
12
-
13
-
14
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Block/Adminhtml/Testimonial/Edit.php DELETED
@@ -1,45 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Testimonial_Block_Adminhtml_Testimonial_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
4
- {
5
- public function __construct()
6
- {
7
- parent::__construct();
8
-
9
- $this->_objectId = 'id';
10
- $this->_blockGroup = 'testimonial';
11
- $this->_controller = 'adminhtml_testimonial';
12
-
13
- $this->_updateButton('save', 'label', Mage::helper('testimonial')->__('Save Testimonial'));
14
- $this->_updateButton('delete', 'label', Mage::helper('testimonial')->__('Delete Testimonial'));
15
-
16
- $this->_addButton('saveandcontinue', array(
17
- 'label' => Mage::helper('adminhtml')->__('Save And Continue Edit'),
18
- 'onclick' => 'saveAndContinueEdit()',
19
- 'class' => 'save',
20
- ), -100);
21
-
22
- $this->_formScripts[] = "
23
- function toggleEditor() {
24
- if (tinyMCE.getInstanceById('testimonial_content') == null) {
25
- tinyMCE.execCommand('mceAddControl', false, 'testimonial_content');
26
- } else {
27
- tinyMCE.execCommand('mceRemoveControl', false, 'testimonial_content');
28
- }
29
- }
30
-
31
- function saveAndContinueEdit(){
32
- editForm.submit($('edit_form').action+'back/edit/');
33
- }
34
- ";
35
- }
36
-
37
- public function getHeaderText()
38
- {
39
- if( Mage::registry('testimonial_data') && Mage::registry('testimonial_data')->getId() ) {
40
- return Mage::helper('testimonial')->__("Edit Testimonial '%s'", $this->htmlEscape(Mage::registry('testimonial_data')->getName()));
41
- } else {
42
- return Mage::helper('testimonial')->__('Add new testimonial');
43
- }
44
- }
45
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Block/Adminhtml/Testimonial/Edit/Form.php DELETED
@@ -1,19 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Testimonial_Block_Adminhtml_Testimonial_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
4
- {
5
- protected function _prepareForm()
6
- {
7
- $form = new Varien_Data_Form(array(
8
- 'id' => 'edit_form',
9
- 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
10
- 'method' => 'post',
11
- 'enctype' => 'multipart/form-data'
12
- )
13
- );
14
-
15
- $form->setUseContainer(true);
16
- $this->setForm($form);
17
- return parent::_prepareForm();
18
- }
19
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Block/Adminhtml/Testimonial/Edit/Tab/Form.php DELETED
@@ -1,114 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Testimonial_Block_Adminhtml_Testimonial_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
4
- {
5
- protected function _prepareForm()
6
- {
7
- $form = new Varien_Data_Form();
8
- $this->setForm($form);
9
- $form->setHtmlIdPrefix('testimonial_');
10
- $fieldset = $form->addFieldset('testimonial_form', array('legend'=>Mage::helper('testimonial')->__('General Information')));
11
-
12
- if ( Mage::getSingleton('adminhtml/session')->getTestimonialData() )
13
- {
14
- $data = Mage::getSingleton('adminhtml/session')->getTestimonialData();
15
- Mage::getSingleton('adminhtml/session')->setTestimonialData(null);
16
- } elseif ( Mage::registry('testimonial_data') ) {
17
- $data = Mage::registry('testimonial_data')->getData();
18
- }
19
-
20
- $fieldset->addField('name', 'text', array(
21
- 'label' => Mage::helper('testimonial')->__('Name'),
22
- 'class' => 'required-entry',
23
- 'required' => true,
24
- 'name' => 'name',
25
- ));
26
-
27
- $fieldset->addField('email', 'text', array(
28
- 'label' => Mage::helper('testimonial')->__('Email'),
29
- 'required' => true,
30
- 'name' => 'email',
31
- ));
32
-
33
- //If avatar exists -> view
34
- $data['change_avatar'] = 'Change Avatar';
35
- if(isset($data['avatar_name']) && $data['avatar_name'] != ''){
36
- $avatarLink = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) .'magebuzz/avatar/'.$data['avatar_name'];
37
- $avatarName = $data['avatar_name'];
38
- $fieldset->addField('image', 'label', array(
39
- 'label' => Mage::helper('testimonial')->__('Avatar'),
40
- 'name' =>'image',
41
- 'value' => $avatarLink,
42
- 'after_element_html' => '<img src="'.$avatarLink .'" alt=" '. $avatarName .'" height="120" width="120" />',
43
- ));
44
-
45
- $fieldset->addField('avatar', 'image', array(
46
- 'label' => Mage::helper('testimonial')->__('Change Avatar'),
47
- 'required' => false,
48
- 'name' => 'avatar',
49
- ));
50
-
51
- }else{
52
- $fieldset->addField('avatar', 'image', array(
53
- 'label' => Mage::helper('testimonial')->__('Avatar'),
54
- 'required' => false,
55
- 'name' => 'avatar',
56
- ));
57
- }
58
-
59
-
60
- $fieldset->addField('website', 'link', array(
61
- 'label' => Mage::helper('testimonial')->__('Website'),
62
- 'required' => false,
63
- 'name' => 'website',
64
- 'href' => 'website',
65
- ));
66
-
67
- $fieldset->addField('company', 'text', array(
68
- 'label' => Mage::helper('testimonial')->__('Company'),
69
- 'required' => false,
70
- 'name' => 'company',
71
- ));
72
-
73
- $fieldset->addField('address', 'text', array(
74
- 'label' => Mage::helper('testimonial')->__('Address'),
75
- 'required' => false,
76
- 'name' => 'address',
77
- ));
78
-
79
- $fieldset->addField('testimonial', 'textarea', array(
80
- 'label' => Mage::helper('testimonial')->__('Testimonial'),
81
- 'required' => true,
82
- 'name' => 'testimonial',
83
- ));
84
-
85
-
86
-
87
- $fieldset->addField('status', 'select', array(
88
- 'label' => Mage::helper('testimonial')->__('Status'),
89
- 'name' => 'status',
90
- 'values' => array(
91
- array(
92
- 'value' => 1,
93
- 'label' => Mage::helper('testimonial')->__('Approved'),
94
- ),
95
-
96
- array(
97
- 'value' => 2,
98
- 'label' => Mage::helper('testimonial')->__('Not Approved'),
99
- ),
100
-
101
- array(
102
- 'value' => 3,
103
- 'label' => Mage::helper('testimonial')->__('Pending'),
104
- ),
105
- ),
106
- ));
107
-
108
-
109
- $form->setValues($data);
110
- return parent::_prepareForm();
111
-
112
-
113
- }
114
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Block/Adminhtml/Testimonial/Edit/Tabs.php DELETED
@@ -1,24 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Testimonial_Block_Adminhtml_Testimonial_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
4
- {
5
-
6
- public function __construct()
7
- {
8
- parent::__construct();
9
- $this->setId('testimonial_tabs');
10
- $this->setDestElementId('edit_form');
11
- $this->setTitle(Mage::helper('testimonial')->__('Testimonial Information'));
12
- }
13
-
14
- protected function _beforeToHtml()
15
- {
16
- $this->addTab('form_section', array(
17
- 'label' => Mage::helper('testimonial')->__('General'),
18
- 'title' => Mage::helper('testimonial')->__('General'),
19
- 'content' => $this->getLayout()->createBlock('testimonial/adminhtml_testimonial_edit_tab_form')->toHtml(),
20
- ));
21
-
22
- return parent::_beforeToHtml();
23
- }
24
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Block/Adminhtml/Testimonial/Grid.php DELETED
@@ -1,153 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Testimonial_Block_Adminhtml_Testimonial_Grid extends Mage_Adminhtml_Block_Widget_Grid
4
- {
5
- public function __construct()
6
- {
7
- parent::__construct();
8
- $this->setId('testimonialGrid');
9
- $this->setDefaultSort('testimonial_id');
10
- $this->setDefaultDir('DESC');
11
- $this->setSaveParametersInSession(true);
12
- }
13
-
14
- protected function _prepareCollection()
15
- {
16
- $collection = Mage::getModel('testimonial/testimonial')->getCollection();
17
- $this->setCollection($collection);
18
- return parent::_prepareCollection();
19
- }
20
-
21
- protected function _prepareColumns()
22
- {
23
- $this->addColumn('testimonial_id', array(
24
- 'header' => Mage::helper('testimonial')->__('ID'),
25
- 'align' =>'right',
26
- 'width' => '50px',
27
- 'index' => 'testimonial_id',
28
- ));
29
-
30
- $this->addColumn('name', array(
31
- 'header' => Mage::helper('testimonial')->__('Name'),
32
- 'align' =>'left',
33
- 'index' => 'name',
34
- ));
35
-
36
- $this->addColumn('email', array(
37
- 'header' => Mage::helper('testimonial')->__('Email'),
38
- 'align' =>'left',
39
- 'index' => 'email',
40
- ));
41
-
42
- $this->addColumn('avatar_name', array(
43
- 'header' => Mage::helper('testimonial')->__('Avatar'),
44
- 'align' =>'center',
45
- 'index' => 'avatar_name',
46
- 'width' => '100px',
47
- 'type' => 'image',
48
- 'escape' => true,
49
- 'sortable' => false,
50
- 'filter' => false,
51
- 'renderer' => new Magebuzz_Testimonial_Block_Adminhtml_Testimonial_Renderer_Image
52
- ));
53
-
54
- $this->addColumn('website', array(
55
- 'header' => Mage::helper('testimonial')->__('Website'),
56
- 'align' =>'left',
57
- 'index' => 'website',
58
- ));
59
-
60
- $this->addColumn('company', array(
61
- 'header' => Mage::helper('testimonial')->__('Company'),
62
- 'align' =>'left',
63
- 'index' => 'company',
64
- ));
65
-
66
- $this->addColumn('address', array(
67
- 'header' => Mage::helper('testimonial')->__('Address'),
68
- 'align' =>'left',
69
- 'index' => 'address',
70
- ));
71
-
72
-
73
- $this->addColumn('created_time', array(
74
- 'header' => Mage::helper('testimonial')->__('Created Time'),
75
- 'align' =>'left',
76
- 'type' =>'date',
77
- 'index' => 'created_time',
78
- ));
79
-
80
- $this->addColumn('status', array(
81
- 'header' => Mage::helper('testimonial')->__('Status'),
82
- 'align' => 'left',
83
- 'width' => '80px',
84
- 'index' => 'status',
85
- 'type' => 'options',
86
- 'options' => array(
87
- 1 => 'Approved',
88
- 2 => 'Not Approved',
89
- 3 => 'Pending',
90
- ),
91
- ));
92
-
93
- $this->addColumn('action',
94
- array(
95
- 'header' => Mage::helper('testimonial')->__('Action'),
96
- 'width' => '100',
97
- 'type' => 'action',
98
- 'getter' => 'getId',
99
- 'actions' => array(
100
- array(
101
- 'caption' => Mage::helper('testimonial')->__('Edit'),
102
- 'url' => array('base'=> '*/*/edit'),
103
- 'field' => 'id'
104
- )
105
- ),
106
- 'filter' => false,
107
- 'sortable' => false,
108
- 'index' => 'stores',
109
- 'is_system' => true,
110
- ));
111
-
112
- $this->addExportType('*/*/exportCsv', Mage::helper('testimonial')->__('CSV'));
113
- $this->addExportType('*/*/exportXml', Mage::helper('testimonial')->__('XML'));
114
-
115
- return parent::_prepareColumns();
116
- }
117
-
118
- protected function _prepareMassaction()
119
- {
120
- $this->setMassactionIdField('testimonial_id');
121
- $this->getMassactionBlock()->setFormFieldName('testimonial');
122
-
123
- $this->getMassactionBlock()->addItem('delete', array(
124
- 'label' => Mage::helper('testimonial')->__('Delete'),
125
- 'url' => $this->getUrl('*/*/massDelete'),
126
- 'confirm' => Mage::helper('testimonial')->__('Are you sure?')
127
- ));
128
-
129
- $statuses = Mage::getSingleton('testimonial/status')->getOptionArray();
130
-
131
- array_unshift($statuses, array('label'=>'', 'value'=>''));
132
- $this->getMassactionBlock()->addItem('status', array(
133
- 'label'=> Mage::helper('testimonial')->__('Change status'),
134
- 'url' => $this->getUrl('*/*/massStatus', array('_current'=>true)),
135
- 'additional' => array(
136
- 'visibility' => array(
137
- 'name' => 'status',
138
- 'type' => 'select',
139
- 'class' => 'required-entry',
140
- 'label' => Mage::helper('testimonial')->__('Status'),
141
- 'values' => $statuses
142
- )
143
- )
144
- ));
145
- return $this;
146
- }
147
-
148
- public function getRowUrl($row)
149
- {
150
- return $this->getUrl('*/*/edit', array('id' => $row->getId()));
151
- }
152
-
153
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Block/Adminhtml/Testimonial/Renderer/Image.php DELETED
@@ -1,19 +0,0 @@
1
- <?php
2
- class Magebuzz_Testimonial_Block_Adminhtml_Testimonial_Renderer_Image extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract{
3
-
4
- public function render(Varien_Object $row)
5
- {
6
- if($row->getData($this->getColumn()->getIndex())==""){
7
- return "";
8
- }else{
9
- $html = '<img ';
10
- $html .= 'id="' . $this->getColumn()->getId() . '" ';
11
- $html .= 'width="80" ';
12
- $html .= 'height="80" ';
13
- $html .= 'src="' . Mage::getBaseUrl("media") .'magebuzz/avatar/' . $row->getData($this->getColumn()->getIndex()) . '"';
14
- $html .= 'class="grid-image ' . $this->getColumn()->getInlineCss() . '"/>';
15
- }
16
-
17
- return $html;
18
- }
19
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Block/Captcha.php DELETED
@@ -1,6 +0,0 @@
1
- <?php
2
- class Magebuzz_Testimonial_Block_Captcha extends Mage_Core_Block_Template {
3
- public function __construct() {
4
- parent::__construct();
5
- }
6
- }
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Block/Form.php DELETED
@@ -1,27 +0,0 @@
1
- <?php
2
- class Magebuzz_Testimonial_Block_Form extends Mage_Core_Block_Template {
3
-
4
-
5
- public function _prepareLayout() {
6
- $this->getLayout()->getBlock('head')->setTitle(Mage::helper('testimonial')->__('Testimonial Form'));
7
- $this->setTemplate('testimonial/form.phtml');
8
- return parent::_prepareLayout();
9
- }
10
-
11
-
12
- public function isCustomerLoggedIn() {
13
- return Mage::getSingleton('customer/session')->isLoggedIn();
14
- }
15
-
16
-
17
- public function getCustomer () {
18
- return Mage::getSingleton('customer/session')->getCustomer();
19
- }
20
-
21
-
22
- public function getBack() {
23
- return $this->helper('testimonial')->getBack();
24
- }
25
-
26
-
27
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Block/Form/Login.php DELETED
@@ -1,5 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Testimonial_Block_Form_Login extends Mage_Customer_Block_Form_Login {
4
-
5
- }
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Block/Sidebar.php DELETED
@@ -1,28 +0,0 @@
1
- <?php
2
- class Magebuzz_Testimonial_Block_Sidebar extends Mage_Core_Block_Template {
3
- public function getTestimonialsLast(){
4
- $collection = Mage::getModel('testimonial/testimonial')->getCollection();
5
- $collection->setOrder('created_time', 'DESC');
6
- $collection->addFieldToFilter('status',1);
7
- $collection->setPageSize(5);
8
- return $collection;
9
- }
10
-
11
- public function getContentTestimonialSidebar($_description, $count){
12
- $short_desc = substr($_description, 0, $count);
13
-
14
- if(substr($short_desc, 0, strrpos($short_desc, ' '))!='') {
15
- $short_desc = substr($short_desc, 0, strrpos($short_desc, ' '));
16
- $short_desc = $short_desc.'...';
17
- }
18
-
19
-
20
- return $short_desc;
21
- }
22
-
23
- public function getNumberWordsOnSidebar(){
24
- $countWord = Mage::getStoreConfig('testimonial/general_option/number_words');
25
- return $countWord;
26
- }
27
- }
28
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Block/Testimonial.php DELETED
@@ -1,48 +0,0 @@
1
- <?php
2
- class Magebuzz_Testimonial_Block_Testimonial extends Mage_Core_Block_Template {
3
-
4
-
5
- public function __construct() {
6
- parent::__construct();
7
- $collection = Mage::getModel('testimonial/testimonial')->getCollection();
8
- $collection->setOrder('testimonial_id', 'DESC');
9
- $collection->addFieldToFilter('status',1);
10
- $this->setTestimonial($collection);
11
-
12
- }
13
-
14
-
15
- public function _prepareLayout() {
16
- parent::_prepareLayout();
17
- $this->getLayout()->getBlock('head')->setTitle(Mage::helper('testimonial')->__('Testimonial'));
18
- $pager = $this->getLayout()->createBlock('page/html_pager', 'testimonial.pager');
19
-
20
- if(Mage::getStoreConfig('testimonial/general_option/enable_testimonial_paging')){
21
- $fieldPerPage = Mage::getStoreConfig('testimonial/general_option/divide_page');
22
- $fieldPerPage = explode(',', $fieldPerPage);
23
- $fieldPerPage = array_combine($fieldPerPage, $fieldPerPage);
24
- $pager->setAvailableLimit($fieldPerPage);
25
- }else{
26
- $pager->setAvailableLimit(array('all'=>'all'));
27
- }
28
-
29
- $pager->setCollection($this->getTestimonial());
30
- $this->setChild('pager', $pager);
31
- $this->getTestimonial()->load();
32
-
33
- return $this;
34
- }
35
-
36
-
37
- public function getPagerHtml() {
38
- return $this->getChildHtml('pager');
39
-
40
- }
41
-
42
-
43
- public function getFormUrl() {
44
- return $this->helper('testimonial')->getFormUrl();
45
- }
46
-
47
-
48
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Helper/Data.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- class Magebuzz_Testimonial_Helper_Data extends Mage_Core_Helper_Abstract {
3
-
4
- public function getFormUrl() {
5
- return $this->_getUrl('testimonial/index/check');
6
- }
7
-
8
- public function getBack() {
9
- return $this->_getUrl('testimonial/index');
10
- }
11
- }
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Model/Mysql4/Testimonial.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Testimonial_Model_Mysql4_Testimonial extends Mage_Core_Model_Mysql4_Abstract {
4
-
5
- public function _construct() {
6
- // Note that the testimonial_id refers to the key field in your database table.
7
- $this->_init('testimonial/testimonial', 'testimonial_id');
8
- }
9
- }
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Model/Mysql4/Testimonial/Collection.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Testimonial_Model_Mysql4_Testimonial_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
4
- {
5
- public function _construct()
6
- {
7
- parent::_construct();
8
- $this->_init('testimonial/testimonial');
9
- }
10
- }
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Model/Session.php DELETED
@@ -1,8 +0,0 @@
1
- <?php
2
- class Magebuzz_Testimonial_Model_Session extends Mage_Core_Model_Session_Abstract {
3
-
4
- public function __construct() {
5
- $this->init('testimonial');
6
- }
7
-
8
- }
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Model/Status.php DELETED
@@ -1,17 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Testimonial_Model_Status extends Varien_Object {
4
-
5
- const STATUS_ENABLED = 1;
6
- const STATUS_DISABLED = 2;
7
- const STATUS_PENDING = 3;
8
-
9
- static public function getOptionArray() {
10
- return array(
11
- self::STATUS_ENABLED => Mage::helper('testimonial')->__('Approved'),
12
- self::STATUS_DISABLED => Mage::helper('testimonial')->__('Not Approved'),
13
- self::STATUS_PENDING => Mage::helper('testimonial')->__('Pending')
14
- );
15
- }
16
-
17
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/Model/Testimonial.php DELETED
@@ -1,32 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Testimonial_Model_Testimonial extends Mage_Core_Model_Abstract {
4
-
5
- public function _construct() {
6
- parent::_construct();
7
- $this->_init('testimonial/testimonial');
8
- }
9
-
10
- public function loadTestimonials(){
11
- $this->getResource()->loadTestimonials();
12
- }
13
-
14
- public function getNewFileName($destFile)
15
- {
16
- $fileInfo = pathinfo($destFile);
17
- if (file_exists($destFile)) {
18
- $index = 1;
19
- $baseName = $fileInfo['filename'] . '.' . $fileInfo['extension'];
20
- while( file_exists($fileInfo['dirname'] . DIRECTORY_SEPARATOR . $baseName) ) {
21
- $baseName = $fileInfo['filename']. '_' . $index . '.' . $fileInfo['extension'];
22
- $index ++;
23
- }
24
- $destFileName = $baseName;
25
- } else {
26
- return $fileInfo['basename'];
27
- }
28
-
29
- return $destFileName;
30
- }
31
-
32
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/controllers/Adminhtml/TestimonialController.php DELETED
@@ -1,267 +0,0 @@
1
- <?php
2
-
3
- class Magebuzz_Testimonial_Adminhtml_TestimonialController extends Mage_Adminhtml_Controller_action {
4
-
5
- const XML_PATH_EMAIL_SELECT_TEMPLATE_AFTER_APPROVE = 'testimonial/email_configuration/select_template_approve';
6
-
7
- public function _getTestimonial() {
8
-
9
- return Mage::getSingleton('testimonial/testimonial');
10
- }
11
-
12
- protected function _initAction() {
13
- $this->loadLayout()
14
- ->_setActiveMenu('testimonial/items')
15
- ->_addBreadcrumb(Mage::helper('adminhtml')->__('Items Manager'), Mage::helper('adminhtml')->__('Item Manager'));
16
-
17
- return $this;
18
- }
19
-
20
- public function indexAction() {
21
- $this->_initAction();
22
- $this->renderLayout();
23
-
24
- }
25
-
26
- public function editAction() {
27
- $id = $this->getRequest()->getParam('id');
28
- $model = Mage::getModel('testimonial/testimonial')->load($id);
29
-
30
- if ($model->getId() || $id == 0) {
31
- $data = Mage::getSingleton('adminhtml/session')->getFormData(true);
32
- if (!empty($data)) {
33
- $model->setData($data);
34
- }
35
-
36
- Mage::register('testimonial_data', $model);
37
-
38
- $this->loadLayout();
39
- $this->_setActiveMenu('testimonial/items');
40
-
41
- $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Manager Testimonial'), Mage::helper('adminhtml')->__('Manager Testimonial'));
42
- $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item News'), Mage::helper('adminhtml')->__('Item News'));
43
-
44
- $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
45
-
46
- $this->_addContent($this->getLayout()->createBlock('testimonial/adminhtml_testimonial_edit'))
47
- ->_addLeft($this->getLayout()->createBlock('testimonial/adminhtml_testimonial_edit_tabs'));
48
-
49
- $this->renderLayout();
50
- } else {
51
- Mage::getSingleton('adminhtml/session')->addError(Mage::helper('testimonial')->__('Item does not exist'));
52
- $this->_redirect('*/*/');
53
- }
54
- }
55
-
56
- public function newAction() {
57
- $this->_forward('edit');
58
- }
59
-
60
- public function saveAction() {
61
- $model = Mage::getModel('testimonial/testimonial');
62
- if ($data = $this->getRequest()->getPost()) {
63
- if(isset($_FILES['avatar']['name']) && $_FILES['avatar']['name'] != '') {
64
- try
65
- {
66
- $path = Mage::getBaseDir().DS.'media/magebuzz/avatar'.DS;
67
- $fname = $_FILES['avatar']['name'];
68
- $fname = str_replace(' ', '_', $fname);
69
- $uploader = new Varien_File_Uploader('avatar');
70
- $uploader->setAllowedExtensions(array('jpg','jpeg','png','gif'));
71
- $uploader->setAllowCreateFolders(true);
72
- $uploader->setAllowRenameFiles(true);
73
- $uploader->setFilesDispersion(false);
74
- $destFile = $path.$fname;
75
- $fname = $model->getNewFileName($destFile);
76
- $uploader->save($path,$fname);
77
- }
78
- catch (Exception $e)
79
- {
80
- echo 'Error Message: '.$e->getMessage();
81
- }
82
- //this way the name is saved in DB
83
- $data['avatar'] = $_FILES['avatar']['name'];
84
- }else{
85
- unset($data['avatar']);
86
- }
87
-
88
- $model->setData($data)
89
- ->setId($this->getRequest()->getParam('id'));
90
-
91
- if(isset($_FILES['avatar']['name']) && $_FILES['avatar']['name'] != ''){
92
- $model->setAvatarName($fname);
93
- $model->setAvatarPath($path);
94
- }
95
-
96
- try {
97
- if ($model->getCreatedTime == NULL || $model->getUpdateTime() == NULL) {
98
- $model->setCreatedTime(now())
99
- ->setUpdateTime(now());
100
- } else {
101
- $model->setUpdateTime(now());
102
- }
103
-
104
- $model->save();
105
- Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('testimonial')->__('Item was successfully saved'));
106
- Mage::getSingleton('adminhtml/session')->setFormData(false);
107
-
108
- if ($this->getRequest()->getParam('back')) {
109
- $this->_redirect('*/*/edit', array('id' => $model->getId()));
110
- return;
111
- }
112
- $this->_redirect('*/*/');
113
- return;
114
- } catch (Exception $e) {
115
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
116
- Mage::getSingleton('adminhtml/session')->setFormData($data);
117
- $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
118
- return;
119
- }
120
- }
121
- Mage::getSingleton('adminhtml/session')->addError(Mage::helper('testimonial')->__('Unable to find item to save'));
122
- $this->_redirect('*/*/');
123
- }
124
-
125
- public function deleteAction() {
126
- if( $this->getRequest()->getParam('id') > 0 ) {
127
- try {
128
- $model = Mage::getModel('testimonial/testimonial');
129
-
130
- $model->setId($this->getRequest()->getParam('id'))
131
- ->delete();
132
-
133
- Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully deleted'));
134
- $this->_redirect('*/*/');
135
- } catch (Exception $e) {
136
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
137
- $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
138
- }
139
- }
140
- $this->_redirect('*/*/');
141
- }
142
-
143
- public function massDeleteAction() {
144
- $testimonialIds = $this->getRequest()->getParam('testimonial');
145
- if(!is_array($testimonialIds)) {
146
- Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Please select item(s)'));
147
- } else {
148
- try {
149
- foreach ($testimonialIds as $testimonialId) {
150
- $testimonial = Mage::getModel('testimonial/testimonial')->load($testimonialId);
151
- $testimonial->delete();
152
- }
153
- Mage::getSingleton('adminhtml/session')->addSuccess(
154
- Mage::helper('adminhtml')->__(
155
- 'Total of %d record(s) were successfully deleted', count($testimonialIds)
156
- )
157
- );
158
- } catch (Exception $e) {
159
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
160
- }
161
- }
162
- $this->_redirect('*/*/index');
163
- }
164
-
165
- public function massStatusAction() {
166
- $testimonialIds = $this->getRequest()->getParam('testimonial');
167
- if(!is_array($testimonialIds)) {
168
- Mage::getSingleton('adminhtml/session')->addError($this->__('Please select item(s)'));
169
- } else {
170
- try {
171
- foreach ($testimonialIds as $testimonialId) {
172
- $current_status= $this->_getTestimonial()->load($testimonialId)->getStatus();
173
- $updated_status= $this->getRequest()->getParam('status');
174
- if ((Mage::getStoreConfig('testimonial/email_configuration/send_email_after_approve_testimonial', Mage::app()->getStore())=="1")and ($current_status=="3" and $updated_status=="1") ) {
175
- $to = array('email'=>$this->_getTestimonial()->load($testimonialId)->getEmail(), 'name'=>$this->_getTestimonial()->load($testimonialId)->getName());
176
- $this->sendemailAction($to, $templateConfigPath=self::XML_PATH_EMAIL_SELECT_TEMPLATE_AFTER_APPROVE);
177
- Mage::getSingleton('adminhtml/session')->addSuccess($this->__('Admin has just sent the email to customer for approving their testimonials'));
178
-
179
-
180
- }
181
-
182
- $testimonial = $this->_getTestimonial()->load($testimonialId)
183
- ->setStatus($this->getRequest()->getParam('status'))
184
- ->setIsMassupdate(true)
185
- ->save();
186
- }
187
- $this->_getSession()->addSuccess(
188
- $this->__('Total of %d record(s) were successfully updated', count($testimonialIds))
189
- );
190
- }catch (Exception $e) {
191
- $this->_getSession()->addError($e->getMessage());
192
- }
193
- }
194
- $this->_redirect('*/*/index');
195
- }
196
-
197
- public function exportCsvAction() {
198
- $fileName = 'testimonial.csv';
199
- $content = $this->getLayout()->createBlock('testimonial/adminhtml_testimonial_grid')
200
- ->getCsv();
201
-
202
- $this->_sendUploadResponse($fileName, $content);
203
- }
204
-
205
- public function exportXmlAction()
206
- {
207
- $fileName = 'testimonial.xml';
208
- $content = $this->getLayout()->createBlock('testimonial/adminhtml_testimonial_grid')
209
- ->getXml();
210
-
211
- $this->_sendUploadResponse($fileName, $content);
212
- }
213
-
214
- protected function _sendUploadResponse($fileName, $content, $contentType='application/octet-stream') {
215
- $response = $this->getResponse();
216
- $response->setHeader('HTTP/1.1 200 OK','');
217
- $response->setHeader('Pragma', 'public', true);
218
- $response->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true);
219
- $response->setHeader('Content-Disposition', 'attachment; filename='.$fileName);
220
- $response->setHeader('Last-Modified', date('r'));
221
- $response->setHeader('Accept-Ranges', 'bytes');
222
- $response->setHeader('Content-Length', strlen($content));
223
- $response->setHeader('Content-type', $contentType);
224
- $response->setBody($content);
225
- $response->sendResponse();
226
- die;
227
- }
228
-
229
- public function sendemailAction($to, $templateConfigPath) {
230
- if(!$to) return;
231
- $translate=Mage::getSingleton('core/translate');
232
- $translate->setTranslateInline(false);
233
- $mailTemplate=Mage::getModel('core/email_template');
234
- $template=Mage::getStoreConfig($templateConfigPath, Mage::app()->getStore()->getId());
235
- $sendTo=array();
236
- foreach($to as $recipient) {
237
- if(is_array($recipient)) {
238
- $sendTo[]=$recipient;
239
- }
240
- else {
241
- $sendTo[]=array(
242
- 'email'=>$recipient,
243
- 'name'=>null
244
- );
245
- }
246
-
247
- }
248
- foreach ($sendTo as $recipient ) {
249
- $mailTemplate->setDesignConfig(array('area'=>'frontend', 'store'=>Mage::app()->getStore()->getId()))
250
- ->sendTransactional(
251
- $template,
252
- Mage::getStoreConfig(Mage_Sales_Model_Order::XML_PATH_EMAIL_IDENTITY, Mage::app()->getStore()->getId()),
253
- $recipient['email'],
254
- $recipient['name'],
255
- array('customer_name' =>$this->_getTestimonial()->load($testimonialId)->getName(),
256
- 'customer_email' =>$this->_getTestimonial()->load($testimonialId)->getEmail(),
257
- 'address' =>$this->_getTestimonial()->load($testimonialId)->getAddress(),
258
- 'website' =>$this->_getTestimonial()->load($testimonialId)->getWebsite(),
259
- 'company' =>$this->_getTestimonial()->load($testimonialId)->getCompany(),
260
- 'testimonial' =>$this->_getTestimonial()->load($testimonialId)->getTestimonial()
261
- )
262
- );
263
- }
264
- $translate->setTranslateInline(true);
265
- return $this;
266
- }
267
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/controllers/FormController.php DELETED
@@ -1,172 +0,0 @@
1
- <?php
2
- class Magebuzz_Testimonial_FormController extends Mage_Core_Controller_Front_Action {
3
-
4
- const STATUS_ENABLED = 1;
5
- const STATUS_DISABLED = 2;
6
- const STATUS_PENDING = 3;
7
- const XML_PATH_EMAIL_SELECT_TEMPLATE_AFTER_POST = 'testimonial/email_configuration/select_template_post';
8
-
9
- public function indexAction() {
10
- $this->loadLayout();
11
- $this->_initLayoutMessages('testimonial/session');
12
- $this->renderLayout();
13
- }
14
-
15
- public function _getSession() {
16
- return Mage::getSingleton('testimonial/session');
17
- }
18
-
19
- public function captchaAction() {
20
- require_once(Mage::getBaseDir('lib').DS.'captcha'.DS.'class.simplecaptcha.php');
21
- //Background Image
22
- $config['BackgroundImage'] = Mage::getBaseDir('lib') . DS .'captcha'. DS . "white.png";
23
-
24
- //Background Color- HEX
25
- $config['BackgroundColor'] = "FFFC00";
26
-
27
- //image height - same as background image
28
- $config['Height']=30;
29
-
30
- //image width - same as background image
31
- $config['Width']=100;
32
-
33
- //text font size
34
- $config['Font_Size']=20;
35
-
36
- //text font style
37
- $config['Font']= Mage::getBaseDir('lib') . DS .'captcha'. DS . "ARLRDBD.TTF";
38
-
39
- //text angle to the left
40
- $config['TextMinimumAngle']=15;
41
-
42
- //text angle to the right
43
- $config['TextMaximumAngle']=45;
44
-
45
- //Text Color - HEX
46
- $config['TextColor']='000000';
47
-
48
- //Number of Captcha Code Character
49
- $config['TextLength']=6;
50
-
51
- //Background Image Transparency
52
- // 0 - Not Visible, 100 - Fully Visible
53
- $config['Transparency']=70;
54
-
55
- $captcha = new SimpleCaptcha($config);
56
- //Mage::getSingleton('customer/session')->setData('captcha_code', $captcha->Code);
57
- Mage::getSingleton('testimonial/session')->setData('captcha_code', $captcha->Code);
58
-
59
- }
60
-
61
-
62
- public function save() {
63
- $model= Mage::getModel('testimonial/testimonial');
64
- $post = $this->getRequest()->getPost();
65
-
66
- if ($post) {
67
- //Upload avatar
68
- if(isset($_FILES['avatar']['name']) && $_FILES['avatar']['name'] != '')
69
- {
70
- try
71
- {
72
- $path = Mage::getBaseDir().DS.'media/magebuzz/avatar'.DS;
73
- $fname = $_FILES['avatar']['name'];
74
- $fname = str_replace(' ', '_', $fname);
75
- $uploader = new Varien_File_Uploader('avatar');
76
- $uploader->setAllowedExtensions(array('jpg','jpeg','png','gif'));
77
- $uploader->setAllowCreateFolders(true);
78
- $uploader->setAllowRenameFiles(true);
79
- $uploader->setFilesDispersion(false);
80
- $destFile = $path.$fname;
81
- $fname = $model->getNewFileName($destFile);
82
- $uploader->save($path,$fname);
83
- }
84
- catch (Exception $e)
85
- {
86
- echo 'Error Message: '.$e->getMessage();
87
- }
88
- }
89
-
90
- //Save to datatabase
91
- try {
92
-
93
- $model->setData($post);
94
- $model->setAvatarName($fname);
95
- $model->setAvatarPath($path);
96
- $now = Mage::getModel('core/date')->timestamp(now());
97
- $model->setCreatedTime(date('Y-m-d H:i:s',$now));
98
-
99
- if(Mage::getStoreConfig('testimonial/testimonial_options/approve_testimonial', Mage::app()->getStore())==true) {
100
- $model->setData('status',self::STATUS_PENDING);
101
- }
102
- else {
103
- $model->setData('status',self::STATUS_ENABLED);
104
- }
105
- $model->save();
106
-
107
- //Send mail after customer post testimonial
108
-
109
- if (Mage::getStoreConfig('testimonial/email_configuration/send_email_after_post_testimonial', Mage::app()->getStore())=="1") {
110
- $to = array('email'=>$post['email'], 'name'=> $post['name']);
111
- $this->sendemailAction($to, $templateConfigPath=self::XML_PATH_EMAIL_SELECT_TEMPLATE_AFTER_POST);
112
- }
113
-
114
- $this->_redirect('*/index/thankmessage');
115
- }
116
- catch (Exception $e) {
117
- echo $e->getMessage();
118
- }
119
- }
120
- else
121
- $this->_redirect('');
122
- }
123
-
124
- public function sendemailAction($to, $templateConfigPath) {
125
- if(!$to) return;
126
- $translate=Mage::getSingleton('core/translate');
127
- $translate->setTranslateInline(false);
128
- $mailTemplate=Mage::getModel('core/email_template');
129
- $template=Mage::getStoreConfig($templateConfigPath, Mage::app()->getStore()->getId());
130
- $sendTo=array();
131
- foreach($to as $recipient) {
132
- if(is_array($recipient)) {
133
- $sendTo[]=$recipient;
134
- }
135
- else {
136
- $sendTo[]=array(
137
- 'email'=>$recipient,
138
- 'name'=>null
139
- );
140
- }
141
-
142
- }
143
- foreach ($sendTo as $recipient ) {
144
- $mailTemplate->setDesignConfig(array('area'=>'frontend', 'store'=>Mage::app()->getStore()->getId()))
145
- ->sendTransactional(
146
- $template,
147
- Mage::getStoreConfig(Mage_Sales_Model_Order::XML_PATH_EMAIL_IDENTITY, Mage::app()->getStore()->getId()),
148
- $recipient['email'],
149
- $recipient['name'],
150
- null
151
- );
152
- }
153
- $translate->setTranslateInline(true);
154
- return $this;
155
- }
156
-
157
- public function postAction() {
158
- if(Mage::getStoreConfig('testimonial/testimonial_options/testimonial_captcha_enabled', Mage::app()->getStore())==true) {
159
- $code=$this->_getSession()->getCaptchaCode();
160
- $captcha_code=$_POST['captcha_code'];
161
- if ($code != $captcha_code) {
162
- Mage::getSingleton('core/session')->addError('The security code entered was incorrect. Please try again!');
163
- $this->_redirect('*/form');
164
- }
165
- else $this->save();
166
- }
167
- else $this->save();
168
- }
169
-
170
- }
171
-
172
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/controllers/IndexController.php DELETED
@@ -1,34 +0,0 @@
1
- <?php
2
- class Magebuzz_Testimonial_IndexController extends Mage_Core_Controller_Front_Action {
3
- public function indexAction() {
4
- $this->loadLayout();
5
- $this->renderLayout();
6
- }
7
-
8
- public function checkAction() {
9
- if (!Mage::getSingleton('customer/session')->isLoggedIn()) {
10
- if(Mage::getStoreConfig('testimonial/testimonial_options/allow_guest_write_testimonial', Mage::app()->getStore())=="1") {
11
- $this->_redirect('*/form');
12
- }
13
- else {
14
- Mage::getSingleton('customer/session')->authenticate($this);
15
- }
16
- }
17
- else {
18
- $this->_redirect('*/form');
19
- }
20
- }
21
-
22
-
23
- public function thankmessageAction() {
24
- $message=Mage::getStoreConfig('testimonial/testimonial_options/thank_message', Mage::app()->getStore());
25
- if(Mage::getStoreConfig('testimonial/testimonial_options/approve_testimonial', Mage::app()->getStore())==true) {
26
- Mage::getSingleton('core/session')->addSuccess($message);
27
- }
28
- else
29
- Mage::getSingleton('core/session')->addSuccess($message);
30
-
31
- $this->_redirect('*/index');
32
-
33
- }
34
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/etc/adminhtml.xml DELETED
@@ -1,51 +0,0 @@
1
- <?xml version="1.0"?>
2
- <config>
3
- <menu>
4
- <testimonial module="testimonial">
5
- <title>Testimonial</title>
6
- <sort_order>71</sort_order>
7
- <children>
8
- <testimonial_manage module="testimonial">
9
- <title>Manage Testimonials</title>
10
- <sort_order>100</sort_order>
11
- <action>testimonial/adminhtml_testimonial/</action>
12
- </testimonial_manage>
13
- </children>
14
- </testimonial>
15
- </menu>
16
- <acl>
17
- <resources>
18
- <all>
19
- <title>Allow Everything</title>
20
- </all>
21
- <admin>
22
- <children>
23
- <system>
24
- <children>
25
- <config>
26
- <children>
27
- <testimonial translate="title" module="testimonial">
28
- <title>Testimonials Permission Setting</title>
29
- </testimonial>
30
- </children>
31
- </config>
32
- </children>
33
- </system>
34
- <testimonial module="testimonial">
35
- <title>Testimonial</title>
36
- <sort_order>71</sort_order>
37
- <children>
38
- <testimonial_manage module="testimonial">
39
- <title>Manage Testimonials</title>
40
- <sort_order>100</sort_order>
41
- <action>testimonial/adminhtml_testimonial/</action>
42
- </testimonial_manage>
43
- </children>
44
- </testimonial>
45
- </children>
46
- </admin>
47
- </resources>
48
- </acl>
49
- </config>
50
-
51
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/etc/config.xml DELETED
@@ -1,140 +0,0 @@
1
- <?xml version="1.0"?>
2
- <config>
3
- <websites>
4
- <!--<admin>-->
5
- <!--<dev>-->
6
- <!--<debug>-->
7
- <!--<template_hints>1</template_hints>-->
8
- <!--<template_hints_blocks>1</template_hints_blocks>-->
9
- <!--</debug>-->
10
- <!--</dev>-->
11
- <!--</admin>-->
12
- </websites>
13
- <default>
14
- <testimonial>
15
- <general_option>
16
- <show_link_testimonial>1</show_link_testimonial>
17
- <enable_sidebar>1</enable_sidebar>
18
- <enable_testimonial_paging>1</enable_testimonial_paging>
19
- <divide_page>9, 15, 30, 'all'</divide_page>
20
- <number_words>150</number_words>
21
- </general_option>
22
- <testimonial_options>
23
- <testimonial_captcha_enabled>1</testimonial_captcha_enabled>
24
- <allow_customers_write_testimonial >1</allow_customers_write_testimonial >
25
- <allow_guest_write_testimonial>0</allow_guest_write_testimonial>
26
- <approve_testimonial>1</approve_testimonial>
27
- <thank_message><![CDATA[Your testimonial was successfully posted and waiting for approval.]]></thank_message>
28
- </testimonial_options>
29
- <email_configuration>
30
- <send_email_after_post_testimonial>1</send_email_after_post_testimonial>
31
- <send_email_after_approve_testimonial>1</send_email_after_approve_testimonial>
32
- <select_template_post>testimonial_email_configuration_select_template_post</select_template_post>
33
- <select_template_approve>testimonial_email_configuration_select_template_approve</select_template_approve>
34
- </email_configuration>
35
- </testimonial>
36
- </default>
37
- <modules>
38
- <Magebuzz_Testimonial>
39
- <version>0.1.0</version>
40
- </Magebuzz_Testimonial>
41
- </modules>
42
- <frontend>
43
- <routers>
44
- <testimonial>
45
- <use>standard</use>
46
- <args>
47
- <module>Magebuzz_Testimonial</module>
48
- <frontName>testimonial</frontName>
49
- </args>
50
- </testimonial>
51
- </routers>
52
- <layout>
53
- <updates>
54
- <testimonial>
55
- <file>testimonial.xml</file>
56
- </testimonial>
57
- </updates>
58
- </layout>
59
- </frontend>
60
- <admin>
61
- <routers>
62
- <testimonial>
63
- <use>admin</use>
64
- <args>
65
- <module>Magebuzz_Testimonial</module>
66
- <frontName>testimonial</frontName>
67
- </args>
68
- </testimonial>
69
- </routers>
70
- </admin>
71
- <adminhtml>
72
- <layout>
73
- <updates>
74
- <testimonial>
75
- <file>testimonial.xml</file>
76
- </testimonial>
77
- </updates>
78
- </layout>
79
- </adminhtml>
80
- <global>
81
- <models>
82
- <testimonial>
83
- <class>Magebuzz_Testimonial_Model</class>
84
- <resourceModel>testimonial_mysql4</resourceModel>
85
- </testimonial>
86
- <testimonial_mysql4>
87
- <class>Magebuzz_Testimonial_Model_Mysql4</class>
88
- <entities>
89
- <testimonial>
90
- <table>magebuzz_testimonial</table>
91
- </testimonial>
92
- </entities>
93
- </testimonial_mysql4>
94
- </models>
95
- <resources>
96
- <testimonial_setup>
97
- <setup>
98
- <module>Magebuzz_Testimonial</module>
99
- </setup>
100
- <connection>
101
- <use>core_setup</use>
102
- </connection>
103
- </testimonial_setup>
104
- <testimonial_write>
105
- <connection>
106
- <use>core_write</use>
107
- </connection>
108
- </testimonial_write>
109
- <testimonial_read>
110
- <connection>
111
- <use>core_read</use>
112
- </connection>
113
- </testimonial_read>
114
- </resources>
115
- <blocks>
116
- <testimonial>
117
- <class>Magebuzz_Testimonial_Block</class>
118
- </testimonial>
119
- </blocks>
120
- <helpers>
121
- <testimonial>
122
- <class>Magebuzz_Testimonial_Helper</class>
123
- </testimonial>
124
- </helpers>
125
- <template>
126
- <email>
127
- <testimonial_email_configuration_select_template_post translate="label" module="testimonial">
128
- <label>Custom Email Template After Post Testimonial</label>
129
- <file>email_template_after_post_testimonial.html</file>
130
- <type>html</type>
131
- </testimonial_email_configuration_select_template_post >
132
- <testimonial_email_configuration_select_template_approve translate="label" module="testimonial">
133
- <label>Custom Email Template After Approve Testimonial</label>
134
- <file>email_template_after_approve_testimonial.html</file>
135
- <type>html</type>
136
- </testimonial_email_configuration_select_template_approve >
137
- </email>
138
- </template>
139
- </global>
140
- </config>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/etc/system.xml DELETED
@@ -1,187 +0,0 @@
1
- <?xml version="1.0"?>
2
- <config>
3
- <tabs>
4
- <magebuzz translate="label" module="testimonial">
5
- <label>MAGEBUZZ ADD-ONS</label>
6
- <sort_order>1001</sort_order>
7
- </magebuzz>
8
- </tabs>
9
- <sections>
10
- <testimonial translate="label" module="testimonial">
11
- <label>Testimonial</label>
12
- <tab>magebuzz</tab>
13
- <sort_order>1000</sort_order>
14
- <show_in_default>1</show_in_default>
15
- <show_in_website>1</show_in_website>
16
- <show_in_store>1</show_in_store>
17
- <groups>
18
- <general_option translate="label">
19
- <label>General Options</label>
20
- <frontend_type>text</frontend_type>
21
- <sort_order>1</sort_order>
22
- <show_in_default>1</show_in_default>
23
- <show_in_website>1</show_in_website>
24
- <show_in_store>1</show_in_store>
25
- <fields>
26
- <show_link_testimonial translate="label">
27
- <label>Show Testimonial link in TopLink</label>
28
- <frontend_type>select</frontend_type>
29
- <source_model>adminhtml/system_config_source_enabledisable</source_model>
30
- <sort_order>1</sort_order>
31
- <show_in_default>1</show_in_default>
32
- <show_in_website>1</show_in_website>
33
- <show_in_store>1</show_in_store>
34
- </show_link_testimonial>
35
- <enable_sidebar>
36
- <label>Enable Testimonial Sidebar</label>
37
- <frontend_type>select</frontend_type>
38
- <source_model>adminhtml/system_config_source_enabledisable</source_model>
39
- <sort_order>2</sort_order>
40
- <show_in_default>1</show_in_default>
41
- <show_in_website>1</show_in_website>
42
- <show_in_store>1</show_in_store>
43
- </enable_sidebar>
44
- <enable_testimonial_paging>
45
- <label>Enable Show Testimonial Paging</label>
46
- <frontend_type>select</frontend_type>
47
- <source_model>adminhtml/system_config_source_enabledisable</source_model>
48
- <sort_order>3</sort_order>
49
- <show_in_default>1</show_in_default>
50
- <show_in_website>1</show_in_website>
51
- <show_in_store>1</show_in_store>
52
- </enable_testimonial_paging>
53
- <divide_page>
54
- <label>Testimonials Per Page</label>
55
- <frontend_type>text</frontend_type>
56
- <sort_order>5</sort_order>
57
- <show_in_default>1</show_in_default>
58
- <show_in_website>1</show_in_website>
59
- <show_in_store>1</show_in_store>
60
- <comment>Comma-separated.</comment>
61
- </divide_page>
62
- <number_words>
63
- <label> Amount word of testiomonil</label>
64
- <frontend_type>text</frontend_type>
65
- <sort_order>6</sort_order>
66
- <show_in_default>1</show_in_default>
67
- <show_in_website>1</show_in_website>
68
- <show_in_store>1</show_in_store>
69
- <comment>Comma-separated.</comment>
70
- </number_words>
71
- </fields>
72
- </general_option>
73
- <testimonial_options translate="label">
74
- <label>Testimonial Configuration</label>
75
- <frontend_type>text</frontend_type>
76
- <sort_order>2</sort_order>
77
- <show_in_default>1</show_in_default>
78
- <show_in_website>1</show_in_website>
79
- <show_in_store>1</show_in_store>
80
- <fields>
81
- <allow_customers_write_testimonial translate="label">
82
- <label>Allow customers to submit testimonial</label>
83
- <frontend_type>select</frontend_type>
84
- <source_model>adminhtml/system_config_source_yesno</source_model>
85
- <sort_order>4</sort_order>
86
- <show_in_default>1</show_in_default>
87
- <show_in_website>1</show_in_website>
88
- <show_in_store>1</show_in_store>
89
- </allow_customers_write_testimonial>
90
- <testimonial_captcha_enabled translate="label">
91
- <label>Enable tesimonial captcha</label>
92
- <frontend_type>select</frontend_type>
93
- <source_model>adminhtml/system_config_source_enabledisable</source_model>
94
- <sort_order>5</sort_order>
95
- <show_in_default>1</show_in_default>
96
- <show_in_website>1</show_in_website>
97
- <show_in_store>1</show_in_store>
98
- </testimonial_captcha_enabled>
99
- <!--<customer_write_testimonial_enabled translate="label">
100
- <label>Enable customer to write testimonials</label>
101
- <frontend_type>select</frontend_type>
102
- <source_model>adminhtml/system_config_source_enabledisable</source_model>
103
- <sort_order>6</sort_order>
104
- <show_in_default>1</show_in_default>
105
- <show_in_website>1</show_in_website>
106
- <show_in_store>1</show_in_store>
107
- </customer_write_testimonial_enabled>-->
108
- <allow_guest_write_testimonial translate="label">
109
- <label>Allow guest to write testimonials</label>
110
- <frontend_type>select</frontend_type>
111
- <source_model>adminhtml/system_config_source_yesno</source_model>
112
- <sort_order>7</sort_order>
113
- <show_in_default>1</show_in_default>
114
- <show_in_website>1</show_in_website>
115
- <show_in_store>1</show_in_store>
116
- </allow_guest_write_testimonial>
117
- <thank_message translate="label">
118
- <label>Thank you Message </label>
119
- <frontend_type>textarea</frontend_type>
120
- <comment>Message displayed after testimonial submission</comment>
121
- <sort_order>8</sort_order>
122
- <show_in_default>1</show_in_default>
123
- <show_in_website>1</show_in_website>
124
- <show_in_store>1</show_in_store>
125
- </thank_message>
126
- <approve_testimonial translate="label">
127
- <label>Approve testimonials</label>
128
- <frontend_type>select</frontend_type>
129
- <source_model>adminhtml/system_config_source_enabledisable</source_model>
130
- <sort_order>9</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
- </approve_testimonial>
135
- </fields>
136
- </testimonial_options>
137
- <email_configuration>
138
- <label>Email Configuration</label>
139
- <frontend_type>text</frontend_type>
140
- <sort_order>3</sort_order>
141
- <show_in_default>1</show_in_default>
142
- <show_in_website>1</show_in_website>
143
- <show_in_store>1</show_in_store>
144
- <fields>
145
- <send_email_after_post_testimonial translate="label">
146
- <label>Enable sending email after posting testimonial</label>
147
- <frontend_type>select</frontend_type>
148
- <source_model>adminhtml/system_config_source_yesno</source_model>
149
- <sort_order>1</sort_order>
150
- <show_in_default>1</show_in_default>
151
- <show_in_website>1</show_in_website>
152
- <show_in_store>1</show_in_store>
153
- </send_email_after_post_testimonial>
154
- <send_email_after_approve_testimonial translate="label">
155
- <label>Enable sending email after testimonial is approved</label>
156
- <frontend_type>select</frontend_type>
157
- <source_model>adminhtml/system_config_source_yesno</source_model>
158
- <sort_order>2</sort_order>
159
- <show_in_default>1</show_in_default>
160
- <show_in_website>1</show_in_website>
161
- <show_in_store>1</show_in_store>
162
- </send_email_after_approve_testimonial>
163
- <select_template_post translate="label">
164
- <label>Select email template for posting testimonial </label>
165
- <frontend_type>select</frontend_type>
166
- <source_model>adminhtml/system_config_source_email_template</source_model>
167
- <sort_order>3</sort_order>
168
- <show_in_default>1</show_in_default>
169
- <show_in_website>1</show_in_website>
170
- <show_in_store>1</show_in_store>
171
- </select_template_post>
172
- <select_template_approve translate="label">
173
- <label>Select email template for approving testimonial </label>
174
- <frontend_type>select</frontend_type>
175
- <source_model>adminhtml/system_config_source_email_template</source_model>
176
- <sort_order>4</sort_order>
177
- <show_in_default>1</show_in_default>
178
- <show_in_website>1</show_in_website>
179
- <show_in_store>1</show_in_store>
180
- </select_template_approve>
181
- </fields>
182
- </email_configuration>
183
- </groups>
184
- </testimonial>
185
- </sections>
186
- </config>
187
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Magebuzz/Testimonial/sql/testimonial_setup/mysql4-install-0.1.0.php DELETED
@@ -1,28 +0,0 @@
1
- <?php
2
-
3
- $installer = $this;
4
-
5
- $installer->startSetup();
6
-
7
- $installer->run("
8
-
9
- -- DROP TABLE IF EXISTS {$this->getTable('magebuzz_testimonial')};
10
- CREATE TABLE {$this->getTable('magebuzz_testimonial')} (
11
- `testimonial_id` int(11) unsigned NOT NULL auto_increment,
12
- `name` varchar(255) NOT NULL default '',
13
- `email` varchar(255) NOT NULL default '',
14
- `avatar_name` varchar(255) NULL default '',
15
- `avatar_path` varchar(255) NULL default '',
16
- `website` varchar(255) NOT NULL default '',
17
- `company` varchar(255) NOT NULL default '',
18
- `address` varchar(255) NOT NULL default '',
19
- `testimonial` text NOT NULL default '',
20
- `status` smallint(6) NOT NULL default '0',
21
- `created_time` datetime NULL,
22
- `update_time` datetime NULL,
23
- PRIMARY KEY (`testimonial_id`)
24
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
25
-
26
- ");
27
-
28
- $installer->endSetup();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/adminhtml/default/default/layout/catsidebarnav.xml DELETED
@@ -1,12 +0,0 @@
1
- <?xml version="1.0"?>
2
- <layout version="0.1.0">
3
- <catsidebarnav_adminhtml_catsidebarnav_edit>
4
- <update handle="editor"/>
5
- </catsidebarnav_adminhtml_catsidebarnav_edit>
6
- <catsidebarnav_adminhtml_catsidebarnav_index>
7
- <update handle="editor"/>
8
- <reference name="content">
9
- <block type="catsidebarnav/adminhtml_catsidebarnav" name="catsidebarnav" />
10
- </reference>
11
- </catsidebarnav_adminhtml_catsidebarnav_index>
12
- </layout>
 
 
 
 
 
 
 
 
 
 
 
 
app/design/frontend/{default → base}/default/layout/catsidebarnav.xml RENAMED
File without changes
app/design/frontend/base/default/template/catsidebarnav/catsidebarnav.phtml ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php $_helper = Mage::helper('catsidebarnav'); ?>
2
+ <?php $_menu = $this->renderCategoriesMenuHtml(0,'level-top') ?>
3
+ <?php if($_helper->isEnabled()): ?>
4
+ <?php if($_menu): ?>
5
+ <div class="block block-category-nav">
6
+ <div class="block-title">
7
+ <strong><span><?php echo $this->__('Categories') ?></span></strong>
8
+ </div>
9
+ <div class="block-content">
10
+ <ul id="category-sidebar-nav" class="category-sidebar-nav">
11
+ <?php echo $_menu ?>
12
+ </ul>
13
+ </div>
14
+ </div>
15
+ <?php endif ?>
16
+ <?php endif ?>
app/design/frontend/default/default/template/catsidebarnav/catsidebarnav.phtml DELETED
@@ -1,85 +0,0 @@
1
- <?php $_helper = Mage::helper('catsidebarnav'); ?>
2
- <?php $showtype = $_helper->getShowType();?>
3
- <?php $_menu = $this->renderCategoriesMenuHtml(0,'level-top') ?>
4
- <?php if($_helper->isEnabled()): ?>
5
- <?php if($showtype == 'static'):?>
6
- <link rel="stylesheet" type="text/css" href="<?php echo $this->getSkinUrl('css/magebuzz/catsidebarnav/static.css');?>" media="all" />
7
- <?php if($_menu): ?>
8
- <div class="block block-category-nav">
9
- <div class="block-title">
10
- <strong><span><?php echo $this->__('Categories') ?></span></strong>
11
- </div>
12
- <div class="block-content">
13
- <ul id="sidenav">
14
- <?php echo $_menu ?>
15
- </ul>
16
- </div>
17
- </div>
18
- <?php endif ?>
19
- <?php elseif ($showtype == 'click-2-click'):?>
20
- <link rel="stylesheet" type="text/css" href="<?php echo $this->getSkinUrl('css/magebuzz/catsidebarnav/click.css');?>" media="all" />
21
- <script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js" type="text/javascript"></script>
22
- <script type="text/javascript">
23
- var $j = jQuery.noConflict();
24
- $j(document).ready(function () {
25
- $j('#sidenav > li > a.show-cat').click(function(){
26
- $j('#sidenav li ul').slideUp();
27
- if (!$j(this).hasClass('active')){
28
- $j(this).next().slideToggle();
29
- $j('#sidenav li a.show-cat').removeClass('active');
30
- $j(this).addClass('active');
31
- }
32
- else if ($j(this).hasClass('active')) {
33
- $j(this).removeClass('active');
34
- }
35
- });
36
- $j('#sidenav > li > ul > li > a.show-cat').click(function(){
37
- $j('#sidenav li ul li ul').slideUp();
38
- if (!$j(this).hasClass('active')){
39
- $j(this).next().slideToggle();
40
- $j('#sidenav li ul li a.show-cat').removeClass('active');
41
- $j(this).addClass('active');
42
- }
43
- else if ($j(this).hasClass('active')) {
44
- $j(this).removeClass('active');
45
- }
46
- });
47
- });
48
- </script>
49
- <?php if($_menu): ?>
50
- <div class="block block-category-nav">
51
- <div class="block-title">
52
- <strong><span><?php echo $this->__('Categories') ?></span></strong>
53
- </div>
54
- <div class="block-content">
55
- <ul id="sidenav">
56
- <?php echo $_menu ?>
57
- </ul>
58
- </div>
59
- </div>
60
- <?php endif ?>
61
- <?php elseif ($showtype == 'fly-out'):?>
62
- <link rel="stylesheet" type="text/css" href="<?php echo $this->getSkinUrl('css/magebuzz/catsidebarnav/fly-out.css')?>" media="screen">
63
- <script type="text/javascript" src="<?php echo $this->getSkinUrl('js/magebuzz/catsidebarnav/jquery-1.2.6.min.js')?>"></script>
64
- <script type="text/javascript" src="<?php echo $this->getSkinUrl('js/magebuzz/catsidebarnav/hoverIntent.js')?>"></script>
65
- <script type="text/javascript" src="<?php echo $this->getSkinUrl('js/magebuzz/catsidebarnav/superfish.js')?>"></script>
66
- <script type="text/javascript">
67
- jQuery.noConflict();
68
- jQuery(function(){
69
- jQuery('ul.sf-menu').superfish();
70
- });
71
- </script>
72
- <?php if($_menu): ?>
73
- <div class="block block-category-nav">
74
- <div class="block-title">
75
- <strong><span><?php echo $this->__('Categories') ?></span></strong>
76
- </div>
77
- <div class="block-content">
78
- <ul class="sf-menu" id="left-nav">
79
- <?php echo $_menu ?>
80
- </ul>
81
- </div>
82
- </div>
83
- <?php endif ?>
84
- <?php endif ?>
85
- <?php endif ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/etc/modules/Magebuzz_Info.xml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Magebuzz_Info>
5
+ <active>true</active>
6
+ <codePool>community</codePool>
7
+ </Magebuzz_Info>
8
+ </modules>
9
+ </config>
js/magebuzz/catsidebarnav/jquery.min.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ /*! jQuery v1.7.1 jquery.com | jquery.org/license */
2
+ (function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(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 cb(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 ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(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 b$(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===bT,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=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),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 bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(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 bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(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(O.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 S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,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=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};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=m.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.7.1",length:0,size:function(){return this.length},toArray:function(){return F.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)?E.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(),A.add(a);return this},eq:function(a){a=+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(F.apply(this,arguments),"slice",F.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:E,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;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},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},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(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(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))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(w,"ms-").replace(v,x)},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:G?function(a){return a==null?"":G.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)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&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=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.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=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.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){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test("� ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.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:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([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&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=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,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},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"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(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(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},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.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;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(p);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(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");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(p);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+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.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}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),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,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},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},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.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(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.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,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(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}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?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.attrHooks.tabindex.set=w.set,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.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,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.enctype||(f.propFix.enctype="encoding"),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 z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
3
+ f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,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 instanceof f.Event))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()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},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)}}),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 contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.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&&!l.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&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.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&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,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(j,"")+" ";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(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.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]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),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]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.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!!m(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=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([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}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&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=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null: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=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=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(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)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 v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=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}),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)&&(o.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:[]}},o.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&&(o.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")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[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}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.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 m(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;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={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(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0: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=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.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(i?i.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(S(c[0])||S(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);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).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 V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",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|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={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,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._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){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):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.clean(arguments);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.clean(arguments));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()
4
+ {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))&&!bg[(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"&&bd.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?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=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,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},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=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),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++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.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.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;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=bz(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=bv.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(bz)return bz(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 bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.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.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,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=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,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&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.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(bN,"")).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||bO.test(this.nodeName)||bI.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(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(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?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[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","*":bX},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:bZ(bT),ajaxTransport:bZ(bU),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?cb(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=cc(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.fireWith(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.Callbacks("once memory"),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=bH.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.add,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(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.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]!=="*"?", "+bX+"; 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=b$(bU,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){if(s<2)w(-1,z);else throw 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)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),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&&(ce.test(b.url)||e&&ce.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(ce,l),b.url===j&&(e&&(k=k.replace(ce,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 cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,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,cf&&delete ch[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=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("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",cv(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(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].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(cu("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){function g(){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||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("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;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):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,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=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.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?: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=cy(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);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.support.fixedPosition&&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.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.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.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.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=cx.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&&!cx.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=cy(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=cy(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")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():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.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
js/magebuzz/catsidebarnav/jquery.noconflict.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery.noConflict();
package.xml CHANGED
@@ -1,19 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>magebuzz_category_sidebar_navigation</name>
4
- <version>0.1.0</version>
5
  <stability>stable</stability>
6
- <license>GNU General Public License</license>
7
  <channel>community</channel>
8
  <extends/>
9
- <summary>Category Sidebar Navigation is a simple solution for your Magento Store appearance which allows you to move the categories navigation to the left or right column.</summary>
10
- <description>Category Sidebar Navigation extension add the navigation of category in the left / right column of Magento site.&#xD;
11
- Support Magento 1.5 to 1.7</description>
12
- <notes>Works from Magento 1.5 - 1.7</notes>
13
  <authors><author><name>Magebuzz</name><user>magebuzz</user><email>magebuzz@gmail.com</email></author></authors>
14
- <date>2012-08-25</date>
15
- <time>08:09:49</time>
16
- <contents><target name="magecommunity"><dir name="Magebuzz"><dir name="Catsidebarnav"><dir name="Block"><file name="Catsidebarnav.php" hash="4082037a222818367677206ac7c4d610"/><file name="Sidebar.php" hash="b8cbfd8cfadc03a1e55e6d284999d131"/></dir><dir name="Helper"><file name="Category.php" hash="2b9d7291653830969d232d58ea98e754"/><file name="Data.php" hash="d360eb17b9aca0a7a99af9a3134dc744"/></dir><dir name="Model"><file name="Catsidebarnav.php" hash="0b43dc19c684b3ab974eb7bebcfd4102"/><dir name="Mysql4"><dir name="Catsidebarnav"><file name="Collection.php" hash="cd82814f4021ac3ecdb9f51394d71046"/></dir><file name="Catsidebarnav.php" hash="913c1c2be3e2d5736190c1fbd841917f"/></dir><file name="Session.php" hash="a26bbbd765aa44ab1228c4c64daf52bf"/><file name="Status.php" hash="48ee9b59935a7d083685ff384a3f61e2"/><dir name="System"><dir name="Config"><file name="Position.php" hash="7eee11a78f3440a857a0c2d71ca70cda"/><file name="Showlevel.php" hash="d8a9e30d1bd52474ef3703a5fb96128d"/><file name="Type.php" hash="b113ef52d5863af047be5f8fbc1681f6"/></dir></dir><dir name="Wysiwyg"><file name="Config.php" hash="6f59457a7e0ca5548e3d459950ff9d0c"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="28c3fe51908c33beb180fc34a1252a88"/></dir><dir name="etc"><file name="adminhtml.xml" hash="1d350724418c884ac3e561eb766ee984"/><file name="config.xml" hash="b3b721abf55ade07b2dbe4909bf745f5"/><file name="system.xml" hash="45bc566bce07f5d73dd702ddf1af0e68"/></dir></dir><dir name="Featuredproducts"><dir name="Block"><dir name="Adminhtml"><dir name="Edit"><file name="Grid.php" hash="a485c779c0a0d4759aa5642633030c69"/><dir name="Renderer"><file name="Visibility.php" hash="8e3cc5e22167daaf3ae82ce14beb0436"/></dir></dir><file name="Edit.php" hash="57e80f4968ba08194af75c8a7eaa64aa"/><dir name="Featuredproducts"><dir name="Edit"><file name="Form.php" hash="700b9a515897b81162979d2a96865164"/><dir name="Tab"><file name="Form.php" hash="eb0e466fb033d947cfaf0a501cdea233"/></dir><file name="Tabs.php" hash="39047b56cc7c8a4306cd66df7ec282e2"/></dir><file name="Edit.php" hash="31409a55324fc7a460775a9e8ec37b8c"/><file name="Grid.php" hash="1efdc2c819af4b7e6ce53c037bf268a4"/></dir><file name="Featuredproducts.php" hash="01b0f3fe9d82b9252139fe210c37c1f2"/></dir><file name="Featuredproducts.php" hash="2594fbfb04bad5ac5b26683fa2ed2c72"/><file name="Leftsidebar.php" hash="5f9e45d57e96cb32d57811c7dd882a1f"/><file name="Listing.php" hash="f722cb7c44a02aab8c6d71e684e4f9b3"/><dir name="Product"><file name="List.php" hash="c337c3351c297961802ca1dca07f2ab6"/></dir><file name="Rightsidebar.php" hash="dd19d630fcca62a73f3eb26061b520a2"/></dir><dir name="Helper"><file name="Data.php" hash="821fba0e28638539e136dd458f330851"/></dir><dir name="Model"><file name="Featuredproducts.php" hash="ad641a1770a4bdc3e4e6f0e830bd944f"/><dir name="Mysql4"><dir name="Featuredproducts"><file name="Collection.php" hash="f1839ba38bf88fdeb858f1f3c11fc641"/></dir><file name="Featuredproducts.php" hash="8b7b47b7d30b263024f555b0eed0c4ce"/></dir><file name="Status.php" hash="cc047f94153dbd4e2f05428895e49ac9"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Leftright.php" hash="9d6e089174c809e9eb2442c45131fe2b"/><file name="Sort.php" hash="749aeb40e48b63f83e90080a98e11a4c"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="FeaturedproductsController.php" hash="3499f5828ff61c337cd238e4d23f6cdb"/></dir><file name="IndexController.php" hash="a4206044dc53a5d89a178be2345c3467"/></dir><dir name="etc"><file name="adminhtml.xml" hash="fedeb460a37424d9ea3f2746a1d0c14e"/><file name="config.xml" hash="418c1b338548fb4afdb3cf34770fcdc7"/><file name="system.xml" hash="4d4b9954c0b01628d3f91fe6992e1356"/></dir><dir name="sql"><dir name="featuredproducts_setup"><file name="mysql4-install-0.1.0.php" hash="de6ec78b4f661e34a0ca22c0829ddd4e"/></dir></dir></dir><dir name="Productslider"><dir name="Block"><dir name="Adminhtml"><dir name="Productslider"><dir name="Edit"><file name="Form.php" hash="951ef8539702342595b653927700316d"/><dir name="Tab"><file name="Main.php" hash="a48d6aa9e62139228be7f3c8d59ff95d"/></dir><file name="Tabs.php" hash="ebac0af25c27cb2ce1d7b5383443a5ef"/></dir><file name="Edit.php" hash="0e5d80da43865f7550c16c667282f5a1"/><file name="Grid.php" hash="5bdeb3b696d53b8d2109def8b2f88c9e"/></dir><file name="Productslider.php" hash="a5603d383a9e2de1a6bbc8aec091fbbf"/></dir><dir name="Catalog"><dir name="Product"><dir name="List"><file name="Bestseller.php" hash="0f4962439ab852d088ed5f117514677f"/><file name="Mostviewed.php" hash="b4cb5b0710e7fe8d6b26b1a1d562a126"/><file name="Random.php" hash="90a6added83c59fa675122b57ee2aabc"/><file name="RecentlyAdd.php" hash="2acc2184220e065ae3c47966c6b19c62"/></dir></dir></dir><file name="Position.php" hash="8c2dcc009401d2ff8c0e4658c18d458c"/><file name="Productslider.php" hash="4809a7300a01ed28f6c2320fe97727a3"/></dir><dir name="Helper"><file name="Data.php" hash="8d3efdb728fe4095d21bb5d0cdfb96cc"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Productslider"><file name="Collection.php" hash="d8f906e20263052254d5c433c977fe02"/></dir><file name="Productslider.php" hash="974a67289ccf8b463c76a333e8b75df1"/></dir><file name="Productslider.php" hash="8ddbb5ececbc0af7b50ab5362b74c768"/><file name="Session.php" hash="9f7420294267b43d454ce37bdff9f076"/><file name="Status.php" hash="33a773eef771f4528a6445e44444ecfe"/><dir name="System"><dir name="Config"><file name="Position.php" hash="4ac40a43d758bd1cce98b048547a1d0e"/><file name="Styles.php" hash="6d8f546a74a2f1a78e3a9f934c30801e"/><file name="Type.php" hash="f0ff237b6b91ae4fd27a0e231851b277"/></dir></dir><dir name="Wysiwyg"><file name="Config.php" hash="9a85327ffe6fea993c66b221a3efc7ce"/></dir></dir><dir name="controllers"><file name="BestsellerController.php" hash="3df65dc89f5bbd6c975f2f002d6de33f"/><file name="IndexController.php" hash="7fe0c83e90c4ee89308034c9b4b4a6dc"/><file name="MostviewedController.php" hash="146aef7a8b16a0799ee41b8fb18a23c6"/><file name="RandomController.php" hash="e7bc2e270dc46368c1c7ce11808f20d7"/><file name="RecentlyAddController.php" hash="22760bbdc2e842087662f39f6da3b210"/></dir><dir name="etc"><file name="adminhtml.xml" hash="8c901bd992f9aa7a15d90b9cb19681c3"/><file name="config.xml" hash="cfaa58ee2a770d5a0334da2a7255e0f3"/><file name="system.xml" hash="8ccb375f53fee8c8049e7008bf871f92"/></dir><dir name="sql"><dir name="productslider_setup"><file name="mysql4-install-0.1.0.php" hash="17de854fd861f292843548f2f773ddc4"/></dir></dir></dir><dir name="Testimonial"><dir name="Block"><dir name="Adminhtml"><dir name="Testimonial"><dir name="Edit"><file name="Form.php" hash="ba270c9e6a0649640158a4e7296db7c0"/><dir name="Tab"><file name="Form.php" hash="23e8a99b175b14c3ee9e3929f6f9fd91"/></dir><file name="Tabs.php" hash="27cd556e98b32d812ed192786cdbc236"/></dir><file name="Edit.php" hash="847d5da7c41a2ecb1d52f2d0660d2b27"/><file name="Grid.php" hash="b2f8b1feb9f362ad88aaef0fe9b9acc4"/><dir name="Renderer"><file name="Image.php" hash="147db531f94f22aaf1fe2b4729da6958"/></dir></dir><file name="Testimonial.php" hash="4a96c929664199cad9f0b72fe9a54a4e"/></dir><file name="Captcha.php" hash="a77c988ba4dbcf27b542e6dae3719161"/><dir name="Form"><file name="Login.php" hash="1395941197aa0eb970e2ef7b1cdb820a"/></dir><file name="Form.php" hash="98adb7736a84392c5488b6cccd908b5c"/><file name="Sidebar.php" hash="69e2c2e7b494d876c2fb5aa1f1c42c1e"/><file name="Testimonial.php" hash="ef4ac0d339d53a9495cc5b7546c79590"/></dir><dir name="Helper"><file name="Data.php" hash="023de35c1c21d35e56ff4c992ca62ce1"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Testimonial"><file name="Collection.php" hash="0d2b5d81eca0b4cf42e0eaf29e03609b"/></dir><file name="Testimonial.php" hash="a68ee4d85402ae35e9c1d72bda057874"/></dir><file name="Session.php" hash="56af2e711e6686960eab7cbbadf5c6e0"/><file name="Status.php" hash="5d48c605820f8e20036f12e97cef08a3"/><file name="Testimonial.php" hash="85f59b4e3982ed4231796361c46da714"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="TestimonialController.php" hash="9517d8377bef9353f37963dc07c6a9b1"/></dir><file name="FormController.php" hash="de182113ae350664ac6cb2781c48b26f"/><file name="IndexController.php" hash="d8154ae35cf66cd27659f53fdb19a6a5"/></dir><dir name="etc"><file name="adminhtml.xml" hash="452febe214597b66d420141d124b9865"/><file name="config.xml" hash="55111ef7d6edd7439587c06ca0b197af"/><file name="system.xml" hash="36889d525f04bbc4e3b4af73a338e75a"/></dir><dir name="sql"><dir name="testimonial_setup"><file name="mysql4-install-0.1.0.php" hash="0d1bcca311aeba673098445bd52d5eb6"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="catsidebarnav.xml" hash="f1854e38a5be14abb77fd5797dcc79f0"/></dir><dir name="template"><dir name="catsidebarnav"><file name="catsidebarnav.phtml" hash="769b7d7a12e006959c602f0c200d7bce"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="catsidebarnav.xml" hash="707d493135c99a869be49649082f9556"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Magebuzz_Catsidebarnav.xml" hash="67a8647237adc1df2a7c263dcb1398b1"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Magebuzz_Catsidebarnav.csv" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="default"><dir name="default"><dir name="css"><dir name="magebuzz"><dir name="catsidebarnav"><file name="click.css" hash="84a4ef0f55d118f56b4695ad947869af"/><file name="fly-out.css" hash="9af59c42d604983ff5344b164656a36f"/><dir name="images"><file name="arrow.png" hash="e8e9d70926d376f3648b9774bc7ca5aa"/><file name="arrow_active.png" hash="4b4fd980e8d907ac96f74530f3b2947b"/><file name="bg_title.gif" hash="55d53ef258d04e2d64c26ceb2b3009e4"/><file name="sub_icon.gif" hash="36821f0d22f8c48a2f474097a424b928"/><file name="sub_icon_2.gif" hash="dbd0c9671b6adf1a894ee11a8fce79c6"/></dir><file name="static.css" hash="3a1372fe66fc5ac7e6c0b2b1edd8b450"/></dir></dir></dir><dir name="js"><dir name="magebuzz"><dir name="catsidebarnav"><file name="hoverIntent.js" hash="1a27531c68df91ec891a075b0832c2e8"/><file name="jquery-1.2.6.min.js" hash="a9331828c517ac5d97f93b3cfdbcc9bc"/><file name="superfish.js" hash="fc0e58c643434b422425d32999e10fec"/></dir></dir></dir></dir></dir></dir></target></contents>
17
  <compatible/>
18
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
19
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>magebuzz_category_sidebar_navigation</name>
4
+ <version>0.1.1</version>
5
  <stability>stable</stability>
6
+ <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
+ <summary>Allowing you to move the categories navigation to the left or right column</summary>
10
+ <description>Allowing you to move the categories navigation to the left or right column</description>
11
+ <notes>Category Sidebar Navigation</notes>
 
12
  <authors><author><name>Magebuzz</name><user>magebuzz</user><email>magebuzz@gmail.com</email></author></authors>
13
+ <date>2014-07-11</date>
14
+ <time>02:00:04</time>
15
+ <contents><target name="magecommunity"><dir name="Magebuzz"><dir name="Catsidebarnav"><dir name="Block"><file name="Catsidebarnav.php" hash="8908800789fd847df2396d12e0ecbf35"/><file name="Sidebar.php" hash="de61d083da95a85d5e45af522d1f16d6"/></dir><dir name="Helper"><file name="Category.php" hash="2b9d7291653830969d232d58ea98e754"/><file name="Data.php" hash="d360eb17b9aca0a7a99af9a3134dc744"/></dir><dir name="Model"><file name="Catsidebarnav.php" hash="0b43dc19c684b3ab974eb7bebcfd4102"/><dir name="Mysql4"><dir name="Catsidebarnav"><file name="Collection.php" hash="cd82814f4021ac3ecdb9f51394d71046"/></dir><file name="Catsidebarnav.php" hash="913c1c2be3e2d5736190c1fbd841917f"/></dir><file name="Session.php" hash="a26bbbd765aa44ab1228c4c64daf52bf"/><file name="Status.php" hash="48ee9b59935a7d083685ff384a3f61e2"/><dir name="System"><dir name="Config"><file name="Position.php" hash="7eee11a78f3440a857a0c2d71ca70cda"/><file name="Showlevel.php" hash="d8a9e30d1bd52474ef3703a5fb96128d"/><file name="Type.php" hash="b113ef52d5863af047be5f8fbc1681f6"/></dir></dir><dir name="Wysiwyg"><file name="Config.php" hash="6f59457a7e0ca5548e3d459950ff9d0c"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="28c3fe51908c33beb180fc34a1252a88"/></dir><dir name="etc"><file name="adminhtml.xml" hash="1d350724418c884ac3e561eb766ee984"/><file name="config.xml" hash="a0678f4ae037eea9dc58e104874d5b71"/><file name="system.xml" hash="45bc566bce07f5d73dd702ddf1af0e68"/></dir></dir><dir name="Info"><dir name="Block"><dir name="System"><dir name="Config"><file name="Extensions.php" hash="aa5773e8b5dc6a33b9d4cc1154fbb69d"/><file name="General.php" hash="2cbe45ec38e2fc090141d0df421bed6e"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="7582d16054340a767e7ed5190e71b0ad"/></dir><dir name="Model"><file name="Feed.php" hash="aa72a9d25541f123978c8598af191274"/></dir><dir name="etc"><file name="adminhtml.xml" hash="4f60efb5ce51a052113a0e895c925fbc"/><file name="config.xml" hash="bc04f45fa0580e0f26a611e14fc2ca74"/><file name="system.xml" hash="ea315b0f9ca775ce9d11e373ba50d6d2"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="catsidebarnav.xml" hash="f1854e38a5be14abb77fd5797dcc79f0"/></dir><dir name="template"><dir name="catsidebarnav"><file name="catsidebarnav.phtml" hash="699c0b361f2be4139da5b172b8cfd61d"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Magebuzz_Catsidebarnav.xml" hash="67a8647237adc1df2a7c263dcb1398b1"/><file name="Magebuzz_Info.xml" hash="81abb2ad3ff3428ae5b3b7c5aa04b937"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Magebuzz_Catsidebarnav.csv" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="magebuzz"><dir name="catsidebarnav"><file name="click.css" hash="7510173285778b81f61b50f3dd82c405"/><file name="fly-out.css" hash="3e332a582423cd23af98f0bedbf31c0b"/><dir name="images"><file name="arrow.png" hash="e8e9d70926d376f3648b9774bc7ca5aa"/><file name="arrow_active.png" hash="4b4fd980e8d907ac96f74530f3b2947b"/><file name="bg_title.gif" hash="55d53ef258d04e2d64c26ceb2b3009e4"/><file name="sub_icon.gif" hash="36821f0d22f8c48a2f474097a424b928"/><file name="sub_icon_2.gif" hash="dbd0c9671b6adf1a894ee11a8fce79c6"/></dir><file name="static.css" hash="1fdc2994114fc8f12c00b0c287ee77b1"/></dir></dir></dir><dir name="js"><dir name="magebuzz"><dir name="catsidebarnav"><file name="click2click.js" hash="19d34e70b3721463d334bd99e8eb1d79"/><dir name="fly-out"><file name="fly-out.js" hash="178afc72038e2197d430d5f9d57c067b"/><file name="hoverIntent.js" hash="1a27531c68df91ec891a075b0832c2e8"/><file name="superfish.js" hash="fc0e58c643434b422425d32999e10fec"/></dir></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="magebuzz"><file name="facebook.png" hash="d6b1bea3a11c7cf5374e2937d731e315"/><file name="ok.gif" hash="a38bc2ee6e116e39c6e2e3013ee50f5e"/><file name="twitter.png" hash="9b6278124eaa0b2c19a2253bd844bbb4"/><file name="update.gif" hash="8342e11f7739fcfa25134707f0536ed6"/></dir></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="magebuzz"><dir name="catsidebarnav"><file name="jquery.min.js" hash="a74f49c294a8cc83cf3639f68e8c60d7"/><file name="jquery.noconflict.js" hash="3179f2255b046d5f2e9a71e365287bef"/></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>
skin/adminhtml/default/default/images/magebuzz/facebook.png ADDED
Binary file
skin/adminhtml/default/default/images/magebuzz/ok.gif ADDED
Binary file
skin/adminhtml/default/default/images/magebuzz/twitter.png ADDED
Binary file
skin/adminhtml/default/default/images/magebuzz/update.gif ADDED
Binary file
skin/frontend/base/default/css/magebuzz/catsidebarnav/click.css ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /********Css For Category Sidebar Navigation ************/
2
+ .block-category-nav{}
3
+ .block-category-nav .block-content{}
4
+ #category-sidebar-nav{}
5
+ #category-sidebar-nav li{border-bottom:1px solid #DDDDDD; padding:3px 0;}
6
+ #category-sidebar-nav li.last{border:0 none;}
7
+ /* #sidenav li:hover{background:#d9ecf2} */
8
+ #category-sidebar-nav li a{font-size:12px; font-weight:normal; color:#333333; text-decoration:none; padding-left:10px;}
9
+ #category-sidebar-nav li a.show-cat{background:url(images/arrow.png) center center no-repeat; padding-right:10px;}
10
+ #category-sidebar-nav li a.active{background:url(images/arrow_active.png) center center no-repeat; padding-right:10px;}
11
+ #category-sidebar-nav li a:hover{color:#f7931d;/* text-decoration:underline; */}
12
+ /* Level 0 */
13
+ #category-sidebar-nav li.level-top{line-height:25px;}
14
+ #category-sidebar-nav li.level-top a.level-top{ font-weight:bold;}
15
+ #category-sidebar-nav li ul.level0{padding:0 10px; display:none;}
16
+ #category-sidebar-nav li ul.level0 li{border-bottom:1px dotted #cacaca;}
17
+ #category-sidebar-nav li ul.level0 li.last{border:0 none;}
18
+ /* Level 1 */
19
+ #category-sidebar-nav li ul li ul{ display:none;padding:0 10px;}
20
+ #category-sidebar-nav li ul li ul li a{color:#5a5a5a;}
skin/frontend/base/default/css/magebuzz/catsidebarnav/fly-out.css ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .block-category-nav{}
2
+ /*** ESSENTIAL STYLES ***/
3
+ .category-sidebar-nav, .category-sidebar-nav * {
4
+ margin: 0;
5
+ padding: 0;
6
+ list-style: none;
7
+ }
8
+ .category-sidebar-nav ul {
9
+ position: absolute;
10
+ top: -999em;
11
+ }
12
+ .category-sidebar-nav ul li {
13
+ /* width: 100%; */
14
+ }
15
+ .category-sidebar-nav li:hover {
16
+ visibility: inherit; /* fixes IE7 'sticky bug' */
17
+ }
18
+ .category-sidebar-nav li {
19
+ position: relative;
20
+ }
21
+ .category-sidebar-nav a {
22
+ display: block;
23
+ position: relative;
24
+ }
25
+ .category-sidebar-nav a:hover{color:#f26522}
26
+ .category-sidebar-nav li:hover ul,
27
+ .category-sidebar-nav li.sfHover ul {
28
+ background: none repeat scroll 0 0 #FFFFFF;
29
+ border: 1px solid #DDDDDD;
30
+ box-shadow: 3px 3px 3px #464646;
31
+ left: 185px;
32
+ padding:10px;
33
+ top: 2.5px;
34
+ width: 180px;
35
+ z-index: 99999;
36
+ }
37
+ ul.category-sidebar-nav li:hover li ul,
38
+ ul.category-sidebar-nav li.sfHover li ul {
39
+ top: -999em;
40
+ }
41
+ ul.category-sidebar-nav li li:hover ul,
42
+ ul.category-sidebar-nav li li.sfHover ul {
43
+ left: 185px; /* match ul width */
44
+ top: 0;
45
+ }
46
+ ul.category-sidebar-nav li li:hover li ul,
47
+ ul.category-sidebar-nav li li.sfHover li ul {
48
+ top: -999em;
49
+ }
50
+ ul.category-sidebar-nav li li li:hover ul,
51
+ ul.category-sidebar-nav li li li.sfHover ul {
52
+ left: 10em; /* match ul width */
53
+ top: 0;
54
+ }
55
+
56
+ /*** DEMO SKIN ***/
57
+ .category-sidebar-nav {}
58
+ .category-sidebar-nav a {font-size:13px; font-weight:normal; color:#333333; text-decoration:none; padding:0 0 0 10px;}
59
+ .category-sidebar-nav a, .category-sidebar-nav a:visited {}
60
+ .category-sidebar-nav li.last {background: none transparent!important;}
61
+ .category-sidebar-nav li {padding:3px 0;}
62
+ .category-sidebar-nav li li {
63
+ background:0 none;
64
+ width:100%;
65
+ float:left;
66
+ }
67
+ .category-sidebar-nav li li li {
68
+
69
+ }
70
+ .category-sidebar-nav li li li a:hover{color:#f26522}
71
+ .category-sidebar-nav li.sfHover,
72
+ .category-sidebar-nav a:focus, .category-sidebar-nav a:hover, .category-sidebar-nav a:active {
73
+ outline: 0;
74
+ }
75
+
76
+ /*** arrows **/
77
+ .category-sidebar-nav a.sf-with-ul {min-width: 1px;}
78
+ .category-sidebar-nav li.parent a.sf-with-ul {background: url(images/sub_icon.gif) no-repeat scroll 96% center transparent;}
79
+ .category-sidebar-nav li.sfHover a{color:#595959;}
80
+ .category-sidebar-nav li.sfHover ul li a:hover{color:#f26522}
81
+ .category-sidebar-nav li.sfHover ul li.sfHover{/* background:#f26522!important; */}
82
+ .category-sidebar-nav li.sfHover li a{border:0 none;height: auto;}
83
+ .category-sidebar-nav li.sfHover li.parent li a{background: none transparent!important;}
84
+ .category-sidebar-nav li.sfHover li.parent a{
85
+ background: url(images/sub_icon_2.gif) no-repeat scroll right center transparent;
86
+ color: #595959;
87
+ margin-right: 10px;
88
+ }
89
+ .category-sidebar-nav li.sfHover li li a{color:#595959;}
90
+ .category-sidebar-nav li.sfHover ul li a{ padding-left: 0;padding-right: 10px;}
91
+ .category-sidebar-nav li.sfHover ul li.sfHover a.hover{ color:#f26522}
92
+ .category-sidebar-nav li.sfHover a.level-top .sf-sub-indicator{ background:0 none;}
93
+ a > .sf-sub-indicator { /* give all except IE6 the correct values */
94
+
95
+ }
96
+ /* apply hovers to modern browsers */
97
+ a:focus > .sf-sub-indicator,
98
+ a:hover > .sf-sub-indicator,
99
+ a:active > .sf-sub-indicator,
100
+ li:hover > a > .sf-sub-indicator,
101
+ li.sfHover > a > .sf-sub-indicator {
102
+ }
103
+
104
+ /* point right for anchors in subs */
105
+ .category-sidebar-nav ul .sf-sub-indicator { background-position: -10px 0; }
106
+ .category-sidebar-nav ul a > .sf-sub-indicator { background-position: 0 0; }
107
+ /* apply hovers to modern browsers */
108
+ .category-sidebar-nav ul a:focus > .sf-sub-indicator,
109
+ .category-sidebar-nav ul a:hover > .sf-sub-indicator,
110
+ .category-sidebar-nav ul a:active > .sf-sub-indicator,
111
+ .category-sidebar-nav ul li:hover > a > .sf-sub-indicator,
112
+ .category-sidebar-nav ul li.sfHover > a > .sf-sub-indicator {
113
+ background-position: -10px 0; /* arrow hovers for modern browsers*/
114
+ }
115
+
116
+ /*** shadows for all but IE6 ***/
117
+ .sf-shadow ul {
118
+ }
119
+ .sf-shadow ul.sf-shadow-off {
120
+ background: transparent;
121
+ }
skin/frontend/{default → base}/default/css/magebuzz/catsidebarnav/images/arrow.png RENAMED
File without changes
skin/frontend/{default → base}/default/css/magebuzz/catsidebarnav/images/arrow_active.png RENAMED
File without changes
skin/frontend/{default → base}/default/css/magebuzz/catsidebarnav/images/bg_title.gif RENAMED
File without changes
skin/frontend/{default → base}/default/css/magebuzz/catsidebarnav/images/sub_icon.gif RENAMED
File without changes
skin/frontend/{default → base}/default/css/magebuzz/catsidebarnav/images/sub_icon_2.gif RENAMED
File without changes
skin/frontend/base/default/css/magebuzz/catsidebarnav/static.css ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /********Css For Category Sidebar Navigation ************/
2
+ .block-category-nav{}
3
+ .block-category-nav .block-content{padding:10px;}
4
+ #category-sidebar-nav{}
5
+ #category-sidebar-nav li{border-bottom:1px solid #cacaca; padding:3px 0;}
6
+ #category-sidebar-nav li.last{border:0 none;}
7
+ #category-sidebar-nav li a{font-size:13px; font-weight:normal; color:#333333; text-decoration:none;}
8
+ #category-sidebar-nav li a:hover{color:#f7931d;/* text-decoration:underline; */}
9
+ /* Level 0 */
10
+ #category-sidebar-nav li.level-top a.level-top{ font-weight:bold;}
11
+ #category-sidebar-nav li ul.level0{padding-left:10px;}
12
+ #category-sidebar-nav li ul.level0 li{border-bottom:1px dotted #cacaca;}
13
+ #category-sidebar-nav li ul.level0 li.last{border:0 none;}
14
+ /* Level 1 */
15
+ #category-sidebar-nav li ul li ul{padding-left:10px;}
16
+ #category-sidebar-nav li ul li ul li a{color:#5a5a5a;}
skin/frontend/base/default/js/magebuzz/catsidebarnav/click2click.js ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function () {
2
+ jQuery('#category-sidebar-nav > li > a.show-cat').click(function(){
3
+ jQuery('#category-sidebar-nav li ul').slideUp();
4
+ if (!jQuery(this).hasClass('active')){
5
+ jQuery(this).next().slideToggle();
6
+ jQuery('#category-sidebar-nav li a.show-cat').removeClass('active');
7
+ jQuery(this).addClass('active');
8
+ }
9
+ else if (jQuery(this).hasClass('active')) {
10
+ jQuery(this).removeClass('active');
11
+ }
12
+ });
13
+ jQuery('#category-sidebar-nav > li > ul > li > a.show-cat').click(function(){
14
+ jQuery('#category-sidebar-nav li ul li ul').slideUp();
15
+ if (!jQuery(this).hasClass('active')){
16
+ jQuery(this).next().slideToggle();
17
+ jQuery('#category-sidebar-nav li ul li a.show-cat').removeClass('active');
18
+ jQuery(this).addClass('active');
19
+ }
20
+ else if (jQuery(this).hasClass('active')) {
21
+ jQuery(this).removeClass('active');
22
+ }
23
+ });
24
+ });
skin/frontend/base/default/js/magebuzz/catsidebarnav/fly-out/fly-out.js ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ jQuery(function(){
2
+ jQuery('ul.category-sidebar-nav').superfish();
3
+ });
skin/frontend/{default/default/js/magebuzz/catsidebarnav → base/default/js/magebuzz/catsidebarnav/fly-out}/hoverIntent.js RENAMED
File without changes
skin/frontend/{default/default/js/magebuzz/catsidebarnav → base/default/js/magebuzz/catsidebarnav/fly-out}/superfish.js RENAMED
File without changes
skin/frontend/default/default/css/magebuzz/catsidebarnav/click.css DELETED
@@ -1,22 +0,0 @@
1
- /********Css For Category Sidebar Navigation ************/
2
- .block-category-nav{border:0 none;}
3
- .block-category-nav .block-title{background:#f7931d; border:0 none;padding: 5px 10px;border-radius: 5px 5px 0 0;}
4
- .block-category-nav .block-title strong{color: #FFFFFF; display: block; padding:0; font: bold 13px/16px Arial,Helvetica,sans-serif; min-height: 16px;text-transform: capitalize;}
5
- .block-category-nav .block-content{background:#FFFFFF; border:1px solid #DDDDDD; border-top:0 none; padding:0;}
6
- #sidenav{}
7
- #sidenav li{border-bottom:1px solid #DDDDDD; padding:3px 0;}
8
- #sidenav li.last{border:0 none;}
9
- /* #sidenav li:hover{background:#d9ecf2} */
10
- #sidenav li a{font-size:12px; font-weight:normal; color:#333333; text-decoration:none; padding-left:10px;}
11
- #sidenav li a.show-cat{background:url(images/arrow.png) center center no-repeat; padding-right:10px;}
12
- #sidenav li a.active{background:url(images/arrow_active.png) center center no-repeat; padding-right:10px;}
13
- #sidenav li a:hover{color:#f7931d;/* text-decoration:underline; */}
14
- /* Level 0 */
15
- #sidenav li.level-top{line-height:25px;}
16
- #sidenav li.level-top a.level-top{ font-weight:bold;}
17
- #sidenav li ul.level0{padding:0 10px; display:none;}
18
- #sidenav li ul.level0 li{border-bottom:1px dotted #cacaca;}
19
- #sidenav li ul.level0 li.last{border:0 none;}
20
- /* Level 1 */
21
- #sidenav li ul li ul{ display:none;padding:0 10px;}
22
- #sidenav li ul li ul li a{color:#5a5a5a;}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
skin/frontend/default/default/css/magebuzz/catsidebarnav/fly-out.css DELETED
@@ -1,124 +0,0 @@
1
- .block-category-nav{border:0 none;}
2
- .block-category-nav .block-title{background:#f7931d; border:0 none;padding: 5px 10px;border-radius: 3px 3px 0 0;}
3
- .block-category-nav .block-title strong{color: #FFFFFF; display: block; padding:0; font: bold 13px/16px Arial,Helvetica,sans-serif; min-height: 16px;text-transform: capitalize;}
4
- .block-category-nav .block-content{background:#FFFFFF; border:1px solid #DDDDDD; border-top:0 none; padding:5px 10px;}
5
- /*** ESSENTIAL STYLES ***/
6
- .sf-menu, .sf-menu * {
7
- margin: 0;
8
- padding: 0;
9
- list-style: none;
10
- }
11
- .sf-menu ul {
12
- position: absolute;
13
- top: -999em;
14
- }
15
- .sf-menu ul li {
16
- /* width: 100%; */
17
- }
18
- .sf-menu li:hover {
19
- visibility: inherit; /* fixes IE7 'sticky bug' */
20
- }
21
- .sf-menu li {
22
- position: relative;
23
- }
24
- .sf-menu a {
25
- display: block;
26
- position: relative;
27
- }
28
- .sf-menu a:hover{color:#f26522}
29
- .sf-menu li:hover ul,
30
- .sf-menu li.sfHover ul {
31
- background: none repeat scroll 0 0 #FFFFFF;
32
- border: 1px solid #DDDDDD;
33
- box-shadow: 3px 3px 3px #464646;
34
- left: 185px;
35
- padding:10px;
36
- top: 2.5px;
37
- width: 180px;
38
- z-index: 99999;
39
- }
40
- ul.sf-menu li:hover li ul,
41
- ul.sf-menu li.sfHover li ul {
42
- top: -999em;
43
- }
44
- ul.sf-menu li li:hover ul,
45
- ul.sf-menu li li.sfHover ul {
46
- left: 185px; /* match ul width */
47
- top: 0;
48
- }
49
- ul.sf-menu li li:hover li ul,
50
- ul.sf-menu li li.sfHover li ul {
51
- top: -999em;
52
- }
53
- ul.sf-menu li li li:hover ul,
54
- ul.sf-menu li li li.sfHover ul {
55
- left: 10em; /* match ul width */
56
- top: 0;
57
- }
58
-
59
- /*** DEMO SKIN ***/
60
- .sf-menu {}
61
- .sf-menu a {font-size:13px; font-weight:normal; color:#333333; text-decoration:none;}
62
- .sf-menu a, .sf-menu a:visited {}
63
- .sf-menu li.last {background: none transparent!important;}
64
- .sf-menu li {padding:3px 0;}
65
- .sf-menu li li {
66
- background:0 none;
67
- width:100%;
68
- float:left;
69
- }
70
- .sf-menu li li li {
71
-
72
- }
73
- .sf-menu li li li a:hover{color:#f26522}
74
- .sf-menu li.sfHover,
75
- .sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {
76
- outline: 0;
77
- }
78
-
79
- /*** arrows **/
80
- .sf-menu a.sf-with-ul {min-width: 1px;}
81
- .sf-menu li.parent a.sf-with-ul {background: url(images/sub_icon.gif) no-repeat scroll right center transparent;}
82
- .sf-menu li.sfHover a{color:#595959;}
83
- .sf-menu li.sfHover ul li a:hover{color:#f26522}
84
- .sf-menu li.sfHover ul li.sfHover{/* background:#f26522!important; */}
85
- .sf-menu li.sfHover li a{border:0 none;height: auto;}
86
- .sf-menu li.sfHover li.parent li a{background: none transparent!important;}
87
- .sf-menu li.sfHover li.parent a{
88
- background: url(images/sub_icon_2.gif) no-repeat scroll right center transparent;
89
- color: #595959;
90
- margin-right: 10px;
91
- }
92
- .sf-menu li.sfHover li li a{color:#595959;}
93
- .sf-menu li.sfHover ul li a{ padding-left: 0;padding-right: 10px;}
94
- .sf-menu li.sfHover ul li.sfHover a.hover{ color:#f26522}
95
- .sf-menu li.sfHover a.level-top .sf-sub-indicator{ background:0 none;}
96
- a > .sf-sub-indicator { /* give all except IE6 the correct values */
97
-
98
- }
99
- /* apply hovers to modern browsers */
100
- a:focus > .sf-sub-indicator,
101
- a:hover > .sf-sub-indicator,
102
- a:active > .sf-sub-indicator,
103
- li:hover > a > .sf-sub-indicator,
104
- li.sfHover > a > .sf-sub-indicator {
105
- }
106
-
107
- /* point right for anchors in subs */
108
- .sf-menu ul .sf-sub-indicator { background-position: -10px 0; }
109
- .sf-menu ul a > .sf-sub-indicator { background-position: 0 0; }
110
- /* apply hovers to modern browsers */
111
- .sf-menu ul a:focus > .sf-sub-indicator,
112
- .sf-menu ul a:hover > .sf-sub-indicator,
113
- .sf-menu ul a:active > .sf-sub-indicator,
114
- .sf-menu ul li:hover > a > .sf-sub-indicator,
115
- .sf-menu ul li.sfHover > a > .sf-sub-indicator {
116
- background-position: -10px 0; /* arrow hovers for modern browsers*/
117
- }
118
-
119
- /*** shadows for all but IE6 ***/
120
- .sf-shadow ul {
121
- }
122
- .sf-shadow ul.sf-shadow-off {
123
- background: transparent;
124
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
skin/frontend/default/default/css/magebuzz/catsidebarnav/static.css DELETED
@@ -1,18 +0,0 @@
1
- /********Css For Category Sidebar Navigation ************/
2
- .block-category-nav{border:0 none;}
3
- .block-category-nav .block-title{background:#f7931d; border:0 none;padding: 5px 10px;border-radius: 5px 5px 0 0;}
4
- .block-category-nav .block-title strong{color: #FFFFFF; display: block; padding:0; font: bold 13px/16px Arial,Helvetica,sans-serif; min-height: 16px;text-transform: capitalize;}
5
- .block-category-nav .block-content{background:#FFFFFF; border:1px solid #DDDDDD; border-top:0 none; padding:5px 10px;}
6
- #sidenav{}
7
- #sidenav li{border-bottom:1px solid #cacaca; padding:3px 0;}
8
- #sidenav li.last{border:0 none;}
9
- #sidenav li a{font-size:13px; font-weight:normal; color:#333333; text-decoration:none;}
10
- #sidenav li a:hover{color:#f7931d;/* text-decoration:underline; */}
11
- /* Level 0 */
12
- #sidenav li.level-top a.level-top{ font-weight:bold;}
13
- #sidenav li ul.level0{padding-left:10px;}
14
- #sidenav li ul.level0 li{border-bottom:1px dotted #cacaca;}
15
- #sidenav li ul.level0 li.last{border:0 none;}
16
- /* Level 1 */
17
- #sidenav li ul li ul{padding-left:10px;}
18
- #sidenav li ul li ul li a{color:#5a5a5a;}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
skin/frontend/default/default/js/magebuzz/catsidebarnav/jquery-1.2.6.min.js DELETED
@@ -1,32 +0,0 @@
1
- /*
2
- * jQuery 1.2.6 - New Wave Javascript
3
- *
4
- * Copyright (c) 2008 John Resig (jquery.com)
5
- * Dual licensed under the MIT (MIT-LICENSE.txt)
6
- * and GPL (GPL-LICENSE.txt) licenses.
7
- *
8
- * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
9
- * $Rev: 5685 $
10
- */
11
- (function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
12
- return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
13
- return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
14
- selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
15
- return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
16
- this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
17
- return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
18
- jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&&copy&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
19
- script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
20
- for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
21
- for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
22
- jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
23
- ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&&notxml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
24
- while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
25
- while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
26
- for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
27
- jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
28
- xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
29
- jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
30
- for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
31
- s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
32
- e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();