Auguria_Sliders - Version 0.0.2

Version Notes

Auguria_Sliders

Download this release

Release Info

Developer Magento Core Team
Extension Auguria_Sliders
Version 0.0.2
Comparing to
See all releases


Version 0.0.2

Files changed (46) hide show
  1. app/code/community/Auguria/Sliders/Block/Abstract.php +126 -0
  2. app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders.php +24 -0
  3. app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit.php +49 -0
  4. app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Form.php +44 -0
  5. app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Tab/Categories.php +275 -0
  6. app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Tab/Content.php +77 -0
  7. app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Tab/Pages.php +32 -0
  8. app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Tab/Stores.php +32 -0
  9. app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Tabs.php +47 -0
  10. app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Grid.php +151 -0
  11. app/code/community/Auguria/Sliders/Block/Catalog/Category/Slider.php +29 -0
  12. app/code/community/Auguria/Sliders/Block/Cms/Page/Slider.php +30 -0
  13. app/code/community/Auguria/Sliders/Helper/Data.php +17 -0
  14. app/code/community/Auguria/Sliders/Model/Adminhtml/System/Config/Backend/NaturalNumber.php +25 -0
  15. app/code/community/Auguria/Sliders/Model/Adminhtml/System/Config/Source/Cms/Page.php +28 -0
  16. app/code/community/Auguria/Sliders/Model/Adminhtml/System/Config/Source/Effect.php +36 -0
  17. app/code/community/Auguria/Sliders/Model/Adminhtml/System/Config/Source/Truefalse.php +36 -0
  18. app/code/community/Auguria/Sliders/Model/Mysql4/Sliders.php +160 -0
  19. app/code/community/Auguria/Sliders/Model/Mysql4/Sliders/Collection.php +51 -0
  20. app/code/community/Auguria/Sliders/Model/Sliders.php +15 -0
  21. app/code/community/Auguria/Sliders/controllers/Adminhtml/SlidersController.php +268 -0
  22. app/code/community/Auguria/Sliders/etc/adminhtml.xml +48 -0
  23. app/code/community/Auguria/Sliders/etc/config.xml +155 -0
  24. app/code/community/Auguria/Sliders/etc/system.xml +302 -0
  25. app/code/community/Auguria/Sliders/sql/auguria_sliders_setup/mysql4-install-0.0.1.php +42 -0
  26. app/code/community/Auguria/Sliders/sql/auguria_sliders_setup/mysql4-upgrade-0.0.1-0.0.2.php +61 -0
  27. app/design/adminhtml/default/default/layout/auguria/sliders.xml +24 -0
  28. app/design/adminhtml/default/default/template/auguria/sliders/edit/categories.phtml +149 -0
  29. app/design/frontend/base/default/layout/auguria/sliders.xml +66 -0
  30. app/design/frontend/base/default/template/auguria/sliders/slider.phtml +123 -0
  31. app/etc/modules/Auguria_Sliders.xml +17 -0
  32. app/locale/fr_FR/Auguria_Sliders.csv +94 -0
  33. js/auguria/sliders/jquery-1.7.2.min.js +4 -0
  34. js/auguria/sliders/slides.min.jquery.js +20 -0
  35. media/auguria/sliders/Anax.jpg +0 -0
  36. media/auguria/sliders/Ara.jpg +0 -0
  37. media/auguria/sliders/resized/455x200/Anax.jpg +0 -0
  38. media/auguria/sliders/resized/900x394/Anax.jpg +0 -0
  39. package.xml +18 -0
  40. skin/frontend/base/default/css/auguria/sliders/default.css +154 -0
  41. skin/frontend/base/default/images/auguria/sliders/loading.gif +0 -0
  42. skin/frontend/base/default/images/auguria/sliders/next-hover.png +0 -0
  43. skin/frontend/base/default/images/auguria/sliders/next.png +0 -0
  44. skin/frontend/base/default/images/auguria/sliders/pagination.png +0 -0
  45. skin/frontend/base/default/images/auguria/sliders/previous-hover.png +0 -0
  46. skin/frontend/base/default/images/auguria/sliders/previous.png +0 -0
