sidebar_category_listing - Version 1.1.3

Version Notes

Third Release with color updates

Download this release

Release Info

Developer Matrix infologics
Extension sidebar_category_listing
Version 1.1.3
Comparing to
See all releases


Code changes from version 1.1.2 to 1.1.3

Files changed (51) hide show
  1. app/code/community/Matrix/Sidecat/Block/Sidebar.php +137 -0
  2. app/code/community/Matrix/Sidecat/Block/Sidebar.php~ +137 -0
  3. app/code/community/Matrix/Sidecat/Block/Sidecat.php +49 -0
  4. app/code/community/Matrix/Sidecat/Block/Sidecat.php~ +49 -0
  5. app/code/community/Matrix/Sidecat/Helper/Category.php +31 -0
  6. app/code/community/Matrix/Sidecat/Helper/Category.php~ +31 -0
  7. app/code/community/Matrix/Sidecat/Helper/Data.php +29 -0
  8. app/code/community/Matrix/Sidecat/Helper/Data.php~ +14 -0
  9. app/code/community/Matrix/Sidecat/Model/Mysql4/Sidecat.php +10 -0
  10. app/code/community/Matrix/Sidecat/Model/Mysql4/Sidecat.php~ +10 -0
  11. app/code/community/Matrix/Sidecat/Model/Mysql4/Sidecat/Collection.php +10 -0
  12. app/code/community/Matrix/Sidecat/Model/Mysql4/Sidecat/Collection.php~ +10 -0
  13. app/code/community/Matrix/Sidecat/Model/Session.php +10 -0
  14. app/code/community/Matrix/Sidecat/Model/Session.php~ +10 -0
  15. app/code/community/Matrix/Sidecat/Model/Sidecat.php +10 -0
  16. app/code/community/Matrix/Sidecat/Model/Sidecat.php~ +10 -0
  17. app/code/community/Matrix/Sidecat/Model/Status.php +15 -0
  18. app/code/community/Matrix/Sidecat/Model/Status.php~ +15 -0
  19. app/code/community/Matrix/Sidecat/Model/System/Config/Font.php +15 -0
  20. app/code/community/Matrix/Sidecat/Model/System/Config/Position.php +14 -0
  21. app/code/community/Matrix/Sidecat/Model/System/Config/Position.php~ +14 -0
  22. app/code/community/Matrix/Sidecat/Model/System/Config/Showlevel.php +17 -0
  23. app/code/community/Matrix/Sidecat/Model/System/Config/Showlevel.php~ +17 -0
  24. app/code/community/Matrix/Sidecat/Model/System/Config/Type.php +15 -0
  25. app/code/community/Matrix/Sidecat/Model/System/Config/Type.php~ +15 -0
  26. app/code/community/Matrix/Sidecat/Model/Wysiwyg/Config.php +34 -0
  27. app/code/community/Matrix/Sidecat/Model/Wysiwyg/Config.php~ +34 -0
  28. app/code/community/Matrix/Sidecat/controllers/IndexController.php +9 -0
  29. app/code/community/Matrix/Sidecat/controllers/IndexController.php~ +9 -0
  30. app/code/community/Matrix/Sidecat/etc/adminhtml.xml +26 -0
  31. app/code/community/Matrix/Sidecat/etc/adminhtml.xml~ +26 -0
  32. app/code/community/Matrix/Sidecat/etc/config.xml +134 -0
  33. app/code/community/Matrix/Sidecat/etc/config.xml~ +134 -0
  34. app/code/community/Matrix/Sidecat/etc/system.xml +115 -0
  35. app/code/community/Matrix/Sidecat/etc/system.xml~ +114 -0
  36. app/design/frontend/default/default/layout/sidecat.xml +20 -0
  37. app/design/frontend/default/default/template/sidecat/sidecat.phtml +104 -0
  38. app/etc/modules/Matrix_Sidecat.xml +9 -0
  39. package.xml +4 -4
  40. skin/frontend/default/default/css/matrix/sidecat/click.css +22 -0
  41. skin/frontend/default/default/css/matrix/sidecat/fly-out.css +124 -0
  42. skin/frontend/default/default/css/matrix/sidecat/images/Thumbs.db +0 -0
  43. skin/frontend/default/default/css/matrix/sidecat/images/arrow.png +0 -0
  44. skin/frontend/default/default/css/matrix/sidecat/images/arrow_active.png +0 -0
  45. skin/frontend/default/default/css/matrix/sidecat/images/bg_title.gif +0 -0
  46. skin/frontend/default/default/css/matrix/sidecat/images/sub_icon.gif +0 -0
  47. skin/frontend/default/default/css/matrix/sidecat/images/sub_icon_2.gif +0 -0
  48. skin/frontend/default/default/css/matrix/sidecat/static.css +18 -0
  49. skin/frontend/default/default/js/matrix/sidecat/hoverIntent.js +84 -0
  50. skin/frontend/default/default/js/matrix/sidecat/jquery-1.2.6.min.js +32 -0
  51. skin/frontend/default/default/js/matrix/sidecat/superfish.js +121 -0
