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
- app/code/community/Auguria/Sliders/Block/Abstract.php +126 -0
- app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders.php +24 -0
- app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit.php +49 -0
- app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Form.php +44 -0
- app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Tab/Categories.php +275 -0
- app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Tab/Content.php +77 -0
- app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Tab/Pages.php +32 -0
- app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Tab/Stores.php +32 -0
- app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Edit/Tabs.php +47 -0
- app/code/community/Auguria/Sliders/Block/Adminhtml/Sliders/Grid.php +151 -0
- app/code/community/Auguria/Sliders/Block/Catalog/Category/Slider.php +29 -0
- app/code/community/Auguria/Sliders/Block/Cms/Page/Slider.php +30 -0
- app/code/community/Auguria/Sliders/Helper/Data.php +17 -0
- app/code/community/Auguria/Sliders/Model/Adminhtml/System/Config/Backend/NaturalNumber.php +25 -0
- app/code/community/Auguria/Sliders/Model/Adminhtml/System/Config/Source/Cms/Page.php +28 -0
- app/code/community/Auguria/Sliders/Model/Adminhtml/System/Config/Source/Effect.php +36 -0
- app/code/community/Auguria/Sliders/Model/Adminhtml/System/Config/Source/Truefalse.php +36 -0
- app/code/community/Auguria/Sliders/Model/Mysql4/Sliders.php +160 -0
- app/code/community/Auguria/Sliders/Model/Mysql4/Sliders/Collection.php +51 -0
- app/code/community/Auguria/Sliders/Model/Sliders.php +15 -0
- app/code/community/Auguria/Sliders/controllers/Adminhtml/SlidersController.php +268 -0
- app/code/community/Auguria/Sliders/etc/adminhtml.xml +48 -0
- app/code/community/Auguria/Sliders/etc/config.xml +155 -0
- app/code/community/Auguria/Sliders/etc/system.xml +302 -0
- app/code/community/Auguria/Sliders/sql/auguria_sliders_setup/mysql4-install-0.0.1.php +42 -0
- app/code/community/Auguria/Sliders/sql/auguria_sliders_setup/mysql4-upgrade-0.0.1-0.0.2.php +61 -0
- app/design/adminhtml/default/default/layout/auguria/sliders.xml +24 -0
- app/design/adminhtml/default/default/template/auguria/sliders/edit/categories.phtml +149 -0
- app/design/frontend/base/default/layout/auguria/sliders.xml +66 -0
- app/design/frontend/base/default/template/auguria/sliders/slider.phtml +123 -0
- app/etc/modules/Auguria_Sliders.xml +17 -0
- app/locale/fr_FR/Auguria_Sliders.csv +94 -0
- js/auguria/sliders/jquery-1.7.2.min.js +4 -0
- js/auguria/sliders/slides.min.jquery.js +20 -0
- media/auguria/sliders/Anax.jpg +0 -0
- media/auguria/sliders/Ara.jpg +0 -0
- media/auguria/sliders/resized/455x200/Anax.jpg +0 -0
- media/auguria/sliders/resized/900x394/Anax.jpg +0 -0
- package.xml +18 -0
- skin/frontend/base/default/css/auguria/sliders/default.css +154 -0
- skin/frontend/base/default/images/auguria/sliders/loading.gif +0 -0
- skin/frontend/base/default/images/auguria/sliders/next-hover.png +0 -0
- skin/frontend/base/default/images/auguria/sliders/next.png +0 -0
- skin/frontend/base/default/images/auguria/sliders/pagination.png +0 -0
- skin/frontend/base/default/images/auguria/sliders/previous-hover.png +0 -0
- 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ésent en <a title='Amérique latine' href='http://fr.wikipedia.org/wiki/Am%C3%A9rique_latine'>Amé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 à Gubbeen, dans le comté 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
|