Vsourz_Digital_Jassor_Slider - Version 1.0.0

Version Notes

This is the first release of the extension

Download this release

Release Info

Developer Vsourz Digital
Extension Vsourz_Digital_Jassor_Slider
Version 1.0.0
Comparing to
See all releases


Version 1.0.0

Files changed (99) hide show
  1. app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider.php +10 -0
  2. app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Edit.php +43 -0
  3. app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Edit/Form.php +20 -0
  4. app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Edit/Tabs.php +22 -0
  5. app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Edit/Tabs/Content.php +90 -0
  6. app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Edit/Tabs/Form.php +60 -0
  7. app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Grid.php +79 -0
  8. app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Renderer/Image.php +8 -0
  9. app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Renderer/Status.php +12 -0
  10. app/code/community/Vsourz/Layerslider/Block/Layerslider.php +7 -0
  11. app/code/community/Vsourz/Layerslider/Helper/Data.php +65 -0
  12. app/code/community/Vsourz/Layerslider/Model/Layerslider.php +22 -0
  13. app/code/community/Vsourz/Layerslider/Model/Observer.php +15 -0
  14. app/code/community/Vsourz/Layerslider/Model/Resource/Layerslider.php +6 -0
  15. app/code/community/Vsourz/Layerslider/Model/Resource/Layerslider/Collection.php +6 -0
  16. app/code/community/Vsourz/Layerslider/Model/Source/Autocenter.php +13 -0
  17. app/code/community/Vsourz/Layerslider/Model/Source/Captioneffect.php +79 -0
  18. app/code/community/Vsourz/Layerslider/Model/Source/Chancetoshow.php +12 -0
  19. app/code/community/Vsourz/Layerslider/Model/Source/Dragorientation.php +13 -0
  20. app/code/community/Vsourz/Layerslider/Model/Source/Pauseonhover.php +13 -0
  21. app/code/community/Vsourz/Layerslider/Model/Source/Playmode.php +12 -0
  22. app/code/community/Vsourz/Layerslider/Model/Source/Playorientation.php +13 -0
  23. app/code/community/Vsourz/Layerslider/Model/Source/Slideeffects.php +65 -0
  24. app/code/community/Vsourz/Layerslider/Model/Source/Transitionorder.php +11 -0
  25. app/code/community/Vsourz/Layerslider/Model/Source/Truefalse.php +11 -0
  26. app/code/community/Vsourz/Layerslider/controllers/Adminhtml/LayersliderController.php +223 -0
  27. app/code/community/Vsourz/Layerslider/data/layerslider_setup/data-install-0.1.0.php +40 -0
  28. app/code/community/Vsourz/Layerslider/etc/adminhtml.xml +42 -0
  29. app/code/community/Vsourz/Layerslider/etc/config.xml +167 -0
  30. app/code/community/Vsourz/Layerslider/etc/system.xml +547 -0
  31. app/code/community/Vsourz/Layerslider/sql/layerslider_setup/mysql4-install-0.1.0.php +45 -0
  32. app/design/adminhtml/default/default/layout/layerslider.xml +48 -0
  33. app/design/frontend/base/default/layout/layerslider.xml +10 -0
  34. app/design/frontend/base/default/template/layerslider/layerslider.phtml +95 -0
  35. app/design/frontend/base/default/template/layerslider/layersliderjs.phtml +264 -0
  36. app/etc/modules/Vsourz_Layerslider.xml +29 -0
  37. media/layerslider/banner1-slide-img-2015-04-10-08-43-43.jpg +0 -0
  38. media/layerslider/banner1_thumb_1-slide_captionimg1-img-2015-04-10-08-43-43.png +0 -0
  39. media/layerslider/banner1_thumb_2-slide_captionimg2-2015-04-10-08-43-43.png +0 -0
  40. media/layerslider/banner2-slide-img-2015-04-10-08-48-49.jpg +0 -0
  41. media/layerslider/banner2_thumb_1-slide_captionimg1-img-2015-04-10-08-48-49.png +0 -0
  42. media/layerslider/banner2_thumb_2-slide_captionimg2-2015-04-10-08-48-49.png +0 -0
  43. media/layerslider/banner3-slide-img-2015-04-10-08-49-49.jpg +0 -0
  44. media/layerslider/banner3_thumb_1-slide_captionimg1-img-2015-04-10-08-50-08.png +0 -0
  45. media/layerslider/banner3_thumb_2-slide_captionimg2-2015-04-10-08-50-08.png +0 -0
  46. media/layerslider/slide_5-slide-img-2015-04-20-09-32-44.jpg +0 -0
  47. package.xml +34 -0
  48. skin/frontend/base/default/css/layerslider/layerstyle.css +238 -0
  49. skin/frontend/base/default/images/layerslider/Icon-Slider-11-No-jQuery.png +0 -0
  50. skin/frontend/base/default/images/layerslider/Icon-Slider-11-jQuery.png +0 -0
  51. skin/frontend/base/default/images/layerslider/Icon-Slider-12-No-jQuery.png +0 -0
  52. skin/frontend/base/default/images/layerslider/Icon-Slider-12-jQuery.png +0 -0
  53. skin/frontend/base/default/images/layerslider/Thumbs.db +0 -0
  54. skin/frontend/base/default/images/layerslider/a01.png +0 -0
  55. skin/frontend/base/default/images/layerslider/a02.png +0 -0
  56. skin/frontend/base/default/images/layerslider/a03.png +0 -0
  57. skin/frontend/base/default/images/layerslider/a04.png +0 -0
  58. skin/frontend/base/default/images/layerslider/a06.png +0 -0
  59. skin/frontend/base/default/images/layerslider/a07.png +0 -0
  60. skin/frontend/base/default/images/layerslider/a08.png +0 -0
  61. skin/frontend/base/default/images/layerslider/a09.png +0 -0
  62. skin/frontend/base/default/images/layerslider/a10.png +0 -0
  63. skin/frontend/base/default/images/layerslider/a11.png +0 -0
  64. skin/frontend/base/default/images/layerslider/a12.png +0 -0
  65. skin/frontend/base/default/images/layerslider/a13.png +0 -0
  66. skin/frontend/base/default/images/layerslider/a14.png +0 -0
  67. skin/frontend/base/default/images/layerslider/a15.png +0 -0
  68. skin/frontend/base/default/images/layerslider/a16.png +0 -0
  69. skin/frontend/base/default/images/layerslider/a17.png +0 -0
  70. skin/frontend/base/default/images/layerslider/a18.png +0 -0
  71. skin/frontend/base/default/images/layerslider/a19.png +0 -0
  72. skin/frontend/base/default/images/layerslider/a20.png +0 -0
  73. skin/frontend/base/default/images/layerslider/a21.png +0 -0
  74. skin/frontend/base/default/images/layerslider/b02.png +0 -0
  75. skin/frontend/base/default/images/layerslider/b03.png +0 -0
  76. skin/frontend/base/default/images/layerslider/b05.png +0 -0
  77. skin/frontend/base/default/images/layerslider/b06.png +0 -0
  78. skin/frontend/base/default/images/layerslider/b07.png +0 -0
  79. skin/frontend/base/default/images/layerslider/b10.png +0 -0
  80. skin/frontend/base/default/images/layerslider/b11.png +0 -0
  81. skin/frontend/base/default/images/layerslider/b12.png +0 -0
  82. skin/frontend/base/default/images/layerslider/b13.png +0 -0
  83. skin/frontend/base/default/images/layerslider/b14.png +0 -0
  84. skin/frontend/base/default/images/layerslider/b16.png +0 -0
  85. skin/frontend/base/default/images/layerslider/b17.png +0 -0
  86. skin/frontend/base/default/images/layerslider/b18.png +0 -0
  87. skin/frontend/base/default/images/layerslider/b20.png +0 -0
  88. skin/frontend/base/default/images/layerslider/b21.png +0 -0
  89. skin/frontend/base/default/images/layerslider/back.jpg +0 -0
  90. skin/frontend/base/default/images/layerslider/browser-icons.png +0 -0
  91. skin/frontend/base/default/images/layerslider/close.png +0 -0
  92. skin/frontend/base/default/images/layerslider/loading.gif +0 -0
  93. skin/frontend/base/default/images/layerslider/loading2.gif +0 -0
  94. skin/frontend/base/default/images/layerslider/play.png +0 -0
  95. skin/frontend/base/default/images/layerslider/t01.png +0 -0
  96. skin/frontend/base/default/js/layerslider/jquery-1.10.2.min.js +6 -0
  97. skin/frontend/base/default/js/layerslider/jssor.js +2724 -0
  98. skin/frontend/base/default/js/layerslider/jssor.slider.min-old.js +2 -0
  99. skin/frontend/base/default/js/layerslider/jssor.slider.min.js +2 -0
app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Block_Adminhtml_Layerslider extends Mage_Adminhtml_Block_Widget_Grid_Container{
3
+ public function __construct(){
4
+ $this->_controller = 'adminhtml_layerslider';
5
+ $this->_blockGroup = 'layerslider';
6
+ $this->_headerText = Mage::helper('layerslider')->__('Slide Manager');
7
+ $this->_addButtonLabel = Mage::helper('layerslider')->__('Add Slide');
8
+ parent::__construct();
9
+ }
10
+ }
app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Edit.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Block_Adminhtml_Layerslider_Edit extends Mage_Adminhtml_Block_Widget_Form_Container {
3
+ public function __construct(){
4
+ parent::__construct();
5
+ $this->_objectId = 'id';
6
+ $this->_blockGroup = 'layerslider';
7
+ $this->_controller = 'adminhtml_layerslider';
8
+ $this->_mode = 'edit';
9
+ $this->_updateButton('save', 'label', Mage::helper('layerslider')->__('Save Slide'));
10
+ $this->_updateButton('delete', 'label', Mage::helper('layerslider')->__('Delete'));
11
+ $this->_addButton('saveandcontinue', array(
12
+ 'label' => Mage::helper('layerslider')->__('Save And Continue Edit'),
13
+ 'onclick' => 'saveAndContinueEdit()',
14
+ 'class' => 'save',
15
+ ), -100);
16
+
17
+ $this->_formScripts[] ="
18
+ function toggleEditor(){
19
+ if (tinyMCE.getInstanceById('form_content') == null) {
20
+ tinyMCE.execCommand('mceAddControl', false, 'edit_form');
21
+ } else {
22
+ tinyMCE.execCommand('mceRemoveControl', false, 'edit_form');
23
+ }
24
+ }
25
+ function saveAndContinueEdit(){
26
+ editForm.submit($('edit_form').action+'back/edit/');
27
+ }";
28
+ }
29
+ protected function _prepareLayout(){
30
+ parent::_prepareLayout();
31
+ if (Mage::getSingleton('cms/wysiwyg_config')->isEnabled()) {
32
+ $this->getLayout()->getBlock('head')->setCanLoadTinyMce(true);
33
+ $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
34
+ }
35
+ }
36
+ public function getHeaderText() {
37
+ if (Mage::registry('layerslider_data') && Mage::registry('layerslider_data')->getId()) {
38
+ return Mage::helper('layerslider')->__('Edit Slide "%s"', $this->htmlEscape(Mage::registry('layerslider_data')->getSlideTitle()));
39
+ } else {
40
+ return Mage::helper('layerslider')->__('New Slide');
41
+ }
42
+ }
43
+ }
app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Edit/Form.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Block_Adminhtml_Layerslider_Edit_Form extends Mage_Adminhtml_Block_Widget_Form{
3
+ protected function _prepareForm(){
4
+ if (Mage::registry('layerslider_data')){
5
+ $data = Mage::registry('layerslider_data')->getData();
6
+ }else{
7
+ $data = array();
8
+ }
9
+ $form = new Varien_Data_Form(array(
10
+ 'id' => 'edit_form',
11
+ 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
12
+ 'method' => 'post',
13
+ 'enctype' => 'multipart/form-data'
14
+ ));
15
+ $form->setUseContainer(true);
16
+ $this->setForm($form);
17
+ $form->setValues($data);
18
+ return parent::_prepareForm();
19
+ }
20
+ }
app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Edit/Tabs.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Block_Adminhtml_Layerslider_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs {
3
+ public function __construct() {
4
+ parent::__construct();
5
+ $this->setId('layerslider_tabs');
6
+ $this->setDestElementId('edit_form'); // this should be same as the form id define above
7
+ $this->setTitle(Mage::helper('layerslider')->__('Slide Data'));
8
+ }
9
+ protected function _beforeToHtml() {
10
+ $this->addTab('form_section', array(
11
+ 'label' => Mage::helper('layerslider')->__('Slide Basic Information'),
12
+ 'title' => Mage::helper('layerslider')->__('Slide Basic Information'),
13
+ 'content' => $this->getLayout()->createBlock('layerslider/adminhtml_layerslider_edit_tabs_form')->toHtml(),
14
+ ));
15
+ $this->addTab('content_section', array(
16
+ 'label' => Mage::helper('layerslider')->__('Slide Caption Information'),
17
+ 'title' => Mage::helper('layerslider')->__('Slide Caption Information'),
18
+ 'content' => $this->getLayout()->createBlock('layerslider/adminhtml_layerslider_edit_tabs_content')->toHtml(),
19
+ ));
20
+ return parent::_beforeToHtml();
21
+ }
22
+ }
app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Edit/Tabs/Content.php ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Block_Adminhtml_Layerslider_Edit_Tabs_Content extends Mage_Adminhtml_Block_Widget_Form{
3
+ protected function _prepareForm() {
4
+ if (Mage::registry('layerslider_data')) {
5
+ $data = Mage::registry('layerslider_data')->getData();
6
+ } else {
7
+ $data = array();
8
+ }
9
+ $form = new Varien_Data_Form();
10
+ $this->setForm($form);
11
+ $fieldset = $form->addFieldset('layerslider_layerslider', array('legend' => Mage::helper('layerslider')->__('Caption Information')));
12
+
13
+ $wysiwygConfig = Mage::getSingleton('cms/wysiwyg_config')->getConfig();
14
+ $wysiwygConfig->addData(array('add_variables' => false,
15
+ 'add_widgets' => false,
16
+ 'add_images' => false,
17
+ 'directives_url' => Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/cms_wysiwyg/directive'),
18
+ 'directives_url_quoted' => preg_quote(Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/cms_wysiwyg/directive')),
19
+ 'widget_window_url' => Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/widget/index'),
20
+ 'files_browser_window_url' => Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/cms_wysiwyg_images/index'),
21
+ 'files_browser_window_width' => (int) Mage::getConfig()->getNode('adminhtml/cms/browser/window_width'),
22
+ 'files_browser_window_height' => (int) Mage::getConfig()->getNode('adminhtml/cms/browser/window_height')
23
+ ));
24
+
25
+ $fieldset->addField('slide_captionimg1', 'image', array(
26
+ 'label' => Mage::helper('layerslider')->__('Slide Caption Image1'),
27
+ 'name' => 'slide_captionimg1',
28
+ 'note' => '(*.jpg, *.jpeg, *.png, *.gif)',
29
+ ));
30
+
31
+ $fieldset->addField('slide_captionimg2', 'image', array(
32
+ 'label' => Mage::helper('layerslider')->__('Slide Caption Image2'),
33
+ 'name' => 'slide_captionimg2',
34
+ 'note' => '(*.jpg, *.jpeg, *.png, *.gif)',
35
+ ));
36
+
37
+ $fieldset->addField('slide_caption1', 'editor', array(
38
+ 'name' => 'slide_caption1',
39
+ 'label' => Mage::helper('layerslider')->__('Slide Caption1'),
40
+ 'title' => Mage::helper('layerslider')->__('Slide Caption1'),
41
+ 'style' => 'width:650px; height:100px;',
42
+ 'config' => $wysiwygConfig,
43
+ 'required' => false,
44
+ 'wysiwyg' => true
45
+ ));
46
+
47
+ $fieldset->addField('slide_caption2', 'editor', array(
48
+ 'name' => 'slide_caption2',
49
+ 'label' => Mage::helper('layerslider')->__('Slide Caption2'),
50
+ 'title' => Mage::helper('layerslider')->__('Slide Caption2'),
51
+ 'style' => 'width:650px; height:100px;',
52
+ 'config' => $wysiwygConfig,
53
+ 'required' => false,
54
+ 'wysiwyg' => true
55
+ ));
56
+
57
+ $fieldset->addField('slide_caption3', 'editor', array(
58
+ 'name' => 'slide_caption3',
59
+ 'label' => Mage::helper('layerslider')->__('Slide Caption3'),
60
+ 'title' => Mage::helper('layerslider')->__('Slide Caption3'),
61
+ 'style' => 'width:650px; height:100px;',
62
+ 'config' => $wysiwygConfig,
63
+ 'required' => false,
64
+ 'wysiwyg' => true
65
+ ));
66
+
67
+ $fieldset->addField('slide_caption4', 'editor', array(
68
+ 'name' => 'slide_caption4',
69
+ 'label' => Mage::helper('layerslider')->__('Slide Caption4'),
70
+ 'title' => Mage::helper('layerslider')->__('Slide Caption4'),
71
+ 'style' => 'width:650px; height:100px;',
72
+ 'config' => $wysiwygConfig,
73
+ 'required' => false,
74
+ 'wysiwyg' => true
75
+ ));
76
+
77
+ $fieldset->addField('slide_caption5', 'editor', array(
78
+ 'name' => 'slide_caption5',
79
+ 'label' => Mage::helper('layerslider')->__('Slide Caption5'),
80
+ 'title' => Mage::helper('layerslider')->__('Slide Caption5'),
81
+ 'style' => 'width:650px; height:100px;',
82
+ 'config' => $wysiwygConfig,
83
+ 'required' => false,
84
+ 'wysiwyg' => true
85
+ ));
86
+
87
+ $form->setValues($data);
88
+ return parent::_prepareForm();
89
+ }
90
+ }
app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Edit/Tabs/Form.php ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Block_Adminhtml_Layerslider_Edit_Tabs_Form extends Mage_Adminhtml_Block_Widget_Form{
3
+ protected function _prepareForm() {
4
+ if (Mage::registry('layerslider_data')) {
5
+ $data = Mage::registry('layerslider_data')->getData();
6
+ } else {
7
+ $data = array();
8
+ }
9
+ $form = new Varien_Data_Form();
10
+ $this->setForm($form);
11
+ $fieldset = $form->addFieldset('layerslider_layerslider', array('legend' => Mage::helper('layerslider')->__('Slide Information')));
12
+ $fieldset->addField('slide_title', 'text', array(
13
+ 'label' => Mage::helper('layerslider')->__('Slide Title'),
14
+ 'class' => 'required-entry',
15
+ 'required' => true,
16
+ 'name' => 'slide_title',
17
+ ));
18
+ $fieldset->addField('slide_img', 'image', array(
19
+ 'label' => Mage::helper('layerslider')->__('Slide Image'),
20
+ 'class' => 'required-entry required-file',
21
+ 'required' => true,
22
+ 'name' => 'slide_img',
23
+ 'note' => '(*.jpg, *.jpeg, *.png, *.gif)',
24
+ ));
25
+ $fieldset->addField('slide_url', 'text', array(
26
+ 'label' => Mage::helper('layerslider')->__('Slide URL'),
27
+ 'required' => false,
28
+ 'name' => 'slide_url',
29
+ ));
30
+ $fieldset->addField('active_from', 'date', array(
31
+ 'label' => Mage::helper('layerslider')->__('Active From'),
32
+ 'tabindex' => 1,
33
+ 'name' => 'active_from',
34
+ 'image' => $this->getSkinUrl('images/grid-cal.gif'),
35
+ 'time' => true,
36
+ 'format' => Mage::app()->getLocale()->getDateTimeFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT)
37
+ ));
38
+ $fieldset->addField('active_to', 'date', array(
39
+ 'label' => Mage::helper('layerslider')->__('Active To'),
40
+ 'tabindex' => 1,
41
+ 'name' => 'active_to',
42
+ 'image' => $this->getSkinUrl('images/grid-cal.gif'),
43
+ 'time' => true,
44
+ 'format' => Mage::app()->getLocale()->getDateTimeFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT)
45
+ ));
46
+ $fieldset->addField('status', 'select', array(
47
+ 'label' => Mage::helper('layerslider')->__('Status'),
48
+ 'class' => 'required-entry',
49
+ 'required' => true,
50
+ 'name' => 'status',
51
+ 'value' => '0',
52
+ 'values' => array('0' => 'Disable','1' => 'Enable'),
53
+ 'disabled' => false,
54
+ 'readonly' => false,
55
+ 'tabindex' => 1
56
+ ));
57
+ $form->setValues($data);
58
+ return parent::_prepareForm();
59
+ }
60
+ }
app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Grid.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Block_Adminhtml_Layerslider_Grid extends Mage_Adminhtml_Block_Widget_Grid{
3
+ public function __construct(){
4
+ parent::__construct();
5
+ $this->setId('layerslider_grid');
6
+ $this->setDefaultSort('slide_id');
7
+ $this->setDefaultDir('ASC');
8
+ $this->setSaveParametersInSession(true);
9
+ }
10
+ protected function _prepareCollection(){
11
+ $collection = Mage::getModel('layerslider/layerslider')->getCollection();
12
+ $this->setCollection($collection);
13
+ return parent::_prepareCollection();
14
+ }
15
+ protected function _prepareColumns(){
16
+ $this->addColumn('slide_id', array(
17
+ 'header' => Mage::helper('layerslider')->__('ID'),
18
+ 'align' => 'right',
19
+ 'width' => '10px',
20
+ 'index' => 'slide_id',
21
+ ));
22
+ $this->addColumn('slide_title', array(
23
+ 'header' => Mage::helper('layerslider')->__('Title'),
24
+ 'align' => 'right',
25
+ 'width' => '100px',
26
+ 'index' => 'slide_title',
27
+ ));
28
+ $this->addColumn('slide_url', array(
29
+ 'header' => Mage::helper('layerslider')->__('URL'),
30
+ 'align' => 'right',
31
+ 'width' => '100px',
32
+ 'index' => 'slide_url',
33
+ ));
34
+ $this->addColumn('slide_img', array(
35
+ 'header' => Mage::helper('layerslider')->__('Image'),
36
+ 'align' => 'left',
37
+ 'width' => '250px',
38
+ 'index' => 'slide_img',
39
+ 'renderer' => 'layerslider/adminhtml_layerslider_renderer_image',
40
+ ));
41
+ $this->addColumn('status', array(
42
+ 'header' => Mage::helper('layerslider')->__('Status'),
43
+ 'align' => 'left',
44
+ 'width' => '10px',
45
+ 'index' => 'status',
46
+ 'renderer' => 'layerslider/adminhtml_layerslider_renderer_status',
47
+ ));
48
+ $this->addColumn('active_from', array(
49
+ 'header' => Mage::helper('layerslider')->__('active_from'),
50
+ 'align' => 'left',
51
+ 'type' => 'datetime',
52
+ 'width' => '10px',
53
+ 'index' => 'active_from',
54
+ ));
55
+ $this->addColumn('active_to', array(
56
+ 'header' => Mage::helper('layerslider')->__('active_to'),
57
+ 'type' => 'datetime',
58
+ 'align' => 'left',
59
+ 'width' => '10px',
60
+ 'index' => 'active_to',
61
+ ));
62
+
63
+ return parent::_prepareColumns();
64
+ }
65
+ protected function _prepareMassaction(){
66
+ $this->setMassactionIdField('slide_id');
67
+ $this->getMassactionBlock()->setFormFieldName('id');
68
+ $this->getMassactionBlock()->addItem('delete', array(
69
+ 'label'=> Mage::helper('layerslider')->__('Delete'),
70
+ 'url' => $this->getUrl('*/*/massDelete', array('' => '')),
71
+ 'confirm' => Mage::helper('layerslider')->__('Are you sure?')
72
+ ));
73
+ return $this;
74
+ }
75
+ public function getRowUrl($row) {
76
+ return $this->getUrl('*/*/edit', array('id' => $row->getId()));
77
+ }
78
+
79
+ }
app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Renderer/Image.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Block_Adminhtml_Layerslider_Renderer_Image extends
3
+ Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract {
4
+ public function render(Varien_Object $row){
5
+ $value = $row->getData($this->getColumn()->getIndex());
6
+ return '<img width="200" height="100" src="'.Mage::getBaseUrl('media').DS.$value . '" />';
7
+ }
8
+ }
app/code/community/Vsourz/Layerslider/Block/Adminhtml/Layerslider/Renderer/Status.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Block_Adminhtml_Layerslider_Renderer_Status extends
3
+ Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract {
4
+ public function render(Varien_Object $row){
5
+ $value = $row->getData($this->getColumn()->getIndex());
6
+ if($value == 1){
7
+ return "Enabled";
8
+ }else{
9
+ return "Disabled";
10
+ }
11
+ }
12
+ }
app/code/community/Vsourz/Layerslider/Block/Layerslider.php ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Block_Layerslider extends Mage_Catalog_Block_Product_Abstract{
3
+ public function getSlides(){
4
+ $_slideCollection = Mage::getModel("layerslider/layerslider")->getSlideCollection();
5
+ return $_slideCollection;
6
+ }
7
+ }
app/code/community/Vsourz/Layerslider/Helper/Data.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Helper_Data extends Mage_Core_Helper_Abstract{
3
+
4
+ public function writeFile($file, $post, $field){
5
+ $adminsession = Mage::getSingleton('adminhtml/session');
6
+ $io = new Varien_Io_File();
7
+ $io->open(array('path' => Mage::getBaseDir()));
8
+ if ($io->fileExists($file))
9
+ {
10
+ if ($io->isWriteable($file))
11
+ {
12
+ try
13
+ {
14
+ $io->streamOpen($file);
15
+ $io->streamWrite($post);
16
+
17
+ } catch(Mage_Core_Exception $e)
18
+ {
19
+ $adminsession->addError($e->getMessage());
20
+ }
21
+ } else {
22
+
23
+ $adminsession->addError($file." is not writable. Change permissions to 644 to use this feature.");
24
+
25
+ }
26
+ } else {
27
+
28
+ $adminsession->addError($file." does not exist. The file was not saved.");
29
+ }
30
+
31
+ $io->streamClose();
32
+ }
33
+
34
+ public function saveFileContentToConfig($file, $field){
35
+ $adminsession = Mage::getSingleton('adminhtml/session');
36
+ $io = new Varien_Io_File();
37
+ $io->open(array('path' => Mage::getBaseDir()));
38
+ if ($io->fileExists($file)){
39
+ try{
40
+ $contents = $io->read($file);
41
+ Mage::getModel('core/config')->saveConfig('layerslider'.DS.'files'.DS.$field, $contents);
42
+ }catch(Mage_Core_Exception $e){
43
+ $adminsession->addError($e->getMessage());
44
+ }
45
+ }else{
46
+ $adminsession->addError($file." does not exist. Please create this file on your domain root to use this feature.");
47
+ }
48
+ $io->streamClose();
49
+ }
50
+
51
+ public function isWriteable($file)
52
+ {
53
+ $io = new Varien_Io_File();
54
+ $io->open(array('path' => Mage::getBaseDir()));
55
+ return $io->isWriteable($file);
56
+ }
57
+
58
+ public function cssFile(){
59
+ $pckPath = Mage::getStoreConfig('layerslider/files/packagename');
60
+ $skinUrl = Mage::getBaseDir().DS."skin".DS;
61
+ $absPath = "css/layerslider/layerstyle.css";
62
+ $finalPath = $skinUrl.'frontend/'.$pckPath.'/'.$absPath;
63
+ return $finalPath;
64
+ }
65
+ }
app/code/community/Vsourz/Layerslider/Model/Layerslider.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Model_Layerslider extends Mage_Core_Model_Abstract{
3
+ public function _construct(){
4
+ parent::_construct();
5
+ $this->_init('layerslider/layerslider');
6
+ }
7
+ public function getSlideCollection(){
8
+ $slideCollection = Mage::getModel('layerslider/layerslider')->getCollection()
9
+ ->addFieldToFilter('status','1')
10
+ ->addFieldToFilter('active_from',
11
+ array(
12
+ array('to' => Mage::getModel('core/date')->gmtDate()),
13
+ array('active_from', 'null'=>'')))
14
+ ->addFieldToFilter('active_to',
15
+ array(
16
+ array('from' => Mage::getModel('core/date')->gmtDate()),
17
+ array('active_to', 'null'=>'')));
18
+ //echo $slideCollection->getSelect()->__toString();
19
+ //die;
20
+ return $slideCollection;
21
+ }
22
+ }
app/code/community/Vsourz/Layerslider/Model/Observer.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Vsourz_Layerslider_Model_Observer extends Mage_Core_Model_Abstract {
4
+ public function writeToFileOnConfigSave($observer) {
5
+ $helper = Mage::helper('layerslider'); // loads the helper file
6
+ $post = Mage::app()->getRequest()->getPost(); // gets all the data of that section
7
+ $css_post = $post['groups']['files']['fields']['css']['value']; //gets the value of css area
8
+ $helper->writeFile($helper->cssFile(), $css_post, 'css');
9
+
10
+ }
11
+ public function saveConfigOnConfigLoad(){
12
+ $helper = Mage::helper('layerslider'); // loads the helper file
13
+ $helper->saveFileContentToConfig($helper->cssFile(), 'css');
14
+ }
15
+ }
app/code/community/Vsourz/Layerslider/Model/Resource/Layerslider.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Model_Resource_Layerslider extends Mage_Core_Model_Mysql4_Abstract{
3
+ public function _construct(){
4
+ $this->_init('layerslider/layerslider','slide_id');
5
+ }
6
+ }
app/code/community/Vsourz/Layerslider/Model/Resource/Layerslider/Collection.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Model_Resource_Layerslider_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract{
3
+ public function _construct(){
4
+ $this->_init('layerslider/layerslider');
5
+ }
6
+ }
app/code/community/Vsourz/Layerslider/Model/Source/Autocenter.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Model_Source_Autocenter
3
+ {
4
+ public function toOptionArray()
5
+ {
6
+ return array(
7
+ array('value' => '0', 'label' => 'No'),
8
+ array('value' => '1', 'label' => 'Horizontal'),
9
+ array('value' => '2', 'label' => 'Vertical'),
10
+ array('value' => '3', 'label' => 'Both'),
11
+ );
12
+ }
13
+ }
app/code/community/Vsourz/Layerslider/Model/Source/Captioneffect.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_layerslider_Model_Source_Captioneffect
3
+ {
4
+ public function toOptionArray()
5
+ {
6
+ return array(
7
+ array('value' => '$FlyDirection:2,$Easing:{$Left:$JssorEasing$.$EaseInOutSine},$ScaleHorizontal:0.6,$Opacity:2', 'label' => 'Right'),
8
+
9
+ array('value' => '$FlyDirection:1,$Easing:{$Left:$JssorEasing$.$EaseInOutSine},$ScaleHorizontal:0.6,$Opacity:2', 'label' => 'Left'),
10
+
11
+ array('value' => '$FlyDirection:4,$Easing:{$Top:$JssorEasing$.$EaseInOutSine},$ScaleVertical:0.6,$Opacity:2', 'label' => 'Top'),
12
+
13
+ array('value' => '$FlyDirection:8,$Easing:{$Top:$JssorEasing$.$EaseInOutSine},$ScaleVertical:0.6,$Opacity:2', 'label' => 'Bottom'),
14
+
15
+ array('value' => '$Opacity:2', 'label' => 'Fade'),
16
+
17
+ array('value' => '$Rotate:6.25,$FlyDirection:1,$Easing:$JssorEasing$.$EaseLinear,$ScaleHorizontal:0.5,$Opacity:2,$During:{$Left:[0,0.33],$Rotate:[0,0.33]},$Round:{$Rotate:0.25}', 'label' => 'Fade Left'),
18
+
19
+ array('value' => '$Rotate:6.25,$FlyDirection:2,$Easing:$JssorEasing$.$EaseLinear,$ScaleHorizontal:0.5,$Opacity:2,$During:{$Left:[0,0.33],$Rotate:[0,0.33]},$Round:{$Rotate:0.25}', 'label' => 'Fade Right'),
20
+
21
+ array('value' => '$Rotate:6.25,$FlyDirection:4,$Easing:$JssorEasing$.$EaseLinear,$ScaleHorizontal:0.5,$Opacity:2,$During:{$Left:[0,0.33],$Rotate:[0,0.33]},$Round:{$Rotate:0.25}', 'label' => 'Fade Top'),
22
+
23
+ array('value' => '$Rotate:6.25,$FlyDirection:8,$Easing:$JssorEasing$.$EaseLinear,$ScaleVertical:0.5,$Opacity:2,$During:{$Top:[0,0.33],$Rotate:[0,0.33]},$Round:{$Rotate:0.25}', 'label' => 'Fade Bottom'),
24
+
25
+ array('value' => '$Clip:3,$FlyDirection:8,$Easing:$JssorEasing$.$EaseInCubic,$ScaleVertical:0.6,$Opacity:2', 'label' => 'B*CLIP'),
26
+
27
+ array('value' => '$Clip:3,$Easing:$JssorEasing$.$EaseInOutCubic,$ScaleHorizontal:0.8,$ScaleClip:0.8,$Opacity:2,$During:{$Left:[0.4,0.6],$Clip:[0,0.4],$Opacity:[0.4,0.6]}', 'label' => 'ListHC|L'),
28
+
29
+ array('value' => '$Zoom:3,$Rotate:2,$Easing:{$Left:$JssorEasing$.$EaseInCubic,$Rotate:$JssorEasing$.$EaseInWave},$ScaleHorizontal:0.6,$Opacity:2', 'label' => 'L*IW'),
30
+
31
+ array('value' => '$Zoom:2,$Rotate:0.25,$FlyDirection:1,$Easing:{$Left:$JssorEasing$.$EaseOutJump,$Zoom:$JssorEasing$.$EaseInCubic,$Opacity:$JssorEasing$.$EaseLinear,$Rotate:$JssorEasing$.$EaseOutWave},$ScaleHorizontal:0.5,$Opacity:2,$Round:{$Rotate:0.5}', 'label' => 'RTT*JDN1|L'),
32
+
33
+ array('value' => '$Rotate:-0.05,$Easing:{$Top:$JssorEasing$.$EaseInOutSine},$ScaleHorizontal:0.6,$Opacity:2', 'label' => 'L*'),
34
+
35
+ array('value' => '$Rotate:-1,$FlyDirection:5,$Easing:$JssorEasing$.$EaseLinear,$ScaleHorizontal:0.5,$ScaleVertical:0.5,$Opacity:2,$During:{$Left:[0.67,0.33],$Top:[0,0.33],$Rotate:[0,0.33]},$Round:{$Rotate:0.25}', 'label' => 'L-T*'),
36
+
37
+ array('value' => '$Rotate:-1,$FlyDirection:10,$Easing:$JssorEasing$.$EaseLinear,$ScaleHorizontal:0.5,$ScaleVertical:0.5,$Opacity:2,$During:{$Left:[0.67,0.33],$Top:[0,0.33],$Rotate:[0,0.33]},$Round:{$Rotate:0.25}', 'label' => 'L-B*'),
38
+
39
+ array('value' => '$Rotate:-1,$FlyDirection:5,$Easing:$JssorEasing$.$EaseLinear,$ScaleHorizontal:0.5,$ScaleVertical:0.5,$Opacity:2,$During:{$Left:[0,0.33],$Top:[0.67,0.33],$Rotate:[0,0.33]},$Round:{$Rotate:0.25}', 'label' => 'T-L*'),
40
+
41
+ array('value' => '$Rotate:1,$FlyDirection:6,$Easing:$JssorEasing$.$EaseLinear,$ScaleHorizontal:0.5,$ScaleVertical:0.5,$Opacity:2,$During:{$Left:[0,0.33],$Top:[0.67,0.33],$Rotate:[0,0.33]},$Round:{$Rotate:0.25}', 'label' => 'T-R*'),
42
+
43
+ array('value' => '$Rotate:-1,$FlyDirection:9,$Easing:$JssorEasing$.$EaseLinear,$ScaleHorizontal:0.5,$ScaleVertical:0.5,$Opacity:2,$During:{$Left:[0,0.33],$Top:[0.67,0.33],$Rotate:[0,0.33]},$Round:{$Rotate:0.25}', 'label' => 'B-L*'),
44
+
45
+ array('value' => '$Rotate:-1,$FlyDirection:10,$Easing:$JssorEasing$.$EaseLinear,$ScaleHorizontal:0.5,$ScaleVertical:0.5,$Opacity:2,$During:{$Left:[0,0.33],$Top:[0.67,0.33],$Rotate:[0,0.33]},$Round:{$Rotate:0.25}', 'label' => 'B-R*'),
46
+
47
+ array('value' => '$Rotate:-1,$FlyDirection:6,$Easing:$JssorEasing$.$EaseLinear,$ScaleHorizontal:0.5,$ScaleVertical:0.5,$Opacity:2,$During:{$Left:[0.67,0.33],$Top:[0,0.33],$Rotate:[0,0.33]},$Round:{$Rotate:0.25}', 'label' => 'R-T*'),
48
+
49
+ array('value' => '$Rotate:-1,$FlyDirection:10,$Easing:$JssorEasing$.$EaseLinear,$ScaleHorizontal:0.5,$ScaleVertical:0.5,$Opacity:2,$During:{$Left:[0.67,0.33],$Top:[0,0.33],$Rotate:[0,0.33]},$Round:{$Rotate:0.25}', 'label' => 'R-B*'),
50
+
51
+ array('value' => '$Zoom:1,$Easing:$JssorEasing$.$EaseInCubic,$Opacity:2', 'label' => 'Zoom'),
52
+
53
+ array('value' => '$Zoom:11,$FlyDirection:10,$Easing:{$Left:$JssorEasing$.$EaseOutJump,$Top:$JssorEasing$.$EaseInSine,$Zoom:$JssorEasing$.$EaseInCubic},$ScaleHorizontal:0.6,$ScaleVertical:0.6,$Opacity:2,$Round:{$Left:0.5}', 'label' => 'Zoom With Wave'),
54
+
55
+ array('value' => '$Rotate:1,$Easing:{$Opacity:$JssorEasing$.$EaseLinear,$Rotate:$JssorEasing$.$EaseInQuad},$Opacity:2', 'label' => 'Rotate 360'),
56
+
57
+ array('value' => '$Zoom:11,$Rotate:0.2,$FlyDirection:6,$Easing:{$Left:$JssorEasing$.$EaseLinear,$Top:$JssorEasing$.$EaseInCubic,$Zoom:$JssorEasing$.$EaseInCubic},$ScaleHorizontal:0.8,$ScaleVertical:0.5,$Opacity:2,$During:{$Top:[0,0.5]}', 'label' => 'Rotate Right Top'),
58
+
59
+ array('value' => '$Clip:8,$Move:true,$Easing:{$Clip:$JssorEasing$.$EaseInOutCubic}', 'label' => 'Bottom To Top'),
60
+
61
+ array('value' => '$Zoom:1,$FlyDirection:5,$Easing:{$Left:$JssorEasing$.$EaseInOutSine,$Top:$JssorEasing$.$EaseInWave,$Zoom:$JssorEasing$.$EaseInOutQuad},$ScaleHorizontal:0.5,$ScaleVertical:0.3,$Opacity:2,$During:{$Left:[0,0.7],$Top:[0.1,0.7]},$Round:{$Top:0.4}', 'label' => 'Latency'),
62
+
63
+ array('value' => '$Zoom:1,$FlyDirection:8,$Easing:{$Top:$JssorEasing$.$EaseOutWave,$Zoom:$JssorEasing$.$EaseOutCubic},$ScaleVertical:0.2,$Opacity:2,$During:{$Top:[0,0.7]},$Round:{$Top:1.3}', 'label' => 'Tortuous | HR'),
64
+
65
+ array('value' => '$Zoom:3,$Rotate:0.1,$FlyDirection:6,$Easing:{$Left:$JssorEasing$.$EaseInQuint,$Top:$JssorEasing$.$EaseInWave,$Opacity:$JssorEasing$.$EaseInQuint},$ScaleHorizontal:1,$ScaleVertical:0.1,$Opacity:2', 'label' => 'Spaceship | RT'),
66
+
67
+ array('value' => '$Zoom:1,$FlyDirection:9,$Easing:{$Left:$JssorEasing$.$EaseOutWave,$Top:$JssorEasing$.$EaseInExpo},$ScaleHorizontal:0.1,$ScaleVertical:0.5,$Opacity:2,$During:{$Left:[0.3,0.7],$Top:[0,0.7]},$Round:{$Left:1.3}', 'label' => 'Attack | BL'),
68
+
69
+
70
+ array('value' => '$FlyDirection:10,$Easing:{$Left:$JssorEasing$.$EaseLinear,$Top:$JssorEasing$.$EaseInWave},$ScaleHorizontal:0.6,$ScaleVertical:0.3,$Opacity:2,$Round:{$Top:2.5}', 'label' => 'Wave R|R'),
71
+
72
+ array('value' => '$FlyDirection:10,$Easing:{$Left:$JssorEasing$.$EaseInJump,$Top:$JssorEasing$.$EaseLinear},$ScaleHorizontal:0.3,$ScaleVertical:0.6,$Opacity:2,$Round:{$Left:1.5}', 'label' => 'Jump'),
73
+
74
+ array('value' => '$Clip:3,$Opacity:1.7,$During:{$Clip:[0.5,0.5],$Opacity:[0,0.5]}', 'label' => 'Clip LR|Fade'),
75
+
76
+ array('value' => '$Rotate:-1,$FlyDirection:10,$Easing:$JssorEasing$.$EaseLinear,$ScaleHorizontal:0.5,$ScaleVertical:0.5,$Opacity:2,$During:{$Left:[0.67,0.33],$Top:[0,0.33],$Rotate:[0,0.33]},$Round:{$Rotate:0.25}', 'label' => 'Move OUT R|B')
77
+ );
78
+ }
79
+ }
app/code/community/Vsourz/Layerslider/Model/Source/Chancetoshow.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Model_Source_Chancetoshow
3
+ {
4
+ public function toOptionArray()
5
+ {
6
+ return array(
7
+ array('value' => '0', 'label' => 'Never'),
8
+ array('value' => '1', 'label' => 'On Mouse Over'),
9
+ array('value' => '2', 'label' => 'Always'),
10
+ );
11
+ }
12
+ }
app/code/community/Vsourz/Layerslider/Model/Source/Dragorientation.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Model_Source_Dragorientation
3
+ {
4
+ public function toOptionArray()
5
+ {
6
+ return array(
7
+ array('value' => '0', 'label' => 'No Drag'),
8
+ array('value' => '1', 'label' => 'Horizontal'),
9
+ array('value' => '2', 'label' => 'Vertical'),
10
+ array('value' => '3', 'label' => 'Either'),
11
+ );
12
+ }
13
+ }
app/code/community/Vsourz/Layerslider/Model/Source/Pauseonhover.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Model_Source_Pauseonhover
3
+ {
4
+ public function toOptionArray()
5
+ {
6
+ return array(
7
+ array('value' => '0', 'label' => 'No Pause'),
8
+ array('value' => '1', 'label' => 'Pause For Desktop'),
9
+ array('value' => '2', 'label' => 'Pause For Touch Device'),
10
+ array('value' => '3', 'label' => 'Pause for Both'),
11
+ );
12
+ }
13
+ }
app/code/community/Vsourz/Layerslider/Model/Source/Playmode.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Model_Source_Playmode
3
+ {
4
+ public function toOptionArray()
5
+ {
6
+ return array(
7
+ array('value' => '0', 'label' => 'No Play'),
8
+ array('value' => '1', 'label' => 'Chain'),
9
+ array('value' => '3', 'label' => 'Chain Flatten'),
10
+ );
11
+ }
12
+ }
app/code/community/Vsourz/Layerslider/Model/Source/Playorientation.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Model_Source_Playorientation
3
+ {
4
+ public function toOptionArray()
5
+ {
6
+ return array(
7
+ array('value' => '1', 'label' => 'Horizontal'),
8
+ array('value' => '2', 'label' => 'Vertical'),
9
+ array('value' => '5', 'label' => 'Horizontal Reverse'),
10
+ array('value' => '6', 'label' => 'Vertical Reverse'),
11
+ );
12
+ }
13
+ }
app/code/community/Vsourz/Layerslider/Model/Source/Slideeffects.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_layerslider_Model_Source_Slideeffects
3
+ {
4
+ public function toOptionArray()
5
+ {
6
+ return array(
7
+ array('value' => 'random', 'label' => 'Random'),
8
+ array('value' => '$Duration:1200,$Opacity:2', 'label' => 'Fade'),
9
+
10
+ array('value' => '$Duration:500,$FlyDirection:4,$Easing:$JssorEasing$.$EaseInQuad', 'label' => 'Slide Down'),
11
+
12
+ array('value' => '$Duration:500,$FlyDirection:8,$Easing:$JssorEasing$.$EaseInQuad', 'label' => 'Slide Up'),
13
+
14
+ array('value' => '$Duration:400,$FlyDirection:1,$Easing:$JssorEasing$.$EaseInQuad', 'label' => 'Slide Right'),
15
+
16
+ array('value' => '$Duration:400,$FlyDirection:2,$Easing:$JssorEasing$.$EaseInQuad', 'label' => 'Slide Left'),
17
+
18
+ array('value' => '$Duration:1200,$FlyDirection:1,$Easing:{$Left:$JssorEasing$.$EaseInOutQuart,$Opacity:$JssorEasing$.$EaseLinear},$Opacity:2,$Brother:{$Duration:1200,$FlyDirection:2,$Easing:{$Left:$JssorEasing$.$EaseInOutQuart,$Opacity:$JssorEasing$.$EaseLinear},$Opacity:2}', 'label' => 'Shift LR'),
19
+
20
+ array('value' => '$Duration:1200,$FlyDirection:4,$Easing:{$Top:$JssorEasing$.$EaseInOutQuart,$Opacity:$JssorEasing$.$EaseLinear},$Opacity:2,$Brother:{$Duration:1200,$FlyDirection:8,$Easing:{$Top:$JssorEasing$.$EaseInOutQuart,$Opacity:$JssorEasing$.$EaseLinear},$Opacity:2}', 'label' => 'Shift TB'),
21
+
22
+ array('value' => '$Duration:1400,$Zoom:1.5,$FlyDirection:1,$Easing:{$Left:$JssorEasing$.$EaseInWave,$Zoom:$JssorEasing$.$EaseInSine},$ScaleHorizontal:0.25,$Opacity:2,$ZIndex:-10,$Brother:{$Duration:1400,$Zoom:1.5,$FlyDirection:2,$Easing:{$Left:$JssorEasing$.$EaseInWave,$Zoom:$JssorEasing$.$EaseInSine},$ScaleHorizontal:0.25,$Opacity:2,$ZIndex:-10}', 'label' => 'Switch'),
23
+
24
+ array('value' => '$Duration:1500,$Cols:2,$FlyDirection:1,$ChessMode:{$Column:3},$Easing:{$Left:$JssorEasing$.$EaseInOutCubic},$ScaleHorizontal:0.5,$Opacity:2,$Brother:{$Duration:1500,$Opacity:2}', 'label' => 'Doors'),
25
+
26
+ array('value' => '$Duration:600,$Delay:50,$Cols:8,$Rows:4,$SlideOut:true,$FlyDirection:2,$Formation:$JssorSlideshowFormations$.$FormationZigZag,$Assembly:513,$Easing:{$Left:$JssorEasing$.$EaseInCubic,$Opacity:$JssorEasing$.$EaseOutQuad},$Opacity:2', 'label' => 'Float Right Zing Zag'),
27
+
28
+
29
+ array('value' => '$Duration:1000,$Cols:12,$FlyDirection:8,$Formation:$JssorSlideshowFormations$.$FormationStraight,$ChessMode:{$Column:12}', 'label' => 'Vertical Chess Stripe'),
30
+
31
+
32
+ array('value' => '$Duration:1200,$Cols:8,$Rows:4,$Clip:15,$During:{$Top:[0.5,0.5],$Clip:[0,0.5]},$FlyDirection:8,$Formation:$JssorSlideshowFormations$.$FormationStraight,$ChessMode:{$Column:12},$ScaleClip:0.5', 'label' => 'Clip & Ches In'),
33
+
34
+ array('value' => '$Duration:1200,$Cols:8,$Rows:4,$Clip:15,$During:{$Top:[0.5,0.5],$Clip:[0,0.5]},$SlideOut:true,$FlyDirection:8,$Formation:$JssorSlideshowFormations$.$FormationStraight,$ChessMode:{$Column:12},$ScaleClip:0.5', 'label' => 'Clip & Ches Out'),
35
+
36
+ array('value' => '$Duration:500,$Delay:50,$Cols:12,$FlyDirection:9,$Formation:$JssorSlideshowFormations$.$FormationStraightStairs,$Assembly:260,$Easing:{$Left:$JssorEasing$.$EaseLinear,$Top:$JssorEasing$.$EaseOutWave,$Opacity:$JssorEasing$.$EaseLinear},$ScaleHorizontal:0.2,$ScaleVertical:0.1,$Opacity:2,$Round:{$Top:2}', 'label' => 'Fluter Inside in Column'),
37
+
38
+ array('value' => '$Duration:800,$Delay:30,$Cols:12,$SlideOut:true,$FlyDirection:2,$Formation:$JssorSlideshowFormations$.$FormationStraight,$Assembly:260,$Easing:{$Left:$JssorEasing$.$EaseInOutExpo,$Opacity:$JssorEasing$.$EaseInOutQuad},$ScaleHorizontal:0.2,$Opacity:2,$Outside:true,$Round:{$Top:0.5}', 'label' => 'Extrude Out Stripe'),
39
+
40
+
41
+ array('value' => '$Duration:800,$Delay:20,$Cols:10,$FlyDirection:1,$Formation:$JssorSlideshowFormations$.$FormationStraight,$Easing:{$Left:$JssorEasing$.$EaseInOutQuart,$Opacity:$JssorEasing$.$EaseLinear},$Opacity:2,$ZIndex:-10,$Brother:{$Duration:1200,$Delay:40,$Cols:10,$FlyDirection:1,$Formation:$JssorSlideshowFormations$.$FormationStraight,$Easing:{$Top:$JssorEasing$.$EaseInOutQuart,$Opacity:$JssorEasing$.$EaseLinear},$Opacity:2,$ZIndex:-10,$Shift:-100}', 'label' => 'Return LR'),
42
+
43
+ array('value' => '$Duration:1600,$Rows:2,$FlyDirection:1,$ChessMode:{$Row:3},$Easing:{$Left:$JssorEasing$.$EaseInOutQuart,$Opacity:$JssorEasing$.$EaseLinear},$Opacity:2,$Brother:{$Duration:1600,$Rows:2,$FlyDirection:2,$ChessMode:{$Row:3},$Easing:{$Left:$JssorEasing$.$EaseInOutQuart,$Opacity:$JssorEasing$.$EaseLinear},$Opacity:2}', 'label' => 'Chess Replace TB'),
44
+
45
+ array('value' => '$Duration:1600,$Cols:2,$FlyDirection:8,$ChessMode:{$Column:12},$Easing:{$Top:$JssorEasing$.$EaseInOutQuart,$Opacity:$JssorEasing$.$EaseLinear},$Opacity:2,$Brother:{$Duration:1600,$Cols:2,$FlyDirection:4,$ChessMode:{$Column:12},$Easing:{$Top:$JssorEasing$.$EaseInOutQuart,$Opacity:$JssorEasing$.$EaseLinear},$Opacity:2}', 'label' => 'Chess Replace LR'),
46
+
47
+ array('value' => '$Duration:1000,$Delay:30,$Cols:8,$Rows:4,$Clip:15,$SlideOut:true,$Formation:$JssorSlideshowFormations$.$FormationStraightStairs,$Assembly:2049,$Easing:$JssorEasing$.$EaseOutQuad', 'label' => 'Collapse Stairs'),
48
+
49
+ array('value' => '$Duration:800,$Delay:300,$Cols:8,$Rows:4,$Clip:15,$SlideOut:true,$Formation:$JssorSlideshowFormations$.$FormationSquare,$Easing:$JssorEasing$.$EaseOutQuad', 'label' => 'Collapse Square'),
50
+
51
+ array('value' => '$Duration:1000,$Delay:30,$Cols:8,$Rows:4,$Clip:15,$Formation:$JssorSlideshowFormations$.$FormationStraightStairs,$Assembly:2050,$Easing:$JssorEasing$.$EaseInQuad', 'label' => 'Expand Stairs'),
52
+
53
+ array('value' => '$Duration:1000,$Rows:4,$Clip:4', 'label' => 'Horizontal Stripe'),
54
+
55
+ array('value' => '$Duration:1000,$Cols:8,$Clip:1', 'label' => 'Vertical Stripe'),
56
+
57
+ array('value' => '$Duration:600,$Delay:50,$Cols:8,$Rows:4,$FlyDirection:6,$Formation:$JssorSlideshowFormations$.$FormationSwirl,$Assembly:264,$Easing:{$Top:$JssorEasing$.$EaseInQuart,$Opacity:$JssorEasing$.$EaseLinear},$Opacity:2', 'label' => 'Parabola Swirl in'),
58
+
59
+ array('value' => '$Duration:600,$Delay:30,$Cols:8,$Rows:4,$FlyDirection:6,$Formation:$JssorSlideshowFormations$.$FormationStraightStairs,$Easing:{$Left:$JssorEasing$.$EaseInQuart,$Top:$JssorEasing$.$EaseInQuart,$Opacity:$JssorEasing$.$EaseLinear},$Opacity:2', 'label' => 'Parabola Stairs in'),
60
+
61
+
62
+
63
+ );
64
+ }
65
+ }
app/code/community/Vsourz/Layerslider/Model/Source/Transitionorder.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Model_Source_Transitionorder
3
+ {
4
+ public function toOptionArray()
5
+ {
6
+ return array(
7
+ array('value' => '0', 'label' => 'Random'),
8
+ array('value' => '1', 'label' => 'Sequence'),
9
+ );
10
+ }
11
+ }
app/code/community/Vsourz/Layerslider/Model/Source/Truefalse.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Model_Source_Truefalse
3
+ {
4
+ public function toOptionArray()
5
+ {
6
+ return array(
7
+ array('value' => 'true', 'label' => 'True'),
8
+ array('value' => 'false', 'label' => 'False'),
9
+ );
10
+ }
11
+ }
app/code/community/Vsourz/Layerslider/controllers/Adminhtml/LayersliderController.php ADDED
@@ -0,0 +1,223 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Vsourz_Layerslider_Adminhtml_LayersliderController extends Mage_Adminhtml_Controller_action {
3
+ protected function _initAction(){
4
+ $this->loadLayout()->_setActiveMenu('layerslider/layerslider')->_addBreadcrumb(
5
+ Mage::helper('adminhtml')->__('Layer Slider'),
6
+ Mage::helper('adminhtml')->__('Slide Manager')
7
+ );
8
+ return $this;
9
+ }
10
+ public function indexAction(){
11
+ $this->_initAction()->renderLayout();
12
+ }
13
+ public function newAction(){
14
+ $this->loadLayout();
15
+ $this->_addContent($this->getLayout()->createBlock('layerslider/adminhtml_layerslider_edit'))->_addLeft($this->getLayout()->createBlock('layerslider/adminhtml_layerslider_edit_tabs'));
16
+ $this->renderLayout();
17
+ }
18
+ public function saveAction(){
19
+ if ($data = $this->getRequest()->getPost()){
20
+ // Below _filterDateTime is needed to filter dates in Magento
21
+ $data = $this->_filterDateTime($data, array('active_from', 'active_to'));
22
+ $model = Mage::getModel('layerslider/layerslider');
23
+ $id = $this->getRequest()->getParam('id');
24
+ foreach ($data as $key => $value){
25
+ if (is_array($value)){
26
+ $data[$key] = implode(',',$this->getRequest()->getParam($key));
27
+ }
28
+ }
29
+ if($id){
30
+ $model->load($id);
31
+ }
32
+ //Code to Save Main Banner Image
33
+ if(isset($_FILES['slide_img']['name']) and (file_exists($_FILES['slide_img']['tmp_name']))) {
34
+ try{
35
+ $uploader = new Varien_File_Uploader('slide_img');
36
+ $uploader->setAllowedExtensions(array('jpg','jpeg','gif','png')); // or pdf or anything
37
+ $uploader->setAllowRenameFiles(false);
38
+ // setAllowRenameFiles(true) -> move your file in a folder the magento way
39
+ $uploader->setFilesDispersion(false);
40
+ $path = Mage::getBaseDir('media') . DS .'layerslider';
41
+ $imgName = explode('.',$_FILES['slide_img']['name']);
42
+ $imgName[0] = $imgName[0].'-'.'slide-img'.'-'.date('Y-m-d H-i-s');
43
+ $imgName = implode('.',$imgName);
44
+ $imgName = preg_replace('/\s+/', '-', $imgName);
45
+ $uploader->save($path, $imgName);
46
+ $data['slide_img'] = 'layerslider'.DS.$imgName;
47
+ }catch(Exception $e){
48
+
49
+ }
50
+ }
51
+ else {
52
+ if(isset($data['slide_img']['delete']) && $data['slide_img']['delete'] == 1){
53
+ // delete image file
54
+ $image = explode(',',$data['slide_img']);
55
+ unlink(Mage::getBaseDir('media').DS.$image[1]);
56
+ // set db blank entry
57
+ $data['slide_img'] = '';
58
+ }else{
59
+ unset($data['slide_img']);
60
+ }
61
+ }
62
+
63
+ //Caption Image 1
64
+ if(isset($_FILES['slide_captionimg1']['name']) and (file_exists($_FILES['slide_captionimg1']['tmp_name']))) {
65
+ try{
66
+ $uploader = new Varien_File_Uploader('slide_captionimg1');
67
+ $uploader->setAllowedExtensions(array('jpg','jpeg','gif','png')); // or pdf or anything
68
+ $uploader->setAllowRenameFiles(false);
69
+ // setAllowRenameFiles(true) -> move your file in a folder the magento way
70
+ $uploader->setFilesDispersion(false);
71
+ $path = Mage::getBaseDir('media') . DS .'layerslider';
72
+ $imgName = explode('.',$_FILES['slide_captionimg1']['name']);
73
+ $imgName[0] = $imgName[0].'-'.'slide_captionimg1-img'.'-'.date('Y-m-d H-i-s');
74
+ $imgName = implode('.',$imgName);
75
+ $imgName = preg_replace('/\s+/', '-', $imgName);
76
+ $uploader->save($path, $imgName);
77
+ $data['slide_captionimg1'] = 'layerslider'.DS.$imgName;
78
+ }catch(Exception $e){
79
+
80
+ }
81
+ }
82
+ else {
83
+ if(isset($data['slide_captionimg1']['delete']) && $data['slide_captionimg1']['delete'] == 1){
84
+ // delete image file
85
+ $imagecap1 = explode(',',$data['slide_captionimg1']);
86
+ unlink(Mage::getBaseDir('media').DS.$imagecap1[1]);
87
+ // set db blank entry
88
+ $data['slide_captionimg1'] = '';
89
+ }else{
90
+ unset($data['slide_captionimg1']);
91
+ }
92
+ }
93
+
94
+ //Caption Image 2
95
+ if(isset($_FILES['slide_captionimg2']['name']) and (file_exists($_FILES['slide_captionimg2']['tmp_name']))) {
96
+ try{
97
+ $uploader = new Varien_File_Uploader('slide_captionimg2');
98
+ $uploader->setAllowedExtensions(array('jpg','jpeg','gif','png')); // or pdf or anything
99
+ $uploader->setAllowRenameFiles(false);
100
+ // setAllowRenameFiles(true) -> move your file in a folder the magento way
101
+ $uploader->setFilesDispersion(false);
102
+ $path = Mage::getBaseDir('media') . DS .'layerslider';
103
+ $imgName = explode('.',$_FILES['slide_captionimg2']['name']);
104
+ $imgName[0] = $imgName[0].'-'.'slide_captionimg2'.'-'.date('Y-m-d H-i-s');
105
+ $imgName = implode('.',$imgName);
106
+ $imgName = preg_replace('/\s+/', '-', $imgName);
107
+ $uploader->save($path, $imgName);
108
+ $data['slide_captionimg2'] = 'layerslider'.DS.$imgName;
109
+ }catch(Exception $e){
110
+
111
+ }
112
+ }
113
+ else {
114
+ if(isset($data['slide_captionimg2']['delete']) && $data['slide_captionimg2']['delete'] == 1){
115
+ // delete image file
116
+ $imagecap2 = explode(',',$data['slide_captionimg2']);
117
+ unlink(Mage::getBaseDir('media').DS.$imagecap2[1]);
118
+ // set db blank entry
119
+ $data['slide_captionimg2'] = '';
120
+ }else{
121
+ unset($data['slide_captionimg2']);
122
+ }
123
+ }
124
+
125
+ $model->setData($data);
126
+ Mage::getSingleton('adminhtml/session')->setFormData($data);
127
+ try{
128
+ if ($id){
129
+ $model->setId($id);
130
+ }
131
+ $model->save();
132
+ if (!$model->getId()){
133
+ Mage::throwException(Mage::helper('layerslider')->__('Error saving slide details'));
134
+ }
135
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('layerslider')->__('Details was successfully saved.'));
136
+ Mage::getSingleton('adminhtml/session')->setFormData(false);
137
+
138
+ // The following line decides if it is a "save" or "save and continue"
139
+ if ($this->getRequest()->getParam('back')) {
140
+ $this->_redirect('*/*/edit', array('id' => $model->getId()));
141
+ }else{
142
+ $this->_redirect('*/*/');
143
+ }
144
+ }catch(Exception $e){
145
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
146
+ if ($model && $model->getId()) {
147
+ $this->_redirect('*/*/edit', array('id' => $model->getId()));
148
+ } else {
149
+ $this->_redirect('*/*/');
150
+ }
151
+ }
152
+ return;
153
+ }
154
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('layerslider')->__('No data found to save'));
155
+ $this->_redirect('*/*/');
156
+ }
157
+ public function editAction(){
158
+ $id = $this->getRequest()->getParam('id', null);
159
+ $model = Mage::getModel('layerslider/layerslider');
160
+ if($id){
161
+ $model->load((int)$id);
162
+ if($model->getId()){
163
+ $data = Mage::getSingleton('adminhtml/session')->getFormData(true);
164
+ if($data){
165
+ $model->setData($data)->setId($id);
166
+ }
167
+ }else{
168
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('layerslider')->__('slide does not exist'));
169
+ $this->_redirect('*/*/');
170
+ }
171
+ }
172
+ Mage::register('layerslider_data', $model);
173
+ $this->_title($this->__('Layerslider'))->_title($this->__('Edit Slide'));
174
+ $this->loadLayout();
175
+ $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
176
+ $this->_addContent($this->getLayout()->createBlock('layerslider/adminhtml_layerslider_edit'))
177
+ ->_addLeft($this->getLayout()->createBlock('layerslider/adminhtml_layerslider_edit_tabs'));
178
+ $this->renderLayout();
179
+ }
180
+ public function deleteAction(){
181
+ if ($this->getRequest()->getParam('id') > 0) {
182
+ try{
183
+ $model = Mage::getModel('layerslider/layerslider');
184
+ $id = $this->getRequest()->getParam('id');
185
+ $objModel = $model->load($id);
186
+ $path = Mage::getBaseDir('media');
187
+ unlink($path.DS.$objModel->SlideImg);
188
+ unlink($path.DS.$objModel->SlideCaptionimg1);
189
+ unlink($path.DS.$objModel->SlideCaptionimg2);
190
+ $model->setId($id)->delete();
191
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully deleted'));
192
+ $this->_redirect('*/*/');
193
+ }catch (Exception $e) {
194
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
195
+ $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
196
+ }
197
+ }
198
+ $this->_redirect('*/*/');
199
+ }
200
+ public function massDeleteAction(){
201
+ // Here the id is got from the function _prepareMassAction in Grid.php. ($this->getMassactionBlock()->setFormFieldName('id');)
202
+ $ids = $this->getRequest()->getParam('id');
203
+ if(!is_array($ids)) {
204
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('layerslider')->__('Please select slide(s).'));
205
+ }else{
206
+ try{
207
+ $slideModel = Mage::getModel('layerslider/layerslider');
208
+ foreach($ids as $id){
209
+ $objModel = $slideModel->load($id);
210
+ $path = Mage::getBaseDir('media');
211
+ unlink($path.DS.$objModel->SlideImg);
212
+ unlink($path.DS.$objModel->SlideCaptionimg1);
213
+ unlink($path.DS.$objModel->SlideCaptionimg2);
214
+ $objModel->delete();
215
+ }
216
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('layerslider')->__('Total of %d record(s) were deleted.', count($taxIds)));
217
+ }catch(Exception $e){
218
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
219
+ }
220
+ }
221
+ $this->_redirect('*/*/index');
222
+ }
223
+ }
app/code/community/Vsourz/Layerslider/data/layerslider_setup/data-install-0.1.0.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $slider = array(
3
+ array(
4
+ 'slide_title' => 'Slide 1',
5
+ 'slide_url' => '',
6
+ 'slide_img' => 'layerslider/Slide1-slide-img-2015-04-07-09-19-09.jpg',
7
+ 'slide_captionimg1' => 'layerslider/thumb4-slide_captionimg1-img-2015-04-07-10-03-10.png',
8
+ 'slide_caption1' => 'Lorem ipsum dolor sit amet',
9
+ 'slide_caption2' => 'Consectetuer adipiscing elit. ',
10
+ 'slide_caption3' => 'Duis lobortis.',
11
+ 'slide_caption4' => 'Nulla nec velit.',
12
+ 'status' => '1'
13
+ ),
14
+ array(
15
+ 'slide_title' => 'Slide 2',
16
+ 'slide_url' => '',
17
+ 'slide_img' => 'layerslider/Slide2-slide-img-2015-04-07-09-19-38.jpg',
18
+ 'slide_captionimg1' => 'layerslider/thumb2-slide_captionimg1-img-2015-04-07-06-23-47.png',
19
+ 'slide_caption1' => 'Proin gravida nibh vel velit auctor aliquet.',
20
+ 'slide_caption2' => 'Duis sed odio sit amet nibh',
21
+ 'slide_caption3' => 'Mauris in erat justo.',
22
+ 'slide_caption4' => 'Nullam ac urna eu felis dapibus',
23
+ 'status' => '1'
24
+ ),
25
+ array(
26
+ 'slide_title' => 'Slide 3',
27
+ 'slide_url' => '',
28
+ 'slide_img' => 'layerslider/Slide3-slide-img-2015-04-07-09-19-57.jpg',
29
+ 'slide_captionimg1' => 'layerslider/thumb1-slide_captionimg1-img-2015-04-07-06-28-35.png',
30
+ 'slide_caption1' => 'Mauris pulvinar erat non massa.',
31
+ 'slide_caption2' => 'Suspendisse tortor turpis.',
32
+ 'slide_caption3' => 'Mauris pulvinar erat non massa.',
33
+ 'slide_caption4' => 'Morbi luctus. Duis lobortis.',
34
+ 'status' => '1'
35
+ )
36
+ );
37
+ foreach ($slider as $slides){
38
+ Mage::getModel('layerslider/layerslider')->setData($slides)->save();
39
+ }
40
+
app/code/community/Vsourz/Layerslider/etc/adminhtml.xml ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <menu>
4
+ <layerslider module="layerslider">
5
+ <title>Layer Slider</title>
6
+ <sort_order>90</sort_order>
7
+ <children>
8
+ <items module="layerslider">
9
+ <title>Manage Slides</title>
10
+ <action>layerslider/adminhtml_layerslider</action>
11
+ </items>
12
+ </children>
13
+ </layerslider>
14
+ </menu>
15
+ <acl>
16
+ <resources>
17
+ <all>
18
+ <title>Allow Everything</title>
19
+ </all>
20
+ <admin>
21
+ <children>
22
+ <vsourz_layerslider>
23
+ <title>Layer Slider</title>
24
+ <sort_order>6</sort_order>
25
+ </vsourz_layerslider>
26
+ <system>
27
+ <children>
28
+ <config>
29
+ <children>
30
+ <layerslider translate="title" module="layerslider">
31
+ <title>Layerslider</title>
32
+ <sort_order>10</sort_order>
33
+ </layerslider>
34
+ </children>
35
+ </config>
36
+ </children>
37
+ </system>
38
+ </children>
39
+ </admin>
40
+ </resources>
41
+ </acl>
42
+ </config>
app/code/community/Vsourz/Layerslider/etc/config.xml ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Vsourz_Layerslider>
5
+ <version>0.1.0</version>
6
+ </Vsourz_Layerslider>
7
+ </modules>
8
+ <frontend>
9
+ <routers>
10
+ <layerslider>
11
+ <use>standard</use>
12
+ <args>
13
+ <module>Vsourz_Layerslider</module>
14
+ <frontName>layerslider</frontName>
15
+ </args>
16
+ </layerslider>
17
+ </routers>
18
+ <layout>
19
+ <updates>
20
+ <layerslider>
21
+ <file>layerslider.xml</file>
22
+ </layerslider>
23
+ </updates>
24
+ </layout>
25
+ </frontend>
26
+ <admin>
27
+ <routers>
28
+ <layerslider>
29
+ <use>admin</use>
30
+ <args>
31
+ <module>Vsourz_Layerslider</module>
32
+ <frontName>layerslider</frontName>
33
+ </args>
34
+ </layerslider>
35
+ </routers>
36
+ </admin>
37
+ <adminhtml>
38
+ <layout>
39
+ <updates>
40
+ <layerslider>
41
+ <file>layerslider.xml</file>
42
+ </layerslider>
43
+ </updates>
44
+ </layout>
45
+ <events>
46
+ <admin_system_config_changed_section_layerslider>
47
+ <observers>
48
+ <writecss>
49
+ <type>singleton</type>
50
+ <class>layerslider/observer</class>
51
+ <method>writeToFileOnConfigSave</method>
52
+ </writecss>
53
+ </observers>
54
+ </admin_system_config_changed_section_layerslider>
55
+ <controller_action_predispatch>
56
+ <observers>
57
+ <savefileconfig>
58
+ <type>singleton</type>
59
+ <class>layerslider/observer</class>
60
+ <method>saveConfigOnConfigLoad</method>
61
+ </savefileconfig>
62
+ </observers>
63
+ </controller_action_predispatch>
64
+ </events>
65
+ </adminhtml>
66
+ <global>
67
+ <helpers>
68
+ <layerslider>
69
+ <class>Vsourz_Layerslider_Helper</class>
70
+ </layerslider>
71
+ </helpers>
72
+ <blocks>
73
+ <layerslider>
74
+ <class>Vsourz_Layerslider_Block</class>
75
+ </layerslider>
76
+ </blocks>
77
+ <models>
78
+ <layerslider>
79
+ <class>Vsourz_Layerslider_Model</class>
80
+ <resourceModel>layerslider_resource</resourceModel>
81
+ </layerslider>
82
+ <layerslider_resource>
83
+ <class>Vsourz_Layerslider_Model_Resource</class>
84
+ <entities>
85
+ <layerslider>
86
+ <table>layerslider</table>
87
+ </layerslider>
88
+ </entities>
89
+ </layerslider_resource>
90
+ </models>
91
+ <resources>
92
+ <layerslider_setup>
93
+ <setup>
94
+ <module>Vsourz_Layerslider</module>
95
+ </setup>
96
+ <connection>
97
+ <use>core_setup</use>
98
+ </connection>
99
+ </layerslider_setup>
100
+ <layerslider_write>
101
+ <connection>
102
+ <use>core_write</use>
103
+ </connection>
104
+ </layerslider_write>
105
+ <layerslider_read>
106
+ <connection>
107
+ <use>core_read</use>
108
+ </connection>
109
+ </layerslider_read>
110
+ </resources>
111
+ </global>
112
+ <default>
113
+ <layerslider>
114
+ <settings>
115
+ <loadjs>0</loadjs>
116
+ <slidelinkurl>1</slidelinkurl>
117
+ <autoplay>true</autoplay>
118
+ <autoplayinterval>500</autoplayinterval>
119
+ <pauseonhover>3</pauseonhover>
120
+ <arrowkeynav>true</arrowkeynav>
121
+ <slideduration>500</slideduration>
122
+ <mindragoffset>20</mindragoffset>
123
+ <playorientation>1</playorientation>
124
+ <dragorientation>3</dragorientation>
125
+ <arrownavigation>2</arrownavigation>
126
+ <arrowautocenter>2</arrowautocenter>
127
+ <bulletnavigation>2</bulletnavigation>
128
+ <bulletautocenter>1</bulletautocenter>
129
+ <bulletnumber>0</bulletnumber>
130
+ </settings>
131
+ <slidesettings>
132
+ <slideeffects>random</slideeffects>
133
+ <slideheight>530</slideheight>
134
+ <slidewidth>1500</slidewidth>
135
+ <transitionorder>1</transitionorder>
136
+ </slidesettings>
137
+ <captionsettings>
138
+ <playinmode>1</playinmode>
139
+ <playoutmode>3</playoutmode>
140
+ <caption1>1</caption1>
141
+ <captionduration1>500</captionduration1>
142
+ <captioneffect1>$Clip:3,$FlyDirection:8,$Easing:$JssorEasing$.$EaseInCubic,$ScaleVertical:0.6,$Opacity:2</captioneffect1>
143
+ <caption2>1</caption2>
144
+ <captionduration2>500</captionduration2>
145
+ <captioneffect2>$Zoom:1,$Easing:$JssorEasing$.$EaseInCubic,$Opacity:2</captioneffect2>
146
+ <caption3>1</caption3>
147
+ <captionduration3>500</captionduration3>
148
+ <captioneffect3>$Duration:1400,$Zoom:1.5,$FlyDirection:1,$Easing:{$Left:$JssorEasing$.$EaseInWave,$Zoom:$JssorEasing$.$EaseInSine},$ScaleHorizontal:0.25,$Opacity:2,$ZIndex:-10,$Brother:{$Duration:1400,$Zoom:1.5,$FlyDirection:2,$Easing:{$Left:$JssorEasing$.$EaseInWave,$Zoom:$JssorEasing$.$EaseInSine},$ScaleHorizontal:0.25,$Opacity:2,$ZIndex:-10}</captioneffect3>
149
+ <caption4>1</caption4>
150
+ <captionduration4>500</captionduration4>
151
+ <captioneffect4>$Clip:3,$FlyDirection:8,$Easing:$JssorEasing$.$EaseInCubic,$ScaleVertical:0.6,$Opacity:2</captioneffect4>
152
+ <caption5>0</caption5>
153
+ <captionduration5>500</captionduration5>
154
+ <captioneffect5>l</captioneffect5>
155
+ <captionimg1>1</captionimg1>
156
+ <captionimgduration1>500</captionimgduration1>
157
+ <captionimgeffect1>$Zoom:1,$Easing:$JssorEasing$.$EaseInCubic,$Opacity:2</captionimgeffect1>
158
+ <captionimg2>1</captionimg2>
159
+ <captionimgduration2>500</captionimgduration2>
160
+ <captionimgeffect2>$Zoom:1,$Easing:$JssorEasing$.$EaseInCubic,$Opacity:2</captionimgeffect2>
161
+ </captionsettings>
162
+ <files>
163
+ <packagename>base/default</packagename>
164
+ </files>
165
+ </layerslider>
166
+ </default>
167
+ </config>
app/code/community/Vsourz/Layerslider/etc/system.xml ADDED
@@ -0,0 +1,547 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <tabs>
4
+ <layerslider translate="label">
5
+ <label>Vsourz Layer Slider</label>
6
+ <sort_order>155</sort_order>
7
+ </layerslider>
8
+ </tabs>
9
+ <sections>
10
+ <layerslider translate="label">
11
+ <label>Layer Slider</label>
12
+ <tab>layerslider</tab>
13
+ <frontend_type>text</frontend_type>
14
+ <sort_order>1000</sort_order>
15
+ <show_in_default>1</show_in_default>
16
+ <show_in_website>1</show_in_website>
17
+ <show_in_store>1</show_in_store>
18
+ <groups>
19
+ <settings translate="label">
20
+ <label>General Settings</label>
21
+ <frontend_type>text</frontend_type>
22
+ <sort_order>10</sort_order>
23
+ <show_in_default>1</show_in_default>
24
+ <show_in_website>1</show_in_website>
25
+ <show_in_store>1</show_in_store>
26
+ <fields>
27
+ <loadjs translate="label">
28
+ <label>Load JQuery Library</label>
29
+ <comment><![CDATA[Select YES if JQuery library in not included in your Magento Project]]></comment>
30
+ <frontend_type>select</frontend_type>
31
+ <source_model>adminhtml/system_config_source_yesno</source_model>
32
+ <sort_order>10</sort_order>
33
+ <show_in_default>1</show_in_default>
34
+ <show_in_website>1</show_in_website>
35
+ <show_in_store>1</show_in_store>
36
+ </loadjs>
37
+ <slidelinkurl translate="label">
38
+ <label>Enable Slide Link</label>
39
+ <comment><![CDATA[If YES it enables link on whole slide]]></comment>
40
+ <frontend_type>select</frontend_type>
41
+ <source_model>adminhtml/system_config_source_yesno</source_model>
42
+ <sort_order>12</sort_order>
43
+ <show_in_default>1</show_in_default>
44
+ <show_in_website>1</show_in_website>
45
+ <show_in_store>1</show_in_store>
46
+ </slidelinkurl>
47
+ <autoplay translate="label">
48
+ <label>Auto Play</label>
49
+ <comment><![CDATA[Enables and disables the autoplay option]]></comment>
50
+ <frontend_type>select</frontend_type>
51
+ <source_model>layerslider/source_truefalse</source_model>
52
+ <sort_order>15</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
+ </autoplay>
57
+ <autoplayinterval translate="label">
58
+ <label>Autoplay Interval</label>
59
+ <comment><![CDATA[Time between two slides in milliseconds]]></comment>
60
+ <frontend_type>text</frontend_type>
61
+ <sort_order>20</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
+ <depends>
66
+ <autoplay>true</autoplay>
67
+ </depends>
68
+ </autoplayinterval>
69
+ <pauseonhover translate="label">
70
+ <label>Pause on Hover</label>
71
+ <comment><![CDATA[Pause autoplay when hovered]]></comment>
72
+ <source_model>layerslider/source_pauseonhover</source_model>
73
+ <frontend_type>select</frontend_type>
74
+ <sort_order>25</sort_order>
75
+ <show_in_default>1</show_in_default>
76
+ <show_in_website>1</show_in_website>
77
+ <show_in_store>1</show_in_store>
78
+ <depends>
79
+ <autoplay>true</autoplay>
80
+ </depends>
81
+ </pauseonhover>
82
+ <arrowkeynav translate="label">
83
+ <label>Arrow Key Navigation</label>
84
+ <comment><![CDATA[Allows keyboard (arrow key) navigation]]></comment>
85
+ <frontend_type>select</frontend_type>
86
+ <source_model>layerslider/source_truefalse</source_model>
87
+ <sort_order>30</sort_order>
88
+ <show_in_default>1</show_in_default>
89
+ <show_in_website>1</show_in_website>
90
+ <show_in_store>1</show_in_store>
91
+ </arrowkeynav>
92
+ <slideduration translate="label">
93
+ <label>Slide Duration</label>
94
+ <comment><![CDATA[Time between two slides in milliseconds when clicking on navigation arrow]]></comment>
95
+ <frontend_type>text</frontend_type>
96
+ <sort_order>35</sort_order>
97
+ <show_in_default>1</show_in_default>
98
+ <show_in_website>1</show_in_website>
99
+ <show_in_store>1</show_in_store>
100
+ </slideduration>
101
+ <mindragoffset translate="label">
102
+ <label>Minimum Drag Offset</label>
103
+ <comment><![CDATA[Minimum drag offset to trigger slide. <b>Please don't leave it blank</b>]]></comment>
104
+ <frontend_type>text</frontend_type>
105
+ <sort_order>40</sort_order>
106
+ <show_in_default>1</show_in_default>
107
+ <show_in_website>1</show_in_website>
108
+ <show_in_store>1</show_in_store>
109
+ </mindragoffset>
110
+ <playorientation translate="label">
111
+ <label>Play Orientation</label>
112
+ <comment><![CDATA[Orientation to play slide]]></comment>
113
+ <frontend_type>select</frontend_type>
114
+ <source_model>layerslider/source_playorientation</source_model>
115
+ <sort_order>45</sort_order>
116
+ <show_in_default>1</show_in_default>
117
+ <show_in_website>1</show_in_website>
118
+ <show_in_store>1</show_in_store>
119
+ </playorientation>
120
+ <dragorientation translate="label">
121
+ <label>Drag Orientation</label>
122
+ <comment><![CDATA[Orientation to drag slide]]></comment>
123
+ <frontend_type>select</frontend_type>
124
+ <source_model>layerslider/source_dragorientation</source_model>
125
+ <sort_order>50</sort_order>
126
+ <show_in_default>1</show_in_default>
127
+ <show_in_website>1</show_in_website>
128
+ <show_in_store>1</show_in_store>
129
+ </dragorientation>
130
+ <arrownavigation translate="label">
131
+ <label>Arrow Navigation</label>
132
+ <comment><![CDATA[Options to specify and enable arrow navigator]]></comment>
133
+ <frontend_type>select</frontend_type>
134
+ <source_model>layerslider/source_chancetoshow</source_model>
135
+ <sort_order>55</sort_order>
136
+ <show_in_default>1</show_in_default>
137
+ <show_in_website>1</show_in_website>
138
+ <show_in_store>1</show_in_store>
139
+ </arrownavigation>
140
+ <arrowautocenter translate="label">
141
+ <label>Arrow Autocenter</label>
142
+ <comment><![CDATA[Auto center arrows in parent container]]></comment>
143
+ <frontend_type>select</frontend_type>
144
+ <source_model>layerslider/source_autocenter</source_model>
145
+ <sort_order>60</sort_order>
146
+ <show_in_default>1</show_in_default>
147
+ <show_in_website>1</show_in_website>
148
+ <show_in_store>1</show_in_store>
149
+ </arrowautocenter>
150
+ <bulletnavigation translate="label">
151
+ <label>Bullet Navigation</label>
152
+ <comment><![CDATA[Options to specify and enable bullet navigator]]></comment>
153
+ <frontend_type>select</frontend_type>
154
+ <source_model>layerslider/source_chancetoshow</source_model>
155
+ <sort_order>60</sort_order>
156
+ <show_in_default>1</show_in_default>
157
+ <show_in_website>1</show_in_website>
158
+ <show_in_store>1</show_in_store>
159
+ </bulletnavigation>
160
+ <bulletautocenter translate="label">
161
+ <label>Bullet Autocenter</label>
162
+ <comment><![CDATA[Auto center arrows in parent container]]></comment>
163
+ <frontend_type>select</frontend_type>
164
+ <source_model>layerslider/source_autocenter</source_model>
165
+ <sort_order>65</sort_order>
166
+ <show_in_default>1</show_in_default>
167
+ <show_in_website>1</show_in_website>
168
+ <show_in_store>1</show_in_store>
169
+ </bulletautocenter>
170
+ <bulletnumber translate="label">
171
+ <label>Show Bullet Number</label>
172
+ <comment><![CDATA[Shows Bullet Number if enabled]]></comment>
173
+ <frontend_type>select</frontend_type>
174
+ <source_model>adminhtml/system_config_source_yesno</source_model>
175
+ <sort_order>70</sort_order>
176
+ <show_in_default>1</show_in_default>
177
+ <show_in_website>1</show_in_website>
178
+ <show_in_store>1</show_in_store>
179
+ </bulletnumber>
180
+ </fields>
181
+ </settings>
182
+ <slidesettings translate="label">
183
+ <label>Slide Settings</label>
184
+ <frontend_type>text</frontend_type>
185
+ <sort_order>20</sort_order>
186
+ <show_in_default>1</show_in_default>
187
+ <show_in_website>1</show_in_website>
188
+ <show_in_store>1</show_in_store>
189
+ <fields>
190
+ <slideeffects translate="label">
191
+ <label>Slide Effects</label>
192
+ <comment><![CDATA[Effects to be shown during slide show]]></comment>
193
+ <frontend_type>select</frontend_type>
194
+ <source_model>layerslider/source_slideeffects</source_model>
195
+ <sort_order>10</sort_order>
196
+ <show_in_default>1</show_in_default>
197
+ <show_in_website>1</show_in_website>
198
+ <show_in_store>1</show_in_store>
199
+ </slideeffects>
200
+ <slideheight translate="label">
201
+ <label>Slide Height</label>
202
+ <comment><![CDATA[Height of Slide in px]]></comment>
203
+ <frontend_type>text</frontend_type>
204
+ <sort_order>16</sort_order>
205
+ <show_in_default>1</show_in_default>
206
+ <show_in_website>1</show_in_website>
207
+ <show_in_store>1</show_in_store>
208
+ </slideheight>
209
+ <slidewidth translate="label">
210
+ <label>Slide Width</label>
211
+ <comment><![CDATA[Width of Slide in px]]></comment>
212
+ <frontend_type>text</frontend_type>
213
+ <sort_order>17</sort_order>
214
+ <show_in_default>1</show_in_default>
215
+ <show_in_website>1</show_in_website>
216
+ <show_in_store>1</show_in_store>
217
+ </slidewidth>
218
+ <transitionorder translate="label">
219
+ <label>Transition Order</label>
220
+ <comment><![CDATA[Order in which the transition needs to be done]]></comment>
221
+ <frontend_type>select</frontend_type>
222
+ <source_model>layerslider/source_transitionorder</source_model> <sort_order>20</sort_order>
223
+ <show_in_default>1</show_in_default>
224
+ <show_in_website>1</show_in_website>
225
+ <show_in_store>1</show_in_store>
226
+ </transitionorder>
227
+ </fields>
228
+ </slidesettings>
229
+ <captionsettings translate="label">
230
+ <label>Caption Settings</label>
231
+ <frontend_type>text</frontend_type>
232
+ <sort_order>30</sort_order>
233
+ <show_in_default>1</show_in_default>
234
+ <show_in_website>1</show_in_website>
235
+ <show_in_store>1</show_in_store>
236
+ <fields>
237
+ <playinmode translate="label">
238
+ <label>Play In Mode</label>
239
+ <comment><![CDATA[Mode of caption transition]]></comment>
240
+ <frontend_type>select</frontend_type>
241
+ <source_model>layerslider/source_playmode</source_model> <sort_order>05</sort_order>
242
+ <show_in_default>1</show_in_default>
243
+ <show_in_website>1</show_in_website>
244
+ <show_in_store>1</show_in_store>
245
+ </playinmode>
246
+ <playoutmode translate="label">
247
+ <label>Play Out Mode</label>
248
+ <comment><![CDATA[Mode of caption transition]]></comment>
249
+ <frontend_type>select</frontend_type>
250
+ <source_model>layerslider/source_playmode</source_model> <sort_order>10</sort_order>
251
+ <show_in_default>1</show_in_default>
252
+ <show_in_website>1</show_in_website>
253
+ <show_in_store>1</show_in_store>
254
+ </playoutmode>
255
+ <caption1 translate="label">
256
+ <label>Enable Caption1</label>
257
+ <frontend_type>select</frontend_type>
258
+ <source_model>adminhtml/system_config_source_yesno</source_model>
259
+ <sort_order>15</sort_order>
260
+ <show_in_default>1</show_in_default>
261
+ <show_in_website>1</show_in_website>
262
+ <show_in_store>1</show_in_store>
263
+ </caption1>
264
+ <captionduration1 translate="label">
265
+ <label>Caption1 Duration</label>
266
+ <comment><![CDATA[Caption Duration in Milliseconds]]></comment>
267
+ <frontend_type>text</frontend_type>
268
+ <sort_order>16</sort_order>
269
+ <show_in_default>1</show_in_default>
270
+ <show_in_website>1</show_in_website>
271
+ <show_in_store>1</show_in_store>
272
+ <depends>
273
+ <caption1>1</caption1>
274
+ </depends>
275
+ </captionduration1>
276
+ <captioneffect1 translate="label">
277
+ <label>Caption Effect</label>
278
+ <comment><![CDATA[Caption Effect]]></comment>
279
+ <frontend_type>select</frontend_type>
280
+ <source_model>layerslider/source_captioneffect</source_model> <sort_order>17</sort_order>
281
+ <show_in_default>1</show_in_default>
282
+ <show_in_website>1</show_in_website>
283
+ <show_in_store>1</show_in_store>
284
+ <depends>
285
+ <caption1>1</caption1>
286
+ </depends>
287
+ </captioneffect1>
288
+ <caption2 translate="label">
289
+ <label>Enable Caption2</label>
290
+ <frontend_type>select</frontend_type>
291
+ <source_model>adminhtml/system_config_source_yesno</source_model>
292
+ <sort_order>20</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
+ </caption2>
297
+ <captionduration2 translate="label">
298
+ <label>Caption2 Duration</label>
299
+ <comment><![CDATA[Caption Duration in Milliseconds]]></comment>
300
+ <frontend_type>text</frontend_type>
301
+ <sort_order>21</sort_order>
302
+ <show_in_default>1</show_in_default>
303
+ <show_in_website>1</show_in_website>
304
+ <show_in_store>1</show_in_store>
305
+ <depends>
306
+ <caption2>1</caption2>
307
+ </depends>
308
+ </captionduration2>
309
+ <captioneffect2 translate="label">
310
+ <label>Caption2 Effect</label>
311
+ <comment><![CDATA[Caption Effect]]></comment>
312
+ <frontend_type>select</frontend_type>
313
+ <source_model>layerslider/source_captioneffect</source_model> <sort_order>22</sort_order>
314
+ <show_in_default>1</show_in_default>
315
+ <show_in_website>1</show_in_website>
316
+ <show_in_store>1</show_in_store>
317
+ <depends>
318
+ <caption2>1</caption2>
319
+ </depends>
320
+ </captioneffect2>
321
+ <caption3 translate="label">
322
+ <label>Enable Caption3</label>
323
+ <frontend_type>select</frontend_type>
324
+ <source_model>adminhtml/system_config_source_yesno</source_model>
325
+ <sort_order>25</sort_order>
326
+ <show_in_default>1</show_in_default>
327
+ <show_in_website>1</show_in_website>
328
+ <show_in_store>1</show_in_store>
329
+ </caption3>
330
+ <captionduration3 translate="label">
331
+ <label>Caption3 Duration</label>
332
+ <comment><![CDATA[Caption Duration in Milliseconds]]></comment>
333
+ <frontend_type>text</frontend_type>
334
+ <sort_order>26</sort_order>
335
+ <show_in_default>1</show_in_default>
336
+ <show_in_website>1</show_in_website>
337
+ <show_in_store>1</show_in_store>
338
+ <depends>
339
+ <caption3>1</caption3>
340
+ </depends>
341
+ </captionduration3>
342
+ <captioneffect3 translate="label">
343
+ <label>Caption3 Effect</label>
344
+ <comment><![CDATA[Caption Effect]]></comment>
345
+ <frontend_type>select</frontend_type>
346
+ <source_model>layerslider/source_captioneffect</source_model> <sort_order>27</sort_order>
347
+ <show_in_default>1</show_in_default>
348
+ <show_in_website>1</show_in_website>
349
+ <show_in_store>1</show_in_store>
350
+ <depends>
351
+ <caption3>1</caption3>
352
+ </depends>
353
+ </captioneffect3>
354
+ <caption4 translate="label">
355
+ <label>Enable Caption4</label>
356
+ <frontend_type>select</frontend_type>
357
+ <source_model>adminhtml/system_config_source_yesno</source_model>
358
+ <sort_order>30</sort_order>
359
+ <show_in_default>1</show_in_default>
360
+ <show_in_website>1</show_in_website>
361
+ <show_in_store>1</show_in_store>
362
+ </caption4>
363
+ <captionduration4 translate="label">
364
+ <label>Caption4 Duration</label>
365
+ <comment><![CDATA[Caption Duration in Milliseconds]]></comment>
366
+ <frontend_type>text</frontend_type>
367
+ <sort_order>31</sort_order>
368
+ <show_in_default>1</show_in_default>
369
+ <show_in_website>1</show_in_website>
370
+ <show_in_store>1</show_in_store>
371
+ <depends>
372
+ <caption4>1</caption4>
373
+ </depends>
374
+ </captionduration4>
375
+ <captioneffect4 translate="label">
376
+ <label>Caption4 Effect</label>
377
+ <comment><![CDATA[Caption Effect]]></comment>
378
+ <frontend_type>select</frontend_type>
379
+ <source_model>layerslider/source_captioneffect</source_model> <sort_order>32</sort_order>
380
+ <show_in_default>1</show_in_default>
381
+ <show_in_website>1</show_in_website>
382
+ <show_in_store>1</show_in_store>
383
+ <depends>
384
+ <caption4>1</caption4>
385
+ </depends>
386
+ </captioneffect4>
387
+ <caption5 translate="label">
388
+ <label>Enable Caption5</label>
389
+ <frontend_type>select</frontend_type>
390
+ <source_model>adminhtml/system_config_source_yesno</source_model>
391
+ <sort_order>45</sort_order>
392
+ <show_in_default>1</show_in_default>
393
+ <show_in_website>1</show_in_website>
394
+ <show_in_store>1</show_in_store>
395
+ </caption5>
396
+ <captionduration5 translate="label">
397
+ <label>Caption5 Duration</label>
398
+ <comment><![CDATA[Caption Duration in Milliseconds]]></comment>
399
+ <frontend_type>text</frontend_type>
400
+ <sort_order>46</sort_order>
401
+ <show_in_default>1</show_in_default>
402
+ <show_in_website>1</show_in_website>
403
+ <show_in_store>1</show_in_store>
404
+ <depends>
405
+ <caption5>1</caption5>
406
+ </depends>
407
+ </captionduration5>
408
+ <captioneffect5 translate="label">
409
+ <label>Caption5 Effect</label>
410
+ <comment><![CDATA[Caption Effect]]></comment>
411
+ <frontend_type>select</frontend_type>
412
+ <source_model>layerslider/source_captioneffect</source_model> <sort_order>47</sort_order>
413
+ <show_in_default>1</show_in_default>
414
+ <show_in_website>1</show_in_website>
415
+ <show_in_store>1</show_in_store>
416
+ <depends>
417
+ <caption5>1</caption5>
418
+ </depends>
419
+ </captioneffect5>
420
+ <caption5 translate="label">
421
+ <label>Enable Caption5</label>
422
+ <frontend_type>select</frontend_type>
423
+ <source_model>adminhtml/system_config_source_yesno</source_model>
424
+ <sort_order>45</sort_order>
425
+ <show_in_default>1</show_in_default>
426
+ <show_in_website>1</show_in_website>
427
+ <show_in_store>1</show_in_store>
428
+ </caption5>
429
+ <captionduration5 translate="label">
430
+ <label>Caption5 Duration</label>
431
+ <comment><![CDATA[Caption Duration in Milliseconds]]></comment>
432
+ <frontend_type>text</frontend_type>
433
+ <sort_order>46</sort_order>
434
+ <show_in_default>1</show_in_default>
435
+ <show_in_website>1</show_in_website>
436
+ <show_in_store>1</show_in_store>
437
+ <depends>
438
+ <caption5>1</caption5>
439
+ </depends>
440
+ </captionduration5>
441
+ <captioneffect5 translate="label">
442
+ <label>Caption5 Effect</label>
443
+ <comment><![CDATA[Caption Effect]]></comment>
444
+ <frontend_type>select</frontend_type>
445
+ <source_model>layerslider/source_captioneffect</source_model> <sort_order>47</sort_order>
446
+ <show_in_default>1</show_in_default>
447
+ <show_in_website>1</show_in_website>
448
+ <show_in_store>1</show_in_store>
449
+ <depends>
450
+ <caption5>1</caption5>
451
+ </depends>
452
+ </captioneffect5>
453
+ <captionimg1 translate="label">
454
+ <label>Enable Caption Image1</label>
455
+ <frontend_type>select</frontend_type>
456
+ <source_model>adminhtml/system_config_source_yesno</source_model>
457
+ <sort_order>50</sort_order>
458
+ <show_in_default>1</show_in_default>
459
+ <show_in_website>1</show_in_website>
460
+ <show_in_store>1</show_in_store>
461
+ </captionimg1>
462
+ <captionimgduration1 translate="label">
463
+ <label>CaptionImg1 Duration</label>
464
+ <comment><![CDATA[Caption Duration in Milliseconds]]></comment>
465
+ <frontend_type>text</frontend_type>
466
+ <sort_order>51</sort_order>
467
+ <show_in_default>1</show_in_default>
468
+ <show_in_website>1</show_in_website>
469
+ <show_in_store>1</show_in_store>
470
+ <depends>
471
+ <captionimg1>1</captionimg1>
472
+ </depends>
473
+ </captionimgduration1>
474
+ <captionimgeffect1 translate="label">
475
+ <label>CaptionImg1 Effect</label>
476
+ <comment><![CDATA[Caption Effect]]></comment>
477
+ <frontend_type>select</frontend_type>
478
+ <source_model>layerslider/source_captioneffect</source_model> <sort_order>52</sort_order>
479
+ <show_in_default>1</show_in_default>
480
+ <show_in_website>1</show_in_website>
481
+ <show_in_store>1</show_in_store>
482
+ <depends>
483
+ <captionimg1>1</captionimg1>
484
+ </depends>
485
+ </captionimgeffect1>
486
+ <captionimg2 translate="label">
487
+ <label>Enable Caption Image2</label>
488
+ <frontend_type>select</frontend_type>
489
+ <source_model>adminhtml/system_config_source_yesno</source_model>
490
+ <sort_order>55</sort_order>
491
+ <show_in_default>1</show_in_default>
492
+ <show_in_website>1</show_in_website>
493
+ <show_in_store>1</show_in_store>
494
+ </captionimg2>
495
+ <captionimgduration2 translate="label">
496
+ <label>CaptionImg2 Duration</label>
497
+ <comment><![CDATA[Caption Duration in Milliseconds]]></comment>
498
+ <frontend_type>text</frontend_type>
499
+ <sort_order>56</sort_order>
500
+ <show_in_default>1</show_in_default>
501
+ <show_in_website>1</show_in_website>
502
+ <show_in_store>1</show_in_store>
503
+ <depends>
504
+ <captionimg2>1</captionimg2>
505
+ </depends>
506
+ </captionimgduration2>
507
+ <captionimgeffect2 translate="label">
508
+ <label>CaptionImg2 Effect</label>
509
+ <comment><![CDATA[Caption Effect]]></comment>
510
+ <frontend_type>select</frontend_type>
511
+ <source_model>layerslider/source_captioneffect</source_model> <sort_order>57</sort_order>
512
+ <show_in_default>1</show_in_default>
513
+ <show_in_website>1</show_in_website>
514
+ <show_in_store>1</show_in_store>
515
+ <depends>
516
+ <captionimg2>1</captionimg2>
517
+ </depends>
518
+ </captionimgeffect2>
519
+ </fields>
520
+ </captionsettings>
521
+ <files>
522
+ <label>Slider CSS</label>
523
+ <frontend_type>text</frontend_type>
524
+ <sort_order>100</sort_order>
525
+ <show_in_default>1</show_in_default>
526
+ <comment><![CDATA[<strong>IMPORTANT!</strong><p>To write to your layerstyle.css, you must set permissions to at least 664.</p>]]></comment>
527
+ <fields>
528
+ <css translate="label">
529
+ <label>layerstyle.css</label>
530
+ <frontend_type>textarea</frontend_type>
531
+ <sort_order>2</sort_order>
532
+ <show_in_default>1</show_in_default>
533
+ <comment>All slider CSS should be inputted over here</comment>
534
+ </css>
535
+ <packagename translate="label">
536
+ <label>Package and Theme name</label>
537
+ <frontend_type>text</frontend_type>
538
+ <sort_order>3</sort_order>
539
+ <show_in_default>1</show_in_default>
540
+ <comment><![CDATA[Please enter the package name and theme name of your website so css file can be located <strong>for eg: rwd/default</strong>]]></comment>
541
+ </packagename>
542
+ </fields>
543
+ </files>
544
+ </groups>
545
+ </layerslider>
546
+ </sections>
547
+ </config>
app/code/community/Vsourz/Layerslider/sql/layerslider_setup/mysql4-install-0.1.0.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $installer = $this;
3
+ $installer->startSetup();
4
+ $table = $installer->getConnection()
5
+ ->newTable($installer->getTable('layerslider'))
6
+ ->addColumn('slide_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
7
+ 'identity' => true,
8
+ 'unsigned' => true,
9
+ 'nullable' => false,
10
+ 'primary' => true,
11
+ ), 'Slide ID')
12
+ ->addColumn('slide_title', Varien_Db_Ddl_Table::TYPE_TEXT, 256, array(
13
+ 'nullable' => false,
14
+ ), 'Slide Title')
15
+ ->addColumn('slide_url', Varien_Db_Ddl_Table::TYPE_TEXT, 256, array(
16
+ ), 'Slide URL')
17
+ ->addColumn('slide_img', Varien_Db_Ddl_Table::TYPE_TEXT, 256, array(
18
+ 'nullable' => false,
19
+ ), 'Slide Image')
20
+ ->addColumn('slide_caption1', Varien_Db_Ddl_Table::TYPE_TEXT, 500, array(
21
+ ), 'Slide Caption1')
22
+ ->addColumn('slide_caption2', Varien_Db_Ddl_Table::TYPE_TEXT, 500, array(
23
+ ), 'Slide Caption2')
24
+ ->addColumn('slide_caption3', Varien_Db_Ddl_Table::TYPE_TEXT, 500, array(
25
+ ), 'Slide Caption3')
26
+ ->addColumn('slide_caption4', Varien_Db_Ddl_Table::TYPE_TEXT, 500, array(
27
+ ), 'Slide Caption4')
28
+ ->addColumn('slide_caption5', Varien_Db_Ddl_Table::TYPE_TEXT, 500, array(
29
+ ), 'Slide Caption5')
30
+ ->addColumn('slide_captionimg1', Varien_Db_Ddl_Table::TYPE_TEXT, 500, array(
31
+ ), 'Slide CaptionImg1')
32
+ ->addColumn('slide_captionimg2', Varien_Db_Ddl_Table::TYPE_TEXT, 500, array(
33
+ ), 'Slide CaptionImg2')
34
+ ->addColumn('status', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, array(
35
+ 'nullable' => false,
36
+ 'default' => '0',
37
+ ), 'Is Enabled')
38
+ ->addColumn('active_from', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(
39
+ ), 'Active From Time')
40
+ ->addColumn('active_to', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(
41
+ ), 'Active To Time');
42
+
43
+ $installer->getConnection()->createTable($table);
44
+
45
+ $installer->endSetup();
app/design/adminhtml/default/default/layout/layerslider.xml ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout version="0.1.0">
3
+ <layerslider_adminhtml_layerslider_index>
4
+ <reference name="content">
5
+ <block type="layerslider/adminhtml_layerslider" name="layerslider"></block>
6
+ </reference>
7
+ </layerslider_adminhtml_layerslider_index>
8
+ <!-- Below are the necessary JS files for the WYSIWYG editor -->
9
+ <default>
10
+ <reference name="head">
11
+ <action method="setCanLoadExtJs">
12
+ <flag>1</flag>
13
+ </action>
14
+ <action method="addJs">
15
+ <script>mage/adminhtml/variables.js</script>
16
+ </action>
17
+ <action method="addJs">
18
+ <script>mage/adminhtml/wysiwyg/widget.js</script>
19
+ </action>
20
+ <action method="addJs">
21
+ <script>lib/flex.js</script>
22
+ </action>
23
+ <action method="addJs">
24
+ <script>lib/FABridge.js</script>
25
+ </action>
26
+ <action method="addJs">
27
+ <script>mage/adminhtml/flexuploader.js</script>
28
+ </action>
29
+ <action method="addJs">
30
+ <script>mage/adminhtml/browser.js</script>
31
+ </action>
32
+ <action method="addJs">
33
+ <script>prototype/window.js</script>
34
+ </action>
35
+ <action method="addItem">
36
+ <type>js_css</type>
37
+ <name>prototype/windows/themes/default.css</name>
38
+ </action>
39
+ <action method="addItem">
40
+ <type>js_css</type>
41
+ <name>prototype/windows/themes/magento.css</name>
42
+ </action>
43
+ <action method="addCss">
44
+ <stylesheet>lib/prototype/windows/themes/magento.css</stylesheet>
45
+ </action>
46
+ </reference>
47
+ </default>
48
+ </layout>
app/design/frontend/base/default/layout/layerslider.xml ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout version="0.1.0">
3
+ <default>
4
+ <reference name="head">
5
+ <action method="addItem" ifconfig="layerslider/settings/loadjs"><type>skin_js</type><name>js/layerslider/jquery-1.10.2.min.js</name></action>
6
+ <action method="addItem"><type>skin_js</type><name>js/layerslider/jssor.slider.min.js</name></action>
7
+ <action method="addItem"><type>skin_css</type><name>css/layerslider/layerstyle.css</name></action>
8
+ </reference>
9
+ </default>
10
+ </layout>
app/design/frontend/base/default/template/layerslider/layerslider.phtml ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $collection = $this->getSlides();
3
+ $_slides = $collection->getData();
4
+ ?>
5
+
6
+ <?php // Slide Transition Effects Called
7
+ echo $this->getLayout()->createBlock('core/template')->setTemplate('layerslider/layersliderjs.phtml')->toHtml(); ?>
8
+
9
+ <?php //Caption Configuration
10
+ $captionStatus1 = Mage::getStoreConfig('layerslider/captionsettings/caption1');
11
+ $captionStatus2 = Mage::getStoreConfig('layerslider/captionsettings/caption2');
12
+ $captionStatus3 = Mage::getStoreConfig('layerslider/captionsettings/caption3');
13
+ $captionStatus4 = Mage::getStoreConfig('layerslider/captionsettings/caption4');
14
+ $captionStatus5 = Mage::getStoreConfig('layerslider/captionsettings/caption5');
15
+ $captionImg1 = Mage::getStoreConfig('layerslider/captionsettings/captionimg1');
16
+ $captionImg2 = Mage::getStoreConfig('layerslider/captionsettings/captionimg2');
17
+ $bulletNumber = Mage::getStoreConfig('layerslider/settings/bulletnumber');
18
+ $slideLink = Mage::getStoreConfig('layerslider/settings/slidelinkurl');
19
+ $slideHeight = Mage::getStoreConfig('layerslider/slidesettings/slideheight');
20
+ $slideWidth = Mage::getStoreConfig('layerslider/slidesettings/slidewidth');
21
+ ?>
22
+ <div id="slide_parent" style="width:<?php echo $slideWidth;?>px">
23
+ <div id="slider1_container" class="slide_container" style="height:<?php echo $slideHeight;?>px; width:<?php echo $slideWidth;?>px">
24
+ <!-- Loading Screen -->
25
+ <div u="loading" style="position: absolute; top: 0px; left: 0px;">
26
+ <div style="filter: alpha(opacity=70); opacity:0.7; position: absolute; display: block;
27
+
28
+ background-color: #000; top: 0px; left: 0px;width: 100%; height:100%;">
29
+ </div>
30
+ <div style="position: absolute; display: block; background: url(img/loading.gif) no-repeat center center;
31
+
32
+ top: 0px; left: 0px;width: 100%;height:100%;">
33
+ </div>
34
+ </div>
35
+ <div u="slides" class="slides-inner" style="height:<?php echo $slideHeight;?>px; width:<?php echo $slideWidth;?>px">
36
+ <!-- Slides Container -->
37
+ <?php $count = 0; ?>
38
+ <?php foreach($_slides as $_slide){
39
+ $count++;
40
+ $class = "slide-".$count;
41
+ $mainImg = $_slide['slide_img'];
42
+ ?>
43
+ <div class="sli <?php echo $class?>" style="height:<?php echo $slideHeight;?>px; width:<?php echo $slideWidth;?>px">
44
+ <?php if($slideLink == 1 && $_slide[slide_url] != NULL):
45
+ ?><a href="<?php echo $_slide[slide_url] ?>" title=""><?php endif; ?>
46
+ <img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).DS. $mainImg?>" alt="<?php echo $_slide['slide_title'] ?>"/>
47
+ <?php if($slideLink == 1 && $_slide[slide_url] != NULL): ?>
48
+ </a>
49
+ <?php endif; ?>
50
+ <?php if($captionStatus1 == 1 && $_slide['slide_caption1'] != NULL):?>
51
+ <div u=caption t="caption1" class="cap-tion cap-pos1"><?php echo $_slide['slide_caption1'] ?></div>
52
+ <?php endif;?>
53
+ <?php if($captionStatus2 == 1 && $_slide['slide_caption2'] != NULL):?>
54
+ <div u=caption t="caption2" class="cap-tion cap-pos2"><?php echo $_slide['slide_caption2'] ?></div>
55
+ <?php endif;?>
56
+ <?php if($captionStatus3 == 1 && $_slide['slide_caption3'] != NULL):?>
57
+ <div u=caption t="caption3" class="cap-tion cap-pos3"><?php echo $_slide['slide_caption3'] ?></div>
58
+ <?php endif;?>
59
+ <?php if($captionImg1 == 1 && $_slide['slide_captionimg1'] != NULL):?>
60
+ <div u=caption t="caption-img1" class="cap-tion cap-img1"><img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA). DS. $_slide['slide_captionimg1'] ?>"/></div>
61
+ <?php endif;?>
62
+ <?php if($captionStatus4 == 1 && $_slide['slide_caption4'] != NULL):?>
63
+ <div u=caption t="caption4" class="cap-tion cap-pos4"><?php echo $_slide['slide_caption4'] ?></div>
64
+ <?php endif;?>
65
+ <?php if($captionStatus5 == 1 && $_slide['slide_caption5'] != NULL):?>
66
+ <div u=caption t="caption5" class="cap-tion cap-pos5"><?php echo $_slide['slide_caption5'] ?></div>
67
+ <?php endif;?>
68
+
69
+ <?php if($captionImg2 == 1 && $_slide['slide_captionimg2'] != NULL):?>
70
+ <div u=caption t="caption-img2" class="cap-tion cap-img2"><img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA). DS. $_slide['slide_captionimg2'] ?>"/></div>
71
+ <?php endif;?>
72
+ </div>
73
+ <?php } ?>
74
+ </div>
75
+
76
+ <!-- bullet Start -->
77
+ <div u="navigator" class="jssorb03">
78
+ <div u="prototype" style="POSITION: absolute; WIDTH: 23px; HEIGHT: 23px; text-align:center; line-height:23px; color:White; font-size:12px;">
79
+ <?php if($bulletNumber == 1):?>
80
+ <NumberTemplate></NumberTemplate>
81
+ <?php endif; ?>
82
+ </div>
83
+ </div>
84
+ <!-- bullet End -->
85
+
86
+ <!-- Arrow Start -->
87
+ <span u="arrowleft" class="jssora20l" style="width: 55px; height: 55px; top: 123px; left: 50px;">
88
+ </span>
89
+
90
+ <span u="arrowright" class="jssora20r" style="width: 55px; height: 55px; top: 123px; right: 50px">
91
+ </span>
92
+ <!-- Arrow End -->
93
+
94
+ </div>
95
+ </div>
app/design/frontend/base/default/template/layerslider/layersliderjs.phtml ADDED
@@ -0,0 +1,264 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // General Settings of the slide show
3
+ $slideLink = Mage::getStoreConfig('layerslider/settings/slidelinkurl');
4
+ $autoPlay = Mage::getStoreConfig('layerslider/settings/autoplay');
5
+ $autoPlayInterval = Mage::getStoreConfig('layerslider/settings/autoplayinterval');
6
+ $pauseOnHover = Mage::getStoreConfig('layerslider/settings/pauseonhover');
7
+ $arrowKeyNav = Mage::getStoreConfig('layerslider/settings/arrowkeynav');
8
+ $slideDuration = Mage::getStoreConfig('layerslider/settings/slideduration');
9
+ $minDragOffset = Mage::getStoreConfig('layerslider/settings/mindragoffset');
10
+ $playOrientation = Mage::getStoreConfig('layerslider/settings/playorientation');
11
+ $dragOrientation = Mage::getStoreConfig('layerslider/settings/dragorientation');
12
+ $arrowNavigation = Mage::getStoreConfig('layerslider/settings/arrownavigation');
13
+ $arrowAutoCenter = Mage::getStoreConfig('layerslider/settings/arrowautocenter');
14
+ $bulletNavigation = Mage::getStoreConfig('layerslider/settings/bulletnavigation');
15
+ $bulletAutoCenter = Mage::getStoreConfig('layerslider/settings/bulletautocenter');
16
+
17
+ //Slide Settings of the slide
18
+ $slideEffects = Mage::getStoreConfig('layerslider/slidesettings/slideeffects');
19
+ $autoHeight = Mage::getStoreConfig('layerslider/slidesettings/autoheight');
20
+ $slideHeight = Mage::getStoreConfig('layerslider/slidesettings/slideheight');
21
+ $slideWidth = Mage::getStoreConfig('layerslider/slidesettings/slidewidth');
22
+ $transitionOrder = Mage::getStoreConfig('layerslider/slidesettings/transitionorder');
23
+
24
+ //Caption Settings of the slide
25
+ $playInMode = Mage::getStoreConfig('layerslider/captionsettings/playinmode');
26
+ $playOutMode = Mage::getStoreConfig('layerslider/captionsettings/playoutmode');
27
+
28
+ //caption1
29
+ $captionStatus1 = Mage::getStoreConfig('layerslider/captionsettings/caption1');
30
+ $captionDuration1 = Mage::getStoreConfig('layerslider/captionsettings/captionduration1');
31
+ $captionEffect1 = Mage::getStoreConfig('layerslider/captionsettings/captioneffect1');
32
+
33
+ //caption2
34
+ $captionStatus2 = Mage::getStoreConfig('layerslider/captionsettings/caption2');
35
+ $captionDuration2 = Mage::getStoreConfig('layerslider/captionsettings/captionduration2');
36
+ $captionEffect2 = Mage::getStoreConfig('layerslider/captionsettings/captioneffect2');
37
+
38
+ //caption3
39
+ $captionStatus3 = Mage::getStoreConfig('layerslider/captionsettings/caption3');
40
+ $captionDuration3 = Mage::getStoreConfig('layerslider/captionsettings/captionduration3');
41
+ $captionEffect3 = Mage::getStoreConfig('layerslider/captionsettings/captioneffect3');
42
+
43
+ //caption4
44
+ $captionStatus4 = Mage::getStoreConfig('layerslider/captionsettings/caption4');
45
+ $captionDuration4 = Mage::getStoreConfig('layerslider/captionsettings/captionduration4');
46
+ $captionEffect4 = Mage::getStoreConfig('layerslider/captionsettings/captioneffect4');
47
+
48
+ //caption5
49
+ $captionStatus5 = Mage::getStoreConfig('layerslider/captionsettings/caption5');
50
+ $captionDuration5 = Mage::getStoreConfig('layerslider/captionsettings/captionduration5');
51
+ $captionEffect5 = Mage::getStoreConfig('layerslider/captionsettings/captioneffect5');
52
+
53
+ //captionimage1
54
+ $captionImg1 = Mage::getStoreConfig('layerslider/captionsettings/captionimg1');
55
+ $captionImgDuration1 = Mage::getStoreConfig('layerslider/captionsettings/captionimgduration1');
56
+ $captionImgEffect1 = Mage::getStoreConfig('layerslider/captionsettings/captionimgeffect1');
57
+
58
+ //captionimage2
59
+ $captionImg2 = Mage::getStoreConfig('layerslider/captionsettings/captionimg2');
60
+ $captionImgDuration2 = Mage::getStoreConfig('layerslider/captionsettings/captionimgduration2');
61
+ $captionImgEffect2 = Mage::getStoreConfig('layerslider/captionsettings/captionimgeffect2');
62
+
63
+ ?>
64
+ <script type="text/javascript">
65
+ var $jq = jQuery.noConflict();
66
+ jQuery(document).ready(function()
67
+ {
68
+ var _SlideshowTransitions =
69
+ [
70
+ {<?php
71
+ if($slideEffects!="random")
72
+ echo $slideEffects;
73
+ else {
74
+ ?>
75
+ //Collapse Random
76
+ $Duration: 1000, $Delay: 80, $Cols: 10, $Rows: 4, $Clip: 15, $SlideOut: true, $Easing: $JssorEasing$.$EaseOutQuad }
77
+
78
+ //Fade in LR Chess
79
+ , { $Duration: 1200, y: 0.3, $Cols: 2, $During: { $Top: [0.3, 0.7] }, $ChessMode: { $Column: 12 }, $Easing: { $Top: $JssorEasing$.$EaseInCubic, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2, $Outside: true }
80
+
81
+ //Rotate VDouble+ out
82
+ , { $Duration: 1000, x: -1, y: 2, $Rows: 2, $Zoom: 11, $Rotate: 1, $SlideOut: true, $Assembly: 2049, $ChessMode: { $Row: 15 }, $Easing: { $Left: $JssorEasing$.$EaseInExpo, $Top: $JssorEasing$.$EaseInExpo, $Zoom: $JssorEasing$.$EaseInExpo, $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInExpo }, $Opacity: 2, $Round: { $Rotate: 0.85 } }
83
+
84
+ ////Swing Inside in Stairs
85
+ , { $Duration: 1200, x: 0.2, y: -0.1, $Delay: 20, $Cols: 10, $Rows: 4, $Clip: 15, $During: { $Left: [0.3, 0.7], $Top: [0.3, 0.7] }, $Formation: $JssorSlideshowFormations$.$FormationStraightStairs, $Assembly: 260, $Easing: { $Left: $JssorEasing$.$EaseInWave, $Top: $JssorEasing$.$EaseInWave, $Clip: $JssorEasing$.$EaseOutQuad }, $Round: { $Left: 1.3, $Top: 2.5} }
86
+
87
+ //Zoom HDouble+ out
88
+ , { $Duration: 1200, x: 4, $Cols: 2, $Zoom: 11, $SlideOut: true, $Assembly: 2049, $ChessMode: { $Column: 15 }, $Easing: { $Left: $JssorEasing$.$EaseInExpo, $Zoom: $JssorEasing$.$EaseInExpo, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2 }
89
+
90
+ ////Dodge Pet Inside in Stairs
91
+ , { $Duration: 1500, x: 0.2, y: -0.1, $Delay: 20, $Cols: 10, $Rows: 4, $Clip: 15, $During: { $Left: [0.3, 0.7], $Top: [0.3, 0.7] }, $Formation: $JssorSlideshowFormations$.$FormationStraightStairs, $Assembly: 260, $Easing: { $Left: $JssorEasing$.$EaseInWave, $Top: $JssorEasing$.$EaseInWave, $Clip: $JssorEasing$.$EaseOutQuad }, $Round: { $Left: 0.8, $Top: 2.5} }
92
+
93
+ //Rotate Zoom+ out BL
94
+ , { $Duration: 1200, x: 4, y: -4, $Zoom: 11, $Rotate: 1, $SlideOut: true, $Easing: { $Left: $JssorEasing$.$EaseInExpo, $Top: $JssorEasing$.$EaseInExpo, $Zoom: $JssorEasing$.$EaseInExpo, $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInExpo }, $Opacity: 2, $Round: { $Rotate: 0.8 } }
95
+
96
+ //Dodge Dance Inside in Random
97
+ , { $Duration: 1500, x: 0.3, y: -0.3, $Delay: 80, $Cols: 10, $Rows: 4, $Clip: 15, $During: { $Left: [0.3, 0.7], $Top: [0.3, 0.7] }, $Easing: { $Left: $JssorEasing$.$EaseInJump, $Top: $JssorEasing$.$EaseInJump, $Clip: $JssorEasing$.$EaseOutQuad }, $Round: { $Left: 0.8, $Top: 2.5 } }
98
+
99
+ //Rotate VFork+ out
100
+ , { $Duration: 1200, x: -3, y: 1, $Rows: 2, $Zoom: 11, $Rotate: 1, $SlideOut: true, $Assembly: 2049, $ChessMode: { $Row: 28 }, $Easing: { $Left: $JssorEasing$.$EaseInExpo, $Top: $JssorEasing$.$EaseInExpo, $Zoom: $JssorEasing$.$EaseInExpo, $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInExpo }, $Opacity: 2, $Round: { $Rotate: 0.7 } }
101
+
102
+ //Clip and Chess in
103
+ , { $Duration: 1200, y: -1, $Cols: 10, $Rows: 4, $Clip: 15, $During: { $Top: [0.5, 0.5], $Clip: [0, 0.5] }, $Formation: $JssorSlideshowFormations$.$FormationStraight, $ChessMode: { $Column: 12 }, $ScaleClip: 0.5 }
104
+
105
+ ////Swing Inside in Swirl
106
+ , { $Duration: 1200, x: 0.2, y: -0.1, $Delay: 20, $Cols: 10, $Rows: 4, $Clip: 15, $During: { $Left: [0.3, 0.7], $Top: [0.3, 0.7] }, $Formation: $JssorSlideshowFormations$.$FormationSwirl, $Assembly: 260, $Easing: { $Left: $JssorEasing$.$EaseInWave, $Top: $JssorEasing$.$EaseInWave, $Clip: $JssorEasing$.$EaseOutQuad }, $Round: { $Left: 1.3, $Top: 2.5} }
107
+
108
+ ////Rotate Zoom+ out
109
+ , { $Duration: 1200, $Zoom: 11, $Rotate: 1, $SlideOut: true, $Easing: { $Zoom: $JssorEasing$.$EaseInCubic, $Rotate: $JssorEasing$.$EaseInCubic }, $Opacity: 2, $Round: { $Rotate: 0.7} }
110
+
111
+ ////Dodge Pet Inside in ZigZag
112
+ , { $Duration: 1500, x: 0.2, y: -0.1, $Delay: 20, $Cols: 10, $Rows: 4, $Clip: 15, $During: { $Left: [0.3, 0.7], $Top: [0.3, 0.7] }, $Formation: $JssorSlideshowFormations$.$FormationZigZag, $Assembly: 260, $Easing: { $Left: $JssorEasing$.$EaseInWave, $Top: $JssorEasing$.$EaseInWave, $Clip: $JssorEasing$.$EaseOutQuad }, $Round: { $Left: 0.8, $Top: 2.5} }
113
+
114
+ //Rotate Zoom- out TL
115
+ , { $Duration: 1200, x: 0.5, y: 0.5, $Zoom: 1, $Rotate: 1, $SlideOut: true, $Easing: { $Left: $JssorEasing$.$EaseInCubic, $Top: $JssorEasing$.$EaseInCubic, $Zoom: $JssorEasing$.$EaseInCubic, $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseInCubic }, $Opacity: 2, $Round: { $Rotate: 0.5 } }
116
+
117
+ //Rotate Zoom- in BR
118
+ , { $Duration: 1200, x: -0.6, y: -0.6, $Zoom: 1, $Rotate: 1, $During: { $Left: [0.2, 0.8], $Top: [0.2, 0.8], $Zoom: [0.2, 0.8], $Rotate: [0.2, 0.8] }, $Easing: { $Zoom: $JssorEasing$.$EaseSwing, $Opacity: $JssorEasing$.$EaseLinear, $Rotate: $JssorEasing$.$EaseSwing }, $Opacity: 2, $Round: { $Rotate: 0.5 } }
119
+
120
+ // Wave out Eagle
121
+ , { $Duration: 1500, y: -0.5, $Delay: 60, $Cols: 24, $SlideOut: true, $Formation: $JssorSlideshowFormations$.$FormationCircle, $Easing: $JssorEasing$.$EaseInWave, $Round: { $Top: 1.5 } }
122
+
123
+ //Expand Stairs
124
+ , { $Duration: 1000, $Delay: 30, $Cols: 10, $Rows: 4, $Clip: 15, $Formation: $JssorSlideshowFormations$.$FormationStraightStairs, $Assembly: 2050, $Easing: $JssorEasing$.$EaseInQuad }
125
+
126
+ //Fade Clip out H
127
+ , { $Duration: 1200, $Delay: 20, $Clip: 3, $SlideOut: true, $Assembly: 260, $Easing: { $Clip: $JssorEasing$.$EaseOutCubic, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2
128
+
129
+ ////Dodge Pet Inside in Random Chess
130
+ //, { $Duration: 1500, x: 0.2, y: -0.1, $Delay: 80, $Cols: 10, $Rows: 4, $Clip: 15, $During: { $Left: [0.2, 0.8], $Top: [0.2, 0.8] }, $ChessMode: { $Column: 15, $Row: 15 }, $Easing: { $Left: $JssorEasing$.$EaseInWave, $Top: $JssorEasing$.$EaseInWave, $Clip: $JssorEasing$.$EaseLinear }, $Round: { $Left: 0.8, $Top: 2.5} }
131
+ <?php
132
+ }
133
+ ?>}
134
+ ];
135
+
136
+ var _CaptionTransitions = [];
137
+
138
+ // Caption1
139
+ <?php if($captionStatus1 == 1):?>
140
+ _CaptionTransitions["caption1"] = {$Duration:<?php echo $captionDuration1 ?>, <?php echo $captionEffect1 ?>};
141
+ <?php endif; ?>
142
+
143
+ // Caption2
144
+ <?php if($captionStatus2 == 1):?>
145
+ _CaptionTransitions["caption2"] = {$Duration:<?php echo $captionDuration2 ?>, <?php echo $captionEffect2 ?>};
146
+ <?php endif; ?>
147
+
148
+ // Caption3
149
+ <?php if($captionStatus3 == 1):?>
150
+ _CaptionTransitions["caption3"] = {$Duration:<?php echo $captionDuration3 ?>, <?php echo $captionEffect3 ?>};
151
+ <?php endif; ?>
152
+
153
+ // Caption4
154
+ <?php if($captionStatus4 == 1):?>
155
+ _CaptionTransitions["caption4"] = {$Duration:<?php echo $captionDuration4 ?>, <?php echo $captionEffect4 ?>};
156
+ <?php endif; ?>
157
+
158
+ // Caption5
159
+ <?php if($captionStatus5 == 1):?>
160
+ _CaptionTransitions["caption5"] = {$Duration:<?php echo $captionDuration5 ?>, <?php echo $captionEffect5 ?>};
161
+ <?php endif; ?>
162
+
163
+ // Caption Image 1
164
+ <?php if($captionImg1 == 1):?>
165
+ _CaptionTransitions["caption-img1"] = {$Duration:<?php echo $captionImgDuration1 ?>, <?php echo $captionImgEffect1 ?>};
166
+ <?php endif; ?>
167
+
168
+ // Caption Image 2
169
+ <?php if($captionImg2 == 1):?>
170
+ _CaptionTransitions["caption-img2"] = {$Duration:<?php echo $captionImgDuration2 ?>, <?php echo $captionImgEffect2 ?>};
171
+ <?php endif; ?>
172
+
173
+ var options =
174
+ {
175
+ <!--------------------------- SLIDE OPTION ------------------------>
176
+ <!------------- DYNAMIC APPEAR FROM ADMIN START ------------------->
177
+ $AutoPlay: <?php echo $autoPlay ?>, //[Optional] Whether to auto play, to enable slideshow, this option must be set to true, default value is false
178
+
179
+
180
+ $AutoPlayInterval: <?php echo $autoPlayInterval ?>,//[Optional] Interval (in milliseconds) to go for next slide since the previous stopped if the slider is auto playing, default value is 3000
181
+ $PauseOnHover: <?php echo $pauseOnHover ?>,//[Optional] Whether to pause when mouse over if a slider is auto playing, 0 no pause, 1 pause for desktop, 2 pause for touch device, 3 pause for desktop and touch device, default value is 1
182
+ // DYNAMIC PAUSE ON HOVER
183
+ $ArrowKeyNavigation: <?php echo $arrowKeyNav ?>,//[Optional] Allows keyboard (arrow key) navigation or not, default value is false
184
+ //$SlideEasing: $JssorEasing$.$EaseOutQuint,//[Optional] Specifies easing for right to left animation, default value is $JssorEasing$.$EaseOutQuad
185
+ $SlideDuration: <?php echo $slideDuration ?>,//[Optional] Specifies default duration (swipe) for slide in milliseconds, default value is 500
186
+ $MinDragOffsetToSlide: <?php echo $minDragOffset ?>,//[Optional] Minimum drag offset to trigger slide , default value is 20
187
+ $DragOrientation:<?php echo $dragOrientation ?>,//[Optional] Orientation to drag slide, 0 no drag, 1 horizental, 2 vertical, 3 either, default value is 1 (Note that the $DragOrientation should be the same as $PlayOrientation when $DisplayPieces is greater than 1, or parking position is not 0)
188
+ $PlayOrientation: <?php echo $playOrientation ?>,//[Optional] Orientation to play slide (for auto play, navigation), 1 horizental, 2 vertical, 5 horizental reverse, 6 vertical reverse, default value is 1
189
+ <!------------- DYNAMIC APPEAR FROM ADMIN END ------------------->
190
+
191
+
192
+ $AutoPlaySteps: 1,//[Optional] Steps to go for each navigation request (this options applys only when slideshow disabled), the default value is 1
193
+ $SlideSpacing: 0,//[Optional] Space between each slide in pixels, default value is 0
194
+ $DisplayPieces: 1,//[Optional] Number of pieces to display (the slideshow would be disabled if the value is set to greater than 1), the default value is 1
195
+ $ParkingPosition: 0,//[Optional] The offset position to park slide (this options applys only when slideshow disabled), default value is 0.
196
+ $UISearchMode: 1,//[Optional] The way (0 parellel, 1 recursive, default value is 1) to search UI components (slides container, loading screen, navigator container, arrow navigator container, thumbnail navigator container etc).
197
+
198
+
199
+ $SlideshowOptions:
200
+ {
201
+
202
+ $Class: $JssorSlideshowRunner$,//[Required] Class to create instance of slideshow
203
+ $Transitions: _SlideshowTransitions,//[Required] An array of slideshow transitions to play slideshow
204
+ <!------------- DYNAMIC APPEAR FROM ADMIN START ------------------->
205
+ $TransitionsOrder:<?php echo $transitionOrder ?>,//[Optional] The way to choose transition to play slide, 1 Sequence, 0 Random
206
+ $ShowLink: true //[Optional] Whether to bring slide link on top of the slider when slideshow is running, default value is false
207
+ <!------------- DYNAMIC APPEAR FROM ADMIN END ------------------->
208
+ },
209
+
210
+ $CaptionSliderOptions:
211
+ {
212
+ $Class: $JssorCaptionSlider$,//[Required] Class to create instance to animate caption
213
+ $CaptionTransitions: _CaptionTransitions,//[Required] An array of caption transitions to play caption, see caption transition section at jssor slideshow transition builder
214
+ <!------------- DYNAMIC APPEAR FROM ADMIN START ------------------->
215
+ $PlayInMode: <?php echo $playInMode ?>,//[Optional] 0 None (no play), 1 Chain (goes after main slide), 3 Chain Flatten (goes after main slide and flatten all caption animations), default value is 1
216
+ $PlayOutMode: <?php echo $playOutMode ?> //[Optional] 0 None (no play), 1 Chain (goes before main slide), 3 Chain Flatten (goes before main slide and flatten all caption animations), default value is 1
217
+ <!------------- DYNAMIC APPEAR FROM ADMIN END ------------------->
218
+ },
219
+
220
+ $ArrowNavigatorOptions:
221
+ {
222
+ $Class: $JssorArrowNavigator$,
223
+ $Transitions: _SlideshowTransitions,
224
+ <!------------- DYNAMIC APPEAR FROM ADMIN START ------------------->
225
+ $ChanceToShow: <?php echo $arrowNavigation ?>,//[Required] 0 Never, 1 Mouse Over, 2 Always
226
+ $AutoCenter: <?php echo $arrowAutoCenter ?>,//[Optional] Auto center arrows in parent container, 0 No, 1 Horizontal, 2 Vertical, 3 Both, default value is 0
227
+ <!------------- DYNAMIC APPEAR FROM ADMIN END ------------------->
228
+ $Steps: 1//[Optional] Steps to go for each navigation request, default value is 1
229
+ },
230
+
231
+ $BulletNavigatorOptions:
232
+ {
233
+ $Class: $JssorBulletNavigator$,
234
+ $Transitions: _SlideshowTransitions,
235
+ <!------------- DYNAMIC APPEAR FROM ADMIN START ------------------->
236
+ $ChanceToShow: <?php echo $bulletNavigation ?>,//[Required] 0 Never, 1 Mouse Over, 2 Always
237
+ $AutoCenter: <?php echo $bulletAutoCenter ?>, //[Optional] Auto center navigator in parent container, 0 None, 1 Horizontal, 2 Vertical, 3 Both, default value is 0
238
+ <!------------- DYNAMIC APPEAR FROM ADMIN END ------------------->
239
+ $Steps: 1,//[Optional] Steps to go for each navigation request, default value is 1
240
+ $Lanes: 1,//[Optional] Specify lanes to arrange items, default value is 1
241
+ $SpacingX: 4,//[Optional] Horizontal space between each item in pixel, default value is 0
242
+ $SpacingY: 4,//[Optional] Vertical space between each item in pixel, default value is 0
243
+ $Orientation: 1//[Optional] The orientation of the navigator, 1 horizontal, 2 vertical, default value is 1
244
+ }
245
+ };
246
+
247
+
248
+ var jssor_slider1 = new $JssorSlider$("slider1_container", options);
249
+ function ScaleSlider()
250
+ {
251
+ var parentWidth = jssor_slider1.$Elmt.parentNode.clientWidth;
252
+ if (parentWidth)
253
+ jssor_slider1.$SetScaleWidth(parentWidth);
254
+ else
255
+ $JssorUtils$.$Delay(ScaleSlider, 30);
256
+ }
257
+ ScaleSlider();
258
+ $JssorUtils$.$AddEvent(window, "load", ScaleSlider);
259
+ if (!navigator.userAgent.match(/(iPhone|iPod|iPad|BlackBerry|IEMobile)/)) {
260
+ $JssorUtils$.$OnWindowResize(window, ScaleSlider);
261
+ }
262
+ })
263
+ </script>
264
+
app/etc/modules/Vsourz_Layerslider.xml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Open Software License (OSL 3.0)
9
+ * that is bundled with this package in the file LICENSE.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/osl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magentocommerce.com so we can send you a copy immediately.
15
+ *
16
+ * @category Vsourz
17
+ * @package Vsourz_Layerslider
18
+ * @copyright Copyright (c) 2014 Vsourz Ltd
19
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
+ */
21
+ -->
22
+ <config>
23
+ <modules>
24
+ <Vsourz_Layerslider>
25
+ <active>true</active>
26
+ <codePool>community</codePool>
27
+ </Vsourz_Layerslider>
28
+ </modules>
29
+ </config>
media/layerslider/banner1-slide-img-2015-04-10-08-43-43.jpg ADDED
Binary file
media/layerslider/banner1_thumb_1-slide_captionimg1-img-2015-04-10-08-43-43.png ADDED
Binary file
media/layerslider/banner1_thumb_2-slide_captionimg2-2015-04-10-08-43-43.png ADDED
Binary file
media/layerslider/banner2-slide-img-2015-04-10-08-48-49.jpg ADDED
Binary file
media/layerslider/banner2_thumb_1-slide_captionimg1-img-2015-04-10-08-48-49.png ADDED
Binary file
media/layerslider/banner2_thumb_2-slide_captionimg2-2015-04-10-08-48-49.png ADDED
Binary file
media/layerslider/banner3-slide-img-2015-04-10-08-49-49.jpg ADDED
Binary file
media/layerslider/banner3_thumb_1-slide_captionimg1-img-2015-04-10-08-50-08.png ADDED
Binary file
media/layerslider/banner3_thumb_2-slide_captionimg2-2015-04-10-08-50-08.png ADDED
Binary file
media/layerslider/slide_5-slide-img-2015-04-20-09-32-44.jpg ADDED
Binary file
package.xml ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>Vsourz_Digital_Jassor_Slider</name>
4
+ <version>1.0.0</version>
5
+ <stability>stable</stability>
6
+ <license uri="http://opensource.org/licenses/MIT">Massachusetts Institute of Technology License (MITL)</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>Jassor Slider is a Banner Slider built on the top of Jassor Slider JS. The extension is completely manageable from the Magento admin.</summary>
10
+ <description>Jassor Slider is a Banner Slider built on the top of Jassor Slider JS. The features of the extension are listed below&#xD;
11
+ &#xD;
12
+ Features:&#xD;
13
+ &#xD;
14
+ 1. Simple, easy to use interface &#x2013; perfect for individual users.&#xD;
15
+ 2. Create Responsive slideshows in seconds&#xD;
16
+ 3. Unrestricted support for Image slides (supports caption, link, description text, images)&#xD;
17
+ 4. Full width Slider support&#xD;
18
+ 5. Fast &#x2013; only the minimum JavaScript/CSS is included on your page&#xD;
19
+ 6. Touch + drag navigation&#xD;
20
+ 7. Auto detect vertical/horizontal drag&#xD;
21
+ 8. Cross browser support&#xD;
22
+ 9. Editable CSS from back-end.&#xD;
23
+ 10. Any html code can be placed inside slide&#xD;
24
+ 11. Auto enable/disable Slides based on time period.&#xD;
25
+ 12. Ability to edit CSS from backend.</description>
26
+ <notes>This is the first release of the extension&#xD;
27
+ </notes>
28
+ <authors><author><name>Vsourz Digital</name><user>MAG002979323</user><email>mehul@vsourz.com</email></author></authors>
29
+ <date>2015-04-20</date>
30
+ <time>10:08:36</time>
31
+ <contents><target name="magecommunity"><dir name="Vsourz"><dir name="Layerslider"><dir name="Block"><dir name="Adminhtml"><dir name="Layerslider"><dir name="Edit"><file name="Form.php" hash="32abfcc61ff1b74f0964687f0dce989b"/><dir name="Tabs"><file name="Content.php" hash="39944e01191e961fcac3e7d81723bf14"/><file name="Form.php" hash="880780c3dae46654c79a9c38328348b9"/></dir><file name="Tabs.php" hash="295252bcda0bfaaa024e1562b09ae1d8"/></dir><file name="Edit.php" hash="bb3933a822eadaa7d701a1f0d4d5533f"/><file name="Grid.php" hash="6344424d67c4269bdcaaf4978e00cff6"/><dir name="Renderer"><file name="Image.php" hash="9a040559fe10828ab8a11ceceed6c10a"/><file name="Status.php" hash="321a2feb0966e8cf9d6c9be6c8cc5586"/></dir></dir><file name="Layerslider.php" hash="32b2eb71d7302ae7868d255f095dc8ac"/></dir><file name="Layerslider.php" hash="d17aaf48432f42ea55f9bb57f90664a7"/></dir><dir name="Helper"><file name="Data.php" hash="580dda4325612cca1dda05b2b28ba5ba"/></dir><dir name="Model"><file name="Layerslider.php" hash="6240d1c15877ee5ee0c082b8aebc993f"/><file name="Observer.php" hash="57de87b2deacb2ed76143b1a1a76a3c7"/><dir name="Resource"><dir name="Layerslider"><file name="Collection.php" hash="27f8b426d95cc3bd7d5ab8eef62b3029"/></dir><file name="Layerslider.php" hash="bdf4bc25c21d0cbbf65260d38db340ec"/></dir><dir name="Source"><file name="Autocenter.php" hash="fd4add353fee7c5a9d52672157e34a6f"/><file name="Captioneffect.php" hash="8a0faa18efd45fa4e0d042f6a3c30f33"/><file name="Chancetoshow.php" hash="b63f6cd800a169635dcf15d9cb610c0a"/><file name="Dragorientation.php" hash="2cf4ed17477227d99c40c7c90c52d89f"/><file name="Pauseonhover.php" hash="ba11c513163b9c7bb0069988a46002af"/><file name="Playmode.php" hash="2fa8c9a3f3b4ade23f511a2cd3296e7a"/><file name="Playorientation.php" hash="fc10e81576ab6bd3e880058ce6628d7f"/><file name="Slideeffects.php" hash="c08b088b284cb6f8c4cee793260fb540"/><file name="Transitionorder.php" hash="c5f3e30cc1a9b4357247d7411a99ba7a"/><file name="Truefalse.php" hash="8a8c88537b92eb7fbc3c5834b4b08d8e"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="LayersliderController.php" hash="6fb748c6d21d3a1cbc13d691654adba9"/></dir></dir><dir name="data"><dir name="layerslider_setup"><file name="data-install-0.1.0.php" hash="926d77a4f5f39afa6bc393503a1163e8"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="63ff1362ae9a80dd4ed135c08822263b"/><file name="config.xml" hash="eb60e3dae1eb074a91486846c68135de"/><file name="system.xml" hash="b8c295e39b61ad5ab47bb3e439f37c4f"/></dir><dir name="sql"><dir name="layerslider_setup"><file name="mysql4-install-0.1.0.php" hash="cbc39f5afbd899482cba823236a4f50c"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Vsourz_Layerslider.xml" hash="9b1479fb0939a1be464929e923b3e0a9"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="layerslider.xml" hash="6a2f3aa82a18b35b0c1dcff13069df7b"/></dir><dir name="template"><dir name="layerslider"><file name="layerslider.phtml" hash="dcd59cc35f7da408ffdd5d9485064107"/><file name="layersliderjs.phtml" hash="c8fcea121103ae4ca489d173cefdb7c0"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="layerslider.xml" hash="b8327d0556bf9249e5460d0ff822074e"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="layerslider"><file name="layerstyle.css" hash="5493a158daf7755ac00f5e18056220b6"/></dir></dir><dir name="images"><dir name="layerslider"><file name="Icon-Slider-11-No-jQuery.png" hash="16e52d616964bd798288fc1e74c6e0c3"/><file name="Icon-Slider-11-jQuery.png" hash="15bff92c7db6ec59ff57d5e33670eb4c"/><file name="Icon-Slider-12-No-jQuery.png" hash="e57a3a671f3f956c93d0be1603b7bb1b"/><file name="Icon-Slider-12-jQuery.png" hash="6c5ef16053472eb665b03ffa1c01a37e"/><file name="Thumbs.db" hash="12205c89cc5d9b0f63a89748801f5e63"/><file name="a01.png" hash="165e92ca2a2f5512f1aee6e6938dbed9"/><file name="a02.png" hash="40a719c27da43ce578fa4335776b4c94"/><file name="a03.png" hash="a32b0a342a7e39147f4141073e062d5a"/><file name="a04.png" hash="ce16aab1ed6a266f20fba89d4890f0be"/><file name="a06.png" hash="40e35b6aa808010f43c87cbe70979097"/><file name="a07.png" hash="0abbd25a37aab6efdc56cbed9eeaebfc"/><file name="a08.png" hash="aab48326c715bf7c0fbb5fe3e7ac227d"/><file name="a09.png" hash="fcbddd98acb30c56a197d225db62689b"/><file name="a10.png" hash="d29e9a519f757500a906796b0047607b"/><file name="a11.png" hash="f7bcd8df5258346060276b9dbcb0c63a"/><file name="a12.png" hash="bb9fcee03a7288c2083eb15e31f18e1d"/><file name="a13.png" hash="6f8f003e471803fa8a9e3a59fb501dc2"/><file name="a14.png" hash="319a3763300203e71cdc6d0d6018b9d1"/><file name="a15.png" hash="42769308df825815cd93e7666d1fcd7a"/><file name="a16.png" hash="ba0dcd16c7df77f68c673cce6ef039b6"/><file name="a17.png" hash="1c07428693b64ab8c518191026ce2190"/><file name="a18.png" hash="22ac3a6f225b8a359969f82896779d2b"/><file name="a19.png" hash="52a5356cc180db3a671f9afaa0435bbf"/><file name="a20.png" hash="e58807df9c59b27a6713a11e77d21164"/><file name="a21.png" hash="1e1c2f70f23fb1f37c6299211396112a"/><file name="b02.png" hash="09c9466ec8e0816612fc8c68315eb6e7"/><file name="b03.png" hash="66ddc21fc1fad1a9fd04d042e7f442e8"/><file name="b05.png" hash="b5b353c4ec92a0f8be543f33741618f3"/><file name="b06.png" hash="29328f9828cf41682d2c6360d43894fa"/><file name="b07.png" hash="8a67b2fe0c5fdb539d392d2439bc1e12"/><file name="b10.png" hash="8a9db01ca0e484e4f06999f5f5378777"/><file name="b11.png" hash="da5e314946762ba28d750817202c785e"/><file name="b12.png" hash="abd3224eca4a943fb69774d070e07749"/><file name="b13.png" hash="9e6051ba09b5bbaf05d991aca7c23c94"/><file name="b14.png" hash="bb7c35f85f022dd996bcf09d0577a384"/><file name="b16.png" hash="f2c3bd8a1cb20013e9b77269297d72a4"/><file name="b17.png" hash="546339367d2307de546f09b6b2677dbd"/><file name="b18.png" hash="b69563e54ecbb9922af99e830b92cb6d"/><file name="b20.png" hash="8ff048368eda01e34c6e959c4ca129b2"/><file name="b21.png" hash="9aa699b3432dd731e150d79a4601e46b"/><file name="back.jpg" hash="2a78ee8377f2aabd634ef682242c4c39"/><file name="browser-icons.png" hash="f3e43ff2d193a29e25e1d0dcd53e413b"/><file name="close.png" hash="5f601b007af36999f22b1c41447c6e8d"/><file name="loading.gif" hash="dd78ac008009bd821d2bf2da98108854"/><file name="loading2.gif" hash="bd3d5a0aaeb053c4f517c27b3c40b0d4"/><file name="play.png" hash="7913101cec2e046c6da89cceb838de3a"/><file name="t01.png" hash="5c594fe685ea67e734e636fe1623d638"/></dir></dir><dir name="js"><dir name="layerslider"><file name="jquery-1.10.2.min.js" hash="628072e7212db1e8cdacb22b21752cda"/><file name="jssor.js" hash="dd3bfd8831e02a2ea05e3b363d47495f"/><file name="jssor.slider.min-old.js" hash="ed8e3e63ac9c1ff5329e25671aa1de3c"/><file name="jssor.slider.min.js" hash="ed8e3e63ac9c1ff5329e25671aa1de3c"/></dir></dir></dir></dir></dir></target><target name="magemedia"><dir name="layerslider"><file name="banner1-slide-img-2015-04-10-08-43-43.jpg" hash="eaf64d97e56d03dd3f35b94ea5842f8e"/><file name="banner1_thumb_1-slide_captionimg1-img-2015-04-10-08-43-43.png" hash="ba2a53f4aaaf8493cfe1f807055d1bc3"/><file name="banner1_thumb_2-slide_captionimg2-2015-04-10-08-43-43.png" hash="5488dc1889056d8efccff7fd20eba500"/><file name="banner2-slide-img-2015-04-10-08-48-49.jpg" hash="541dec02df908566bf6fd5e82046db48"/><file name="banner2_thumb_1-slide_captionimg1-img-2015-04-10-08-48-49.png" hash="e7a50ff224800a218ffecd14495732a2"/><file name="banner2_thumb_2-slide_captionimg2-2015-04-10-08-48-49.png" hash="b83a2f8c58ad4b5058cd5cea4806516e"/><file name="banner3-slide-img-2015-04-10-08-49-49.jpg" hash="b69cdc9c7e2acd4400ff6603f9788fba"/><file name="banner3_thumb_1-slide_captionimg1-img-2015-04-10-08-50-08.png" hash="525b7dbb534ca34cd3e2b6548f165ffb"/><file name="banner3_thumb_2-slide_captionimg2-2015-04-10-08-50-08.png" hash="c57ac594131470aff8743f0e9de5b3d5"/><file name="slide_5-slide-img-2015-04-20-09-32-44.jpg" hash="2c1a3d5edc712bb1244f0e7a86aafa59"/></dir></target></contents>
32
+ <compatible/>
33
+ <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
34
+ </package>
skin/frontend/base/default/css/layerslider/layerstyle.css ADDED
@@ -0,0 +1,238 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #slide_parent{
2
+ max-width:100%;
3
+ margin: 0 auto;
4
+ max-height:100%;
5
+ }
6
+
7
+ #slider1_container
8
+ {
9
+ position: relative;
10
+ overflow: hidden;
11
+ margin:0 auto;
12
+ margin-bottom:25px;
13
+ }
14
+ .slider1 div
15
+ {
16
+ position: relative;
17
+ margin: 0px;
18
+ padding: 0px;
19
+ }
20
+ .slides
21
+ {
22
+ cursor: move;
23
+ position: absolute;
24
+ left: 0px;
25
+ top: 0px;
26
+ overflow:hidden;
27
+
28
+ }
29
+ .slides-inner
30
+ {
31
+ cursor: move;
32
+ position: absolute;
33
+ left: 0px;
34
+ top: 0px;
35
+ overflow: hidden;
36
+ }
37
+ .slides-inner a{display:block;}
38
+ .slides-inner img{max-width:100%; width:100%;}
39
+ a.captionOrange,
40
+ A.captionOrange:active,
41
+ A.captionOrange:visited
42
+ {
43
+ color: #ffffff;
44
+ text-decoration: none;
45
+ }
46
+ a.captionOrange:hover
47
+ {
48
+ color: #eb5100;
49
+ text-decoration: underline;
50
+ background-color: #eeeeee;
51
+ background-color: rgba(238, 238, 238, 0.7);
52
+ }
53
+ .jssorb03 div,
54
+ .jssorb03 div:hover,
55
+ .jssorb03 .av
56
+ {
57
+ background: url(../../images/layerslider/b02.png) no-repeat;
58
+ overflow:hidden;
59
+ cursor: pointer;
60
+ transition: all 0.4s ease-in-out 0s;
61
+ -moz-transition: all 0.4s ease-in-out 0s;
62
+ -webkit-transition: all 0.4s ease-in-out 0s;
63
+ -o-transition: all 0.4s ease-in-out 0s;
64
+ }
65
+ .jssorb03 div
66
+ {
67
+ background-position: -5px -4px;
68
+ }
69
+ .jssorb03 div:hover, .jssorb03 .av:hover
70
+ {
71
+ background-position: -35px -4px;
72
+ }
73
+ .jssorb03 .av
74
+ {
75
+ background-position: -65px -4px;
76
+ }
77
+ .jssorb03 .dn,
78
+ .jssorb03 .dn:hover
79
+ {
80
+ background-position: -95px -4px;
81
+ }
82
+ .jssora20l,
83
+ .jssora20r,
84
+ .jssora20ldn,
85
+ .jssora20rdn
86
+ {
87
+ position: absolute;
88
+ cursor: pointer;
89
+ display: block;
90
+ background: url(../../images/layerslider/a03.png) no-repeat;
91
+ overflow:hidden;
92
+ transition: all 0.4s ease-in-out 0s;
93
+ -moz-transition: all 0.4s ease-in-out 0s;
94
+ -webkit-transition: all 0.4s ease-in-out 0s;
95
+ -o-transition: all 0.4s ease-in-out 0s;
96
+ }
97
+ .jssora20l
98
+ {
99
+ background-position: -3px -33px;
100
+ width: 55px;
101
+ height: 55px;
102
+ top: 123px;
103
+ left: 20px;
104
+ }
105
+ .jssora20r
106
+ {
107
+ background-position: -63px -33px;
108
+ width: 55px;
109
+ height: 55px;
110
+ top: 123px;
111
+ right: 20px;
112
+ }
113
+ .jssora20l:hover { background-position: -123px -33px; }
114
+ .jssora20r:hover { background-position: -183px -33px; }
115
+ .jssora20ldn { background-position: -243px -33px; }
116
+ .jssora20rdn { background-position: -303px -33px; }
117
+ .jssorb03
118
+ {
119
+ position: absolute;
120
+ bottom: 20px;
121
+ left: 6px;
122
+ }
123
+ /**********************************
124
+ Caption Wise Css
125
+ **********************************/
126
+ .cap-tion
127
+ {
128
+ position:absolute;
129
+ line-height: normal;
130
+ font-size:30px;
131
+ color:#fff;
132
+ text-shadow:2px 2px 2px rgba(0, 0, 0, 0.5)
133
+ }
134
+ .cap-pos1
135
+ {
136
+ top:100px;
137
+ left:150px;
138
+ }
139
+ .cap-pos2
140
+ {
141
+ top:150px;
142
+ left:150px;
143
+ }
144
+ .cap-pos3{
145
+ top:200px;
146
+ left:150px;
147
+ }
148
+ .cap-pos4{
149
+ left:150px;
150
+ top:250px;
151
+ }
152
+ .cap-pos5{
153
+ left:150px;
154
+ top:300px;
155
+ }
156
+ .cap-img1
157
+ {
158
+ left:auto;
159
+ top:100px;
160
+ right:400px;
161
+ }
162
+ .cap-img2
163
+ {
164
+ left:auto;
165
+ top:100px;
166
+ right:150px;
167
+ }
168
+ /******* Slide 1 *******/
169
+ .slide-1 .cap-img1
170
+ {
171
+ top:50px;
172
+ right:450px;
173
+ }
174
+ /*********** Override Position **********/
175
+ /***** Slide 2 *******/
176
+ .slide-2 .cap-pos1
177
+ {
178
+ background:rgba(255,255,255,0.6);
179
+ color:#333;
180
+ padding:5px 15px;
181
+ left:150px;
182
+ top:100px;
183
+ }
184
+ .slide-2 .cap-pos2
185
+ {
186
+ background:rgba(255,255,255,0.6);
187
+ color:#333;
188
+ padding:5px 15px;
189
+ left:150px;
190
+ top:200px;
191
+ }
192
+ .slide-2 .cap-pos3
193
+ {
194
+ background:rgba(255,255,255,0.6);
195
+ color:#333;
196
+ padding:5px 15px;
197
+ left:150px;
198
+ top:300px;
199
+ }
200
+ .slide-2 .cap-pos4
201
+ {
202
+ left: auto;
203
+ right: 147px;
204
+ top:20px;
205
+ background:rgba(255,255,255,0.6);
206
+ color:#333;
207
+ text-align:center;
208
+ padding:15px;
209
+ box-sizing:border-box;
210
+ -webkit-box-sizing:border-box;
211
+ font-size:18px;
212
+ }
213
+ .slide-2 .cap-pos5
214
+ {
215
+ right:130px;
216
+ left:auto;
217
+ background:rgba(255,255,255,0.6);
218
+ color:#333;
219
+ padding:7px 15px;
220
+ top:auto;
221
+ bottom:5px;
222
+ }
223
+ .slide-2 .cap-img1
224
+ {
225
+ top:90px;
226
+ right:150px;
227
+ }
228
+
229
+
230
+ /******* Slide 3 *******/
231
+ .slide-3 .cap-img1{left:15%;top:0;right:auto;}
232
+ .slide-3 .cap-pos1,
233
+ .slide-3 .cap-pos2,
234
+ .slide-3 .cap-pos3,
235
+ .slide-3 .cap-pos4,
236
+ .slide-3 .cap-pos5{
237
+ left:600px;
238
+ }
skin/frontend/base/default/images/layerslider/Icon-Slider-11-No-jQuery.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/Icon-Slider-11-jQuery.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/Icon-Slider-12-No-jQuery.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/Icon-Slider-12-jQuery.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/Thumbs.db ADDED
Binary file
skin/frontend/base/default/images/layerslider/a01.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a02.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a03.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a04.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a06.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a07.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a08.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a09.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a10.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a11.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a12.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a13.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a14.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a15.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a16.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a17.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a18.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a19.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a20.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/a21.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/b02.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/b03.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/b05.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/b06.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/b07.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/b10.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/b11.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/b12.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/b13.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/b14.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/b16.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/b17.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/b18.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/b20.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/b21.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/back.jpg ADDED
Binary file
skin/frontend/base/default/images/layerslider/browser-icons.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/close.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/loading.gif ADDED
Binary file
skin/frontend/base/default/images/layerslider/loading2.gif ADDED
Binary file
skin/frontend/base/default/images/layerslider/play.png ADDED
Binary file
skin/frontend/base/default/images/layerslider/t01.png ADDED
Binary file
skin/frontend/base/default/js/layerslider/jquery-1.10.2.min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ /*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
2
+ //@ sourceMappingURL=jquery-1.10.2.min.map
3
+ */
4
+ (function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
5
+ }({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);
6
+ u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.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(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
skin/frontend/base/default/js/layerslider/jssor.js ADDED
@@ -0,0 +1,2724 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Jssor 19.0
3
+ * http://www.jssor.com/
4
+ *
5
+ * Licensed under the MIT license:
6
+ * http://www.opensource.org/licenses/MIT
7
+ *
8
+ * TERMS OF USE - Jssor
9
+ *
10
+ * Copyright 2014 Jssor
11
+ *
12
+ * Permission is hereby granted, free of charge, to any person obtaining
13
+ * a copy of this software and associated documentation files (the
14
+ * "Software"), to deal in the Software without restriction, including
15
+ * without limitation the rights to use, copy, modify, merge, publish,
16
+ * distribute, sublicense, and/or sell copies of the Software, and to
17
+ * permit persons to whom the Software is furnished to do so, subject to
18
+ * the following conditions:
19
+ *
20
+ * The above copyright notice and this permission notice shall be
21
+ * included in all copies or substantial portions of the Software.
22
+ *
23
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30
+ */
31
+
32
+ /*! Jssor */
33
+
34
+ //$JssorDebug$
35
+ var $JssorDebug$ = new function () {
36
+
37
+ this.$DebugMode = true;
38
+
39
+ // Methods
40
+
41
+ this.$Log = function (msg, important) {
42
+ var console = window.console || {};
43
+ var debug = this.$DebugMode;
44
+
45
+ if (debug && console.log) {
46
+ console.log(msg);
47
+ } else if (debug && important) {
48
+ alert(msg);
49
+ }
50
+ };
51
+
52
+ this.$Error = function (msg, e) {
53
+ var console = window.console || {};
54
+ var debug = this.$DebugMode;
55
+
56
+ if (debug && console.error) {
57
+ console.error(msg);
58
+ } else if (debug) {
59
+ alert(msg);
60
+ }
61
+
62
+ if (debug) {
63
+ // since we're debugging, fail fast by crashing
64
+ throw e || new Error(msg);
65
+ }
66
+ };
67
+
68
+ this.$Fail = function (msg) {
69
+ throw new Error(msg);
70
+ };
71
+
72
+ this.$Assert = function (value, msg) {
73
+ var debug = this.$DebugMode;
74
+ if (debug) {
75
+ if (!value)
76
+ throw new Error("Assert failed " + msg || "");
77
+ }
78
+ };
79
+
80
+ this.$Trace = function (msg) {
81
+ var console = window.console || {};
82
+ var debug = this.$DebugMode;
83
+
84
+ if (debug && console.log) {
85
+ console.log(msg);
86
+ }
87
+ };
88
+
89
+ this.$Execute = function (func) {
90
+ var debug = this.$DebugMode;
91
+ if (debug)
92
+ func();
93
+ };
94
+
95
+ this.$LiveStamp = function (obj, id) {
96
+ var debug = this.$DebugMode;
97
+ if (debug) {
98
+ var stamp = document.createElement("DIV");
99
+ stamp.setAttribute("id", id);
100
+
101
+ obj.$Live = stamp;
102
+ }
103
+ };
104
+
105
+ this.$C_AbstractProperty = function () {
106
+ /// <summary>
107
+ /// Tells compiler the property is abstract, it should be implemented by subclass.
108
+ /// </summary>
109
+
110
+ throw new Error("The property is abstract, it should be implemented by subclass.");
111
+ };
112
+
113
+ this.$C_AbstractMethod = function () {
114
+ /// <summary>
115
+ /// Tells compiler the method is abstract, it should be implemented by subclass.
116
+ /// </summary>
117
+
118
+ throw new Error("The method is abstract, it should be implemented by subclass.");
119
+ };
120
+
121
+ function C_AbstractClass(instance) {
122
+ /// <summary>
123
+ /// Tells compiler the class is abstract, it should be implemented by subclass.
124
+ /// </summary>
125
+
126
+ if (instance.constructor === C_AbstractClass.caller)
127
+ throw new Error("Cannot create instance of an abstract class.");
128
+ }
129
+
130
+ this.$C_AbstractClass = C_AbstractClass;
131
+ };
132
+
133
+ //$JssorEasing$
134
+ var $JssorEasing$ = window.$JssorEasing$ = {
135
+ $EaseLinear: function (t) {
136
+ return t;
137
+ },
138
+ $EaseGoBack: function (t) {
139
+ return 1 - Math.abs((t *= 2) - 1);
140
+ },
141
+ $EaseSwing: function (t) {
142
+ return -Math.cos(t * Math.PI) / 2 + .5;
143
+ },
144
+ $EaseInQuad: function (t) {
145
+ return t * t;
146
+ },
147
+ $EaseOutQuad: function (t) {
148
+ return -t * (t - 2);
149
+ },
150
+ $EaseInOutQuad: function (t) {
151
+ return (t *= 2) < 1 ? 1 / 2 * t * t : -1 / 2 * (--t * (t - 2) - 1);
152
+ },
153
+ $EaseInCubic: function (t) {
154
+ return t * t * t;
155
+ },
156
+ $EaseOutCubic: function (t) {
157
+ return (t -= 1) * t * t + 1;
158
+ },
159
+ $EaseInOutCubic: function (t) {
160
+ return (t *= 2) < 1 ? 1 / 2 * t * t * t : 1 / 2 * ((t -= 2) * t * t + 2);
161
+ },
162
+ $EaseInQuart: function (t) {
163
+ return t * t * t * t;
164
+ },
165
+ $EaseOutQuart: function (t) {
166
+ return -((t -= 1) * t * t * t - 1);
167
+ },
168
+ $EaseInOutQuart: function (t) {
169
+ return (t *= 2) < 1 ? 1 / 2 * t * t * t * t : -1 / 2 * ((t -= 2) * t * t * t - 2);
170
+ },
171
+ $EaseInQuint: function (t) {
172
+ return t * t * t * t * t;
173
+ },
174
+ $EaseOutQuint: function (t) {
175
+ return (t -= 1) * t * t * t * t + 1;
176
+ },
177
+ $EaseInOutQuint: function (t) {
178
+ return (t *= 2) < 1 ? 1 / 2 * t * t * t * t * t : 1 / 2 * ((t -= 2) * t * t * t * t + 2);
179
+ },
180
+ $EaseInSine: function (t) {
181
+ return 1 - Math.cos(t * Math.PI / 2);
182
+ },
183
+ $EaseOutSine: function (t) {
184
+ return Math.sin(t * Math.PI / 2);
185
+ },
186
+ $EaseInOutSine: function (t) {
187
+ return -1 / 2 * (Math.cos(Math.PI * t) - 1);
188
+ },
189
+ $EaseInExpo: function (t) {
190
+ return t == 0 ? 0 : Math.pow(2, 10 * (t - 1));
191
+ },
192
+ $EaseOutExpo: function (t) {
193
+ return t == 1 ? 1 : -Math.pow(2, -10 * t) + 1;
194
+ },
195
+ $EaseInOutExpo: function (t) {
196
+ return t == 0 || t == 1 ? t : (t *= 2) < 1 ? 1 / 2 * Math.pow(2, 10 * (t - 1)) : 1 / 2 * (-Math.pow(2, -10 * --t) + 2);
197
+ },
198
+ $EaseInCirc: function (t) {
199
+ return -(Math.sqrt(1 - t * t) - 1);
200
+ },
201
+ $EaseOutCirc: function (t) {
202
+ return Math.sqrt(1 - (t -= 1) * t);
203
+ },
204
+ $EaseInOutCirc: function (t) {
205
+ return (t *= 2) < 1 ? -1 / 2 * (Math.sqrt(1 - t * t) - 1) : 1 / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1);
206
+ },
207
+ $EaseInElastic: function (t) {
208
+ if (!t || t == 1)
209
+ return t;
210
+ var p = .3, s = .075;
211
+ return -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * 2 * Math.PI / p));
212
+ },
213
+ $EaseOutElastic: function (t) {
214
+ if (!t || t == 1)
215
+ return t;
216
+ var p = .3, s = .075;
217
+ return Math.pow(2, -10 * t) * Math.sin((t - s) * 2 * Math.PI / p) + 1;
218
+ },
219
+ $EaseInOutElastic: function (t) {
220
+ if (!t || t == 1)
221
+ return t;
222
+ var p = .45, s = .1125;
223
+ return (t *= 2) < 1 ? -.5 * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * 2 * Math.PI / p) : Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * 2 * Math.PI / p) * .5 + 1;
224
+ },
225
+ $EaseInBack: function (t) {
226
+ var s = 1.70158;
227
+ return t * t * ((s + 1) * t - s);
228
+ },
229
+ $EaseOutBack: function (t) {
230
+ var s = 1.70158;
231
+ return (t -= 1) * t * ((s + 1) * t + s) + 1;
232
+ },
233
+ $EaseInOutBack: function (t) {
234
+ var s = 1.70158;
235
+ return (t *= 2) < 1 ? 1 / 2 * t * t * (((s *= 1.525) + 1) * t - s) : 1 / 2 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);
236
+ },
237
+ $EaseInBounce: function (t) {
238
+ return 1 - $JssorEasing$.$EaseOutBounce(1 - t)
239
+ },
240
+ $EaseOutBounce: function (t) {
241
+ return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
242
+ },
243
+ $EaseInOutBounce: function (t) {
244
+ return t < 1 / 2 ? $JssorEasing$.$EaseInBounce(t * 2) * .5 : $JssorEasing$.$EaseOutBounce(t * 2 - 1) * .5 + .5;
245
+ },
246
+ $EaseInWave: function (t) {
247
+ return 1 - Math.cos(t * Math.PI * 2)
248
+ },
249
+ $EaseOutWave: function (t) {
250
+ return Math.sin(t * Math.PI * 2);
251
+ },
252
+ $EaseOutJump: function (t) {
253
+ return 1 - (((t *= 2) < 1) ? (t = 1 - t) * t * t : (t -= 1) * t * t);
254
+ },
255
+ $EaseInJump: function (t) {
256
+ return ((t *= 2) < 1) ? t * t * t : (t = 2 - t) * t * t;
257
+ }
258
+ };
259
+
260
+ var $JssorDirection$ = window.$JssorDirection$ = {
261
+ $TO_LEFT: 0x0001,
262
+ $TO_RIGHT: 0x0002,
263
+ $TO_TOP: 0x0004,
264
+ $TO_BOTTOM: 0x0008,
265
+ $HORIZONTAL: 0x0003,
266
+ $VERTICAL: 0x000C,
267
+ //$LEFTRIGHT: 0x0003,
268
+ //$TOPBOTOM: 0x000C,
269
+ //$TOPLEFT: 0x0005,
270
+ //$TOPRIGHT: 0x0006,
271
+ //$BOTTOMLEFT: 0x0009,
272
+ //$BOTTOMRIGHT: 0x000A,
273
+ //$AROUND: 0x000F,
274
+
275
+ $GetDirectionHorizontal: function (direction) {
276
+ return direction & 0x0003;
277
+ },
278
+ $GetDirectionVertical: function (direction) {
279
+ return direction & 0x000C;
280
+ },
281
+ //$ChessHorizontal: function (direction) {
282
+ // return (~direction & 0x0003) + (direction & 0x000C);
283
+ //},
284
+ //$ChessVertical: function (direction) {
285
+ // return (~direction & 0x000C) + (direction & 0x0003);
286
+ //},
287
+ //$IsToLeft: function (direction) {
288
+ // return (direction & 0x0003) == 0x0001;
289
+ //},
290
+ //$IsToRight: function (direction) {
291
+ // return (direction & 0x0003) == 0x0002;
292
+ //},
293
+ //$IsToTop: function (direction) {
294
+ // return (direction & 0x000C) == 0x0004;
295
+ //},
296
+ //$IsToBottom: function (direction) {
297
+ // return (direction & 0x000C) == 0x0008;
298
+ //},
299
+ $IsHorizontal: function (direction) {
300
+ return direction & 0x0003;
301
+ },
302
+ $IsVertical: function (direction) {
303
+ return direction & 0x000C;
304
+ }
305
+ };
306
+
307
+ var $JssorKeyCode$ = {
308
+ $BACKSPACE: 8,
309
+ $COMMA: 188,
310
+ $DELETE: 46,
311
+ $DOWN: 40,
312
+ $END: 35,
313
+ $ENTER: 13,
314
+ $ESCAPE: 27,
315
+ $HOME: 36,
316
+ $LEFT: 37,
317
+ $NUMPAD_ADD: 107,
318
+ $NUMPAD_DECIMAL: 110,
319
+ $NUMPAD_DIVIDE: 111,
320
+ $NUMPAD_ENTER: 108,
321
+ $NUMPAD_MULTIPLY: 106,
322
+ $NUMPAD_SUBTRACT: 109,
323
+ $PAGE_DOWN: 34,
324
+ $PAGE_UP: 33,
325
+ $PERIOD: 190,
326
+ $RIGHT: 39,
327
+ $SPACE: 32,
328
+ $TAB: 9,
329
+ $UP: 38
330
+ };
331
+
332
+ // $Jssor$ is a static class, so make it singleton instance
333
+ var $Jssor$ = window.$Jssor$ = new function () {
334
+ var _This = this;
335
+
336
+ //#region Constants
337
+ var REGEX_WHITESPACE_GLOBAL = /\S+/g;
338
+ var ROWSER_UNKNOWN = 0;
339
+ var BROWSER_IE = 1;
340
+ var BROWSER_FIREFOX = 2;
341
+ var BROWSER_SAFARI = 3;
342
+ var BROWSER_CHROME = 4;
343
+ var BROWSER_OPERA = 5;
344
+ //var arrActiveX = ["Msxml2.XMLHTTP", "Msxml3.XMLHTTP", "Microsoft.XMLHTTP"];
345
+ //#endregion
346
+
347
+ //#region Variables
348
+ var _Device;
349
+ var _Browser = 0;
350
+ var _BrowserRuntimeVersion = 0;
351
+ var _BrowserEngineVersion = 0;
352
+ var _BrowserJavascriptVersion = 0;
353
+ var _WebkitVersion = 0;
354
+
355
+ var _Navigator = navigator;
356
+ var _AppName = _Navigator.appName;
357
+ var _AppVersion = _Navigator.appVersion;
358
+ var _UserAgent = _Navigator.userAgent;
359
+
360
+ var _DocElmt = document.documentElement;
361
+ var _TransformProperty;
362
+ //#endregion
363
+
364
+ function Device() {
365
+ if (!_Device) {
366
+ _Device = {
367
+ $Evt_Down: "mousedown",
368
+ $Evt_Move: "mousemove",
369
+ $Evt_Up: "mouseup"
370
+ };
371
+ var msPrefix;
372
+ if ((_Navigator.pointerEnabled || (msPrefix = _Navigator.msPointerEnabled)) && _UserAgent.match(/iemobile/i)) {
373
+ _Device = {
374
+ $Evt_Down: msPrefix ? "MSPointerDown" : "pointerdown",
375
+ $Evt_Move: msPrefix ? "MSPointerMove" : "pointermove",
376
+ $Evt_Up: msPrefix ? "MSPointerUp" : "pointerup",
377
+ $Evt_Cancel: msPrefix ? "MSPointerCancel" : "pointercancel",
378
+ $TouchActionAttr: msPrefix ? "msTouchAction" : "touchAction",
379
+ $Touchable: true
380
+ };
381
+ }
382
+ else if ("ontouchstart" in window || "createTouch" in document) {
383
+ _Device = {
384
+ $Evt_Down: "touchstart",
385
+ $Evt_Move: "touchmove",
386
+ $Evt_Up: "touchend",
387
+ $Evt_Cancel: "touchcancel",
388
+ $Touchable: true,
389
+ $TouchOnly: true
390
+ };
391
+ }
392
+ }
393
+
394
+ return _Device;
395
+ }
396
+
397
+ function DetectBrowser(browser) {
398
+ if (!_Browser) {
399
+ if (_AppName == "Microsoft Internet Explorer" &&
400
+ !!window.attachEvent && !!window.ActiveXObject) {
401
+
402
+ var ieOffset = _UserAgent.indexOf("MSIE");
403
+ _Browser = BROWSER_IE;
404
+ _BrowserEngineVersion = ParseFloat(_UserAgent.substring(ieOffset + 5, _UserAgent.indexOf(";", ieOffset)));
405
+
406
+ //check IE javascript version
407
+ /*@cc_on
408
+ _BrowserJavascriptVersion = @_jscript_version;
409
+ @*/
410
+
411
+ // update: for intranet sites and compat view list sites, IE sends
412
+ // an IE7 User-Agent to the server to be interoperable, and even if
413
+ // the page requests a later IE version, IE will still report the
414
+ // IE7 UA to JS. we should be robust to self
415
+ //var docMode = document.documentMode;
416
+ //if (typeof docMode !== "undefined") {
417
+ // _BrowserRuntimeVersion = docMode;
418
+ //}
419
+
420
+ _BrowserRuntimeVersion = document.documentMode || _BrowserEngineVersion;
421
+
422
+ }
423
+ else if (_AppName == "Netscape" && !!window.addEventListener) {
424
+
425
+ var ffOffset = _UserAgent.indexOf("Firefox");
426
+ var saOffset = _UserAgent.indexOf("Safari");
427
+ var chOffset = _UserAgent.indexOf("Chrome");
428
+ var webkitOffset = _UserAgent.indexOf("AppleWebKit");
429
+
430
+ if (ffOffset >= 0) {
431
+ _Browser = BROWSER_FIREFOX;
432
+ _BrowserRuntimeVersion = ParseFloat(_UserAgent.substring(ffOffset + 8));
433
+ }
434
+ else if (saOffset >= 0) {
435
+ var slash = _UserAgent.substring(0, saOffset).lastIndexOf("/");
436
+ _Browser = (chOffset >= 0) ? BROWSER_CHROME : BROWSER_SAFARI;
437
+ _BrowserRuntimeVersion = ParseFloat(_UserAgent.substring(slash + 1, saOffset));
438
+ }
439
+ else {
440
+ //(/Trident.*rv[ :]*11\./i
441
+ var match = /Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/i.exec(_UserAgent);
442
+ if (match) {
443
+ _Browser = BROWSER_IE;
444
+ _BrowserRuntimeVersion = _BrowserEngineVersion = ParseFloat(match[1]);
445
+ }
446
+ }
447
+
448
+ if (webkitOffset >= 0)
449
+ _WebkitVersion = ParseFloat(_UserAgent.substring(webkitOffset + 12));
450
+ }
451
+ else {
452
+ var match = /(opera)(?:.*version|)[ \/]([\w.]+)/i.exec(_UserAgent);
453
+ if (match) {
454
+ _Browser = BROWSER_OPERA;
455
+ _BrowserRuntimeVersion = ParseFloat(match[2]);
456
+ }
457
+ }
458
+ }
459
+
460
+ return browser == _Browser;
461
+ }
462
+
463
+ function IsBrowserIE() {
464
+ return DetectBrowser(BROWSER_IE);
465
+ }
466
+
467
+ function IsBrowserIeQuirks() {
468
+ return IsBrowserIE() && (_BrowserRuntimeVersion < 6 || document.compatMode == "BackCompat"); //Composite to "CSS1Compat"
469
+ }
470
+
471
+ function IsBrowserFireFox() {
472
+ return DetectBrowser(BROWSER_FIREFOX);
473
+ }
474
+
475
+ function IsBrowserSafari() {
476
+ return DetectBrowser(BROWSER_SAFARI);
477
+ }
478
+
479
+ function IsBrowserChrome() {
480
+ return DetectBrowser(BROWSER_CHROME);
481
+ }
482
+
483
+ function IsBrowserOpera() {
484
+ return DetectBrowser(BROWSER_OPERA);
485
+ }
486
+
487
+ function IsBrowserBadTransform() {
488
+ return IsBrowserSafari() && (_WebkitVersion > 534) && (_WebkitVersion < 535);
489
+ }
490
+
491
+ function IsBrowserIe9Earlier() {
492
+ return IsBrowserIE() && _BrowserRuntimeVersion < 9;
493
+ }
494
+
495
+ function GetTransformProperty(elmt) {
496
+
497
+ if (!_TransformProperty) {
498
+ // Note that in some versions of IE9 it is critical that
499
+ // msTransform appear in this list before MozTransform
500
+
501
+ each(['transform', 'WebkitTransform', 'msTransform', 'MozTransform', 'OTransform'], function (property) {
502
+ if (elmt.style[property] != undefined) {
503
+ _TransformProperty = property;
504
+ return true;
505
+ }
506
+ });
507
+
508
+ _TransformProperty = _TransformProperty || "transform";
509
+ }
510
+
511
+ return _TransformProperty;
512
+ }
513
+
514
+ // Helpers
515
+ function getOffsetParent(elmt, isFixed) {
516
+ // IE and Opera "fixed" position elements don't have offset parents.
517
+ // regardless, if it's fixed, its offset parent is the body.
518
+ if (isFixed && elmt != document.body) {
519
+ return document.body;
520
+ } else {
521
+ return elmt.offsetParent;
522
+ }
523
+ }
524
+
525
+ function toString(obj) {
526
+ return Object.prototype.toString.call(obj);
527
+ }
528
+
529
+ // [[Class]] -> type pairs
530
+ var class2type;
531
+
532
+ function each(object, callback) {
533
+ if (toString(object) == "[object Array]") {
534
+ for (var i = 0; i < object.length; i++) {
535
+ if (callback(object[i], i, object)) {
536
+ return true;
537
+ }
538
+ }
539
+ }
540
+ else {
541
+ for (var name in object) {
542
+ if (callback(object[name], name, object)) {
543
+ return true;
544
+ }
545
+ }
546
+ }
547
+ }
548
+
549
+ function GetClass2Type() {
550
+ if (!class2type) {
551
+ class2type = {};
552
+ each(["Boolean", "Number", "String", "Function", "Array", "Date", "RegExp", "Object"], function (name) {
553
+ class2type["[object " + name + "]"] = name.toLowerCase();
554
+ });
555
+ }
556
+
557
+ return class2type;
558
+ }
559
+
560
+ function type(obj) {
561
+ return obj == null ? String(obj) : GetClass2Type()[toString(obj)] || "object";
562
+ }
563
+
564
+ function isPlainObject(obj) {
565
+ // Must be an Object.
566
+ // Because of IE, we also have to check the presence of the constructor property.
567
+ // Make sure that DOM nodes and window objects don't pass through, as well
568
+ if (!obj || type(obj) !== "object" || obj.nodeType || _This.$IsWindow(obj)) {
569
+ return false;
570
+ }
571
+
572
+ var hasOwn = Object.prototype.hasOwnProperty;
573
+
574
+ try {
575
+ // Not own constructor property must be Object
576
+ if (obj.constructor &&
577
+ !hasOwn.call(obj, "constructor") &&
578
+ !hasOwn.call(obj.constructor.prototype, "isPrototypeOf")) {
579
+ return false;
580
+ }
581
+ } catch (e) {
582
+ // IE8,9 Will throw exceptions on certain host objects #9897
583
+ return false;
584
+ }
585
+
586
+ // Own properties are enumerated firstly, so to speed up,
587
+ // if last one is own, then all properties are own.
588
+
589
+ var key;
590
+ for (key in obj) { }
591
+
592
+ return key === undefined || hasOwn.call(obj, key);
593
+ }
594
+
595
+ function Point(x, y) {
596
+ return { x: x, y: y };
597
+ }
598
+
599
+ function Delay(code, delay) {
600
+ setTimeout(code, delay || 0);
601
+ }
602
+
603
+ function RemoveByReg(str, reg) {
604
+ var m = reg.exec(str);
605
+
606
+ if (m) {
607
+ var header = str.substr(0, m.index);
608
+ var tailer = str.substr(m.lastIndex + 1, str.length - (m.lastIndex + 1));
609
+ str = header + tailer;
610
+ }
611
+
612
+ return str;
613
+ }
614
+
615
+ function BuildNewCss(oldCss, removeRegs, replaceValue) {
616
+ var css = (!oldCss || oldCss == "inherit") ? "" : oldCss;
617
+
618
+ each(removeRegs, function (removeReg) {
619
+ var m = removeReg.exec(css);
620
+
621
+ if (m) {
622
+ var header = css.substr(0, m.index);
623
+ var tailer = css.substr(m.lastIndex + 1, css.length - (m.lastIndex + 1));
624
+ css = header + tailer;
625
+ }
626
+ });
627
+
628
+ css = replaceValue + (css.indexOf(" ") != 0 ? " " : "") + css;
629
+
630
+ return css;
631
+ }
632
+
633
+ function SetStyleFilterIE(elmt, value) {
634
+ if (_BrowserRuntimeVersion < 9) {
635
+ elmt.style.filter = value;
636
+ }
637
+ }
638
+
639
+ function SetStyleMatrixIE(elmt, matrix, offset) {
640
+ //matrix is not for ie9+ running in ie8- mode
641
+ if (_BrowserJavascriptVersion < 9) {
642
+ var oldFilterValue = elmt.style.filter;
643
+ var matrixReg = new RegExp(/[\s]*progid:DXImageTransform\.Microsoft\.Matrix\([^\)]*\)/g);
644
+ var matrixValue = matrix ? "progid:DXImageTransform.Microsoft.Matrix(" + "M11=" + matrix[0][0] + ", M12=" + matrix[0][1] + ", M21=" + matrix[1][0] + ", M22=" + matrix[1][1] + ", SizingMethod='auto expand')" : "";
645
+
646
+ var newFilterValue = BuildNewCss(oldFilterValue, [matrixReg], matrixValue);
647
+
648
+ SetStyleFilterIE(elmt, newFilterValue);
649
+
650
+ _This.$CssMarginTop(elmt, offset.y);
651
+ _This.$CssMarginLeft(elmt, offset.x);
652
+ }
653
+ }
654
+
655
+ // Methods
656
+
657
+ _This.$Device = Device;
658
+
659
+ _This.$IsBrowserIE = IsBrowserIE;
660
+
661
+ _This.$IsBrowserIeQuirks = IsBrowserIeQuirks;
662
+
663
+ _This.$IsBrowserFireFox = IsBrowserFireFox;
664
+
665
+ _This.$IsBrowserSafari = IsBrowserSafari;
666
+
667
+ _This.$IsBrowserChrome = IsBrowserChrome;
668
+
669
+ _This.$IsBrowserOpera = IsBrowserOpera;
670
+
671
+ _This.$IsBrowserBadTransform = IsBrowserBadTransform;
672
+
673
+ _This.$IsBrowserIe9Earlier = IsBrowserIe9Earlier;
674
+
675
+ _This.$BrowserVersion = function () {
676
+ return _BrowserRuntimeVersion;
677
+ };
678
+
679
+ _This.$BrowserEngineVersion = function () {
680
+ return _BrowserEngineVersion || _BrowserRuntimeVersion;
681
+ };
682
+
683
+ _This.$WebKitVersion = function () {
684
+ DetectBrowser();
685
+
686
+ return _WebkitVersion;
687
+ };
688
+
689
+ _This.$Delay = Delay;
690
+
691
+ _This.$Inherit = function (instance, baseClass) {
692
+ baseClass.call(instance);
693
+ return Extend({}, instance);
694
+ };
695
+
696
+ function Construct(instance) {
697
+ instance.constructor === Construct.caller && instance.$Construct && instance.$Construct.apply(instance, Construct.caller.arguments);
698
+ }
699
+
700
+ _This.$Construct = Construct;
701
+
702
+ _This.$GetElement = function (elmt) {
703
+ if (_This.$IsString(elmt)) {
704
+ elmt = document.getElementById(elmt);
705
+ }
706
+
707
+ return elmt;
708
+ };
709
+
710
+ function GetEvent(event) {
711
+ return event || window.event;
712
+ }
713
+
714
+ _This.$GetEvent = GetEvent;
715
+
716
+ _This.$EventSrc = function (event) {
717
+ event = GetEvent(event);
718
+ return event.target || event.srcElement || document;
719
+ };
720
+
721
+ _This.$EventTarget = function (event) {
722
+ event = GetEvent(event);
723
+ return event.relatedTarget || event.toElement;
724
+ };
725
+
726
+ _This.$EvtWhich = function (event) {
727
+ event = GetEvent(event);
728
+ return event.which || [0, 1, 3, 0, 2][event.button] || event.charCode || event.keyCode;
729
+ };
730
+
731
+ _This.$MousePosition = function (event) {
732
+ event = GetEvent(event);
733
+ //var body = document.body;
734
+
735
+ return {
736
+ x: event.pageX || event.clientX/* + (_DocElmt.scrollLeft || body.scrollLeft || 0) - (_DocElmt.clientLeft || body.clientLeft || 0)*/ || 0,
737
+ y: event.pageY || event.clientY/* + (_DocElmt.scrollTop || body.scrollTop || 0) - (_DocElmt.clientTop || body.clientTop || 0)*/ || 0
738
+ };
739
+ };
740
+
741
+ _This.$PageScroll = function () {
742
+ var body = document.body;
743
+
744
+ return {
745
+ x: (window.pageXOffset || _DocElmt.scrollLeft || body.scrollLeft || 0) - (_DocElmt.clientLeft || body.clientLeft || 0),
746
+ y: (window.pageYOffset || _DocElmt.scrollTop || body.scrollTop || 0) - (_DocElmt.clientTop || body.clientTop || 0)
747
+ };
748
+ };
749
+
750
+ _This.$WindowSize = function () {
751
+ var body = document.body;
752
+
753
+ return {
754
+ x: body.clientWidth || _DocElmt.clientWidth,
755
+ y: body.clientHeight || _DocElmt.clientHeight
756
+ };
757
+ };
758
+
759
+ //_This.$GetElementPosition = function (elmt) {
760
+ // elmt = _This.$GetElement(elmt);
761
+ // var result = Point();
762
+
763
+ // // technique from:
764
+ // // http://www.quirksmode.org/js/findpos.html
765
+ // // with special check for "fixed" elements.
766
+
767
+ // while (elmt) {
768
+ // result.x += elmt.offsetLeft;
769
+ // result.y += elmt.offsetTop;
770
+
771
+ // var isFixed = _This.$GetElementStyle(elmt).position == "fixed";
772
+
773
+ // if (isFixed) {
774
+ // result = result.$Plus(_This.$PageScroll(window));
775
+ // }
776
+
777
+ // elmt = getOffsetParent(elmt, isFixed);
778
+ // }
779
+
780
+ // return result;
781
+ //};
782
+
783
+ //_This.$GetMouseScroll = function (event) {
784
+ // event = GetEvent(event);
785
+ // var delta = 0; // default value
786
+
787
+ // // technique from:
788
+ // // http://blog.paranoidferret.com/index.php/2007/10/31/javascript-tutorial-the-scroll-wheel/
789
+
790
+ // if (typeof (event.wheelDelta) == "number") {
791
+ // delta = event.wheelDelta;
792
+ // } else if (typeof (event.detail) == "number") {
793
+ // delta = event.detail * -1;
794
+ // } else {
795
+ // $JssorDebug$.$Fail("Unknown event mouse scroll, no known technique.");
796
+ // }
797
+
798
+ // // normalize value to [-1, 1]
799
+ // return delta ? delta / Math.abs(delta) : 0;
800
+ //};
801
+
802
+ //_This.$MakeAjaxRequest = function (url, callback) {
803
+ // var async = typeof (callback) == "function";
804
+ // var req = null;
805
+
806
+ // if (async) {
807
+ // var actual = callback;
808
+ // var callback = function () {
809
+ // Delay($Jssor$.$CreateCallback(null, actual, req), 1);
810
+ // };
811
+ // }
812
+
813
+ // if (window.ActiveXObject) {
814
+ // for (var i = 0; i < arrActiveX.length; i++) {
815
+ // try {
816
+ // req = new ActiveXObject(arrActiveX[i]);
817
+ // break;
818
+ // } catch (e) {
819
+ // continue;
820
+ // }
821
+ // }
822
+ // } else if (window.XMLHttpRequest) {
823
+ // req = new XMLHttpRequest();
824
+ // }
825
+
826
+ // if (!req) {
827
+ // $JssorDebug$.$Fail("Browser doesn't support XMLHttpRequest.");
828
+ // }
829
+
830
+ // if (async) {
831
+ // req.onreadystatechange = function () {
832
+ // if (req.readyState == 4) {
833
+ // // prevent memory leaks by breaking circular reference now
834
+ // req.onreadystatechange = new Function();
835
+ // callback();
836
+ // }
837
+ // };
838
+ // }
839
+
840
+ // try {
841
+ // req.open("GET", url, async);
842
+ // req.send(null);
843
+ // } catch (e) {
844
+ // $JssorDebug$.$Log(e.name + " while making AJAX request: " + e.message);
845
+
846
+ // req.onreadystatechange = null;
847
+ // req = null;
848
+
849
+ // if (async) {
850
+ // callback();
851
+ // }
852
+ // }
853
+
854
+ // return async ? null : req;
855
+ //};
856
+
857
+ //_This.$ParseXml = function (string) {
858
+ // var xmlDoc = null;
859
+
860
+ // if (window.ActiveXObject) {
861
+ // try {
862
+ // xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
863
+ // xmlDoc.async = false;
864
+ // xmlDoc.loadXML(string);
865
+ // } catch (e) {
866
+ // $JssorDebug$.$Log(e.name + " while parsing XML (ActiveX): " + e.message);
867
+ // }
868
+ // } else if (window.DOMParser) {
869
+ // try {
870
+ // var parser = new DOMParser();
871
+ // xmlDoc = parser.parseFromString(string, "text/xml");
872
+ // } catch (e) {
873
+ // $JssorDebug$.$Log(e.name + " while parsing XML (DOMParser): " + e.message);
874
+ // }
875
+ // } else {
876
+ // $JssorDebug$.$Fail("Browser doesn't support XML DOM.");
877
+ // }
878
+
879
+ // return xmlDoc;
880
+ //};
881
+
882
+ function Css(elmt, name, value) {
883
+ /// <summary>
884
+ /// access css
885
+ /// $Jssor$.$Css(elmt, name); //get css value
886
+ /// $Jssor$.$Css(elmt, name, value); //set css value
887
+ /// </summary>
888
+ /// <param name="elmt" type="HTMLElement">
889
+ /// the element to access css
890
+ /// </param>
891
+ /// <param name="name" type="String">
892
+ /// the name of css property
893
+ /// </param>
894
+ /// <param name="value" optional="true">
895
+ /// the value to set
896
+ /// </param>
897
+ if (value != undefined) {
898
+ elmt.style[name] = value;
899
+ }
900
+ else {
901
+ var style = elmt.currentStyle || elmt.style;
902
+ value = style[name];
903
+
904
+ if (value == "" && window.getComputedStyle) {
905
+ style = elmt.ownerDocument.defaultView.getComputedStyle(elmt, null);
906
+
907
+ style && (value = style.getPropertyValue(name) || style[name]);
908
+ }
909
+
910
+ return value;
911
+ }
912
+ }
913
+
914
+ function CssN(elmt, name, value, isDimensional) {
915
+ /// <summary>
916
+ /// access css as numeric
917
+ /// $Jssor$.$CssN(elmt, name); //get css value
918
+ /// $Jssor$.$CssN(elmt, name, value); //set css value
919
+ /// </summary>
920
+ /// <param name="elmt" type="HTMLElement">
921
+ /// the element to access css
922
+ /// </param>
923
+ /// <param name="name" type="String">
924
+ /// the name of css property
925
+ /// </param>
926
+ /// <param name="value" type="Number" optional="true">
927
+ /// the value to set
928
+ /// </param>
929
+ if (value != undefined) {
930
+ isDimensional && (value += "px");
931
+ Css(elmt, name, value);
932
+ }
933
+ else {
934
+ return ParseFloat(Css(elmt, name));
935
+ }
936
+ }
937
+
938
+ function CssP(elmt, name, value) {
939
+ /// <summary>
940
+ /// access css in pixel as numeric, like 'top', 'left', 'width', 'height'
941
+ /// $Jssor$.$CssP(elmt, name); //get css value
942
+ /// $Jssor$.$CssP(elmt, name, value); //set css value
943
+ /// </summary>
944
+ /// <param name="elmt" type="HTMLElement">
945
+ /// the element to access css
946
+ /// </param>
947
+ /// <param name="name" type="String">
948
+ /// the name of css property
949
+ /// </param>
950
+ /// <param name="value" type="Number" optional="true">
951
+ /// the value to set
952
+ /// </param>
953
+ return CssN(elmt, name, value, true);
954
+ }
955
+
956
+ function CssProxy(name, numericOrDimension) {
957
+ /// <summary>
958
+ /// create proxy to access css, CssProxy(name[, numericOrDimension]);
959
+ /// </summary>
960
+ /// <param name="elmt" type="HTMLElement">
961
+ /// the element to access css
962
+ /// </param>
963
+ /// <param name="numericOrDimension" type="Number" optional="true">
964
+ /// not set: access original css, 1: access css as numeric, 2: access css in pixel as numeric
965
+ /// </param>
966
+ var isDimensional = numericOrDimension & 2;
967
+ var cssAccessor = numericOrDimension ? CssN : Css;
968
+ return function (elmt, value) {
969
+ return cssAccessor(elmt, name, value, isDimensional);
970
+ };
971
+ }
972
+
973
+ function GetStyleOpacity(elmt) {
974
+ if (IsBrowserIE() && _BrowserEngineVersion < 9) {
975
+ var match = /opacity=([^)]*)/.exec(elmt.style.filter || "");
976
+ return match ? (ParseFloat(match[1]) / 100) : 1;
977
+ }
978
+ else
979
+ return ParseFloat(elmt.style.opacity || "1");
980
+ }
981
+
982
+ function SetStyleOpacity(elmt, opacity, ie9EarlierForce) {
983
+
984
+ if (IsBrowserIE() && _BrowserEngineVersion < 9) {
985
+ //var filterName = "filter"; // _BrowserEngineVersion < 8 ? "filter" : "-ms-filter";
986
+ var finalFilter = elmt.style.filter || "";
987
+
988
+ // for CSS filter browsers (IE), remove alpha filter if it's unnecessary.
989
+ // update: doing _This always since IE9 beta seems to have broken the
990
+ // behavior if we rely on the programmatic filters collection.
991
+ var alphaReg = new RegExp(/[\s]*alpha\([^\)]*\)/g);
992
+
993
+ // important: note the lazy star! _This protects against
994
+ // multiple filters; we don't want to delete the other ones.
995
+ // update: also trimming extra whitespace around filter.
996
+
997
+ var ieOpacity = Math.round(100 * opacity);
998
+ var alphaFilter = "";
999
+ if (ieOpacity < 100 || ie9EarlierForce) {
1000
+ alphaFilter = "alpha(opacity=" + ieOpacity + ") ";
1001
+ }
1002
+
1003
+ var newFilterValue = BuildNewCss(finalFilter, [alphaReg], alphaFilter);
1004
+
1005
+ SetStyleFilterIE(elmt, newFilterValue);
1006
+ }
1007
+ else {
1008
+ elmt.style.opacity = opacity == 1 ? "" : Math.round(opacity * 100) / 100;
1009
+ }
1010
+ }
1011
+
1012
+ function SetStyleTransformInternal(elmt, transform) {
1013
+ var rotate = transform.$Rotate || 0;
1014
+ var scale = transform.$Scale == undefined ? 1 : transform.$Scale;
1015
+
1016
+ if (IsBrowserIe9Earlier()) {
1017
+ var matrix = _This.$CreateMatrix(rotate / 180 * Math.PI, scale, scale);
1018
+ SetStyleMatrixIE(elmt, (!rotate && scale == 1) ? null : matrix, _This.$GetMatrixOffset(matrix, transform.$OriginalWidth, transform.$OriginalHeight));
1019
+ }
1020
+ else {
1021
+ //rotate(15deg) scale(.5) translateZ(0)
1022
+ var transformProperty = GetTransformProperty(elmt);
1023
+ if (transformProperty) {
1024
+ var transformValue = "rotate(" + rotate % 360 + "deg) scale(" + scale + ")";
1025
+
1026
+ //needed for touch device, no need for desktop device
1027
+ if (IsBrowserChrome() && _WebkitVersion > 535 && "ontouchstart" in window)
1028
+ transformValue += " perspective(2000px)";
1029
+
1030
+ elmt.style[transformProperty] = transformValue;
1031
+ }
1032
+ }
1033
+ }
1034
+
1035
+ _This.$SetStyleTransform = function (elmt, transform) {
1036
+ if (IsBrowserBadTransform()) {
1037
+ Delay(_This.$CreateCallback(null, SetStyleTransformInternal, elmt, transform));
1038
+ }
1039
+ else {
1040
+ SetStyleTransformInternal(elmt, transform);
1041
+ }
1042
+ };
1043
+
1044
+ _This.$SetStyleTransformOrigin = function (elmt, transformOrigin) {
1045
+ var transformProperty = GetTransformProperty(elmt);
1046
+
1047
+ if (transformProperty)
1048
+ elmt.style[transformProperty + "Origin"] = transformOrigin;
1049
+ };
1050
+
1051
+ _This.$CssScale = function (elmt, scale) {
1052
+
1053
+ if (IsBrowserIE() && _BrowserEngineVersion < 9 || (_BrowserEngineVersion < 10 && IsBrowserIeQuirks())) {
1054
+ elmt.style.zoom = (scale == 1) ? "" : scale;
1055
+ }
1056
+ else {
1057
+ var transformProperty = GetTransformProperty(elmt);
1058
+
1059
+ if (transformProperty) {
1060
+ //rotate(15deg) scale(.5)
1061
+ var transformValue = "scale(" + scale + ")";
1062
+
1063
+ var oldTransformValue = elmt.style[transformProperty];
1064
+ var scaleReg = new RegExp(/[\s]*scale\(.*?\)/g);
1065
+
1066
+ var newTransformValue = BuildNewCss(oldTransformValue, [scaleReg], transformValue);
1067
+
1068
+ elmt.style[transformProperty] = newTransformValue;
1069
+ }
1070
+ }
1071
+ };
1072
+
1073
+ _This.$EnableHWA = function (elmt) {
1074
+ if (!elmt.style[GetTransformProperty(elmt)] || elmt.style[GetTransformProperty(elmt)] == "none")
1075
+ elmt.style[GetTransformProperty(elmt)] = "perspective(2000px)";
1076
+ };
1077
+
1078
+ _This.$DisableHWA = function (elmt) {
1079
+ elmt.style[GetTransformProperty(elmt)] = "none";
1080
+ };
1081
+
1082
+ var ie8OffsetWidth = 0;
1083
+ var ie8OffsetHeight = 0;
1084
+
1085
+ _This.$WindowResizeFilter = function (window, handler) {
1086
+ return IsBrowserIe9Earlier() ? function () {
1087
+
1088
+ var trigger = true;
1089
+
1090
+ var checkElement = (IsBrowserIeQuirks() ? window.document.body : window.document.documentElement);
1091
+ if (checkElement) {
1092
+ var widthChange = checkElement.offsetWidth - ie8OffsetWidth;
1093
+ var heightChange = checkElement.offsetHeight - ie8OffsetHeight;
1094
+ if (widthChange || heightChange) {
1095
+ ie8OffsetWidth += widthChange;
1096
+ ie8OffsetHeight += heightChange;
1097
+ }
1098
+ else
1099
+ trigger = false;
1100
+ }
1101
+
1102
+ trigger && handler();
1103
+
1104
+ } : handler;
1105
+ };
1106
+
1107
+ _This.$MouseOverOutFilter = function (handler, target) {
1108
+ /// <param name="target" type="HTMLDomElement">
1109
+ /// The target element to detect mouse over/out events. (for ie < 9 compatibility)
1110
+ /// </param>
1111
+
1112
+ $JssorDebug$.$Execute(function () {
1113
+ if (!target) {
1114
+ throw new Error("Null reference, parameter \"target\".");
1115
+ }
1116
+ });
1117
+
1118
+ return function (event) {
1119
+ event = GetEvent(event);
1120
+
1121
+ var eventName = event.type;
1122
+ var related = event.relatedTarget || (eventName == "mouseout" ? event.toElement : event.fromElement);
1123
+
1124
+ if (!related || (related !== target && !_This.$IsChild(target, related))) {
1125
+ handler(event);
1126
+ }
1127
+ };
1128
+ };
1129
+
1130
+ _This.$AddEvent = function (elmt, eventName, handler, useCapture) {
1131
+ elmt = _This.$GetElement(elmt);
1132
+
1133
+ $JssorDebug$.$Execute(function () {
1134
+ if (!elmt) {
1135
+ $JssorDebug$.$Fail("Parameter 'elmt' not specified.");
1136
+ }
1137
+
1138
+ if (!handler) {
1139
+ $JssorDebug$.$Fail("Parameter 'handler' not specified.");
1140
+ }
1141
+
1142
+ if (!elmt.addEventListener && !elmt.attachEvent) {
1143
+ $JssorDebug$.$Fail("Unable to attach event handler, no known technique.");
1144
+ }
1145
+ });
1146
+
1147
+ // technique from:
1148
+ // http://blog.paranoidferret.com/index.php/2007/08/10/javascript-working-with-events/
1149
+
1150
+ if (elmt.addEventListener) {
1151
+ if (eventName == "mousewheel") {
1152
+ elmt.addEventListener("DOMMouseScroll", handler, useCapture);
1153
+ }
1154
+ // we are still going to add the mousewheel -- not a mistake!
1155
+ // _This is for opera, since it uses onmousewheel but needs addEventListener.
1156
+ elmt.addEventListener(eventName, handler, useCapture);
1157
+ }
1158
+ else if (elmt.attachEvent) {
1159
+ elmt.attachEvent("on" + eventName, handler);
1160
+ if (useCapture && elmt.setCapture) {
1161
+ elmt.setCapture();
1162
+ }
1163
+ }
1164
+ };
1165
+
1166
+ _This.$RemoveEvent = function (elmt, eventName, handler, useCapture) {
1167
+ elmt = _This.$GetElement(elmt);
1168
+
1169
+ // technique from:
1170
+ // http://blog.paranoidferret.com/index.php/2007/08/10/javascript-working-with-events/
1171
+
1172
+ if (elmt.removeEventListener) {
1173
+ if (eventName == "mousewheel") {
1174
+ elmt.removeEventListener("DOMMouseScroll", handler, useCapture);
1175
+ }
1176
+ // we are still going to remove the mousewheel -- not a mistake!
1177
+ // _This is for opera, since it uses onmousewheel but needs removeEventListener.
1178
+ elmt.removeEventListener(eventName, handler, useCapture);
1179
+ }
1180
+ else if (elmt.detachEvent) {
1181
+ elmt.detachEvent("on" + eventName, handler);
1182
+ if (useCapture && elmt.releaseCapture) {
1183
+ elmt.releaseCapture();
1184
+ }
1185
+ }
1186
+ };
1187
+
1188
+ _This.$FireEvent = function (elmt, eventName) {
1189
+ //var document = elmt.document;
1190
+
1191
+ $JssorDebug$.$Execute(function () {
1192
+ if (!document.createEvent && !document.createEventObject) {
1193
+ $JssorDebug$.$Fail("Unable to fire event, no known technique.");
1194
+ }
1195
+
1196
+ if (!elmt.dispatchEvent && !elmt.fireEvent) {
1197
+ $JssorDebug$.$Fail("Unable to fire event, no known technique.");
1198
+ }
1199
+ });
1200
+
1201
+ var evento;
1202
+
1203
+ if (document.createEvent) {
1204
+ evento = document.createEvent("HTMLEvents");
1205
+ evento.initEvent(eventName, false, false);
1206
+ elmt.dispatchEvent(evento);
1207
+ }
1208
+ else {
1209
+ var ieEventName = "on" + eventName;
1210
+ evento = document.createEventObject();
1211
+
1212
+ elmt.fireEvent(ieEventName, evento);
1213
+ }
1214
+ };
1215
+
1216
+ _This.$CancelEvent = function (event) {
1217
+ event = GetEvent(event);
1218
+
1219
+ // technique from:
1220
+ // http://blog.paranoidferret.com/index.php/2007/08/10/javascript-working-with-events/
1221
+
1222
+ if (event.preventDefault) {
1223
+ event.preventDefault(); // W3C for preventing default
1224
+ }
1225
+
1226
+ event.cancel = true; // legacy for preventing default
1227
+ event.returnValue = false; // IE for preventing default
1228
+ };
1229
+
1230
+ _This.$StopEvent = function (event) {
1231
+ event = GetEvent(event);
1232
+
1233
+ // technique from:
1234
+ // http://blog.paranoidferret.com/index.php/2007/08/10/javascript-working-with-events/
1235
+
1236
+ if (event.stopPropagation) {
1237
+ event.stopPropagation(); // W3C for stopping propagation
1238
+ }
1239
+
1240
+ event.cancelBubble = true; // IE for stopping propagation
1241
+ };
1242
+
1243
+ _This.$CreateCallback = function (object, method) {
1244
+ // create callback args
1245
+ var initialArgs = [].slice.call(arguments, 2);
1246
+
1247
+ // create closure to apply method
1248
+ var callback = function () {
1249
+ // concatenate new args, but make a copy of initialArgs first
1250
+ var args = initialArgs.concat([].slice.call(arguments, 0));
1251
+
1252
+ return method.apply(object, args);
1253
+ };
1254
+
1255
+ //$JssorDebug$.$LiveStamp(callback, "callback_" + ($Jssor$.$GetNow() & 0xFFFFFF));
1256
+
1257
+ return callback;
1258
+ };
1259
+
1260
+ _This.$InnerText = function (elmt, text) {
1261
+ if (text == undefined)
1262
+ return elmt.textContent || elmt.innerText;
1263
+
1264
+ var textNode = document.createTextNode(text);
1265
+ _This.$Empty(elmt);
1266
+ elmt.appendChild(textNode);
1267
+ };
1268
+
1269
+ _This.$InnerHtml = function (elmt, html) {
1270
+ if (html == undefined)
1271
+ return elmt.innerHTML;
1272
+
1273
+ elmt.innerHTML = html;
1274
+ };
1275
+
1276
+ _This.$GetClientRect = function (elmt) {
1277
+ var rect = elmt.getBoundingClientRect();
1278
+
1279
+ return { x: rect.left, y: rect.top, w: rect.right - rect.left, h: rect.bottom - rect.top };
1280
+ };
1281
+
1282
+ _This.$ClearInnerHtml = function (elmt) {
1283
+ elmt.innerHTML = "";
1284
+ };
1285
+
1286
+ _This.$EncodeHtml = function (text) {
1287
+ var div = _This.$CreateDiv();
1288
+ _This.$InnerText(div, text);
1289
+ return _This.$InnerHtml(div);
1290
+ };
1291
+
1292
+ _This.$DecodeHtml = function (html) {
1293
+ var div = _This.$CreateDiv();
1294
+ _This.$InnerHtml(div, html);
1295
+ return _This.$InnerText(div);
1296
+ };
1297
+
1298
+ _This.$SelectElement = function (elmt) {
1299
+ var userSelection;
1300
+ if (window.getSelection) {
1301
+ //W3C default
1302
+ userSelection = window.getSelection();
1303
+ }
1304
+ var theRange = null;
1305
+ if (document.createRange) {
1306
+ theRange = document.createRange();
1307
+ theRange.selectNode(elmt);
1308
+ }
1309
+ else {
1310
+ theRange = document.body.createTextRange();
1311
+ theRange.moveToElementText(elmt);
1312
+ theRange.select();
1313
+ }
1314
+ //set user selection
1315
+ if (userSelection)
1316
+ userSelection.addRange(theRange);
1317
+ };
1318
+
1319
+ _This.$DeselectElements = function () {
1320
+ if (document.selection) {
1321
+ document.selection.empty();
1322
+ } else if (window.getSelection) {
1323
+ window.getSelection().removeAllRanges();
1324
+ }
1325
+ };
1326
+
1327
+ _This.$Children = function (elmt, includeAll) {
1328
+ var children = [];
1329
+
1330
+ for (var tmpEl = elmt.firstChild; tmpEl; tmpEl = tmpEl.nextSibling) {
1331
+ if (includeAll || tmpEl.nodeType == 1) {
1332
+ children.push(tmpEl);
1333
+ }
1334
+ }
1335
+
1336
+ return children;
1337
+ };
1338
+
1339
+ function FindChild(elmt, attrValue, noDeep, attrName) {
1340
+ attrName = attrName || "u";
1341
+
1342
+ for (elmt = elmt ? elmt.firstChild : null; elmt; elmt = elmt.nextSibling) {
1343
+ if (elmt.nodeType == 1) {
1344
+ if (AttributeEx(elmt, attrName) == attrValue)
1345
+ return elmt;
1346
+
1347
+ if (!noDeep) {
1348
+ var childRet = FindChild(elmt, attrValue, noDeep, attrName);
1349
+ if (childRet)
1350
+ return childRet;
1351
+ }
1352
+ }
1353
+ }
1354
+ }
1355
+
1356
+ _This.$FindChild = FindChild;
1357
+
1358
+ function FindChildren(elmt, attrValue, noDeep, attrName) {
1359
+ attrName = attrName || "u";
1360
+
1361
+ var ret = [];
1362
+
1363
+ for (elmt = elmt ? elmt.firstChild : null; elmt; elmt = elmt.nextSibling) {
1364
+ if (elmt.nodeType == 1) {
1365
+ if (AttributeEx(elmt, attrName) == attrValue)
1366
+ ret.push(elmt);
1367
+
1368
+ if (!noDeep) {
1369
+ var childRet = FindChildren(elmt, attrValue, noDeep, attrName);
1370
+ if (childRet.length)
1371
+ ret = ret.concat(childRet);
1372
+ }
1373
+ }
1374
+ }
1375
+
1376
+ return ret;
1377
+ }
1378
+
1379
+ _This.$FindChildren = FindChildren;
1380
+
1381
+ function FindChildByTag(elmt, tagName, noDeep) {
1382
+
1383
+ for (elmt = elmt ? elmt.firstChild : null; elmt; elmt = elmt.nextSibling) {
1384
+ if (elmt.nodeType == 1) {
1385
+ if (elmt.tagName == tagName)
1386
+ return elmt;
1387
+
1388
+ if (!noDeep) {
1389
+ var childRet = FindChildByTag(elmt, tagName, noDeep);
1390
+ if (childRet)
1391
+ return childRet;
1392
+ }
1393
+ }
1394
+ }
1395
+ }
1396
+
1397
+ _This.$FindChildByTag = FindChildByTag;
1398
+
1399
+ function FindChildrenByTag(elmt, tagName, noDeep) {
1400
+ var ret = [];
1401
+
1402
+ for (elmt = elmt ? elmt.firstChild : null; elmt; elmt = elmt.nextSibling) {
1403
+ if (elmt.nodeType == 1) {
1404
+ if (!tagName || elmt.tagName == tagName)
1405
+ ret.push(elmt);
1406
+
1407
+ if (!noDeep) {
1408
+ var childRet = FindChildrenByTag(elmt, tagName, noDeep);
1409
+ if (childRet.length)
1410
+ ret = ret.concat(childRet);
1411
+ }
1412
+ }
1413
+ }
1414
+
1415
+ return ret;
1416
+ }
1417
+
1418
+ _This.$FindChildrenByTag = FindChildrenByTag;
1419
+
1420
+ _This.$GetElementsByTag = function (elmt, tagName) {
1421
+ return elmt.getElementsByTagName(tagName);
1422
+ };
1423
+
1424
+ function Extend(target) {
1425
+ for (var i = 1; i < arguments.length; i++) {
1426
+
1427
+ var options = arguments[i];
1428
+
1429
+ // Only deal with non-null/undefined values
1430
+ if (options) {
1431
+ // Extend the base object
1432
+ for (var name in options) {
1433
+ target[name] = options[name];
1434
+ }
1435
+ }
1436
+ }
1437
+
1438
+ // Return the modified object
1439
+ return target;
1440
+ }
1441
+
1442
+ _This.$Extend = Extend;
1443
+
1444
+ function Unextend(target, options) {
1445
+ $JssorDebug$.$Assert(options);
1446
+
1447
+ var unextended = {};
1448
+
1449
+ // Extend the base object
1450
+ for (var name in target) {
1451
+ if (target[name] !== options[name]) {
1452
+ unextended[name] = target[name];
1453
+ }
1454
+ }
1455
+
1456
+ // Return the modified object
1457
+ return unextended;
1458
+ }
1459
+
1460
+ _This.$Unextend = Unextend;
1461
+
1462
+ _This.$IsUndefined = function (obj) {
1463
+ return type(obj) == "undefined";
1464
+ };
1465
+
1466
+ _This.$IsFunction = function (obj) {
1467
+ return type(obj) == "function";
1468
+ };
1469
+
1470
+ _This.$IsArray = function (obj) {
1471
+ return type(obj) == "array";
1472
+ };
1473
+
1474
+ _This.$IsString = function (obj) {
1475
+ return type(obj) == "string";
1476
+ };
1477
+
1478
+ _This.$IsNumeric = function (obj) {
1479
+ return !isNaN(ParseFloat(obj)) && isFinite(obj);
1480
+ };
1481
+
1482
+ _This.$IsWindow = function (obj) {
1483
+ return obj && obj == obj.window;
1484
+ };
1485
+
1486
+ _This.$Type = type;
1487
+
1488
+ // args is for internal usage only
1489
+ _This.$Each = each;
1490
+
1491
+ _This.$IsPlainObject = isPlainObject;
1492
+
1493
+ function CreateElement(tagName) {
1494
+ return document.createElement(tagName);
1495
+ }
1496
+
1497
+ _This.$CreateElement = CreateElement;
1498
+
1499
+ _This.$CreateDiv = function () {
1500
+ return CreateElement("DIV", document);
1501
+ };
1502
+
1503
+ _This.$CreateSpan = function () {
1504
+ return CreateElement("SPAN", document);
1505
+ };
1506
+
1507
+ _This.$EmptyFunction = function () { };
1508
+
1509
+ function Attribute(elmt, name, value) {
1510
+ if (value == undefined)
1511
+ return elmt.getAttribute(name);
1512
+
1513
+ elmt.setAttribute(name, value);
1514
+ }
1515
+
1516
+ function AttributeEx(elmt, name) {
1517
+ return Attribute(elmt, name) || Attribute(elmt, "data-" + name);
1518
+ }
1519
+
1520
+ _This.$Attribute = Attribute;
1521
+ _This.$AttributeEx = AttributeEx;
1522
+
1523
+ function ClassName(elmt, className) {
1524
+ if (className == undefined)
1525
+ return elmt.className;
1526
+
1527
+ elmt.className = className;
1528
+ }
1529
+
1530
+ _This.$ClassName = ClassName;
1531
+
1532
+ function ToHash(array) {
1533
+ var hash = {};
1534
+
1535
+ each(array, function (item) {
1536
+ hash[item] = item;
1537
+ });
1538
+
1539
+ return hash;
1540
+ }
1541
+
1542
+ function Split(str, separator) {
1543
+ return str.match(separator || REGEX_WHITESPACE_GLOBAL);
1544
+ }
1545
+
1546
+ function StringToHashObject(str, regExp) {
1547
+ return ToHash(Split(str || "", regExp));
1548
+ }
1549
+
1550
+ _This.$ToHash = ToHash;
1551
+ _This.$Split = Split;
1552
+
1553
+ function Join(separator, strings) {
1554
+ /// <param name="separator" type="String">
1555
+ /// </param>
1556
+ /// <param name="strings" type="Array" value="['1']">
1557
+ /// </param>
1558
+
1559
+ var joined = "";
1560
+
1561
+ each(strings, function (str) {
1562
+ joined && (joined += separator);
1563
+ joined += str;
1564
+ });
1565
+
1566
+ return joined;
1567
+ }
1568
+
1569
+ function ReplaceClass(elmt, oldClassName, newClassName) {
1570
+ ClassName(elmt, Join(" ", Extend(Unextend(StringToHashObject(ClassName(elmt)), StringToHashObject(oldClassName)), StringToHashObject(newClassName))));
1571
+ }
1572
+
1573
+ _This.$Join = Join;
1574
+
1575
+ _This.$AddClass = function (elmt, className) {
1576
+ ReplaceClass(elmt, null, className);
1577
+ };
1578
+
1579
+ _This.$RemoveClass = ReplaceClass;
1580
+
1581
+ _This.$ReplaceClass = ReplaceClass;
1582
+
1583
+ _This.$ParentNode = function (elmt) {
1584
+ return elmt.parentNode;
1585
+ };
1586
+
1587
+ _This.$HideElement = function (elmt) {
1588
+ _This.$CssDisplay(elmt, "none");
1589
+ };
1590
+
1591
+ _This.$EnableElement = function (elmt, notEnable) {
1592
+ if (notEnable) {
1593
+ _This.$Attribute(elmt, "disabled", true);
1594
+ }
1595
+ else {
1596
+ _This.$RemoveAttribute(elmt, "disabled");
1597
+ }
1598
+ };
1599
+
1600
+ _This.$HideElements = function (elmts) {
1601
+ for (var i = 0; i < elmts.length; i++) {
1602
+ _This.$HideElement(elmts[i]);
1603
+ }
1604
+ };
1605
+
1606
+ _This.$ShowElement = function (elmt, hide) {
1607
+ _This.$CssDisplay(elmt, hide ? "none" : "");
1608
+ };
1609
+
1610
+ _This.$ShowElements = function (elmts, hide) {
1611
+ for (var i = 0; i < elmts.length; i++) {
1612
+ _This.$ShowElement(elmts[i], hide);
1613
+ }
1614
+ };
1615
+
1616
+ _This.$RemoveAttribute = function (elmt, attrbuteName) {
1617
+ elmt.removeAttribute(attrbuteName);
1618
+ };
1619
+
1620
+ _This.$CanClearClip = function () {
1621
+ return IsBrowserIE() && _BrowserRuntimeVersion < 10;
1622
+ };
1623
+
1624
+ _This.$SetStyleClip = function (elmt, clip) {
1625
+ if (clip) {
1626
+ elmt.style.clip = "rect(" + Math.round(clip.$Top) + "px " + Math.round(clip.$Right) + "px " + Math.round(clip.$Bottom) + "px " + Math.round(clip.$Left) + "px)";
1627
+ }
1628
+ else {
1629
+ var cssText = elmt.style.cssText;
1630
+ var clipRegs = [
1631
+ new RegExp(/[\s]*clip: rect\(.*?\)[;]?/i),
1632
+ new RegExp(/[\s]*cliptop: .*?[;]?/i),
1633
+ new RegExp(/[\s]*clipright: .*?[;]?/i),
1634
+ new RegExp(/[\s]*clipbottom: .*?[;]?/i),
1635
+ new RegExp(/[\s]*clipleft: .*?[;]?/i)
1636
+ ];
1637
+
1638
+ var newCssText = BuildNewCss(cssText, clipRegs, "");
1639
+
1640
+ $Jssor$.$CssCssText(elmt, newCssText);
1641
+ }
1642
+ };
1643
+
1644
+ _This.$GetNow = function () {
1645
+ return new Date().getTime();
1646
+ };
1647
+
1648
+ _This.$AppendChild = function (elmt, child) {
1649
+ elmt.appendChild(child);
1650
+ };
1651
+
1652
+ _This.$AppendChildren = function (elmt, children) {
1653
+ each(children, function (child) {
1654
+ _This.$AppendChild(elmt, child);
1655
+ });
1656
+ };
1657
+
1658
+ _This.$InsertBefore = function (newNode, refNode, pNode) {
1659
+ /// <summary>
1660
+ /// Insert a node before a reference node
1661
+ /// </summary>
1662
+ /// <param name="newNode" type="HTMLElement">
1663
+ /// A new node to insert
1664
+ /// </param>
1665
+ /// <param name="refNode" type="HTMLElement">
1666
+ /// The reference node to insert a new node before
1667
+ /// </param>
1668
+ /// <param name="pNode" type="HTMLElement" optional="true">
1669
+ /// The parent node to insert node to
1670
+ /// </param>
1671
+
1672
+ (pNode || refNode.parentNode).insertBefore(newNode, refNode);
1673
+ };
1674
+
1675
+ _This.$InsertAfter = function (newNode, refNode, pNode) {
1676
+ /// <summary>
1677
+ /// Insert a node after a reference node
1678
+ /// </summary>
1679
+ /// <param name="newNode" type="HTMLElement">
1680
+ /// A new node to insert
1681
+ /// </param>
1682
+ /// <param name="refNode" type="HTMLElement">
1683
+ /// The reference node to insert a new node after
1684
+ /// </param>
1685
+ /// <param name="pNode" type="HTMLElement" optional="true">
1686
+ /// The parent node to insert node to
1687
+ /// </param>
1688
+
1689
+ _This.$InsertBefore(newNode, refNode.nextSibling, pNode || refNode.parentNode);
1690
+ };
1691
+
1692
+ _This.$InsertAdjacentHtml = function (elmt, where, html) {
1693
+ elmt.insertAdjacentHTML(where, html);
1694
+ };
1695
+
1696
+ _This.$RemoveElement = function (elmt, pNode) {
1697
+ /// <summary>
1698
+ /// Remove element from parent node
1699
+ /// </summary>
1700
+ /// <param name="elmt" type="HTMLElement">
1701
+ /// The element to remove
1702
+ /// </param>
1703
+ /// <param name="pNode" type="HTMLElement" optional="true">
1704
+ /// The parent node to remove elment from
1705
+ /// </param>
1706
+ (pNode || elmt.parentNode).removeChild(elmt);
1707
+ };
1708
+
1709
+ _This.$RemoveElements = function (elmts, pNode) {
1710
+ each(elmts, function (elmt) {
1711
+ _This.$RemoveElement(elmt, pNode);
1712
+ });
1713
+ };
1714
+
1715
+ _This.$Empty = function (elmt) {
1716
+ _This.$RemoveElements(_This.$Children(elmt, true), elmt);
1717
+ };
1718
+
1719
+ _This.$ParseInt = function (str, radix) {
1720
+ return parseInt(str, radix || 10);
1721
+ };
1722
+
1723
+ var ParseFloat = parseFloat;
1724
+
1725
+ _This.$ParseFloat = ParseFloat;
1726
+
1727
+ _This.$IsChild = function (elmtA, elmtB) {
1728
+ var body = document.body;
1729
+
1730
+ while (elmtB && elmtA !== elmtB && body !== elmtB) {
1731
+ try {
1732
+ elmtB = elmtB.parentNode;
1733
+ } catch (e) {
1734
+ // Firefox sometimes fires events for XUL elements, which throws
1735
+ // a "permission denied" error. so this is not a child.
1736
+ return false;
1737
+ }
1738
+ }
1739
+
1740
+ return elmtA === elmtB;
1741
+ };
1742
+
1743
+ function CloneNode(elmt, noDeep, keepId) {
1744
+ var clone = elmt.cloneNode(!noDeep);
1745
+ if (!keepId) {
1746
+ _This.$RemoveAttribute(clone, "id");
1747
+ }
1748
+
1749
+ return clone;
1750
+ }
1751
+
1752
+ _This.$CloneNode = CloneNode;
1753
+
1754
+ _This.$LoadImage = function (src, callback) {
1755
+ var image = new Image();
1756
+
1757
+ function LoadImageCompleteHandler(event, abort) {
1758
+ _This.$RemoveEvent(image, "load", LoadImageCompleteHandler);
1759
+ _This.$RemoveEvent(image, "abort", ErrorOrAbortHandler);
1760
+ _This.$RemoveEvent(image, "error", ErrorOrAbortHandler);
1761
+
1762
+ if (callback)
1763
+ callback(image, abort);
1764
+ }
1765
+
1766
+ function ErrorOrAbortHandler(event) {
1767
+ LoadImageCompleteHandler(event, true);
1768
+ }
1769
+
1770
+ if (IsBrowserOpera() && _BrowserRuntimeVersion < 11.6 || !src) {
1771
+ LoadImageCompleteHandler(!src);
1772
+ }
1773
+ else {
1774
+
1775
+ _This.$AddEvent(image, "load", LoadImageCompleteHandler);
1776
+ _This.$AddEvent(image, "abort", ErrorOrAbortHandler);
1777
+ _This.$AddEvent(image, "error", ErrorOrAbortHandler);
1778
+
1779
+ image.src = src;
1780
+ }
1781
+ };
1782
+
1783
+ _This.$LoadImages = function (imageElmts, mainImageElmt, callback) {
1784
+
1785
+ var _ImageLoading = imageElmts.length + 1;
1786
+
1787
+ function LoadImageCompleteEventHandler(image, abort) {
1788
+
1789
+ _ImageLoading--;
1790
+ if (mainImageElmt && image && image.src == mainImageElmt.src)
1791
+ mainImageElmt = image;
1792
+ !_ImageLoading && callback && callback(mainImageElmt);
1793
+ }
1794
+
1795
+ each(imageElmts, function (imageElmt) {
1796
+ _This.$LoadImage(imageElmt.src, LoadImageCompleteEventHandler);
1797
+ });
1798
+
1799
+ LoadImageCompleteEventHandler();
1800
+ };
1801
+
1802
+ _This.$BuildElement = function (template, tagName, replacer, createCopy) {
1803
+ if (createCopy)
1804
+ template = CloneNode(template);
1805
+
1806
+ var templateHolders = FindChildren(template, tagName);
1807
+ if (!templateHolders.length)
1808
+ templateHolders = $Jssor$.$GetElementsByTag(template, tagName);
1809
+
1810
+ for (var j = templateHolders.length - 1; j > -1; j--) {
1811
+ var templateHolder = templateHolders[j];
1812
+ var replaceItem = CloneNode(replacer);
1813
+ ClassName(replaceItem, ClassName(templateHolder));
1814
+ $Jssor$.$CssCssText(replaceItem, templateHolder.style.cssText);
1815
+
1816
+ $Jssor$.$InsertBefore(replaceItem, templateHolder);
1817
+ $Jssor$.$RemoveElement(templateHolder);
1818
+ }
1819
+
1820
+ return template;
1821
+ };
1822
+
1823
+ function JssorButtonEx(elmt) {
1824
+ var _Self = this;
1825
+
1826
+ var _OriginClassName = "";
1827
+ var _ToggleClassSuffixes = ["av", "pv", "ds", "dn"];
1828
+ var _ToggleClasses = [];
1829
+ var _ToggleClassName;
1830
+
1831
+ var _IsMouseDown = 0; //class name 'dn'
1832
+ var _IsSelected = 0; //class name 1(active): 'av', 2(passive): 'pv'
1833
+ var _IsDisabled = 0; //class name 'ds'
1834
+
1835
+ function Highlight() {
1836
+ ReplaceClass(elmt, _ToggleClassName, _ToggleClasses[_IsDisabled || _IsMouseDown || (_IsSelected & 2) || _IsSelected]);
1837
+ }
1838
+
1839
+ function MouseUpOrCancelEventHandler(event) {
1840
+ _IsMouseDown = 0;
1841
+
1842
+ Highlight();
1843
+
1844
+ _This.$RemoveEvent(document, Device().$Evt_Up, MouseUpOrCancelEventHandler);
1845
+ Device().$Evt_Cancel && _This.$RemoveEvent(document, Device().$Evt_Cancel, MouseUpOrCancelEventHandler);
1846
+ }
1847
+
1848
+ function MouseDownEventHandler(event) {
1849
+ if (_IsDisabled) {
1850
+ _This.$CancelEvent(event);
1851
+ }
1852
+ else {
1853
+
1854
+ _IsMouseDown = 4;
1855
+
1856
+ Highlight();
1857
+
1858
+ _This.$AddEvent(document, Device().$Evt_Up, MouseUpOrCancelEventHandler);
1859
+ Device().$Evt_Cancel && _This.$AddEvent(document, Device().$Evt_Cancel, MouseUpOrCancelEventHandler);
1860
+ }
1861
+ }
1862
+
1863
+ _Self.$Selected = function (activate) {
1864
+ if (activate != undefined) {
1865
+ _IsSelected = (activate & 2) || (activate & 1);
1866
+
1867
+ Highlight();
1868
+ }
1869
+ else {
1870
+ return _IsSelected;
1871
+ }
1872
+ };
1873
+
1874
+ _Self.$Enable = function (enable) {
1875
+ if (enable == undefined) {
1876
+ return !_IsDisabled;
1877
+ }
1878
+
1879
+ _IsDisabled = enable ? 0 : 3;
1880
+
1881
+ Highlight();
1882
+ };
1883
+
1884
+ //JssorButtonEx Constructor
1885
+ {
1886
+ elmt = _This.$GetElement(elmt);
1887
+
1888
+ var originalClassNameArray = $Jssor$.$Split(ClassName(elmt));
1889
+ if (originalClassNameArray)
1890
+ _OriginClassName = originalClassNameArray.shift();
1891
+
1892
+ each(_ToggleClassSuffixes, function (toggleClassSuffix) {
1893
+ _ToggleClasses.push(_OriginClassName +toggleClassSuffix);
1894
+ });
1895
+
1896
+ _ToggleClassName = Join(" ", _ToggleClasses);
1897
+
1898
+ _ToggleClasses.unshift("");
1899
+
1900
+ $Jssor$.$AddEvent(elmt, Device().$Evt_Down, MouseDownEventHandler);
1901
+ }
1902
+ }
1903
+
1904
+ _This.$Buttonize = function (elmt) {
1905
+ return new JssorButtonEx(elmt);
1906
+ };
1907
+
1908
+ _This.$Css = Css;
1909
+ _This.$CssN = CssN;
1910
+ _This.$CssP = CssP;
1911
+
1912
+ _This.$CssOverflow = CssProxy("overflow");
1913
+
1914
+ _This.$CssTop = CssProxy("top", 2);
1915
+ _This.$CssLeft = CssProxy("left", 2);
1916
+ _This.$CssWidth = CssProxy("width", 2);
1917
+ _This.$CssHeight = CssProxy("height", 2);
1918
+ _This.$CssMarginLeft = CssProxy("marginLeft", 2);
1919
+ _This.$CssMarginTop = CssProxy("marginTop", 2);
1920
+ _This.$CssPosition = CssProxy("position");
1921
+ _This.$CssDisplay = CssProxy("display");
1922
+ _This.$CssZIndex = CssProxy("zIndex", 1);
1923
+ _This.$CssFloat = function (elmt, floatValue) {
1924
+ return Css(elmt, IsBrowserIE() ? "styleFloat" : "cssFloat", floatValue);
1925
+ };
1926
+ _This.$CssOpacity = function (elmt, opacity, ie9EarlierForce) {
1927
+ if (opacity != undefined) {
1928
+ SetStyleOpacity(elmt, opacity, ie9EarlierForce);
1929
+ }
1930
+ else {
1931
+ return GetStyleOpacity(elmt);
1932
+ }
1933
+ };
1934
+
1935
+ _This.$CssCssText = function (elmt, text) {
1936
+ if (text != undefined) {
1937
+ elmt.style.cssText = text;
1938
+ }
1939
+ else {
1940
+ return elmt.style.cssText;
1941
+ }
1942
+ };
1943
+
1944
+ var _StyleGetter = {
1945
+ $Opacity: _This.$CssOpacity,
1946
+ $Top: _This.$CssTop,
1947
+ $Left: _This.$CssLeft,
1948
+ $Width: _This.$CssWidth,
1949
+ $Height: _This.$CssHeight,
1950
+ $Position: _This.$CssPosition,
1951
+ $Display: _This.$CssDisplay,
1952
+ $ZIndex: _This.$CssZIndex
1953
+ };
1954
+
1955
+ var _StyleSetterReserved;
1956
+
1957
+ function StyleSetter() {
1958
+ if (!_StyleSetterReserved) {
1959
+ _StyleSetterReserved = Extend({
1960
+ $MarginTop: _This.$CssMarginTop,
1961
+ $MarginLeft: _This.$CssMarginLeft,
1962
+ $Clip: _This.$SetStyleClip,
1963
+ $Transform: _This.$SetStyleTransform
1964
+ }, _StyleGetter);
1965
+ }
1966
+ return _StyleSetterReserved;
1967
+ }
1968
+
1969
+ function StyleSetterEx() {
1970
+ StyleSetter();
1971
+
1972
+ //For Compression Only
1973
+ _StyleSetterReserved.$Transform = _StyleSetterReserved.$Transform;
1974
+
1975
+ return _StyleSetterReserved;
1976
+ }
1977
+
1978
+ _This.$StyleSetter = StyleSetter;
1979
+
1980
+ _This.$StyleSetterEx = StyleSetterEx;
1981
+
1982
+ _This.$GetStyles = function (elmt, originStyles) {
1983
+ StyleSetter();
1984
+
1985
+ var styles = {};
1986
+
1987
+ each(originStyles, function (value, key) {
1988
+ if (_StyleGetter[key]) {
1989
+ styles[key] = _StyleGetter[key](elmt);
1990
+ }
1991
+ });
1992
+
1993
+ return styles;
1994
+ };
1995
+
1996
+ _This.$SetStyles = function (elmt, styles) {
1997
+ var styleSetter = StyleSetter();
1998
+
1999
+ each(styles, function (value, key) {
2000
+ styleSetter[key] && styleSetter[key](elmt, value);
2001
+ });
2002
+ };
2003
+
2004
+ _This.$SetStylesEx = function (elmt, styles) {
2005
+ StyleSetterEx();
2006
+
2007
+ _This.$SetStyles(elmt, styles);
2008
+ };
2009
+
2010
+ var $JssorMatrix$ = new function () {
2011
+ var _ThisMatrix = this;
2012
+
2013
+ function Multiply(ma, mb) {
2014
+ var acs = ma[0].length;
2015
+ var rows = ma.length;
2016
+ var cols = mb[0].length;
2017
+
2018
+ var matrix = [];
2019
+
2020
+ for (var r = 0; r < rows; r++) {
2021
+ var row = matrix[r] = [];
2022
+ for (var c = 0; c < cols; c++) {
2023
+ var unitValue = 0;
2024
+
2025
+ for (var ac = 0; ac < acs; ac++) {
2026
+ unitValue += ma[r][ac] * mb[ac][c];
2027
+ }
2028
+
2029
+ row[c] = unitValue;
2030
+ }
2031
+ }
2032
+
2033
+ return matrix;
2034
+ }
2035
+
2036
+ _ThisMatrix.$ScaleX = function (matrix, sx) {
2037
+ return _ThisMatrix.$ScaleXY(matrix, sx, 0);
2038
+ };
2039
+
2040
+ _ThisMatrix.$ScaleY = function (matrix, sy) {
2041
+ return _ThisMatrix.$ScaleXY(matrix, 0, sy);
2042
+ };
2043
+
2044
+ _ThisMatrix.$ScaleXY = function (matrix, sx, sy) {
2045
+ return Multiply(matrix, [[sx, 0], [0, sy]]);
2046
+ };
2047
+
2048
+ _ThisMatrix.$TransformPoint = function (matrix, p) {
2049
+ var pMatrix = Multiply(matrix, [[p.x], [p.y]]);
2050
+
2051
+ return Point(pMatrix[0][0], pMatrix[1][0]);
2052
+ };
2053
+ };
2054
+
2055
+ _This.$CreateMatrix = function (alpha, scaleX, scaleY) {
2056
+ var cos = Math.cos(alpha);
2057
+ var sin = Math.sin(alpha);
2058
+ //var r11 = cos;
2059
+ //var r21 = sin;
2060
+ //var r12 = -sin;
2061
+ //var r22 = cos;
2062
+
2063
+ //var m11 = cos * scaleX;
2064
+ //var m12 = -sin * scaleY;
2065
+ //var m21 = sin * scaleX;
2066
+ //var m22 = cos * scaleY;
2067
+
2068
+ return [[cos * scaleX, -sin * scaleY], [sin * scaleX, cos * scaleY]];
2069
+ };
2070
+
2071
+ _This.$GetMatrixOffset = function (matrix, width, height) {
2072
+ var p1 = $JssorMatrix$.$TransformPoint(matrix, Point(-width / 2, -height / 2));
2073
+ var p2 = $JssorMatrix$.$TransformPoint(matrix, Point(width / 2, -height / 2));
2074
+ var p3 = $JssorMatrix$.$TransformPoint(matrix, Point(width / 2, height / 2));
2075
+ var p4 = $JssorMatrix$.$TransformPoint(matrix, Point(-width / 2, height / 2));
2076
+
2077
+ return Point(Math.min(p1.x, p2.x, p3.x, p4.x) + width / 2, Math.min(p1.y, p2.y, p3.y, p4.y) + height / 2);
2078
+ };
2079
+
2080
+ _This.$Cast = function (fromStyles, difStyles, interPosition, easings, durings, rounds, options) {
2081
+
2082
+ var currentStyles = difStyles;
2083
+
2084
+ if (fromStyles) {
2085
+ currentStyles = {};
2086
+
2087
+ for (var key in difStyles) {
2088
+
2089
+ var round = rounds[key] || 1;
2090
+ var during = durings[key] || [0, 1];
2091
+ var propertyInterPosition = (interPosition - during[0]) / during[1];
2092
+ propertyInterPosition = Math.min(Math.max(propertyInterPosition, 0), 1);
2093
+ propertyInterPosition = propertyInterPosition * round;
2094
+ var floorPosition = Math.floor(propertyInterPosition);
2095
+ if (propertyInterPosition != floorPosition)
2096
+ propertyInterPosition -= floorPosition;
2097
+
2098
+ var easing = easings[key] || easings.$Default || $JssorEasing$.$EaseSwing;
2099
+ var easingValue = easing(propertyInterPosition);
2100
+ var currentPropertyValue;
2101
+ var value = fromStyles[key];
2102
+ var toValue = difStyles[key];
2103
+ var difValue = difStyles[key];
2104
+
2105
+ if ($Jssor$.$IsNumeric(difValue)) {
2106
+ currentPropertyValue = value + difValue * easingValue;
2107
+ }
2108
+ else {
2109
+ currentPropertyValue = $Jssor$.$Extend({ $Offset: {} }, fromStyles[key]);
2110
+
2111
+ $Jssor$.$Each(difValue.$Offset, function (rectX, n) {
2112
+ var offsetValue = rectX * easingValue;
2113
+ currentPropertyValue.$Offset[n] = offsetValue;
2114
+ currentPropertyValue[n] += offsetValue;
2115
+ });
2116
+ }
2117
+ currentStyles[key] = currentPropertyValue;
2118
+ }
2119
+
2120
+ if (difStyles.$Zoom || difStyles.$Rotate) {
2121
+ currentStyles.$Transform = { $Rotate: currentStyles.$Rotate || 0, $Scale: currentStyles.$Zoom, $OriginalWidth: options.$OriginalWidth, $OriginalHeight: options.$OriginalHeight };
2122
+ }
2123
+ }
2124
+
2125
+ if (difStyles.$Clip && options.$Move) {
2126
+ var styleFrameNClipOffset = currentStyles.$Clip.$Offset;
2127
+
2128
+ var offsetY = (styleFrameNClipOffset.$Top || 0) + (styleFrameNClipOffset.$Bottom || 0);
2129
+ var offsetX = (styleFrameNClipOffset.$Left || 0) + (styleFrameNClipOffset.$Right || 0);
2130
+
2131
+ currentStyles.$Left = (currentStyles.$Left || 0) + offsetX;
2132
+ currentStyles.$Top = (currentStyles.$Top || 0) + offsetY;
2133
+ currentStyles.$Clip.$Left -= offsetX;
2134
+ currentStyles.$Clip.$Right -= offsetX;
2135
+ currentStyles.$Clip.$Top -= offsetY;
2136
+ currentStyles.$Clip.$Bottom -= offsetY;
2137
+ }
2138
+
2139
+ if (currentStyles.$Clip && $Jssor$.$CanClearClip() && !currentStyles.$Clip.$Top && !currentStyles.$Clip.$Left && (currentStyles.$Clip.$Right == options.$OriginalWidth) && (currentStyles.$Clip.$Bottom == options.$OriginalHeight))
2140
+ currentStyles.$Clip = null;
2141
+
2142
+ return currentStyles;
2143
+ };
2144
+ };
2145
+
2146
+ //$JssorObject$
2147
+ function $JssorObject$() {
2148
+ var _ThisObject = this;
2149
+ // Fields
2150
+
2151
+ var _Listeners = []; // dictionary of eventName --> array of handlers
2152
+ var _Listenees = [];
2153
+
2154
+ // Private Methods
2155
+ function AddListener(eventName, handler) {
2156
+
2157
+ $JssorDebug$.$Execute(function () {
2158
+ if (eventName == undefined || eventName == null)
2159
+ throw new Error("param 'eventName' is null or empty.");
2160
+
2161
+ if (typeof (handler) != "function") {
2162
+ throw "param 'handler' must be a function.";
2163
+ }
2164
+
2165
+ $Jssor$.$Each(_Listeners, function (listener) {
2166
+ if (listener.$EventName == eventName && listener.$Handler === handler) {
2167
+ throw new Error("The handler listened to the event already, cannot listen to the same event of the same object with the same handler twice.");
2168
+ }
2169
+ });
2170
+ });
2171
+
2172
+ _Listeners.push({ $EventName: eventName, $Handler: handler });
2173
+ }
2174
+
2175
+ function RemoveListener(eventName, handler) {
2176
+
2177
+ $JssorDebug$.$Execute(function () {
2178
+ if (eventName == undefined || eventName == null)
2179
+ throw new Error("param 'eventName' is null or empty.");
2180
+
2181
+ if (typeof (handler) != "function") {
2182
+ throw "param 'handler' must be a function.";
2183
+ }
2184
+ });
2185
+
2186
+ $Jssor$.$Each(_Listeners, function (listener, index) {
2187
+ if (listener.$EventName == eventName && listener.$Handler === handler) {
2188
+ _Listeners.splice(index, 1);
2189
+ }
2190
+ });
2191
+ }
2192
+
2193
+ function ClearListeners() {
2194
+ _Listeners = [];
2195
+ }
2196
+
2197
+ function ClearListenees() {
2198
+
2199
+ $Jssor$.$Each(_Listenees, function (listenee) {
2200
+ $Jssor$.$RemoveEvent(listenee.$Obj, listenee.$EventName, listenee.$Handler);
2201
+ });
2202
+
2203
+ _Listenees = [];
2204
+ }
2205
+
2206
+ //Protected Methods
2207
+ _ThisObject.$Listen = function (obj, eventName, handler, useCapture) {
2208
+
2209
+ $JssorDebug$.$Execute(function () {
2210
+ if (!obj)
2211
+ throw new Error("param 'obj' is null or empty.");
2212
+
2213
+ if (eventName == undefined || eventName == null)
2214
+ throw new Error("param 'eventName' is null or empty.");
2215
+
2216
+ if (typeof (handler) != "function") {
2217
+ throw "param 'handler' must be a function.";
2218
+ }
2219
+
2220
+ $Jssor$.$Each(_Listenees, function (listenee) {
2221
+ if (listenee.$Obj === obj && listenee.$EventName == eventName && listenee.$Handler === handler) {
2222
+ throw new Error("The handler listened to the event already, cannot listen to the same event of the same object with the same handler twice.");
2223
+ }
2224
+ });
2225
+ });
2226
+
2227
+ $Jssor$.$AddEvent(obj, eventName, handler, useCapture);
2228
+ _Listenees.push({ $Obj: obj, $EventName: eventName, $Handler: handler });
2229
+ };
2230
+
2231
+ _ThisObject.$Unlisten = function (obj, eventName, handler) {
2232
+
2233
+ $JssorDebug$.$Execute(function () {
2234
+ if (!obj)
2235
+ throw new Error("param 'obj' is null or empty.");
2236
+
2237
+ if (eventName == undefined || eventName == null)
2238
+ throw new Error("param 'eventName' is null or empty.");
2239
+
2240
+ if (typeof (handler) != "function") {
2241
+ throw "param 'handler' must be a function.";
2242
+ }
2243
+ });
2244
+
2245
+ $Jssor$.$Each(_Listenees, function (listenee, index) {
2246
+ if (listenee.$Obj === obj && listenee.$EventName == eventName && listenee.$Handler === handler) {
2247
+ $Jssor$.$RemoveEvent(obj, eventName, handler);
2248
+ _Listenees.splice(index, 1);
2249
+ }
2250
+ });
2251
+ };
2252
+
2253
+ _ThisObject.$UnlistenAll = ClearListenees;
2254
+
2255
+ // Public Methods
2256
+ _ThisObject.$On = _ThisObject.addEventListener = AddListener;
2257
+
2258
+ _ThisObject.$Off = _ThisObject.removeEventListener = RemoveListener;
2259
+
2260
+ _ThisObject.$TriggerEvent = function (eventName) {
2261
+
2262
+ var args = [].slice.call(arguments, 1);
2263
+
2264
+ $Jssor$.$Each(_Listeners, function (listener) {
2265
+ listener.$EventName == eventName && listener.$Handler.apply(window, args);
2266
+ });
2267
+ };
2268
+
2269
+ _ThisObject.$Destroy = function () {
2270
+ ClearListenees();
2271
+ ClearListeners();
2272
+
2273
+ for (var name in _ThisObject)
2274
+ delete _ThisObject[name];
2275
+ };
2276
+
2277
+ $JssorDebug$.$C_AbstractClass(_ThisObject);
2278
+ };
2279
+
2280
+ function $JssorAnimator$(delay, duration, options, elmt, fromStyles, difStyles) {
2281
+ delay = delay || 0;
2282
+
2283
+ var _ThisAnimator = this;
2284
+ var _AutoPlay;
2285
+ var _Hiden;
2286
+ var _CombineMode;
2287
+ var _PlayToPosition;
2288
+ var _PlayDirection;
2289
+ var _NoStop;
2290
+ var _TimeStampLastFrame = 0;
2291
+
2292
+ var _SubEasings;
2293
+ var _SubRounds;
2294
+ var _SubDurings;
2295
+ var _Callback;
2296
+
2297
+ var _Shift = 0;
2298
+ var _Position_Current = 0;
2299
+ var _Position_Display = 0;
2300
+ var _Hooked;
2301
+
2302
+ var _Position_InnerBegin = delay;
2303
+ var _Position_InnerEnd = delay + duration;
2304
+ var _Position_OuterBegin;
2305
+ var _Position_OuterEnd;
2306
+ var _LoopLength;
2307
+
2308
+ var _NestedAnimators = [];
2309
+ var _StyleSetter;
2310
+
2311
+ function GetPositionRange(position, begin, end) {
2312
+ var range = 0;
2313
+
2314
+ if (position < begin)
2315
+ range = -1;
2316
+
2317
+ else if (position > end)
2318
+ range = 1;
2319
+
2320
+ return range;
2321
+ }
2322
+
2323
+ function GetInnerPositionRange(position) {
2324
+ return GetPositionRange(position, _Position_InnerBegin, _Position_InnerEnd);
2325
+ }
2326
+
2327
+ function GetOuterPositionRange(position) {
2328
+ return GetPositionRange(position, _Position_OuterBegin, _Position_OuterEnd);
2329
+ }
2330
+
2331
+ function Shift(offset) {
2332
+ _Position_OuterBegin += offset;
2333
+ _Position_OuterEnd += offset;
2334
+ _Position_InnerBegin += offset;
2335
+ _Position_InnerEnd += offset;
2336
+
2337
+ _Position_Current += offset;
2338
+ _Position_Display += offset;
2339
+
2340
+ _Shift = offset;
2341
+ }
2342
+
2343
+ function Locate(position, relative) {
2344
+ var offset = position - _Position_OuterBegin + delay * relative;
2345
+
2346
+ Shift(offset);
2347
+
2348
+ //$JssorDebug$.$Execute(function () {
2349
+ // _ThisAnimator.$Position_InnerBegin = _Position_InnerBegin;
2350
+ // _ThisAnimator.$Position_InnerEnd = _Position_InnerEnd;
2351
+ // _ThisAnimator.$Position_OuterBegin = _Position_OuterBegin;
2352
+ // _ThisAnimator.$Position_OuterEnd = _Position_OuterEnd;
2353
+ //});
2354
+
2355
+ return _Position_OuterEnd;
2356
+ }
2357
+
2358
+ function GoToPosition(positionOuter, force) {
2359
+ var trimedPositionOuter = positionOuter;
2360
+
2361
+ if (_LoopLength && (trimedPositionOuter >= _Position_OuterEnd || trimedPositionOuter <= _Position_OuterBegin)) {
2362
+ trimedPositionOuter = ((trimedPositionOuter - _Position_OuterBegin) % _LoopLength + _LoopLength) % _LoopLength + _Position_OuterBegin;
2363
+ }
2364
+
2365
+ if (!_Hooked || _NoStop || force || _Position_Current != trimedPositionOuter) {
2366
+
2367
+ var positionToDisplay = Math.min(trimedPositionOuter, _Position_OuterEnd);
2368
+ positionToDisplay = Math.max(positionToDisplay, _Position_OuterBegin);
2369
+
2370
+ if (!_Hooked || _NoStop || force || positionToDisplay != _Position_Display) {
2371
+ if (difStyles) {
2372
+
2373
+ var interPosition = (positionToDisplay - _Position_InnerBegin) / (duration || 1);
2374
+
2375
+ if (options.$Reverse)
2376
+ interPosition = 1 - interPosition;
2377
+
2378
+ var currentStyles = $Jssor$.$Cast(fromStyles, difStyles, interPosition, _SubEasings, _SubDurings, _SubRounds, options);
2379
+
2380
+ $Jssor$.$Each(currentStyles, function (value, key) {
2381
+ _StyleSetter[key] && _StyleSetter[key](elmt, value);
2382
+ });
2383
+ }
2384
+
2385
+ _ThisAnimator.$OnInnerOffsetChange(_Position_Display - _Position_InnerBegin, positionToDisplay - _Position_InnerBegin);
2386
+ }
2387
+
2388
+ _Position_Display = positionToDisplay;
2389
+
2390
+ $Jssor$.$Each(_NestedAnimators, function (animator, i) {
2391
+ var nestedAnimator = positionOuter < _Position_Current ? _NestedAnimators[_NestedAnimators.length - i - 1] : animator;
2392
+ nestedAnimator.$GoToPosition(positionOuter - _Shift, force);
2393
+ });
2394
+
2395
+ var positionOld = _Position_Current;
2396
+ var positionNew = positionOuter;
2397
+
2398
+ _Position_Current = trimedPositionOuter;
2399
+ _Hooked = true;
2400
+
2401
+ _ThisAnimator.$OnPositionChange(positionOld, positionNew);
2402
+ }
2403
+ }
2404
+
2405
+ function Join(animator, combineMode, noExpand) {
2406
+ /// <summary>
2407
+ /// Combine another animator as nested animator
2408
+ /// </summary>
2409
+ /// <param name="animator" type="$JssorAnimator$">
2410
+ /// An instance of $JssorAnimator$
2411
+ /// </param>
2412
+ /// <param name="combineMode" type="int">
2413
+ /// 0: parallel - place the animator parallel to this animator.
2414
+ /// 1: chain - chain the animator at the _Position_InnerEnd of this animator.
2415
+ /// </param>
2416
+ $JssorDebug$.$Execute(function () {
2417
+ if (combineMode !== 0 && combineMode !== 1)
2418
+ $JssorDebug$.$Fail("Argument out of range, the value of 'combineMode' should be either 0 or 1.");
2419
+ });
2420
+
2421
+ if (combineMode)
2422
+ animator.$Locate(_Position_OuterEnd, 1);
2423
+
2424
+ !noExpand && (_Position_OuterEnd = Math.max(_Position_OuterEnd, animator.$GetPosition_OuterEnd() + _Shift));
2425
+ _NestedAnimators.push(animator);
2426
+ }
2427
+
2428
+ var RequestAnimationFrame = window.requestAnimationFrame
2429
+ || window.webkitRequestAnimationFrame
2430
+ || window.mozRequestAnimationFrame
2431
+ || window.msRequestAnimationFrame;
2432
+
2433
+ if ($Jssor$.$IsBrowserSafari() && $Jssor$.$BrowserVersion() < 7) {
2434
+ RequestAnimationFrame = null;
2435
+
2436
+ $JssorDebug$.$Log("Custom animation frame for safari before 7.");
2437
+ }
2438
+
2439
+ RequestAnimationFrame = RequestAnimationFrame || function (callback) {
2440
+ $Jssor$.$Delay(callback, options.$Interval);
2441
+ };
2442
+
2443
+ function ShowFrame() {
2444
+ if (_AutoPlay) {
2445
+ var now = $Jssor$.$GetNow();
2446
+ var timeOffset = Math.min(now - _TimeStampLastFrame, options.$IntervalMax);
2447
+ var timePosition = _Position_Current + timeOffset * _PlayDirection;
2448
+ _TimeStampLastFrame = now;
2449
+
2450
+ if (timePosition * _PlayDirection >= _PlayToPosition * _PlayDirection)
2451
+ timePosition = _PlayToPosition;
2452
+
2453
+ GoToPosition(timePosition);
2454
+
2455
+ if (!_NoStop && timePosition * _PlayDirection >= _PlayToPosition * _PlayDirection) {
2456
+ Stop(_Callback);
2457
+ }
2458
+ else {
2459
+ RequestAnimationFrame(ShowFrame);
2460
+ }
2461
+ }
2462
+ }
2463
+
2464
+ function PlayToPosition(toPosition, callback, noStop) {
2465
+ if (!_AutoPlay) {
2466
+ _AutoPlay = true;
2467
+ _NoStop = noStop
2468
+ _Callback = callback;
2469
+ toPosition = Math.max(toPosition, _Position_OuterBegin);
2470
+ toPosition = Math.min(toPosition, _Position_OuterEnd);
2471
+ _PlayToPosition = toPosition;
2472
+ _PlayDirection = _PlayToPosition < _Position_Current ? -1 : 1;
2473
+ _ThisAnimator.$OnStart();
2474
+ _TimeStampLastFrame = $Jssor$.$GetNow();
2475
+ RequestAnimationFrame(ShowFrame);
2476
+ }
2477
+ }
2478
+
2479
+ function Stop(callback) {
2480
+ if (_AutoPlay) {
2481
+ _NoStop = _AutoPlay = _Callback = false;
2482
+ _ThisAnimator.$OnStop();
2483
+
2484
+ if (callback)
2485
+ callback();
2486
+ }
2487
+ }
2488
+
2489
+ _ThisAnimator.$Play = function (positionLength, callback, noStop) {
2490
+ PlayToPosition(positionLength ? _Position_Current + positionLength : _Position_OuterEnd, callback, noStop);
2491
+ };
2492
+
2493
+ _ThisAnimator.$PlayToPosition = PlayToPosition;
2494
+
2495
+ _ThisAnimator.$PlayToBegin = function (callback, noStop) {
2496
+ PlayToPosition(_Position_OuterBegin, callback, noStop);
2497
+ };
2498
+
2499
+ _ThisAnimator.$PlayToEnd = function (callback, noStop) {
2500
+ PlayToPosition(_Position_OuterEnd, callback, noStop);
2501
+ };
2502
+
2503
+ _ThisAnimator.$Stop = Stop;
2504
+
2505
+ _ThisAnimator.$Continue = function (toPosition) {
2506
+ PlayToPosition(toPosition);
2507
+ };
2508
+
2509
+ _ThisAnimator.$GetPosition = function () {
2510
+ return _Position_Current;
2511
+ };
2512
+
2513
+ _ThisAnimator.$GetPlayToPosition = function () {
2514
+ return _PlayToPosition;
2515
+ };
2516
+
2517
+ _ThisAnimator.$GetPosition_Display = function () {
2518
+ return _Position_Display;
2519
+ };
2520
+
2521
+ _ThisAnimator.$GoToPosition = GoToPosition;
2522
+
2523
+ _ThisAnimator.$GoToBegin = function () {
2524
+ GoToPosition(_Position_OuterBegin, true);
2525
+ };
2526
+
2527
+ _ThisAnimator.$GoToEnd = function () {
2528
+ GoToPosition(_Position_OuterEnd, true);
2529
+ };
2530
+
2531
+ _ThisAnimator.$Move = function (offset) {
2532
+ GoToPosition(_Position_Current + offset);
2533
+ };
2534
+
2535
+ _ThisAnimator.$CombineMode = function () {
2536
+ return _CombineMode;
2537
+ };
2538
+
2539
+ _ThisAnimator.$GetDuration = function () {
2540
+ return duration;
2541
+ };
2542
+
2543
+ _ThisAnimator.$IsPlaying = function () {
2544
+ return _AutoPlay;
2545
+ };
2546
+
2547
+ _ThisAnimator.$IsOnTheWay = function () {
2548
+ return _Position_Current > _Position_InnerBegin && _Position_Current <= _Position_InnerEnd;
2549
+ };
2550
+
2551
+ _ThisAnimator.$SetLoopLength = function (length) {
2552
+ _LoopLength = length;
2553
+ };
2554
+
2555
+ _ThisAnimator.$Locate = Locate;
2556
+
2557
+ _ThisAnimator.$Shift = Shift;
2558
+
2559
+ _ThisAnimator.$Join = Join;
2560
+
2561
+ _ThisAnimator.$Combine = function (animator) {
2562
+ /// <summary>
2563
+ /// Combine another animator parallel to this animator
2564
+ /// </summary>
2565
+ /// <param name="animator" type="$JssorAnimator$">
2566
+ /// An instance of $JssorAnimator$
2567
+ /// </param>
2568
+ Join(animator, 0);
2569
+ };
2570
+
2571
+ _ThisAnimator.$Chain = function (animator) {
2572
+ /// <summary>
2573
+ /// Chain another animator at the _Position_InnerEnd of this animator
2574
+ /// </summary>
2575
+ /// <param name="animator" type="$JssorAnimator$">
2576
+ /// An instance of $JssorAnimator$
2577
+ /// </param>
2578
+ Join(animator, 1);
2579
+ };
2580
+
2581
+ _ThisAnimator.$GetPosition_InnerBegin = function () {
2582
+ /// <summary>
2583
+ /// Internal member function, do not use it.
2584
+ /// </summary>
2585
+ /// <private />
2586
+ /// <returns type="int" />
2587
+ return _Position_InnerBegin;
2588
+ };
2589
+
2590
+ _ThisAnimator.$GetPosition_InnerEnd = function () {
2591
+ /// <summary>
2592
+ /// Internal member function, do not use it.
2593
+ /// </summary>
2594
+ /// <private />
2595
+ /// <returns type="int" />
2596
+ return _Position_InnerEnd;
2597
+ };
2598
+
2599
+ _ThisAnimator.$GetPosition_OuterBegin = function () {
2600
+ /// <summary>
2601
+ /// Internal member function, do not use it.
2602
+ /// </summary>
2603
+ /// <private />
2604
+ /// <returns type="int" />
2605
+ return _Position_OuterBegin;
2606
+ };
2607
+
2608
+ _ThisAnimator.$GetPosition_OuterEnd = function () {
2609
+ /// <summary>
2610
+ /// Internal member function, do not use it.
2611
+ /// </summary>
2612
+ /// <private />
2613
+ /// <returns type="int" />
2614
+ return _Position_OuterEnd;
2615
+ };
2616
+
2617
+ _ThisAnimator.$OnPositionChange = _ThisAnimator.$OnStart = _ThisAnimator.$OnStop = _ThisAnimator.$OnInnerOffsetChange = $Jssor$.$EmptyFunction;
2618
+ _ThisAnimator.$Version = $Jssor$.$GetNow();
2619
+
2620
+ //Constructor 1
2621
+ {
2622
+ options = $Jssor$.$Extend({
2623
+ $Interval: 16,
2624
+ $IntervalMax: 50
2625
+ }, options);
2626
+
2627
+ //Sodo statement, for development time intellisence only
2628
+ $JssorDebug$.$Execute(function () {
2629
+ options = $Jssor$.$Extend({
2630
+ $LoopLength: undefined,
2631
+ $Setter: undefined,
2632
+ $Easing: undefined
2633
+ }, options);
2634
+ });
2635
+
2636
+ _LoopLength = options.$LoopLength;
2637
+
2638
+ _StyleSetter = $Jssor$.$Extend({}, $Jssor$.$StyleSetter(), options.$Setter);
2639
+
2640
+ _Position_OuterBegin = _Position_InnerBegin = delay;
2641
+ _Position_OuterEnd = _Position_InnerEnd = delay + duration;
2642
+
2643
+ _SubRounds = options.$Round || {};
2644
+ _SubDurings = options.$During || {};
2645
+ _SubEasings = $Jssor$.$Extend({ $Default: $Jssor$.$IsFunction(options.$Easing) && options.$Easing || $JssorEasing$.$EaseSwing }, options.$Easing);
2646
+ }
2647
+ };
2648
+
2649
+ function $JssorPlayerClass$() {
2650
+
2651
+ var _ThisPlayer = this;
2652
+ var _PlayerControllers = [];
2653
+
2654
+ function PlayerController(playerElement) {
2655
+ var _SelfPlayerController = this;
2656
+ var _PlayerInstance;
2657
+ var _PlayerInstantces = [];
2658
+
2659
+ function OnPlayerInstanceDataAvailable(event) {
2660
+ var srcElement = $Jssor$.$EventSrc(event);
2661
+ _PlayerInstance = srcElement.pInstance;
2662
+
2663
+ $Jssor$.$RemoveEvent(srcElement, "dataavailable", OnPlayerInstanceDataAvailable);
2664
+ $Jssor$.$Each(_PlayerInstantces, function (playerInstance) {
2665
+ if (playerInstance != _PlayerInstance) {
2666
+ playerInstance.$Remove();
2667
+ }
2668
+ });
2669
+
2670
+ playerElement.pTagName = _PlayerInstance.tagName;
2671
+ _PlayerInstantces = null;
2672
+ }
2673
+
2674
+ function HandlePlayerInstance(playerInstanceElement) {
2675
+ var playerHandler;
2676
+
2677
+ if (!playerInstanceElement.pInstance) {
2678
+ var playerHandlerAttribute = $Jssor$.$AttributeEx(playerInstanceElement, "pHandler");
2679
+
2680
+ if ($JssorPlayer$[playerHandlerAttribute]) {
2681
+ $Jssor$.$AddEvent(playerInstanceElement, "dataavailable", OnPlayerInstanceDataAvailable);
2682
+ playerHandler = new $JssorPlayer$[playerHandlerAttribute](playerElement, playerInstanceElement);
2683
+ _PlayerInstantces.push(playerHandler);
2684
+
2685
+ $JssorDebug$.$Execute(function () {
2686
+ if ($Jssor$.$Type(playerHandler.$Remove) != "function") {
2687
+ $JssorDebug$.$Fail("'pRemove' interface not implemented for player handler '" + playerHandlerAttribute + "'.");
2688
+ }
2689
+ });
2690
+ }
2691
+ }
2692
+
2693
+ return playerHandler;
2694
+ }
2695
+
2696
+ _SelfPlayerController.$InitPlayerController = function () {
2697
+ if (!playerElement.pInstance && !HandlePlayerInstance(playerElement)) {
2698
+
2699
+ var playerInstanceElements = $Jssor$.$Children(playerElement);
2700
+
2701
+ $Jssor$.$Each(playerInstanceElements, function (playerInstanceElement) {
2702
+ HandlePlayerInstance(playerInstanceElement);
2703
+ });
2704
+ }
2705
+ };
2706
+ }
2707
+
2708
+ _ThisPlayer.$EVT_SWITCH = 21;
2709
+
2710
+ _ThisPlayer.$FetchPlayers = function (elmt) {
2711
+ elmt = elmt || document.body;
2712
+
2713
+ var playerElements = $Jssor$.$FindChildren(elmt, "player");
2714
+
2715
+ $Jssor$.$Each(playerElements, function (playerElement) {
2716
+ if (!_PlayerControllers[playerElement.pId]) {
2717
+ playerElement.pId = _PlayerControllers.length;
2718
+ _PlayerControllers.push(new PlayerController(playerElement));
2719
+ }
2720
+ var playerController = _PlayerControllers[playerElement.pId];
2721
+ playerController.$InitPlayerController();
2722
+ });
2723
+ };
2724
+ }
skin/frontend/base/default/js/layerslider/jssor.slider.min-old.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ (function(g,f,b,e,c,d,o){/*! Jssor */
2
+ $Jssor$=g.$Jssor$=g.$Jssor$||{};new(function(){this.$DebugMode=c;this.$Log=function(c,d){var a=g.console||{},b=this.$DebugMode;if(b&&a.log)a.log(c);else b&&d&&alert(c)};this.$Error=function(b,d){var c=g.console||{},a=this.$DebugMode;if(a&&c.error)c.error(b);else a&&alert(b);if(a)throw d||new Error(b);};this.$Fail=function(a){throw new Error(a);};this.$Assert=function(b,c){var a=this.$DebugMode;if(a)if(!b)throw new Error("Assert failed "+c||"");};this.$Trace=function(c){var a=g.console||{},b=this.$DebugMode;b&&a.log&&a.log(c)};this.$Execute=function(b){var a=this.$DebugMode;a&&b()};this.$LiveStamp=function(b,c){var a=f.createElement("DIV");a.setAttribute("id",c);b.$Live=a}});var m=function(){var b=this,a={};b.$On=b.addEventListener=function(b,c){if(typeof c!="function")return;if(!a[b])a[b]=[];a[b].push(c)};b.$Off=b.removeEventListener=function(e,d){var b=a[e];if(typeof d!="function")return;else if(!b)return;for(var c=0;c<b.length;c++)if(d==b[c]){b.splice(c,1);return}};b.$ClearEventListeners=function(b){if(a[b])delete a[b]};b.$TriggerEvent=function(e){var c=a[e],d=[];if(!c)return;for(var b=1;b<arguments.length;b++)d.push(arguments[b]);for(var b=0;b<c.length;b++)try{c[b].apply(g,d)}catch(f){}}},h;(function(){h=function(a,b){this.x=typeof a=="number"?a:0;this.y=typeof b=="number"?b:0};var a=h.prototype;a.$Plus=function(a){return new h(this.x+a.x,this.y+a.y)};a.$Minus=function(a){return new h(this.x-a.x,this.y-a.y)};a.$Times=function(a){return new h(this.x*a,this.y*a)};a.$Divide=function(a){return new h(this.x/a,this.y/a)};a.$Negate=function(){return new h(-this.x,-this.y)};a.$DistanceTo=function(a){return b.sqrt(b.pow(this.x-a.x,2)+b.pow(this.y-a.y,2))};a.$Apply=function(a){return new h(a(this.x),a(this.y))};a.$Equals=function(a){return a instanceof h&&this.x===a.x&&this.y===a.y};a.$ToString=function(){return"("+this.x+","+this.y+")"}})();var l=g.$JssorEasing$={$EaseLinear:function(a){return a},$EaseGoBack:function(a){return 1-b.abs(2-1)},$EaseSwing:function(a){return-b.cos(a*b.PI)/2+.5},$EaseInQuad:function(a){return a*a},$EaseOutQuad:function(a){return-a*(a-2)},$EaseInOutQuad:function(a){return(a*=2)<1?1/2*a*a:-1/2*(--a*(a-2)-1)},$EaseInCubic:function(a){return a*a*a},$EaseOutCubic:function(a){return(a-=1)*a*a+1},$EaseInOutCubic:function(a){return(a*=2)<1?1/2*a*a*a:1/2*((a-=2)*a*a+2)},$EaseInQuart:function(a){return a*a*a*a},$EaseOutQuart:function(a){return-((a-=1)*a*a*a-1)},$EaseInOutQuart:function(a){return(a*=2)<1?1/2*a*a*a*a:-1/2*((a-=2)*a*a*a-2)},$EaseInQuint:function(a){return a*a*a*a*a},$EaseOutQuint:function(a){return(a-=1)*a*a*a*a+1},$EaseInOutQuint:function(a){return(a*=2)<1?1/2*a*a*a*a*a:1/2*((a-=2)*a*a*a*a+2)},$EaseInSine:function(a){return 1-b.cos(a*b.PI/2)},$EaseOutSine:function(a){return b.sin(a*b.PI/2)},$EaseInOutSine:function(a){return-1/2*(b.cos(b.PI*a)-1)},$EaseInExpo:function(a){return a==0?0:b.pow(2,10*(a-1))},$EaseOutExpo:function(a){return a==1?1:-b.pow(2,-10*a)+1},$EaseInOutExpo:function(a){return a==0||a==1?a:(a*=2)<1?1/2*b.pow(2,10*(a-1)):1/2*(-b.pow(2,-10*--a)+2)},$EaseInCirc:function(a){return-(b.sqrt(1-a*a)-1)},$EaseOutCirc:function(a){return b.sqrt(1-(a-=1)*a)},$EaseInOutCirc:function(a){return(a*=2)<1?-1/2*(b.sqrt(1-a*a)-1):1/2*(b.sqrt(1-(a-=2)*a)+1)},$EaseInElastic:function(a){if(!a||a==1)return a;var c=.3,d=.075;return-(b.pow(2,10*(a-=1))*b.sin((a-d)*2*b.PI/c))},$EaseOutElastic:function(a){if(!a||a==1)return a;var c=.3,d=.075;return b.pow(2,-10*a)*b.sin((a-d)*2*b.PI/c)+1},$EaseInOutElastic:function(a){if(!a||a==1)return a;var c=.45,d=.1125;return(a*=2)<1?-.5*b.pow(2,10*(a-=1))*b.sin((a-d)*2*b.PI/c):b.pow(2,-10*(a-=1))*b.sin((a-d)*2*b.PI/c)*.5+1},$EaseInBack:function(a){var b=1.70158;return a*a*((b+1)*a-b)},$EaseOutBack:function(a){var b=1.70158;return(a-=1)*a*((b+1)*a+b)+1},$EaseInOutBack:function(a){var b=1.70158;return(a*=2)<1?1/2*a*a*(((b*=1.525)+1)*a-b):1/2*((a-=2)*a*(((b*=1.525)+1)*a+b)+2)},$EaseInBounce:function(a){return 1-l.$EaseOutBounce(1-a)},$EaseOutBounce:function(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},$EaseInOutBounce:function(a){return a<1/2?l.$EaseInBounce(a*2)*.5:l.$EaseOutBounce(a*2-1)*.5+.5},$EaseInWave:function(a){return 1-b.cos(a*b.PI*2)},$EaseOutWave:function(a){return b.sin(a*b.PI*2)},$EaseOutJump:function(a){return 1-((a*=2)<1?(a=1-a)*a*a:(a-=1)*a*a)},$EaseInJump:function(a){return(a*=2)<1?a*a*a:(a=2-a)*a*a}},i=g.$JssorDirection$={$TO_LEFT:1,$TO_RIGHT:2,$TO_TOP:4,$TO_BOTTOM:8,$HORIZONTAL:3,$VERTICAL:12,$LEFTRIGHT:3,$TOPBOTOM:12,$TOPLEFT:5,$TOPRIGHT:6,$BOTTOMLEFT:9,$BOTTOMRIGHT:10,$AROUND:15,$GetDirectionHorizontal:function(a){return a&3},$GetDirectionVertical:function(a){return a&12},$ChessHorizontal:function(a){return(~a&3)+(a&12)},$ChessVertical:function(a){return(~a&12)+(a&3)},$IsToLeft:function(a){return(a&3)==1},$IsToRight:function(a){return(a&3)==2},$IsToTop:function(a){return(a&12)==4},$IsToBottom:function(a){return(a&12)==8},$IsHorizontal:function(a){return(a&3)>0},$IsVertical:function(a){return(a&12)>0}},r={$BACKSPACE:8,$COMMA:188,$DELETE:46,$DOWN:40,$END:35,$ENTER:13,$ESCAPE:27,$HOME:36,$LEFT:37,$NUMPAD_ADD:107,$NUMPAD_DECIMAL:110,$NUMPAD_DIVIDE:111,$NUMPAD_ENTER:108,$NUMPAD_MULTIPLY:106,$NUMPAD_SUBTRACT:109,$PAGE_DOWN:34,$PAGE_UP:33,$PERIOD:190,$RIGHT:39,$SPACE:32,$TAB:9,$UP:38},p,n={$UNKNOWN:0,$IE:1,$FIREFOX:2,$SAFARI:3,$CHROME:4,$OPERA:5},z=1,v=2,x=3,w=4,y=5,j,a=g.$JssorUtils$=new function(){var i=this,m=n.$UNKNOWN,j=0,s=0,T=0,B=0,fb=navigator.appName,k=navigator.userAgent;function F(){if(!m)if(fb=="Microsoft Internet Explorer"&&!!g.attachEvent&&!!g.ActiveXObject){var d=k.indexOf("MSIE");m=n.$IE;s=parseFloat(k.substring(d+5,k.indexOf(";",d)));/*@cc_on T=@_jscript_version@*/;j=f.documentMode||s}else if(fb=="Netscape"&&!!g.addEventListener){var c=k.indexOf("Firefox"),a=k.indexOf("Safari"),h=k.indexOf("Chrome"),b=k.indexOf("AppleWebKit");if(c>=0){m=n.$FIREFOX;j=parseFloat(k.substring(c+8))}else if(a>=0){var i=k.substring(0,a).lastIndexOf("/");m=h>=0?n.$CHROME:n.$SAFARI;j=parseFloat(k.substring(i+1,a))}if(b>=0)B=parseFloat(k.substring(b+12))}else{var e=/(opera)(?:.*version|)[ \/]([\w.]+)/i.exec(k);if(e){m=n.$OPERA;j=parseFloat(e[2])}}}function r(){F();return m==z}function I(){return r()&&(j<6||f.compatMode=="BackCompat")}function Z(){F();return m==v}function O(){F();return m==x}function lb(){F();return m==w}function nb(){F();return m==y}function V(){return O()&&B>534&&B<535}function hb(){return O()&&B<535}function A(){return r()&&j<9}var D;function t(a){if(!D){q(["transform","WebkitTransform","msTransform","MozTransform","OTransform"],function(b){if(!i.$IsUndefined(a.style[b])){D=b;return c}});D=D||"transform"}return D}function jb(a,b){return b&&a!=f.body?f.body:a.offsetParent}function db(a){return Object.prototype.toString.call(a)}var L;function q(a,c){if(db(a)=="[object Array]"){for(var b=0;b<a.length;b++)if(c(a[b],b,a))break}else for(var d in a)if(c(a[d],d,a))break}function ob(){if(!L){L={};q(["Boolean","Number","String","Function","Array","Date","RegExp","Object"],function(a){L["[object "+a+"]"]=a.toLowerCase()})}return L}function C(a){return a==e?String(a):ob()[db(a)]||"object"}function pb(a){if(!a||C(a)!=="object"||a.nodeType||i.$IsWindow(a))return d;var b=Object.prototype.hasOwnProperty;try{if(a.constructor&&!b.call(a,"constructor")&&!b.call(a.constructor.prototype,"isPrototypeOf"))return d}catch(e){return d}var c;for(c in a);return c===o||b.call(a,c)}function eb(b,a){setTimeout(b,a||0)}function K(b,d,c){var a=!b||b=="inherit"?"":b;q(d,function(c){var b=c.exec(a);if(b){var d=a.substr(0,b.index),e=a.substr(b.lastIndex+1,a.length-(b.lastIndex+1));a=d+e}});a=c+(a.indexOf(" ")!=0?" ":"")+a;return a}function ab(b,a){if(j<9)b.style.filter=a}function ib(b,a,c){if(T<9){var e=b.style.filter,g=new RegExp(/[\s]*progid:DXImageTransform\.Microsoft\.Matrix\([^\)]*\)/g),f=a?"progid:DXImageTransform.Microsoft.Matrix(M11="+a[0][0]+", M12="+a[0][1]+", M21="+a[1][0]+", M22="+a[1][1]+", SizingMethod='auto expand')":"",d=K(e,[g],f);ab(b,d);i.$CssMarginTop(b,c.y);i.$CssMarginLeft(b,c.x)}}i.$IsBrowserIE=r;i.$IsBrowserIeQuirks=I;i.$IsBrowserFireFox=Z;i.$IsBrowserSafari=O;i.$IsBrowserChrome=lb;i.$IsBrowserOpera=nb;i.$IsBrowserBadTransform=V;i.$IsBrowserSafeHWA=hb;i.$IsBrowserIe9Earlier=A;i.$GetBrowserVersion=function(){return j};i.$GetBrowserEngineVersion=function(){return s||j};i.$GetWebKitVersion=function(){return B};i.$Delay=eb;i.$GetElement=function(a){if(i.$IsString(a))a=f.getElementById(a);return a};i.$GetElementPosition=function(a){a=i.$GetElement(a);var b=new h;while(a){b.x+=a.offsetLeft;b.y+=a.offsetTop;var c=i.$GetElementStyle(a).position=="fixed";if(c)b=b.$Plus(i.$GetPageScroll(g));a=jb(a,c)}return b};i.$GetElementSize=function(a){a=i.$GetElement(a);return new h(a.clientWidth,a.clientHeight)};i.$GetEvent=function(a){return a?a:g.event};i.$GetEventSrcElement=function(a){a=i.$GetEvent(a);return a.target||a.srcElement||f};i.$GetEventDstElement=function(a){a=i.$GetEvent(a);return a.relatedTarget||a.toElement};i.$GetMousePosition=function(a){a=i.$GetEvent(a);var b=new h;if(a.type=="DOMMouseScroll"&&Z()&&j<3){b.x=a.screenX;b.y=a.screenY}else if(typeof a.pageX=="number"){b.x=a.pageX;b.y=a.pageY}else if(typeof a.clientX=="number"){b.x=a.clientX+f.body.scrollLeft+f.documentElement.scrollLeft;b.y=a.clientY+f.body.scrollTop+f.documentElement.scrollTop}return b};i.$GetMouseScroll=function(a){a=i.$GetEvent(a);var c=0;if(typeof a.wheelDelta=="number")c=a.wheelDelta;else if(typeof a.detail=="number")c=a.detail*-1;return c?c/b.abs(c):0};i.$GetPageScroll=function(b){var a=new h,c=b.document.documentElement||{},d=b.document.body||{};if(typeof b.pageXOffset=="number"){a.x=b.pageXOffset;a.y=b.pageYOffset}else if(d.scrollLeft||d.scrollTop){a.x=d.scrollLeft;a.y=d.scrollTop}else if(c.scrollLeft||c.scrollTop){a.x=c.scrollLeft;a.y=c.scrollTop}return a};i.$GetWindowSize=function(c){var a=new h,b=I()?c.document.body:c.document.documentElement;a.x=b.clientWidth;a.y=b.clientHeight;return a};function G(c,d,a){if(a!=o)c.style[d]=a;else{var b=c.currentStyle||c.style;a=b[d];if(a==""&&g.getComputedStyle){b=c.ownerDocument.defaultView.getComputedStyle(c,e);b&&(a=b.getPropertyValue(d)||b[d])}return a}}function Q(b,c,a,d){if(a!=o){d&&(a+="px");G(b,c,a)}else return parseFloat(G(b,c))}function rb(b,d,a){return Q(b,d,a,c)}function l(d,a){var b=a&2,c=a?Q:G;return function(e,a){return c(e,d,a,b)}}function kb(b){if(r()&&s<9){var a=/opacity=([^)]*)/.exec(b.style.filter||"");return a?parseFloat(a[1])/100:1}else return parseFloat(b.style.opacity||"1")}function mb(c,a,f){if(r()&&s<9){var h=c.style.filter||"",i=new RegExp(/[\s]*alpha\([^\)]*\)/g),e=b.round(100*a),d="";if(e<100||f)d="alpha(opacity="+e+") ";var g=K(h,[i],d);ab(c,g)}else c.style.opacity=a==1?"":b.round(a*100)/100}function S(g,c){var f=c.$Rotate||0,d=c.$Scale==o?1:c.$Scale;if(A()){var k=i.$CreateMatrix(f/180*b.PI,d,d);ib(g,!f&&d==1?e:k,i.$GetMatrixOffset(k,c.$OriginalWidth,c.$OriginalHeight))}else{var h=t(g);if(h){var j="rotate("+f%360+"deg) scale("+d+")";if(a.$IsBrowserChrome()&&B>535)j+=" perspective(2000px)";g.style[h]=j}}}i.$SetStyleTransform=function(b,a){if(V())eb(i.$CreateCallback(e,S,b,a));else S(b,a)};i.$SetStyleTransformOrigin=function(b,c){var a=t(b);if(a)b.style[a+"Origin"]=c};i.$SetStyleScale=function(a,c){if(r()&&s<9||s<10&&I())a.style.zoom=c==1?"":c;else{var b=t(a);if(b){var f="scale("+c+")",e=a.style[b],g=new RegExp(/[\s]*scale\(.*?\)/g),d=K(e,[g],f);a.style[b]=d}}};i.$EnableHWA=function(a){if(!a.style[t(a)]||a.style[t(a)]=="none")a.style[t(a)]="perspective(2000px)"};i.$DisableHWA=function(a){a.style[t(a)]="none"};var cb=0,bb=0,H;function gb(g){var f=c,a=I()?g.document.body:g.document.documentElement;if(a){var e=a.offsetWidth-cb,b=a.offsetHeight-bb;if(e||b){cb+=e;bb+=b}else f=d}f&&q(H,function(a){a()})}i.$OnWindowResize=function(b,a){if(r()&&s<9)if(!H){H=[a];a=i.$CreateCallback(e,gb,b)}else{H.push(a);return}i.$AddEvent(b,"resize",a)};i.$AddEvent=function(a,c,d,b){a=i.$GetElement(a);if(a.addEventListener){c=="mousewheel"&&a.addEventListener("DOMMouseScroll",d,b);a.addEventListener(c,d,b)}else if(a.attachEvent){a.attachEvent("on"+c,d);b&&a.setCapture&&a.setCapture()}};i.$RemoveEvent=function(a,c,d,b){a=i.$GetElement(a);if(a.removeEventListener){c=="mousewheel"&&a.removeEventListener("DOMMouseScroll",d,b);a.removeEventListener(c,d,b)}else if(a.detachEvent){a.detachEvent("on"+c,d);b&&a.releaseCapture&&a.releaseCapture()}};i.$FireEvent=function(c,b){var a;if(f.createEvent){a=f.createEvent("HTMLEvents");a.initEvent(b,d,d);c.dispatchEvent(a)}else{var e="on"+b;a=f.createEventObject();c.fireEvent(e,a)}};i.$AddEventBrowserMouseUp=function(b,a){i.$AddEvent(A()?f:g,"mouseup",b,a)};i.$RemoveEventBrowserMouseUp=function(b,a){i.$RemoveEvent(A()?f:g,"mouseup",b,a)};i.$AddEventBrowserMouseDown=function(b,a){i.$AddEvent(A()?f:g,"mousedown",b,a)};i.$RemoveEventBrowserMouseDown=function(b,a){i.$RemoveEvent(A()?f:g,"mousedown",b,a)};i.$CancelEvent=function(a){a=i.$GetEvent(a);a.preventDefault&&a.preventDefault();a.cancel=c;a.returnValue=d};i.$StopEvent=function(a){a=i.$GetEvent(a);a.stopPropagation&&a.stopPropagation();a.cancelBubble=c};i.$CreateCallback=function(e,d){for(var b=[],a=2;a<arguments.length;a++)b.push(arguments[a]);var c=function(){for(var c=b.concat([]),a=0;a<arguments.length;a++)c.push(arguments[a]);return d.apply(e,c)};return c};var M;i.$FreeElement=function(b){if(!M)M=i.$CreateDivElement();if(b){a.$AppendChild(M,b);a.$ClearInnerHtml(M)}};i.$SetInnerText=function(a,c){var b=f.createTextNode(c);i.$ClearInnerHtml(a);a.appendChild(b)};i.$GetInnerText=function(a){return a.textContent||a.innerText};i.$GetInnerHtml=function(a){return a.innerHTML};i.$SetInnerHtml=function(a,b){a.innerHTML=b};i.$ClearInnerHtml=function(a){a.innerHTML=""};i.$EncodeHtml=function(b){var a=i.$CreateDivElement();i.$SetInnerText(a,b);return i.$GetInnerHtml(a)};i.$DecodeHtml=function(b){var a=i.$CreateDivElement();i.$SetInnerHtml(a,b);return i.$GetInnerText(a)};i.$SelectElement=function(c){var b;if(g.getSelection)b=g.getSelection();var a=e;if(f.createRange){a=f.createRange();a.selectNode(c)}else{a=f.body.createTextRange();a.moveToElementText(c);a.select()}b&&b.addRange(a)};i.$DeselectElements=function(){if(f.selection)f.selection.empty();else g.getSelection&&g.getSelection().removeAllRanges()};i.$GetChildren=function(c){for(var b=[],a=c.firstChild;a;a=a.nextSibling)a.nodeType==1&&b.push(a);return b};function R(a,c,b,f){if(!b)b="u";for(a=a?a.firstChild:e;a;a=a.nextSibling)if(a.nodeType==1){if(i.$GetAttributeEx(a,b)==c)return a;if(f){var d=R(a,c,b,f);if(d)return d}}}i.$FindFirstChildByAttribute=R;function W(a,c,d){for(a=a?a.firstChild:e;a;a=a.nextSibling)if(a.nodeType==1){if(a.tagName==c)return a;if(d){var b=W(a,c,d);if(b)return b}}}i.$FindFirstChildByTag=W;function X(a,d,g){var b=[];for(a=a?a.firstChild:e;a;a=a.nextSibling)if(a.nodeType==1){(!d||a.tagName==d)&&b.push(a);if(g){var f=X(a,d,c);if(f.length)b=b.concat(f)}}return b}i.$FindChildrenByTag=X;i.$GetElementsByTagName=function(b,a){return b.getElementsByTagName(a)};i.$Extend=function(c){for(var b=1;b<arguments.length;b++){var a=arguments[b];if(a)for(var d in a)c[d]=a[d]}return c};i.$Unextend=function(b,d){var c={};for(var a in b)if(b[a]!=d[a])c[a]=b[a];return c};i.$IsUndefined=function(a){return C(a)=="undefined"};i.$IsFunction=function(a){return C(a)=="function"};i.$IsArray=Array.isArray||function(a){return C(a)=="array"};i.$IsString=function(a){return C(a)=="string"};i.$IsNumeric=function(a){return!isNaN(parseFloat(a))&&isFinite(a)};i.$IsWindow=function(a){return a!=e&&a==a.window};i.$Type=C;i.$Each=q;i.$IsPlainObject=pb;i.$CreateDivElement=function(a){return i.$CreateElement("DIV",a)};i.$CreateSpanElement=function(a){return i.$CreateElement("SPAN",a)};i.$CreateElement=function(b,a){a=a||f;return a.createElement(b)};i.$EmptyFunction=function(){};i.$GetAttribute=function(a,b){return a.getAttribute(b)};i.$GetAttributeEx=function(a,b){return i.$GetAttribute(a,b)||i.$GetAttribute(a,"data-"+b)};i.$SetAttribute=function(b,c,a){b.setAttribute(c,a)};i.$GetClassName=function(a){return a.className};i.$SetClassName=function(b,a){b.className=a||""};i.$GetParentNode=function(a){return a.parentNode};i.$HideElement=function(a){i.$CssDisplay(a,"none")};i.$HideElements=function(b){for(var a=0;a<b.length;a++)i.$HideElement(b[a])};i.$ShowElement=function(a,b){i.$CssDisplay(a,b==d?"none":"")};i.$ShowElements=function(b){for(var a=0;a<b.length;a++)i.$ShowElement(b[a])};i.$RemoveAttribute=function(b,a){b.removeAttribute(a)};i.$CanClearClip=function(){return r()&&j<10};i.$SetStyleClip=function(d,c){if(c)d.style.clip="rect("+b.round(c.$Top)+"px "+b.round(c.$Right)+"px "+b.round(c.$Bottom)+"px "+b.round(c.$Left)+"px)";else{var g=d.style.cssText,f=[new RegExp(/[\s]*clip: rect\(.*?\)[;]?/i),new RegExp(/[\s]*cliptop: .*?[;]?/i),new RegExp(/[\s]*clipright: .*?[;]?/i),new RegExp(/[\s]*clipbottom: .*?[;]?/i),new RegExp(/[\s]*clipleft: .*?[;]?/i)],e=K(g,f,"");a.$CssCssText(d,e)}};i.$GetNow=function(){return+new Date};i.$AppendChild=function(b,a){b.appendChild(a)};i.$AppendChildren=function(b,a){q(a,function(a){i.$AppendChild(b,a)})};i.$InsertBefore=function(c,b,a){c.insertBefore(b,a)};i.$InsertAdjacentHtml=function(b,a,c){b.insertAdjacentHTML(a,c)};i.$RemoveChild=function(b,a){b.removeChild(a)};i.$RemoveChildren=function(b,a){q(a,function(a){i.$RemoveChild(b,a)})};i.$ClearChildren=function(a){i.$RemoveChildren(a,i.$GetChildren(a))};i.$ParseInt=function(b,a){return parseInt(b,a||10)};i.$ParseFloat=function(a){return parseFloat(a)};i.$IsChild=function(b,a){var c=f.body;while(a&&b!=a&&c!=a)try{a=a.parentNode}catch(e){return d}return b==a};i.$ToLowerCase=function(a){if(a)a=a.toLowerCase();return a};i.$CloneNode=function(b,a){return b.cloneNode(a)};function N(b,a,c){a.onload=e;a.abort=e;b&&b(a,c)}i.$LoadImage=function(d,b){if(i.$IsBrowserOpera()&&j<11.6||!d)N(b,e);else{var a=new Image;a.onload=i.$CreateCallback(e,N,b,a);a.onabort=i.$CreateCallback(e,N,b,a,c);a.src=d}};i.$LoadImages=function(e,b,f){var d=e.length+1;function c(a){d--;if(b&&a&&a.src==b.src)b=a;!d&&f&&f(b)}a.$Each(e,function(b){a.$LoadImage(b.src,c)});c()};i.$BuildElement=function(d,k,j,i){if(i)d=a.$CloneNode(d,c);for(var h=a.$GetElementsByTagName(d,k),f=h.length-1;f>-1;f--){var b=h[f],e=a.$CloneNode(j,c);a.$SetClassName(e,a.$GetClassName(b));a.$CssCssText(e,b.style.cssText);var g=a.$GetParentNode(b);a.$InsertBefore(g,e,b);a.$RemoveChild(g,b)}return d};var E;function qb(b){var g=this,h,e,j;function f(){var c=h;if(e)c+="dn";else if(j)c+="av";a.$SetClassName(b,c)}function k(){E.push(g);e=c;f()}g.$MouseUp=function(){e=d;f()};g.$Activate=function(a){j=a;f()};b=i.$GetElement(b);if(!E){i.$AddEventBrowserMouseUp(function(){var a=E;E=[];q(a,function(a){a.$MouseUp()})});E=[]}h=i.$GetClassName(b);a.$AddEvent(b,"mousedown",k)}i.$Buttonize=function(a){return new qb(a)};i.$Css=G;i.$CssN=Q;i.$CssP=rb;i.$CssOverflow=l("overflow");i.$CssTop=l("top",2);i.$CssLeft=l("left",2);i.$CssWidth=l("width",2);i.$CssHeight=l("height",2);i.$CssMarginLeft=l("marginLeft",2);i.$CssMarginTop=l("marginTop",2);i.$CssPosition=l("position");i.$CssDisplay=l("display");i.$CssZIndex=l("zIndex",1);i.$CssFloat=function(b,a){return G(b,r()?"styleFloat":"cssFloat",a)};i.$CssOpacity=function(b,a,c){if(a!=o)mb(b,a,c);else return kb(b)};i.$CssCssText=function(a,b){if(b!=o)a.style.cssText=b;else return a.style.cssText};var P={$Opacity:i.$CssOpacity,$Top:i.$CssTop,$Left:i.$CssLeft,$Width:i.$CssWidth,$Height:i.$CssHeight,$Position:i.$CssPosition,$Display:i.$CssDisplay,$ZIndex:i.$CssZIndex},u;function J(){if(!u)u=i.$Extend({$MarginTop:i.$CssMarginTop,$MarginLeft:i.$CssMarginLeft,$Clip:i.$SetStyleClip,$Transform:i.$SetStyleTransform},P);return u}function Y(){J();u.$Transform=u.$Transform;return u}i.$GetStyleSetter=J;i.$GetStyleSetterEx=Y;i.$GetStyles=function(c,b){J();var a={};q(b,function(d,b){if(P[b])a[b]=P[b](c)});return a};i.$SetStyles=function(c,b){var a=J();q(b,function(d,b){a[b]&&a[b](c,d)})};i.$SetStylesEx=function(b,a){Y();i.$SetStyles(b,a)};p=new function(){var a=this;function b(d,g){for(var j=d[0].length,i=d.length,h=g[0].length,f=[],c=0;c<i;c++)for(var k=f[c]=[],b=0;b<h;b++){for(var e=0,a=0;a<j;a++)e+=d[c][a]*g[a][b];k[b]=e}return f}a.$ScaleX=function(b,c){return a.$ScaleXY(b,c,0)};a.$ScaleY=function(b,c){return a.$ScaleXY(b,0,c)};a.$ScaleXY=function(a,c,d){return b(a,[[c,0],[0,d]])};a.$TransformPoint=function(d,c){var a=b(d,[[c.x],[c.y]]);return new h(a[0][0],a[1][0])}};i.$CreateMatrix=function(d,a,c){var e=b.cos(d),f=b.sin(d);return[[e*a,-f*c],[f*a,e*c]]};i.$GetMatrixOffset=function(d,c,a){var e=p.$TransformPoint(d,new h(-c/2,-a/2)),f=p.$TransformPoint(d,new h(c/2,-a/2)),g=p.$TransformPoint(d,new h(c/2,a/2)),i=p.$TransformPoint(d,new h(-c/2,a/2));return new h(b.min(e.x,f.x,g.x,i.x)+c/2,b.min(e.y,f.y,g.y,i.y)+a/2)}};j=function(n,m,g,O,z,x){n=n||0;var f=this,r,K,o,p,y,A=0,C,M,L,D,j=0,t=0,E,k=n,s=n+m,i,h,q,u=[],B;function I(b){i+=b;h+=b;k+=b;s+=b;j+=b;t+=b;a.$Each(u,function(a){a,a.$Shift(b)})}function N(a,b){var c=a-i+n*b;I(c);return h}function w(w,G){var n=w;if(q&&(n>=h||n<=i))n=((n-i)%q+q)%q+i;if(!E||y||G||j!=n){var p=b.min(n,h);p=b.max(p,i);if(!E||y||G||p!=t){if(x){var d=x;if(z){var s=(p-k)/(m||1);if(g.$Optimize&&a.$IsBrowserChrome()&&m)s=b.round(s*m/16)/m*16;if(g.$Reverse)s=1-s;d={};for(var o in x){var R=M[o]||1,J=L[o]||[0,1],l=(s-J[0])/J[1];l=b.min(b.max(l,0),1);l=l*R;var H=b.floor(l);if(l!=H)l-=H;var Q=C[o]||C.$Default,I=Q(l),r,K=z[o],F=x[o];if(a.$IsNumeric(F))r=K+(F-K)*I;else{r=a.$Extend({$Offset:{}},z[o]);a.$Each(F.$Offset,function(c,b){var a=c*I;r.$Offset[b]=a;r[b]+=a})}d[o]=r}}if(z.$Zoom)d.$Transform={$Rotate:d.$Rotate||0,$Scale:d.$Zoom,$OriginalWidth:g.$OriginalWidth,$OriginalHeight:g.$OriginalHeight};if(x.$Clip&&g.$Move){var v=d.$Clip.$Offset,D=(v.$Top||0)+(v.$Bottom||0),A=(v.$Left||0)+(v.$Right||0);d.$Left=(d.$Left||0)+A;d.$Top=(d.$Top||0)+D;d.$Clip.$Left-=A;d.$Clip.$Right-=A;d.$Clip.$Top-=D;d.$Clip.$Bottom-=D}if(d.$Clip&&a.$CanClearClip()&&!d.$Clip.$Top&&!d.$Clip.$Left&&d.$Clip.$Right==g.$OriginalWidth&&d.$Clip.$Bottom==g.$OriginalHeight)d.$Clip=e;a.$Each(d,function(b,a){B[a]&&B[a](O,b)})}f.$OnInnerOffsetChange(t-k,p-k)}t=p;a.$Each(u,function(b,c){var a=w<j?u[u.length-c-1]:b;a.$GoToPosition(w,G)});var P=j,N=w;j=n;E=c;f.$OnPositionChange(P,N)}}function F(a,c){c&&a.$Locate(h,1);h=b.max(h,a.$GetPosition_OuterEnd());u.push(a)}function H(){if(r){var d=a.$GetNow(),e=b.min(d-A,a.$IsBrowserOpera()?80:20),c=j+e*p;A=d;if(c*p>=o*p)c=o;w(c);if(!y&&c*p>=o*p)J(D);else a.$Delay(H,g.$Interval)}}function v(d,e,g){if(!r){r=c;y=g;D=e;d=b.max(d,i);d=b.min(d,h);o=d;p=o<j?-1:1;f.$OnStart();A=a.$GetNow();H()}}function J(a){if(r){y=r=D=d;f.$OnStop();a&&a()}}f.$Play=function(a,b,c){v(a?j+a:h,b,c)};f.$PlayToPosition=function(b,a,c){v(b,a,c)};f.$PlayToBegin=function(a,b){v(i,a,b)};f.$PlayToEnd=function(a,b){v(h,a,b)};f.$Stop=function(){J()};f.$Continue=function(a){v(a)};f.$GetPosition=function(){return j};f.$GetPlayToPosition=function(){return o};f.$GetPosition_Display=function(){return t};f.$GoToPosition=w;f.$GoToBegin=function(){w(i,c)};f.$GoToEnd=function(){w(h,c)};f.$Move=function(a){w(j+a)};f.$CombineMode=function(){return K};f.$GetDuration=function(){return m};f.$IsPlaying=function(){return r};f.$IsOnTheWay=function(){return j>k&&j<=s};f.$SetLoopLength=function(a){q=a};f.$Locate=N;f.$Shift=I;f.$Join=F;f.$Combine=function(a){F(a,0)};f.$Chain=function(a){F(a,1)};f.$GetPosition_InnerBegin=function(){return k};f.$GetPosition_InnerEnd=function(){return s};f.$GetPosition_OuterBegin=function(){return i};f.$GetPosition_OuterEnd=function(){return h};f.$OnPositionChange=a.$EmptyFunction;f.$OnStart=a.$EmptyFunction;f.$OnStop=a.$EmptyFunction;f.$OnInnerOffsetChange=a.$EmptyFunction;f.$Version=a.$GetNow();g=a.$Extend({$Interval:16},g);q=g.$LoopLength;B=a.$Extend({},a.$GetStyleSetter(),g.$Setter);i=k=n;h=s=n+m;var M=g.$Round||{},L=g.$During||{};C=a.$Extend({$Default:a.$IsFunction(g.$Easing)&&g.$Easing||l.$EaseSwing},g.$Easing)};var s,k=g.$JssorSlideshowFormations$={};new function(){var p=0,o=1,w=2,v=3,I=1,H=2,J=4,G=8,O=256,P=512,N=1024,M=2048,z=M+I,y=M+H,E=P+I,C=P+H,D=O+J,A=O+G,B=N+J,F=N+G;function S(a){return(a&H)==H}function T(a){return(a&J)==J}function x(b,a,c){c.push(a);b[a]=b[a]||[];b[a].push(c)}k.$FormationStraight=function(f){for(var d=f.$Cols,e=f.$Rows,k=f.$Assembly,l=f.$Count,j=[],a=0,b=0,h=d-1,i=e-1,g=l-1,c,b=0;b<e;b++)for(a=0;a<d;a++){switch(k){case z:c=g-(a*e+(i-b));break;case B:c=g-(b*d+(h-a));break;case E:c=g-(a*e+b);case D:c=g-(b*d+a);break;case y:c=a*e+b;break;case A:c=b*d+(h-a);break;case C:c=a*e+(i-b);break;default:c=b*d+a}x(j,c,[b,a])}return j};k.$FormationSwirl=function(e){var l=e.$Cols,m=e.$Rows,r=e.$Assembly,k=e.$Count,q=[],n=[],i=0,a=0,b=0,f=l-1,g=m-1,h,d,j=0;switch(r){case z:a=f;b=0;d=[w,o,v,p];break;case B:a=0;b=g;d=[p,v,o,w];break;case E:a=f;b=g;d=[v,o,w,p];break;case D:a=f;b=g;d=[o,v,p,w];break;case y:a=0;b=0;d=[w,p,v,o];break;case A:a=f;b=0;d=[o,w,p,v];break;case C:a=0;b=g;d=[v,p,w,o];break;default:a=0;b=0;d=[p,w,o,v]}i=0;while(i<k){h=b+","+a;if(a>=0&&a<l&&b>=0&&b<m&&!n[h]){n[h]=c;x(q,i++,[b,a])}else switch(d[j++%d.length]){case p:a--;break;case w:b--;break;case o:a++;break;case v:b++}switch(d[j%d.length]){case p:a++;break;case w:b++;break;case o:a--;break;case v:b--}}return q};k.$FormationZigZag=function(d){var k=d.$Cols,l=d.$Rows,n=d.$Assembly,j=d.$Count,h=[],i=0,a=0,b=0,e=k-1,f=l-1,m,c,g=0;switch(n){case z:a=e;b=0;c=[w,o,v,o];break;case B:a=0;b=f;c=[p,v,o,v];break;case E:a=e;b=f;c=[v,o,w,o];break;case D:a=e;b=f;c=[o,v,p,v];break;case y:a=0;b=0;c=[w,p,v,p];break;case A:a=e;b=0;c=[o,w,p,w];break;case C:a=0;b=f;c=[v,p,w,p];break;default:a=0;b=0;c=[p,w,o,w]}i=0;while(i<j){m=b+","+a;if(a>=0&&a<k&&b>=0&&b<l&&typeof h[m]=="undefined"){x(h,i++,[b,a]);switch(c[g%c.length]){case p:a++;break;case w:b++;break;case o:a--;break;case v:b--}}else{switch(c[g++%c.length]){case p:a--;break;case w:b--;break;case o:a++;break;case v:b++}switch(c[g++%c.length]){case p:a++;break;case w:b++;break;case o:a--;break;case v:b--}}}return h};k.$FormationStraightStairs=function(h){var l=h.$Cols,m=h.$Rows,e=h.$Assembly,k=h.$Count,i=[],j=0,c=0,d=0,f=l-1,g=m-1,o=k-1;switch(e){case z:case C:case E:case y:var a=0,b=0;break;case A:case B:case D:case F:var a=f,b=0;break;default:e=F;var a=f,b=0}c=a;d=b;while(j<k){if(T(e)||S(e))x(i,o-j++,[d,c]);else x(i,j++,[d,c]);switch(e){case z:case C:c--;d++;break;case E:case y:c++;d--;break;case A:case B:c--;d--;break;case F:case D:default:c++;d++}if(c<0||d<0||c>f||d>g){switch(e){case z:case C:a++;break;case A:case B:case E:case y:b++;break;case F:case D:default:a--}if(a<0||b<0||a>f||b>g){switch(e){case z:case C:a=f;b++;break;case E:case y:b=g;a++;break;case A:case B:b=g;a--;break;case F:case D:default:a=0;b++}if(b>g)b=g;else if(b<0)b=0;else if(a>f)a=f;else if(a<0)a=0}d=b;c=a}}return i};k.$FormationSquare=function(h){var a=h.$Cols||1,c=h.$Rows||1,i=[],d,e,f,g,j;f=a<c?(c-a)/2:0;g=a>c?(a-c)/2:0;j=b.round(b.max(a/2,c/2))+1;for(d=0;d<a;d++)for(e=0;e<c;e++)x(i,j-b.min(d+1+f,e+1+g,a-d+f,c-e+g),[e,d]);return i};k.$FormationRectangle=function(f){var d=f.$Cols||1,e=f.$Rows||1,g=[],a,c,h;h=b.round(b.min(d/2,e/2))+1;for(a=0;a<d;a++)for(c=0;c<e;c++)x(g,h-b.min(a+1,c+1,d-a,e-c),[c,a]);return g};k.$FormationRandom=function(d){for(var e=[],a,c=0;c<d.$Rows;c++)for(a=0;a<d.$Cols;a++)x(e,b.ceil(1e5*b.random())%13,[c,a]);return e};k.$FormationCircle=function(d){for(var e=d.$Cols||1,f=d.$Rows||1,g=[],a,h=e/2-.5,i=f/2-.5,c=0;c<e;c++)for(a=0;a<f;a++)x(g,b.round(b.sqrt(b.pow(c-h,2)+b.pow(a-i,2))),[a,c]);return g};k.$FormationCross=function(d){for(var e=d.$Cols||1,f=d.$Rows||1,g=[],a,h=e/2-.5,i=f/2-.5,c=0;c<e;c++)for(a=0;a<f;a++)x(g,b.round(b.min(b.abs(c-h),b.abs(a-i))),[a,c]);return g};k.$FormationRectangleCross=function(f){for(var g=f.$Cols||1,h=f.$Rows||1,i=[],a,d=g/2-.5,e=h/2-.5,j=b.max(d,e)+1,c=0;c<g;c++)for(a=0;a<h;a++)x(i,b.round(j-b.max(d-b.abs(c-d),e-b.abs(a-e)))-1,[a,c]);return i};function Q(a){var b=a.$Formation(a);return a.$Reverse?b.reverse():b}function K(g,f){var e={$Interval:f,$Duration:1,$Delay:0,$Cols:1,$Rows:1,$Opacity:0,$Zoom:0,$Clip:0,$Move:d,$SlideOut:d,$FlyDirection:0,$Reverse:d,$Formation:k.$FormationRandom,$Assembly:F,$ChessMode:{$Column:0,$Row:0},$Easing:l.$EaseSwing,$Round:{},$Blocks:[],$During:{}};a.$Extend(e,g);e.$Count=e.$Cols*e.$Rows;if(a.$IsFunction(e.$Easing))e.$Easing={$Default:e.$Easing};e.$FramesCount=b.ceil(e.$Duration/e.$Interval);e.$EasingInstance=R(e);e.$GetBlocks=function(b,a){b/=e.$Cols;a/=e.$Rows;var f=b+"x"+a;if(!e.$Blocks[f]){e.$Blocks[f]={$Width:b,$Height:a};for(var c=0;c<e.$Cols;c++)for(var d=0;d<e.$Rows;d++)e.$Blocks[f][d+","+c]={$Top:d*a,$Right:c*b+b,$Bottom:d*a+a,$Left:c*b}}return e.$Blocks[f]};if(e.$Brother){e.$Brother=K(e.$Brother,f);e.$SlideOut=c}return e}function R(d){var c=d.$Easing;if(!c.$Default)c.$Default=l.$EaseSwing;var e=d.$FramesCount,f=c.$Cache;if(!f){var g=a.$Extend({},d.$Easing,d.$Round);f=c.$Cache={};a.$Each(g,function(n,l){var g=c[l]||c.$Default,j=d.$Round[l]||1;if(!a.$IsArray(g.$Cache))g.$Cache=[];var h=g.$Cache[e]=g.$Cache[e]||[];if(!h[j]){h[j]=[0];for(var k=1;k<=e;k++){var i=k/e*j,m=b.floor(i);if(i!=m)i-=m;h[j][k]=g(i)}}f[l]=h})}return f}function L(D,k,f,y,m,l){var B=this,v,w={},p={},o=[],h,g,t,r=f.$ChessMode.$Column||0,s=f.$ChessMode.$Row||0,j=f.$GetBlocks(m,l),q=Q(f),E=q.length-1,u=f.$Duration+f.$Delay*E,z=y+u,n=f.$SlideOut,A;z+=a.$IsBrowserChrome()?260:50;B.$EndTime=z;B.$ShowFrame=function(c){c-=y;var d=c<u;if(d||A){A=d;if(!n)c=u-c;var e=b.ceil(c/f.$Interval);a.$Each(p,function(c,f){var d=b.max(e,c.$Min);d=b.min(d,c.length-1);if(c.$LastFrameIndex!=d){if(!c.$LastFrameIndex&&!n)a.$ShowElement(o[f]);else d==c.$Max&&n&&a.$HideElement(o[f]);c.$LastFrameIndex=d;a.$SetStylesEx(o[f],c[d])}})}};function x(b){a.$DisableHWA(b);var c=a.$GetChildren(b);a.$Each(c,function(a){x(a)})}k=a.$CloneNode(k,c);x(k);if(a.$IsBrowserIe9Earlier()){var F=!k["no-image"],C=a.$FindChildrenByTag(k,e,c);a.$Each(C,function(b){(F||b["jssor-slider"])&&a.$CssOpacity(b,a.$CssOpacity(b),c)})}a.$Each(q,function(e,k){a.$Each(e,function(N){var S=N[0],R=N[1],z=S+","+R,u=d,x=d,A=d;if(r&&R%2){if(i.$IsHorizontal(r))u=!u;if(i.$IsVertical(r))x=!x;if(r&16)A=!A}if(s&&S%2){if(i.$IsHorizontal(s))u=!u;if(i.$IsVertical(s))x=!x;if(s&16)A=!A}f.$Top=f.$Top||f.$Clip&4;f.$Bottom=f.$Bottom||f.$Clip&8;f.$Left=f.$Left||f.$Clip&1;f.$Right=f.$Right||f.$Clip&2;var G=x?f.$Bottom:f.$Top,D=x?f.$Top:f.$Bottom,F=u?f.$Right:f.$Left,E=u?f.$Left:f.$Right;f.$Clip=G||D||F||E;t={};g={$Top:0,$Left:0,$Opacity:1,$Width:m,$Height:l};h=a.$Extend({},g);v=a.$Extend({},j[z]);if(f.$Opacity)g.$Opacity=2-f.$Opacity;if(f.$ZIndex){g.$ZIndex=f.$ZIndex;h.$ZIndex=0}var Q=f.$Cols*f.$Rows>1||f.$Clip;if(f.$Zoom||f.$Rotate){var P=c;if(a.$IsBrowserIE()&&a.$GetBrowserEngineVersion()<9)if(f.$Cols*f.$Rows>1)P=d;else Q=d;if(P){g.$Zoom=f.$Zoom?f.$Zoom-1:1;h.$Zoom=1;if(a.$IsBrowserIe9Earlier()||a.$IsBrowserOpera())g.$Zoom=b.min(g.$Zoom,2);var K=f.$Rotate;if(K==c)K=1;g.$Rotate=K*360*(A?-1:1);h.$Rotate=0}}if(Q){if(f.$Clip){var y=f.$ScaleClip||1,o=v.$Offset={};if(G&&D){o.$Top=j.$Height/2*y;o.$Bottom=-o.$Top}else if(G)o.$Bottom=-j.$Height*y;else if(D)o.$Top=j.$Height*y;if(F&&E){o.$Left=j.$Width/2*y;o.$Right=-o.$Left}else if(F)o.$Right=-j.$Width*y;else if(E)o.$Left=j.$Width*y}t.$Clip=v;h.$Clip=j[z]}if(f.$FlyDirection){var q=f.$FlyDirection;if(!u)q=i.$ChessHorizontal(q);if(!x)q=i.$ChessVertical(q);var M=f.$ScaleHorizontal||1,O=f.$ScaleVertical||1;if(i.$IsToLeft(q))g.$Left+=m*M;else if(i.$IsToRight(q))g.$Left-=m*M;if(i.$IsToTop(q))g.$Top+=l*O;else if(i.$IsToBottom(q))g.$Top-=l*O}a.$Each(g,function(b,c){if(a.$IsNumeric(b))if(b!=h[c])t[c]=b-h[c]});w[z]=n?h:g;var L=b.round(k*f.$Delay/f.$Interval);p[z]=new Array(L);p[z].$Min=L;for(var C=f.$FramesCount,J=0;J<=C;J++){var e={};a.$Each(t,function(g,c){var m=f.$EasingInstance[c]||f.$EasingInstance.$Default,l=m[f.$Round[c]||1],k=f.$During[c]||[0,1],d=(J/C-k[0])/k[1]*C;d=b.round(b.min(C,b.max(d,0)));var j=l[d];if(a.$IsNumeric(g))e[c]=h[c]+g*j;else{var i=e[c]=a.$Extend({},h[c]);i.$Offset=[];a.$Each(g.$Offset,function(c,b){var a=c*j;i.$Offset[b]=a;i[b]+=a})}});if(h.$Zoom)e.$Transform={$Rotate:e.$Rotate||0,$Scale:e.$Zoom,$OriginalWidth:m,$OriginalHeight:l};if(e.$Clip&&f.$Move){var B=e.$Clip.$Offset,I=(B.$Top||0)+(B.$Bottom||0),H=(B.$Left||0)+(B.$Right||0);e.$Left=(e.$Left||0)+H;e.$Top=(e.$Top||0)+I;e.$Clip.$Left-=H;e.$Clip.$Right-=H;e.$Clip.$Top-=I;e.$Clip.$Bottom-=I}e.$ZIndex=e.$ZIndex||1;p[z].push(e)}})});q.reverse();a.$Each(q,function(b){a.$Each(b,function(d){var g=d[0],f=d[1],e=g+","+f,b=k;if(f||g)b=a.$CloneNode(k,c);a.$SetStyles(b,w[e]);a.$CssOverflow(b,"hidden");a.$CssPosition(b,"absolute");D.$AddClipElement(b);o[e]=b;a.$ShowElement(b,n)})})}g.$JssorSlideshowRunner$=function(h,l,i,n,p){var d=this,o,f,c,s=0,r=n.$TransitionsOrder,k,g=16;function q(){var a=this,b=0;j.call(a,0,o);a.$OnPositionChange=function(d,a){if(a-b>g){b=a;c&&c.$ShowFrame(a);f&&f.$ShowFrame(a)}};a.$Transition=k}d.$GetTransition=function(f){var c=0,e=n.$Transitions,d=e.length;if(r){if(d>f&&(a.$IsBrowserChrome()||a.$IsBrowserSafari()||a.$IsBrowserFireFox()))d-=d%f;c=s++%d}else c=b.floor(b.random()*d);e[c]&&(e[c].$Index=c);return e[c]};d.$Initialize=function(w,x,n,p,a){k=a;a=K(a,g);var m=p.$Item,j=n.$Item;m["no-image"]=!p.$Image;j["no-image"]=!n.$Image;var q=m,r=j,v=a,e=a.$Brother||K({},g);if(!a.$SlideOut){q=j;r=m}var s=e.$Shift||0;f=new L(h,r,e,b.max(s-e.$Interval,0),l,i);c=new L(h,q,v,b.max(e.$Interval-s,0),l,i);f.$ShowFrame(0);c.$ShowFrame(0);o=b.max(f.$EndTime,c.$EndTime);d.$Index=w};d.$Clear=function(){h.$Clear();f=e;c=e};d.$GetProcessor=function(){var a=e;if(c)a=new q;return a};if(a.$IsBrowserIe9Earlier()||a.$IsBrowserOpera()||p&&a.$GetWebKitVersion<537)g=32;m.call(d);j.call(d,-1e7,1e7)};function n(o,ec){var i=this;function zc(){var a=this;j.call(a,-1e8,2e8);a.$GetCurrentSlideInfo=function(){var c=a.$GetPosition_Display(),d=b.floor(c),f=u(d),e=c-b.floor(c);return{$Index:f,$VirtualIndex:d,$Position:e}};a.$OnPositionChange=function(d,a){var e=b.floor(a);if(e!=a&&a>d)e++;Rb(e,c);i.$TriggerEvent(n.$EVT_POSITION_CHANGE,u(a),u(d),a,d)}}function yc(){var b=this;j.call(b,0,0,{$LoopLength:s});a.$Each(C,function(a){K&1&&a.$SetLoopLength(s);b.$Chain(a);a.$Shift(hb/Zb)})}function xc(){var a=this,b=Qb.$Elmt;j.call(a,-1,2,{$Easing:l.$EaseLinear,$Setter:{$Position:Xb},$LoopLength:s},b,{$Position:1},{$Position:-1});a.$Wrapper=b}function mc(o,m){var a=this,f,g,h,l,b;j.call(a,-1e8,2e8);a.$OnStart=function(){R=c;V=e;i.$TriggerEvent(n.$EVT_SWIPE_START,u(y.$GetPosition()),y.$GetPosition())};a.$OnStop=function(){R=d;l=d;var a=y.$GetCurrentSlideInfo();i.$TriggerEvent(n.$EVT_SWIPE_END,u(y.$GetPosition()),y.$GetPosition());!a.$Position&&Bc(a.$VirtualIndex,p)};a.$OnPositionChange=function(d,c){var a;if(l)a=b;else{a=g;if(h)a=k.$SlideEasing(c/h)*(g-f)+f}y.$GoToPosition(a)};a.$PlayCarousel=function(b,d,c,e){f=b;g=d;h=c;y.$GoToPosition(b);a.$GoToPosition(0);a.$PlayToPosition(c,e)};a.$StandBy=function(d){l=c;b=d;a.$Play(d,e,c)};a.$SetStandByPosition=function(a){b=a};a.$MoveCarouselTo=function(a){y.$GoToPosition(a)};y=new zc;y.$Combine(o);y.$Combine(m)}function nc(){var c=this,b=Wb();a.$CssZIndex(b,0);c.$Elmt=b;c.$AddClipElement=function(c){a.$AppendChild(b,c);a.$ShowElement(b)};c.$Clear=function(){a.$HideElement(b);a.$ClearInnerHtml(b)}}function wc(q,o){var f=this,t,x,K,y,g,z=[],R,r,X,I,P,F,l,v,h,hb;j.call(f,-w,w+1,{$SlideItemAnimator:c});function E(a){x&&x.$Revert();t&&t.$Revert();W(q,a);F=c;t=new N.$Class(q,N,1);x=new N.$Class(q,N);x.$GoToBegin();t.$GoToBegin()}function Z(){t.$Version<N.$Version&&E()}function L(o,q,m){if(!I){I=c;if(g&&m){var e=m.width,b=m.height,l=e,j=b;if(e&&b&&k.$FillMode){if(k.$FillMode&3&&(!(k.$FillMode&4)||e>J||b>H)){var h=d,p=J/H*b/e;if(k.$FillMode&1)h=p>1;else if(k.$FillMode&2)h=p<1;l=h?e*H/b:J;j=h?H:b*J/e}a.$CssWidth(g,l);a.$CssHeight(g,j);a.$CssTop(g,(H-j)/2);a.$CssLeft(g,(J-l)/2)}a.$CssPosition(g,"absolute");i.$TriggerEvent(n.$EVT_LOAD_END,cc)}}a.$HideElement(q);o&&o(f)}function Y(b,c,d,e){if(e==V&&p==o&&S)if(!Ac){var a=u(b);A.$Initialize(a,o,c,f,d);c.$HideContentForSlideshow();ab.$Locate(a,1);ab.$GoToPosition(a);B.$PlayCarousel(b,b,0)}}function cb(b){if(b==V&&p==o){if(!l){var a=e;if(A)if(A.$Index==o)a=A.$GetProcessor();else A.$Clear();Z();l=new uc(o,a,f.$GetCaptionSliderIn(),f.$GetCaptionSliderOut());l.$SetPlayer(h)}!l.$IsPlaying()&&l.$Replay()}}function Q(d,c){if(d==o){if(d!=c)C[c]&&C[c].$ParkOut();h&&h.$Enable();var j=V=a.$GetNow();f.$LoadImage(a.$CreateCallback(e,cb,j))}else{var i=b.abs(o-d),g=w+k.$LazyLoading;(!P||i<=g||s-i<=g)&&f.$LoadImage()}}function fb(){if(p==o&&l){l.$Stop();h&&h.$Quit();h&&h.$Disable();l.$OpenSlideshowPanel()}}function gb(){p==o&&l&&l.$Stop()}function O(b){if(U)a.$CancelEvent(b);else i.$TriggerEvent(n.$EVT_CLICK,o,b)}function M(){h=v.pInstance;l&&l.$SetPlayer(h)}f.$LoadImage=function(d,b){b=b||y;if(z.length&&!I){a.$ShowElement(b);if(!X){X=c;i.$TriggerEvent(n.$EVT_LOAD_START);a.$Each(z,function(b){if(!b.src){b.src=a.$GetAttributeEx(b,"src2");a.$CssDisplay(b,b["display-origin"])}})}a.$LoadImages(z,g,a.$CreateCallback(e,L,d,b))}else L(d,b)};f.$GoForNextSlide=function(){if(A){var b=A.$GetTransition(s);if(b){var f=V=a.$GetNow(),c=o+1*Vb,d=C[u(c)];return d.$LoadImage(a.$CreateCallback(e,Y,c,d,b,f),y)}}bb(p+k.$AutoPlaySteps*Vb)};f.$TryActivate=function(){Q(o,o)};f.$ParkOut=function(){h&&h.$Quit();h&&h.$Disable();f.$UnhideContentForSlideshow();l&&l.$Abort();l=e;E()};f.$StampSlideItemElements=function(a){a=hb+"_"+a};f.$HideContentForSlideshow=function(){a.$HideElement(q)};f.$UnhideContentForSlideshow=function(){a.$ShowElement(q)};f.$EnablePlayer=function(){h&&h.$Enable()};function W(b,f,e){if(b["jssor-slider"])return;e=e||0;if(!F){if(b.tagName=="IMG"){z.push(b);if(!b.src){P=c;b["display-origin"]=a.$CssDisplay(b);a.$HideElement(b)}}a.$IsBrowserIe9Earlier()&&a.$CssZIndex(b,(a.$CssZIndex(b)||0)+1);if(k.$HWA&&a.$GetWebKitVersion()>0)(!G||a.$GetWebKitVersion()<534||!eb)&&a.$EnableHWA(b)}var h=a.$GetChildren(b);a.$Each(h,function(h){var j=a.$GetAttributeEx(h,"u");if(j=="player"&&!v){v=h;if(v.pInstance)M();else a.$AddEvent(v,"dataavailable",M)}if(j=="caption"){if(!a.$IsBrowserIE()&&!f){var i=a.$CloneNode(h,c);a.$InsertBefore(b,i,h);a.$RemoveChild(b,h);h=i;f=c}}else if(!F&&!e&&!g&&a.$GetAttributeEx(h,"u")=="image"){g=h;if(g){if(g.tagName=="A"){R=g;a.$SetStyles(R,T);r=a.$CloneNode(g,d);a.$AddEvent(r,"click",O);a.$SetStyles(r,T);a.$CssDisplay(r,"block");a.$CssOpacity(r,0);a.$Css(r,"backgroundColor","#000");g=a.$FindFirstChildByTag(g,"IMG")}g.border=0;a.$SetStyles(g,T)}}W(h,f,e+1)})}f.$OnInnerOffsetChange=function(c,b){var a=w-b;Xb(K,a)};f.$GetCaptionSliderIn=function(){return t};f.$GetCaptionSliderOut=function(){return x};f.$Index=o;m.call(f);var D=a.$FindFirstChildByAttribute(q,"thumb");if(D){f.$Thumb=a.$CloneNode(D,c);a.$RemoveAttribute(D,"id");a.$HideElement(D)}a.$ShowElement(q);y=a.$CloneNode(db,c);a.$CssZIndex(y,1e3);a.$AddEvent(q,"click",O);E(c);f.$Image=g;f.$Link=r;f.$Item=q;f.$Wrapper=K=q;a.$AppendChild(K,y);i.$On(203,Q);i.$On(22,gb);i.$On(24,fb)}function uc(g,r,v,u){var b=this,m=0,x=0,o,h,e,f,l,s,w,t,q=C[g];j.call(b,0,0);function y(){a.$ClearChildren(O);dc&&l&&q.$Link&&a.$AppendChild(O,q.$Link);a.$ShowElement(O,l||!q.$Image)}function z(){if(s){s=d;i.$TriggerEvent(n.$EVT_ROLLBACK_END,g,e,m,h,e,f);b.$GoToPosition(h)}b.$Replay()}function B(a){t=a;b.$Stop();b.$Replay()}b.$Replay=function(){var a=b.$GetPosition_Display();if(!I&&!R&&!t&&p==g){if(!a){if(o&&!l){l=c;b.$OpenSlideshowPanel(c);i.$TriggerEvent(n.$EVT_SLIDESHOW_START,g,m,x,o,f)}y()}var d,k=n.$EVT_STATE_CHANGE;if(a!=f)if(a==e)d=f;else if(a==h)d=e;else if(!a)d=h;else if(a>e){s=c;d=e;k=n.$EVT_ROLLBACK_START}else d=b.$GetPlayToPosition();i.$TriggerEvent(k,g,a,m,h,e,f);var j=S&&(!Tb||Z);if(a==f)j&&q.$GoForNextSlide();else(j||a!=e)&&b.$PlayToPosition(d,z)}};b.$Abort=function(){A&&A.$Index==g&&A.$Clear();var a=b.$GetPosition_Display();a<f&&i.$TriggerEvent(n.$EVT_STATE_CHANGE,g,-a-1,m,h,e,f)};b.$OpenSlideshowPanel=function(b){r&&a.$CssOverflow(jb,b&&r.$Transition.$Outside?"":"hidden")};b.$OnInnerOffsetChange=function(b,a){if(l&&a>=o){l=d;y();q.$UnhideContentForSlideshow();A.$Clear();i.$TriggerEvent(n.$EVT_SLIDESHOW_END,g,m,x,o,f)}i.$TriggerEvent(n.$EVT_PROGRESS_CHANGE,g,a,m,h,e,f)};b.$SetPlayer=function(a){if(a&&!w){w=a;a.$On($JssorPlayer$.$EVT_SWITCH,B)}};r&&b.$Chain(r);o=b.$GetPosition_OuterEnd();b.$GetPosition_OuterEnd();b.$Chain(v);h=v.$GetPosition_OuterEnd();e=h+k.$AutoPlayInterval;u.$Shift(e);b.$Combine(u);f=b.$GetPosition_OuterEnd()}function Xb(c,g){var f=x>0?x:ib,d=Ab*g*(f&1),e=Bb*g*(f>>1&1);if(!a.$IsBrowserChrome()){d=b.round(d);e=b.round(e)}if(a.$IsBrowserIE()&&a.$GetBrowserVersion()>=10&&a.$GetBrowserVersion()<11)c.style.msTransform="translate("+d+"px, "+e+"px)";else if(a.$IsBrowserChrome()&&a.$GetBrowserVersion()>=30&&a.$GetBrowserVersion()<34){c.style.WebkitTransition="transform 0s";c.style.WebkitTransform="translate3d("+d+"px, "+e+"px, 0px) perspective(2000px)"}else{a.$CssLeft(c,d);a.$CssTop(c,e)}}function sc(c){U=0;var b=a.$GetEventSrcElement(c).tagName;!L&&b!="INPUT"&&b!="TEXTAREA"&&qc()&&rc(c)}function rc(b){qb=R;I=c;zb=d;V=e;a.$AddEvent(f,ob,ac);a.$GetNow();Ib=B.$GetPlayToPosition();B.$Stop();if(!qb)x=0;if(G){var h=b.touches[0];ub=h.clientX;vb=h.clientY}else{var g=a.$GetMousePosition(b);ub=g.x;vb=g.y;a.$CancelEvent(b)}E=0;cb=0;gb=0;D=y.$GetPosition();i.$TriggerEvent(n.$EVT_DRAG_START,u(D),D,b)}function ac(e){if(I&&(!a.$IsBrowserIe9Earlier()||e.button)){var f;if(G){var m=e.touches;if(m&&m.length>0)f=new h(m[0].clientX,m[0].clientY)}else f=a.$GetMousePosition(e);if(f){var k=f.x-ub,l=f.y-vb;if(b.floor(D)!=D)x=x||ib&L;if((k||l)&&!x){if(L==3)if(b.abs(l)>b.abs(k))x=2;else x=1;else x=L;if(G&&x==1&&b.abs(l)-b.abs(k)>3)zb=c}if(x){var d=l,j=Bb;if(x==1){d=k;j=Ab}if(!(K&1)){if(d>0){var g=j*p,i=d-g;if(i>0)d=g+b.sqrt(i)*5}if(d<0){var g=j*(s-w-p),i=-d-g;if(i>0)d=-g-b.sqrt(i)*5}}if(E-cb<-2)gb=1;else if(E-cb>2)gb=0;cb=E;E=d;sb=D-E/j/(nb||1);if(E&&x&&!zb){a.$CancelEvent(e);if(!R)B.$StandBy(sb);else B.$SetStandByPosition(sb)}else a.$IsBrowserIe9Earlier()&&a.$CancelEvent(e)}}}else Eb(e)}function Eb(h){oc();if(I){I=d;a.$GetNow();a.$RemoveEvent(f,ob,ac);U=E;U&&a.$CancelEvent(h);B.$Stop();var e=y.$GetPosition();i.$TriggerEvent(n.$EVT_DRAG_END,u(e),e,u(D),D,h);var c=b.floor(D);if(b.abs(E)>=k.$MinDragOffsetToSlide){c=b.floor(e);c+=gb}if(!(K&1))c=b.min(s-w,b.max(c,0));var g=b.abs(c-e);g=1-b.pow(1-g,5);if(!U&&qb)B.$Continue(Ib);else if(e==c){tb.$EnablePlayer();tb.$TryActivate()}else B.$PlayCarousel(e,c,g*Sb)}}function lc(a){C[p];p=u(a);tb=C[p];Rb(a);return p}function Bc(a,b){x=0;lc(a);i.$TriggerEvent(n.$EVT_PARK,u(a),b)}function Rb(b,c){xb=b;a.$Each(Q,function(a){a.$SetCurrentIndex(u(b),b,c)})}function qc(){var b=n.$DragRegistry||0,a=P;if(G)a&1&&(a&=1);n.$DragRegistry|=a;return L=a&~b}function oc(){if(L){n.$DragRegistry&=~P;L=0}}function Wb(){var b=a.$CreateDivElement();a.$SetStyles(b,T);a.$CssPosition(b,"absolute");return b}function u(a){return(a%s+s)%s}function ic(a,c){if(c)if(!K){a=b.min(b.max(a+xb,0),s-w);c=d}else if(K&2){a=u(a+xb);c=d}bb(a,k.$SlideDuration,c)}function yb(){a.$Each(Q,function(a){a.$Show(a.$Options.$ChanceToShow>Z)})}function gc(b){b=a.$GetEvent(b);var c=b.target?b.target:b.srcElement,d=b.relatedTarget?b.relatedTarget:b.toElement;if(!a.$IsChild(o,c)||a.$IsChild(o,d))return;Z=1;yb();C[p].$TryActivate()}function fc(){Z=0;yb()}function hc(){T={$Width:J,$Height:H,$Top:0,$Left:0};a.$Each(X,function(b){a.$SetStyles(b,T);a.$CssPosition(b,"absolute");a.$CssOverflow(b,"hidden");a.$HideElement(b)});a.$SetStyles(db,T)}function lb(b,a){bb(b,a,c)}function bb(h,g,l){if(Ob&&(!I||k.$NaviQuitDrag)){R=c;I=d;B.$Stop();if(a.$IsUndefined(g))g=Sb;var f=Fb.$GetPosition_Display(),e=h;if(l){e=f+h;if(h>0)e=b.ceil(e);else e=b.floor(e)}if(!(K&1)){e=u(e);e=b.max(0,b.min(e,s-w))}var j=(e-f)%s;e=f+j;var i=f==e?0:g*b.abs(j);i=b.min(i,g*w*1.5);B.$PlayCarousel(f,e,i||1)}}i.$PlayTo=bb;i.$GoTo=function(a){bb(a,1)};i.$Next=function(){lb(1)};i.$Prev=function(){lb(-1)};i.$Pause=function(){S=d};i.$Play=function(){if(!S){S=c;C[p]&&C[p].$TryActivate()}};i.$SetSlideshowTransitions=function(a){k.$SlideshowOptions.$Transitions=a};i.$SetCaptionTransitions=function(b){N.$CaptionTransitions=b;N.$Version=a.$GetNow()};i.$SlidesCount=function(){return X.length};i.$CurrentIndex=function(){return p};i.$IsAutoPlaying=function(){return S};i.$IsDragging=function(){return I};i.$IsSliding=function(){return R};i.$IsMouseOver=function(){return!Z};i.$LastDragSucceded=function(){return U};i.$GetOriginalWidth=function(){return a.$CssWidth(v||o)};i.$GetOriginalHeight=function(){return a.$CssHeight(v||o)};i.$GetScaleWidth=function(){return a.$CssWidth(o)};i.$GetScaleHeight=function(){return a.$CssHeight(o)};i.$SetScaleWidth=function(c){if(!v){var b=a.$CreateDivElement(f);a.$CssCssText(b,a.$CssCssText(o));a.$SetClassName(b,a.$GetClassName(o));a.$CssPosition(b,"relative");a.$CssTop(b,0);a.$CssLeft(b,0);a.$CssOverflow(b,"visible");v=a.$CreateDivElement(f);a.$CssPosition(v,"absolute");a.$CssTop(v,0);a.$CssLeft(v,0);a.$CssWidth(v,a.$CssWidth(o));a.$CssHeight(v,a.$CssHeight(o));a.$SetStyleTransformOrigin(v,"0 0");a.$AppendChild(v,b);var g=a.$GetChildren(o);a.$AppendChild(o,v);a.$Css(o,"backgroundImage","");var e={navigator:Y&&Y.$Scale==d,arrowleft:M&&M.$Scale==d,arrowright:M&&M.$Scale==d,thumbnavigator:F&&F.$Scale==d,thumbwrapper:F&&F.$Scale==d};a.$Each(g,function(c){a.$AppendChild(e[a.$GetAttributeEx(c,"u")]?o:b,c)});a.$ShowElement(b);a.$ShowElement(v)}nb=c/a.$CssWidth(v);a.$SetStyleScale(v,nb);a.$CssWidth(o,c);a.$CssHeight(o,nb*a.$CssHeight(v));a.$Each(Q,function(a){a.$Relocate()})};i.$GetVirtualIndex=function(a){var d=b.ceil(u(hb/Zb)),c=u(a-p+d);if(c>w){if(a-p>s/2)a-=s;else if(a-p<=-s/2)a+=s}else a=p+c-d;return a};m.call(this);i.$Elmt=o=a.$GetElement(o);var k=a.$Extend({$FillMode:0,$LazyLoading:1,$StartIndex:0,$AutoPlay:d,$Loop:1,$HWA:c,$NaviQuitDrag:c,$AutoPlaySteps:1,$AutoPlayInterval:3e3,$PauseOnHover:1,$SlideDuration:500,$SlideEasing:l.$EaseOutQuad,$MinDragOffsetToSlide:20,$SlideSpacing:0,$DisplayPieces:1,$ParkingPosition:0,$UISearchMode:1,$PlayOrientation:1,$DragOrientation:1},ec),ib=k.$PlayOrientation&3,Vb=(k.$PlayOrientation&4)/-4||1,fb=k.$SlideshowOptions,N=a.$Extend({$Class:t,$PlayInMode:1,$PlayOutMode:1},k.$CaptionSliderOptions),Y=k.$BulletNavigatorOptions,M=k.$ArrowNavigatorOptions,F=k.$ThumbnailNavigatorOptions,W=k.$UISearchMode,v,z=a.$FindFirstChildByAttribute(o,"slides",e,W),db=a.$FindFirstChildByAttribute(o,"loading",e,W)||a.$CreateDivElement(f),Kb=a.$FindFirstChildByAttribute(o,"navigator",e,W),bc=a.$FindFirstChildByAttribute(o,"arrowleft",e,W),Yb=a.$FindFirstChildByAttribute(o,"arrowright",e,W),Hb=a.$FindFirstChildByAttribute(o,"thumbnavigator",e,W),kc=a.$CssWidth(z),jc=a.$CssHeight(z),T,X=[],tc=a.$GetChildren(z);a.$Each(tc,function(b){b.tagName=="DIV"&&!a.$GetAttributeEx(b,"u")&&X.push(b)});var p=-1,xb,tb,s=X.length,J=k.$SlideWidth||kc,H=k.$SlideHeight||jc,Ub=k.$SlideSpacing,Ab=J+Ub,Bb=H+Ub,Zb=ib&1?Ab:Bb,w=b.min(k.$DisplayPieces,s),jb,x,L,zb,G,Q=[],Nb,Pb,Mb,dc,Ac,S,Tb=k.$PauseOnHover,Sb=k.$SlideDuration,rb,eb,hb,Ob=w<s,K=Ob?k.$Loop:0,P,U,Z=1,R,I,V,ub=0,vb=0,E,cb,gb,Fb,y,ab,B,Qb=new nc,nb;S=k.$AutoPlay;i.$Options=ec;hc();o["jssor-slider"]=c;a.$CssZIndex(z,a.$CssZIndex(z)||0);a.$CssPosition(z,"absolute");jb=a.$CloneNode(z);a.$InsertBefore(a.$GetParentNode(z),jb,z);if(fb){dc=fb.$ShowLink;rb=fb.$Class;eb=w==1&&s>1&&rb&&(!a.$IsBrowserIE()||a.$GetBrowserVersion()>=8)}hb=eb||w>=s||!(K&1)?0:k.$ParkingPosition;P=(w>1||hb?ib:-1)&k.$DragOrientation;var wb=z,C=[],A,O,Db="mousedown",ob="mousemove",Gb="mouseup",mb,D,qb,Ib,sb;if(g.navigator.msPointerEnabled){Db="MSPointerDown";ob="MSPointerMove";Gb="MSPointerUp";mb="MSPointerCancel";if(P){var Cb="none";if(P==1)Cb="pan-y";else if(P==2)Cb="pan-x";a.$SetAttribute(wb.style,"-ms-touch-action",Cb)}}else if("ontouchstart"in g||"createTouch"in f){G=c;Db="touchstart";ob="touchmove";Gb="touchend";mb="touchcancel"}ab=new xc;if(eb)A=new rb(Qb,J,H,fb,G);a.$AppendChild(jb,ab.$Wrapper);a.$CssOverflow(z,"hidden");O=Wb();a.$Css(O,"backgroundColor","#000");a.$CssOpacity(O,0);a.$InsertBefore(wb,O,wb.firstChild);for(var pb=0;pb<X.length;pb++){var vc=X[pb],cc=new wc(vc,pb);C.push(cc)}a.$HideElement(db);Fb=new yc;B=new mc(Fb,ab);if(P){a.$AddEvent(z,Db,sc);a.$AddEvent(f,Gb,Eb);mb&&a.$AddEvent(f,mb,Eb)}Tb&=G?2:1;if(Kb&&Y){Nb=new Y.$Class(Kb,Y);Q.push(Nb)}if(M&&bc&&Yb){Pb=new M.$Class(bc,Yb,M);Q.push(Pb)}if(Hb&&F){F.$StartIndex=k.$StartIndex;Mb=new F.$Class(Hb,F);Q.push(Mb)}a.$Each(Q,function(a){a.$Reset(s,C,db);a.$On(q.$NAVIGATIONREQUEST,ic)});i.$SetScaleWidth(i.$GetOriginalWidth());a.$AddEvent(o,"mouseout",gc);a.$AddEvent(o,"mouseover",fc);yb();k.$ArrowKeyNavigation&&a.$AddEvent(f,"keydown",function(a){if(a.keyCode==r.$LEFT)lb(-1);else a.keyCode==r.$RIGHT&&lb(1)});var kb=k.$StartIndex;if(!(K&1))kb=b.max(0,b.min(kb,s-w));B.$PlayCarousel(kb,kb,0)}n.$EVT_CLICK=21;n.$EVT_DRAG_START=22;n.$EVT_DRAG_END=23;n.$EVT_SWIPE_START=24;n.$EVT_SWIPE_END=25;n.$EVT_LOAD_START=26;n.$EVT_LOAD_END=27;n.$EVT_POSITION_CHANGE=202;n.$EVT_PARK=203;n.$EVT_SLIDESHOW_START=206;n.$EVT_SLIDESHOW_END=207;n.$EVT_PROGRESS_CHANGE=208;n.$EVT_STATE_CHANGE=209;n.$EVT_ROLLBACK_START=210;n.$EVT_ROLLBACK_END=211;g.$JssorSlider$=s=n};var q={$NAVIGATIONREQUEST:1,$INDEXCHANGE:2,$RESET:3};g.$JssorBulletNavigator$=function(f,D){var h=this;m.call(h);f=a.$GetElement(f);var t,u,s,r,l=0,g,n,k,y,z,j,i,p,o,C=[],A=[];function x(a){a!=-1&&A[a].$Activate(a==l)}function v(a){h.$TriggerEvent(q.$NAVIGATIONREQUEST,a*n)}h.$Elmt=f;h.$GetCurrentIndex=function(){return r};h.$SetCurrentIndex=function(a){if(a!=r){var d=l,c=b.floor(a/n);l=c;r=a;x(d);x(c)}};h.$Show=function(b){a.$ShowElement(f,b)};var B;h.$Relocate=function(){if(!B||g.$Scale==d){g.$AutoCenter&1&&a.$CssLeft(f,(a.$CssWidth(a.$GetParentNode(f))-u)/2);g.$AutoCenter&2&&a.$CssTop(f,(a.$CssHeight(a.$GetParentNode(f))-s)/2);B=c}};var w;h.$Reset=function(D){if(!w){t=b.ceil(D/n);l=0;var q=p+y,r=o+z,m=b.ceil(t/k)-1;u=p+q*(!j?m:k-1);s=o+r*(j?m:k-1);a.$CssWidth(f,u);a.$CssHeight(f,s);for(var d=0;d<t;d++){var B=a.$CreateSpanElement();a.$SetInnerText(B,d+1);var h=a.$BuildElement(i,"NumberTemplate",B,c);a.$CssPosition(h,"absolute");var x=d%(m+1);a.$CssLeft(h,!j?q*x:d%k*q);a.$CssTop(h,j?r*x:b.floor(d/(m+1))*r);a.$AppendChild(f,h);C[d]=h;g.$ActionMode&1&&a.$AddEvent(h,"click",a.$CreateCallback(e,v,d));g.$ActionMode&2&&a.$AddEvent(h,"mouseover",a.$CreateCallback(e,v,d));A[d]=a.$Buttonize(h)}w=c}};h.$Options=g=a.$Extend({$SpacingX:0,$SpacingY:0,$Orientation:1,$ActionMode:1},D);i=a.$FindFirstChildByAttribute(f,"prototype");p=a.$CssWidth(i);o=a.$CssHeight(i);a.$RemoveChild(f,i);n=g.$Steps||1;k=g.$Lanes||1;y=g.$SpacingX;z=g.$SpacingY;j=g.$Orientation-1};g.$JssorArrowNavigator$=function(b,g,s){var f=this;m.call(f);var i,h,j,p=a.$GetParentNode(b),o=a.$CssWidth(b),l=a.$CssHeight(b);function k(a){f.$TriggerEvent(q.$NAVIGATIONREQUEST,a,c)}f.$GetCurrentIndex=function(){return i};f.$SetCurrentIndex=function(b,a,c){if(c)i=a;else i=b};f.$Show=function(c){a.$ShowElement(b,c);a.$ShowElement(g,c)};var r;f.$Relocate=function(){if(!r||h.$Scale==d){var f=a.$CssWidth(p),e=a.$CssHeight(p);if(h.$AutoCenter&1){a.$CssLeft(b,(f-o)/2);a.$CssLeft(g,(f-o)/2)}if(h.$AutoCenter&2){a.$CssTop(b,(e-l)/2);a.$CssTop(g,(e-l)/2)}r=c}};var n;f.$Reset=function(d){i=0;if(!n){a.$AddEvent(b,"click",a.$CreateCallback(e,k,-j));a.$AddEvent(g,"click",a.$CreateCallback(e,k,j));a.$Buttonize(b);a.$Buttonize(g);n=c}};f.$Options=h=a.$Extend({$Steps:1},s);j=h.$Steps};g.$JssorThumbnailNavigator$=function(i,A){var h=this,x,l,e,u=[],y,w,f,n,o,t,r,k,p,g,j;m.call(h);i=a.$GetElement(i);function z(n,d){var g=this,b,m,k;function o(){m.$Activate(l==d)}function i(){if(!p.$LastDragSucceded()){var a=f-d%f,b=p.$GetVirtualIndex((d+a)/f-1),c=b*f+f-a;h.$TriggerEvent(q.$NAVIGATIONREQUEST,c)}}g.$Index=d;g.$Highlight=o;k=n.$Thumb||n.$Image||a.$CreateDivElement();g.$Wrapper=b=a.$BuildElement(j,"ThumbnailTemplate",k,c);m=a.$Buttonize(b);e.$ActionMode&1&&a.$AddEvent(b,"click",i);e.$ActionMode&2&&a.$AddEvent(b,"mouseover",i)}h.$GetCurrentIndex=function(){return l};h.$SetCurrentIndex=function(c,d,e){var a=l;l=c;a!=-1&&u[a].$Highlight();u[c].$Highlight();!e&&p.$PlayTo(p.$GetVirtualIndex(b.floor(d/f)))};h.$Show=function(b){a.$ShowElement(i,b)};h.$Relocate=a.$EmptyFunction;var v;h.$Reset=function(F,D){if(!v){x=F;b.ceil(x/f);l=-1;k=b.min(k,D.length);var h=e.$Orientation&1,q=t+(t+n)*(f-1)*(1-h),m=r+(r+o)*(f-1)*h,C=q+(q+n)*(k-1)*h,A=m+(m+o)*(k-1)*(1-h);a.$CssPosition(g,"absolute");a.$CssOverflow(g,"hidden");e.$AutoCenter&1&&a.$CssLeft(g,(y-C)/2);e.$AutoCenter&2&&a.$CssTop(g,(w-A)/2);a.$CssWidth(g,C);a.$CssHeight(g,A);var j=[];a.$Each(D,function(l,e){var i=new z(l,e),d=i.$Wrapper,c=b.floor(e/f),k=e%f;a.$CssLeft(d,(t+n)*k*(1-h));a.$CssTop(d,(r+o)*k*h);if(!j[c]){j[c]=a.$CreateDivElement();a.$AppendChild(g,j[c])}a.$AppendChild(j[c],d);u.push(i)});var E=a.$Extend({$AutoPlay:d,$NaviQuitDrag:d,$SlideWidth:q,$SlideHeight:m,$SlideSpacing:n*h+o*(1-h),$MinDragOffsetToSlide:12,$SlideDuration:200,$PauseOnHover:1,$PlayOrientation:e.$Orientation,$DragOrientation:e.$DisableDrag?0:e.$Orientation},e);p=new s(i,E);v=c}};h.$Options=e=a.$Extend({$SpacingX:3,$SpacingY:3,$DisplayPieces:1,$Orientation:1,$AutoCenter:3,$ActionMode:1},A);y=a.$CssWidth(i);w=a.$CssHeight(i);g=a.$FindFirstChildByAttribute(i,"slides");j=a.$FindFirstChildByAttribute(g,"prototype");t=a.$CssWidth(j);r=a.$CssHeight(j);a.$RemoveChild(g,j);f=e.$Lanes||1;n=e.$SpacingX;o=e.$SpacingY;k=e.$DisplayPieces};function t(){j.call(this,0,0);this.$Revert=a.$EmptyFunction}g.$JssorCaptionSlider$=function(q,k,g){var d=this,h,o=g?k.$PlayInMode:k.$PlayOutMode,f=k.$CaptionTransitions,p={$Transition:"t",$Delay:"d",$Duration:"du",$ScaleHorizontal:"x",$ScaleVertical:"y",$Rotate:"r",$Zoom:"z",$Opacity:"f",$BeginTime:"b"},e={$Default:function(b,a){if(!isNaN(a.$Value))b=a.$Value;else b*=a.$Percent;return b},$Opacity:function(b,a){return this.$Default(b-1,a)}};e.$Zoom=e.$Opacity;j.call(d,0,0);function m(r,l){var k=[],i,j=[],c=[];function h(c,d){var b={};a.$Each(p,function(g,h){var e=a.$GetAttributeEx(c,g+(d||""));if(e){var f={};if(g=="t")f.$Value=e;else if(e.indexOf("%")+1)f.$Percent=a.$ParseFloat(e)/100;else f.$Value=a.$ParseFloat(e);b[h]=f}});return b}function n(){return f[b.floor(b.random()*f.length)]}function d(g){var h;if(g=="*")h=n();else if(g){var e=f[a.$ParseInt(g)]||f[g];if(a.$IsArray(e)){if(g!=i){i=g;c[g]=0;j[g]=e[b.floor(b.random()*e.length)]}else c[g]++;e=j[g];if(a.$IsArray(e)){e=e.length&&e[c[g]%e.length];if(a.$IsArray(e))e=e[b.floor(b.random()*e.length)]}}h=e;if(a.$IsString(h))h=d(h)}return h}var q=a.$GetChildren(r);a.$Each(q,function(b){var c=[];c.$Elmt=b;var f=a.$GetAttributeEx(b,"u")=="caption";a.$Each(g?[0,3]:[2],function(k,n){if(f){var j,g;if(k!=2||!a.$GetAttributeEx(b,"t3")){g=h(b,k);if(k==2&&!g.$Transition){g.$Delay=g.$Delay||{$Value:0};g=a.$Extend(h(b,0),g)}}if(g&&g.$Transition){j=d(g.$Transition.$Value);if(j){var i=a.$Extend({$Delay:0,$ScaleHorizontal:1,$ScaleVertical:1},j);a.$Each(g,function(c,a){var b=(e[a]||e.$Default).apply(e,[i[a],g[a]]);if(!isNaN(b))i[a]=b});if(!n)if(g.$BeginTime)i.$BeginTime=g.$BeginTime.$Value||0;else if(o&2)i.$BeginTime=0}}c.push(i)}if(l%2&&!n)c.$Children=m(b,l+1)});k.push(c)});return k}function n(E,d,F){var h={$Easing:d.$Easing,$Round:d.$Round,$During:d.$During,$Reverse:g&&!F,$Optimize:c},k=E,y=a.$GetParentNode(E),o=a.$CssWidth(k),n=a.$CssHeight(k),u=a.$CssWidth(y),t=a.$CssHeight(y),f={},l={},m=d.$ScaleClip||1;if(d.$Opacity)f.$Opacity=2-d.$Opacity;h.$OriginalWidth=o;h.$OriginalHeight=n;if(d.$Zoom||d.$Rotate){f.$Zoom=d.$Zoom?d.$Zoom-1:1;if(a.$IsBrowserIe9Earlier()||a.$IsBrowserOpera())f.$Zoom=b.min(f.$Zoom,2);l.$Zoom=1;var s=d.$Rotate||0;if(s==c)s=1;f.$Rotate=s*360;l.$Rotate=0}else if(d.$Clip){var z={$Top:0,$Right:o,$Bottom:n,$Left:0},D=a.$Extend({},z),e=D.$Offset={},C=d.$Clip&4,v=d.$Clip&8,A=d.$Clip&1,x=d.$Clip&2;if(C&&v){e.$Top=n/2*m;e.$Bottom=-e.$Top}else if(C)e.$Bottom=-n*m;else if(v)e.$Top=n*m;if(A&&x){e.$Left=o/2*m;e.$Right=-e.$Left}else if(A)e.$Right=-o*m;else if(x)e.$Left=o*m;h.$Move=d.$Move;f.$Clip=D;l.$Clip=z}var p=d.$FlyDirection,q=0,r=0,w=d.$ScaleHorizontal,B=d.$ScaleVertical;if(i.$IsToLeft(p))q-=u*w;else if(i.$IsToRight(p))q+=u*w;if(i.$IsToTop(p))r-=t*B;else if(i.$IsToBottom(p))r+=t*B;if(q||r||h.$Move){f.$Left=q+a.$CssLeft(k);f.$Top=r+a.$CssTop(k)}var G=d.$Duration;l=a.$Extend(l,a.$GetStyles(k,f));h.$Setter=a.$GetStyleSetterEx();return new j(d.$Delay,G,h,k,l,f)}function l(b,c){a.$Each(c,function(c){var f,i=c.$Elmt,e=c[0],j=c[1];if(e){f=n(i,e);b=f.$Locate(a.$IsUndefined(e.$BeginTime)?b:e.$BeginTime,1)}b=l(b,c.$Children);if(j){var g=n(i,j,1);g.$Locate(b,1);d.$Combine(g);h.$Combine(g)}f&&d.$Combine(f)});return b}d.$Revert=function(){d.$GoToPosition(d.$GetPosition_OuterEnd()*(g||0));h.$GoToBegin()};h=new j(0,0);l(0,o?m(q,1):[])}})(window,document,Math,null,true,false)
skin/frontend/base/default/js/layerslider/jssor.slider.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ (function(g,f,b,e,c,d,o){/*! Jssor */
2
+ $Jssor$=g.$Jssor$=g.$Jssor$||{};new(function(){this.$DebugMode=c;this.$Log=function(c,d){var a=g.console||{},b=this.$DebugMode;if(b&&a.log)a.log(c);else b&&d&&alert(c)};this.$Error=function(b,d){var c=g.console||{},a=this.$DebugMode;if(a&&c.error)c.error(b);else a&&alert(b);if(a)throw d||new Error(b);};this.$Fail=function(a){throw new Error(a);};this.$Assert=function(b,c){var a=this.$DebugMode;if(a)if(!b)throw new Error("Assert failed "+c||"");};this.$Trace=function(c){var a=g.console||{},b=this.$DebugMode;b&&a.log&&a.log(c)};this.$Execute=function(b){var a=this.$DebugMode;a&&b()};this.$LiveStamp=function(b,c){var a=f.createElement("DIV");a.setAttribute("id",c);b.$Live=a}});var m=function(){var b=this,a={};b.$On=b.addEventListener=function(b,c){if(typeof c!="function")return;if(!a[b])a[b]=[];a[b].push(c)};b.$Off=b.removeEventListener=function(e,d){var b=a[e];if(typeof d!="function")return;else if(!b)return;for(var c=0;c<b.length;c++)if(d==b[c]){b.splice(c,1);return}};b.$ClearEventListeners=function(b){if(a[b])delete a[b]};b.$TriggerEvent=function(e){var c=a[e],d=[];if(!c)return;for(var b=1;b<arguments.length;b++)d.push(arguments[b]);for(var b=0;b<c.length;b++)try{c[b].apply(g,d)}catch(f){}}},h;(function(){h=function(a,b){this.x=typeof a=="number"?a:0;this.y=typeof b=="number"?b:0};var a=h.prototype;a.$Plus=function(a){return new h(this.x+a.x,this.y+a.y)};a.$Minus=function(a){return new h(this.x-a.x,this.y-a.y)};a.$Times=function(a){return new h(this.x*a,this.y*a)};a.$Divide=function(a){return new h(this.x/a,this.y/a)};a.$Negate=function(){return new h(-this.x,-this.y)};a.$DistanceTo=function(a){return b.sqrt(b.pow(this.x-a.x,2)+b.pow(this.y-a.y,2))};a.$Apply=function(a){return new h(a(this.x),a(this.y))};a.$Equals=function(a){return a instanceof h&&this.x===a.x&&this.y===a.y};a.$ToString=function(){return"("+this.x+","+this.y+")"}})();var l=g.$JssorEasing$={$EaseLinear:function(a){return a},$EaseGoBack:function(a){return 1-b.abs(2-1)},$EaseSwing:function(a){return-b.cos(a*b.PI)/2+.5},$EaseInQuad:function(a){return a*a},$EaseOutQuad:function(a){return-a*(a-2)},$EaseInOutQuad:function(a){return(a*=2)<1?1/2*a*a:-1/2*(--a*(a-2)-1)},$EaseInCubic:function(a){return a*a*a},$EaseOutCubic:function(a){return(a-=1)*a*a+1},$EaseInOutCubic:function(a){return(a*=2)<1?1/2*a*a*a:1/2*((a-=2)*a*a+2)},$EaseInQuart:function(a){return a*a*a*a},$EaseOutQuart:function(a){return-((a-=1)*a*a*a-1)},$EaseInOutQuart:function(a){return(a*=2)<1?1/2*a*a*a*a:-1/2*((a-=2)*a*a*a-2)},$EaseInQuint:function(a){return a*a*a*a*a},$EaseOutQuint:function(a){return(a-=1)*a*a*a*a+1},$EaseInOutQuint:function(a){return(a*=2)<1?1/2*a*a*a*a*a:1/2*((a-=2)*a*a*a*a+2)},$EaseInSine:function(a){return 1-b.cos(a*b.PI/2)},$EaseOutSine:function(a){return b.sin(a*b.PI/2)},$EaseInOutSine:function(a){return-1/2*(b.cos(b.PI*a)-1)},$EaseInExpo:function(a){return a==0?0:b.pow(2,10*(a-1))},$EaseOutExpo:function(a){return a==1?1:-b.pow(2,-10*a)+1},$EaseInOutExpo:function(a){return a==0||a==1?a:(a*=2)<1?1/2*b.pow(2,10*(a-1)):1/2*(-b.pow(2,-10*--a)+2)},$EaseInCirc:function(a){return-(b.sqrt(1-a*a)-1)},$EaseOutCirc:function(a){return b.sqrt(1-(a-=1)*a)},$EaseInOutCirc:function(a){return(a*=2)<1?-1/2*(b.sqrt(1-a*a)-1):1/2*(b.sqrt(1-(a-=2)*a)+1)},$EaseInElastic:function(a){if(!a||a==1)return a;var c=.3,d=.075;return-(b.pow(2,10*(a-=1))*b.sin((a-d)*2*b.PI/c))},$EaseOutElastic:function(a){if(!a||a==1)return a;var c=.3,d=.075;return b.pow(2,-10*a)*b.sin((a-d)*2*b.PI/c)+1},$EaseInOutElastic:function(a){if(!a||a==1)return a;var c=.45,d=.1125;return(a*=2)<1?-.5*b.pow(2,10*(a-=1))*b.sin((a-d)*2*b.PI/c):b.pow(2,-10*(a-=1))*b.sin((a-d)*2*b.PI/c)*.5+1},$EaseInBack:function(a){var b=1.70158;return a*a*((b+1)*a-b)},$EaseOutBack:function(a){var b=1.70158;return(a-=1)*a*((b+1)*a+b)+1},$EaseInOutBack:function(a){var b=1.70158;return(a*=2)<1?1/2*a*a*(((b*=1.525)+1)*a-b):1/2*((a-=2)*a*(((b*=1.525)+1)*a+b)+2)},$EaseInBounce:function(a){return 1-l.$EaseOutBounce(1-a)},$EaseOutBounce:function(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},$EaseInOutBounce:function(a){return a<1/2?l.$EaseInBounce(a*2)*.5:l.$EaseOutBounce(a*2-1)*.5+.5},$EaseInWave:function(a){return 1-b.cos(a*b.PI*2)},$EaseOutWave:function(a){return b.sin(a*b.PI*2)},$EaseOutJump:function(a){return 1-((a*=2)<1?(a=1-a)*a*a:(a-=1)*a*a)},$EaseInJump:function(a){return(a*=2)<1?a*a*a:(a=2-a)*a*a}},i=g.$JssorDirection$={$TO_LEFT:1,$TO_RIGHT:2,$TO_TOP:4,$TO_BOTTOM:8,$HORIZONTAL:3,$VERTICAL:12,$LEFTRIGHT:3,$TOPBOTOM:12,$TOPLEFT:5,$TOPRIGHT:6,$BOTTOMLEFT:9,$BOTTOMRIGHT:10,$AROUND:15,$GetDirectionHorizontal:function(a){return a&3},$GetDirectionVertical:function(a){return a&12},$ChessHorizontal:function(a){return(~a&3)+(a&12)},$ChessVertical:function(a){return(~a&12)+(a&3)},$IsToLeft:function(a){return(a&3)==1},$IsToRight:function(a){return(a&3)==2},$IsToTop:function(a){return(a&12)==4},$IsToBottom:function(a){return(a&12)==8},$IsHorizontal:function(a){return(a&3)>0},$IsVertical:function(a){return(a&12)>0}},r={$BACKSPACE:8,$COMMA:188,$DELETE:46,$DOWN:40,$END:35,$ENTER:13,$ESCAPE:27,$HOME:36,$LEFT:37,$NUMPAD_ADD:107,$NUMPAD_DECIMAL:110,$NUMPAD_DIVIDE:111,$NUMPAD_ENTER:108,$NUMPAD_MULTIPLY:106,$NUMPAD_SUBTRACT:109,$PAGE_DOWN:34,$PAGE_UP:33,$PERIOD:190,$RIGHT:39,$SPACE:32,$TAB:9,$UP:38},p,n={$UNKNOWN:0,$IE:1,$FIREFOX:2,$SAFARI:3,$CHROME:4,$OPERA:5},z=1,v=2,x=3,w=4,y=5,j,a=g.$JssorUtils$=new function(){var i=this,m=n.$UNKNOWN,j=0,s=0,T=0,B=0,fb=navigator.appName,k=navigator.userAgent;function F(){if(!m)if(fb=="Microsoft Internet Explorer"&&!!g.attachEvent&&!!g.ActiveXObject){var d=k.indexOf("MSIE");m=n.$IE;s=parseFloat(k.substring(d+5,k.indexOf(";",d)));/*@cc_on T=@_jscript_version@*/;j=f.documentMode||s}else if(fb=="Netscape"&&!!g.addEventListener){var c=k.indexOf("Firefox"),a=k.indexOf("Safari"),h=k.indexOf("Chrome"),b=k.indexOf("AppleWebKit");if(c>=0){m=n.$FIREFOX;j=parseFloat(k.substring(c+8))}else if(a>=0){var i=k.substring(0,a).lastIndexOf("/");m=h>=0?n.$CHROME:n.$SAFARI;j=parseFloat(k.substring(i+1,a))}if(b>=0)B=parseFloat(k.substring(b+12))}else{var e=/(opera)(?:.*version|)[ \/]([\w.]+)/i.exec(k);if(e){m=n.$OPERA;j=parseFloat(e[2])}}}function r(){F();return m==z}function I(){return r()&&(j<6||f.compatMode=="BackCompat")}function Z(){F();return m==v}function O(){F();return m==x}function lb(){F();return m==w}function nb(){F();return m==y}function V(){return O()&&B>534&&B<535}function hb(){return O()&&B<535}function A(){return r()&&j<9}var D;function t(a){if(!D){q(["transform","WebkitTransform","msTransform","MozTransform","OTransform"],function(b){if(!i.$IsUndefined(a.style[b])){D=b;return c}});D=D||"transform"}return D}function jb(a,b){return b&&a!=f.body?f.body:a.offsetParent}function db(a){return Object.prototype.toString.call(a)}var L;function q(a,c){if(db(a)=="[object Array]"){for(var b=0;b<a.length;b++)if(c(a[b],b,a))break}else for(var d in a)if(c(a[d],d,a))break}function ob(){if(!L){L={};q(["Boolean","Number","String","Function","Array","Date","RegExp","Object"],function(a){L["[object "+a+"]"]=a.toLowerCase()})}return L}function C(a){return a==e?String(a):ob()[db(a)]||"object"}function pb(a){if(!a||C(a)!=="object"||a.nodeType||i.$IsWindow(a))return d;var b=Object.prototype.hasOwnProperty;try{if(a.constructor&&!b.call(a,"constructor")&&!b.call(a.constructor.prototype,"isPrototypeOf"))return d}catch(e){return d}var c;for(c in a);return c===o||b.call(a,c)}function eb(b,a){setTimeout(b,a||0)}function K(b,d,c){var a=!b||b=="inherit"?"":b;q(d,function(c){var b=c.exec(a);if(b){var d=a.substr(0,b.index),e=a.substr(b.lastIndex+1,a.length-(b.lastIndex+1));a=d+e}});a=c+(a.indexOf(" ")!=0?" ":"")+a;return a}function ab(b,a){if(j<9)b.style.filter=a}function ib(b,a,c){if(T<9){var e=b.style.filter,g=new RegExp(/[\s]*progid:DXImageTransform\.Microsoft\.Matrix\([^\)]*\)/g),f=a?"progid:DXImageTransform.Microsoft.Matrix(M11="+a[0][0]+", M12="+a[0][1]+", M21="+a[1][0]+", M22="+a[1][1]+", SizingMethod='auto expand')":"",d=K(e,[g],f);ab(b,d);i.$CssMarginTop(b,c.y);i.$CssMarginLeft(b,c.x)}}i.$IsBrowserIE=r;i.$IsBrowserIeQuirks=I;i.$IsBrowserFireFox=Z;i.$IsBrowserSafari=O;i.$IsBrowserChrome=lb;i.$IsBrowserOpera=nb;i.$IsBrowserBadTransform=V;i.$IsBrowserSafeHWA=hb;i.$IsBrowserIe9Earlier=A;i.$GetBrowserVersion=function(){return j};i.$GetBrowserEngineVersion=function(){return s||j};i.$GetWebKitVersion=function(){return B};i.$Delay=eb;i.$GetElement=function(a){if(i.$IsString(a))a=f.getElementById(a);return a};i.$GetElementPosition=function(a){a=i.$GetElement(a);var b=new h;while(a){b.x+=a.offsetLeft;b.y+=a.offsetTop;var c=i.$GetElementStyle(a).position=="fixed";if(c)b=b.$Plus(i.$GetPageScroll(g));a=jb(a,c)}return b};i.$GetElementSize=function(a){a=i.$GetElement(a);return new h(a.clientWidth,a.clientHeight)};i.$GetEvent=function(a){return a?a:g.event};i.$GetEventSrcElement=function(a){a=i.$GetEvent(a);return a.target||a.srcElement||f};i.$GetEventDstElement=function(a){a=i.$GetEvent(a);return a.relatedTarget||a.toElement};i.$GetMousePosition=function(a){a=i.$GetEvent(a);var b=new h;if(a.type=="DOMMouseScroll"&&Z()&&j<3){b.x=a.screenX;b.y=a.screenY}else if(typeof a.pageX=="number"){b.x=a.pageX;b.y=a.pageY}else if(typeof a.clientX=="number"){b.x=a.clientX+f.body.scrollLeft+f.documentElement.scrollLeft;b.y=a.clientY+f.body.scrollTop+f.documentElement.scrollTop}return b};i.$GetMouseScroll=function(a){a=i.$GetEvent(a);var c=0;if(typeof a.wheelDelta=="number")c=a.wheelDelta;else if(typeof a.detail=="number")c=a.detail*-1;return c?c/b.abs(c):0};i.$GetPageScroll=function(b){var a=new h,c=b.document.documentElement||{},d=b.document.body||{};if(typeof b.pageXOffset=="number"){a.x=b.pageXOffset;a.y=b.pageYOffset}else if(d.scrollLeft||d.scrollTop){a.x=d.scrollLeft;a.y=d.scrollTop}else if(c.scrollLeft||c.scrollTop){a.x=c.scrollLeft;a.y=c.scrollTop}return a};i.$GetWindowSize=function(c){var a=new h,b=I()?c.document.body:c.document.documentElement;a.x=b.clientWidth;a.y=b.clientHeight;return a};function G(c,d,a){if(a!=o)c.style[d]=a;else{var b=c.currentStyle||c.style;a=b[d];if(a==""&&g.getComputedStyle){b=c.ownerDocument.defaultView.getComputedStyle(c,e);b&&(a=b.getPropertyValue(d)||b[d])}return a}}function Q(b,c,a,d){if(a!=o){d&&(a+="px");G(b,c,a)}else return parseFloat(G(b,c))}function rb(b,d,a){return Q(b,d,a,c)}function l(d,a){var b=a&2,c=a?Q:G;return function(e,a){return c(e,d,a,b)}}function kb(b){if(r()&&s<9){var a=/opacity=([^)]*)/.exec(b.style.filter||"");return a?parseFloat(a[1])/100:1}else return parseFloat(b.style.opacity||"1")}function mb(c,a,f){if(r()&&s<9){var h=c.style.filter||"",i=new RegExp(/[\s]*alpha\([^\)]*\)/g),e=b.round(100*a),d="";if(e<100||f)d="alpha(opacity="+e+") ";var g=K(h,[i],d);ab(c,g)}else c.style.opacity=a==1?"":b.round(a*100)/100}function S(g,c){var f=c.$Rotate||0,d=c.$Scale==o?1:c.$Scale;if(A()){var k=i.$CreateMatrix(f/180*b.PI,d,d);ib(g,!f&&d==1?e:k,i.$GetMatrixOffset(k,c.$OriginalWidth,c.$OriginalHeight))}else{var h=t(g);if(h){var j="rotate("+f%360+"deg) scale("+d+")";if(a.$IsBrowserChrome()&&B>535)j+=" perspective(2000px)";g.style[h]=j}}}i.$SetStyleTransform=function(b,a){if(V())eb(i.$CreateCallback(e,S,b,a));else S(b,a)};i.$SetStyleTransformOrigin=function(b,c){var a=t(b);if(a)b.style[a+"Origin"]=c};i.$SetStyleScale=function(a,c){if(r()&&s<9||s<10&&I())a.style.zoom=c==1?"":c;else{var b=t(a);if(b){var f="scale("+c+")",e=a.style[b],g=new RegExp(/[\s]*scale\(.*?\)/g),d=K(e,[g],f);a.style[b]=d}}};i.$EnableHWA=function(a){if(!a.style[t(a)]||a.style[t(a)]=="none")a.style[t(a)]="perspective(2000px)"};i.$DisableHWA=function(a){a.style[t(a)]="none"};var cb=0,bb=0,H;function gb(g){var f=c,a=I()?g.document.body:g.document.documentElement;if(a){var e=a.offsetWidth-cb,b=a.offsetHeight-bb;if(e||b){cb+=e;bb+=b}else f=d}f&&q(H,function(a){a()})}i.$OnWindowResize=function(b,a){if(r()&&s<9)if(!H){H=[a];a=i.$CreateCallback(e,gb,b)}else{H.push(a);return}i.$AddEvent(b,"resize",a)};i.$AddEvent=function(a,c,d,b){a=i.$GetElement(a);if(a.addEventListener){c=="mousewheel"&&a.addEventListener("DOMMouseScroll",d,b);a.addEventListener(c,d,b)}else if(a.attachEvent){a.attachEvent("on"+c,d);b&&a.setCapture&&a.setCapture()}};i.$RemoveEvent=function(a,c,d,b){a=i.$GetElement(a);if(a.removeEventListener){c=="mousewheel"&&a.removeEventListener("DOMMouseScroll",d,b);a.removeEventListener(c,d,b)}else if(a.detachEvent){a.detachEvent("on"+c,d);b&&a.releaseCapture&&a.releaseCapture()}};i.$FireEvent=function(c,b){var a;if(f.createEvent){a=f.createEvent("HTMLEvents");a.initEvent(b,d,d);c.dispatchEvent(a)}else{var e="on"+b;a=f.createEventObject();c.fireEvent(e,a)}};i.$AddEventBrowserMouseUp=function(b,a){i.$AddEvent(A()?f:g,"mouseup",b,a)};i.$RemoveEventBrowserMouseUp=function(b,a){i.$RemoveEvent(A()?f:g,"mouseup",b,a)};i.$AddEventBrowserMouseDown=function(b,a){i.$AddEvent(A()?f:g,"mousedown",b,a)};i.$RemoveEventBrowserMouseDown=function(b,a){i.$RemoveEvent(A()?f:g,"mousedown",b,a)};i.$CancelEvent=function(a){a=i.$GetEvent(a);a.preventDefault&&a.preventDefault();a.cancel=c;a.returnValue=d};i.$StopEvent=function(a){a=i.$GetEvent(a);a.stopPropagation&&a.stopPropagation();a.cancelBubble=c};i.$CreateCallback=function(e,d){for(var b=[],a=2;a<arguments.length;a++)b.push(arguments[a]);var c=function(){for(var c=b.concat([]),a=0;a<arguments.length;a++)c.push(arguments[a]);return d.apply(e,c)};return c};var M;i.$FreeElement=function(b){if(!M)M=i.$CreateDivElement();if(b){a.$AppendChild(M,b);a.$ClearInnerHtml(M)}};i.$SetInnerText=function(a,c){var b=f.createTextNode(c);i.$ClearInnerHtml(a);a.appendChild(b)};i.$GetInnerText=function(a){return a.textContent||a.innerText};i.$GetInnerHtml=function(a){return a.innerHTML};i.$SetInnerHtml=function(a,b){a.innerHTML=b};i.$ClearInnerHtml=function(a){a.innerHTML=""};i.$EncodeHtml=function(b){var a=i.$CreateDivElement();i.$SetInnerText(a,b);return i.$GetInnerHtml(a)};i.$DecodeHtml=function(b){var a=i.$CreateDivElement();i.$SetInnerHtml(a,b);return i.$GetInnerText(a)};i.$SelectElement=function(c){var b;if(g.getSelection)b=g.getSelection();var a=e;if(f.createRange){a=f.createRange();a.selectNode(c)}else{a=f.body.createTextRange();a.moveToElementText(c);a.select()}b&&b.addRange(a)};i.$DeselectElements=function(){if(f.selection)f.selection.empty();else g.getSelection&&g.getSelection().removeAllRanges()};i.$GetChildren=function(c){for(var b=[],a=c.firstChild;a;a=a.nextSibling)a.nodeType==1&&b.push(a);return b};function R(a,c,b,f){if(!b)b="u";for(a=a?a.firstChild:e;a;a=a.nextSibling)if(a.nodeType==1){if(i.$GetAttributeEx(a,b)==c)return a;if(f){var d=R(a,c,b,f);if(d)return d}}}i.$FindFirstChildByAttribute=R;function W(a,c,d){for(a=a?a.firstChild:e;a;a=a.nextSibling)if(a.nodeType==1){if(a.tagName==c)return a;if(d){var b=W(a,c,d);if(b)return b}}}i.$FindFirstChildByTag=W;function X(a,d,g){var b=[];for(a=a?a.firstChild:e;a;a=a.nextSibling)if(a.nodeType==1){(!d||a.tagName==d)&&b.push(a);if(g){var f=X(a,d,c);if(f.length)b=b.concat(f)}}return b}i.$FindChildrenByTag=X;i.$GetElementsByTagName=function(b,a){return b.getElementsByTagName(a)};i.$Extend=function(c){for(var b=1;b<arguments.length;b++){var a=arguments[b];if(a)for(var d in a)c[d]=a[d]}return c};i.$Unextend=function(b,d){var c={};for(var a in b)if(b[a]!=d[a])c[a]=b[a];return c};i.$IsUndefined=function(a){return C(a)=="undefined"};i.$IsFunction=function(a){return C(a)=="function"};i.$IsArray=Array.isArray||function(a){return C(a)=="array"};i.$IsString=function(a){return C(a)=="string"};i.$IsNumeric=function(a){return!isNaN(parseFloat(a))&&isFinite(a)};i.$IsWindow=function(a){return a!=e&&a==a.window};i.$Type=C;i.$Each=q;i.$IsPlainObject=pb;i.$CreateDivElement=function(a){return i.$CreateElement("DIV",a)};i.$CreateSpanElement=function(a){return i.$CreateElement("SPAN",a)};i.$CreateElement=function(b,a){a=a||f;return a.createElement(b)};i.$EmptyFunction=function(){};i.$GetAttribute=function(a,b){return a.getAttribute(b)};i.$GetAttributeEx=function(a,b){return i.$GetAttribute(a,b)||i.$GetAttribute(a,"data-"+b)};i.$SetAttribute=function(b,c,a){b.setAttribute(c,a)};i.$GetClassName=function(a){return a.className};i.$SetClassName=function(b,a){b.className=a||""};i.$GetParentNode=function(a){return a.parentNode};i.$HideElement=function(a){i.$CssDisplay(a,"none")};i.$HideElements=function(b){for(var a=0;a<b.length;a++)i.$HideElement(b[a])};i.$ShowElement=function(a,b){i.$CssDisplay(a,b==d?"none":"")};i.$ShowElements=function(b){for(var a=0;a<b.length;a++)i.$ShowElement(b[a])};i.$RemoveAttribute=function(b,a){b.removeAttribute(a)};i.$CanClearClip=function(){return r()&&j<10};i.$SetStyleClip=function(d,c){if(c)d.style.clip="rect("+b.round(c.$Top)+"px "+b.round(c.$Right)+"px "+b.round(c.$Bottom)+"px "+b.round(c.$Left)+"px)";else{var g=d.style.cssText,f=[new RegExp(/[\s]*clip: rect\(.*?\)[;]?/i),new RegExp(/[\s]*cliptop: .*?[;]?/i),new RegExp(/[\s]*clipright: .*?[;]?/i),new RegExp(/[\s]*clipbottom: .*?[;]?/i),new RegExp(/[\s]*clipleft: .*?[;]?/i)],e=K(g,f,"");a.$CssCssText(d,e)}};i.$GetNow=function(){return+new Date};i.$AppendChild=function(b,a){b.appendChild(a)};i.$AppendChildren=function(b,a){q(a,function(a){i.$AppendChild(b,a)})};i.$InsertBefore=function(c,b,a){c.insertBefore(b,a)};i.$InsertAdjacentHtml=function(b,a,c){b.insertAdjacentHTML(a,c)};i.$RemoveChild=function(b,a){b.removeChild(a)};i.$RemoveChildren=function(b,a){q(a,function(a){i.$RemoveChild(b,a)})};i.$ClearChildren=function(a){i.$RemoveChildren(a,i.$GetChildren(a))};i.$ParseInt=function(b,a){return parseInt(b,a||10)};i.$ParseFloat=function(a){return parseFloat(a)};i.$IsChild=function(b,a){var c=f.body;while(a&&b!=a&&c!=a)try{a=a.parentNode}catch(e){return d}return b==a};i.$ToLowerCase=function(a){if(a)a=a.toLowerCase();return a};i.$CloneNode=function(b,a){return b.cloneNode(a)};function N(b,a,c){a.onload=e;a.abort=e;b&&b(a,c)}i.$LoadImage=function(d,b){if(i.$IsBrowserOpera()&&j<11.6||!d)N(b,e);else{var a=new Image;a.onload=i.$CreateCallback(e,N,b,a);a.onabort=i.$CreateCallback(e,N,b,a,c);a.src=d}};i.$LoadImages=function(e,b,f){var d=e.length+1;function c(a){d--;if(b&&a&&a.src==b.src)b=a;!d&&f&&f(b)}a.$Each(e,function(b){a.$LoadImage(b.src,c)});c()};i.$BuildElement=function(d,k,j,i){if(i)d=a.$CloneNode(d,c);for(var h=a.$GetElementsByTagName(d,k),f=h.length-1;f>-1;f--){var b=h[f],e=a.$CloneNode(j,c);a.$SetClassName(e,a.$GetClassName(b));a.$CssCssText(e,b.style.cssText);var g=a.$GetParentNode(b);a.$InsertBefore(g,e,b);a.$RemoveChild(g,b)}return d};var E;function qb(b){var g=this,h,e,j;function f(){var c=h;if(e)c+="dn";else if(j)c+="av";a.$SetClassName(b,c)}function k(){E.push(g);e=c;f()}g.$MouseUp=function(){e=d;f()};g.$Activate=function(a){j=a;f()};b=i.$GetElement(b);if(!E){i.$AddEventBrowserMouseUp(function(){var a=E;E=[];q(a,function(a){a.$MouseUp()})});E=[]}h=i.$GetClassName(b);a.$AddEvent(b,"mousedown",k)}i.$Buttonize=function(a){return new qb(a)};i.$Css=G;i.$CssN=Q;i.$CssP=rb;i.$CssOverflow=l("overflow");i.$CssTop=l("top",2);i.$CssLeft=l("left",2);i.$CssWidth=l("width",2);i.$CssHeight=l("height",2);i.$CssMarginLeft=l("marginLeft",2);i.$CssMarginTop=l("marginTop",2);i.$CssPosition=l("position");i.$CssDisplay=l("display");i.$CssZIndex=l("zIndex",1);i.$CssFloat=function(b,a){return G(b,r()?"styleFloat":"cssFloat",a)};i.$CssOpacity=function(b,a,c){if(a!=o)mb(b,a,c);else return kb(b)};i.$CssCssText=function(a,b){if(b!=o)a.style.cssText=b;else return a.style.cssText};var P={$Opacity:i.$CssOpacity,$Top:i.$CssTop,$Left:i.$CssLeft,$Width:i.$CssWidth,$Height:i.$CssHeight,$Position:i.$CssPosition,$Display:i.$CssDisplay,$ZIndex:i.$CssZIndex},u;function J(){if(!u)u=i.$Extend({$MarginTop:i.$CssMarginTop,$MarginLeft:i.$CssMarginLeft,$Clip:i.$SetStyleClip,$Transform:i.$SetStyleTransform},P);return u}function Y(){J();u.$Transform=u.$Transform;return u}i.$GetStyleSetter=J;i.$GetStyleSetterEx=Y;i.$GetStyles=function(c,b){J();var a={};q(b,function(d,b){if(P[b])a[b]=P[b](c)});return a};i.$SetStyles=function(c,b){var a=J();q(b,function(d,b){a[b]&&a[b](c,d)})};i.$SetStylesEx=function(b,a){Y();i.$SetStyles(b,a)};p=new function(){var a=this;function b(d,g){for(var j=d[0].length,i=d.length,h=g[0].length,f=[],c=0;c<i;c++)for(var k=f[c]=[],b=0;b<h;b++){for(var e=0,a=0;a<j;a++)e+=d[c][a]*g[a][b];k[b]=e}return f}a.$ScaleX=function(b,c){return a.$ScaleXY(b,c,0)};a.$ScaleY=function(b,c){return a.$ScaleXY(b,0,c)};a.$ScaleXY=function(a,c,d){return b(a,[[c,0],[0,d]])};a.$TransformPoint=function(d,c){var a=b(d,[[c.x],[c.y]]);return new h(a[0][0],a[1][0])}};i.$CreateMatrix=function(d,a,c){var e=b.cos(d),f=b.sin(d);return[[e*a,-f*c],[f*a,e*c]]};i.$GetMatrixOffset=function(d,c,a){var e=p.$TransformPoint(d,new h(-c/2,-a/2)),f=p.$TransformPoint(d,new h(c/2,-a/2)),g=p.$TransformPoint(d,new h(c/2,a/2)),i=p.$TransformPoint(d,new h(-c/2,a/2));return new h(b.min(e.x,f.x,g.x,i.x)+c/2,b.min(e.y,f.y,g.y,i.y)+a/2)}};j=function(n,m,g,O,z,x){n=n||0;var f=this,r,K,o,p,y,A=0,C,M,L,D,j=0,t=0,E,k=n,s=n+m,i,h,q,u=[],B;function I(b){i+=b;h+=b;k+=b;s+=b;j+=b;t+=b;a.$Each(u,function(a){a,a.$Shift(b)})}function N(a,b){var c=a-i+n*b;I(c);return h}function w(w,G){var n=w;if(q&&(n>=h||n<=i))n=((n-i)%q+q)%q+i;if(!E||y||G||j!=n){var p=b.min(n,h);p=b.max(p,i);if(!E||y||G||p!=t){if(x){var d=x;if(z){var s=(p-k)/(m||1);if(g.$Optimize&&a.$IsBrowserChrome()&&m)s=b.round(s*m/16)/m*16;if(g.$Reverse)s=1-s;d={};for(var o in x){var R=M[o]||1,J=L[o]||[0,1],l=(s-J[0])/J[1];l=b.min(b.max(l,0),1);l=l*R;var H=b.floor(l);if(l!=H)l-=H;var Q=C[o]||C.$Default,I=Q(l),r,K=z[o],F=x[o];if(a.$IsNumeric(F))r=K+(F-K)*I;else{r=a.$Extend({$Offset:{}},z[o]);a.$Each(F.$Offset,function(c,b){var a=c*I;r.$Offset[b]=a;r[b]+=a})}d[o]=r}}if(z.$Zoom)d.$Transform={$Rotate:d.$Rotate||0,$Scale:d.$Zoom,$OriginalWidth:g.$OriginalWidth,$OriginalHeight:g.$OriginalHeight};if(x.$Clip&&g.$Move){var v=d.$Clip.$Offset,D=(v.$Top||0)+(v.$Bottom||0),A=(v.$Left||0)+(v.$Right||0);d.$Left=(d.$Left||0)+A;d.$Top=(d.$Top||0)+D;d.$Clip.$Left-=A;d.$Clip.$Right-=A;d.$Clip.$Top-=D;d.$Clip.$Bottom-=D}if(d.$Clip&&a.$CanClearClip()&&!d.$Clip.$Top&&!d.$Clip.$Left&&d.$Clip.$Right==g.$OriginalWidth&&d.$Clip.$Bottom==g.$OriginalHeight)d.$Clip=e;a.$Each(d,function(b,a){B[a]&&B[a](O,b)})}f.$OnInnerOffsetChange(t-k,p-k)}t=p;a.$Each(u,function(b,c){var a=w<j?u[u.length-c-1]:b;a.$GoToPosition(w,G)});var P=j,N=w;j=n;E=c;f.$OnPositionChange(P,N)}}function F(a,c){c&&a.$Locate(h,1);h=b.max(h,a.$GetPosition_OuterEnd());u.push(a)}function H(){if(r){var d=a.$GetNow(),e=b.min(d-A,a.$IsBrowserOpera()?80:20),c=j+e*p;A=d;if(c*p>=o*p)c=o;w(c);if(!y&&c*p>=o*p)J(D);else a.$Delay(H,g.$Interval)}}function v(d,e,g){if(!r){r=c;y=g;D=e;d=b.max(d,i);d=b.min(d,h);o=d;p=o<j?-1:1;f.$OnStart();A=a.$GetNow();H()}}function J(a){if(r){y=r=D=d;f.$OnStop();a&&a()}}f.$Play=function(a,b,c){v(a?j+a:h,b,c)};f.$PlayToPosition=function(b,a,c){v(b,a,c)};f.$PlayToBegin=function(a,b){v(i,a,b)};f.$PlayToEnd=function(a,b){v(h,a,b)};f.$Stop=function(){J()};f.$Continue=function(a){v(a)};f.$GetPosition=function(){return j};f.$GetPlayToPosition=function(){return o};f.$GetPosition_Display=function(){return t};f.$GoToPosition=w;f.$GoToBegin=function(){w(i,c)};f.$GoToEnd=function(){w(h,c)};f.$Move=function(a){w(j+a)};f.$CombineMode=function(){return K};f.$GetDuration=function(){return m};f.$IsPlaying=function(){return r};f.$IsOnTheWay=function(){return j>k&&j<=s};f.$SetLoopLength=function(a){q=a};f.$Locate=N;f.$Shift=I;f.$Join=F;f.$Combine=function(a){F(a,0)};f.$Chain=function(a){F(a,1)};f.$GetPosition_InnerBegin=function(){return k};f.$GetPosition_InnerEnd=function(){return s};f.$GetPosition_OuterBegin=function(){return i};f.$GetPosition_OuterEnd=function(){return h};f.$OnPositionChange=a.$EmptyFunction;f.$OnStart=a.$EmptyFunction;f.$OnStop=a.$EmptyFunction;f.$OnInnerOffsetChange=a.$EmptyFunction;f.$Version=a.$GetNow();g=a.$Extend({$Interval:16},g);q=g.$LoopLength;B=a.$Extend({},a.$GetStyleSetter(),g.$Setter);i=k=n;h=s=n+m;var M=g.$Round||{},L=g.$During||{};C=a.$Extend({$Default:a.$IsFunction(g.$Easing)&&g.$Easing||l.$EaseSwing},g.$Easing)};var s,k=g.$JssorSlideshowFormations$={};new function(){var p=0,o=1,w=2,v=3,I=1,H=2,J=4,G=8,O=256,P=512,N=1024,M=2048,z=M+I,y=M+H,E=P+I,C=P+H,D=O+J,A=O+G,B=N+J,F=N+G;function S(a){return(a&H)==H}function T(a){return(a&J)==J}function x(b,a,c){c.push(a);b[a]=b[a]||[];b[a].push(c)}k.$FormationStraight=function(f){for(var d=f.$Cols,e=f.$Rows,k=f.$Assembly,l=f.$Count,j=[],a=0,b=0,h=d-1,i=e-1,g=l-1,c,b=0;b<e;b++)for(a=0;a<d;a++){switch(k){case z:c=g-(a*e+(i-b));break;case B:c=g-(b*d+(h-a));break;case E:c=g-(a*e+b);case D:c=g-(b*d+a);break;case y:c=a*e+b;break;case A:c=b*d+(h-a);break;case C:c=a*e+(i-b);break;default:c=b*d+a}x(j,c,[b,a])}return j};k.$FormationSwirl=function(e){var l=e.$Cols,m=e.$Rows,r=e.$Assembly,k=e.$Count,q=[],n=[],i=0,a=0,b=0,f=l-1,g=m-1,h,d,j=0;switch(r){case z:a=f;b=0;d=[w,o,v,p];break;case B:a=0;b=g;d=[p,v,o,w];break;case E:a=f;b=g;d=[v,o,w,p];break;case D:a=f;b=g;d=[o,v,p,w];break;case y:a=0;b=0;d=[w,p,v,o];break;case A:a=f;b=0;d=[o,w,p,v];break;case C:a=0;b=g;d=[v,p,w,o];break;default:a=0;b=0;d=[p,w,o,v]}i=0;while(i<k){h=b+","+a;if(a>=0&&a<l&&b>=0&&b<m&&!n[h]){n[h]=c;x(q,i++,[b,a])}else switch(d[j++%d.length]){case p:a--;break;case w:b--;break;case o:a++;break;case v:b++}switch(d[j%d.length]){case p:a++;break;case w:b++;break;case o:a--;break;case v:b--}}return q};k.$FormationZigZag=function(d){var k=d.$Cols,l=d.$Rows,n=d.$Assembly,j=d.$Count,h=[],i=0,a=0,b=0,e=k-1,f=l-1,m,c,g=0;switch(n){case z:a=e;b=0;c=[w,o,v,o];break;case B:a=0;b=f;c=[p,v,o,v];break;case E:a=e;b=f;c=[v,o,w,o];break;case D:a=e;b=f;c=[o,v,p,v];break;case y:a=0;b=0;c=[w,p,v,p];break;case A:a=e;b=0;c=[o,w,p,w];break;case C:a=0;b=f;c=[v,p,w,p];break;default:a=0;b=0;c=[p,w,o,w]}i=0;while(i<j){m=b+","+a;if(a>=0&&a<k&&b>=0&&b<l&&typeof h[m]=="undefined"){x(h,i++,[b,a]);switch(c[g%c.length]){case p:a++;break;case w:b++;break;case o:a--;break;case v:b--}}else{switch(c[g++%c.length]){case p:a--;break;case w:b--;break;case o:a++;break;case v:b++}switch(c[g++%c.length]){case p:a++;break;case w:b++;break;case o:a--;break;case v:b--}}}return h};k.$FormationStraightStairs=function(h){var l=h.$Cols,m=h.$Rows,e=h.$Assembly,k=h.$Count,i=[],j=0,c=0,d=0,f=l-1,g=m-1,o=k-1;switch(e){case z:case C:case E:case y:var a=0,b=0;break;case A:case B:case D:case F:var a=f,b=0;break;default:e=F;var a=f,b=0}c=a;d=b;while(j<k){if(T(e)||S(e))x(i,o-j++,[d,c]);else x(i,j++,[d,c]);switch(e){case z:case C:c--;d++;break;case E:case y:c++;d--;break;case A:case B:c--;d--;break;case F:case D:default:c++;d++}if(c<0||d<0||c>f||d>g){switch(e){case z:case C:a++;break;case A:case B:case E:case y:b++;break;case F:case D:default:a--}if(a<0||b<0||a>f||b>g){switch(e){case z:case C:a=f;b++;break;case E:case y:b=g;a++;break;case A:case B:b=g;a--;break;case F:case D:default:a=0;b++}if(b>g)b=g;else if(b<0)b=0;else if(a>f)a=f;else if(a<0)a=0}d=b;c=a}}return i};k.$FormationSquare=function(h){var a=h.$Cols||1,c=h.$Rows||1,i=[],d,e,f,g,j;f=a<c?(c-a)/2:0;g=a>c?(a-c)/2:0;j=b.round(b.max(a/2,c/2))+1;for(d=0;d<a;d++)for(e=0;e<c;e++)x(i,j-b.min(d+1+f,e+1+g,a-d+f,c-e+g),[e,d]);return i};k.$FormationRectangle=function(f){var d=f.$Cols||1,e=f.$Rows||1,g=[],a,c,h;h=b.round(b.min(d/2,e/2))+1;for(a=0;a<d;a++)for(c=0;c<e;c++)x(g,h-b.min(a+1,c+1,d-a,e-c),[c,a]);return g};k.$FormationRandom=function(d){for(var e=[],a,c=0;c<d.$Rows;c++)for(a=0;a<d.$Cols;a++)x(e,b.ceil(1e5*b.random())%13,[c,a]);return e};k.$FormationCircle=function(d){for(var e=d.$Cols||1,f=d.$Rows||1,g=[],a,h=e/2-.5,i=f/2-.5,c=0;c<e;c++)for(a=0;a<f;a++)x(g,b.round(b.sqrt(b.pow(c-h,2)+b.pow(a-i,2))),[a,c]);return g};k.$FormationCross=function(d){for(var e=d.$Cols||1,f=d.$Rows||1,g=[],a,h=e/2-.5,i=f/2-.5,c=0;c<e;c++)for(a=0;a<f;a++)x(g,b.round(b.min(b.abs(c-h),b.abs(a-i))),[a,c]);return g};k.$FormationRectangleCross=function(f){for(var g=f.$Cols||1,h=f.$Rows||1,i=[],a,d=g/2-.5,e=h/2-.5,j=b.max(d,e)+1,c=0;c<g;c++)for(a=0;a<h;a++)x(i,b.round(j-b.max(d-b.abs(c-d),e-b.abs(a-e)))-1,[a,c]);return i};function Q(a){var b=a.$Formation(a);return a.$Reverse?b.reverse():b}function K(g,f){var e={$Interval:f,$Duration:1,$Delay:0,$Cols:1,$Rows:1,$Opacity:0,$Zoom:0,$Clip:0,$Move:d,$SlideOut:d,$FlyDirection:0,$Reverse:d,$Formation:k.$FormationRandom,$Assembly:F,$ChessMode:{$Column:0,$Row:0},$Easing:l.$EaseSwing,$Round:{},$Blocks:[],$During:{}};a.$Extend(e,g);e.$Count=e.$Cols*e.$Rows;if(a.$IsFunction(e.$Easing))e.$Easing={$Default:e.$Easing};e.$FramesCount=b.ceil(e.$Duration/e.$Interval);e.$EasingInstance=R(e);e.$GetBlocks=function(b,a){b/=e.$Cols;a/=e.$Rows;var f=b+"x"+a;if(!e.$Blocks[f]){e.$Blocks[f]={$Width:b,$Height:a};for(var c=0;c<e.$Cols;c++)for(var d=0;d<e.$Rows;d++)e.$Blocks[f][d+","+c]={$Top:d*a,$Right:c*b+b,$Bottom:d*a+a,$Left:c*b}}return e.$Blocks[f]};if(e.$Brother){e.$Brother=K(e.$Brother,f);e.$SlideOut=c}return e}function R(d){var c=d.$Easing;if(!c.$Default)c.$Default=l.$EaseSwing;var e=d.$FramesCount,f=c.$Cache;if(!f){var g=a.$Extend({},d.$Easing,d.$Round);f=c.$Cache={};a.$Each(g,function(n,l){var g=c[l]||c.$Default,j=d.$Round[l]||1;if(!a.$IsArray(g.$Cache))g.$Cache=[];var h=g.$Cache[e]=g.$Cache[e]||[];if(!h[j]){h[j]=[0];for(var k=1;k<=e;k++){var i=k/e*j,m=b.floor(i);if(i!=m)i-=m;h[j][k]=g(i)}}f[l]=h})}return f}function L(D,k,f,y,m,l){var B=this,v,w={},p={},o=[],h,g,t,r=f.$ChessMode.$Column||0,s=f.$ChessMode.$Row||0,j=f.$GetBlocks(m,l),q=Q(f),E=q.length-1,u=f.$Duration+f.$Delay*E,z=y+u,n=f.$SlideOut,A;z+=a.$IsBrowserChrome()?260:50;B.$EndTime=z;B.$ShowFrame=function(c){c-=y;var d=c<u;if(d||A){A=d;if(!n)c=u-c;var e=b.ceil(c/f.$Interval);a.$Each(p,function(c,f){var d=b.max(e,c.$Min);d=b.min(d,c.length-1);if(c.$LastFrameIndex!=d){if(!c.$LastFrameIndex&&!n)a.$ShowElement(o[f]);else d==c.$Max&&n&&a.$HideElement(o[f]);c.$LastFrameIndex=d;a.$SetStylesEx(o[f],c[d])}})}};function x(b){a.$DisableHWA(b);var c=a.$GetChildren(b);a.$Each(c,function(a){x(a)})}k=a.$CloneNode(k,c);x(k);if(a.$IsBrowserIe9Earlier()){var F=!k["no-image"],C=a.$FindChildrenByTag(k,e,c);a.$Each(C,function(b){(F||b["jssor-slider"])&&a.$CssOpacity(b,a.$CssOpacity(b),c)})}a.$Each(q,function(e,k){a.$Each(e,function(N){var S=N[0],R=N[1],z=S+","+R,u=d,x=d,A=d;if(r&&R%2){if(i.$IsHorizontal(r))u=!u;if(i.$IsVertical(r))x=!x;if(r&16)A=!A}if(s&&S%2){if(i.$IsHorizontal(s))u=!u;if(i.$IsVertical(s))x=!x;if(s&16)A=!A}f.$Top=f.$Top||f.$Clip&4;f.$Bottom=f.$Bottom||f.$Clip&8;f.$Left=f.$Left||f.$Clip&1;f.$Right=f.$Right||f.$Clip&2;var G=x?f.$Bottom:f.$Top,D=x?f.$Top:f.$Bottom,F=u?f.$Right:f.$Left,E=u?f.$Left:f.$Right;f.$Clip=G||D||F||E;t={};g={$Top:0,$Left:0,$Opacity:1,$Width:m,$Height:l};h=a.$Extend({},g);v=a.$Extend({},j[z]);if(f.$Opacity)g.$Opacity=2-f.$Opacity;if(f.$ZIndex){g.$ZIndex=f.$ZIndex;h.$ZIndex=0}var Q=f.$Cols*f.$Rows>1||f.$Clip;if(f.$Zoom||f.$Rotate){var P=c;if(a.$IsBrowserIE()&&a.$GetBrowserEngineVersion()<9)if(f.$Cols*f.$Rows>1)P=d;else Q=d;if(P){g.$Zoom=f.$Zoom?f.$Zoom-1:1;h.$Zoom=1;if(a.$IsBrowserIe9Earlier()||a.$IsBrowserOpera())g.$Zoom=b.min(g.$Zoom,2);var K=f.$Rotate;if(K==c)K=1;g.$Rotate=K*360*(A?-1:1);h.$Rotate=0}}if(Q){if(f.$Clip){var y=f.$ScaleClip||1,o=v.$Offset={};if(G&&D){o.$Top=j.$Height/2*y;o.$Bottom=-o.$Top}else if(G)o.$Bottom=-j.$Height*y;else if(D)o.$Top=j.$Height*y;if(F&&E){o.$Left=j.$Width/2*y;o.$Right=-o.$Left}else if(F)o.$Right=-j.$Width*y;else if(E)o.$Left=j.$Width*y}t.$Clip=v;h.$Clip=j[z]}if(f.$FlyDirection){var q=f.$FlyDirection;if(!u)q=i.$ChessHorizontal(q);if(!x)q=i.$ChessVertical(q);var M=f.$ScaleHorizontal||1,O=f.$ScaleVertical||1;if(i.$IsToLeft(q))g.$Left+=m*M;else if(i.$IsToRight(q))g.$Left-=m*M;if(i.$IsToTop(q))g.$Top+=l*O;else if(i.$IsToBottom(q))g.$Top-=l*O}a.$Each(g,function(b,c){if(a.$IsNumeric(b))if(b!=h[c])t[c]=b-h[c]});w[z]=n?h:g;var L=b.round(k*f.$Delay/f.$Interval);p[z]=new Array(L);p[z].$Min=L;for(var C=f.$FramesCount,J=0;J<=C;J++){var e={};a.$Each(t,function(g,c){var m=f.$EasingInstance[c]||f.$EasingInstance.$Default,l=m[f.$Round[c]||1],k=f.$During[c]||[0,1],d=(J/C-k[0])/k[1]*C;d=b.round(b.min(C,b.max(d,0)));var j=l[d];if(a.$IsNumeric(g))e[c]=h[c]+g*j;else{var i=e[c]=a.$Extend({},h[c]);i.$Offset=[];a.$Each(g.$Offset,function(c,b){var a=c*j;i.$Offset[b]=a;i[b]+=a})}});if(h.$Zoom)e.$Transform={$Rotate:e.$Rotate||0,$Scale:e.$Zoom,$OriginalWidth:m,$OriginalHeight:l};if(e.$Clip&&f.$Move){var B=e.$Clip.$Offset,I=(B.$Top||0)+(B.$Bottom||0),H=(B.$Left||0)+(B.$Right||0);e.$Left=(e.$Left||0)+H;e.$Top=(e.$Top||0)+I;e.$Clip.$Left-=H;e.$Clip.$Right-=H;e.$Clip.$Top-=I;e.$Clip.$Bottom-=I}e.$ZIndex=e.$ZIndex||1;p[z].push(e)}})});q.reverse();a.$Each(q,function(b){a.$Each(b,function(d){var g=d[0],f=d[1],e=g+","+f,b=k;if(f||g)b=a.$CloneNode(k,c);a.$SetStyles(b,w[e]);a.$CssOverflow(b,"hidden");a.$CssPosition(b,"absolute");D.$AddClipElement(b);o[e]=b;a.$ShowElement(b,n)})})}g.$JssorSlideshowRunner$=function(h,l,i,n,p){var d=this,o,f,c,s=0,r=n.$TransitionsOrder,k,g=16;function q(){var a=this,b=0;j.call(a,0,o);a.$OnPositionChange=function(d,a){if(a-b>g){b=a;c&&c.$ShowFrame(a);f&&f.$ShowFrame(a)}};a.$Transition=k}d.$GetTransition=function(f){var c=0,e=n.$Transitions,d=e.length;if(r){if(d>f&&(a.$IsBrowserChrome()||a.$IsBrowserSafari()||a.$IsBrowserFireFox()))d-=d%f;c=s++%d}else c=b.floor(b.random()*d);e[c]&&(e[c].$Index=c);return e[c]};d.$Initialize=function(w,x,n,p,a){k=a;a=K(a,g);var m=p.$Item,j=n.$Item;m["no-image"]=!p.$Image;j["no-image"]=!n.$Image;var q=m,r=j,v=a,e=a.$Brother||K({},g);if(!a.$SlideOut){q=j;r=m}var s=e.$Shift||0;f=new L(h,r,e,b.max(s-e.$Interval,0),l,i);c=new L(h,q,v,b.max(e.$Interval-s,0),l,i);f.$ShowFrame(0);c.$ShowFrame(0);o=b.max(f.$EndTime,c.$EndTime);d.$Index=w};d.$Clear=function(){h.$Clear();f=e;c=e};d.$GetProcessor=function(){var a=e;if(c)a=new q;return a};if(a.$IsBrowserIe9Earlier()||a.$IsBrowserOpera()||p&&a.$GetWebKitVersion<537)g=32;m.call(d);j.call(d,-1e7,1e7)};function n(o,ec){var i=this;function zc(){var a=this;j.call(a,-1e8,2e8);a.$GetCurrentSlideInfo=function(){var c=a.$GetPosition_Display(),d=b.floor(c),f=u(d),e=c-b.floor(c);return{$Index:f,$VirtualIndex:d,$Position:e}};a.$OnPositionChange=function(d,a){var e=b.floor(a);if(e!=a&&a>d)e++;Rb(e,c);i.$TriggerEvent(n.$EVT_POSITION_CHANGE,u(a),u(d),a,d)}}function yc(){var b=this;j.call(b,0,0,{$LoopLength:s});a.$Each(C,function(a){K&1&&a.$SetLoopLength(s);b.$Chain(a);a.$Shift(hb/Zb)})}function xc(){var a=this,b=Qb.$Elmt;j.call(a,-1,2,{$Easing:l.$EaseLinear,$Setter:{$Position:Xb},$LoopLength:s},b,{$Position:1},{$Position:-1});a.$Wrapper=b}function mc(o,m){var a=this,f,g,h,l,b;j.call(a,-1e8,2e8);a.$OnStart=function(){R=c;V=e;i.$TriggerEvent(n.$EVT_SWIPE_START,u(y.$GetPosition()),y.$GetPosition())};a.$OnStop=function(){R=d;l=d;var a=y.$GetCurrentSlideInfo();i.$TriggerEvent(n.$EVT_SWIPE_END,u(y.$GetPosition()),y.$GetPosition());!a.$Position&&Bc(a.$VirtualIndex,p)};a.$OnPositionChange=function(d,c){var a;if(l)a=b;else{a=g;if(h)a=k.$SlideEasing(c/h)*(g-f)+f}y.$GoToPosition(a)};a.$PlayCarousel=function(b,d,c,e){f=b;g=d;h=c;y.$GoToPosition(b);a.$GoToPosition(0);a.$PlayToPosition(c,e)};a.$StandBy=function(d){l=c;b=d;a.$Play(d,e,c)};a.$SetStandByPosition=function(a){b=a};a.$MoveCarouselTo=function(a){y.$GoToPosition(a)};y=new zc;y.$Combine(o);y.$Combine(m)}function nc(){var c=this,b=Wb();a.$CssZIndex(b,0);c.$Elmt=b;c.$AddClipElement=function(c){a.$AppendChild(b,c);a.$ShowElement(b)};c.$Clear=function(){a.$HideElement(b);a.$ClearInnerHtml(b)}}function wc(q,o){var f=this,t,x,K,y,g,z=[],R,r,X,I,P,F,l,v,h,hb;j.call(f,-w,w+1,{$SlideItemAnimator:c});function E(a){x&&x.$Revert();t&&t.$Revert();W(q,a);F=c;t=new N.$Class(q,N,1);x=new N.$Class(q,N);x.$GoToBegin();t.$GoToBegin()}function Z(){t.$Version<N.$Version&&E()}function L(o,q,m){if(!I){I=c;if(g&&m){var e=m.width,b=m.height,l=e,j=b;if(e&&b&&k.$FillMode){if(k.$FillMode&3&&(!(k.$FillMode&4)||e>J||b>H)){var h=d,p=J/H*b/e;if(k.$FillMode&1)h=p>1;else if(k.$FillMode&2)h=p<1;l=h?e*H/b:J;j=h?H:b*J/e}a.$CssWidth(g,l);a.$CssHeight(g,j);a.$CssTop(g,(H-j)/2);a.$CssLeft(g,(J-l)/2)}a.$CssPosition(g,"absolute");i.$TriggerEvent(n.$EVT_LOAD_END,cc)}}a.$HideElement(q);o&&o(f)}function Y(b,c,d,e){if(e==V&&p==o&&S)if(!Ac){var a=u(b);A.$Initialize(a,o,c,f,d);c.$HideContentForSlideshow();ab.$Locate(a,1);ab.$GoToPosition(a);B.$PlayCarousel(b,b,0)}}function cb(b){if(b==V&&p==o){if(!l){var a=e;if(A)if(A.$Index==o)a=A.$GetProcessor();else A.$Clear();Z();l=new uc(o,a,f.$GetCaptionSliderIn(),f.$GetCaptionSliderOut());l.$SetPlayer(h)}!l.$IsPlaying()&&l.$Replay()}}function Q(d,c){if(d==o){if(d!=c)C[c]&&C[c].$ParkOut();h&&h.$Enable();var j=V=a.$GetNow();f.$LoadImage(a.$CreateCallback(e,cb,j))}else{var i=b.abs(o-d),g=w+k.$LazyLoading;(!P||i<=g||s-i<=g)&&f.$LoadImage()}}function fb(){if(p==o&&l){l.$Stop();h&&h.$Quit();h&&h.$Disable();l.$OpenSlideshowPanel()}}function gb(){p==o&&l&&l.$Stop()}function O(b){if(U)a.$CancelEvent(b);else i.$TriggerEvent(n.$EVT_CLICK,o,b)}function M(){h=v.pInstance;l&&l.$SetPlayer(h)}f.$LoadImage=function(d,b){b=b||y;if(z.length&&!I){a.$ShowElement(b);if(!X){X=c;i.$TriggerEvent(n.$EVT_LOAD_START);a.$Each(z,function(b){if(!b.src){b.src=a.$GetAttributeEx(b,"src2");a.$CssDisplay(b,b["display-origin"])}})}a.$LoadImages(z,g,a.$CreateCallback(e,L,d,b))}else L(d,b)};f.$GoForNextSlide=function(){if(A){var b=A.$GetTransition(s);if(b){var f=V=a.$GetNow(),c=o+1*Vb,d=C[u(c)];return d.$LoadImage(a.$CreateCallback(e,Y,c,d,b,f),y)}}bb(p+k.$AutoPlaySteps*Vb)};f.$TryActivate=function(){Q(o,o)};f.$ParkOut=function(){h&&h.$Quit();h&&h.$Disable();f.$UnhideContentForSlideshow();l&&l.$Abort();l=e;E()};f.$StampSlideItemElements=function(a){a=hb+"_"+a};f.$HideContentForSlideshow=function(){a.$HideElement(q)};f.$UnhideContentForSlideshow=function(){a.$ShowElement(q)};f.$EnablePlayer=function(){h&&h.$Enable()};function W(b,f,e){if(b["jssor-slider"])return;e=e||0;if(!F){if(b.tagName=="IMG"){z.push(b);if(!b.src){P=c;b["display-origin"]=a.$CssDisplay(b);a.$HideElement(b)}}a.$IsBrowserIe9Earlier()&&a.$CssZIndex(b,(a.$CssZIndex(b)||0)+1);if(k.$HWA&&a.$GetWebKitVersion()>0)(!G||a.$GetWebKitVersion()<534||!eb)&&a.$EnableHWA(b)}var h=a.$GetChildren(b);a.$Each(h,function(h){var j=a.$GetAttributeEx(h,"u");if(j=="player"&&!v){v=h;if(v.pInstance)M();else a.$AddEvent(v,"dataavailable",M)}if(j=="caption"){if(!a.$IsBrowserIE()&&!f){var i=a.$CloneNode(h,c);a.$InsertBefore(b,i,h);a.$RemoveChild(b,h);h=i;f=c}}else if(!F&&!e&&!g&&a.$GetAttributeEx(h,"u")=="image"){g=h;if(g){if(g.tagName=="A"){R=g;a.$SetStyles(R,T);r=a.$CloneNode(g,d);a.$AddEvent(r,"click",O);a.$SetStyles(r,T);a.$CssDisplay(r,"block");a.$CssOpacity(r,0);a.$Css(r,"backgroundColor","#000");g=a.$FindFirstChildByTag(g,"IMG")}g.border=0;a.$SetStyles(g,T)}}W(h,f,e+1)})}f.$OnInnerOffsetChange=function(c,b){var a=w-b;Xb(K,a)};f.$GetCaptionSliderIn=function(){return t};f.$GetCaptionSliderOut=function(){return x};f.$Index=o;m.call(f);var D=a.$FindFirstChildByAttribute(q,"thumb");if(D){f.$Thumb=a.$CloneNode(D,c);a.$RemoveAttribute(D,"id");a.$HideElement(D)}a.$ShowElement(q);y=a.$CloneNode(db,c);a.$CssZIndex(y,1e3);a.$AddEvent(q,"click",O);E(c);f.$Image=g;f.$Link=r;f.$Item=q;f.$Wrapper=K=q;a.$AppendChild(K,y);i.$On(203,Q);i.$On(22,gb);i.$On(24,fb)}function uc(g,r,v,u){var b=this,m=0,x=0,o,h,e,f,l,s,w,t,q=C[g];j.call(b,0,0);function y(){a.$ClearChildren(O);dc&&l&&q.$Link&&a.$AppendChild(O,q.$Link);a.$ShowElement(O,l||!q.$Image)}function z(){if(s){s=d;i.$TriggerEvent(n.$EVT_ROLLBACK_END,g,e,m,h,e,f);b.$GoToPosition(h)}b.$Replay()}function B(a){t=a;b.$Stop();b.$Replay()}b.$Replay=function(){var a=b.$GetPosition_Display();if(!I&&!R&&!t&&p==g){if(!a){if(o&&!l){l=c;b.$OpenSlideshowPanel(c);i.$TriggerEvent(n.$EVT_SLIDESHOW_START,g,m,x,o,f)}y()}var d,k=n.$EVT_STATE_CHANGE;if(a!=f)if(a==e)d=f;else if(a==h)d=e;else if(!a)d=h;else if(a>e){s=c;d=e;k=n.$EVT_ROLLBACK_START}else d=b.$GetPlayToPosition();i.$TriggerEvent(k,g,a,m,h,e,f);var j=S&&(!Tb||Z);if(a==f)j&&q.$GoForNextSlide();else(j||a!=e)&&b.$PlayToPosition(d,z)}};b.$Abort=function(){A&&A.$Index==g&&A.$Clear();var a=b.$GetPosition_Display();a<f&&i.$TriggerEvent(n.$EVT_STATE_CHANGE,g,-a-1,m,h,e,f)};b.$OpenSlideshowPanel=function(b){r&&a.$CssOverflow(jb,b&&r.$Transition.$Outside?"":"hidden")};b.$OnInnerOffsetChange=function(b,a){if(l&&a>=o){l=d;y();q.$UnhideContentForSlideshow();A.$Clear();i.$TriggerEvent(n.$EVT_SLIDESHOW_END,g,m,x,o,f)}i.$TriggerEvent(n.$EVT_PROGRESS_CHANGE,g,a,m,h,e,f)};b.$SetPlayer=function(a){if(a&&!w){w=a;a.$On($JssorPlayer$.$EVT_SWITCH,B)}};r&&b.$Chain(r);o=b.$GetPosition_OuterEnd();b.$GetPosition_OuterEnd();b.$Chain(v);h=v.$GetPosition_OuterEnd();e=h+k.$AutoPlayInterval;u.$Shift(e);b.$Combine(u);f=b.$GetPosition_OuterEnd()}function Xb(c,g){var f=x>0?x:ib,d=Ab*g*(f&1),e=Bb*g*(f>>1&1);if(!a.$IsBrowserChrome()){d=b.round(d);e=b.round(e)}if(a.$IsBrowserIE()&&a.$GetBrowserVersion()>=10&&a.$GetBrowserVersion()<11)c.style.msTransform="translate("+d+"px, "+e+"px)";else if(a.$IsBrowserChrome()&&a.$GetBrowserVersion()>=30&&a.$GetBrowserVersion()<34){c.style.WebkitTransition="transform 0s";c.style.WebkitTransform="translate3d("+d+"px, "+e+"px, 0px) perspective(2000px)"}else{a.$CssLeft(c,d);a.$CssTop(c,e)}}function sc(c){U=0;var b=a.$GetEventSrcElement(c).tagName;!L&&b!="INPUT"&&b!="TEXTAREA"&&qc()&&rc(c)}function rc(b){qb=R;I=c;zb=d;V=e;a.$AddEvent(f,ob,ac);a.$GetNow();Ib=B.$GetPlayToPosition();B.$Stop();if(!qb)x=0;if(G){var h=b.touches[0];ub=h.clientX;vb=h.clientY}else{var g=a.$GetMousePosition(b);ub=g.x;vb=g.y;a.$CancelEvent(b)}E=0;cb=0;gb=0;D=y.$GetPosition();i.$TriggerEvent(n.$EVT_DRAG_START,u(D),D,b)}function ac(e){if(I&&(!a.$IsBrowserIe9Earlier()||e.button)){var f;if(G){var m=e.touches;if(m&&m.length>0)f=new h(m[0].clientX,m[0].clientY)}else f=a.$GetMousePosition(e);if(f){var k=f.x-ub,l=f.y-vb;if(b.floor(D)!=D)x=x||ib&L;if((k||l)&&!x){if(L==3)if(b.abs(l)>b.abs(k))x=2;else x=1;else x=L;if(G&&x==1&&b.abs(l)-b.abs(k)>3)zb=c}if(x){var d=l,j=Bb;if(x==1){d=k;j=Ab}if(!(K&1)){if(d>0){var g=j*p,i=d-g;if(i>0)d=g+b.sqrt(i)*5}if(d<0){var g=j*(s-w-p),i=-d-g;if(i>0)d=-g-b.sqrt(i)*5}}if(E-cb<-2)gb=1;else if(E-cb>2)gb=0;cb=E;E=d;sb=D-E/j/(nb||1);if(E&&x&&!zb){a.$CancelEvent(e);if(!R)B.$StandBy(sb);else B.$SetStandByPosition(sb)}else a.$IsBrowserIe9Earlier()&&a.$CancelEvent(e)}}}else Eb(e)}function Eb(h){oc();if(I){I=d;a.$GetNow();a.$RemoveEvent(f,ob,ac);U=E;U&&a.$CancelEvent(h);B.$Stop();var e=y.$GetPosition();i.$TriggerEvent(n.$EVT_DRAG_END,u(e),e,u(D),D,h);var c=b.floor(D);if(b.abs(E)>=k.$MinDragOffsetToSlide){c=b.floor(e);c+=gb}if(!(K&1))c=b.min(s-w,b.max(c,0));var g=b.abs(c-e);g=1-b.pow(1-g,5);if(!U&&qb)B.$Continue(Ib);else if(e==c){tb.$EnablePlayer();tb.$TryActivate()}else B.$PlayCarousel(e,c,g*Sb)}}function lc(a){C[p];p=u(a);tb=C[p];Rb(a);return p}function Bc(a,b){x=0;lc(a);i.$TriggerEvent(n.$EVT_PARK,u(a),b)}function Rb(b,c){xb=b;a.$Each(Q,function(a){a.$SetCurrentIndex(u(b),b,c)})}function qc(){var b=n.$DragRegistry||0,a=P;if(G)a&1&&(a&=1);n.$DragRegistry|=a;return L=a&~b}function oc(){if(L){n.$DragRegistry&=~P;L=0}}function Wb(){var b=a.$CreateDivElement();a.$SetStyles(b,T);a.$CssPosition(b,"absolute");return b}function u(a){return(a%s+s)%s}function ic(a,c){if(c)if(!K){a=b.min(b.max(a+xb,0),s-w);c=d}else if(K&2){a=u(a+xb);c=d}bb(a,k.$SlideDuration,c)}function yb(){a.$Each(Q,function(a){a.$Show(a.$Options.$ChanceToShow>Z)})}function gc(b){b=a.$GetEvent(b);var c=b.target?b.target:b.srcElement,d=b.relatedTarget?b.relatedTarget:b.toElement;if(!a.$IsChild(o,c)||a.$IsChild(o,d))return;Z=1;yb();C[p].$TryActivate()}function fc(){Z=0;yb()}function hc(){T={$Width:J,$Height:H,$Top:0,$Left:0};a.$Each(X,function(b){a.$SetStyles(b,T);a.$CssPosition(b,"absolute");a.$CssOverflow(b,"hidden");a.$HideElement(b)});a.$SetStyles(db,T)}function lb(b,a){bb(b,a,c)}function bb(h,g,l){if(Ob&&(!I||k.$NaviQuitDrag)){R=c;I=d;B.$Stop();if(a.$IsUndefined(g))g=Sb;var f=Fb.$GetPosition_Display(),e=h;if(l){e=f+h;if(h>0)e=b.ceil(e);else e=b.floor(e)}if(!(K&1)){e=u(e);e=b.max(0,b.min(e,s-w))}var j=(e-f)%s;e=f+j;var i=f==e?0:g*b.abs(j);i=b.min(i,g*w*1.5);B.$PlayCarousel(f,e,i||1)}}i.$PlayTo=bb;i.$GoTo=function(a){bb(a,1)};i.$Next=function(){lb(1)};i.$Prev=function(){lb(-1)};i.$Pause=function(){S=d};i.$Play=function(){if(!S){S=c;C[p]&&C[p].$TryActivate()}};i.$SetSlideshowTransitions=function(a){k.$SlideshowOptions.$Transitions=a};i.$SetCaptionTransitions=function(b){N.$CaptionTransitions=b;N.$Version=a.$GetNow()};i.$SlidesCount=function(){return X.length};i.$CurrentIndex=function(){return p};i.$IsAutoPlaying=function(){return S};i.$IsDragging=function(){return I};i.$IsSliding=function(){return R};i.$IsMouseOver=function(){return!Z};i.$LastDragSucceded=function(){return U};i.$GetOriginalWidth=function(){return a.$CssWidth(v||o)};i.$GetOriginalHeight=function(){return a.$CssHeight(v||o)};i.$GetScaleWidth=function(){return a.$CssWidth(o)};i.$GetScaleHeight=function(){return a.$CssHeight(o)};i.$SetScaleWidth=function(c){if(!v){var b=a.$CreateDivElement(f);a.$CssCssText(b,a.$CssCssText(o));a.$SetClassName(b,a.$GetClassName(o));a.$CssPosition(b,"relative");a.$CssTop(b,0);a.$CssLeft(b,0);a.$CssOverflow(b,"visible");v=a.$CreateDivElement(f);a.$CssPosition(v,"absolute");a.$CssTop(v,0);a.$CssLeft(v,0);a.$CssWidth(v,a.$CssWidth(o));a.$CssHeight(v,a.$CssHeight(o));a.$SetStyleTransformOrigin(v,"0 0");a.$AppendChild(v,b);var g=a.$GetChildren(o);a.$AppendChild(o,v);a.$Css(o,"backgroundImage","");var e={navigator:Y&&Y.$Scale==d,arrowleft:M&&M.$Scale==d,arrowright:M&&M.$Scale==d,thumbnavigator:F&&F.$Scale==d,thumbwrapper:F&&F.$Scale==d};a.$Each(g,function(c){a.$AppendChild(e[a.$GetAttributeEx(c,"u")]?o:b,c)});a.$ShowElement(b);a.$ShowElement(v)}nb=c/a.$CssWidth(v);a.$SetStyleScale(v,nb);a.$CssWidth(o,c);a.$CssHeight(o,nb*a.$CssHeight(v));a.$Each(Q,function(a){a.$Relocate()})};i.$GetVirtualIndex=function(a){var d=b.ceil(u(hb/Zb)),c=u(a-p+d);if(c>w){if(a-p>s/2)a-=s;else if(a-p<=-s/2)a+=s}else a=p+c-d;return a};m.call(this);i.$Elmt=o=a.$GetElement(o);var k=a.$Extend({$FillMode:0,$LazyLoading:1,$StartIndex:0,$AutoPlay:d,$Loop:1,$HWA:c,$NaviQuitDrag:c,$AutoPlaySteps:1,$AutoPlayInterval:3e3,$PauseOnHover:1,$SlideDuration:500,$SlideEasing:l.$EaseOutQuad,$MinDragOffsetToSlide:20,$SlideSpacing:0,$DisplayPieces:1,$ParkingPosition:0,$UISearchMode:1,$PlayOrientation:1,$DragOrientation:1},ec),ib=k.$PlayOrientation&3,Vb=(k.$PlayOrientation&4)/-4||1,fb=k.$SlideshowOptions,N=a.$Extend({$Class:t,$PlayInMode:1,$PlayOutMode:1},k.$CaptionSliderOptions),Y=k.$BulletNavigatorOptions,M=k.$ArrowNavigatorOptions,F=k.$ThumbnailNavigatorOptions,W=k.$UISearchMode,v,z=a.$FindFirstChildByAttribute(o,"slides",e,W),db=a.$FindFirstChildByAttribute(o,"loading",e,W)||a.$CreateDivElement(f),Kb=a.$FindFirstChildByAttribute(o,"navigator",e,W),bc=a.$FindFirstChildByAttribute(o,"arrowleft",e,W),Yb=a.$FindFirstChildByAttribute(o,"arrowright",e,W),Hb=a.$FindFirstChildByAttribute(o,"thumbnavigator",e,W),kc=a.$CssWidth(z),jc=a.$CssHeight(z),T,X=[],tc=a.$GetChildren(z);a.$Each(tc,function(b){b.tagName=="DIV"&&!a.$GetAttributeEx(b,"u")&&X.push(b)});var p=-1,xb,tb,s=X.length,J=k.$SlideWidth||kc,H=k.$SlideHeight||jc,Ub=k.$SlideSpacing,Ab=J+Ub,Bb=H+Ub,Zb=ib&1?Ab:Bb,w=b.min(k.$DisplayPieces,s),jb,x,L,zb,G,Q=[],Nb,Pb,Mb,dc,Ac,S,Tb=k.$PauseOnHover,Sb=k.$SlideDuration,rb,eb,hb,Ob=w<s,K=Ob?k.$Loop:0,P,U,Z=1,R,I,V,ub=0,vb=0,E,cb,gb,Fb,y,ab,B,Qb=new nc,nb;S=k.$AutoPlay;i.$Options=ec;hc();o["jssor-slider"]=c;a.$CssZIndex(z,a.$CssZIndex(z)||0);a.$CssPosition(z,"absolute");jb=a.$CloneNode(z);a.$InsertBefore(a.$GetParentNode(z),jb,z);if(fb){dc=fb.$ShowLink;rb=fb.$Class;eb=w==1&&s>1&&rb&&(!a.$IsBrowserIE()||a.$GetBrowserVersion()>=8)}hb=eb||w>=s||!(K&1)?0:k.$ParkingPosition;P=(w>1||hb?ib:-1)&k.$DragOrientation;var wb=z,C=[],A,O,Db="mousedown",ob="mousemove",Gb="mouseup",mb,D,qb,Ib,sb;if(g.navigator.msPointerEnabled){Db="MSPointerDown";ob="MSPointerMove";Gb="MSPointerUp";mb="MSPointerCancel";if(P){var Cb="none";if(P==1)Cb="pan-y";else if(P==2)Cb="pan-x";a.$SetAttribute(wb.style,"-ms-touch-action",Cb)}}else if("ontouchstart"in g||"createTouch"in f){G=c;Db="touchstart";ob="touchmove";Gb="touchend";mb="touchcancel"}ab=new xc;if(eb)A=new rb(Qb,J,H,fb,G);a.$AppendChild(jb,ab.$Wrapper);a.$CssOverflow(z,"hidden");O=Wb();a.$Css(O,"backgroundColor","#000");a.$CssOpacity(O,0);a.$InsertBefore(wb,O,wb.firstChild);for(var pb=0;pb<X.length;pb++){var vc=X[pb],cc=new wc(vc,pb);C.push(cc)}a.$HideElement(db);Fb=new yc;B=new mc(Fb,ab);if(P){a.$AddEvent(z,Db,sc);a.$AddEvent(f,Gb,Eb);mb&&a.$AddEvent(f,mb,Eb)}Tb&=G?2:1;if(Kb&&Y){Nb=new Y.$Class(Kb,Y);Q.push(Nb)}if(M&&bc&&Yb){Pb=new M.$Class(bc,Yb,M);Q.push(Pb)}if(Hb&&F){F.$StartIndex=k.$StartIndex;Mb=new F.$Class(Hb,F);Q.push(Mb)}a.$Each(Q,function(a){a.$Reset(s,C,db);a.$On(q.$NAVIGATIONREQUEST,ic)});i.$SetScaleWidth(i.$GetOriginalWidth());a.$AddEvent(o,"mouseout",gc);a.$AddEvent(o,"mouseover",fc);yb();k.$ArrowKeyNavigation&&a.$AddEvent(f,"keydown",function(a){if(a.keyCode==r.$LEFT)lb(-1);else a.keyCode==r.$RIGHT&&lb(1)});var kb=k.$StartIndex;if(!(K&1))kb=b.max(0,b.min(kb,s-w));B.$PlayCarousel(kb,kb,0)}n.$EVT_CLICK=21;n.$EVT_DRAG_START=22;n.$EVT_DRAG_END=23;n.$EVT_SWIPE_START=24;n.$EVT_SWIPE_END=25;n.$EVT_LOAD_START=26;n.$EVT_LOAD_END=27;n.$EVT_POSITION_CHANGE=202;n.$EVT_PARK=203;n.$EVT_SLIDESHOW_START=206;n.$EVT_SLIDESHOW_END=207;n.$EVT_PROGRESS_CHANGE=208;n.$EVT_STATE_CHANGE=209;n.$EVT_ROLLBACK_START=210;n.$EVT_ROLLBACK_END=211;g.$JssorSlider$=s=n};var q={$NAVIGATIONREQUEST:1,$INDEXCHANGE:2,$RESET:3};g.$JssorBulletNavigator$=function(f,D){var h=this;m.call(h);f=a.$GetElement(f);var t,u,s,r,l=0,g,n,k,y,z,j,i,p,o,C=[],A=[];function x(a){a!=-1&&A[a].$Activate(a==l)}function v(a){h.$TriggerEvent(q.$NAVIGATIONREQUEST,a*n)}h.$Elmt=f;h.$GetCurrentIndex=function(){return r};h.$SetCurrentIndex=function(a){if(a!=r){var d=l,c=b.floor(a/n);l=c;r=a;x(d);x(c)}};h.$Show=function(b){a.$ShowElement(f,b)};var B;h.$Relocate=function(){if(!B||g.$Scale==d){g.$AutoCenter&1&&a.$CssLeft(f,(a.$CssWidth(a.$GetParentNode(f))-u)/2);g.$AutoCenter&2&&a.$CssTop(f,(a.$CssHeight(a.$GetParentNode(f))-s)/2);B=c}};var w;h.$Reset=function(D){if(!w){t=b.ceil(D/n);l=0;var q=p+y,r=o+z,m=b.ceil(t/k)-1;u=p+q*(!j?m:k-1);s=o+r*(j?m:k-1);a.$CssWidth(f,u);a.$CssHeight(f,s);for(var d=0;d<t;d++){var B=a.$CreateSpanElement();a.$SetInnerText(B,d+1);var h=a.$BuildElement(i,"NumberTemplate",B,c);a.$CssPosition(h,"absolute");var x=d%(m+1);a.$CssLeft(h,!j?q*x:d%k*q);a.$CssTop(h,j?r*x:b.floor(d/(m+1))*r);a.$AppendChild(f,h);C[d]=h;g.$ActionMode&1&&a.$AddEvent(h,"click",a.$CreateCallback(e,v,d));g.$ActionMode&2&&a.$AddEvent(h,"mouseover",a.$CreateCallback(e,v,d));A[d]=a.$Buttonize(h)}w=c}};h.$Options=g=a.$Extend({$SpacingX:0,$SpacingY:0,$Orientation:1,$ActionMode:1},D);i=a.$FindFirstChildByAttribute(f,"prototype");p=a.$CssWidth(i);o=a.$CssHeight(i);a.$RemoveChild(f,i);n=g.$Steps||1;k=g.$Lanes||1;y=g.$SpacingX;z=g.$SpacingY;j=g.$Orientation-1};g.$JssorArrowNavigator$=function(b,g,s){var f=this;m.call(f);var i,h,j,p=a.$GetParentNode(b),o=a.$CssWidth(b),l=a.$CssHeight(b);function k(a){f.$TriggerEvent(q.$NAVIGATIONREQUEST,a,c)}f.$GetCurrentIndex=function(){return i};f.$SetCurrentIndex=function(b,a,c){if(c)i=a;else i=b};f.$Show=function(c){a.$ShowElement(b,c);a.$ShowElement(g,c)};var r;f.$Relocate=function(){if(!r||h.$Scale==d){var f=a.$CssWidth(p),e=a.$CssHeight(p);if(h.$AutoCenter&1){a.$CssLeft(b,(f-o)/2);a.$CssLeft(g,(f-o)/2)}if(h.$AutoCenter&2){a.$CssTop(b,(e-l)/2);a.$CssTop(g,(e-l)/2)}r=c}};var n;f.$Reset=function(d){i=0;if(!n){a.$AddEvent(b,"click",a.$CreateCallback(e,k,-j));a.$AddEvent(g,"click",a.$CreateCallback(e,k,j));a.$Buttonize(b);a.$Buttonize(g);n=c}};f.$Options=h=a.$Extend({$Steps:1},s);j=h.$Steps};g.$JssorThumbnailNavigator$=function(i,A){var h=this,x,l,e,u=[],y,w,f,n,o,t,r,k,p,g,j;m.call(h);i=a.$GetElement(i);function z(n,d){var g=this,b,m,k;function o(){m.$Activate(l==d)}function i(){if(!p.$LastDragSucceded()){var a=f-d%f,b=p.$GetVirtualIndex((d+a)/f-1),c=b*f+f-a;h.$TriggerEvent(q.$NAVIGATIONREQUEST,c)}}g.$Index=d;g.$Highlight=o;k=n.$Thumb||n.$Image||a.$CreateDivElement();g.$Wrapper=b=a.$BuildElement(j,"ThumbnailTemplate",k,c);m=a.$Buttonize(b);e.$ActionMode&1&&a.$AddEvent(b,"click",i);e.$ActionMode&2&&a.$AddEvent(b,"mouseover",i)}h.$GetCurrentIndex=function(){return l};h.$SetCurrentIndex=function(c,d,e){var a=l;l=c;a!=-1&&u[a].$Highlight();u[c].$Highlight();!e&&p.$PlayTo(p.$GetVirtualIndex(b.floor(d/f)))};h.$Show=function(b){a.$ShowElement(i,b)};h.$Relocate=a.$EmptyFunction;var v;h.$Reset=function(F,D){if(!v){x=F;b.ceil(x/f);l=-1;k=b.min(k,D.length);var h=e.$Orientation&1,q=t+(t+n)*(f-1)*(1-h),m=r+(r+o)*(f-1)*h,C=q+(q+n)*(k-1)*h,A=m+(m+o)*(k-1)*(1-h);a.$CssPosition(g,"absolute");a.$CssOverflow(g,"hidden");e.$AutoCenter&1&&a.$CssLeft(g,(y-C)/2);e.$AutoCenter&2&&a.$CssTop(g,(w-A)/2);a.$CssWidth(g,C);a.$CssHeight(g,A);var j=[];a.$Each(D,function(l,e){var i=new z(l,e),d=i.$Wrapper,c=b.floor(e/f),k=e%f;a.$CssLeft(d,(t+n)*k*(1-h));a.$CssTop(d,(r+o)*k*h);if(!j[c]){j[c]=a.$CreateDivElement();a.$AppendChild(g,j[c])}a.$AppendChild(j[c],d);u.push(i)});var E=a.$Extend({$AutoPlay:d,$NaviQuitDrag:d,$SlideWidth:q,$SlideHeight:m,$SlideSpacing:n*h+o*(1-h),$MinDragOffsetToSlide:12,$SlideDuration:200,$PauseOnHover:1,$PlayOrientation:e.$Orientation,$DragOrientation:e.$DisableDrag?0:e.$Orientation},e);p=new s(i,E);v=c}};h.$Options=e=a.$Extend({$SpacingX:3,$SpacingY:3,$DisplayPieces:1,$Orientation:1,$AutoCenter:3,$ActionMode:1},A);y=a.$CssWidth(i);w=a.$CssHeight(i);g=a.$FindFirstChildByAttribute(i,"slides");j=a.$FindFirstChildByAttribute(g,"prototype");t=a.$CssWidth(j);r=a.$CssHeight(j);a.$RemoveChild(g,j);f=e.$Lanes||1;n=e.$SpacingX;o=e.$SpacingY;k=e.$DisplayPieces};function t(){j.call(this,0,0);this.$Revert=a.$EmptyFunction}g.$JssorCaptionSlider$=function(q,k,g){var d=this,h,o=g?k.$PlayInMode:k.$PlayOutMode,f=k.$CaptionTransitions,p={$Transition:"t",$Delay:"d",$Duration:"du",$ScaleHorizontal:"x",$ScaleVertical:"y",$Rotate:"r",$Zoom:"z",$Opacity:"f",$BeginTime:"b"},e={$Default:function(b,a){if(!isNaN(a.$Value))b=a.$Value;else b*=a.$Percent;return b},$Opacity:function(b,a){return this.$Default(b-1,a)}};e.$Zoom=e.$Opacity;j.call(d,0,0);function m(r,l){var k=[],i,j=[],c=[];function h(c,d){var b={};a.$Each(p,function(g,h){var e=a.$GetAttributeEx(c,g+(d||""));if(e){var f={};if(g=="t")f.$Value=e;else if(e.indexOf("%")+1)f.$Percent=a.$ParseFloat(e)/100;else f.$Value=a.$ParseFloat(e);b[h]=f}});return b}function n(){return f[b.floor(b.random()*f.length)]}function d(g){var h;if(g=="*")h=n();else if(g){var e=f[a.$ParseInt(g)]||f[g];if(a.$IsArray(e)){if(g!=i){i=g;c[g]=0;j[g]=e[b.floor(b.random()*e.length)]}else c[g]++;e=j[g];if(a.$IsArray(e)){e=e.length&&e[c[g]%e.length];if(a.$IsArray(e))e=e[b.floor(b.random()*e.length)]}}h=e;if(a.$IsString(h))h=d(h)}return h}var q=a.$GetChildren(r);a.$Each(q,function(b){var c=[];c.$Elmt=b;var f=a.$GetAttributeEx(b,"u")=="caption";a.$Each(g?[0,3]:[2],function(k,n){if(f){var j,g;if(k!=2||!a.$GetAttributeEx(b,"t3")){g=h(b,k);if(k==2&&!g.$Transition){g.$Delay=g.$Delay||{$Value:0};g=a.$Extend(h(b,0),g)}}if(g&&g.$Transition){j=d(g.$Transition.$Value);if(j){var i=a.$Extend({$Delay:0,$ScaleHorizontal:1,$ScaleVertical:1},j);a.$Each(g,function(c,a){var b=(e[a]||e.$Default).apply(e,[i[a],g[a]]);if(!isNaN(b))i[a]=b});if(!n)if(g.$BeginTime)i.$BeginTime=g.$BeginTime.$Value||0;else if(o&2)i.$BeginTime=0}}c.push(i)}if(l%2&&!n)c.$Children=m(b,l+1)});k.push(c)});return k}function n(E,d,F){var h={$Easing:d.$Easing,$Round:d.$Round,$During:d.$During,$Reverse:g&&!F,$Optimize:c},k=E,y=a.$GetParentNode(E),o=a.$CssWidth(k),n=a.$CssHeight(k),u=a.$CssWidth(y),t=a.$CssHeight(y),f={},l={},m=d.$ScaleClip||1;if(d.$Opacity)f.$Opacity=2-d.$Opacity;h.$OriginalWidth=o;h.$OriginalHeight=n;if(d.$Zoom||d.$Rotate){f.$Zoom=d.$Zoom?d.$Zoom-1:1;if(a.$IsBrowserIe9Earlier()||a.$IsBrowserOpera())f.$Zoom=b.min(f.$Zoom,2);l.$Zoom=1;var s=d.$Rotate||0;if(s==c)s=1;f.$Rotate=s*360;l.$Rotate=0}else if(d.$Clip){var z={$Top:0,$Right:o,$Bottom:n,$Left:0},D=a.$Extend({},z),e=D.$Offset={},C=d.$Clip&4,v=d.$Clip&8,A=d.$Clip&1,x=d.$Clip&2;if(C&&v){e.$Top=n/2*m;e.$Bottom=-e.$Top}else if(C)e.$Bottom=-n*m;else if(v)e.$Top=n*m;if(A&&x){e.$Left=o/2*m;e.$Right=-e.$Left}else if(A)e.$Right=-o*m;else if(x)e.$Left=o*m;h.$Move=d.$Move;f.$Clip=D;l.$Clip=z}var p=d.$FlyDirection,q=0,r=0,w=d.$ScaleHorizontal,B=d.$ScaleVertical;if(i.$IsToLeft(p))q-=u*w;else if(i.$IsToRight(p))q+=u*w;if(i.$IsToTop(p))r-=t*B;else if(i.$IsToBottom(p))r+=t*B;if(q||r||h.$Move){f.$Left=q+a.$CssLeft(k);f.$Top=r+a.$CssTop(k)}var G=d.$Duration;l=a.$Extend(l,a.$GetStyles(k,f));h.$Setter=a.$GetStyleSetterEx();return new j(d.$Delay,G,h,k,l,f)}function l(b,c){a.$Each(c,function(c){var f,i=c.$Elmt,e=c[0],j=c[1];if(e){f=n(i,e);b=f.$Locate(a.$IsUndefined(e.$BeginTime)?b:e.$BeginTime,1)}b=l(b,c.$Children);if(j){var g=n(i,j,1);g.$Locate(b,1);d.$Combine(g);h.$Combine(g)}f&&d.$Combine(f)});return b}d.$Revert=function(){d.$GoToPosition(d.$GetPosition_OuterEnd()*(g||0));h.$GoToBegin()};h=new j(0,0);l(0,o?m(q,1):[])}})(window,document,Math,null,true,false)