app/code/community/Matrix/Sidecat/Block/Sidebar.php ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Matrix_Sidecat_Block_Sidebar extends Matrix_Sidecat_Block_Sidecat
3
+ {
4
+ public function _construct() {
5
+ $this->setTemplate('sidecat/sidecat.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('sidecat/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('sidecat/display_settings/show_type');
21
+ if (!$category->getIsActive()) {
22
+ return '';
23
+ }
24
+ $html = array();
25
+
26
+ // get all child categories
27
+ if (Mage::helper('catalog/category_flat')->isEnabled()) {
28
+ $children = (array)$category->getChildrenNodes();
29
+ $childrenCount = count($children);
30
+ } else {
31
+ $children = $category->getChildren();
32
+ $childrenCount = $children->count();
33
+ }
34
+ $hasChildren = ($children && $childrenCount);
35
+
36
+ // select active chid categories
37
+ $activeChildren = array();
38
+ foreach ($children as $child) {
39
+ if ($child->getIsActive()) {
40
+ $activeChildren[] = $child;
41
+ }
42
+ }
43
+ $activeChildrenCount = count($activeChildren);
44
+ $hasActiveChildren = ($activeChildrenCount > 0);
45
+
46
+ // prepare list item html classes
47
+ $classes = array();
48
+ $classes[] = 'level' . $level;
49
+ $classes[] = 'nav-' . $this->_getItemPosition($level);
50
+ if ($this->isCategoryActive($category)) {
51
+ $classes[] = 'active';
52
+ }
53
+ $linkClass = '';
54
+ if ($isOutermost && $outermostItemClass) {
55
+ $classes[] = $outermostItemClass;
56
+ $linkClass = ' class="'.$outermostItemClass.'"';
57
+ }
58
+ if ($isFirst) {
59
+ $classes[] = 'first';
60
+ }
61
+ if ($isLast) {
62
+ $classes[] = 'last';
63
+ }
64
+ if ($hasActiveChildren) {
65
+ $classes[] = 'parent';
66
+ }
67
+
68
+ // prepare list item attributes
69
+ $attributes = array();
70
+ if (count($classes) > 0) {
71
+ $attributes['class'] = implode(' ', $classes);
72
+ }
73
+ if ($hasActiveChildren && !$noEventAttributes) {
74
+ $attributes['onmouseover'] = 'toggleMenu(this,1)';
75
+ $attributes['onmouseout'] = 'toggleMenu(this,0)';
76
+ }
77
+
78
+ // assemble list item with attributes
79
+ $htmlLi = '<li';
80
+ foreach ($attributes as $attrName => $attrValue) {
81
+ $htmlLi .= ' ' . $attrName . '="' . str_replace('"', '\"', $attrValue) . '"';
82
+ }
83
+ $htmlLi .= '>';
84
+ $html[] = $htmlLi;
85
+ if ($hasActiveChildren) {
86
+ if($showType == 'click-2-click'){
87
+ $html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.'>';
88
+ $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
89
+ $html[] = '</a>';
90
+ $html[] = '<a href="javascript://" class="right show-cat">&nbsp;';
91
+ $html[] = '</a>';
92
+ }
93
+ else{
94
+ $html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.'>';
95
+ $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
96
+ $html[] = '</a>';
97
+ }
98
+ }
99
+ else{
100
+ $html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.'>';
101
+ $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
102
+ $html[] = '</a>';
103
+ }
104
+ // render child categories
105
+ $htmlChildren = '';
106
+ $j = 0;
107
+ foreach ($activeChildren as $child) {
108
+ $htmlChildren .= $this->_renderCategoryMenuItemHtml(
109
+ $child,
110
+ ($level + 1),
111
+ ($j == $activeChildrenCount - 1),
112
+ ($j == 0),
113
+ false,
114
+ $outermostItemClass,
115
+ $childrenWrapClass,
116
+ $noEventAttributes
117
+ );
118
+ $j++;
119
+ }
120
+ if (!empty($htmlChildren)) {
121
+ if ($childrenWrapClass) {
122
+ $html[] = '<div class="' . $childrenWrapClass . '">';
123
+ }
124
+ $html[] = '<ul class="level' . $level . '">';
125
+ $html[] = $htmlChildren;
126
+ $html[] = '</ul>';
127
+ if ($childrenWrapClass) {
128
+ $html[] = '</div>';
129
+ }
130
+ }
131
+
132
+ $html[] = '</li>';
133
+
134
+ $html = implode("\n", $html);
135
+ return $html;
136
+ }
137
+ }
app/code/community/Matrix/Sidecat/Block/Sidebar.php~ ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Matrix_Sidecat_Block_Sidebar extends Matrix_Sidecat_Block_Sidecat
3
+ {
4
+ public function _construct() {
5
+ $this->setTemplate('sidecat/sidecat.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('sidecat/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('sidecat/display_settings/show_type');
21
+ if (!$category->getIsActive()) {
22
+ return '';
23
+ }
24
+ $html = array();
25
+
26
+ // get all children
27
+ if (Mage::helper('catalog/category_flat')->isEnabled()) {
28
+ $children = (array)$category->getChildrenNodes();
29
+ $childrenCount = count($children);
30
+ } else {
31
+ $children = $category->getChildren();
32
+ $childrenCount = $children->count();
33
+ }
34
+ $hasChildren = ($children && $childrenCount);
35
+
36
+ // select active children
37
+ $activeChildren = array();
38
+ foreach ($children as $child) {
39
+ if ($child->getIsActive()) {
40
+ $activeChildren[] = $child;
41
+ }
42
+ }
43
+ $activeChildrenCount = count($activeChildren);
44
+ $hasActiveChildren = ($activeChildrenCount > 0);
45
+
46
+ // prepare list item html classes
47
+ $classes = array();
48
+ $classes[] = 'level' . $level;
49
+ $classes[] = 'nav-' . $this->_getItemPosition($level);
50
+ if ($this->isCategoryActive($category)) {
51
+ $classes[] = 'active';
52
+ }
53
+ $linkClass = '';
54
+ if ($isOutermost && $outermostItemClass) {
55
+ $classes[] = $outermostItemClass;
56
+ $linkClass = ' class="'.$outermostItemClass.'"';
57
+ }
58
+ if ($isFirst) {
59
+ $classes[] = 'first';
60
+ }
61
+ if ($isLast) {
62
+ $classes[] = 'last';
63
+ }
64
+ if ($hasActiveChildren) {
65
+ $classes[] = 'parent';
66
+ }
67
+
68
+ // prepare list item attributes
69
+ $attributes = array();
70
+ if (count($classes) > 0) {
71
+ $attributes['class'] = implode(' ', $classes);
72
+ }
73
+ if ($hasActiveChildren && !$noEventAttributes) {
74
+ $attributes['onmouseover'] = 'toggleMenu(this,1)';
75
+ $attributes['onmouseout'] = 'toggleMenu(this,0)';
76
+ }
77
+
78
+ // assemble list item with attributes
79
+ $htmlLi = '<li';
80
+ foreach ($attributes as $attrName => $attrValue) {
81
+ $htmlLi .= ' ' . $attrName . '="' . str_replace('"', '\"', $attrValue) . '"';
82
+ }
83
+ $htmlLi .= '>';
84
+ $html[] = $htmlLi;
85
+ if ($hasActiveChildren) {
86
+ if($showType == 'click-2-click'){
87
+ $html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.'>';
88
+ $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
89
+ $html[] = '</a>';
90
+ $html[] = '<a href="javascript://" class="right show-cat">&nbsp;';
91
+ $html[] = '</a>';
92
+ }
93
+ else{
94
+ $html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.'>';
95
+ $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
96
+ $html[] = '</a>';
97
+ }
98
+ }
99
+ else{
100
+ $html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.'>';
101
+ $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
102
+ $html[] = '</a>';
103
+ }
104
+ // render children
105
+ $htmlChildren = '';
106
+ $j = 0;
107
+ foreach ($activeChildren as $child) {
108
+ $htmlChildren .= $this->_renderCategoryMenuItemHtml(
109
+ $child,
110
+ ($level + 1),
111
+ ($j == $activeChildrenCount - 1),
112
+ ($j == 0),
113
+ false,
114
+ $outermostItemClass,
115
+ $childrenWrapClass,
116
+ $noEventAttributes
117
+ );
118
+ $j++;
119
+ }
120
+ if (!empty($htmlChildren)) {
121
+ if ($childrenWrapClass) {
122
+ $html[] = '<div class="' . $childrenWrapClass . '">';
123
+ }
124
+ $html[] = '<ul class="level' . $level . '">';
125
+ $html[] = $htmlChildren;
126
+ $html[] = '</ul>';
127
+ if ($childrenWrapClass) {
128
+ $html[] = '</div>';
129
+ }
130
+ }
131
+
132
+ $html[] = '</li>';
133
+
134
+ $html = implode("\n", $html);
135
+ return $html;
136
+ }
137
+ }
app/code/community/Matrix/Sidecat/Block/Sidecat.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * matrix infologics Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the EULA
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * @category Matrix Infologics
10
+ * Author Matrix Infologics - Gagandeep
11
+ */
12
+
13
+
14
+ class Matrix_Sidecat_Block_Sidecat extends Mage_Catalog_Block_Navigation
15
+ {
16
+ public function _prepareLayout()
17
+ {
18
+ return parent::_prepareLayout();
19
+ }
20
+
21
+ public function getSidecat()
22
+ {
23
+ if (!$this->hasData('sidecat')) {
24
+ $this->setData('sidecat', Mage::registry('sidecat'));
25
+ }
26
+ return $this->getData('sidecat');
27
+
28
+ }
29
+ public function leftSidebarBlock() {
30
+ $block = $this->getParentBlock();
31
+ if($block) {
32
+
33
+ if(Mage::helper('sidecat')->displayOnSideBar() == 'left') {
34
+ $sidebarBlock = $this->getLayout()->createBlock('sidecat/sidebar');
35
+ $block->insert($sidebarBlock,'', true, 'cat-sidebar');
36
+ }
37
+ }
38
+ }
39
+ public function rightSidebarBlock() {
40
+ $block = $this->getParentBlock();
41
+ if($block) {
42
+ if(Mage::helper('sidecat')->displayOnSideBar() == 'right') {
43
+ $sidebarBlock = $this->getLayout()->createBlock('sidecat/sidebar');
44
+
45
+ $block->insert($sidebarBlock, '', true, 'cat-sidebar');
46
+ }
47
+ }
48
+ }
49
+ }
app/code/community/Matrix/Sidecat/Block/Sidecat.php~ ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * softprodigy Inc.
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the EULA
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * @category SPS
10
+ * Author Softprodigy-S.E Gagan
11
+ */
12
+
13
+
14
+ class Matrix_Sidecat_Block_Sidecat extends Mage_Catalog_Block_Navigation
15
+ {
16
+ public function _prepareLayout()
17
+ {
18
+ return parent::_prepareLayout();
19
+ }
20
+
21
+ public function getSidecat()
22
+ {
23
+ if (!$this->hasData('sidecat')) {
24
+ $this->setData('sidecat', Mage::registry('sidecat'));
25
+ }
26
+ return $this->getData('sidecat');
27
+
28
+ }
29
+ public function leftSidebarBlock() {
30
+ $block = $this->getParentBlock();
31
+ if($block) {
32
+
33
+ if(Mage::helper('sidecat')->displayOnSideBar() == 'left') {
34
+ $sidebarBlock = $this->getLayout()->createBlock('sidecat/sidebar');
35
+ $block->insert($sidebarBlock,'', true, 'cat-sidebar');
36
+ }
37
+ }
38
+ }
39
+ public function rightSidebarBlock() {
40
+ $block = $this->getParentBlock();
41
+ if($block) {
42
+ if(Mage::helper('sidecat')->displayOnSideBar() == 'right') {
43
+ $sidebarBlock = $this->getLayout()->createBlock('sidecat/sidebar');
44
+
45
+ $block->insert($sidebarBlock, '', true, 'cat-sidebar');
46
+ }
47
+ }
48
+ }
49
+ }
app/code/community/Matrix/Sidecat/Helper/Category.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Matrix_Sidecat_Helper_Category extends Mage_Catalog_Helper_Category
4
+ {
5
+ public function getAllCategories($sorted=false, $asCollection=false, $toLoad=true)
6
+ {
7
+ $parent = Mage::app()->getStore()->getRootCategoryId();
8
+ $cacheKey = sprintf('%d-%d-%d-%d', $parent, $sorted, $asCollection, $toLoad);
9
+ if (isset($this->_storeCategories[$cacheKey])) {
10
+ return $this->_storeCategories[$cacheKey];
11
+ }
12
+
13
+ /**
14
+ * Check if parent node of the store still exists
15
+ */
16
+ $category = Mage::getModel('catalog/category');
17
+ /* @var $category Mage_Catalog_Model_Category */
18
+ if (!$category->checkId($parent)) {
19
+ if ($asCollection) {
20
+ return new Varien_Data_Collection();
21
+ }
22
+ return array();
23
+ }
24
+
25
+ $categoryDepth = max(0, (int)Mage::getStoreConfig('sidecat/display_settings/category_level'));
26
+ $storeCategories = $category->getCategories($parent, $categoryDepth, $sorted, $asCollection, $toLoad);
27
+
28
+ $this->_storeCategories[$cacheKey] = $storeCategories;
29
+ return $storeCategories;
30
+ }
31
+ }
app/code/community/Matrix/Sidecat/Helper/Category.php~ ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Magebuzz_Catsidebarnav_Helper_Category extends Mage_Catalog_Helper_Category
4
+ {
5
+ public function getAllCategories($sorted=false, $asCollection=false, $toLoad=true)
6
+ {
7
+ $parent = Mage::app()->getStore()->getRootCategoryId();
8
+ $cacheKey = sprintf('%d-%d-%d-%d', $parent, $sorted, $asCollection, $toLoad);
9
+ if (isset($this->_storeCategories[$cacheKey])) {
10
+ return $this->_storeCategories[$cacheKey];
11
+ }
12
+
13
+ /**
14
+ * Check if parent node of the store still exists
15
+ */
16
+ $category = Mage::getModel('catalog/category');
17
+ /* @var $category Mage_Catalog_Model_Category */
18
+ if (!$category->checkId($parent)) {
19
+ if ($asCollection) {
20
+ return new Varien_Data_Collection();
21
+ }
22
+ return array();
23
+ }
24
+
25
+ $categoryDepth = max(0, (int)Mage::getStoreConfig('catsidebarnav/display_settings/category_level'));
26
+ $storeCategories = $category->getCategories($parent, $categoryDepth, $sorted, $asCollection, $toLoad);
27
+
28
+ $this->_storeCategories[$cacheKey] = $storeCategories;
29
+ return $storeCategories;
30
+ }
31
+ }
app/code/community/Matrix/Sidecat/Helper/Data.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Matrix_Sidecat_Helper_Data extends Mage_Core_Helper_Abstract
4
+ {
5
+ public function isEnabled() {
6
+ return (int)Mage::getStoreConfig('sidecat/display_settings/enabled');
7
+ }
8
+ public function displayOnSideBar() {
9
+ return Mage::getStoreConfig('sidecat/display_settings/position');
10
+ }
11
+ public function getShowType(){
12
+ return Mage::getStoreConfig('sidecat/display_settings/show_type');
13
+ }
14
+ public function getShowFont(){
15
+ return Mage::getStoreConfig('sidecat/display_settings/show_font');
16
+ }
17
+ public function getCategoryColor(){
18
+ return Mage::getStoreConfig('sidecat/display_settings/category_color');
19
+ }
20
+ public function getCategoryBg(){
21
+ return Mage::getStoreConfig('sidecat/display_settings/category_background');
22
+ }
23
+ public function getCategoryLabel(){
24
+ return Mage::getStoreConfig('sidecat/display_settings/category_label');
25
+ }
26
+ public function getCategoryTextColor(){
27
+ return Mage::getStoreConfig('sidecat/display_settings/category_textColor');
28
+ }
29
+ }
app/code/community/Matrix/Sidecat/Helper/Data.php~ ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Magebuzz_Catsidebarnav_Helper_Data extends Mage_Core_Helper_Abstract
4
+ {
5
+ public function isEnabled() {
6
+ return (int)Mage::getStoreConfig('catsidebarnav/display_settings/enabled');
7
+ }
8
+ public function displayOnSideBar() {
9
+ return Mage::getStoreConfig('catsidebarnav/display_settings/position');
10
+ }
11
+ public function getShowType(){
12
+ return Mage::getStoreConfig('catsidebarnav/display_settings/show_type');
13
+ }
14
+ }
app/code/community/Matrix/Sidecat/Model/Mysql4/Sidecat.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Matrix_Sidecat_Model_Mysql4_Sidecat extends Mage_Core_Model_Mysql4_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ // Note that the sidecat_id refers to the key field in your database table.
8
+ $this->_init('sidecat/sidecat', 'sidecat_id');
9
+ }
10
+ }
app/code/community/Matrix/Sidecat/Model/Mysql4/Sidecat.php~ ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Magebuzz_Catsidebarnav_Model_Mysql4_Catsidebarnav extends Mage_Core_Model_Mysql4_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ // Note that the catsidebarnav_id refers to the key field in your database table.
8
+ $this->_init('catsidebarnav/catsidebarnav', 'catsidebarnav_id');
9
+ }
10
+ }
app/code/community/Matrix/Sidecat/Model/Mysql4/Sidecat/Collection.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Matrix_Sidecat_Model_Mysql4_Sidecat_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ parent::_construct();
8
+ $this->_init('sidecat/sidecat');
9
+ }
10
+ }
app/code/community/Matrix/Sidecat/Model/Mysql4/Sidecat/Collection.php~ ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Magebuzz_Catsidebarnav_Model_Mysql4_Catsidebarnav_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ parent::_construct();
8
+ $this->_init('catsidebarnav/catsidebarnav');
9
+ }
10
+ }
app/code/community/Matrix/Sidecat/Model/Session.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Matrix_Sidecat_Model_Session extends Mage_Core_Model_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ parent::_construct();
8
+ $this->_init('sidecat');
9
+ }
10
+ }
app/code/community/Matrix/Sidecat/Model/Session.php~ ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Magebuzz_Catsidebarnav_Model_Session extends Mage_Core_Model_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ parent::_construct();
8
+ $this->_init('catsidebarnav');
9
+ }
10
+ }
app/code/community/Matrix/Sidecat/Model/Sidecat.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Matrix_Sidecat_Model_Sidecat extends Mage_Core_Model_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ parent::_construct();
8
+ $this->_init('sidecat/sidecat');
9
+ }
10
+ }
app/code/community/Matrix/Sidecat/Model/Sidecat.php~ ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Magebuzz_Catsidebarnav_Model_Catsidebarnav extends Mage_Core_Model_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ parent::_construct();
8
+ $this->_init('catsidebarnav/catsidebarnav');
9
+ }
10
+ }
app/code/community/Matrix/Sidecat/Model/Status.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Matrix_Sidecat_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('sidecat')->__('Enabled'),
12
+ self::STATUS_DISABLED => Mage::helper('sidecat')->__('Disabled')
13
+ );
14
+ }
15
+ }
app/code/community/Matrix/Sidecat/Model/Status.php~ ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Magebuzz_Catsidebarnav_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('catsidebarnav')->__('Enabled'),
12
+ self::STATUS_DISABLED => Mage::helper('catsidebarnav')->__('Disabled')
13
+ );
14
+ }
15
+ }
app/code/community/Matrix/Sidecat/Model/System/Config/Font.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Matrix_Sidecat_Model_System_Config_Font
4
+ {
5
+ public function toOptionArray()
6
+ {
7
+ $options = array(
8
+ array('value'=>'lowercase','label'=> Mage::helper('sidecat')->__('Lowercase')),
9
+ array('value'=>'uppercase','label'=> Mage::helper('sidecat')->__('Uppercase')),
10
+ array('value'=>'capitalize','label'=> Mage::helper('sidecat')->__('Capitalize')),
11
+ );
12
+
13
+ return $options;
14
+ }
15
+ }
app/code/community/Matrix/Sidecat/Model/System/Config/Position.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Matrix_Sidecat_Model_System_Config_Position
4
+ {
5
+ public function toOptionArray()
6
+ {
7
+ $options = array(
8
+ array('value'=>'left','label'=> Mage::helper('sidecat')->__('Left Sidebar')),
9
+ array('value'=>'right','label'=> Mage::helper('sidecat')->__('Right Sidebar')),
10
+ );
11
+
12
+ return $options;
13
+ }
14
+ }
app/code/community/Matrix/Sidecat/Model/System/Config/Position.php~ ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Magebuzz_Catsidebarnav_Model_System_Config_Position
4
+ {
5
+ public function toOptionArray()
6
+ {
7
+ $options = array(
8
+ array('value'=>'left','label'=> Mage::helper('catsidebarnav')->__('Left Sidebar')),
9
+ array('value'=>'right','label'=> Mage::helper('catsidebarnav')->__('Right Sidebar')),
10
+ );
11
+
12
+ return $options;
13
+ }
14
+ }
app/code/community/Matrix/Sidecat/Model/System/Config/Showlevel.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Matrix_Sidecat_Model_System_Config_Showlevel
4
+ {
5
+ public function toOptionArray()
6
+ {
7
+ $options = array(
8
+ array('value'=>'all','label'=> Mage::helper('sidecat')->__('All')),
9
+ array('value'=>1,'label'=> Mage::helper('sidecat')->__('1')),
10
+ array('value'=>2,'label'=> Mage::helper('sidecat')->__('2')),
11
+ array('value'=>3,'label'=> Mage::helper('sidecat')->__('3')),
12
+ array('value'=>4,'label'=> Mage::helper('sidecat')->__('4')),
13
+ );
14
+
15
+ return $options;
16
+ }
17
+ }
app/code/community/Matrix/Sidecat/Model/System/Config/Showlevel.php~ ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Magebuzz_Catsidebarnav_Model_System_Config_Showlevel
4
+ {
5
+ public function toOptionArray()
6
+ {
7
+ $options = array(
8
+ array('value'=>'all','label'=> Mage::helper('catsidebarnav')->__('All')),
9
+ array('value'=>1,'label'=> Mage::helper('catsidebarnav')->__('1')),
10
+ array('value'=>2,'label'=> Mage::helper('catsidebarnav')->__('2')),
11
+ array('value'=>3,'label'=> Mage::helper('catsidebarnav')->__('3')),
12
+ array('value'=>4,'label'=> Mage::helper('catsidebarnav')->__('4')),
13
+ );
14
+
15
+ return $options;
16
+ }
17
+ }
app/code/community/Matrix/Sidecat/Model/System/Config/Type.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Matrix_Sidecat_Model_System_Config_Type
4
+ {
5
+ public function toOptionArray()
6
+ {
7
+ $options = array(
8
+ array('value'=>'static','label'=> Mage::helper('sidecat')->__('Visible')),
9
+ array('value'=>'click-2-click','label'=> Mage::helper('sidecat')->__('Onclick')),
10
+ array('value'=>'fly-out','label'=> Mage::helper('sidecat')->__('Mousehover')),
11
+ );
12
+
13
+ return $options;
14
+ }
15
+ }
app/code/community/Matrix/Sidecat/Model/System/Config/Type.php~ ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Magebuzz_Catsidebarnav_Model_System_Config_Type
4
+ {
5
+ public function toOptionArray()
6
+ {
7
+ $options = array(
8
+ array('value'=>'static','label'=> Mage::helper('catsidebarnav')->__('Static')),
9
+ array('value'=>'click-2-click','label'=> Mage::helper('catsidebarnav')->__('Click to Click')),
10
+ array('value'=>'fly-out','label'=> Mage::helper('catsidebarnav')->__('Fly Out')),
11
+ );
12
+
13
+ return $options;
14
+ }
15
+ }
app/code/community/Matrix/Sidecat/Model/Wysiwyg/Config.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Matrix_Sidecat_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/Matrix/Sidecat/Model/Wysiwyg/Config.php~ ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Magebuzz_Catsidebarnav_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/Matrix/Sidecat/controllers/IndexController.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Matrix_Sidecat_IndexController extends Mage_Core_Controller_Front_Action
3
+ {
4
+ public function indexAction()
5
+ {
6
+ $this->loadLayout();
7
+ $this->renderLayout();
8
+ }
9
+ }
app/code/community/Matrix/Sidecat/controllers/IndexController.php~ ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Magebuzz_Catsidebarnav_IndexController extends Mage_Core_Controller_Front_Action
3
+ {
4
+ public function indexAction()
5
+ {
6
+ $this->loadLayout();
7
+ $this->renderLayout();
8
+ }
9
+ }
app/code/community/Matrix/Sidecat/etc/adminhtml.xml ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <acl>
4
+ <resources>
5
+ <all>
6
+ <title>Allow Everything</title>
7
+ </all>
8
+ <admin>
9
+ <children>
10
+ <system>
11
+ <children>
12
+ <config>
13
+ <children>
14
+ <sidecat translate="title">
15
+ <title>Sidecat Permission Setting</title>
16
+ <sort_order>50</sort_order>
17
+ </sidecat>
18
+ </children>
19
+ </config>
20
+ </children>
21
+ </system>
22
+ </children>
23
+ </admin>
24
+ </resources>
25
+ </acl>
26
+ </config>
app/code/community/Matrix/Sidecat/etc/adminhtml.xml~ ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <acl>
4
+ <resources>
5
+ <all>
6
+ <title>Allow Everything</title>
7
+ </all>
8
+ <admin>
9
+ <children>
10
+ <system>
11
+ <children>
12
+ <config>
13
+ <children>
14
+ <catsidebarnav translate="title">
15
+ <title>Catsidebarnav Permission Setting</title>
16
+ <sort_order>50</sort_order>
17
+ </catsidebarnav>
18
+ </children>
19
+ </config>
20
+ </children>
21
+ </system>
22
+ </children>
23
+ </admin>
24
+ </resources>
25
+ </acl>
26
+ </config>
app/code/community/Matrix/Sidecat/etc/config.xml ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Matrix_Sidecat>
5
+ <version>0.1.0</version>
6
+ </Matrix_Sidecat>
7
+ </modules>
8
+ <frontend>
9
+ <secure_url>
10
+ <sidecat>/sidecat/</sidecat>
11
+ </secure_url>
12
+ <routers>
13
+ <sidecat>
14
+ <use>standard</use>
15
+ <args>
16
+ <module>Matrix_Sidecat</module>
17
+ <frontName>sidecat</frontName>
18
+ </args>
19
+ </sidecat>
20
+ </routers>
21
+ <layout>
22
+ <updates>
23
+ <sidecat>
24
+ <file>sidecat.xml</file>
25
+ </sidecat>
26
+ </updates>
27
+ </layout>
28
+ </frontend>
29
+ <admin>
30
+ <routers>
31
+ <sidecat>
32
+ <use>admin</use>
33
+ <args>
34
+ <module>Matrix_Sidecat</module>
35
+ <frontName>sidecat</frontName>
36
+ </args>
37
+ </sidecat>
38
+ </routers>
39
+ </admin>
40
+ <adminhtml>
41
+ <layout>
42
+ <updates>
43
+ <sidecat>
44
+ <file>sidecat.xml</file>
45
+ </sidecat>
46
+ </updates>
47
+ </layout>
48
+ </adminhtml>
49
+ <global>
50
+ <models>
51
+ <sidecat>
52
+ <class>Matrix_Sidecat_Model</class>
53
+ <resourceModel>sidecat_mysql4</resourceModel>
54
+ </sidecat>
55
+ <sidecat_mysql4>
56
+ <class>Matrix_Sidecat_Model_Mysql4</class>
57
+ <entities>
58
+ <sidecat>
59
+ <table>sidecat</table>
60
+ </sidecat>
61
+ </entities>
62
+ </sidecat_mysql4>
63
+ </models>
64
+ <resources>
65
+ <sidecat_setup>
66
+ <setup>
67
+ <module>Matrix_Sidecat</module>
68
+ </setup>
69
+ <connection>
70
+ <use>core_setup</use>
71
+ </connection>
72
+ </sidecat_setup>
73
+ <sidecat_write>
74
+ <connection>
75
+ <use>core_write</use>
76
+ </connection>
77
+ </sidecat_write>
78
+ <sidecat_read>
79
+ <connection>
80
+ <use>core_read</use>
81
+ </connection>
82
+ </sidecat_read>
83
+ </resources>
84
+ <blocks>
85
+ <sidecat>
86
+ <class>Matrix_Sidecat_Block</class>
87
+ </sidecat>
88
+ <catalog>
89
+ <rewrite>
90
+ <navigation>Matrix_Sidecat_Block_Sidecat</navigation>
91
+ </rewrite>
92
+ </catalog>
93
+ </blocks>
94
+ <helpers>
95
+ <sidecat>
96
+ <class>Matrix_Sidecat_Helper</class>
97
+ </sidecat>
98
+ <catalog>
99
+ <rewrite>
100
+ <category>Matrix_Sidecat_Helper_Category</category>
101
+ </rewrite>
102
+ </catalog>
103
+ </helpers>
104
+ <template>
105
+ <email>
106
+ <sidecat_general_email_template>
107
+ <label>Title Email</label>
108
+ <file>sidecat_example.html</file>
109
+ <type>html</type>
110
+ </sidecat_general_email_template>
111
+ </email>
112
+ </template>
113
+ </global>
114
+ <!--Set Default Value For Setting Options-->
115
+ <default>
116
+ <sidecat>
117
+ <display_settings>
118
+ <enabled>1</enabled>
119
+ <position>left</position>
120
+ <category_level>0</category_level>
121
+ <show_type>static</show_type>
122
+ </display_settings>
123
+ </sidecat>
124
+ </default>
125
+ <translate>
126
+ <modules>
127
+ <Matrix_Sidecat>
128
+ <files>
129
+ <default>Matrix_Sidecat.csv</default>
130
+ </files>
131
+ </Matrix_Sidecat>
132
+ </modules>
133
+ </translate>
134
+ </config>
app/code/community/Matrix/Sidecat/etc/config.xml~ ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
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>
31
+ <catsidebarnav>
32
+ <use>admin</use>
33
+ <args>
34
+ <module>Magebuzz_Catsidebarnav</module>
35
+ <frontName>catsidebarnav</frontName>
36
+ </args>
37
+ </catsidebarnav>
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>
51
+ <catsidebarnav>
52
+ <class>Magebuzz_Catsidebarnav_Model</class>
53
+ <resourceModel>catsidebarnav_mysql4</resourceModel>
54
+ </catsidebarnav>
55
+ <catsidebarnav_mysql4>
56
+ <class>Magebuzz_Catsidebarnav_Model_Mysql4</class>
57
+ <entities>
58
+ <catsidebarnav>
59
+ <table>catsidebarnav</table>
60
+ </catsidebarnav>
61
+ </entities>
62
+ </catsidebarnav_mysql4>
63
+ </models>
64
+ <resources>
65
+ <catsidebarnav_setup>
66
+ <setup>
67
+ <module>Magebuzz_Catsidebarnav</module>
68
+ </setup>
69
+ <connection>
70
+ <use>core_setup</use>
71
+ </connection>
72
+ </catsidebarnav_setup>
73
+ <catsidebarnav_write>
74
+ <connection>
75
+ <use>core_write</use>
76
+ </connection>
77
+ </catsidebarnav_write>
78
+ <catsidebarnav_read>
79
+ <connection>
80
+ <use>core_read</use>
81
+ </connection>
82
+ </catsidebarnav_read>
83
+ </resources>
84
+ <blocks>
85
+ <catsidebarnav>
86
+ <class>Magebuzz_Catsidebarnav_Block</class>
87
+ </catsidebarnav>
88
+ <catalog>
89
+ <rewrite>
90
+ <navigation>Magebuzz_Catsidebarnav_Block_Catsidebarnav</navigation>
91
+ </rewrite>
92
+ </catalog>
93
+ </blocks>
94
+ <helpers>
95
+ <catsidebarnav>
96
+ <class>Magebuzz_Catsidebarnav_Helper</class>
97
+ </catsidebarnav>
98
+ <catalog>
99
+ <rewrite>
100
+ <category>Magebuzz_Catsidebarnav_Helper_Category</category>
101
+ </rewrite>
102
+ </catalog>
103
+ </helpers>
104
+ <template>
105
+ <email>
106
+ <catsidebarnav_general_email_template>
107
+ <label>Title Email</label>
108
+ <file>catsidebarnav_example.html</file>
109
+ <type>html</type>
110
+ </catsidebarnav_general_email_template>
111
+ </email>
112
+ </template>
113
+ </global>
114
+ <!--Set Default Value For Setting Options-->
115
+ <default>
116
+ <catsidebarnav>
117
+ <display_settings>
118
+ <enabled>1</enabled>
119
+ <position>left</position>
120
+ <category_level>0</category_level>
121
+ <show_type>static</show_type>
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>
app/code/community/Matrix/Sidecat/etc/system.xml ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <tabs>
4
+ <matrix translate="label">
5
+ <label>Matrix</label>
6
+ <sort_order>400</sort_order>
7
+ </matrix>
8
+ </tabs>
9
+ <sections>
10
+ <sidecat translate="label" module="sidecat">
11
+ <label>Category Sidebar Listing</label>
12
+ <tab>matrix</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
+ <display_settings translate="label">
20
+ <label>General 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
+ <enabled translate="label comment">
28
+ <label>Status Enabled</label>
29
+ <frontend_type>select</frontend_type>
30
+ <source_model>adminhtml/system_config_source_yesno</source_model>
31
+ <sort_order>1</sort_order>
32
+ <show_in_default>1</show_in_default>
33
+ <show_in_website>1</show_in_website>
34
+ <show_in_store>1</show_in_store>
35
+ </enabled>
36
+ <position translate="label comment">
37
+ <label>Sidebar position</label>
38
+ <frontend_type>select</frontend_type>
39
+ <source_model>sidecat/system_config_position</source_model>
40
+ <sort_order>2</sort_order>
41
+ <show_in_default>1</show_in_default>
42
+ <show_in_website>1</show_in_website>
43
+ <show_in_store>1</show_in_store>
44
+ <comment>Display list category on left (or right) sidebar</comment>
45
+ </position>
46
+ <category_level translate="label comment">
47
+ <label>No of sub categories</label>
48
+ <frontend_type>text</frontend_type>
49
+ <sort_order>3</sort_order>
50
+ <show_in_default>1</show_in_default>
51
+ <show_in_website>1</show_in_website>
52
+ <show_in_store>1</show_in_store>
53
+ <comment>Category level to show(0 - show all)</comment>
54
+ </category_level>
55
+ <show_type translate="label comment">
56
+ <label>Display type</label>
57
+ <frontend_type>select</frontend_type>
58
+ <source_model>sidecat/system_config_type</source_model>
59
+ <sort_order>4</sort_order>
60
+ <show_in_default>1</show_in_default>
61
+ <show_in_website>1</show_in_website>
62
+ <show_in_store>1</show_in_store>
63
+ </show_type>
64
+ <show_font translate="label comment">
65
+ <label>Text format</label>
66
+ <frontend_type>select</frontend_type>
67
+ <source_model>sidecat/system_config_font</source_model>
68
+ <sort_order>5</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
+ </show_font>
73
+
74
+ <category_color translate="label comment">
75
+ <label>Text color</label>
76
+ <frontend_type>text</frontend_type>
77
+ <sort_order>6</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
+ <comment>For eg. #000000</comment>
82
+ </category_color>
83
+ <category_background translate="label comment">
84
+ <label>Label background color</label>
85
+ <frontend_type>text</frontend_type>
86
+ <sort_order>7</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
+ <comment>For eg. #000000</comment>
91
+ </category_background>
92
+
93
+ <category_label translate="label comment">
94
+ <label>Label name</label>
95
+ <frontend_type>text</frontend_type>
96
+ <sort_order>8</sort_order>
97
+ <show_in_default>1</show_in_default>
98
+ <show_in_website>1</show_in_website>
99
+ <show_in_store>1</show_in_store>
100
+ </category_label>
101
+ <category_textColor translate="label comment">
102
+ <label>Label color</label>
103
+ <frontend_type>text</frontend_type>
104
+ <sort_order>9</sort_order>
105
+ <show_in_default>1</show_in_default>
106
+ <show_in_website>1</show_in_website>
107
+ <show_in_store>1</show_in_store>
108
+ <comment>For eg. #000000</comment>
109
+ </category_textColor>
110
+ </fields>
111
+ </display_settings>
112
+ </groups>
113
+ </sidecat>
114
+ </sections>
115
+ </config>
app/code/community/Matrix/Sidecat/etc/system.xml~ ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <tabs>
4
+ <matrix translate="label">
5
+ <label>Matrix Add-ons</label>
6
+ <sort_order>400</sort_order>
7
+ </matrix>
8
+ </tabs>
9
+ <sections>
10
+ <sidecat translate="label" module="sidecat">
11
+ <label>Category Sidebar Navigation</label>
12
+ <tab>matrix</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
+ <display_settings translate="label">
20
+ <label>General 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
+ <enabled translate="label comment">
28
+ <label>Enabled</label>
29
+ <frontend_type>select</frontend_type>
30
+ <source_model>adminhtml/system_config_source_yesno</source_model>
31
+ <sort_order>1</sort_order>
32
+ <show_in_default>1</show_in_default>
33
+ <show_in_website>1</show_in_website>
34
+ <show_in_store>1</show_in_store>
35
+ </enabled>
36
+ <position translate="label comment">
37
+ <label>Position of Sidebar</label>
38
+ <frontend_type>select</frontend_type>
39
+ <source_model>sidecat/system_config_position</source_model>
40
+ <sort_order>2</sort_order>
41
+ <show_in_default>1</show_in_default>
42
+ <show_in_website>1</show_in_website>
43
+ <show_in_store>1</show_in_store>
44
+ <comment>Display list category on left (or right) sidebar</comment>
45
+ </position>
46
+ <category_level translate="label comment">
47
+ <label>Category Depth</label>
48
+ <frontend_type>text</frontend_type>
49
+ <sort_order>3</sort_order>
50
+ <show_in_default>1</show_in_default>
51
+ <show_in_website>1</show_in_website>
52
+ <show_in_store>1</show_in_store>
53
+ <comment>Category level to show(0 - show all)</comment>
54
+ </category_level>
55
+ <show_type translate="label comment">
56
+ <label>Show Type</label>
57
+ <frontend_type>select</frontend_type>
58
+ <source_model>sidecat/system_config_type</source_model>
59
+ <sort_order>4</sort_order>
60
+ <show_in_default>1</show_in_default>
61
+ <show_in_website>1</show_in_website>
62
+ <show_in_store>1</show_in_store>
63
+ </show_type>
64
+ <show_font translate="label comment">
65
+ <label>Text-transform</label>
66
+ <frontend_type>select</frontend_type>
67
+ <source_model>sidecat/system_config_font</source_model>
68
+ <sort_order>5</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
+ </show_font>
73
+
74
+ <category_color translate="label comment">
75
+ <label>Color</label>
76
+ <frontend_type>text</frontend_type>
77
+ <sort_order>6</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
+ <comment>For eg. #000000</comment>
82
+ </category_color>
83
+ <category_background translate="label comment">
84
+ <label>Background Color</label>
85
+ <frontend_type>text</frontend_type>
86
+ <sort_order>7</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
+ <comment>For eg. #000000</comment>
91
+ </category_background>
92
+
93
+ <category_label translate="label comment">
94
+ <label>Label</label>
95
+ <frontend_type>text</frontend_type>
96
+ <sort_order>8</sort_order>
97
+ <show_in_default>1</show_in_default>
98
+ <show_in_website>1</show_in_website>
99
+ <show_in_store>1</show_in_store>
100
+ </category_label>
101
+ <category_textColor translate="label comment">
102
+ <label>Label</label>
103
+ <frontend_type>text</frontend_type>
104
+ <sort_order>9</sort_order>
105
+ <show_in_default>1</show_in_default>
106
+ <show_in_website>1</show_in_website>
107
+ <show_in_store>1</show_in_store>
108
+ </category_textColor>
109
+ </fields>
110
+ </display_settings>
111
+ </groups>
112
+ </sidecat>
113
+ </sections>
114
+ </config>
app/design/frontend/default/default/layout/sidecat.xml ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout version="0.1.0">
3
+ <default>
4
+ <reference name="left">
5
+ <block type="sidecat/sidecat" name="left.sidecat" before="-">
6
+ <action method="leftSidebarBlock" />
7
+ </block>
8
+ </reference>
9
+ <reference name="right">
10
+ <block type="sidecat/sidecat" name="right.sidecat" before="-">
11
+ <action method="rightSidebarBlock" />
12
+ </block>
13
+ </reference>
14
+ </default>
15
+ <sidecat_index_index>
16
+ <reference name="content">
17
+ <block type="sidecat/sidecat" name="sidecat" template="sidecat/sidecat.phtml" />
18
+ </reference>
19
+ </sidecat_index_index>
20
+ </layout>
app/design/frontend/default/default/template/sidecat/sidecat.phtml ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php $_helper = Mage::helper('sidecat'); ?>
2
+ <?php $showtype = $_helper->getShowType();?>
3
+ <?php
4
+ $show_font = $_helper->getShowFont();
5
+ $getCategoryColor = $_helper->getCategoryColor();
6
+ $getCategoryBg = $_helper->getCategoryBg();
7
+ $getCategoryLabel = $_helper->getCategoryLabel();
8
+ $getCategoryTextColor = $_helper->getCategoryTextColor();
9
+ ?>
10
+ <?php echo "<style>
11
+ #sidenav li a {
12
+ text-transform: ".$show_font." !important;
13
+ color: ".$getCategoryColor." !important;
14
+ }
15
+ .sideNavBg{
16
+ background: ".$getCategoryBg." !important;
17
+ }
18
+ .catLabel{
19
+ color: ".$getCategoryTextColor." !important;
20
+ }
21
+ </style>"; ?>
22
+ <?php $_menu = $this->renderCategoriesMenuHtml(0,'level-top') ?>
23
+ <?php if($_helper->isEnabled()): ?>
24
+ <?php if($showtype == 'static'):?>
25
+ <link rel="stylesheet" type="text/css" href="<?php echo $this->getSkinUrl('css/matrix/sidecat/static.css');?>" media="all" />
26
+ <?php if($_menu): ?>
27
+ <div class="block block-category-nav">
28
+ <div class="block-title sideNavBg">
29
+ <strong><span class="catLabel"><?php echo $getCategoryLabel; ?></span></strong>
30
+ </div>
31
+ <div class="block-content">
32
+ <ul id="sidenav">
33
+ <?php echo $_menu ?>
34
+ </ul>
35
+ </div>
36
+ </div>
37
+ <?php endif ?>
38
+ <?php elseif ($showtype == 'click-2-click'):?>
39
+ <link rel="stylesheet" type="text/css" href="<?php echo $this->getSkinUrl('css/matrix/sidecat/click.css');?>" media="all" />
40
+ <script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js" type="text/javascript"></script>
41
+ <script type="text/javascript">
42
+ var $j = jQuery.noConflict();
43
+ $j(document).ready(function () {
44
+ $j('#sidenav > li > a.show-cat').click(function(){
45
+ $j('#sidenav li ul').slideUp();
46
+ if (!$j(this).hasClass('active')){
47
+ $j(this).next().slideToggle();
48
+ $j('#sidenav li a.show-cat').removeClass('active');
49
+ $j(this).addClass('active');
50
+ }
51
+ else if ($j(this).hasClass('active')) {
52
+ $j(this).removeClass('active');
53
+ }
54
+ });
55
+ $j('#sidenav > li > ul > li > a.show-cat').click(function(){
56
+ $j('#sidenav li ul li ul').slideUp();
57
+ if (!$j(this).hasClass('active')){
58
+ $j(this).next().slideToggle();
59
+ $j('#sidenav li ul li a.show-cat').removeClass('active');
60
+ $j(this).addClass('active');
61
+ }
62
+ else if ($j(this).hasClass('active')) {
63
+ $j(this).removeClass('active');
64
+ }
65
+ });
66
+ });
67
+ </script>
68
+ <?php if($_menu): ?>
69
+ <div class="block block-category-nav">
70
+ <div class="block-title sideNavBg">
71
+ <strong><span class="catLabel"><?php echo $getCategoryLabel; ?></span></strong>
72
+ </div>
73
+ <div class="block-content">
74
+ <ul id="sidenav">
75
+ <?php echo $_menu ?>
76
+ </ul>
77
+ </div>
78
+ </div>
79
+ <?php endif ?>
80
+ <?php elseif ($showtype == 'fly-out'):?>
81
+ <link rel="stylesheet" type="text/css" href="<?php echo $this->getSkinUrl('css/matrix/sidecat/fly-out.css')?>" media="screen">
82
+ <script type="text/javascript" src="<?php echo $this->getSkinUrl('js/matrix/sidecat/jquery-1.2.6.min.js')?>"></script>
83
+ <script type="text/javascript" src="<?php echo $this->getSkinUrl('js/matrix/sidecat/hoverIntent.js')?>"></script>
84
+ <script type="text/javascript" src="<?php echo $this->getSkinUrl('js/matrix/sidecat/superfish.js')?>"></script>
85
+ <script type="text/javascript">
86
+ jQuery.noConflict();
87
+ jQuery(function(){
88
+ jQuery('ul.sf-menu').superfish();
89
+ });
90
+ </script>
91
+ <?php if($_menu): ?>
92
+ <div class="block block-category-nav">
93
+ <div class="block-title sideNavBg">
94
+ <strong><span class="catLabel"><?php echo $getCategoryLabel; ?></span></strong>
95
+ </div>
96
+ <div class="block-content">
97
+ <ul class="sf-menu" id="left-nav">
98
+ <?php echo $_menu ?>
99
+ </ul>
100
+ </div>
101
+ </div>
102
+ <?php endif ?>
103
+ <?php endif ?>
104
+ <?php endif ?>
app/etc/modules/Matrix_Sidecat.xml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Matrix_Sidecat>
5
+ <active>true</active>
6
+ <codePool>community</codePool>
7
+ </Matrix_Sidecat>
8
+ </modules>
9
+ </config>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>sidebar_category_listing</name>
4
- <version>1.1.2</version>
5
  <stability>stable</stability>