app/code/community/Auguria/Sliders/Block/Abstract.php ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ abstract class Auguria_Sliders_Block_Abstract extends Mage_Core_Block_Template
9
+ {
10
+ protected $_pageType;
11
+
12
+ public function getSlides()
13
+ {
14
+ if (Mage::getStoreConfig('auguria_sliders/general/enabled')) {
15
+ $slides = Mage::getResourceModel('auguria_sliders/sliders_collection')
16
+ ->addStoreFilter(Mage::app()->getStore()->getId())
17
+ ->addFilter('is_active',true)
18
+ ->setOrder('sort_order', 'ASC');
19
+ return $slides;
20
+ }
21
+ return new Varien_Data_Collection();
22
+ }
23
+
24
+ public function displayLink($slide)
25
+ {
26
+ $link = $slide->getLink();
27
+ return !empty($link);
28
+ }
29
+
30
+ public function displayImage($slide)
31
+ {
32
+ $imagePath = $this->getMediaPath($slide);
33
+ return is_file($imagePath);
34
+ }
35
+
36
+ public function displayCmsContent($slide)
37
+ {
38
+ $cmsContent = $slide->getCmsContent();
39
+ return !empty($cmsContent);
40
+ }
41
+
42
+ public function getMediaPath($slide, $width=null, $height=null)
43
+ {
44
+ $baseName = basename($slide->getImage());
45
+ if ($width==null && $height==null) {
46
+ return Mage::getBaseDir(Mage_Core_Model_Store::URL_TYPE_MEDIA) . DS . 'auguria' . DS . 'sliders' . DS . $baseName;
47
+ }
48
+ return Mage::getBaseDir(Mage_Core_Model_Store::URL_TYPE_MEDIA) . DS . 'auguria' . DS . 'sliders' . DS . 'resized' . DS . $width.'x'.$height . DS . $baseName;
49
+ }
50
+
51
+ public function getMediaUrl($slide, $width=null, $height=null)
52
+ {
53
+ $baseName = basename($slide->getImage());
54
+ if ($width==null && $height==null) {
55
+ return Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'auguria/sliders/' . $baseName;
56
+ }
57
+ return Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'auguria/sliders/resized/' . $width.'x'.$height . '/' . $baseName;
58
+ }
59
+
60
+ public function getResizedImage($slide, $width=null, $height=null)
61
+ {
62
+ // If base image exists
63
+ if (is_file($this->getMediaPath($slide))) {
64
+ // If no resize return base image url
65
+ if ($width==null && $height==null) {
66
+ return $this->getMediaUrl($slide);
67
+ }
68
+ // If resized image doesn't exists : process resize
69
+ elseif (!is_file($this->getMediaPath($slide, $width, $height))) {
70
+ $imageObj = new Varien_Image($this->getMediaPath($slide));
71
+ $imageObj->constrainOnly(true);
72
+ $imageObj->keepAspectRatio(true);
73
+ $imageObj->keepFrame(false);
74
+ $imageObj->resize($width, $height);
75
+ $imageObj->save($this->getMediaPath($slide, $width, $height));
76
+ // If resized image exists : return resized url
77
+ if (is_file($this->getMediaPath($slide, $width, $height))) {
78
+ return $this->getMediaUrl($slide, $width, $height);
79
+ }
80
+ }
81
+ // Resized image exists : return it
82
+ else {
83
+ return $this->getMediaUrl($slide, $width, $height);
84
+ }
85
+ }
86
+ return '';
87
+ }
88
+
89
+ public function setPageType($type)
90
+ {
91
+ $this->_pageType = $type;
92
+ }
93
+
94
+ public function getPageType()
95
+ {
96
+ if (!isset($this->_pageType)) {
97
+ $template = $this->getLayout()->getBlock('root')->getTemplate();
98
+ $patterns = array('empty'=>'/empty/','one'=>'/1/','two'=>'/2/','three'=>'/3/');
99
+ foreach ($patterns as $type=>$pattern) {
100
+ if (preg_match($pattern, $template)) {
101
+ $this->_pageType = $type;
102
+ break;
103
+ }
104
+ }
105
+ }
106
+ return $this->_pageType;
107
+ }
108
+
109
+ public function getCaptionHeight()
110
+ {
111
+ $configPath = 'auguria_sliders/general/'.$this->getPageType().'_caption_height';
112
+ return (int)Mage::getStoreConfig($configPath);
113
+ }
114
+
115
+ public function getImageWidth()
116
+ {
117
+ $configPath = 'auguria_sliders/general/'.$this->getPageType().'_image_width';
118
+ return (int)Mage::getStoreConfig($configPath);
119
+ }
120
+
121
+ public function getImageHeight()
122
+ {
123
+ $configPath = 'auguria_sliders/general/'.$this->getPageType().'_image_height';
124
+ return (int)Mage::getStoreConfig($configPath);
125
+ }
126
+ }
app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Block_Adminhtml_Sliders extends Mage_Adminhtml_Block_Widget_Grid_Container
9
+ {
10
+
11
+ /**
12
+ * Initialize banners manage page
13
+ *
14
+ * @return void
15
+ */
16
+ public function __construct()
17
+ {
18
+ $this->_controller = 'adminhtml_sliders';
19
+ $this->_blockGroup = 'auguria_sliders';
20
+ $this->_headerText = Mage::helper('auguria_sliders')->__('Manage sliders');
21
+ $this->_addButtonLabel = Mage::helper('auguria_sliders')->__('Add Slider');
22
+ parent::__construct();
23
+ }
24
+ }
app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Block_Adminhtml_Sliders_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
9
+ {
10
+ public function __construct()
11
+ {
12
+ $this->_objectId = 'id';
13
+ $this->_blockGroup = 'auguria_sliders';
14
+ $this->_controller = 'adminhtml_sliders';
15
+
16
+ parent::__construct();
17
+
18
+ $objId = $this->getRequest()->getParam($this->_objectId);
19
+
20
+ $this->_addButton('saveandcontinue', array(
21
+ 'label' => Mage::helper('adminhtml')->__('Save And Continue Edit'),
22
+ 'onclick' => 'saveAndContinueEdit()',
23
+ 'class' => 'save',
24
+ ), -100);
25
+
26
+ $this->_formScripts[] = "
27
+ function toggleEditor() {
28
+ if (tinyMCE.getInstanceById('cms_content') == null) {
29
+ tinyMCE.execCommand('mceAddControl', false, 'cms_content');
30
+ } else {
31
+ tinyMCE.execCommand('mceRemoveControl', false, 'cms_content');
32
+ }
33
+ }
34
+ function saveAndContinueEdit(){
35
+ editForm.submit($('edit_form').action+'back/edit/');
36
+ }
37
+ ";
38
+ }
39
+
40
+ public function getHeaderText()
41
+ {
42
+ if( Mage::registry('sliders_data') && Mage::registry('sliders_data')->getId() ) {
43
+ return Mage::helper('auguria_sliders')->__("Edition of the slider '%s'", $this->htmlEscape(Mage::registry('sliders_data')->getName()));
44
+ }
45
+ else {
46
+ return Mage::helper('auguria_sliders')->__('Add a slider');
47
+ }
48
+ }
49
+ }
app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Form.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Block_Adminhtml_Sliders_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
9
+ {
10
+ protected function _prepareLayout()
11
+ {
12
+ parent::_prepareLayout();
13
+
14
+ $this->getLayout()->getBlock('head')->setCanLoadTinyMce(true);
15
+ $this->getLayout()->getBlock('head')->addJs('mage/adminhtml/variables.js');
16
+ $this->getLayout()->getBlock('head')->addJs('mage/adminhtml/wysiwyg/widget.js');
17
+ $this->getLayout()->getBlock('head')->addJs('lib/flex.js');
18
+ $this->getLayout()->getBlock('head')->addJs('lib/FABridge.js');
19
+ $this->getLayout()->getBlock('head')->addJs('mage/adminhtml/flexuploader.js');
20
+ $this->getLayout()->getBlock('head')->addJs('mage/adminhtml/browser.js');
21
+ $this->getLayout()->getBlock('head')->addJs('extjs/ext-tree.js');
22
+ $this->getLayout()->getBlock('head')->addJs('extjs/ext-tree-checkbox.js');
23
+
24
+ $this->getLayout()->getBlock('head')->addItem('js_css','extjs/resources/css/ext-all.css');
25
+ $this->getLayout()->getBlock('head')->addItem('js_css','extjs/resources/css/ytheme-magento.css');
26
+ $this->getLayout()->getBlock('head')->addItem('js_css','prototype/windows/themes/default.css');
27
+ $this->getLayout()->getBlock('head')->addCss('lib/prototype/windows/themes/magento.css');
28
+ }
29
+
30
+ protected function _prepareForm()
31
+ {
32
+ $form = new Varien_Data_Form(array(
33
+ 'id' => 'edit_form',
34
+ 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
35
+ 'method' => 'post',
36
+ 'enctype' => 'multipart/form-data'
37
+ )
38
+ );
39
+
40
+ $form->setUseContainer(true);
41
+ $this->setForm($form);
42
+ return parent::_prepareForm();
43
+ }
44
+ }
app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Tab/Categories.php ADDED
@@ -0,0 +1,275 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Block_Adminhtml_Sliders_Edit_Tab_Categories extends Mage_Adminhtml_Block_Catalog_Category_Tree
9
+ {
10
+ protected $_categoryIds;
11
+ protected $_selectedNodes = null;
12
+
13
+ /**
14
+ * Specify template to use
15
+ */
16
+ public function __construct()
17
+ {
18
+ parent::__construct();
19
+ $this->setTemplate('auguria/sliders/edit/categories.phtml');
20
+ }
21
+
22
+ /**
23
+ * Retrieve currently edited slider
24
+ *
25
+ * @return Auguria_Sliders_Model_Sliders
26
+ */
27
+ public function getSlider()
28
+ {
29
+ return Mage::registry('sliders_data');
30
+ }
31
+
32
+ /**
33
+ * Checks when this block is readonly
34
+ *
35
+ * @return boolean
36
+ */
37
+ public function isReadonly()
38
+ {
39
+ return $this->getSlider()->getCategoriesReadonly();
40
+ }
41
+
42
+ /**
43
+ * Return array with category IDs which the product is assigned to
44
+ *
45
+ * @return array
46
+ */
47
+ protected function _getCategoryIds()
48
+ {
49
+ if (!isset($this->_categoryIds)) {
50
+ $this->_categoryIds = array();
51
+ $categoryIds = $this->getSlider()->getCategoryIds();
52
+ if (is_array($categoryIds) && count($categoryIds)>0) {
53
+ $this->_categoryIds = $categoryIds;
54
+ }
55
+ }
56
+ return $this->_categoryIds;
57
+ }
58
+
59
+ /**
60
+ * Forms string out of getCategoryIds()
61
+ *
62
+ * @return string
63
+ */
64
+ public function getIdsString()
65
+ {
66
+ return implode(',', $this->_getCategoryIds());
67
+ }
68
+
69
+ /**
70
+ * Returns root node and sets 'checked' flag (if necessary)
71
+ *
72
+ * @return Varien_Data_Tree_Node
73
+ */
74
+ public function getRootNode()
75
+ {
76
+ $root = $this->getRoot();
77
+ if ($root && in_array($root->getId(), $this->_getCategoryIds())) {
78
+ $root->setChecked(true);
79
+ }
80
+ return $root;
81
+ }
82
+
83
+ /**
84
+ * Returns root node
85
+ *
86
+ * @param Mage_Catalog_Model_Category|null $parentNodeCategory
87
+ * @param int $recursionLevel
88
+ * @return Varien_Data_Tree_Node
89
+ */
90
+ public function getRoot($parentNodeCategory = null, $recursionLevel = 3)
91
+ {
92
+ if (!is_null($parentNodeCategory) && $parentNodeCategory->getId()) {
93
+ return $this->getNode($parentNodeCategory, $recursionLevel);
94
+ }
95
+ $root = Mage::registry('root');
96
+ if (is_null($root)) {
97
+ $storeId = (int) $this->getRequest()->getParam('store');
98
+
99
+ if ($storeId) {
100
+ $store = Mage::app()->getStore($storeId);
101
+ $rootId = $store->getRootCategoryId();
102
+ }
103
+ else {
104
+ $rootId = Mage_Catalog_Model_Category::TREE_ROOT_ID;
105
+ }
106
+
107
+ $ids = $this->getSelectedCategoriesPathIds($rootId);
108
+ $tree = Mage::getResourceSingleton('catalog/category_tree')
109
+ ->loadByIds($ids, false, false);
110
+
111
+ if ($this->getCategory()) {
112
+ $tree->loadEnsuredNodes($this->getCategory(), $tree->getNodeById($rootId));
113
+ }
114
+
115
+ $tree->addCollectionData($this->getCategoryCollection());
116
+
117
+ $root = $tree->getNodeById($rootId);
118
+
119
+ if ($root && $rootId != Mage_Catalog_Model_Category::TREE_ROOT_ID) {
120
+ $root->setIsVisible(true);
121
+ if ($this->isReadonly()) {
122
+ $root->setDisabled(true);
123
+ }
124
+ }
125
+ elseif($root && $root->getId() == Mage_Catalog_Model_Category::TREE_ROOT_ID) {
126
+ $root->setName(Mage::helper('catalog')->__('Root'));
127
+ }
128
+
129
+ Mage::register('root', $root);
130
+ }
131
+
132
+ return $root;
133
+ }
134
+
135
+ /**
136
+ * Returns array with configuration of current node
137
+ *
138
+ * @param Varien_Data_Tree_Node $node
139
+ * @param int $level How deep is the node in the tree
140
+ * @return array
141
+ */
142
+ protected function _getNodeJson($node, $level = 1)
143
+ {
144
+ $item = parent::_getNodeJson($node, $level);
145
+
146
+ if ($this->_isParentSelectedCategory($node)) {
147
+ $item['expanded'] = true;
148
+ }
149
+
150
+ if (in_array($node->getId(), $this->_getCategoryIds())) {
151
+ $item['checked'] = true;
152
+ }
153
+
154
+ if ($this->isReadonly()) {
155
+ $item['disabled'] = true;
156
+ }
157
+
158
+ return $item;
159
+ }
160
+
161
+ /**
162
+ * Returns whether $node is a parent (not exactly direct) of a selected node
163
+ *
164
+ * @param Varien_Data_Tree_Node $node
165
+ * @return bool
166
+ */
167
+ protected function _isParentSelectedCategory($node)
168
+ {
169
+ $result = false;
170
+ // Contains string with all category IDs of children (not exactly direct) of the node
171
+ $allChildren = $node->getAllChildren();
172
+ if ($allChildren) {
173
+ $selectedCategoryIds = $this->_getCategoryIds();
174
+ Mage::log('$selectedCategoryIds '.$selectedCategoryIds);
175
+ $allChildrenArr = explode(',', $allChildren);
176
+ for ($i = 0, $cnt = count($selectedCategoryIds); $i < $cnt; $i++) {
177
+ $isSelf = $node->getId() == $selectedCategoryIds[$i];
178
+ if (!$isSelf && in_array($selectedCategoryIds[$i], $allChildrenArr)) {
179
+ $result = true;
180
+ break;
181
+ }
182
+ }
183
+ }
184
+
185
+ return $result;
186
+ }
187
+
188
+ /**
189
+ * Returns array with nodes those are selected (contain current slider)
190
+ *
191
+ * @return array
192
+ */
193
+ protected function _getSelectedNodes()
194
+ {
195
+ if ($this->_selectedNodes === null) {
196
+ $this->_selectedNodes = array();
197
+ $root = $this->getRoot();
198
+ foreach ($this->_getCategoryIds() as $categoryId) {
199
+ if ($root) {
200
+ $this->_selectedNodes[] = $root->getTree()->getNodeById($categoryId);
201
+ }
202
+ }
203
+ }
204
+
205
+ return $this->_selectedNodes;
206
+ }
207
+
208
+ /**
209
+ * Returns JSON-encoded array of category children
210
+ *
211
+ * @param int $categoryId
212
+ * @return string
213
+ */
214
+ public function getCategoryChildrenJson($categoryId)
215
+ {
216
+ $category = Mage::getModel('catalog/category')->load($categoryId);
217
+ $node = $this->getRoot($category, 1)->getTree()->getNodeById($categoryId);
218
+
219
+ if (!$node || !$node->hasChildren()) {
220
+ return '[]';
221
+ }
222
+
223
+ $children = array();
224
+ foreach ($node->getChildren() as $child) {
225
+ $children[] = $this->_getNodeJson($child);
226
+ }
227
+
228
+ return Mage::helper('core')->jsonEncode($children);
229
+ }
230
+
231
+ /**
232
+ * Returns URL for loading tree
233
+ *
234
+ * @param null $expanded
235
+ * @return string
236
+ */
237
+ public function getLoadTreeUrl($expanded = null)
238
+ {
239
+ return $this->getUrl('*/*/categoriesJson', array('_current' => true));
240
+ }
241
+
242
+ /**
243
+ * Return distinct path ids of selected categories
244
+ *
245
+ * @param mixed $rootId Root category Id for context
246
+ * @return array
247
+ */
248
+ public function getSelectedCategoriesPathIds($rootId = false)
249
+ {
250
+ $ids = array();
251
+ $categoryIds = $this->_getCategoryIds();
252
+ if (empty($categoryIds)) {
253
+ return array();
254
+ }
255
+ $collection = Mage::getResourceModel('catalog/category_collection');
256
+
257
+ if ($rootId) {
258
+ $collection->addFieldToFilter('parent_id', $rootId);
259
+ } else {
260
+ $collection->addFieldToFilter('entity_id', array('in'=>$categoryIds));
261
+ }
262
+
263
+ foreach ($collection as $item) {
264
+ if ($rootId && !in_array($rootId, $item->getPathIds())) {
265
+ continue;
266
+ }
267
+ foreach ($item->getPathIds() as $id) {
268
+ if (!in_array($id, $ids)) {
269
+ $ids[] = $id;
270
+ }
271
+ }
272
+ }
273
+ return $ids;
274
+ }
275
+ }
app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Tab/Content.php ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Block_Adminhtml_Sliders_Edit_Tab_Content extends Mage_Adminhtml_Block_Widget_Form
9
+ {
10
+ protected function _prepareForm()
11
+ {
12
+ $form = new Varien_Data_Form();
13
+ $this->setForm($form);
14
+ $fieldset = $form->addFieldset('sliders_form', array('legend'=>Mage::helper('auguria_sliders')->__("Content")));
15
+
16
+ $fieldset->addField('slider_id', 'hidden', array(
17
+ 'name' => 'id',
18
+ ));
19
+
20
+ $fieldset->addField('name', 'text', array(
21
+ 'label' => Mage::helper('auguria_sliders')->__('Name'),
22
+ 'class' => 'required-entry',
23
+ 'required' => true,
24
+ 'name' => 'name',
25
+ ));
26
+
27
+ $fieldset->addField('image', 'image', array(
28
+ 'label' => Mage::helper('auguria_sliders')->__('Image'),
29
+ 'required' => false,
30
+ 'name' => 'image',
31
+ ));
32
+
33
+ $fieldset->addField('link', 'text', array(
34
+ 'label' => Mage::helper('auguria_sliders')->__('Link'),
35
+ 'required' => false,
36
+ 'name' => 'link',
37
+ ));
38
+
39
+ $config = Mage::getSingleton('cms/wysiwyg_config')->getConfig();
40
+ $config->setData('files_browser_window_url',Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/cms_wysiwyg_images/index/'));
41
+ $config->setData('directives_url',Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/cms_wysiwyg/directive'));
42
+ $config->setData('directives_url_quoted', preg_quote($config->getData('directives_url')));
43
+ $config->setData('widget_window_url',Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/widget/index'));
44
+
45
+ $fieldset->addField('cms_content', 'editor', array(
46
+ 'label' => Mage::helper('auguria_sliders')->__('Cms content'),
47
+ 'required' => false,
48
+ 'name' => 'cms_content',
49
+ 'config' => $config
50
+ ));
51
+
52
+ $fieldset->addField('sort_order', 'text', array(
53
+ 'label' => Mage::helper('auguria_sliders')->__('Sort order'),
54
+ 'required' => false,
55
+ 'name' => 'sort_order',
56
+ 'class' => 'validate-digits'
57
+ ));
58
+
59
+ $status = Mage::helper('auguria_sliders')->getIsActiveOptionArray();
60
+ array_unshift($status, array('label'=>'', 'value'=>''));
61
+ $fieldset->addField('is_active', 'select', array(
62
+ 'label' => Mage::helper('auguria_sliders')->__('Status'),
63
+ 'required' => true,
64
+ 'name' => 'is_active',
65
+ 'values' => $status
66
+ ));
67
+
68
+ if (Mage::getSingleton('adminhtml/session')->getSlidersData()) {
69
+ $form->setValues(Mage::getSingleton('adminhtml/session')->getSlidersData());
70
+ Mage::getSingleton('adminhtml/session')->setSlidersData(null);
71
+ }
72
+ elseif (Mage::registry('sliders_data')) {
73
+ $form->setValues(Mage::registry('sliders_data')->getData());
74
+ }
75
+ return parent::_prepareForm();
76
+ }
77
+ }
app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Tab/Pages.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Block_Adminhtml_Sliders_Edit_Tab_Pages extends Mage_Adminhtml_Block_Widget_Form
9
+ {
10
+ protected function _prepareForm()
11
+ {
12
+ $form = new Varien_Data_Form();
13
+ $this->setForm($form);
14
+ $fieldset = $form->addFieldset('sliders_form', array('legend'=>Mage::helper('auguria_sliders')->__("Cms pages")));
15
+
16
+ $fieldset->addField('pages', 'multiselect', array(
17
+ 'label' => Mage::helper('auguria_sliders')->__('Slider visible in'),
18
+ 'required' => false,
19
+ 'name' => 'pages[]',
20
+ 'values' => Mage::getSingleton('auguria_sliders/adminhtml_system_config_source_cms_page')->toOptionArray()
21
+ ));
22
+
23
+ if (Mage::getSingleton('adminhtml/session')->getSlidersData()) {
24
+ $form->setValues(Mage::getSingleton('adminhtml/session')->getSlidersData());
25
+ Mage::getSingleton('adminhtml/session')->setSlidersData(null);
26
+ }
27
+ elseif (Mage::registry('sliders_data')) {
28
+ $form->setValues(Mage::registry('sliders_data')->getData());
29
+ }
30
+ return parent::_prepareForm();
31
+ }
32
+ }
app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Tab/Stores.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Block_Adminhtml_Sliders_Edit_Tab_Stores extends Mage_Adminhtml_Block_Widget_Form
9
+ {
10
+ protected function _prepareForm()
11
+ {
12
+ $form = new Varien_Data_Form();
13
+ $this->setForm($form);
14
+ $fieldset = $form->addFieldset('sliders_form', array('legend'=>Mage::helper('auguria_sliders')->__("Stores")));
15
+
16
+ $fieldset->addField('stores', 'multiselect', array(
17
+ 'label' => Mage::helper('auguria_sliders')->__('Slider visible in'),
18
+ 'required' => true,
19
+ 'name' => 'stores[]',
20
+ 'values' => Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm(false, true),
21
+ ));
22
+
23
+ if (Mage::getSingleton('adminhtml/session')->getSlidersData()) {
24
+ $form->setValues(Mage::getSingleton('adminhtml/session')->getSlidersData());
25
+ Mage::getSingleton('adminhtml/session')->setSlidersData(null);
26
+ }
27
+ elseif (Mage::registry('sliders_data')) {
28
+ $form->setValues(Mage::registry('sliders_data')->getData());
29
+ }
30
+ return parent::_prepareForm();
31
+ }
32
+ }
app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Tabs.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Block_Adminhtml_Sliders_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
9
+ {
10
+
11
+ public function __construct()
12
+ {
13
+ parent::__construct();
14
+ $this->setId('sliders_tabs');
15
+ $this->setDestElementId('edit_form');
16
+ $this->setTitle(Mage::helper('auguria_sliders')->__('Slider detail'));
17
+ }
18
+
19
+ protected function _beforeToHtml()
20
+ {
21
+ $this->addTab('content_section', array(
22
+ 'label' => Mage::helper('auguria_sliders')->__('Content'),
23
+ 'title' => Mage::helper('auguria_sliders')->__('Content'),
24
+ 'content' => $this->getLayout()->createBlock('auguria_sliders/adminhtml_sliders_edit_tab_content')->toHtml(),
25
+ ));
26
+
27
+ $this->addTab('cms_pages_section', array(
28
+ 'label' => Mage::helper('auguria_sliders')->__('Cms pages'),
29
+ 'title' => Mage::helper('auguria_sliders')->__('Cms pages'),
30
+ 'content' => $this->getLayout()->createBlock('auguria_sliders/adminhtml_sliders_edit_tab_pages')->toHtml(),
31
+ ));
32
+
33
+ $this->addTab('categories_section', array(
34
+ 'label' => Mage::helper('auguria_sliders')->__('Categories'),
35
+ 'title' => Mage::helper('auguria_sliders')->__('Categories'),
36
+ 'content' => $this->getLayout()->createBlock('auguria_sliders/adminhtml_sliders_edit_tab_categories')->toHtml(),
37
+ ));
38
+
39
+ $this->addTab('stores_section', array(
40
+ 'label' => Mage::helper('auguria_sliders')->__('Stores'),
41
+ 'title' => Mage::helper('auguria_sliders')->__('Stores'),
42
+ 'content' => $this->getLayout()->createBlock('auguria_sliders/adminhtml_sliders_edit_tab_stores')->toHtml(),
43
+ ));
44
+
45
+ return parent::_beforeToHtml();
46
+ }
47
+ }
app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Grid.php ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Block_Adminhtml_Sliders_Grid extends Mage_Adminhtml_Block_Widget_Grid
9
+ {
10
+ /**
11
+ * Set defaults
12
+ */
13
+ protected function _construct()
14
+ {
15
+ parent::_construct();
16
+ $this->setId('slidersGrid');
17
+ $this->setDefaultSort('slider_id');
18
+ $this->setDefaultDir('desc');
19
+ }
20
+
21
+ /**
22
+ * Instantiate and prepare collection
23
+ *
24
+ * @return Auguria_Sliders_Block_Adminhtml_Sliders_Grid
25
+ */
26
+ protected function _prepareCollection()
27
+ {
28
+ $collection = Mage::getResourceModel('auguria_sliders/sliders_collection');
29
+ $this->setCollection($collection);
30
+ return parent::_prepareCollection();
31
+ }
32
+
33
+ /**
34
+ * Define grid columns
35
+ */
36
+ protected function _prepareColumns()
37
+ {
38
+ $this->addColumn(
39
+ 'slider_id',
40
+ array(
41
+ 'header'=> Mage::helper('auguria_sliders')->__('ID'),
42
+ 'align' => 'right',
43
+ 'type' => 'number',
44
+ 'index' => 'slider_id',
45
+ )
46
+ );
47
+
48
+ $this->addColumn(
49
+ 'name', array(
50
+ 'header' => Mage::helper('auguria_sliders')->__('Name'),
51
+ 'align' => 'left',
52
+ 'index' => 'name'
53
+ )
54
+ );
55
+
56
+ $this->addColumn(
57
+ 'sort_order', array(
58
+ 'header' => Mage::helper('auguria_sliders')->__('Sort order'),
59
+ 'align' => 'right',
60
+ 'index' => 'sort_order',
61
+ 'type' => 'number',
62
+ )
63
+ );
64
+
65
+ $this->addColumn(
66
+ 'is_active', array(
67
+ 'header' => Mage::helper('auguria_sliders')->__('Status'),
68
+ 'align' => 'right',
69
+ 'index' => 'is_active',
70
+ 'type' => 'options',
71
+ 'options' => Mage::helper('auguria_sliders')->getIsActiveOptionArray()
72
+ )
73
+ );
74
+
75
+ if (!Mage::app()->isSingleStoreMode()) {
76
+ $this->addColumn(
77
+ 'stores', array(
78
+ 'header' => Mage::helper('auguria_sliders')->__('Store View'),
79
+ 'index' => 'stores',
80
+ 'type' => 'store',
81
+ 'store_all' => true,
82
+ 'store_view' => true,
83
+ 'sortable' => false,
84
+ 'filter_condition_callback' => array($this, '_filterStoreCondition'),
85
+ )
86
+ );
87
+ }
88
+
89
+ return parent::_prepareColumns();
90
+ }
91
+ /**
92
+ * Prepare mass action options for this grid
93
+ */
94
+ protected function _prepareMassaction()
95
+ {
96
+ $this->setMassactionIdField('slider_id');
97
+ $this->getMassactionBlock()->setFormFieldName('sliders');
98
+
99
+ $this->getMassactionBlock()->addItem(
100
+ 'delete', array(
101
+ 'label' => Mage::helper('auguria_sliders')->__('Delete'),
102
+ 'url' => $this->getUrl('*/*/massDelete'),
103
+ 'confirm' => Mage::helper('auguria_sliders')->__('Are you sure you want to delete these slides?')
104
+ )
105
+ );
106
+
107
+
108
+ // $status = Mage::helper('auguria_sliders')->getIsActiveOptionArray();
109
+ // array_unshift($status, array('label'=>'', 'value'=>''));
110
+ // $this->getMassactionBlock()->addItem('is_active', array(
111
+ // 'label'=> Mage::helper('auguria_sliders')->__('Change status'),
112
+ // 'url' => $this->getUrl('*/*/massStatus', array('_current'=>true)),
113
+ // 'additional' => array(
114
+ // 'visibility' => array(
115
+ // 'name' => 'is_active',
116
+ // 'type' => 'select',
117
+ // 'class' => 'required-entry',
118
+ // 'label' => Mage::helper('auguria_sliders')->__('Status'),
119
+ // 'values' => $status
120
+ // )
121
+ // )
122
+ // ));
123
+
124
+ return $this;
125
+ }
126
+
127
+ /**
128
+ * Row click url
129
+ *
130
+ * @return string
131
+ */
132
+ public function getRowUrl($row)
133
+ {
134
+ return $this->getUrl('*/*/edit', array('id' => $row->getId()));
135
+ }
136
+
137
+ protected function _afterLoadCollection()
138
+ {
139
+ $this->getCollection()->walk('afterLoad');
140
+ parent::_afterLoadCollection();
141
+ }
142
+
143
+ protected function _filterStoreCondition($collection, $column)
144
+ {
145
+ if (!$value = $column->getFilter()->getValue()) {
146
+ return;
147
+ }
148
+
149
+ $this->getCollection()->addStoreFilter($value);
150
+ }
151
+ }
app/code/community/Auguria/Sliders/Block/Catalog/Category/Slider.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Block_Catalog_Category_Slider extends Auguria_Sliders_Block_Abstract
9
+ {
10
+ public function getSlides()
11
+ {
12
+ $slides = parent::getSlides();
13
+ /* Join auguria_sliders_pages and filter by page id */
14
+ $tableName = Mage::getSingleton('core/resource')->getTableName('auguria_sliders/categories');
15
+ $slides->getSelect()
16
+ ->join( array('sc'=>$tableName),
17
+ 'main_table.slider_id = sc.slider_id', array('sc.*'))
18
+ ->where('sc.category_id = ?', $this->getCategoryId());
19
+ return $slides;
20
+ }
21
+
22
+ public function getCategoryId()
23
+ {
24
+ if (Mage::registry('current_category')) {
25
+ return Mage::registry('current_category')->getId();
26
+ }
27
+ return 0;
28
+ }
29
+ }
app/code/community/Auguria/Sliders/Block/Cms/Page/Slider.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Block_Cms_Page_Slider extends Auguria_Sliders_Block_Abstract
9
+ {
10
+ public function getSlides()
11
+ {
12
+ $slides = parent::getSlides();
13
+ $tableName = Mage::getSingleton('core/resource')->getTableName('auguria_sliders/pages');
14
+ $slides->getSelect()
15
+ ->join( array('sp'=>$tableName),
16
+ 'main_table.slider_id = sp.slider_id', array('sp.*'))
17
+ ->where('sp.page_id = ?', $this->getPageId());
18
+ return $slides;
19
+ }
20
+
21
+ public function getPageId()
22
+ {
23
+ try {
24
+ return (int)Mage::getBlockSingleton('cms/page')->getPage()->getPageId();
25
+ }
26
+ catch (Exception $e) {
27
+ return 0;
28
+ }
29
+ }
30
+ }
app/code/community/Auguria/Sliders/Helper/Data.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Helper_Data extends Mage_Catalog_Helper_Data
9
+ {
10
+ public function getIsActiveOptionArray()
11
+ {
12
+ return array(
13
+ 1 => $this->__('Enabled'),
14
+ 0 => $this->__('Disabled')
15
+ );
16
+ }
17
+ }
app/code/community/Auguria/Sliders/Model/Adminhtml/System/Config/Backend/NaturalNumber.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Model_Adminhtml_System_Config_Backend_NaturalNumber extends Mage_Core_Model_Config_Data
9
+ {
10
+ protected function _beforeSave()
11
+ {
12
+ $value = $this->getValue();
13
+ if (!Zend_Validate::is($value, 'NotEmpty')) {
14
+ Mage::throwException(Mage::helper('auguria_sliders')->__("A value is required."));
15
+ }
16
+ if (!Zend_Validate::is($value, 'Digits')) {
17
+ Mage::throwException(Mage::helper('auguria_sliders')->__("'%s' is not a natural number.", $value));
18
+ }
19
+ $validator = new Zend_Validate_GreaterThan(-1);
20
+ if (!$validator->isValid($value)) {
21
+ Mage::throwException(Mage::helper('auguria_sliders')->__("'%s' is not a natural number.", $value));
22
+ }
23
+ return $this;
24
+ }
25
+ }
app/code/community/Auguria/Sliders/Model/Adminhtml/System/Config/Source/Cms/Page.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Model_Adminhtml_System_Config_Source_Cms_Page
9
+ {
10
+
11
+ protected $_options;
12
+
13
+ public function toOptionArray()
14
+ {
15
+ if (!$this->_options) {
16
+ $collection = Mage::getResourceModel('cms/page_collection');
17
+ if ($collection && $collection->count()>0) {
18
+ foreach ($collection as $item) {
19
+ $this->_options[] = array(
20
+ 'value'=> $item->getData('page_id'),
21
+ 'label'=> $item->getData('title'));
22
+ }
23
+ }
24
+ }
25
+ return $this->_options;
26
+ }
27
+
28
+ }
app/code/community/Auguria/Sliders/Model/Adminhtml/System/Config/Source/Effect.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Model_Adminhtml_System_Config_Source_Effect
9
+ {
10
+
11
+ /**
12
+ * Options getter
13
+ *
14
+ * @return array
15
+ */
16
+ public function toOptionArray()
17
+ {
18
+ return array(
19
+ array('value' => 'slide', 'label'=>Mage::helper('auguria_sliders')->__('Slide')),
20
+ array('value' => 'fade', 'label'=>Mage::helper('auguria_sliders')->__('Fade')),
21
+ );
22
+ }
23
+
24
+ /**
25
+ * Get options in "key-value" format
26
+ *
27
+ * @return array
28
+ */
29
+ public function toArray()
30
+ {
31
+ return array(
32
+ 'fade' => Mage::helper('auguria_sliders')->__('Fade'),
33
+ 'slide' => Mage::helper('auguria_sliders')->__('Slide'),
34
+ );
35
+ }
36
+ }
app/code/community/Auguria/Sliders/Model/Adminhtml/System/Config/Source/Truefalse.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Model_Adminhtml_System_Config_Source_Truefalse
9
+ {
10
+
11
+ /**
12
+ * Options getter
13
+ *
14
+ * @return array
15
+ */
16
+ public function toOptionArray()
17
+ {
18
+ return array(
19
+ array('value' => 'true', 'label'=>Mage::helper('auguria_sliders')->__('True')),
20
+ array('value' => 'false', 'label'=>Mage::helper('auguria_sliders')->__('False')),
21
+ );
22
+ }
23
+
24
+ /**
25
+ * Get options in "key-value" format
26
+ *
27
+ * @return array
28
+ */
29
+ public function toArray()
30
+ {
31
+ return array(
32
+ 'false' => Mage::helper('auguria_sliders')->__('False'),
33
+ 'true' => Mage::helper('auguria_sliders')->__('True'),
34
+ );
35
+ }
36
+ }
app/code/community/Auguria/Sliders/Model/Mysql4/Sliders.php ADDED
@@ -0,0 +1,160 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Model_Mysql4_Sliders extends Mage_Core_Model_Mysql4_Abstract
9
+ {
10
+ public function _construct()
11
+ {
12
+ $this->_init('auguria_sliders/sliders', 'slider_id');
13
+ }
14
+
15
+ protected function _afterDelete(Mage_Core_Model_Abstract $object)
16
+ {
17
+
18
+ $condition = $this->_getWriteAdapter()->quoteInto('slider_id = ?', $object->getId());
19
+
20
+ // Stores
21
+ $this->_getWriteAdapter()->delete($this->getTable('auguria_sliders/stores'), $condition);
22
+
23
+ // Cms pages
24
+ $this->_getWriteAdapter()->delete($this->getTable('auguria_sliders/pages'), $condition);
25
+
26
+ // Category ids
27
+ $this->_getWriteAdapter()->delete($this->getTable('auguria_sliders/categories'), $condition);
28
+
29
+ return parent::_afterDelete($object);
30
+ }
31
+ /**
32
+ *
33
+ * @param Mage_Core_Model_Abstract $object
34
+ */
35
+ protected function _afterSave(Mage_Core_Model_Abstract $object)
36
+ {
37
+ $condition = $this->_getWriteAdapter()->quoteInto('slider_id = ?', $object->getId());
38
+
39
+ // Stores
40
+ $this->_getWriteAdapter()->delete($this->getTable('auguria_sliders/stores'), $condition);
41
+ foreach ((array)$object->getData('stores') as $store) {
42
+ $storeArray = array();
43
+ $storeArray['slider_id'] = $object->getId();
44
+ $storeArray['store_id'] = $store;
45
+ $this->_getWriteAdapter()->insert($this->getTable('auguria_sliders/stores'), $storeArray);
46
+ }
47
+
48
+ // Cms pages
49
+ $this->_getWriteAdapter()->delete($this->getTable('auguria_sliders/pages'), $condition);
50
+ foreach ((array)$object->getData('pages') as $page) {
51
+ $pageArray = array();
52
+ $pageArray['slider_id'] = $object->getId();
53
+ $pageArray['page_id'] = $page;
54
+ $this->_getWriteAdapter()->insert($this->getTable('auguria_sliders/pages'), $pageArray);
55
+ }
56
+
57
+ // Category ids
58
+ $this->_getWriteAdapter()->delete($this->getTable('auguria_sliders/categories'), $condition);
59
+ foreach ((array)$object->getData('category_ids') as $category) {
60
+ $categoryArray = array();
61
+ $categoryArray['slider_id'] = $object->getId();
62
+ $categoryArray['category_id'] = $category;
63
+ $this->_getWriteAdapter()->insert($this->getTable('auguria_sliders/categories'), $categoryArray);
64
+ }
65
+
66
+ return parent::_afterSave($object);
67
+ }
68
+
69
+ public function load(Mage_Core_Model_Abstract $object, $value, $field=null)
70
+ {
71
+
72
+ if (!intval($value) && is_string($value)) {
73
+ $field = 'slider_id';
74
+ }
75
+ return parent::load($object, $value, $field);
76
+ }
77
+
78
+ /**
79
+ *
80
+ * @param Mage_Core_Model_Abstract $object
81
+ */
82
+ protected function _afterLoad(Mage_Core_Model_Abstract $object)
83
+ {
84
+ if ($object->getId()) {
85
+
86
+ // Stores
87
+ $select = $this->_getReadAdapter()->select()
88
+ ->from($this->getTable('auguria_sliders/stores'))
89
+ ->where('slider_id = ?', $object->getId());
90
+ if ($data = $this->_getReadAdapter()->fetchAll($select)) {
91
+ $storesArray = array();
92
+ foreach ($data as $row) {
93
+ $storesArray[] = $row['store_id'];
94
+ }
95
+ $object->setData('stores', $storesArray);
96
+ }
97
+
98
+ // Cms pages
99
+ $select = $this->_getReadAdapter()->select()
100
+ ->from($this->getTable('auguria_sliders/pages'))
101
+ ->where('slider_id = ?', $object->getId());
102
+ if ($data = $this->_getReadAdapter()->fetchAll($select)) {
103
+ $pagesArray = array();
104
+ foreach ($data as $row) {
105
+ $pagesArray[] = $row['page_id'];
106
+ }
107
+ $object->setData('pages', $pagesArray);
108
+ }
109
+
110
+ // Category ids
111
+ $select = $this->_getReadAdapter()->select()
112
+ ->from($this->getTable('auguria_sliders/categories'))
113
+ ->where('slider_id = ?', $object->getId());
114
+ if ($data = $this->_getReadAdapter()->fetchAll($select)) {
115
+ $categoriesArray = array();
116
+ foreach ($data as $row) {
117
+ $categoriesArray[] = $row['category_id'];
118
+ }
119
+ $object->setData('category_ids', $categoriesArray);
120
+ }
121
+ }
122
+ return parent::_afterLoad($object);
123
+ }
124
+
125
+ /**
126
+ * Retrieve select object for load object data
127
+ *
128
+ * @param string $field
129
+ * @param mixed $value
130
+ * @return Zend_Db_Select
131
+ */
132
+ protected function _getLoadSelect($field, $value, $object)
133
+ {
134
+
135
+ $select = parent::_getLoadSelect($field, $value, $object);
136
+
137
+ if ($object->getStoreId()) {
138
+ $select->join(array('wcs' => $this->getTable('auguria_sliders/stores')), $this->getMainTable().'.slider_id = wcs.slider_id')
139
+ ->where('wcs.store_id in (0, ?) ', $object->getStoreId())
140
+ ->order('store_id DESC')
141
+ ->limit(1);
142
+ }
143
+ return $select;
144
+ }
145
+
146
+ /**
147
+ * Get store ids to which specified item is assigned
148
+ *
149
+ * @param int $id
150
+ * @return array
151
+ */
152
+ public function lookupStoreIds($id)
153
+ {
154
+ return $this->_getReadAdapter()->fetchCol(
155
+ $this->_getReadAdapter()->select()
156
+ ->from($this->getTable('auguria_sliders/stores'), 'store_id')
157
+ ->where("{$this->getIdFieldName()} = ?", $id)
158
+ );
159
+ }
160
+ }
app/code/community/Auguria/Sliders/Model/Mysql4/Sliders/Collection.php ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Model_Mysql4_Sliders_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
9
+ {
10
+ public function _construct()
11
+ {
12
+ parent::_construct();
13
+ $this->_init('auguria_sliders/sliders');
14
+ $this->_map['fields']['store'] = 'store_table.store_id';
15
+ }
16
+
17
+ public function toOptionArray()
18
+ {
19
+ return $this->_toOptionArray('slider_id', 'frontend_subject');
20
+ }
21
+
22
+ /**
23
+ * Add filter by store
24
+ *
25
+ * @param int|Mage_Core_Model_Store $store
26
+ * @return Auguria_Contact_Model_Mysql4_Contacts_Collection
27
+ */
28
+ public function addStoreFilter($store, $withAdmin = true)
29
+ {
30
+ if ($store instanceof Mage_Core_Model_Store) {
31
+ $store = array($store->getId());
32
+ }
33
+
34
+ $this->getSelect()->join(array('wcs' => $this->getTable('auguria_sliders/stores')), 'main_table.slider_id = wcs.slider_id',array())
35
+ ->where('wcs.store_id in (?) ', $withAdmin ? array(0, $store) : $store);
36
+
37
+ return $this;
38
+ }
39
+
40
+ /**
41
+ * Get SQL for get record count
42
+ *
43
+ * @return Varien_Db_Select
44
+ */
45
+ public function getSelectCountSql()
46
+ {
47
+ $countSelect = parent::getSelectCountSql();
48
+ $countSelect->reset(Zend_Db_Select::GROUP);
49
+ return $countSelect;
50
+ }
51
+ }
app/code/community/Auguria/Sliders/Model/Sliders.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Model_Sliders extends Mage_Core_Model_Abstract
9
+ {
10
+ public function _construct()
11
+ {
12
+ parent::_construct();
13
+ $this->_init('auguria_sliders/sliders');
14
+ }
15
+ }
app/code/community/Auguria/Sliders/controllers/Adminhtml/SlidersController.php ADDED
@@ -0,0 +1,268 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ class Auguria_Sliders_Adminhtml_SlidersController extends Mage_Adminhtml_Controller_Action
9
+ {
10
+ /**
11
+ * Init actions
12
+ *
13
+ * @return Mage_Adminhtml_Cms_BlockController
14
+ */
15
+ protected function _initAction()
16
+ {
17
+ // load layout, set active menu and breadcrumbs
18
+ $this->loadLayout()
19
+ ->_setActiveMenu('cms/sliders')
20
+ ->_addBreadcrumb(Mage::helper('adminhtml')->__('Items Manager'), Mage::helper('adminhtml')->__('Item Manager'));
21
+ return $this;
22
+ }
23
+
24
+ /**
25
+ * Sliders list
26
+ *
27
+ * @return void
28
+ */
29
+ public function indexAction()
30
+ {
31
+ $this->_initAction()
32
+ ->renderLayout();
33
+ }
34
+
35
+ /**
36
+ * Create new slide
37
+ */
38
+ public function newAction()
39
+ {
40
+ // the same form is used to create and edit
41
+ $this->_forward('edit');
42
+ }
43
+
44
+ /**
45
+ * Edit action
46
+ *
47
+ */
48
+ public function editAction()
49
+ {
50
+ $id = $this->getRequest()->getParam('id');
51
+ $model = Mage::getModel('auguria_sliders/sliders')->load($id);
52
+
53
+ if ($model->getId() || $id == 0) {
54
+ $data = Mage::getSingleton('adminhtml/session')->getFormData(true);
55
+ if (!empty($data)) {
56
+ $model->setData($data);
57
+ }
58
+
59
+ Mage::register('sliders_data', $model);
60
+
61
+ $this->loadLayout();
62
+ $this->_setActiveMenu('cms/sliders');
63
+
64
+ $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item Manager'), Mage::helper('adminhtml')->__('Item Manager'));
65
+ $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item News'), Mage::helper('adminhtml')->__('Item News'));
66
+
67
+ $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
68
+
69
+ $this->_addContent($this->getLayout()->createBlock('auguria_sliders/adminhtml_sliders_edit'))
70
+ ->_addLeft($this->getLayout()->createBlock('auguria_sliders/adminhtml_sliders_edit_tabs'));
71
+
72
+ $this->renderLayout();
73
+ }
74
+ else {
75
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('auguria_sliders')->__('This slider no longer exists.'));
76
+ $this->_redirect('*/*/');
77
+ }
78
+ }
79
+
80
+ /**
81
+ * Save action
82
+ */
83
+ public function saveAction()
84
+ {
85
+ // check if data sent
86
+ if ($data = $this->getRequest()->getPost()) {
87
+ $id = $this->getRequest()->getParam('id');
88
+ $model = Mage::getModel('auguria_sliders/sliders')->load($id);
89
+ if (!$model->getId() && $id) {
90
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('auguria_sliders')->__('This slider no longer exists.'));
91
+ $this->_redirect('*/*/');
92
+ return;
93
+ }
94
+
95
+ // Set categories
96
+ if (isset($data['category_ids'])) {
97
+ $categoryIds = array_unique(explode(',', $data['category_ids']));
98
+ $data['category_ids'] = $categoryIds;
99
+ }
100
+
101
+ // Set new image
102
+ if(isset($_FILES['image']['name']) && $_FILES['image']['name'] != '')
103
+ {
104
+ try
105
+ {
106
+ /* Starting upload */
107
+ $uploader = new Varien_File_Uploader('image');
108
+
109
+ // Any extention would work
110
+ $uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
111
+ $uploader->setFilesDispersion(false);
112
+
113
+ // Upload image and copy into product dir
114
+ $path = Mage::getBaseDir('media') . DS . 'auguria' . DS . 'sliders' .DS;
115
+ $fileName = $_FILES['image']['name'];
116
+ $uploader->save($path, $fileName );
117
+
118
+ }
119
+ catch (Exception $e)
120
+ {
121
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
122
+ Mage::getSingleton('adminhtml/session')->setFormData($data);
123
+ $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
124
+ return;
125
+ }
126
+
127
+ //this way the name is saved in DB
128
+ $data['image'] = 'auguria/sliders/'.$_FILES['image']['name'];
129
+ }
130
+ // Delete old image
131
+ elseif (isset($data['image']['delete'])) {
132
+ $image = Mage::getBaseDir(Mage_Core_Model_Store::URL_TYPE_MEDIA) . DS . $model->getImage();
133
+ if (file_exists($image)) {
134
+ unlink($image);
135
+ }
136
+ $data['image'] = '';
137
+ }
138
+ // Remove null values from data
139
+ elseif (isset($data['image'])) {
140
+ unset($data['image']);
141
+ }
142
+
143
+ // Set all data
144
+ if (is_array($data) && count($data)>0) {
145
+ foreach ($data as $key=>$value) {
146
+ $model->setData($key,$value);
147
+ }
148
+ }
149
+
150
+ // try to save it
151
+ try {
152
+ // save the data
153
+ $model->save();
154
+ // display success message
155
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('auguria_sliders')->__('The slider has been saved.'));
156
+ // clear previously saved data from session
157
+ Mage::getSingleton('adminhtml/session')->setFormData(false);
158
+
159
+ // check if 'Save and Continue'
160
+ if ($this->getRequest()->getParam('back')) {
161
+ $this->_redirect('*/*/edit', array('id' => $model->getId()));
162
+ return;
163
+ }
164
+ // go to grid
165
+ $this->_redirect('*/*/');
166
+ return;
167
+
168
+ } catch (Exception $e) {
169
+ // display error message
170
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
171
+ // save data in session
172
+ Mage::getSingleton('adminhtml/session')->setFormData($data);
173
+ // redirect to edit form
174
+ $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
175
+ return;
176
+ }
177
+ }
178
+ $this->_redirect('*/*/');
179
+ }
180
+
181
+ /**
182
+ * Delete action
183
+ *
184
+ */
185
+ public function deleteAction()
186
+ {
187
+ // check if we know what should be deleted
188
+ if ($id = $this->getRequest()->getParam('id')) {
189
+ try {
190
+ // init model and delete
191
+ $model = Mage::getModel('auguria_sliders/sliders');
192
+ $model->load($id);
193
+ $model->delete();
194
+ // display success message
195
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('auguria_sliders')->__('The slider has been deleted.'));
196
+ // go to grid
197
+ $this->_redirect('*/*/');
198
+ return;
199
+
200
+ } catch (Exception $e) {
201
+ // display error message
202
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
203
+ // go back to edit form
204
+ $this->_redirect('*/*/edit', array('id' => $id));
205
+ return;
206
+ }
207
+ }
208
+ // display error message
209
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('auguria_sliders')->__('Unable to find the slider to delete.'));
210
+ // go to grid
211
+ $this->_redirect('*/*/');
212
+ }
213
+
214
+ /**
215
+ * Delete specified banners using grid massaction
216
+ *
217
+ */
218
+ public function massDeleteAction()
219
+ {
220
+ $ids = $this->getRequest()->getParam('sliders');
221
+ if (!is_array($ids)) {
222
+ $this->_getSession()->addError($this->__('Please select items.'));
223
+ } else {
224
+ try {
225
+ foreach ($ids as $id) {
226
+ $model = Mage::getSingleton('auguria_sliders/sliders')->load($id);
227
+ $model->delete();
228
+ }
229
+
230
+ $this->_getSession()->addSuccess(
231
+ $this->__('Total of %d record(s) have been deleted.', count($ids))
232
+ );
233
+ } catch (Mage_Core_Exception $e) {
234
+ $this->_getSession()->addError($e->getMessage());
235
+ } catch (Exception $e) {
236
+ $this->_getSession()->addError(Mage::helper('auguria_contact')->__('An error occurred while mass deleting contacts. Please review log and try again.'));
237
+ Mage::logException($e);
238
+ return;
239
+ }
240
+ }
241
+ $this->_redirect('*/*/index');
242
+ }
243
+
244
+
245
+ /**
246
+ * Check the permission to run it
247
+ *
248
+ * @return boolean
249
+ */
250
+ protected function _isAllowed()
251
+ {
252
+ return Mage::getSingleton('admin/session')->isAllowed('cms/auguria_sliders');
253
+ }
254
+
255
+ public function categoriesJsonAction()
256
+ {
257
+ $sliderId = $this->getRequest()->getParam('id');
258
+ $model = Mage::getModel('auguria_sliders/sliders')->load($sliderId);
259
+
260
+ Mage::register('sliders_data', $model);
261
+ Mage::register('current_sliders', $model);
262
+
263
+ $this->getResponse()->setBody(
264
+ $this->getLayout()->createBlock('auguria_sliders/adminhtml_sliders_edit_tab_categories')
265
+ ->getCategoryChildrenJson($this->getRequest()->getParam('category'))
266
+ );
267
+ }
268
+ }
app/code/community/Auguria/Sliders/etc/adminhtml.xml ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * @category Auguria
5
+ * @package Auguria_Sliders
6
+ * @author Auguria
7
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
8
+ */
9
+ -->
10
+ <config>
11
+ <menu>
12
+ <cms>
13
+ <children>
14
+ <auguria_sliders translate="title" module="auguria_sliders">
15
+ <title>Sliders</title>
16
+ <action>adminhtml/sliders</action>
17
+ <sort_order>100</sort_order>
18
+ </auguria_sliders>
19
+ </children>
20
+ </cms>
21
+ </menu>
22
+ <acl>
23
+ <resources>
24
+ <admin>
25
+ <children>
26
+ <system>
27
+ <children>
28
+ <config>
29
+ <children>
30
+ <auguria_sliders translate="title" module="auguria_sliders">
31
+ <title>Sliders</title>
32
+ </auguria_sliders>
33
+ </children>
34
+ </config>
35
+ </children>
36
+ </system>
37
+ <cms>
38
+ <children>
39
+ <auguria_sliders translate="title" module="auguria_sliders">
40
+ <title>Sliders</title>
41
+ </auguria_sliders>
42
+ </children>
43
+ </cms>
44
+ </children>
45
+ </admin>
46
+ </resources>
47
+ </acl>
48
+ </config>
app/code/community/Auguria/Sliders/etc/config.xml ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ /**
4
+ * @category Auguria
5
+ * @package Auguria_Sliders
6
+ * @author Auguria
7
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
8
+ */
9
+ -->
10
+ <config>
11
+ <modules>
12
+ <Auguria_Sliders>
13
+ <version>0.0.2</version>
14
+ </Auguria_Sliders>
15
+ </modules>
16
+ <frontend>
17
+ <layout>
18
+ <updates>
19
+ <auguria_sliders>
20
+ <file>auguria/sliders.xml</file>
21
+ </auguria_sliders>
22
+ </updates>
23
+ </layout>
24
+ <translate>
25
+ <modules>
26
+ <Auguria_Sliders>
27
+ <files>
28
+ <default>Auguria_Sliders.csv</default>
29
+ </files>
30
+ </Auguria_Sliders>
31
+ </modules>
32
+ </translate>
33
+ </frontend>
34
+ <admin>
35
+ <routers>
36
+ <adminhtml>
37
+ <args>
38
+ <modules>
39
+ <auguria_sliders before="Mage_Adminhtml">Auguria_Sliders_Adminhtml</auguria_sliders>
40
+ </modules>
41
+ </args>
42
+ </adminhtml>
43
+ </routers>
44
+ </admin>
45
+ <adminhtml>
46
+ <translate>
47
+ <modules>
48
+ <Auguria_Sliders>
49
+ <files>
50
+ <default>Auguria_Sliders.csv</default>
51
+ </files>
52
+ </Auguria_Sliders>
53
+ </modules>
54
+ </translate>
55
+ <layout>
56
+ <updates>
57
+ <auguria_sliders>
58
+ <file>auguria/sliders.xml</file>
59
+ </auguria_sliders>
60
+ </updates>
61
+ </layout>
62
+ </adminhtml>
63
+ <global>
64
+ <blocks>
65
+ <auguria_sliders>
66
+ <class>Auguria_Sliders_Block</class>
67
+ </auguria_sliders>
68
+ </blocks>
69
+ <models>
70
+ <auguria_sliders>
71
+ <class>Auguria_Sliders_Model</class>
72
+ <resourceModel>auguria_sliders_mysql4</resourceModel>
73
+ </auguria_sliders>
74
+ <auguria_sliders_mysql4>
75
+ <class>Auguria_Sliders_Model_Mysql4</class>
76
+ <entities>
77
+ <sliders>
78
+ <table>auguria_sliders</table>
79
+ </sliders>
80
+ <stores>
81
+ <table>auguria_sliders_stores</table>
82
+ </stores>
83
+ <pages>
84
+ <table>auguria_sliders_pages</table>
85
+ </pages>
86
+ <categories>
87
+ <table>auguria_sliders_categories</table>
88
+ </categories>
89
+ </entities>
90
+ </auguria_sliders_mysql4>
91
+ </models>
92
+ <helpers>
93
+ <auguria_sliders>
94
+ <class>Auguria_Sliders_Helper</class>
95
+ </auguria_sliders>
96
+ </helpers>
97
+ <resources>
98
+ <auguria_sliders_setup>
99
+ <setup>
100
+ <module>Auguria_Sliders</module>
101
+ </setup>
102
+ <connection>
103
+ <use>core_setup</use>
104
+ </connection>
105
+ </auguria_sliders_setup>
106
+ <auguria_sliders_write>
107
+ <connection>
108
+ <use>core_write</use>
109
+ </connection>
110
+ </auguria_sliders_write>
111
+ <auguria_sliders_read>
112
+ <connection>
113
+ <use>core_read</use>
114
+ </connection>
115
+ </auguria_sliders_read>
116
+ </resources>
117
+ </global>
118
+ <default>
119
+ <auguria_sliders>
120
+ <general>
121
+ <enabled>1</enabled>
122
+ <preload>false</preload>
123
+ <generate_next_prev>true</generate_next_prev>
124
+ <generate_pagination>true</generate_pagination>
125
+ <fade_speed>350</fade_speed>
126
+ <slide_speed>350</slide_speed>
127
+ <!-- <fadeEasing></fadeEasing><slideEasing></slideEasing> @TODO install library-->
128
+ <effect_next_prev>slide</effect_next_prev>
129
+ <effect_pagination>slide</effect_pagination>
130
+ <crossfade>false</crossfade>
131
+ <randomize>false</randomize>
132
+ <play>3000</play>
133
+ <pause>350</pause>
134
+ <hover_pause>false</hover_pause>
135
+ <auto_height>false</auto_height>
136
+ <auto_height_speed>350</auto_height_speed>
137
+ <animate_caption>200</animate_caption>
138
+ <empty_caption_height>70</empty_caption_height>
139
+ <one_caption_height>70</one_caption_height>
140
+ <two_caption_height>70</two_caption_height>
141
+ <three_caption_height>70</three_caption_height>
142
+
143
+ <empty_image_height>394</empty_image_height>
144
+ <one_image_height>394</one_image_height>
145
+ <two_image_height>300</two_image_height>
146
+ <three_image_height>200</three_image_height>
147
+
148
+ <empty_image_width>900</empty_image_width>
149
+ <one_image_width>900</one_image_width>
150
+ <two_image_width>685</two_image_width>
151
+ <three_image_width>455</three_image_width>
152
+ </general>
153
+ </auguria_sliders>
154
+ </default>
155
+ </config>
app/code/community/Auguria/Sliders/etc/system.xml ADDED
@@ -0,0 +1,302 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * @category Auguria
5
+ * @package Auguria_Sliders
6
+ * @author Auguria
7
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
8
+ */
9
+ -->
10
+ <config>
11
+ <sections>
12
+ <auguria_sliders translate="label" module="auguria_sliders">
13
+ <label>Sliders</label>
14
+ <tab>general</tab>
15
+ <frontend_type>text</frontend_type>
16
+ <sort_order>1100</sort_order>
17
+ <show_in_default>1</show_in_default>
18
+ <show_in_website>1</show_in_website>
19
+ <show_in_store>1</show_in_store>
20
+ <groups>
21
+ <general translate="label" module="auguria_sliders">
22
+ <label>Sliders Options</label>
23
+ <frontend_type>text</frontend_type>
24
+ <sort_order>100</sort_order>
25
+ <show_in_default>1</show_in_default>
26
+ <show_in_website>1</show_in_website>
27
+ <show_in_store>1</show_in_store>
28
+ <fields>
29
+ <enabled translate="label" module="auguria_sliders">
30
+ <label>Enable Sliders</label>
31
+ <frontend_type>select</frontend_type>
32
+ <source_model>adminhtml/system_config_source_yesno</source_model>
33
+ <sort_order>10</sort_order>
34
+ <show_in_default>1</show_in_default>
35
+ <show_in_website>1</show_in_website>
36
+ <show_in_store>1</show_in_store>
37
+ </enabled>
38
+ <preload translate="label" module="auguria_sliders">
39
+ <label>Preload</label>
40
+ <comment>Set true to preload images in an image based slideshow.</comment>
41
+ <frontend_type>select</frontend_type>
42
+ <source_model>auguria_sliders/adminhtml_system_config_source_truefalse</source_model>
43
+ <sort_order>20</sort_order>
44
+ <show_in_default>1</show_in_default>
45
+ <show_in_website>1</show_in_website>
46
+ <show_in_store>1</show_in_store>
47
+ </preload>
48
+ <generate_next_prev translate="label" module="auguria_sliders">
49
+ <label>Generate next/prev</label>
50
+ <frontend_type>select</frontend_type>
51
+ <source_model>auguria_sliders/adminhtml_system_config_source_truefalse</source_model>
52
+ <sort_order>30</sort_order>
53
+ <show_in_default>1</show_in_default>
54
+ <show_in_website>1</show_in_website>
55
+ <show_in_store>1</show_in_store>
56
+ </generate_next_prev>
57
+ <generate_pagination>
58
+ <label>Generate pagination</label>
59
+ <frontend_type>select</frontend_type>
60
+ <source_model>auguria_sliders/adminhtml_system_config_source_truefalse</source_model>
61
+ <sort_order>40</sort_order>
62
+ <show_in_default>1</show_in_default>
63
+ <show_in_website>1</show_in_website>
64
+ <show_in_store>1</show_in_store>
65
+ </generate_pagination>
66
+ <fade_speed>
67
+ <label>Fade speed</label>
68
+ <comment>Set the speed of the fading animation in milliseconds.</comment>
69
+ <frontend_type>text</frontend_type>
70
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
71
+ <sort_order>50</sort_order>
72
+ <show_in_default>1</show_in_default>
73
+ <show_in_website>1</show_in_website>
74
+ <show_in_store>1</show_in_store>
75
+ </fade_speed>
76
+ <slide_speed>
77
+ <label>Slide speed</label>
78
+ <comment>Set the speed of the sliding animation in milliseconds.</comment>
79
+ <frontend_type>text</frontend_type>
80
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
81
+ <sort_order>60</sort_order>
82
+ <show_in_default>1</show_in_default>
83
+ <show_in_website>1</show_in_website>
84
+ <show_in_store>1</show_in_store>
85
+ </slide_speed>
86
+ <effect_next_prev>
87
+ <label>Effect for next/prev</label>
88
+ <comment>Set effect, slide or fade for next/prev.</comment>
89
+ <frontend_type>select</frontend_type>
90
+ <source_model>auguria_sliders/adminhtml_system_config_source_effect</source_model>
91
+ <sort_order>70</sort_order>
92
+ <show_in_default>1</show_in_default>
93
+ <show_in_website>1</show_in_website>
94
+ <show_in_store>1</show_in_store>
95
+ </effect_next_prev>
96
+ <effect_pagination>
97
+ <label>Effect for pagination</label>
98
+ <comment>Set effect, slide or fade for pagination.</comment>
99
+ <frontend_type>select</frontend_type>
100
+ <source_model>auguria_sliders/adminhtml_system_config_source_effect</source_model>
101
+ <sort_order>80</sort_order>
102
+ <show_in_default>1</show_in_default>
103
+ <show_in_website>1</show_in_website>
104
+ <show_in_store>1</show_in_store>
105
+ </effect_pagination>
106
+ <crossfade>
107
+ <label>Crossfade</label>
108
+ <comment>Crossfade images in a image based slideshow.</comment>
109
+ <frontend_type>select</frontend_type>
110
+ <source_model>auguria_sliders/adminhtml_system_config_source_truefalse</source_model>
111
+ <sort_order>90</sort_order>
112
+ <show_in_default>1</show_in_default>
113
+ <show_in_website>1</show_in_website>
114
+ <show_in_store>1</show_in_store>
115
+ </crossfade>
116
+ <randomize>
117
+ <label>Randomize</label>
118
+ <comment>Set to true to randomize slides.</comment>
119
+ <frontend_type>select</frontend_type>
120
+ <source_model>auguria_sliders/adminhtml_system_config_source_truefalse</source_model>
121
+ <sort_order>90</sort_order>
122
+ <show_in_default>1</show_in_default>
123
+ <show_in_website>1</show_in_website>
124
+ <show_in_store>1</show_in_store>
125
+ </randomize>
126
+ <play>
127
+ <label>Autoplay</label>
128
+ <comment>Autoplay slideshow, a positive number will set to true and be the time between slide animation in milliseconds.</comment>
129
+ <frontend_type>text</frontend_type>
130
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
131
+ <sort_order>100</sort_order>
132
+ <show_in_default>1</show_in_default>
133
+ <show_in_website>1</show_in_website>
134
+ <show_in_store>1</show_in_store>
135
+ </play>
136
+ <pause>
137
+ <label>Pause</label>
138
+ <comment>Pause slideshow on click of next/prev or pagination. A positive number will set to true and be the time of pause in milliseconds.</comment>
139
+ <frontend_type>text</frontend_type>
140
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
141
+ <sort_order>110</sort_order>
142
+ <show_in_default>1</show_in_default>
143
+ <show_in_website>1</show_in_website>
144
+ <show_in_store>1</show_in_store>
145
+ </pause>
146
+ <hover_pause>
147
+ <label>Hover pause</label>
148
+ <comment>Set to true and hovering over slideshow will pause it.</comment>
149
+ <frontend_type>select</frontend_type>
150
+ <source_model>auguria_sliders/adminhtml_system_config_source_truefalse</source_model>
151
+ <sort_order>120</sort_order>
152
+ <show_in_default>1</show_in_default>
153
+ <show_in_website>1</show_in_website>
154
+ <show_in_store>1</show_in_store>
155
+ </hover_pause>
156
+ <auto_height>
157
+ <label>Auto height</label>
158
+ <comment>Set to true to auto adjust height.</comment>
159
+ <frontend_type>select</frontend_type>
160
+ <source_model>auguria_sliders/adminhtml_system_config_source_truefalse</source_model>
161
+ <sort_order>130</sort_order>
162
+ <show_in_default>1</show_in_default>
163
+ <show_in_website>1</show_in_website>
164
+ <show_in_store>1</show_in_store>
165
+ </auto_height>
166
+ <auto_height_speed>
167
+ <label>Auto height speed</label>
168
+ <comment>Set auto height animation time in milliseconds.</comment>
169
+ <frontend_type>text</frontend_type>
170
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
171
+ <sort_order>140</sort_order>
172
+ <show_in_default>1</show_in_default>
173
+ <show_in_website>1</show_in_website>
174
+ <show_in_store>1</show_in_store>
175
+ </auto_height_speed>
176
+
177
+ <animate_caption>
178
+ <label>Animate caption</label>
179
+ <comment>A positive number will set to true and indicate animation speed in milliseconds.</comment>
180
+ <frontend_type>select</frontend_type>
181
+ <source_model>auguria_sliders/adminhtml_system_config_source_truefalse</source_model>
182
+ <sort_order>145</sort_order>
183
+ <show_in_default>1</show_in_default>
184
+ <show_in_website>1</show_in_website>
185
+ <show_in_store>1</show_in_store>
186
+ </animate_caption>
187
+ <empty_caption_height>
188
+ <label>Caption height on empty page</label>
189
+ <frontend_type>text</frontend_type>
190
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
191
+ <sort_order>150</sort_order>
192
+ <show_in_default>1</show_in_default>
193
+ <show_in_website>1</show_in_website>
194
+ <show_in_store>1</show_in_store>
195
+ </empty_caption_height>
196
+ <one_caption_height>
197
+ <label>Caption height on one column page</label>
198
+ <frontend_type>text</frontend_type>
199
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
200
+ <sort_order>160</sort_order>
201
+ <show_in_default>1</show_in_default>
202
+ <show_in_website>1</show_in_website>
203
+ <show_in_store>1</show_in_store>
204
+ </one_caption_height>
205
+ <two_caption_height>
206
+ <label>Caption height on two columns page</label>
207
+ <frontend_type>text</frontend_type>
208
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
209
+ <sort_order>170</sort_order>
210
+ <show_in_default>1</show_in_default>
211
+ <show_in_website>1</show_in_website>
212
+ <show_in_store>1</show_in_store>
213
+ </two_caption_height>
214
+ <three_caption_height>
215
+ <label>Caption height on three columns page</label>
216
+ <frontend_type>text</frontend_type>
217
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
218
+ <sort_order>180</sort_order>
219
+ <show_in_default>1</show_in_default>
220
+ <show_in_website>1</show_in_website>
221
+ <show_in_store>1</show_in_store>
222
+ </three_caption_height>
223
+
224
+ <empty_image_height>
225
+ <label>Image height on empty page</label>
226
+ <frontend_type>text</frontend_type>
227
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
228
+ <sort_order>190</sort_order>
229
+ <show_in_default>1</show_in_default>
230
+ <show_in_website>1</show_in_website>
231
+ <show_in_store>1</show_in_store>
232
+ </empty_image_height>
233
+ <one_image_height>
234
+ <label>Image height on one column page</label>
235
+ <frontend_type>text</frontend_type>
236
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
237
+ <sort_order>200</sort_order>
238
+ <show_in_default>1</show_in_default>
239
+ <show_in_website>1</show_in_website>
240
+ <show_in_store>1</show_in_store>
241
+ </one_image_height>
242
+ <two_image_height>
243
+ <label>Image height on two columns page</label>
244
+ <frontend_type>text</frontend_type>
245
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
246
+ <sort_order>210</sort_order>
247
+ <show_in_default>1</show_in_default>
248
+ <show_in_website>1</show_in_website>
249
+ <show_in_store>1</show_in_store>
250
+ </two_image_height>
251
+ <three_image_height>
252
+ <label>Image height on three columns page</label>
253
+ <frontend_type>text</frontend_type>
254
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
255
+ <sort_order>220</sort_order>
256
+ <show_in_default>1</show_in_default>
257
+ <show_in_website>1</show_in_website>
258
+ <show_in_store>1</show_in_store>
259
+ </three_image_height>
260
+
261
+ <empty_image_width>
262
+ <label>Image width on empty page</label>
263
+ <frontend_type>text</frontend_type>
264
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
265
+ <sort_order>230</sort_order>
266
+ <show_in_default>1</show_in_default>
267
+ <show_in_website>1</show_in_website>
268
+ <show_in_store>1</show_in_store>
269
+ </empty_image_width>
270
+ <one_image_width>
271
+ <label>Image width on one column page</label>
272
+ <frontend_type>text</frontend_type>
273
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
274
+ <sort_order>240</sort_order>
275
+ <show_in_default>1</show_in_default>
276
+ <show_in_website>1</show_in_website>
277
+ <show_in_store>1</show_in_store>
278
+ </one_image_width>
279
+ <two_image_width>
280
+ <label>Image width on two columns page</label>
281
+ <frontend_type>text</frontend_type>
282
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
283
+ <sort_order>250</sort_order>
284
+ <show_in_default>1</show_in_default>
285
+ <show_in_website>1</show_in_website>
286
+ <show_in_store>1</show_in_store>
287
+ </two_image_width>
288
+ <three_image_width>
289
+ <label>Image width on three columns page</label>
290
+ <frontend_type>text</frontend_type>
291
+ <backend_model>auguria_sliders/adminhtml_system_config_backend_naturalNumber</backend_model>
292
+ <sort_order>260</sort_order>
293
+ <show_in_default>1</show_in_default>
294
+ <show_in_website>1</show_in_website>
295
+ <show_in_store>1</show_in_store>
296
+ </three_image_width>
297
+ </fields>
298
+ </general>
299
+ </groups>
300
+ </auguria_sliders>
301
+ </sections>
302
+ </config>
app/code/community/Auguria/Sliders/sql/auguria_sliders_setup/mysql4-install-0.0.1.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Create sliders table
4
+ * @category Auguria
5
+ * @package Auguria_Sliders
6
+ * @author Auguria
7
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
8
+ */
9
+ $installer = $this;
10
+ $installer->startSetup();
11
+ $installer->run("
12
+
13
+ CREATE TABLE IF NOT EXISTS `{$this->getTable('auguria_sliders/sliders')}` (
14
+ `slider_id` int(11) unsigned NOT NULL auto_increment,
15
+ `name` varchar(255) NULL DEFAULT '',
16
+ `image` varchar(255) NULL DEFAULT '',
17
+ `link` varchar(255) NULL DEFAULT '',
18
+ `cms_content` varchar(255) NULL DEFAULT '',
19
+ `sort_order` int(11) NULL DEFAULT 0,
20
+ `is_active` tinyint(1) NULL DEFAULT '1',
21
+ PRIMARY KEY (`slider_id`)
22
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
23
+
24
+ CREATE TABLE IF NOT EXISTS `{$this->getTable('auguria_sliders/stores')}` (
25
+ `slider_id` int(11) unsigned NOT NULL auto_increment,
26
+ `store_id` smallint(5) unsigned NOT NULL,
27
+ PRIMARY KEY (`slider_id`,`store_id`)
28
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
29
+
30
+ CREATE TABLE IF NOT EXISTS `{$this->getTable('auguria_sliders/pages')}` (
31
+ `slider_id` int(11) unsigned NOT NULL auto_increment,
32
+ `page_id` smallint(6) NOT NULL,
33
+ PRIMARY KEY (`slider_id`,`page_id`)
34
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
35
+
36
+ CREATE TABLE IF NOT EXISTS `{$this->getTable('auguria_sliders/categories')}` (
37
+ `slider_id` int(11) unsigned NOT NULL auto_increment,
38
+ `category_id` int(10) NOT NULL,
39
+ PRIMARY KEY (`slider_id`,`category_id`)
40
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
41
+ ");
42
+ $installer->endSetup();
app/code/community/Auguria/Sliders/sql/auguria_sliders_setup/mysql4-upgrade-0.0.1-0.0.2.php ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Insert slides exemple
4
+ * @category Auguria
5
+ * @package Auguria_Sliders
6
+ * @author Auguria
7
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
8
+ */
9
+ $installer = $this;
10
+ $installer->startSetup();
11
+
12
+ // Get all CMS pages
13
+ $pages = array();
14
+ $collection = Mage::getResourceModel('cms/page_collection')->addFieldToSelect('page_id');
15
+ if ($collection && $collection->count()>0) {
16
+ foreach ($collection as $item) {
17
+ $pages[]=$item->getPageId();
18
+ }
19
+ }
20
+
21
+ // Get all categories of level 2
22
+ $categories = array();
23
+ $collection = Mage::getResourceModel('catalog/category_collection')
24
+ ->addAttributeToSelect('entity_id')
25
+ ->addAttributeToFilter('level',2);
26
+ if ($collection && $collection->count()>0) {
27
+ foreach ($collection as $item) {
28
+ $categories[]=$item->getEntityId();
29
+ }
30
+ }
31
+
32
+ $datas[] = array(
33
+ "name"=>"Ara bleu",
34
+ "image"=>"auguria/sliders/Ara.jpg",
35
+ "link"=>"http://www.auguria.net/",
36
+ "cms_content"=>"<p>L'<a title='Ara bleu' href='http://fr.wikipedia.org/wiki/Ara_bleu'>Ara bleu</a> est un perroquet pr&eacute;sent en <a title='Am&eacute;rique latine' href='http://fr.wikipedia.org/wiki/Am%C3%A9rique_latine'>Am&eacute;rique latine</a>.</p>",
37
+ "sort_order"=>1,
38
+ "is_active"=>1,
39
+ "stores"=>array(0),
40
+ "pages"=>$pages,
41
+ "category_ids"=>$categories
42
+ );
43
+ $datas[] = array(
44
+ "name"=>"Anax empereur",
45
+ "image"=>"auguria/sliders/Anax.jpg",
46
+ "link"=>"http://www.auguria.net/",
47
+ "cms_content"=>"<p>Un <a style='color: #e26703;' title='Anax empereur' href='http://fr.wikipedia.org/wiki/Anax_empereur'>Anax empereur</a> (<em>Anax imperator</em>). Photo prise &agrave; Gubbeen, dans le comt&eacute; de Cork (Irlande).</p>",
48
+ "sort_order"=>2,
49
+ "is_active"=>1,
50
+ "stores"=>array(0),
51
+ "pages"=>$pages,
52
+ "category_ids"=>$categories
53
+ );
54
+
55
+ foreach ($datas as $data) {
56
+ $model = Mage::getModel('auguria_sliders/sliders');
57
+ $model->setData($data);
58
+ $model->save();
59
+ }
60
+
61
+ $installer->endSetup();
app/design/adminhtml/default/default/layout/auguria/sliders.xml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * @category Auguria
5
+ * @package Auguria_Sliders
6
+ * @author Auguria
7
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
8
+ */
9
+ -->
10
+ <layout>
11
+ <adminhtml_sliders_index>
12
+ <reference name="content">
13
+ <block type="auguria_sliders/adminhtml_sliders" name="auguria_sliders"/>
14
+ </reference>
15
+ </adminhtml_sliders_index>
16
+ <!-- <adminhtml_sliders_edit> -->
17
+ <!-- <reference name="content"> -->
18
+ <!-- <block type="auguria_sliders/adminhtml_sliders_edit" name="auguria_sliders_edit"/> -->
19
+ <!-- </reference> -->
20
+ <!-- </adminhtml_sliders_edit> -->
21
+ <!-- <adminhtml_sliders_new> -->
22
+ <!-- <update handle="adminhtml_sliders_edit" /> -->
23
+ <!-- </adminhtml_sliders_new> -->
24
+ </layout>
app/design/adminhtml/default/default/template/auguria/sliders/edit/categories.phtml ADDED
@@ -0,0 +1,149 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="entry-edit">
28
+ <div class="entry-edit-head">
29
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('auguria_sliders')->__('Categories') ?></h4>
30
+ </div>
31
+ <fieldset id="grop_fields">
32
+ <input type="hidden" name="category_ids" id="slider_categories" value="<?php echo $this->getIdsString() ?>">
33
+ <div id="slider-categories" class="tree"></div>
34
+ </fieldset>
35
+ </div>
36
+
37
+ <?php if($this->getRootNode() && $this->getRootNode()->hasChildren()): ?>
38
+ <script type="text/javascript">
39
+ Ext.EventManager.onDocumentReady(function() {
40
+ var categoryLoader = new Ext.tree.TreeLoader({
41
+ dataUrl: '<?php echo $this->getLoadTreeUrl()?>'
42
+ });
43
+
44
+ categoryLoader.createNode = function(config) {
45
+ config.uiProvider = Ext.tree.CheckboxNodeUI;
46
+ var node;
47
+ if (config.children && !config.children.length) {
48
+ delete(config.children);
49
+ node = new Ext.tree.AsyncTreeNode(config);
50
+
51
+ } else {
52
+ node = new Ext.tree.TreeNode(config);
53
+ }
54
+ return node;
55
+ };
56
+
57
+ categoryLoader.on("beforeload", function(treeLoader, node) {
58
+ treeLoader.baseParams.category = node.attributes.id;
59
+ });
60
+
61
+ categoryLoader.on("load", function(treeLoader, node, config) {
62
+ varienWindowOnload();
63
+ });
64
+
65
+ var tree = new Ext.tree.TreePanel('slider-categories', {
66
+ animate:true,
67
+ loader: categoryLoader,
68
+ enableDD:false,
69
+ containerScroll: true,
70
+ rootUIProvider: Ext.tree.CheckboxNodeUI,
71
+ selModel: new Ext.tree.CheckNodeMultiSelectionModel(),
72
+ rootVisible: '<?php echo $this->getRootNode()->getIsVisible() ?>'
73
+ });
74
+
75
+ tree.on('check', function(node) {
76
+ if(node.attributes.checked) {
77
+ categoryAdd(node.id);
78
+ } else {
79
+ categoryRemove(node.id);
80
+ }
81
+ varienElementMethods.setHasChanges(node.getUI().checkbox);
82
+ }, tree);
83
+
84
+ // set the root node
85
+ var root = new Ext.tree.TreeNode({
86
+ text: '<?php echo $this->jsQuoteEscape($this->getRootNode()->getName()) ?>',
87
+ draggable:false,
88
+ checked:'<?php echo $this->getRootNode()->getChecked() ?>',
89
+ id:'<?php echo $this->getRootNode()->getId() ?>',
90
+ disabled: <?php echo ($this->getRootNode()->getDisabled() ? 'true' : 'false') ?>,
91
+ uiProvider: Ext.tree.CheckboxNodeUI
92
+ });
93
+
94
+ tree.setRootNode(root);
95
+ bildCategoryTree(root, <?php echo $this->getTreeJson() ?>);
96
+ tree.addListener('click', categoryClick.createDelegate(this));
97
+
98
+ // render the tree
99
+ tree.render();
100
+ root.expand();
101
+ //tree.expandAll();
102
+ });
103
+
104
+ function bildCategoryTree(parent, config){
105
+ if (!config) return null;
106
+
107
+ if (parent && config && config.length){
108
+ for (var i = 0; i < config.length; i++){
109
+ config[i].uiProvider = Ext.tree.CheckboxNodeUI;
110
+ var node;
111
+ var _node = Object.clone(config[i]);
112
+ if (_node.children && !_node.children.length) {
113
+ delete(_node.children);
114
+ node = new Ext.tree.AsyncTreeNode(_node);
115
+
116
+ } else {
117
+ node = new Ext.tree.TreeNode(config[i]);
118
+ }
119
+ parent.appendChild(node);
120
+ node.loader = node.getOwnerTree().loader;
121
+ if(config[i].children){
122
+ bildCategoryTree(node, config[i].children);
123
+ }
124
+ }
125
+ }
126
+ }
127
+
128
+ function categoryClick(node, e){
129
+ if (node.disabled) {
130
+ return;
131
+ }
132
+ node.getUI().check(!node.getUI().checked());
133
+ varienElementMethods.setHasChanges(Event.element(e), e);
134
+ };
135
+ function categoryAdd(id) {
136
+ var ids = $('slider_categories').value.split(',');
137
+ ids.push(id);
138
+ $('slider_categories').value = ids.join(',');
139
+ }
140
+ function categoryRemove(id) {
141
+ var ids = $('slider_categories').value.split(',');
142
+ // bug #7654 fixed
143
+ while (-1 != ids.indexOf(id)) {
144
+ ids.splice(ids.indexOf(id), 1);
145
+ }
146
+ $('slider_categories').value = ids.join(',');
147
+ }
148
+ </script>
149
+ <?php endif; ?>
app/design/frontend/base/default/layout/auguria/sliders.xml ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * @category Auguria
5
+ * @package Auguria_Sliders
6
+ * @author Auguria
7
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
8
+ */
9
+ -->
10
+ <layout version="0.1.0">
11
+ <cms_page>
12
+ <reference name="head">
13
+ <action method="addCss"><stylesheet>css/auguria/sliders/default.css</stylesheet></action>
14
+ <action method="addJs"><script>auguria/sliders/jquery-1.7.2.min.js</script></action>
15
+ <action method="addJs"><script>auguria/sliders/slides.min.jquery.js</script></action>
16
+ </reference>
17
+ <reference name="content">
18
+ <block type="auguria_sliders/cms_page_slider" name="auguria_sliders" template="auguria/sliders/slider.phtml" before="-"/>
19
+ </reference>
20
+ </cms_page>
21
+ <catalog_category_default>
22
+ <reference name="head">
23
+ <action method="addCss"><stylesheet>css/auguria/sliders/default.css</stylesheet></action>
24
+ <action method="addJs"><script>auguria/sliders/jquery-1.7.2.min.js</script></action>
25
+ <action method="addJs"><script>auguria/sliders/slides.min.jquery.js</script></action>
26
+ </reference>
27
+ <reference name="content">
28
+ <block type="auguria_sliders/catalog_category_slider" name="auguria_sliders" template="auguria/sliders/slider.phtml" before="-"/>
29
+ </reference>
30
+ </catalog_category_default>
31
+ <catalog_category_layered>
32
+ <reference name="head">
33
+ <action method="addCss"><stylesheet>css/auguria/sliders/default.css</stylesheet></action>
34
+ <action method="addJs"><script>auguria/sliders/jquery-1.7.2.min.js</script></action>
35
+ <action method="addJs"><script>auguria/sliders/slides.min.jquery.js</script></action>
36
+ </reference>
37
+ <reference name="content">
38
+ <block type="auguria_sliders/catalog_category_slider" name="auguria_sliders" template="auguria/sliders/slider.phtml" before="-"/>
39
+ </reference>
40
+ </catalog_category_layered>
41
+ <page_empty>
42
+ <reference name="auguria_sliders">
43
+ <action method="setPageType"><type>empty</type></action>
44
+ </reference>
45
+ </page_empty>
46
+ <page_one_column>
47
+ <reference name="auguria_sliders">
48
+ <action method="setPageType"><type>one</type></action>
49
+ </reference>
50
+ </page_one_column>
51
+ <page_two_columns_left>
52
+ <reference name="auguria_sliders">
53
+ <action method="setPageType"><type>two</type></action>
54
+ </reference>
55
+ </page_two_columns_left>
56
+ <page_two_columns_right>
57
+ <reference name="auguria_sliders">
58
+ <action method="setPageType"><type>two</type></action>
59
+ </reference>
60
+ </page_two_columns_right>
61
+ <page_three_columns>
62
+ <reference name="auguria_sliders">
63
+ <action method="setPageType"><type>three</type></action>
64
+ </reference>
65
+ </page_three_columns>
66
+ </layout>
app/design/frontend/base/default/template/auguria/sliders/slider.phtml ADDED
@@ -0,0 +1,123 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sliders
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
7
+ */
8
+ ?>
9
+ <?php
10
+ $slides = $this->getSlides();
11
+ $imageWidth = $this->getImageWidth();
12
+ $imageHeight = $this->getImageHeight();
13
+ $captionHeight = $this->getCaptionHeight();
14
+
15
+ if ($slides && $slides->count()>0):
16
+ ?>
17
+ <div id="auguria-slider" class="clearer">
18
+ <div class="auguria-slider-container">
19
+ <?php
20
+ foreach ($slides as $slide):
21
+ ?>
22
+ <div class="slide">
23
+ <?php
24
+ $displayLink = $this->displayLink($slide);
25
+ $displayImage = $this->displayImage($slide);
26
+ $displayCmsContent = $this->displayCmsContent($slide);
27
+ if ($displayLink):
28
+ ?>
29
+ <a class="auguria-slider-link" href="<?php echo $slide->getLink(); ?>" title="<?php echo $slide->getName(); ?>">
30
+ <?php
31
+ endif;
32
+ if ($displayImage):
33
+ ?>
34
+ <img class="auguria-slider-image" alt="<?php echo $slide->getName(); ?>" src="<?php echo $this->getResizedImage($slide, $imageWidth, $imageHeight); ?>" />
35
+ <?php
36
+ endif;
37
+ if ($displayLink):
38
+ ?>
39
+ </a>
40
+ <?php
41
+ endif;
42
+ if ($displayCmsContent):
43
+ ?>
44
+ <div class="caption" style="height: <?php echo $captionHeight; ?>px;"><?php echo $slide->getCmsContent(); ?></div>
45
+ <?php
46
+ endif;
47
+ ?>
48
+ </div>
49
+ <?php
50
+ endforeach;
51
+ ?>
52
+ </div>
53
+ <?php
54
+ if (Mage::getStoreConfig('auguria_sliders/general/generate_next_prev')=='true' && $slides->count()>1):
55
+ ?>
56
+ <a href="#" class="prev"><span><?php echo $this->__('Previous'); ?></span></a>
57
+ <a href="#" class="next"><span><?php echo $this->__('Next'); ?></span></a>
58
+ <?php
59
+ endif;
60
+ ?>
61
+ </div>
62
+
63
+ <script type="text/javascript">
64
+ //<![CDATA[
65
+ $(function(){
66
+ $("#auguria-slider").slides({
67
+ container: 'auguria-slider-container',
68
+ <?php
69
+ if (Mage::getStoreConfig('auguria_sliders/general/preload')=='true'):
70
+ ?>
71
+ preload: true,
72
+ preloadImage: <?php echo $this->getSkinUrl('images/auguria/sliders/loading.gif'); ?>,
73
+ <?php
74
+ endif;
75
+ ?>
76
+ generateNextPrev: false,
77
+ generatePagination: <?php if($slides->count()>1): echo Mage::getStoreConfig('auguria_sliders/general/generate_pagination'); else: echo 'false'; endif; ?>,
78
+ fadeSpeed: <?php echo Mage::getStoreConfig('auguria_sliders/general/fade_speed'); ?>,
79
+ slideSpeed: <?php echo Mage::getStoreConfig('auguria_sliders/general/slide_speed'); ?>,
80
+ effect: "<?php echo Mage::getStoreConfig('auguria_sliders/general/effect_next_prev'); ?>,<?php echo Mage::getStoreConfig('auguria_sliders/general/effect_pagination'); ?>",
81
+ crossfade: <?php echo Mage::getStoreConfig('auguria_sliders/general/crossfade'); ?>,
82
+ randomize: <?php echo Mage::getStoreConfig('auguria_sliders/general/randomize'); ?>,
83
+ play: <?php echo Mage::getStoreConfig('auguria_sliders/general/play'); ?>,
84
+ pause: <?php echo Mage::getStoreConfig('auguria_sliders/general/pause'); ?>,
85
+ hoverPause: <?php echo Mage::getStoreConfig('auguria_sliders/general/hover_pause'); ?>,
86
+ autoHeight: <?php echo Mage::getStoreConfig('auguria_sliders/general/auto_height'); ?>,
87
+ autoHeightSpeed: <?php echo Mage::getStoreConfig('auguria_sliders/general/auto_height_speed'); ?>,
88
+ <?php
89
+ if ((int)Mage::getStoreConfig('auguria_sliders/general/animate_caption')>0):
90
+ ?>
91
+ animationStart: function(current){
92
+ $('.caption').animate({
93
+ bottom:-<?php echo $this->getCaptionHeight(); ?>
94
+ },<?php echo Mage::getStoreConfig('auguria_sliders/general/animate_caption'); ?>);
95
+ if (window.console && console.log) {
96
+ // example return of current slide number
97
+ console.log('animationStart on slide: ', current);
98
+ };
99
+ },
100
+ animationComplete: function(current){
101
+ $('.caption').animate({
102
+ bottom:0
103
+ },<?php echo Mage::getStoreConfig('auguria_sliders/general/animate_caption'); ?>);
104
+ if (window.console && console.log) {
105
+ // example return of current slide number
106
+ console.log('animationComplete on slide: ', current);
107
+ };
108
+ },
109
+ slidesLoaded: function() {
110
+ $('.caption').animate({
111
+ bottom:0
112
+ },<?php echo Mage::getStoreConfig('auguria_sliders/general/animate_caption'); ?>);
113
+ }
114
+ <?php
115
+ endif;
116
+ ?>
117
+ });
118
+ });
119
+ //]]>
120
+ </script>
121
+ <?php
122
+ endif;
123
+ ?>
app/etc/modules/Auguria_Sliders.xml ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ /**
4
+ * @category Auguria
5
+ * @package Auguria_Sliders
6
+ * @author Auguria
7
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
8
+ */
9
+ -->
10
+ <config>
11
+ <modules>
12
+ <Auguria_Sliders>
13
+ <active>true</active>
14
+ <codePool>community</codePool>
15
+ </Auguria_Sliders>
16
+ </modules>
17
+ </config>
app/locale/fr_FR/Auguria_Sliders.csv ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "Manage sliders","Gérer les diaporamas"
2
+ "Add Slider","Ajouter une diapositive"
3
+ "Select All","Seléctionner tout"
4
+ "Unselect All","Désélectionner tout"
5
+ "Select Visible","Sélectionner les éléments visibles"
6
+ "Unselect Visible","Désélectionner les éléments visibles"
7
+ "Reset Filter","Réinitialiser le filtre"
8
+ "Search","Chercher"
9
+ "Submit","Valider"
10
+ "Change status","Changer le statut"
11
+ "Status","Statut"
12
+ "Enabled","Activé"
13
+ "Disabled","Désactivé"
14
+ "Sort order","Ordre de tri"
15
+ "Name","Nom"
16
+ "ID","Identifiant"
17
+ "items selected","éléments sélectionnés"
18
+ "Any","Tous"
19
+ "Yes","Oui"
20
+ "No","Non"
21
+ "All Store Views","Toutes les vues magasin"
22
+ "View","Voir"
23
+ "of %s pages","sur %s pages"
24
+ "Page","Page"
25
+ "per page","par page"
26
+ "Total %d records found","%d enregistrement(s) trouvé(s)"
27
+ "Please select items.","Merci de sélectionner des éléments."
28
+ "Are you sure you want to delete these slides?","Êtes vous sûre de vouloir supprimer ces éléments ?"
29
+ "Back","Retour"
30
+ "Reset","Réinitialiser"
31
+ "Save","Sauvegarder"
32
+ "Save And Continue Edit","Sauvegarder et continuer à éditer"
33
+ "Cms pages","Pages CMS"
34
+ "Categories","Catégories"
35
+ "Slider detail","Détail de la diapositive"
36
+ "Edition of the slider '%s'","Édition de la diapositive '%s'"
37
+ "Content","Contenu"
38
+ "Cms content","Légende"
39
+ "Link","Lien"
40
+ "Show / Hide Editor","Afficher / Masquer l'éditeur"
41
+ "Are you sure you want to do this?","Êtes vous sûre de vouloir supprimer cette diapositive ?"
42
+ "Unable to find the slider to delete.","Impossible de trouver la diapositive à supprimer."
43
+ "The slider has been deleted.","La diapositive a bien été supprimée."
44
+ "Total of %d record(s) have been deleted.","%d élément(s) supprimé(s)."
45
+ "This slider no longer exists.","Cette diapositive n'éxiste plus."
46
+ "Enable Sliders","Activer les diaporamas"
47
+ "Preload","Pré-charger"
48
+ "True","Oui"
49
+ "False","Non"
50
+ "Set true to preload images in an image based slideshow.","Indiquer oui pour pré-charger les images dans un diaporama basé sur des images"
51
+ "Generate next/prev","Afficher précédent/suivant"
52
+ "Generate pagination","Afficher la pagination"
53
+ "Fade speed","Vitesse du fondu"
54
+ "Set the speed of the fading animation in milliseconds.","Indiquer la vitesse du fondu en millisecondes."
55
+ "Slide speed","Vitesse de la transition"
56
+ "Set the speed of the sliding animation in milliseconds.","Indiquer la vitesse de la transition en millisecondes."
57
+ "Effect for next/prev","Effet pour précédent/suivant"
58
+ "Set effect, slide or fade for next/prev.","Indiquer l'effet(fondu ou transition) pour précédent/suivant."
59
+ "Effect for pagination","Effet pour la pagination"
60
+ "Set effect, slide or fade for pagination.","Indiquer l'effet(fondu ou transition) pour la pagination."
61
+ "Randomize","Randomiser"
62
+ "Set to true to randomize slides.","Indiquer oui pour rendre le diaporama aléatoire."
63
+ "Crossfade","Fondu enchaîné"
64
+ "Crossfade images in a image based slideshow.","Effectuer un fondu enchaîner dans un diaporama basé sur des images."
65
+ "Autoplay","Lecture automatique"
66
+ "Autoplay slideshow, a positive number will set to true and be the time between slide animation in milliseconds.","Lance automatiquement le diaporama. Un nombre positif indiquera que oui, et définira le temps en millisecondes entre les slides."
67
+ "Pause","Pause"
68
+ "Pause slideshow on click of next/prev or pagination. A positive number will set to true and be the time of pause in milliseconds.","Faire une pause lors du clic sur précédent/suivant ou la pagination. Un nombre positif indiquera que oui, et définira le temps de pause en millisecondes."
69
+ "Hover pause","Pause au survol"
70
+ "Set to true and hovering over slideshow will pause it.","Indiquer oui pour mettre le diaporama en pause lors du survol de celui-ci."
71
+ "Auto height","Hauteur automatique"
72
+ "Set to true to auto adjust height.","Indiquer oui pour ajuster automatiquement la hauteur."
73
+ "Auto height speed","Vitesse de l'ajustement automatique de la hauteur"
74
+ "Set auto height animation time in milliseconds.","Indiquer la vitesse de l'ajustement automatique de la hauteur en millisecondes."
75
+ "Animate caption","Animer la légende"
76
+ "A positive number will set to true and indicate animation speed in milliseconds.","Un nombre positif indiquera que oui, et définira la vitesse de l'animation en millisecondes."
77
+ "Caption height on empty page","Hauteur de la légende sur les pages sans colonne"
78
+ "Caption height on one column page","Hauteur de la légende sur les pages avec 1 colonne"
79
+ "Caption height on two columns page","Hauteur de la légende sur les pages avec 2 colonnes"
80
+ "Caption height on three columns page","Hauteur de la légende sur les pages avec 3 colonnes"
81
+ "Image height on empty page","Hauteur de l'image sur les pages sans colonne"
82
+ "Image height on one column page","Hauteur de l'image sur les pages avec 1 colonne"
83
+ "Image height on two columns page","Hauteur de l'image sur les pages avec 2 colonnes"
84
+ "Image height on three columns page","Hauteur de l'image sur les pages avec 3 colonnes"
85
+ "Image width on empty page","Largeur de l'image sur les pages sans colonne"
86
+ "Image width on one column page","Largeur de l'image sur les pages avec 1 colonne"
87
+ "Image width on two columns page","Largeur de l'image sur les pages avec 2 colonnes"
88
+ "Image width on three columns page","Largeur de l'image sur les pages avec 3 colonnes"
89
+ "Fade","Fondu"
90
+ "Slide","Transistion"
91
+ "Sliders Options","Option des diaporamas"
92
+ "Sliders","Diaporamas"
93
+ "Delete Image","Supprimer l'image"
94
+ "The slider has been saved.","La diapositive a été enregistrée."
js/auguria/sliders/jquery-1.7.2.min.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ /*! jQuery v1.7.2 jquery.com | jquery.org/license */
2
+ (function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"<!doctype html>":"")+"<html><body>"),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bD.test(a)?d(a,e):b_(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&f.type(b)==="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bZ(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bS,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bZ(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bZ(a,c,d,e,"*",g));return l}function bY(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bO),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bB(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?1:0,g=4;if(d>0){if(c!=="border")for(;e<g;e+=2)c||(d-=parseFloat(f.css(a,"padding"+bx[e]))||0),c==="margin"?d+=parseFloat(f.css(a,c+bx[e]))||0:d-=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0;return d+"px"}d=by(a,b);if(d<0||d==null)d=a.style[b];if(bt.test(d))return d;d=parseFloat(d)||0;if(c)for(;e<g;e+=2)d+=parseFloat(f.css(a,"padding"+bx[e]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+bx[e]))||0);return d+"px"}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;b.nodeType===1&&(b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?b.outerHTML=a.outerHTML:c!=="input"||a.type!=="checkbox"&&a.type!=="radio"?c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text):(a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)),b.removeAttribute(f.expando),b.removeAttribute("_submit_attached"),b.removeAttribute("_change_attached"))}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c,i[c][d])}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h,i){var j,k=d==null,l=0,m=a.length;if(d&&typeof d=="object"){for(l in d)e.access(a,c,l,d[l],1,h,f);g=1}else if(f!==b){j=i===b&&e.isFunction(f),k&&(j?(j=c,c=function(a,b,c){return j.call(e(a),c)}):(c.call(a,f),c=null));if(c)for(;l<m;l++)c(a[l],d,j?f.call(a[l],l,c(a[l],d)):f,i);g=1}return g?a:k?c.call(a):m?c(a[0],d):h},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m,n=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?n(g):h==="function"&&(!a.unique||!p.has(g))&&c.push(g)},o=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,j=!0,m=k||0,k=0,l=c.length;for(;c&&m<l;m++)if(c[m].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}j=!1,c&&(a.once?e===!0?p.disable():c=[]:d&&d.length&&(e=d.shift(),p.fireWith(e[0],e[1])))},p={add:function(){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){j&&f<=l&&(l--,f<=m&&m--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&p.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(j?a.once||d.push([b,c]):(!a.once||!e)&&o(b,c));return this},fire:function(){p.fireWith(this,arguments);return this},fired:function(){return!!i}};return p};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p=c.createElement("div"),q=c.documentElement;p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="<div "+n+"display:block;'><div style='"+t+"0;display:block;overflow:hidden;'></div></div>"+"<table "+n+"' cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="<table><tr><td style='"+t+"0;display:none'></td><td>t</td></tr></table>",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="<div style='width:5px;'></div>",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h,i,j=this[0],k=0,m=null;if(a===b){if(this.length){m=f.data(j);if(j.nodeType===1&&!f._data(j,"parsedAttrs")){g=j.attributes;for(i=g.length;k<i;k++)h=g[k].name,h.indexOf("data-")===0&&(h=f.camelCase(h.substring(5)),l(j,h,m[h]));f._data(j,"parsedAttrs",!0)}}return m}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!";return f.access(this,function(c){if(c===b){m=this.triggerHandler("getData"+e,[d[0]]),m===b&&j&&(m=f.data(j,a),m=l(j,a,m));return m===b&&d[1]?this.data(d[0]):m}d[1]=c,this.each(function(){var b=f(this);b.triggerHandler("setData"+e,d),f.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length<d)return f.queue(this[0],a);return c===b?this:this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise(c)}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,f.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i<g;i++)e=d[i],e&&(c=f.propFix[e]||e,h=u.test(e),h||f.attr(a,e,""),a.removeAttribute(v?e:c),h&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0,coords:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(
3
+ a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:g&&G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=f.event.special[c.type]||{},j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateTarget=this;if(!i.preDispatch||i.preDispatch.call(this,c)!==!1){if(e&&(!c.button||c.type!=="click")){n=f(this),n.context=this.ownerDocument||this;for(m=c.target;m!=this;m=m.parentNode||this)if(m.disabled!==!0){p={},r=[],n[0]=m;for(k=0;k<e;k++)s=d[k],t=s.selector,p[t]===b&&(p[t]=s.quick?H(m,s.quick):n.is(t)),p[t]&&r.push(s);r.length&&j.push({elem:m,matches:r})}}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){q=j[k],c.currentTarget=q.elem;for(l=0;l<q.matches.length&&!c.isImmediatePropagationStopped();l++){s=q.matches[l];if(h||!c.namespace&&!s.namespace||c.namespace_re&&c.namespace_re.test(s.namespace))c.data=s.data,c.handleObj=s,o=((f.event.special[s.origType]||{}).handle||s.handler).apply(q.elem,g),o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()))}}i.postDispatch&&i.postDispatch.call(this,c);return c.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),d._submit_attached=!0)})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9||d===11){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.globalPOS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")[\\s/>]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f
4
+ .clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(f.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(g){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,function(a,b){b.src?f.ajax({type:"GET",global:!1,url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1></$2>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]==="<table>"&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i<u;i++)bn(l[i]);else bn(l);l.nodeType?j.push(l):j=f.merge(j,l)}if(d){g=function(a){return!a.type||be.test(a.type)};for(k=0;j[k];k++){h=j[k];if(e&&f.nodeName(h,"script")&&(!h.type||be.test(h.type)))e.push(h.parentNode?h.parentNode.removeChild(h):h);else{if(h.nodeType===1){var v=f.grep(h.getElementsByTagName("script"),g);j.splice.apply(j,[k+1,0].concat(v))}d.appendChild(h)}}}return j},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bp=/alpha\([^)]*\)/i,bq=/opacity=([^)]*)/,br=/([A-Z]|^ms)/g,bs=/^[\-+]?(?:\d*\.)?\d+$/i,bt=/^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,bu=/^([\-+])=([\-+.\de]+)/,bv=/^margin/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Top","Right","Bottom","Left"],by,bz,bA;f.fn.css=function(a,c){return f.access(this,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)},a,c,arguments.length>1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),(e===""&&f.css(d,"display")==="none"||!f.contains(d.ownerDocument.documentElement,d))&&f._data(d,"olddisplay",cu(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(ct("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(ct("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o,p,q;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]);if((k=f.cssHooks[g])&&"expand"in k){l=k.expand(a[g]),delete a[g];for(i in l)i in a||(a[i]=l[i])}}for(g in a){h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cu(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cm.test(h)?(q=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),q?(f._data(this,"toggle"+i,q==="show"?"hide":"show"),j[q]()):j[h]()):(m=cn.exec(h),n=j.cur(),m?(o=parseFloat(m[2]),p=m[3]||(f.cssNumber[i]?"":"px"),p!=="px"&&(f.style(this,i,(o||1)+p),n=(o||1)/j.cur()*n,f.style(this,i,n+p)),m[1]&&(o=(m[1]==="-="?-1:1)*o+n),j.custom(n,o,p)):j.custom(n,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:ct("show",1),slideUp:ct("hide",1),slideToggle:ct("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a){return a},swing:function(a){return-Math.cos(a*Math.PI)/2+.5}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cq||cr(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){f._data(e.elem,"fxshow"+e.prop)===b&&(e.options.hide?f._data(e.elem,"fxshow"+e.prop,e.start):e.options.show&&f._data(e.elem,"fxshow"+e.prop,e.end))},h()&&f.timers.push(h)&&!co&&(co=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cq||cr(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(cp.concat.apply([],cp),function(a,b){b.indexOf("margin")&&(f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)})}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cv,cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?cv=function(a,b,c,d){try{d=a.getBoundingClientRect()}catch(e){}if(!d||!f.contains(c,a))return d?{top:d.top,left:d.left}:{top:0,left:0};var g=b.body,h=cy(b),i=c.clientTop||g.clientTop||0,j=c.clientLeft||g.clientLeft||0,k=h.pageYOffset||f.support.boxModel&&c.scrollTop||g.scrollTop,l=h.pageXOffset||f.support.boxModel&&c.scrollLeft||g.scrollLeft,m=d.top+k-i,n=d.left+l-j;return{top:m,left:n}}:cv=function(a,b,c){var d,e=a.offsetParent,g=a,h=b.body,i=b.defaultView,j=i?i.getComputedStyle(a,null):a.currentStyle,k=a.offsetTop,l=a.offsetLeft;while((a=a.parentNode)&&a!==h&&a!==c){if(f.support.fixedPosition&&j.position==="fixed")break;d=i?i.getComputedStyle(a,null):a.currentStyle,k-=a.scrollTop,l-=a.scrollLeft,a===e&&(k+=a.offsetTop,l+=a.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(a.nodeName))&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),g=e,e=a.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),j=d}if(j.position==="relative"||j.position==="static")k+=h.offsetTop,l+=h.offsetLeft;f.support.fixedPosition&&j.position==="fixed"&&(k+=Math.max(c.scrollTop,h.scrollTop),l+=Math.max(c.scrollLeft,h.scrollLeft));return{top:k,left:l}},f.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){f.offset.setOffset(this,a,b)});var c=this[0],d=c&&c.ownerDocument;if(!d)return null;if(c===d.body)return f.offset.bodyOffset(c);return cv(c,d,d.documentElement)},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
js/auguria/sliders/slides.min.jquery.js ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Slides, A Slideshow Plugin for jQuery
3
+ * Intructions: http://slidesjs.com
4
+ * By: Nathan Searles, http://nathansearles.com
5
+ * Version: 1.1.9
6
+ * Updated: September 5th, 2011
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ */
20
+ (function(a){a.fn.slides=function(b){return b=a.extend({},a.fn.slides.option,b),this.each(function(){function w(g,h,i){if(!p&&o){p=!0,b.animationStart(n+1);switch(g){case"next":l=n,k=n+1,k=e===k?0:k,r=f*2,g=-f*2,n=k;break;case"prev":l=n,k=n-1,k=k===-1?e-1:k,r=0,g=0,n=k;break;case"pagination":k=parseInt(i,10),l=a("."+b.paginationClass+" li."+b.currentClass+" a",c).attr("href").match("[^#/]+$"),k>l?(r=f*2,g=-f*2):(r=0,g=0),n=k}h==="fade"?b.crossfade?d.children(":eq("+k+")",c).css({zIndex:10}).fadeIn(b.fadeSpeed,b.fadeEasing,function(){b.autoHeight?d.animate({height:d.children(":eq("+k+")",c).outerHeight()},b.autoHeightSpeed,function(){d.children(":eq("+l+")",c).css({display:"none",zIndex:0}),d.children(":eq("+k+")",c).css({zIndex:0}),b.animationComplete(k+1),p=!1}):(d.children(":eq("+l+")",c).css({display:"none",zIndex:0}),d.children(":eq("+k+")",c).css({zIndex:0}),b.animationComplete(k+1),p=!1)}):d.children(":eq("+l+")",c).fadeOut(b.fadeSpeed,b.fadeEasing,function(){b.autoHeight?d.animate({height:d.children(":eq("+k+")",c).outerHeight()},b.autoHeightSpeed,function(){d.children(":eq("+k+")",c).fadeIn(b.fadeSpeed,b.fadeEasing)}):d.children(":eq("+k+")",c).fadeIn(b.fadeSpeed,b.fadeEasing,function(){a.browser.msie&&a(this).get(0).style.removeAttribute("filter")}),b.animationComplete(k+1),p=!1}):(d.children(":eq("+k+")").css({left:r,display:"block"}),b.autoHeight?d.animate({left:g,height:d.children(":eq("+k+")").outerHeight()},b.slideSpeed,b.slideEasing,function(){d.css({left:-f}),d.children(":eq("+k+")").css({left:f,zIndex:5}),d.children(":eq("+l+")").css({left:f,display:"none",zIndex:0}),b.animationComplete(k+1),p=!1}):d.animate({left:g},b.slideSpeed,b.slideEasing,function(){d.css({left:-f}),d.children(":eq("+k+")").css({left:f,zIndex:5}),d.children(":eq("+l+")").css({left:f,display:"none",zIndex:0}),b.animationComplete(k+1),p=!1})),b.pagination&&(a("."+b.paginationClass+" li."+b.currentClass,c).removeClass(b.currentClass),a("."+b.paginationClass+" li:eq("+k+")",c).addClass(b.currentClass))}}function x(){clearInterval(c.data("interval"))}function y(){b.pause?(clearTimeout(c.data("pause")),clearInterval(c.data("interval")),u=setTimeout(function(){clearTimeout(c.data("pause")),v=setInterval(function(){w("next",i)},b.play),c.data("interval",v)},b.pause),c.data("pause",u)):x()}a("."+b.container,a(this)).children().wrapAll('<div class="slides_control"/>');var c=a(this),d=a(".slides_control",c),e=d.children().size(),f=d.children().outerWidth(),g=d.children().outerHeight(),h=b.start-1,i=b.effect.indexOf(",")<0?b.effect:b.effect.replace(" ","").split(",")[0],j=b.effect.indexOf(",")<0?i:b.effect.replace(" ","").split(",")[1],k=0,l=0,m=0,n=0,o,p,q,r,s,t,u,v;if(e<2)return a("."+b.container,a(this)).fadeIn(b.fadeSpeed,b.fadeEasing,function(){o=!0,b.slidesLoaded()}),a("."+b.next+", ."+b.prev).fadeOut(0),!1;if(e<2)return;h<0&&(h=0),h>e&&(h=e-1),b.start&&(n=h),b.randomize&&d.randomize(),a("."+b.container,c).css({overflow:"hidden",position:"relative"}),d.children().css({position:"absolute",top:0,left:d.children().outerWidth(),zIndex:0,display:"none"}),d.css({position:"relative",width:f*3,height:g,left:-f}),a("."+b.container,c).css({display:"block"}),b.autoHeight&&(d.children().css({height:"auto"}),d.animate({height:d.children(":eq("+h+")").outerHeight()},b.autoHeightSpeed));if(b.preload&&d.find("img:eq("+h+")").length){a("."+b.container,c).css({background:"url("+b.preloadImage+") no-repeat 50% 50%"});var z=d.find("img:eq("+h+")").attr("src")+"?"+(new Date).getTime();a("img",c).parent().attr("class")!="slides_control"?t=d.children(":eq(0)")[0].tagName.toLowerCase():t=d.find("img:eq("+h+")"),d.find("img:eq("+h+")").attr("src",z).load(function(){d.find(t+":eq("+h+")").fadeIn(b.fadeSpeed,b.fadeEasing,function(){a(this).css({zIndex:5}),a("."+b.container,c).css({background:""}),o=!0,b.slidesLoaded()})})}else d.children(":eq("+h+")").fadeIn(b.fadeSpeed,b.fadeEasing,function(){o=!0,b.slidesLoaded()});b.bigTarget&&(d.children().css({cursor:"pointer"}),d.children().click(function(){return w("next",i),!1})),b.hoverPause&&b.play&&(d.bind("mouseover",function(){x()}),d.bind("mouseleave",function(){y()})),b.generateNextPrev&&(a("."+b.container,c).after('<a href="#" class="'+b.prev+'">Prev</a>'),a("."+b.prev,c).after('<a href="#" class="'+b.next+'">Next</a>')),a("."+b.next,c).click(function(a){a.preventDefault(),b.play&&y(),w("next",i)}),a("."+b.prev,c).click(function(a){a.preventDefault(),b.play&&y(),w("prev",i)}),b.generatePagination?(b.prependPagination?c.prepend("<ul class="+b.paginationClass+"></ul>"):c.append("<ul class="+b.paginationClass+"></ul>"),d.children().each(function(){a("."+b.paginationClass,c).append('<li><a href="#'+m+'">'+(m+1)+"</a></li>"),m++})):a("."+b.paginationClass+" li a",c).each(function(){a(this).attr("href","#"+m),m++}),a("."+b.paginationClass+" li:eq("+h+")",c).addClass(b.currentClass),a("."+b.paginationClass+" li a",c).click(function(){return b.play&&y(),q=a(this).attr("href").match("[^#/]+$"),n!=q&&w("pagination",j,q),!1}),a("a.link",c).click(function(){return b.play&&y(),q=a(this).attr("href").match("[^#/]+$")-1,n!=q&&w("pagination",j,q),!1}),b.play&&(v=setInterval(function(){w("next",i)},b.play),c.data("interval",v))})},a.fn.slides.option={preload:!1,preloadImage:"/img/loading.gif",container:"slides_container",generateNextPrev:!1,next:"next",prev:"prev",pagination:!0,generatePagination:!0,prependPagination:!1,paginationClass:"pagination",currentClass:"current",fadeSpeed:350,fadeEasing:"",slideSpeed:350,slideEasing:"",start:1,effect:"slide",crossfade:!1,randomize:!1,play:0,pause:0,hoverPause:!1,autoHeight:!1,autoHeightSpeed:350,bigTarget:!1,animationStart:function(){},animationComplete:function(){},slidesLoaded:function(){}},a.fn.randomize=function(b){function c(){return Math.round(Math.random())-.5}return a(this).each(function(){var d=a(this),e=d.children(),f=e.length;if(f>1){e.hide();var g=[];for(i=0;i<f;i++)g[g.length]=i;g=g.sort(c),a.each(g,function(a,c){var f=e.eq(c),g=f.clone(!0);g.show().appendTo(d),b!==undefined&&b(f,g),f.remove()})}})}})(jQuery)
media/auguria/sliders/Anax.jpg ADDED
Binary file
media/auguria/sliders/Ara.jpg ADDED
Binary file
media/auguria/sliders/resized/455x200/Anax.jpg ADDED
Binary file
media/auguria/sliders/resized/900x394/Anax.jpg ADDED
Binary file
package.xml ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>Auguria_Sliders</name>
4
+ <version>0.0.2</version>
5
+ <stability>stable</stability>
6
+ <license uri="http://opensource.org/licenses/gpl-3.0.html">GPL 3.0</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>Auguria_Sliders</summary>
10
+ <description>Auguria_Sliders</description>
11
+ <notes>Auguria_Sliders</notes>
12
+ <authors><author><name>Auguria</name><user>auto-converted</user><email>magento@auguria.net</email></author></authors>
13
+ <date>2012-07-04</date>
14
+ <time>13:14:28</time>
15
+ <contents><target name="magecommunity"><dir name="Auguria"><dir name="Sliders"><dir name="Block"><dir name="Adminhtml"><dir name="Sliders"><dir name="Edit"><dir name="Tab"><file name="Categories.php" hash="4aee1e34b643b2a54353a7b1e83631ad"/><file name="Content.php" hash="07b04ae6f6a6b6ee2dc1018135d838f3"/><file name="Pages.php" hash="02a108351c3b2e31d656dab9af908583"/><file name="Stores.php" hash="a424cf6fb939c9be88f2131171b9c531"/></dir><file name="Form.php" hash="dce1fc7d623de180e1339489f5315bff"/><file name="Tabs.php" hash="cfe4e52fab1966b929e9655a3415b485"/></dir><file name="Edit.php" hash="7b1cac7b75ae5bc1350c003c10b575eb"/><file name="Grid.php" hash="0069ee090f790ca0d85d28963f50d886"/></dir><file name="Sliders.php" hash="2ae7953c07288edbd0881d1db5e2ccd0"/></dir><dir name="Catalog"><dir name="Category"><file name="Slider.php" hash="3ef5c7b510103103e4168397ec7a05bd"/></dir></dir><dir name="Cms"><dir name="Page"><file name="Slider.php" hash="19132d7e1c270f1520263264ae7194f0"/></dir></dir><file name="Abstract.php" hash="7f72df624210750724be208f6f1b59e0"/></dir><dir name="Helper"><file name="Data.php" hash="e678aa6c8c041c355c80bc5bb949052c"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Backend"><file name="NaturalNumber.php" hash="c14ed5eb3e189f07e78057a6721d20b0"/></dir><dir name="Source"><dir name="Cms"><file name="Page.php" hash="46dec918ceb64ba46c8af008628b7f5e"/></dir><file name="Effect.php" hash="8ce3805e4ce235a6e33eb6b511d03838"/><file name="Truefalse.php" hash="50c326540c0685383f8bacbecf7b99b5"/></dir></dir></dir></dir><dir name="Mysql4"><dir name="Sliders"><file name="Collection.php" hash="614e0958d097879bbbc55aeb80d542e1"/></dir><file name="Sliders.php" hash="004278067d46e600ca944fafae86d02c"/></dir><file name="Sliders.php" hash="46cea50641763afa3179a2bea516b490"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="SlidersController.php" hash="260661ad6c4e23ae6e3c6b45a28be4c1"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="cc511e595cafb5c84130235cf6d9c72c"/><file name="config.xml" hash="dc48bb282a858bfc81b2d645f701f690"/><file name="system.xml" hash="fd874082555597f1fc06f92d091788a4"/></dir><dir name="sql"><dir name="auguria_sliders_setup"><file name="mysql4-install-0.0.1.php" hash="cfaff3ef218bf8686048a1cc0726cbe9"/><file name="mysql4-upgrade-0.0.1-0.0.2.php" hash="ee07a208deaa2dd161f78b59230721a7"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="auguria"><file name="sliders.xml" hash="b39d600fa56b0748ecfa330b889cf909"/></dir></dir><dir name="template"><dir name="auguria"><dir name="sliders"><file name="slider.phtml" hash="a541b8172a973be84775cddeda91c1c9"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="auguria"><file name="sliders.xml" hash="dd894628e702da0a11f52a17c082dd88"/></dir></dir><dir name="template"><dir name="auguria"><dir name="sliders"><dir name="edit"><file name="categories.phtml" hash="5444cc24a21bc011f8722038a5feb5f7"/></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Auguria_Sliders.xml" hash="6bb3f950e75ac8b75d5d6605b74592bf"/></dir></target><target name="magelocale"><dir name="fr_FR"><file name="Auguria_Sliders.csv" hash="b4a9c5fbda9f8b20aab09263c2e68e65"/></dir></target><target name="magemedia"><dir name="auguria"><dir name="sliders"><dir name="resized"><dir name="455x200"><file name="Anax.jpg" hash="8a57737b71fe20da74963189363f693f"/></dir><dir name="900x394"><file name="Anax.jpg" hash="94604e87bd372da461f0fdf91f811df3"/></dir></dir><file name="Anax.jpg" hash="b6189195865f98bf05247a218cbc8c1b"/><file name="Ara.jpg" hash="54726bc22ba5f81251ba1fbb1c887e93"/></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="auguria"><dir name="sliders"><file name="default.css" hash="6ed380f239af7fde7eee82689e469189"/></dir></dir></dir><dir name="images"><dir name="auguria"><dir name="sliders"><file name="loading.gif" hash="e805ea7eca1f34c75ba0f93780d32d38"/><file name="next-hover.png" hash="88aac1540ed5d8db2bf952ba4ec4763a"/><file name="next.png" hash="d37920de5bccdec9a2b3ba1e522e10af"/><file name="pagination.png" hash="04244bffef3368ef2d9088d584e75d11"/><file name="previous-hover.png" hash="49e94b0b4ae1fc84adebec5d1841495d"/><file name="previous.png" hash="5aa8e141a4df9c28ebfddbdb77fbb5c2"/></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="auguria"><dir name="sliders"><file name="jquery-1.7.2.min.js" hash="b8d64d0bc142b3f670cc0611b0aebcae"/><file name="slides.min.jquery.js" hash="e80e9e252b5f66e4f71c2c609d8b34fd"/></dir></dir></dir></target></contents>
16
+ <compatible/>
17
+ <dependencies/>
18
+ </package>
skin/frontend/base/default/css/auguria/sliders/default.css ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * @category Auguria
3
+ * @package Auguria_Sliders
4
+ * @author Auguria
5
+ * @license http://opensource.org/licenses/gpl-3.0.html GNU General Public License version 3 (GPLv3)
6
+ */
7
+
8
+ /**
9
+ * Global
10
+ */
11
+ #auguria-slider {
12
+ margin: 0 auto;
13
+ padding: 0px;
14
+ position: relative;
15
+ z-index: 0;
16
+ }
17
+
18
+ .auguria-slider-container div {
19
+ display:block;
20
+ }
21
+
22
+ #auguria-slider .caption {
23
+ background: none repeat scroll 0 0 rgba(10, 38, 60, 0.5);
24
+ border-top: 1px solid #0A263C;
25
+ color: #FFFFFF;
26
+ font-size: 14px;
27
+ left: 0;
28
+ line-height: 14px;
29
+ padding: 5px 20px 0;
30
+ position: absolute;
31
+ text-shadow: none;
32
+ z-index: 500;
33
+ }
34
+
35
+ ul.pagination {
36
+ list-style: none outside none;
37
+ margin-top: 7px;
38
+ }
39
+
40
+ ul.pagination li a {
41
+ background-image: url("../../../images/auguria/sliders/pagination.png");
42
+ background-position: 0 0;
43
+ display: block;
44
+ float: right;
45
+ height: 0;
46
+ overflow: hidden;
47
+ padding-top: 13px;
48
+ width: 13px;
49
+ }
50
+
51
+ ul.pagination li a:hover {
52
+ background-position: 0 -26px;
53
+ }
54
+
55
+ ul.pagination li.current a, ul.pagination li.current a:hover {
56
+ background-position: 0 -13px;
57
+ }
58
+
59
+ #auguria-slider .next, #auguria-slider .prev {
60
+ margin: 7px 7px 0 0;
61
+ float: left;
62
+ z-index: 101;
63
+ width: 13px;
64
+ height: 13px;
65
+ }
66
+ #auguria-slider a.next {
67
+ background-image: url("../../../images/auguria/sliders/next.png");
68
+ }
69
+ #auguria-slider a.prev {
70
+ background-image: url("../../../images/auguria/sliders/previous.png");
71
+ }
72
+ #auguria-slider a.next:hover{
73
+ background-image: url("../../../images/auguria/sliders/next-hover.png");
74
+ }
75
+ #auguria-slider a.prev:hover {
76
+ background-image: url("../../../images/auguria/sliders/previous-hover.png");
77
+ }
78
+ #auguria-slider .next span, #auguria-slider .prev span {
79
+ display: none;
80
+ }
81
+ /**
82
+ * Empty
83
+ */
84
+ body.page-empty #auguria-slider {
85
+ width:900px;
86
+ }
87
+ body.page-empty .auguria-slider-container {
88
+ width:900px;
89
+ height:394px;
90
+ }
91
+ body.page-empty .auguria-slider-container div {
92
+ width:900px;
93
+ height:394px;
94
+ }
95
+ body.page-empty #auguria-slider .caption {
96
+ width:860px;
97
+ }
98
+
99
+ /**
100
+ * One column
101
+ */
102
+ div.col1-layout #auguria-slider {
103
+ width:900px;
104
+ }
105
+ div.col1-layout .auguria-slider-container {
106
+ width:900px;
107
+ height:394px;
108
+ }
109
+ div.col1-layout .auguria-slider-container div {
110
+ width:900px;
111
+ height:394px;
112
+ }
113
+ div.col1-layout #auguria-slider .caption {
114
+ width:860px;
115
+ }
116
+
117
+ /**
118
+ * Two columns
119
+ */
120
+ div.col2-left-layout #auguria-slider,
121
+ div.col2-right-layout #auguria-slider {
122
+ width:685px;
123
+ }
124
+ div.col2-left-layout .auguria-slider-container,
125
+ div.col2-right-layout .auguria-slider-container {
126
+ width:685px;
127
+ height:300px;
128
+ }
129
+ div.col2-left-layout .auguria-slider-container div,
130
+ div.col2-right-layout .auguria-slider-container div {
131
+ width:685px;
132
+ height:300px;
133
+ }
134
+ div.col2-left-layout #auguria-slider .caption,
135
+ div.col2-right-layout #auguria-slider .caption {
136
+ width:645px;
137
+ }
138
+ /**
139
+ * Three columns
140
+ */
141
+ div.col3-layout #auguria-slider {
142
+ width:455px;
143
+ }
144
+ div.col3-layout .auguria-slider-container {
145
+ width:455px;
146
+ height:200px;
147
+ }
148
+ div.col3-layout .auguria-slider-container div {
149
+ width:455px;
150
+ height:200px;
151
+ }
152
+ div.col3-layout #auguria-slider .caption {
153
+ width:415px;
154
+ }
skin/frontend/base/default/images/auguria/sliders/loading.gif ADDED
Binary file
skin/frontend/base/default/images/auguria/sliders/next-hover.png ADDED
Binary file
skin/frontend/base/default/images/auguria/sliders/next.png ADDED
Binary file
skin/frontend/base/default/images/auguria/sliders/pagination.png ADDED
Binary file
skin/frontend/base/default/images/auguria/sliders/previous-hover.png ADDED
Binary file
skin/frontend/base/default/images/auguria/sliders/previous.png ADDED
Binary file