6
  <license>OSL</license>
7
  <channel>community</channel>
@@ -22,11 +22,11 @@ Main features of this extension:&#xD;
22
  8. 24/7 Support&#xD;
23
  9. Free updates from time to time&#xD;
24
  </description>
25
- <notes>Second Release with fixes done</notes>
26
  <authors><author><name>Matrix infologics</name><user>matrix</user><email>matrixinfologics@gmail.com</email></author></authors>
27
  <date>2014-02-26</date>
28
- <time>09:08:18</time>
29
- <contents><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="sidecat.xml" hash=""/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Matrix_Sidecat.xml" hash=""/></dir></target></contents>
30
  <compatible/>
31
  <dependencies><required><php><min>4.1.1</min><max>5.4.1</max></php></required></dependencies>
32
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>sidebar_category_listing</name>
4
+ <version>1.1.3</version>
5
  <stability>stable</stability>
6
  <license>OSL</license>
7
  <channel>community</channel>
22
  8. 24/7 Support&#xD;
23
  9. Free updates from time to time&#xD;
24
  </description>
25
+ <notes>Third Release with color updates</notes>
26
  <authors><author><name>Matrix infologics</name><user>matrix</user><email>matrixinfologics@gmail.com</email></author></authors>
27
  <date>2014-02-26</date>
28
+ <time>10:24:45</time>
29
+ <contents><target name="magecommunity"><dir name="Matrix"><dir name="Sidecat"><dir name="Block"><file name="Sidebar.php" hash="a4d2b130d5792caf7587f7e73f573c80"/><file name="Sidebar.php~" hash="4088dbdf72f89c0a1d9b71c15779a429"/><file name="Sidecat.php" hash="49c3383940d13b618f44f43bcfd38eae"/><file name="Sidecat.php~" hash="94eaf506e26139bf2f9949d78582fea8"/></dir><dir name="Helper"><file name="Category.php" hash="30552383447919df47721ff9cb2afe42"/><file name="Category.php~" hash="2b9d7291653830969d232d58ea98e754"/><file name="Data.php" hash="f39f3db5a2b7ca71dcfea52d36fd738c"/><file name="Data.php~" hash="d360eb17b9aca0a7a99af9a3134dc744"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Sidecat"><file name="Collection.php" hash="620667bdff1a07bd1961a800f089c4d6"/><file name="Collection.php~" hash="cd82814f4021ac3ecdb9f51394d71046"/></dir><file name="Sidecat.php" hash="c9760bfb3becc78cbe4814c2fb4aa443"/><file name="Sidecat.php~" hash="913c1c2be3e2d5736190c1fbd841917f"/></dir><file name="Session.php" hash="0d372d277e2c3110c1865953b0d13e0e"/><file name="Session.php~" hash="a26bbbd765aa44ab1228c4c64daf52bf"/><file name="Sidecat.php" hash="646beae728f8536927d930652d0e189c"/><file name="Sidecat.php~" hash="0b43dc19c684b3ab974eb7bebcfd4102"/><file name="Status.php" hash="dc0a0a81a9c98637c83325386c0204fd"/><file name="Status.php~" hash="48ee9b59935a7d083685ff384a3f61e2"/><dir name="System"><dir name="Config"><file name="Font.php" hash="625c19037c454cc009a3de55fbfff64e"/><file name="Position.php" hash="e87351f3d923da8573ca0f0449bd9b0a"/><file name="Position.php~" hash="7eee11a78f3440a857a0c2d71ca70cda"/><file name="Showlevel.php" hash="91c3c9bc14030f3b7fbae3dc865586e3"/><file name="Showlevel.php~" hash="d8a9e30d1bd52474ef3703a5fb96128d"/><file name="Type.php" hash="5d0dc0005976656f79f9e10e730ff919"/><file name="Type.php~" hash="b113ef52d5863af047be5f8fbc1681f6"/></dir></dir><dir name="Wysiwyg"><file name="Config.php" hash="571e0f3e88026d4b5880742d66588c1e"/><file name="Config.php~" hash="6f59457a7e0ca5548e3d459950ff9d0c"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="95140f7359ed94fc7c69fdb3b297436f"/><file name="IndexController.php~" hash="28c3fe51908c33beb180fc34a1252a88"/></dir><dir name="etc"><file name="adminhtml.xml" hash="e5687b8082cbe1c88660e7111939db95"/><file name="adminhtml.xml~" hash="1d350724418c884ac3e561eb766ee984"/><file name="config.xml" hash="d1569abee7efe6d019880ed03b082094"/><file name="config.xml~" hash="b3b721abf55ade07b2dbe4909bf745f5"/><file name="system.xml" hash="8ea8b43abf2cac31ceb3b20966ae6b56"/><file name="system.xml~" hash="f70fe8dd2cceb56056154149da7acbc2"/></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="default"><dir name="default"><dir name="js"><dir name="matrix"><dir name="sidecat"><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 name="css"><dir name="matrix"><dir name="sidecat"><file name="click.css" hash="84a4ef0f55d118f56b4695ad947869af"/><file name="fly-out.css" hash="9af59c42d604983ff5344b164656a36f"/><dir name="images"><file name="Thumbs.db" hash="cbc084b7d3d3b571c3cacf6f74d9f11d"/><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></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="sidecat.xml" hash="d53b3bbe2548984d2e7f28012885e282"/></dir><dir name="template"><dir name="sidecat"><file name="sidecat.phtml" hash="032d3c3e0f20e6405ebde0f0d01f9ecf"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Matrix_Sidecat.xml" hash="b6925703053af0cde2b86780abb6259f"/></dir></target></contents>
30
  <compatible/>
31
  <dependencies><required><php><min>4.1.1</min><max>5.4.1</max></php></required></dependencies>
32
  </package>
skin/frontend/default/default/css/matrix/sidecat/click.css ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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/matrix/sidecat/fly-out.css ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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/matrix/sidecat/images/Thumbs.db ADDED
Binary file
skin/frontend/default/default/css/matrix/sidecat/images/arrow.png ADDED
Binary file
skin/frontend/default/default/css/matrix/sidecat/images/arrow_active.png ADDED
Binary file
skin/frontend/default/default/css/matrix/sidecat/images/bg_title.gif ADDED
Binary file
skin/frontend/default/default/css/matrix/sidecat/images/sub_icon.gif ADDED
Binary file
skin/frontend/default/default/css/matrix/sidecat/images/sub_icon_2.gif ADDED
Binary file
skin/frontend/default/default/css/matrix/sidecat/static.css ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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/matrix/sidecat/hoverIntent.js ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function($){
2
+ /* hoverIntent by Brian Cherne */
3
+ $.fn.hoverIntent = function(f,g) {
4
+ // default configuration options
5
+ var cfg = {
6
+ sensitivity: 7,
7
+ interval: 100,
8
+ timeout: 0
9
+ };
10
+ // override configuration options with user supplied object
11
+ cfg = $.extend(cfg, g ? { over: f, out: g } : f );
12
+
13
+ // instantiate variables
14
+ // cX, cY = current X and Y position of mouse, updated by mousemove event
15
+ // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
16
+ var cX, cY, pX, pY;
17
+
18
+ // A private function for getting mouse position
19
+ var track = function(ev) {
20
+ cX = ev.pageX;
21
+ cY = ev.pageY;
22
+ };
23
+
24
+ // A private function for comparing current and previous mouse position
25
+ var compare = function(ev,ob) {
26
+ ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
27
+ // compare mouse positions to see if they've crossed the threshold
28
+ if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
29
+ $(ob).unbind("mousemove",track);
30
+ // set hoverIntent state to true (so mouseOut can be called)
31
+ ob.hoverIntent_s = 1;
32
+ return cfg.over.apply(ob,[ev]);
33
+ } else {
34
+ // set previous coordinates for next time
35
+ pX = cX; pY = cY;
36
+ // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
37
+ ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
38
+ }
39
+ };
40
+
41
+ // A private function for delaying the mouseOut function
42
+ var delay = function(ev,ob) {
43
+ ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
44
+ ob.hoverIntent_s = 0;
45
+ return cfg.out.apply(ob,[ev]);
46
+ };
47
+
48
+ // A private function for handling mouse 'hovering'
49
+ var handleHover = function(e) {
50
+ // next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut
51
+ var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
52
+ while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } }
53
+ if ( p == this ) { return false; }
54
+
55
+ // copy objects to be passed into t (required for event object to be passed in IE)
56
+ var ev = jQuery.extend({},e);
57
+ var ob = this;
58
+
59
+ // cancel hoverIntent timer if it exists
60
+ if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }
61
+
62
+ // else e.type == "onmouseover"
63
+ if (e.type == "mouseover") {
64
+ // set "previous" X and Y position based on initial entry point
65
+ pX = ev.pageX; pY = ev.pageY;
66
+ // update "current" X and Y position based on mousemove
67
+ $(ob).bind("mousemove",track);
68
+ // start polling interval (self-calling timeout) to compare mouse coordinates over time
69
+ if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}
70
+
71
+ // else e.type == "onmouseout"
72
+ } else {
73
+ // unbind expensive mousemove event
74
+ $(ob).unbind("mousemove",track);
75
+ // if hoverIntent state is true, then call the mouseOut function after the specified delay
76
+ if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
77
+ }
78
+ };
79
+
80
+ // bind the function to the two event listeners
81
+ return this.mouseover(handleHover).mouseout(handleHover);
82
+ };
83
+
84
+ })(jQuery);
skin/frontend/default/default/js/matrix/sidecat/jquery-1.2.6.min.js ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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);};});})();
skin/frontend/default/default/js/matrix/sidecat/superfish.js ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ /*
3
+ * Superfish v1.4.8 - jQuery menu widget
4
+ * Copyright (c) 2008 Joel Birch
5
+ *
6
+ * Dual licensed under the MIT and GPL licenses:
7
+ * http://www.opensource.org/licenses/mit-license.php
8
+ * http://www.gnu.org/licenses/gpl.html
9
+ *
10
+ * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
11
+ */
12
+
13
+ ;(function($){
14
+ $.fn.superfish = function(op){
15
+
16
+ var sf = $.fn.superfish,
17
+ c = sf.c,
18
+ $arrow = $(['<span class="',c.arrowClass,'"></span>'].join('')),
19
+ over = function(){
20
+ var $$ = $(this), menu = getMenu($$);
21
+ clearTimeout(menu.sfTimer);
22
+ $$.showSuperfishUl().siblings().hideSuperfishUl();
23
+ },
24
+ out = function(){
25
+ var $$ = $(this), menu = getMenu($$), o = sf.op;
26
+ clearTimeout(menu.sfTimer);
27
+ menu.sfTimer=setTimeout(function(){
28
+ o.retainPath=($.inArray($$[0],o.$path)>-1);
29
+ $$.hideSuperfishUl();
30
+ if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
31
+ },o.delay);
32
+ },
33
+ getMenu = function($menu){
34
+ var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
35
+ sf.op = sf.o[menu.serial];
36
+ return menu;
37
+ },
38
+ addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
39
+
40
+ return this.each(function() {
41
+ var s = this.serial = sf.o.length;
42
+ var o = $.extend({},sf.defaults,op);
43
+ o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
44
+ $(this).addClass([o.hoverClass,c.bcClass].join(' '))
45
+ .filter('li:has(ul)').removeClass(o.pathClass);
46
+ });
47
+ sf.o[s] = sf.op = o;
48
+
49
+ $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
50
+ if (o.autoArrows) addArrow( $('>a:first-child',this) );
51
+ })
52
+ .not('.'+c.bcClass)
53
+ .hideSuperfishUl();
54
+
55
+ var $a = $('a',this);
56
+ $a.each(function(i){
57
+ var $li = $a.eq(i).parents('li');
58
+ $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
59
+ });
60
+ o.onInit.call(this);
61
+
62
+ }).each(function() {
63
+ var menuClasses = [c.menuClass];
64
+ if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
65
+ $(this).addClass(menuClasses.join(' '));
66
+ });
67
+ };
68
+
69
+ var sf = $.fn.superfish;
70
+ sf.o = [];
71
+ sf.op = {};
72
+ sf.IE7fix = function(){
73
+ var o = sf.op;
74
+ if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
75
+ this.toggleClass(sf.c.shadowClass+'-off');
76
+ };
77
+ sf.c = {
78
+ bcClass : 'sf-breadcrumb',
79
+ menuClass : 'sf-js-enabled',
80
+ anchorClass : 'sf-with-ul',
81
+ arrowClass : 'sf-sub-indicator',
82
+ shadowClass : 'sf-shadow'
83
+ };
84
+ sf.defaults = {
85
+ hoverClass : 'sfHover',
86
+ pathClass : 'overideThisToUse',
87
+ pathLevels : 1,
88
+ delay : 800,
89
+ animation : {opacity:'show'},
90
+ speed : 'normal',
91
+ autoArrows : true,
92
+ dropShadows : true,
93
+ disableHI : false, // true disables hoverIntent detection
94
+ onInit : function(){}, // callback functions
95
+ onBeforeShow: function(){},
96
+ onShow : function(){},
97
+ onHide : function(){}
98
+ };
99
+ $.fn.extend({
100
+ hideSuperfishUl : function(){
101
+ var o = sf.op,
102
+ not = (o.retainPath===true) ? o.$path : '';
103
+ o.retainPath = false;
104
+ var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
105
+ .find('>ul').hide().css('visibility','hidden');
106
+ o.onHide.call($ul);
107
+ return this;
108
+ },
109
+ showSuperfishUl : function(){
110
+ var o = sf.op,
111
+ sh = sf.c.shadowClass+'-off',
112
+ $ul = this.addClass(o.hoverClass)
113
+ .find('>ul:hidden').css('visibility','visible');
114
+ sf.IE7fix.call($ul);
115
+ o.onBeforeShow.call($ul);
116
+ $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
117
+ return this;
118
+ }
119
+ });
120
+
121
+ })(jQuery);