manv_imagegallery - Version 1.0.0.1

Version Notes

magento product Image gallery : is a brilliant concept for adding a gallery for product page . This module will convert your addition product images as per the slideshow / gallery style . This module is super slick and useful

Download this release

Release Info

Developer Manvendra Sharma
Extension manv_imagegallery
Version 1.0.0.1
Comparing to
See all releases


Version 1.0.0.1

Files changed (31) hide show
  1. app/code/local/Manv/Imagegallery/Block/Adminhtml/Imagegallery.php +12 -0
  2. app/code/local/Manv/Imagegallery/Block/Adminhtml/Imagegallery/Edit.php +45 -0
  3. app/code/local/Manv/Imagegallery/Block/Adminhtml/Imagegallery/Edit/Form.php +19 -0
  4. app/code/local/Manv/Imagegallery/Block/Adminhtml/Imagegallery/Edit/Tab/Form.php +58 -0
  5. app/code/local/Manv/Imagegallery/Block/Adminhtml/Imagegallery/Edit/Tabs.php +24 -0
  6. app/code/local/Manv/Imagegallery/Block/Adminhtml/Imagegallery/Grid.php +116 -0
  7. app/code/local/Manv/Imagegallery/Block/Imagegallery.php +17 -0
  8. app/code/local/Manv/Imagegallery/Helper/Data.php +6 -0
  9. app/code/local/Manv/Imagegallery/Model/Imagegallery.php +10 -0
  10. app/code/local/Manv/Imagegallery/Model/Mysql4/Imagegallery.php +10 -0
  11. app/code/local/Manv/Imagegallery/Model/Mysql4/Imagegallery/Collection.php +10 -0
  12. app/code/local/Manv/Imagegallery/Model/Status.php +15 -0
  13. app/code/local/Manv/Imagegallery/controllers/Adminhtml/ImagegalleryController.php +214 -0
  14. app/code/local/Manv/Imagegallery/controllers/IndexController.php +47 -0
  15. app/code/local/Manv/Imagegallery/etc/config.xml +128 -0
  16. app/code/local/Manv/Imagegallery/sql/imagegallery_setup/mysql4-install-0.1.0.php +23 -0
  17. app/design/adminhtml/default/default/layout/imagegallery.xml +8 -0
  18. app/design/frontend/default/default/layout/imagegallery.xml +10 -0
  19. app/design/frontend/default/default/template/imagegallery/16.11.2013.test.phtml +123 -0
  20. app/design/frontend/default/default/template/imagegallery/16.12.2013.imagegallery.phtml +105 -0
  21. app/design/frontend/default/default/template/imagegallery/17.12.2013.test.phtml +187 -0
  22. app/design/frontend/default/default/template/imagegallery/copy of imagegallery.phtml +65 -0
  23. app/design/frontend/default/default/template/imagegallery/imagegallery.phtml +105 -0
  24. app/design/frontend/default/default/template/imagegallery/ok test.phtml +193 -0
  25. app/design/frontend/default/default/template/imagegallery/test.phtml +197 -0
  26. app/etc/modules/Manv_Imagegallery.xml +17 -0
  27. package.xml +18 -0
  28. skin/frontend/default/default/imagegallery_js/jquery-1.2.6.noConflict.min.js +36 -0
  29. skin/frontend/default/default/images/imagegallery_images/close.png +0 -0
  30. skin/frontend/default/default/images/imagegallery_images/left_1.png +0 -0
  31. skin/frontend/default/default/images/imagegallery_images/right_1.png +0 -0
app/code/local/Manv/Imagegallery/Block/Adminhtml/Imagegallery.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Manv_Imagegallery_Block_Adminhtml_Imagegallery extends Mage_Adminhtml_Block_Widget_Grid_Container
3
+ {
4
+ public function __construct()
5
+ {
6
+ $this->_controller = 'adminhtml_imagegallery';
7
+ $this->_blockGroup = 'imagegallery';
8
+ $this->_headerText = Mage::helper('imagegallery')->__('Item Manager');
9
+ $this->_addButtonLabel = Mage::helper('imagegallery')->__('Add Item');
10
+ parent::__construct();
11
+ }
12
+ }
app/code/local/Manv/Imagegallery/Block/Adminhtml/Imagegallery/Edit.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Manv_Imagegallery_Block_Adminhtml_Imagegallery_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
4
+ {
5
+ public function __construct()
6
+ {
7
+ parent::__construct();
8
+
9
+ $this->_objectId = 'id';
10
+ $this->_blockGroup = 'imagegallery';
11
+ $this->_controller = 'adminhtml_imagegallery';
12
+
13
+ $this->_updateButton('save', 'label', Mage::helper('imagegallery')->__('Save Item'));
14
+ $this->_updateButton('delete', 'label', Mage::helper('imagegallery')->__('Delete Item'));
15
+
16
+ $this->_addButton('saveandcontinue', array(
17
+ 'label' => Mage::helper('adminhtml')->__('Save And Continue Edit'),
18
+ 'onclick' => 'saveAndContinueEdit()',
19
+ 'class' => 'save',
20
+ ), -100);
21
+
22
+ $this->_formScripts[] = "
23
+ function toggleEditor() {
24
+ if (tinyMCE.getInstanceById('imagegallery_content') == null) {
25
+ tinyMCE.execCommand('mceAddControl', false, 'imagegallery_content');
26
+ } else {
27
+ tinyMCE.execCommand('mceRemoveControl', false, 'imagegallery_content');
28
+ }
29
+ }
30
+
31
+ function saveAndContinueEdit(){
32
+ editForm.submit($('edit_form').action+'back/edit/');
33
+ }
34
+ ";
35
+ }
36
+
37
+ public function getHeaderText()
38
+ {
39
+ if( Mage::registry('imagegallery_data') && Mage::registry('imagegallery_data')->getId() ) {
40
+ return Mage::helper('imagegallery')->__("Edit Item '%s'", $this->htmlEscape(Mage::registry('imagegallery_data')->getTitle()));
41
+ } else {
42
+ return Mage::helper('imagegallery')->__('Add Item');
43
+ }
44
+ }
45
+ }
app/code/local/Manv/Imagegallery/Block/Adminhtml/Imagegallery/Edit/Form.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Manv_Imagegallery_Block_Adminhtml_Imagegallery_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
4
+ {
5
+ protected function _prepareForm()
6
+ {
7
+ $form = new Varien_Data_Form(array(
8
+ 'id' => 'edit_form',
9
+ 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
10
+ 'method' => 'post',
11
+ 'enctype' => 'multipart/form-data'
12
+ )
13
+ );
14
+
15
+ $form->setUseContainer(true);
16
+ $this->setForm($form);
17
+ return parent::_prepareForm();
18
+ }
19
+ }
app/code/local/Manv/Imagegallery/Block/Adminhtml/Imagegallery/Edit/Tab/Form.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Manv_Imagegallery_Block_Adminhtml_Imagegallery_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
4
+ {
5
+ protected function _prepareForm()
6
+ {
7
+ $form = new Varien_Data_Form();
8
+ $this->setForm($form);
9
+ $fieldset = $form->addFieldset('imagegallery_form', array('legend'=>Mage::helper('imagegallery')->__('Item information')));
10
+
11
+ $fieldset->addField('title', 'text', array(
12
+ 'label' => Mage::helper('imagegallery')->__('Title'),
13
+ 'class' => 'required-entry',
14
+ 'required' => true,
15
+ 'name' => 'title',
16
+ ));
17
+
18
+ $fieldset->addField('filename', 'file', array(
19
+ 'label' => Mage::helper('imagegallery')->__('File'),
20
+ 'required' => false,
21
+ 'name' => 'filename',
22
+ ));
23
+
24
+ $fieldset->addField('status', 'select', array(
25
+ 'label' => Mage::helper('imagegallery')->__('Status'),
26
+ 'name' => 'status',
27
+ 'values' => array(
28
+ array(
29
+ 'value' => 1,
30
+ 'label' => Mage::helper('imagegallery')->__('Enabled'),
31
+ ),
32
+
33
+ array(
34
+ 'value' => 2,
35
+ 'label' => Mage::helper('imagegallery')->__('Disabled'),
36
+ ),
37
+ ),
38
+ ));
39
+
40
+ $fieldset->addField('content', 'editor', array(
41
+ 'name' => 'content',
42
+ 'label' => Mage::helper('imagegallery')->__('Content'),
43
+ 'title' => Mage::helper('imagegallery')->__('Content'),
44
+ 'style' => 'width:700px; height:500px;',
45
+ 'wysiwyg' => false,
46
+ 'required' => true,
47
+ ));
48
+
49
+ if ( Mage::getSingleton('adminhtml/session')->getImagegalleryData() )
50
+ {
51
+ $form->setValues(Mage::getSingleton('adminhtml/session')->getImagegalleryData());
52
+ Mage::getSingleton('adminhtml/session')->setImagegalleryData(null);
53
+ } elseif ( Mage::registry('imagegallery_data') ) {
54
+ $form->setValues(Mage::registry('imagegallery_data')->getData());
55
+ }
56
+ return parent::_prepareForm();
57
+ }
58
+ }
app/code/local/Manv/Imagegallery/Block/Adminhtml/Imagegallery/Edit/Tabs.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Manv_Imagegallery_Block_Adminhtml_Imagegallery_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
4
+ {
5
+
6
+ public function __construct()
7
+ {
8
+ parent::__construct();
9
+ $this->setId('imagegallery_tabs');
10
+ $this->setDestElementId('edit_form');
11
+ $this->setTitle(Mage::helper('imagegallery')->__('Item Information'));
12
+ }
13
+
14
+ protected function _beforeToHtml()
15
+ {
16
+ $this->addTab('form_section', array(
17
+ 'label' => Mage::helper('imagegallery')->__('Item Information'),
18
+ 'title' => Mage::helper('imagegallery')->__('Item Information'),
19
+ 'content' => $this->getLayout()->createBlock('imagegallery/adminhtml_imagegallery_edit_tab_form')->toHtml(),
20
+ ));
21
+
22
+ return parent::_beforeToHtml();
23
+ }
24
+ }
app/code/local/Manv/Imagegallery/Block/Adminhtml/Imagegallery/Grid.php ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Manv_Imagegallery_Block_Adminhtml_Imagegallery_Grid extends Mage_Adminhtml_Block_Widget_Grid
4
+ {
5
+ public function __construct()
6
+ {
7
+ parent::__construct();
8
+ $this->setId('imagegalleryGrid');
9
+ $this->setDefaultSort('imagegallery_id');
10
+ $this->setDefaultDir('ASC');
11
+ $this->setSaveParametersInSession(true);
12
+ }
13
+
14
+ protected function _prepareCollection()
15
+ {
16
+ $collection = Mage::getModel('imagegallery/imagegallery')->getCollection();
17
+ $this->setCollection($collection);
18
+ return parent::_prepareCollection();
19
+ }
20
+
21
+ protected function _prepareColumns()
22
+ {
23
+ $this->addColumn('imagegallery_id', array(
24
+ 'header' => Mage::helper('imagegallery')->__('ID'),
25
+ 'align' =>'right',
26
+ 'width' => '50px',
27
+ 'index' => 'imagegallery_id',
28
+ ));
29
+
30
+ $this->addColumn('title', array(
31
+ 'header' => Mage::helper('imagegallery')->__('Title'),
32
+ 'align' =>'left',
33
+ 'index' => 'title',
34
+ ));
35
+
36
+ /*
37
+ $this->addColumn('content', array(
38
+ 'header' => Mage::helper('imagegallery')->__('Item Content'),
39
+ 'width' => '150px',
40
+ 'index' => 'content',
41
+ ));
42
+ */
43
+
44
+ $this->addColumn('status', array(
45
+ 'header' => Mage::helper('imagegallery')->__('Status'),
46
+ 'align' => 'left',
47
+ 'width' => '80px',
48
+ 'index' => 'status',
49
+ 'type' => 'options',
50
+ 'options' => array(
51
+ 1 => 'Enabled',
52
+ 2 => 'Disabled',
53
+ ),
54
+ ));
55
+
56
+ $this->addColumn('action',
57
+ array(
58
+ 'header' => Mage::helper('imagegallery')->__('Action'),
59
+ 'width' => '100',
60
+ 'type' => 'action',
61
+ 'getter' => 'getId',
62
+ 'actions' => array(
63
+ array(
64
+ 'caption' => Mage::helper('imagegallery')->__('Edit'),
65
+ 'url' => array('base'=> '*/*/edit'),
66
+ 'field' => 'id'
67
+ )
68
+ ),
69
+ 'filter' => false,
70
+ 'sortable' => false,
71
+ 'index' => 'stores',
72
+ 'is_system' => true,
73
+ ));
74
+
75
+ $this->addExportType('*/*/exportCsv', Mage::helper('imagegallery')->__('CSV'));
76
+ $this->addExportType('*/*/exportXml', Mage::helper('imagegallery')->__('XML'));
77
+
78
+ return parent::_prepareColumns();
79
+ }
80
+
81
+ protected function _prepareMassaction()
82
+ {
83
+ $this->setMassactionIdField('imagegallery_id');
84
+ $this->getMassactionBlock()->setFormFieldName('imagegallery');
85
+
86
+ $this->getMassactionBlock()->addItem('delete', array(
87
+ 'label' => Mage::helper('imagegallery')->__('Delete'),
88
+ 'url' => $this->getUrl('*/*/massDelete'),
89
+ 'confirm' => Mage::helper('imagegallery')->__('Are you sure?')
90
+ ));
91
+
92
+ $statuses = Mage::getSingleton('imagegallery/status')->getOptionArray();
93
+
94
+ array_unshift($statuses, array('label'=>'', 'value'=>''));
95
+ $this->getMassactionBlock()->addItem('status', array(
96
+ 'label'=> Mage::helper('imagegallery')->__('Change status'),
97
+ 'url' => $this->getUrl('*/*/massStatus', array('_current'=>true)),
98
+ 'additional' => array(
99
+ 'visibility' => array(
100
+ 'name' => 'status',
101
+ 'type' => 'select',
102
+ 'class' => 'required-entry',
103
+ 'label' => Mage::helper('imagegallery')->__('Status'),
104
+ 'values' => $statuses
105
+ )
106
+ )
107
+ ));
108
+ return $this;
109
+ }
110
+
111
+ public function getRowUrl($row)
112
+ {
113
+ return $this->getUrl('*/*/edit', array('id' => $row->getId()));
114
+ }
115
+
116
+ }
app/code/local/Manv/Imagegallery/Block/Imagegallery.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Manv_Imagegallery_Block_Imagegallery extends Mage_Core_Block_Template
3
+ {
4
+ public function _prepareLayout()
5
+ {
6
+ return parent::_prepareLayout();
7
+ }
8
+
9
+ public function getImagegallery()
10
+ {
11
+ if (!$this->hasData('imagegallery')) {
12
+ $this->setData('imagegallery', Mage::registry('imagegallery'));
13
+ }
14
+ return $this->getData('imagegallery');
15
+
16
+ }
17
+ }
app/code/local/Manv/Imagegallery/Helper/Data.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Manv_Imagegallery_Helper_Data extends Mage_Core_Helper_Abstract
4
+ {
5
+
6
+ }
app/code/local/Manv/Imagegallery/Model/Imagegallery.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Manv_Imagegallery_Model_Imagegallery extends Mage_Core_Model_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ parent::_construct();
8
+ $this->_init('imagegallery/imagegallery');
9
+ }
10
+ }
app/code/local/Manv/Imagegallery/Model/Mysql4/Imagegallery.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Manv_Imagegallery_Model_Mysql4_Imagegallery extends Mage_Core_Model_Mysql4_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ // Note that the imagegallery_id refers to the key field in your database table.
8
+ $this->_init('imagegallery/imagegallery', 'imagegallery_id');
9
+ }
10
+ }
app/code/local/Manv/Imagegallery/Model/Mysql4/Imagegallery/Collection.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Manv_Imagegallery_Model_Mysql4_Imagegallery_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ parent::_construct();
8
+ $this->_init('imagegallery/imagegallery');
9
+ }
10
+ }
app/code/local/Manv/Imagegallery/Model/Status.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Manv_Imagegallery_Model_Status extends Varien_Object
4
+ {
5
+ const STATUS_ENABLED = 1;
6
+ const STATUS_DISABLED = 2;
7
+
8
+ static public function getOptionArray()
9
+ {
10
+ return array(
11
+ self::STATUS_ENABLED => Mage::helper('imagegallery')->__('Enabled'),
12
+ self::STATUS_DISABLED => Mage::helper('imagegallery')->__('Disabled')
13
+ );
14
+ }
15
+ }
app/code/local/Manv/Imagegallery/controllers/Adminhtml/ImagegalleryController.php ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Manv_Imagegallery_Adminhtml_ImagegalleryController extends Mage_Adminhtml_Controller_action
4
+ {
5
+
6
+ protected function _initAction() {
7
+ $this->loadLayout()
8
+ ->_setActiveMenu('imagegallery/items')
9
+ ->_addBreadcrumb(Mage::helper('adminhtml')->__('Items Manager'), Mage::helper('adminhtml')->__('Item Manager'));
10
+
11
+ return $this;
12
+ }
13
+
14
+ public function indexAction() {
15
+ $this->_initAction()
16
+ ->renderLayout();
17
+ }
18
+
19
+ public function editAction() {
20
+ $id = $this->getRequest()->getParam('id');
21
+ $model = Mage::getModel('imagegallery/imagegallery')->load($id);
22
+
23
+ if ($model->getId() || $id == 0) {
24
+ $data = Mage::getSingleton('adminhtml/session')->getFormData(true);
25
+ if (!empty($data)) {
26
+ $model->setData($data);
27
+ }
28
+
29
+ Mage::register('imagegallery_data', $model);
30
+
31
+ $this->loadLayout();
32
+ $this->_setActiveMenu('imagegallery/items');
33
+
34
+ $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item Manager'), Mage::helper('adminhtml')->__('Item Manager'));
35
+ $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item News'), Mage::helper('adminhtml')->__('Item News'));
36
+
37
+ $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
38
+
39
+ $this->_addContent($this->getLayout()->createBlock('imagegallery/adminhtml_imagegallery_edit'))
40
+ ->_addLeft($this->getLayout()->createBlock('imagegallery/adminhtml_imagegallery_edit_tabs'));
41
+
42
+ $this->renderLayout();
43
+ } else {
44
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('imagegallery')->__('Item does not exist'));
45
+ $this->_redirect('*/*/');
46
+ }
47
+ }
48
+
49
+ public function newAction() {
50
+ $this->_forward('edit');
51
+ }
52
+
53
+ public function saveAction() {
54
+ if ($data = $this->getRequest()->getPost()) {
55
+
56
+ if(isset($_FILES['filename']['name']) && $_FILES['filename']['name'] != '') {
57
+ try {
58
+ /* Starting upload */
59
+ $uploader = new Varien_File_Uploader('filename');
60
+
61
+ // Any extention would work
62
+ $uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
63
+ $uploader->setAllowRenameFiles(false);
64
+
65
+ // Set the file upload mode
66
+ // false -> get the file directly in the specified folder
67
+ // true -> get the file in the product like folders
68
+ // (file.jpg will go in something like /media/f/i/file.jpg)
69
+ $uploader->setFilesDispersion(false);
70
+
71
+ // We set media as the upload dir
72
+ $path = Mage::getBaseDir('media') . DS ;
73
+ $uploader->save($path, $_FILES['filename']['name'] );
74
+
75
+ } catch (Exception $e) {
76
+
77
+ }
78
+
79
+ //this way the name is saved in DB
80
+ $data['filename'] = $_FILES['filename']['name'];
81
+ }
82
+
83
+
84
+ $model = Mage::getModel('imagegallery/imagegallery');
85
+ $model->setData($data)
86
+ ->setId($this->getRequest()->getParam('id'));
87
+
88
+ try {
89
+ if ($model->getCreatedTime == NULL || $model->getUpdateTime() == NULL) {
90
+ $model->setCreatedTime(now())
91
+ ->setUpdateTime(now());
92
+ } else {
93
+ $model->setUpdateTime(now());
94
+ }
95
+
96
+ $model->save();
97
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('imagegallery')->__('Item was successfully saved'));
98
+ Mage::getSingleton('adminhtml/session')->setFormData(false);
99
+
100
+ if ($this->getRequest()->getParam('back')) {
101
+ $this->_redirect('*/*/edit', array('id' => $model->getId()));
102
+ return;
103
+ }
104
+ $this->_redirect('*/*/');
105
+ return;
106
+ } catch (Exception $e) {
107
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
108
+ Mage::getSingleton('adminhtml/session')->setFormData($data);
109
+ $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
110
+ return;
111
+ }
112
+ }
113
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('imagegallery')->__('Unable to find item to save'));
114
+ $this->_redirect('*/*/');
115
+ }
116
+
117
+ public function deleteAction() {
118
+ if( $this->getRequest()->getParam('id') > 0 ) {
119
+ try {
120
+ $model = Mage::getModel('imagegallery/imagegallery');
121
+
122
+ $model->setId($this->getRequest()->getParam('id'))
123
+ ->delete();
124
+
125
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully deleted'));
126
+ $this->_redirect('*/*/');
127
+ } catch (Exception $e) {
128
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
129
+ $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
130
+ }
131
+ }
132
+ $this->_redirect('*/*/');
133
+ }
134
+
135
+ public function massDeleteAction() {
136
+ $imagegalleryIds = $this->getRequest()->getParam('imagegallery');
137
+ if(!is_array($imagegalleryIds)) {
138
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Please select item(s)'));
139
+ } else {
140
+ try {
141
+ foreach ($imagegalleryIds as $imagegalleryId) {
142
+ $imagegallery = Mage::getModel('imagegallery/imagegallery')->load($imagegalleryId);
143
+ $imagegallery->delete();
144
+ }
145
+ Mage::getSingleton('adminhtml/session')->addSuccess(
146
+ Mage::helper('adminhtml')->__(
147
+ 'Total of %d record(s) were successfully deleted', count($imagegalleryIds)
148
+ )
149
+ );
150
+ } catch (Exception $e) {
151
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
152
+ }
153
+ }
154
+ $this->_redirect('*/*/index');
155
+ }
156
+
157
+ public function massStatusAction()
158
+ {
159
+ $imagegalleryIds = $this->getRequest()->getParam('imagegallery');
160
+ if(!is_array($imagegalleryIds)) {
161
+ Mage::getSingleton('adminhtml/session')->addError($this->__('Please select item(s)'));
162
+ } else {
163
+ try {
164
+ foreach ($imagegalleryIds as $imagegalleryId) {
165
+ $imagegallery = Mage::getSingleton('imagegallery/imagegallery')
166
+ ->load($imagegalleryId)
167
+ ->setStatus($this->getRequest()->getParam('status'))
168
+ ->setIsMassupdate(true)
169
+ ->save();
170
+ }
171
+ $this->_getSession()->addSuccess(
172
+ $this->__('Total of %d record(s) were successfully updated', count($imagegalleryIds))
173
+ );
174
+ } catch (Exception $e) {
175
+ $this->_getSession()->addError($e->getMessage());
176
+ }
177
+ }
178
+ $this->_redirect('*/*/index');
179
+ }
180
+
181
+ public function exportCsvAction()
182
+ {
183
+ $fileName = 'imagegallery.csv';
184
+ $content = $this->getLayout()->createBlock('imagegallery/adminhtml_imagegallery_grid')
185
+ ->getCsv();
186
+
187
+ $this->_sendUploadResponse($fileName, $content);
188
+ }
189
+
190
+ public function exportXmlAction()
191
+ {
192
+ $fileName = 'imagegallery.xml';
193
+ $content = $this->getLayout()->createBlock('imagegallery/adminhtml_imagegallery_grid')
194
+ ->getXml();
195
+
196
+ $this->_sendUploadResponse($fileName, $content);
197
+ }
198
+
199
+ protected function _sendUploadResponse($fileName, $content, $contentType='application/octet-stream')
200
+ {
201
+ $response = $this->getResponse();
202
+ $response->setHeader('HTTP/1.1 200 OK','');
203
+ $response->setHeader('Pragma', 'public', true);
204
+ $response->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true);
205
+ $response->setHeader('Content-Disposition', 'attachment; filename='.$fileName);
206
+ $response->setHeader('Last-Modified', date('r'));
207
+ $response->setHeader('Accept-Ranges', 'bytes');
208
+ $response->setHeader('Content-Length', strlen($content));
209
+ $response->setHeader('Content-type', $contentType);
210
+ $response->setBody($content);
211
+ $response->sendResponse();
212
+ die;
213
+ }
214
+ }
app/code/local/Manv/Imagegallery/controllers/IndexController.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Manv_Imagegallery_IndexController extends Mage_Core_Controller_Front_Action
3
+ {
4
+ public function indexAction()
5
+ {
6
+
7
+ /*
8
+ * Load an object by id
9
+ * Request looking like:
10
+ * http://site.com/imagegallery?id=15
11
+ * or
12
+ * http://site.com/imagegallery/id/15
13
+ */
14
+ /*
15
+ $imagegallery_id = $this->getRequest()->getParam('id');
16
+
17
+ if($imagegallery_id != null && $imagegallery_id != '') {
18
+ $imagegallery = Mage::getModel('imagegallery/imagegallery')->load($imagegallery_id)->getData();
19
+ } else {
20
+ $imagegallery = null;
21
+ }
22
+ */
23
+
24
+ /*
25
+ * If no param we load a the last created item
26
+ */
27
+ /*
28
+ if($imagegallery == null) {
29
+ $resource = Mage::getSingleton('core/resource');
30
+ $read= $resource->getConnection('core_read');
31
+ $imagegalleryTable = $resource->getTableName('imagegallery');
32
+
33
+ $select = $read->select()
34
+ ->from($imagegalleryTable,array('imagegallery_id','title','content','status'))
35
+ ->where('status',1)
36
+ ->order('created_time DESC') ;
37
+
38
+ $imagegallery = $read->fetchRow($select);
39
+ }
40
+ Mage::register('imagegallery', $imagegallery);
41
+ */
42
+
43
+
44
+ $this->loadLayout();
45
+ $this->renderLayout();
46
+ }
47
+ }
app/code/local/Manv/Imagegallery/etc/config.xml ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * @category Manv
5
+ * @package Manv_Imagegallery
6
+ * @author ModuleCreator
7
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
8
+ */
9
+ -->
10
+ <config>
11
+ <modules>
12
+ <Manv_Imagegallery>
13
+ <version>0.1.0</version>
14
+ </Manv_Imagegallery>
15
+ </modules>
16
+ <frontend>
17
+ <routers>
18
+ <imagegallery>
19
+ <use>standard</use>
20
+ <args>
21
+ <module>Manv_Imagegallery</module>
22
+ <frontName>imagegallery</frontName>
23
+ </args>
24
+ </imagegallery>
25
+ </routers>
26
+ <layout>
27
+ <updates>
28
+ <imagegallery>
29
+ <file>imagegallery.xml</file>
30
+ </imagegallery>
31
+ </updates>
32
+ </layout>
33
+ </frontend>
34
+ <admin>
35
+ <routers>
36
+ <imagegallery>
37
+ <use>admin</use>
38
+ <args>
39
+ <module>Manv_Imagegallery</module>
40
+ <frontName>imagegallery</frontName>
41
+ </args>
42
+ </imagegallery>
43
+ </routers>
44
+ </admin>
45
+ <adminhtml>
46
+ <menu>
47
+ <imagegallery module="imagegallery">
48
+ <title>Imagegallery</title>
49
+ <sort_order>71</sort_order>
50
+ <children>
51
+ <items module="imagegallery">
52
+ <title>Manage Items</title>
53
+ <sort_order>0</sort_order>
54
+ <action>imagegallery/adminhtml_imagegallery</action>
55
+ </items>
56
+ </children>
57
+ </imagegallery>
58
+ </menu>
59
+ <acl>
60
+ <resources>
61
+ <all>
62
+ <title>Allow Everything</title>
63
+ </all>
64
+ <admin>
65
+ <children>
66
+ <Manv_Imagegallery>
67
+ <title>Imagegallery Module</title>
68
+ <sort_order>10</sort_order>
69
+ </Manv_Imagegallery>
70
+ </children>
71
+ </admin>
72
+ </resources>
73
+ </acl>
74
+ <layout>
75
+ <updates>
76
+ <imagegallery>
77
+ <file>imagegallery.xml</file>
78
+ </imagegallery>
79
+ </updates>
80
+ </layout>
81
+ </adminhtml>
82
+ <global>
83
+ <models>
84
+ <imagegallery>
85
+ <class>Manv_Imagegallery_Model</class>
86
+ <resourceModel>imagegallery_mysql4</resourceModel>
87
+ </imagegallery>
88
+ <imagegallery_mysql4>
89
+ <class>Manv_Imagegallery_Model_Mysql4</class>
90
+ <entities>
91
+ <imagegallery>
92
+ <table>imagegallery</table>
93
+ </imagegallery>
94
+ </entities>
95
+ </imagegallery_mysql4>
96
+ </models>
97
+ <resources>
98
+ <imagegallery_setup>
99
+ <setup>
100
+ <module>Manv_Imagegallery</module>
101
+ </setup>
102
+ <connection>
103
+ <use>core_setup</use>
104
+ </connection>
105
+ </imagegallery_setup>
106
+ <imagegallery_write>
107
+ <connection>
108
+ <use>core_write</use>
109
+ </connection>
110
+ </imagegallery_write>
111
+ <imagegallery_read>
112
+ <connection>
113
+ <use>core_read</use>
114
+ </connection>
115
+ </imagegallery_read>
116
+ </resources>
117
+ <blocks>
118
+ <imagegallery>
119
+ <class>Manv_Imagegallery_Block</class>
120
+ </imagegallery>
121
+ </blocks>
122
+ <helpers>
123
+ <imagegallery>
124
+ <class>Manv_Imagegallery_Helper</class>
125
+ </imagegallery>
126
+ </helpers>
127
+ </global>
128
+ </config>
app/code/local/Manv/Imagegallery/sql/imagegallery_setup/mysql4-install-0.1.0.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $installer = $this;
4
+
5
+ $installer->startSetup();
6
+
7
+ $installer->run("
8
+
9
+ -- DROP TABLE IF EXISTS {$this->getTable('imagegallery')};
10
+ CREATE TABLE {$this->getTable('imagegallery')} (
11
+ `imagegallery_id` int(11) unsigned NOT NULL auto_increment,
12
+ `title` varchar(255) NOT NULL default '',
13
+ `filename` varchar(255) NOT NULL default '',
14
+ `content` text NOT NULL default '',
15
+ `status` smallint(6) NOT NULL default '0',
16
+ `created_time` datetime NULL,
17
+ `update_time` datetime NULL,
18
+ PRIMARY KEY (`imagegallery_id`)
19
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
20
+
21
+ ");
22
+
23
+ $installer->endSetup();
app/design/adminhtml/default/default/layout/imagegallery.xml ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout version="0.1.0">
3
+ <imagegallery_adminhtml_imagegallery_index>
4
+ <reference name="content">
5
+ <block type="imagegallery/adminhtml_imagegallery" name="imagegallery" />
6
+ </reference>
7
+ </imagegallery_adminhtml_imagegallery_index>
8
+ </layout>
app/design/frontend/default/default/layout/imagegallery.xml ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout version="0.1.0">
3
+ <default>
4
+ </default>
5
+ <imagegallery_index_index>
6
+ <reference name="content">
7
+ <block type="imagegallery/imagegallery" name="imagegallery" template="imagegallery/imagegallery.phtml" />
8
+ </reference>
9
+ </imagegallery_index_index>
10
+ </layout>
app/design/frontend/default/default/template/imagegallery/16.11.2013.test.phtml ADDED
@@ -0,0 +1,123 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php $connection = Mage::getSingleton('core/resource')->getConnection('core_write'); ?>
2
+ <?php
3
+ $result = $connection->query("select * from imagegallery");
4
+ echo $nr = $connection->fetchOne( 'SELECT COUNT(*) AS count FROM imagegallery' );
5
+
6
+
7
+ if (isset($_GET['pn'])) { // Get pn from URL vars if it is present
8
+ $pn = preg_replace('#[^0-9]#i', '', $_GET['pn']); // filter everything but numbers for security(new)
9
+ //$pn = ereg_replace("[^0-9]", "", $_GET['pn']); // filter everything but numbers for security(deprecated)
10
+ } else { // If the pn URL variable is not present force it to be value of page number 1
11
+ $pn = 1;
12
+ }
13
+ //This is where we set how many database items to show on each page
14
+ $itemsPerPage = 10;
15
+ // Get the value of the last page in the pagination result set
16
+ $lastPage = ceil($nr / $itemsPerPage);
17
+ // Be sure URL variable $pn(page number) is no lower than page 1 and no higher than $lastpage
18
+ if ($pn < 1) { // If it is less than 1
19
+ $pn = 1; // force if to be 1
20
+ } else if ($pn > $lastPage) { // if it is greater than $lastpage
21
+ $pn = $lastPage; // force it to be $lastpage's value
22
+ }
23
+ // This creates the numbers to click in between the next and back buttons
24
+ // This section is explained well in the video that accompanies this script
25
+ $centerPages = "";
26
+ $sub1 = $pn - 1;
27
+ $sub2 = $pn - 2;
28
+ $add1 = $pn + 1;
29
+ $add2 = $pn + 2;
30
+ if ($pn == 1) {
31
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
32
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> &nbsp;';
33
+ } else if ($pn == $lastPage) {
34
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> &nbsp;';
35
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
36
+ } else if ($pn > 2 && $pn < ($lastPage - 1)) {
37
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub2 . '">' . $sub2 . '</a> &nbsp;';
38
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> &nbsp;';
39
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
40
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> &nbsp;';
41
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add2 . '">' . $add2 . '</a> &nbsp;';
42
+ } else if ($pn > 1 && $pn < $lastPage) {
43
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> &nbsp;';
44
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
45
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> &nbsp;';
46
+ }
47
+ // This line sets the "LIMIT" range... the 2 values we place to choose a range of rows from database in our query
48
+ $limit = 'LIMIT ' .($pn - 1) * $itemsPerPage .',' .$itemsPerPage;
49
+ // Now we are going to run the same query as above but this time add $limit onto the end of the SQL syntax
50
+ // $sql2 is what we will use to fuel our while loop statement below
51
+ $sql2 = mysql_query("select * from imagegallery");
52
+ //////////////////////////////// END Adam's Pagination Logic ////////////////////////////////////////////////////////////////////////////////
53
+ ///////////////////////////////////// Adam's Pagination Display Setup /////////////////////////////////////////////////////////////////////
54
+ $paginationDisplay = ""; // Initialize the pagination output variable
55
+ // This code runs only if the last page variable is ot equal to 1, if it is only 1 page we require no paginated links to display
56
+ if ($lastPage != "1"){
57
+ // This shows the user what page they are on, and the total number of pages
58
+ $paginationDisplay .= 'Page <strong>' . $pn . '</strong> of ' . $lastPage. '&nbsp; &nbsp; &nbsp; ';
59
+ // If we are not on page 1 we can place the Back button
60
+ if ($pn != 1) {
61
+ $previous = $pn - 1;
62
+ $paginationDisplay .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $previous . '"> Back</a> ';
63
+ }
64
+ // Lay in the clickable numbers display here between the Back and Next links
65
+ $paginationDisplay .= '<span class="paginationNumbers">' . $centerPages . '</span>';
66
+ // If we are not on the very last page we can place the Next button
67
+ if ($pn != $lastPage) {
68
+ $nextPage = $pn + 1;
69
+ $paginationDisplay .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $nextPage . '"> Next</a> ';
70
+ }
71
+ }
72
+ ///////////////////////////////////// END Adam's Pagination Display Setup ///////////////////////////////////////////////////////////////////////////
73
+ // Build the Output Section Here
74
+
75
+ $outputList = '';
76
+ while ($row = $result->fetch() )
77
+ {
78
+
79
+ $id = $row["imagegallery_id"];
80
+ $firstname = $row["content"];
81
+ $country = $row["filename"];
82
+
83
+ $outputList .= '<h1>' . $firstname . '</h1><h2>' . $country . ' </h2><hr />';
84
+
85
+ } // close while loop
86
+ ?>
87
+
88
+ <style type="text/css">
89
+ <!--
90
+ .pagNumActive {
91
+ color: #000;
92
+ border:#060 1px solid; background-color: #D2FFD2; padding-left:3px; padding-right:3px;
93
+ }
94
+ .paginationNumbers a:link {
95
+ color: #000;
96
+ text-decoration: none;
97
+ border:#999 1px solid; background-color:#F0F0F0; padding-left:3px; padding-right:3px;
98
+ }
99
+ .paginationNumbers a:visited {
100
+ color: #000;
101
+ text-decoration: none;
102
+ border:#999 1px solid; background-color:#F0F0F0; padding-left:3px; padding-right:3px;
103
+ }
104
+ .paginationNumbers a:hover {
105
+ color: #000;
106
+ text-decoration: none;
107
+ border:#060 1px solid; background-color: #D2FFD2; padding-left:3px; padding-right:3px;
108
+ }
109
+ .paginationNumbers a:active {
110
+ color: #000;
111
+ text-decoration: none;
112
+ border:#999 1px solid; background-color:#F0F0F0; padding-left:3px; padding-right:3px;
113
+ }
114
+ -->
115
+ </style>
116
+
117
+ <div style="margin-left:64px; margin-right:64px;">
118
+ <h2>Total Items: <?php echo $nr; ?></h2>
119
+ </div>
120
+ <div style="margin-left:58px; margin-right:58px; padding:6px; background-color:#FFF; border:#999 1px solid;"><?php echo $paginationDisplay; ?></div>
121
+ <div style="margin-left:64px; margin-right:64px;"><?php print "$outputList"; ?></div>
122
+ <div style="margin-left:58px; margin-right:58px; padding:6px; background-color:#FFF; border:#999 1px solid;"><?php echo $paginationDisplay; ?></div>
123
+
app/design/frontend/default/default/template/imagegallery/16.12.2013.imagegallery.phtml ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script src="<?php echo $this->getSkinUrl('js/jquery-1.2.6.noConflict.min.js'); ?>" type="text/javascript" ></script>
2
+ <script type="text/javascript">
3
+
4
+ jQuery.noConflict();
5
+ function applyto(id) {
6
+ var c= '#mks'+id
7
+ jQuery(c).fadeIn(1000);
8
+ }
9
+
10
+ function applytoprev(x,y) {
11
+ jQuery('#mks'+x).hide();
12
+ jQuery('#mks'+y).show();
13
+ }
14
+
15
+ function applytonext(x,y) {
16
+ jQuery('#mks'+x).hide();
17
+ jQuery('#mks'+y).show();
18
+ }
19
+ </script>
20
+
21
+
22
+ <style type="text/css">
23
+ .blankdiv{background-color:#000;
24
+ position:fixed;
25
+ z-index: 9001;
26
+ top:0px; height:100%;
27
+ left:0px;
28
+ width:100%; opacity: 0.65;
29
+ filter:alpha(opacity=65);}
30
+
31
+ #popupform{height: 100%;
32
+ left: 0;
33
+ padding: 15px;
34
+ position: fixed;
35
+ top: 0;
36
+ width:97%;
37
+ z-index: 10001;
38
+ }
39
+
40
+ #popupform .applyform{position:relative; overflow:auto;
41
+ background-color:#fff;
42
+ width:510px;
43
+ height:500px; margin:5% auto auto auto;
44
+ z-index: 9002; padding:10px; border:10px solid #7F3814; }
45
+
46
+
47
+ #pclose{
48
+
49
+
50
+ cursor: pointer;
51
+ height: 25px;
52
+ margin: 5% auto -6%;
53
+ position: relative;
54
+ right: -276px;
55
+
56
+ top: 0;
57
+ width: 25px;
58
+ z-index: 9999;}
59
+ </style>
60
+
61
+ <h4><?php echo $this->__('Image Gallery') ?></h4>
62
+ <?php
63
+ $i = 0;
64
+ $collection = Mage::getModel('imagegallery/imagegallery')->getCollection();
65
+ $collection->setPageSize(25);
66
+ $collection->setCurPage(10);
67
+ $size = $collection->getSize();
68
+ $cnt = count($collection);
69
+ $vz=1;
70
+ foreach ($collection as $item)
71
+ {
72
+ $i = $i+1;
73
+ $item->setTitle($i);
74
+ // echo $item->getTitle();
75
+ // echo $filename = $item-> getFilename();
76
+ $filenaeme = $item-> getFilename();
77
+ ?>
78
+ <?php $media_url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA); ?>
79
+ <div style="float:left;border: 1px solid;
80
+ margin: 5px;">
81
+ <a href="javascript:void(0)" onclick="applyto('<?php echo $vz; ?>')"><img src="<?php echo $media_url.$filenaeme; ?>" height="100" width="100"/></a>
82
+ </div>
83
+ <div id="mks<?php echo $vz; ?>" style="display:none">
84
+ <div id="popupform">
85
+ <div class="blankdiv"></div>
86
+ <div id="pclose" onclick="javascript:document.getElementById('<?php echo 'mks'.$vz; ?>').style.display='none'">
87
+ <img src="<?php echo $this->getSkinUrl('images/close.png'); ?>" />
88
+ </div>
89
+ <div class="applyform">
90
+ <p id="contactArea">
91
+ <center>
92
+ <a href="javascript:void(0)" onclick="applytoprev('<?php echo $vz; ?>' ,'<?php echo $vz-1; ?>')"><img src="<?php echo $this->getSkinUrl('images/left_1.png'); ?>" /></a><?php echo $vz; ?>
93
+ <img src="<?php echo $media_url.$filenaeme; ?>" height="450" width="450" align="center"/>
94
+ <a href="javascript:void(0)" onclick="applytonext('<?php echo $vz; ?>' ,'<?php echo $vz+1; ?>')"><img src="<?php echo $this->getSkinUrl('images/right_1.png'); ?>" /></a>
95
+ </center>
96
+ </p>
97
+ </div>
98
+ </div>
99
+ </div>
100
+ <?php
101
+ $vz++;}
102
+ $collection->walk('save');
103
+ ?>
104
+
105
+
app/design/frontend/default/default/template/imagegallery/17.12.2013.test.phtml ADDED
@@ -0,0 +1,187 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script src="<?php echo $this->getSkinUrl('js/jquery-1.2.6.noConflict.min.js'); ?>" type="text/javascript" ></script>
2
+ <script type="text/javascript">
3
+
4
+ jQuery.noConflict();
5
+ function applyto(id) {
6
+ var c= '#mks'+id
7
+ jQuery(c).fadeIn(1000);
8
+ }
9
+
10
+ function applytoprev(x,y) {
11
+ jQuery('#mks'+x).hide();
12
+ jQuery('#mks'+y).show();
13
+ }
14
+
15
+ function applytonext(x,y) {
16
+ jQuery('#mks'+x).hide();
17
+ jQuery('#mks'+y).show();
18
+ }
19
+ </script>
20
+
21
+
22
+ <style type="text/css">
23
+ .blankdiv{background-color:#000;
24
+ position:fixed;
25
+ z-index: 9001;
26
+ top:0px; height:100%;
27
+ left:0px;
28
+ width:100%; opacity: 0.65;
29
+ filter:alpha(opacity=65);}
30
+
31
+ #popupform{height: 100%;
32
+ left: 0;
33
+ padding: 15px;
34
+ position: fixed;
35
+ top: 0;
36
+ width:97%;
37
+ z-index: 10001;
38
+ }
39
+
40
+ #popupform .applyform{position:relative; overflow:auto;
41
+ background-color:#fff;
42
+ width:510px;
43
+ height:500px; margin:5% auto auto auto;
44
+ z-index: 9002; padding:10px; border:10px solid #7F3814; }
45
+
46
+
47
+ #pclose{
48
+
49
+
50
+ cursor: pointer;
51
+ height: 25px;
52
+ margin: 5% auto -6%;
53
+ position: relative;
54
+ right: -276px;
55
+
56
+ top: 0;
57
+ width: 25px;
58
+ z-index: 9999;}
59
+ </style>
60
+
61
+ <h4><?php echo $this->__('Image Gallery') ?></h4>
62
+ <?php
63
+ $i = 0;
64
+ $collection = Mage::getModel('imagegallery/imagegallery')->getCollection();
65
+ $collection->setPageSize(25);
66
+ $collection->setCurPage(10);
67
+ $size = $collection->getSize();
68
+ $nr = count($collection);
69
+
70
+
71
+ if (isset($_GET['pn'])) { // Get pn from URL vars if it is present
72
+ $pn = preg_replace('#[^0-9]#i', '', $_GET['pn']); // filter everything but numbers for security(new)
73
+ //$pn = ereg_replace("[^0-9]", "", $_GET['pn']); // filter everything but numbers for security(deprecated)
74
+ } else { // If the pn URL variable is not present force it to be value of page number 1
75
+ $pn = 1;
76
+ }
77
+ //This is where we set how many database items to show on each page
78
+ $itemsPerPage = 3;
79
+ // Get the value of the last page in the pagination result set
80
+ $lastPage = ceil($nr / $itemsPerPage);
81
+ // Be sure URL variable $pn(page number) is no lower than page 1 and no higher than $lastpage
82
+ if ($pn < 1) { // If it is less than 1
83
+ $pn = 1; // force if to be 1
84
+ } else if ($pn > $lastPage) { // if it is greater than $lastpage
85
+ $pn = $lastPage; // force it to be $lastpage's value
86
+ }
87
+ // This creates the numbers to click in between the next and back buttons
88
+ // This section is explained well in the video that accompanies this script
89
+ $centerPages = "";
90
+ $sub1 = $pn - 1;
91
+ $sub2 = $pn - 2;
92
+ $add1 = $pn + 1;
93
+ $add2 = $pn + 2;
94
+ if ($pn == 1) {
95
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
96
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> &nbsp;';
97
+ } else if ($pn == $lastPage) {
98
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> &nbsp;';
99
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
100
+ } else if ($pn > 2 && $pn < ($lastPage - 1)) {
101
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub2 . '">' . $sub2 . '</a> &nbsp;';
102
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> &nbsp;';
103
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
104
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> &nbsp;';
105
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add2 . '">' . $add2 . '</a> &nbsp;';
106
+ } else if ($pn > 1 && $pn < $lastPage) {
107
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> &nbsp;';
108
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
109
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> &nbsp;';
110
+ }
111
+ // This line sets the "LIMIT" range... the 2 values we place to choose a range of rows from database in our query
112
+ $limit = 'LIMIT ' .($pn - 1) * $itemsPerPage .',' .$itemsPerPage;
113
+ // Now we are going to run the same query as above but this time add $limit onto the end of the SQL syntax
114
+ // $sql2 is what we will use to fuel our while loop statement below
115
+ $collection = Mage::getModel('imagegallery/imagegallery')->getCollection();
116
+ $paginationDisplay = ""; // Initialize the pagination output variable
117
+ // This code runs only if the last page variable is ot equal to 1, if it is only 1 page we require no paginated links to display
118
+ if ($lastPage != "1"){
119
+ // This shows the user what page they are on, and the total number of pages
120
+ $paginationDisplay .= 'Page <strong>' . $pn . '</strong> of ' . $lastPage. '&nbsp; &nbsp; &nbsp; ';
121
+ // If we are not on page 1 we can place the Back button
122
+ if ($pn != 1) {
123
+ $previous = $pn - 1;
124
+ $paginationDisplay .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $previous . '"> Back</a> ';
125
+ }
126
+ // Lay in the clickable numbers display here between the Back and Next links
127
+ $paginationDisplay .= '<span class="paginationNumbers">' . $centerPages . '</span>';
128
+ // If we are not on the very last page we can place the Next button
129
+ if ($pn != $lastPage) {
130
+ $nextPage = $pn + 1;
131
+ $paginationDisplay .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $nextPage . '"> Next</a> ';
132
+ }
133
+ }
134
+
135
+ ?>
136
+
137
+ <div style="margin-left:58px; margin-right:58px; padding:6px; background-color:#FFF; border:#999 1px solid;"><?php echo $paginationDisplay; ?></div>
138
+
139
+ <?php
140
+
141
+ $vz=1;
142
+ foreach ($collection as $item)
143
+ {
144
+ $i = $i+1;
145
+ $item->setTitle($i);
146
+ // echo $item->getTitle();
147
+ // echo $filename = $item-> getFilename();
148
+ $filenaeme = $item-> getFilename();
149
+ $outputList = '';
150
+ ?>
151
+
152
+ <?php $media_url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA); ?>
153
+
154
+
155
+ <div style="float:left;border: 1px solid;
156
+ margin: 5px;">
157
+ <a href="javascript:void(0)" onclick="applyto('<?php echo $vz; ?>')"><img src="<?php echo $media_url.$filenaeme; ?>" height="100" width="100"/></a>
158
+ </div>
159
+ <div id="mks<?php echo $vz; ?>" style="display:none">
160
+ <div id="popupform">
161
+ <div class="blankdiv"></div>
162
+ <div id="pclose" onclick="javascript:document.getElementById('<?php echo 'mks'.$vz; ?>').style.display='none'">
163
+ <img src="<?php echo $this->getSkinUrl('images/close.png'); ?>" />
164
+ </div>
165
+ <div class="applyform">
166
+ <p id="contactArea">
167
+ <center>
168
+ <a href="javascript:void(0)" onclick="applytoprev('<?php echo $vz; ?>' ,'<?php echo $vz-1; ?>')"><img src="<?php echo $this->getSkinUrl('images/left_1.png'); ?>" /></a><?php echo $vz; ?>
169
+ <img src="<?php echo $media_url.$filenaeme; ?>" height="450" width="450" align="center"/>
170
+ <a href="javascript:void(0)" onclick="applytonext('<?php echo $vz; ?>' ,'<?php echo $vz+1; ?>')"><img src="<?php echo $this->getSkinUrl('images/right_1.png'); ?>" /></a>
171
+ </center>
172
+ </p>
173
+ </div>
174
+ </div>
175
+ </div>
176
+ <?php
177
+ $vz++;}
178
+ $collection->walk('save');
179
+ ?>
180
+ <div style="margin-left:64px; margin-right:64px;">
181
+ <h2>Total Items: <?php echo $nr; ?></h2>
182
+ </div>
183
+
184
+ <div style="margin-left:64px; margin-right:64px;"><?php print "$outputList"; ?></div>
185
+ <div style="margin-left:58px; margin-right:58px; padding:6px; background-color:#FFF; border:#999 1px solid;"><?php echo $paginationDisplay; ?></div>
186
+
187
+
app/design/frontend/default/default/template/imagegallery/copy of imagegallery.phtml ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <h4><?php echo $this->__('Image Gallery') ?></h4>
2
+ <?php
3
+
4
+ /*
5
+ This shows how to load specific fields from a record in the database.
6
+ 1) Note the load(15), this corresponds to saying "select * from table where table_id = 15"
7
+ 2) You can then just use the get(fieldname) to pull specific data from the table.
8
+ 3) If you have a field named news_id, then it becomes getNewsId, etc.
9
+ */
10
+ /*
11
+ $news = Mage::getModel('imagegallery/imagegallery')->load(15);
12
+ echo $news->getNewsId();
13
+ echo $news->getTitle();
14
+ echo $news->getContent();
15
+ echo $news->getStatus();
16
+ */
17
+
18
+ /*
19
+ This shows an alternate way of loading datas from a record using the database the "Magento Way" (using blocks and controller).
20
+ Uncomment blocks in /app/code/local/Namespace/Module/controllers/IndexController.php if you want to use it.
21
+
22
+ */
23
+ /*
24
+ $object = $this->getImagegallery();
25
+ echo 'id: '.$object['test_id'].'<br/>';
26
+ echo 'title: '.$object['title'].'<br/>';
27
+ echo 'content: '.$object['content'].'<br/>';
28
+ echo 'status: '.$object['status'].'<br/>';
29
+ */
30
+
31
+
32
+ /*
33
+ This shows how to load multiple rows in a collection and save a change to them.
34
+ 1) The setPageSize function will load only 5 records per page and you can set the current Page with the setCurPage function.
35
+ 2) The $collection->walk('save') allows you to save everything in the collection after all changes have been made.
36
+ */
37
+ /*
38
+ $i = 0;
39
+
40
+ $collection = Mage::getModel('imagegallery/imagegallery')->getCollection();
41
+ $collection->setPageSize(5);
42
+ $collection->setCurPage(2);
43
+ $size = $collection->getSize();
44
+ $cnt = count($collection);
45
+ foreach ($collection as $item) {
46
+ $i = $i+1;
47
+ $item->setTitle($i);
48
+ echo $item->getTitle();
49
+ }
50
+
51
+ $collection->walk('save');
52
+ */
53
+
54
+ /*
55
+ This shows how to load a single record and save a change.
56
+ 1) Note the setTitle, this corresponds to the table field name, title, and then you pass it the text to change.
57
+ 2) Call the save() function only on a single record.
58
+ */
59
+ /*
60
+ $object = Mage::getModel('imagegallery/imagegallery')->load(1);
61
+ $object->setTitle('This is a changed title');
62
+ $object->save();
63
+ */
64
+
65
+ ?>
app/design/frontend/default/default/template/imagegallery/imagegallery.phtml ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script src="<?php echo $this->getSkinUrl('js/jquery-1.2.6.noConflict.min.js'); ?>" type="text/javascript" ></script>
2
+ <script type="text/javascript">
3
+
4
+ jQuery.noConflict();
5
+ function applyto(id) {
6
+ var c= '#mks'+id
7
+ jQuery(c).fadeIn(1000);
8
+ }
9
+
10
+ function applytoprev(x,y) {
11
+ jQuery('#mks'+x).hide();
12
+ jQuery('#mks'+y).show();
13
+ }
14
+
15
+ function applytonext(x,y) {
16
+ jQuery('#mks'+x).hide();
17
+ jQuery('#mks'+y).show();
18
+ }
19
+ </script>
20
+
21
+
22
+ <style type="text/css">
23
+ .blankdiv{background-color:#000;
24
+ position:fixed;
25
+ z-index: 9001;
26
+ top:0px; height:100%;
27
+ left:0px;
28
+ width:100%; opacity: 0.65;
29
+ filter:alpha(opacity=65);}
30
+
31
+ #popupform{height: 100%;
32
+ left: 0;
33
+ padding: 15px;
34
+ position: fixed;
35
+ top: 0;
36
+ width:97%;
37
+ z-index: 10001;
38
+ }
39
+
40
+ #popupform .applyform{position:relative; overflow:auto;
41
+ background-color:#fff;
42
+ width:510px;
43
+ height:500px; margin:5% auto auto auto;
44
+ z-index: 9002; padding:10px; border:10px solid #7F3814; }
45
+
46
+
47
+ #pclose{
48
+
49
+
50
+ cursor: pointer;
51
+ height: 25px;
52
+ margin: 5% auto -6%;
53
+ position: relative;
54
+ right: -276px;
55
+
56
+ top: 0;
57
+ width: 25px;
58
+ z-index: 9999;}
59
+ </style>
60
+
61
+ <h4><?php echo $this->__('Image Gallery') ?></h4>
62
+ <?php
63
+ $i = 0;
64
+ $collection = Mage::getModel('imagegallery/imagegallery')->getCollection();
65
+ $collection->setPageSize(25);
66
+ $collection->setCurPage(10);
67
+ $size = $collection->getSize();
68
+ $cnt = count($collection);
69
+ $vz=1;
70
+ foreach ($collection as $item)
71
+ {
72
+ $i = $i+1;
73
+ $item->setTitle($i);
74
+ // echo $item->getTitle();
75
+ // echo $filename = $item-> getFilename();
76
+ $filenaeme = $item-> getFilename();
77
+ ?>
78
+ <?php $media_url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA); ?>
79
+ <div style="float:left;border: 1px solid;
80
+ margin: 5px;">
81
+ <a href="javascript:void(0)" onclick="applyto('<?php echo $vz; ?>')"><img src="<?php echo $media_url.$filenaeme; ?>" height="100" width="100"/></a>
82
+ </div>
83
+ <div id="mks<?php echo $vz; ?>" style="display:none">
84
+ <div id="popupform">
85
+ <div class="blankdiv"></div>
86
+ <div id="pclose" onclick="javascript:document.getElementById('<?php echo 'mks'.$vz; ?>').style.display='none'">
87
+ <img src="<?php echo $this->getSkinUrl('images/close.png'); ?>" />
88
+ </div>
89
+ <div class="applyform">
90
+ <p id="contactArea">
91
+ <center>
92
+ <a href="javascript:void(0)" onclick="applytoprev('<?php echo $vz; ?>' ,'<?php echo $vz-1; ?>')"><img src="<?php echo $this->getSkinUrl('images/left_1.png'); ?>" /></a><?php echo $vz; ?>
93
+ <img src="<?php echo $media_url.$filenaeme; ?>" height="450" width="450" align="center"/>
94
+ <a href="javascript:void(0)" onclick="applytonext('<?php echo $vz; ?>' ,'<?php echo $vz+1; ?>')"><img src="<?php echo $this->getSkinUrl('images/right_1.png'); ?>" /></a>
95
+ </center>
96
+ </p>
97
+ </div>
98
+ </div>
99
+ </div>
100
+ <?php
101
+ $vz++;}
102
+ $collection->walk('save');
103
+ ?>
104
+
105
+
app/design/frontend/default/default/template/imagegallery/ok test.phtml ADDED
@@ -0,0 +1,193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script src="<?php echo $this->getSkinUrl('js/jquery-1.2.6.noConflict.min.js'); ?>" type="text/javascript" ></script>
2
+ <script type="text/javascript">
3
+
4
+ jQuery.noConflict();
5
+ function applyto(id) {
6
+ var c= '#mks'+id
7
+ jQuery(c).fadeIn(1000);
8
+ }
9
+
10
+ function applytoprev(x,y) {
11
+ jQuery('#mks'+x).hide();
12
+ jQuery('#mks'+y).show();
13
+ }
14
+
15
+ function applytonext(x,y) {
16
+ jQuery('#mks'+x).hide();
17
+ jQuery('#mks'+y).show();
18
+ }
19
+ </script>
20
+
21
+
22
+ <style type="text/css">
23
+ .blankdiv{background-color:#000;
24
+ position:fixed;
25
+ z-index: 9001;
26
+ top:0px; height:100%;
27
+ left:0px;
28
+ width:100%; opacity: 0.65;
29
+ filter:alpha(opacity=65);}
30
+
31
+ #popupform{height: 100%;
32
+ left: 0;
33
+ padding: 15px;
34
+ position: fixed;
35
+ top: 0;
36
+ width:97%;
37
+ z-index: 10001;
38
+ }
39
+
40
+ #popupform .applyform{position:relative; overflow:auto;
41
+ background-color:#fff;
42
+ width:510px;
43
+ height:500px; margin:5% auto auto auto;
44
+ z-index: 9002; padding:10px; border:10px solid #7F3814; }
45
+
46
+
47
+ #pclose{
48
+
49
+
50
+ cursor: pointer;
51
+ height: 25px;
52
+ margin: 5% auto -6%;
53
+ position: relative;
54
+ right: -276px;
55
+
56
+ top: 0;
57
+ width: 25px;
58
+ z-index: 9999;}
59
+ </style>
60
+ <?php
61
+
62
+ mysql_connect("localhost","root","") or die (mysql_error());
63
+ mysql_select_db("manv_test") or die (mysql_error());
64
+
65
+ $sql = mysql_query("SELECT * FROM imagegallery");
66
+
67
+ echo $nr = mysql_num_rows($sql); // Get total of Num rows from the database query
68
+ if (isset($_GET['pn'])) { // Get pn from URL vars if it is present
69
+ $pn = preg_replace('#[^0-9]#i', '', $_GET['pn']); // filter everything but numbers for security(new)
70
+
71
+ } else {
72
+ $pn = 1;
73
+ }
74
+
75
+ $itemsPerPage = 15;
76
+
77
+ $lastPage = ceil($nr / $itemsPerPage);
78
+
79
+ if ($pn < 1) { // If it is less than 1
80
+ $pn = 1; // force if to be 1
81
+ } else if ($pn > $lastPage) { // if it is greater than $lastpage
82
+ $pn = $lastPage; // force it to be $lastpage's value
83
+ }
84
+ // This creates the numbers to click in between the next and back buttons
85
+ // This section is explained well in the video that accompanies this script
86
+ $centerPages = "";
87
+ $sub1 = $pn - 1;
88
+ $sub2 = $pn - 2;
89
+ $add1 = $pn + 1;
90
+ $add2 = $pn + 2;
91
+ if ($pn == 1) {
92
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
93
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> &nbsp;';
94
+ } else if ($pn == $lastPage) {
95
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> &nbsp;';
96
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
97
+ } else if ($pn > 2 && $pn < ($lastPage - 1)) {
98
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub2 . '">' . $sub2 . '</a> &nbsp;';
99
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> &nbsp;';
100
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
101
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> &nbsp;';
102
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add2 . '">' . $add2 . '</a> &nbsp;';
103
+ } else if ($pn > 1 && $pn < $lastPage) {
104
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> &nbsp;';
105
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
106
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> &nbsp;';
107
+ }
108
+ // This line sets the "LIMIT" range... the 2 values we place to choose a range of rows from database in our query
109
+ $limit = 'LIMIT ' .($pn - 1) * $itemsPerPage .',' .$itemsPerPage;
110
+ // Now we are going to run the same query as above but this time add $limit onto the end of the SQL syntax
111
+ // $sql2 is what we will use to fuel our while loop statement below
112
+ $sql2 = mysql_query("SELECT * from imagegallery ORDER BY imagegallery_id ASC $limit");
113
+
114
+ $paginationDisplay = ""; // Initialize the pagination output variable
115
+ // This code runs only if the last page variable is ot equal to 1, if it is only 1 page we require no paginated links to display
116
+ if ($lastPage != "1"){
117
+ // This shows the user what page they are on, and the total number of pages
118
+ $paginationDisplay .= 'Page <strong>' . $pn . '</strong> of ' . $lastPage. '&nbsp; &nbsp; &nbsp; ';
119
+ // If we are not on page 1 we can place the Back button
120
+ if ($pn != 1) {
121
+ $previous = $pn - 1;
122
+ $paginationDisplay .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $previous . '"> Back</a> ';
123
+ }
124
+ // Lay in the clickable numbers display here between the Back and Next links
125
+ $paginationDisplay .= '<span class="paginationNumbers">' . $centerPages . '</span>';
126
+ // If we are not on the very last page we can place the Next button
127
+ if ($pn != $lastPage) {
128
+ $nextPage = $pn + 1;
129
+ $paginationDisplay .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $nextPage . '"> Next</a> ';
130
+ }
131
+ }
132
+ ?>
133
+
134
+
135
+ <div style="margin-left:64px; margin-right:64px;">
136
+ <h2>Total Items: <?php echo $nr; ?></h2>
137
+ </div>
138
+
139
+ <div style="margin-left:58px; margin-right:58px; padding:6px; background-color:#FFF; border:#999 1px solid;"><?php echo $paginationDisplay; ?></div>
140
+
141
+ <?php
142
+ $outputList = '';
143
+ $vz=1;
144
+ $i = 0;
145
+ $i = $i+1;
146
+ while($row = mysql_fetch_array($sql2))
147
+ {
148
+
149
+ $id = $row["imagegallery_id"];
150
+ $firstname = $row["content"];
151
+ $country = $row["filename"];
152
+ $media_url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
153
+ $img_src = $media_url.$country;
154
+ ?>
155
+ <div style="margin-left:64px;float:left;">
156
+ <a href="javascript:void(0)" onclick="applyto('<?php echo $vz; ?>')"><img src="<?php echo $img_src; ?>" height="100" width="100"></a>
157
+ </div>
158
+
159
+
160
+
161
+ <div id="mks<?php echo $vz; ?>" style="display:none">
162
+ <div id="popupform">
163
+ <div class="blankdiv"></div>
164
+ <div id="pclose" onclick="javascript:document.getElementById('<?php echo 'mks'.$vz; ?>').style.display='none'">
165
+ <img src="<?php echo $this->getSkinUrl('images/close.png'); ?>" />
166
+ </div>
167
+ <div class="applyform">
168
+ <p id="contactArea">
169
+
170
+ <center>
171
+ <a href="javascript:void(0)" onclick="applytoprev('<?php echo $vz; ?>' ,'<?php echo $vz-1; ?>')"><img src="<?php echo $this->getSkinUrl('images/left_1.png'); ?>" /></a>
172
+ <img src="<?php echo $img_src; ?>" height="400" width="400">
173
+ <a href="javascript:void(0)" onclick="applytonext('<?php echo $vz; ?>' ,'<?php echo $vz+1; ?>')"><img src="<?php echo $this->getSkinUrl('images/right_1.png'); ?>" /></a>
174
+ </center>
175
+
176
+ </p>
177
+ </div>
178
+ </div>
179
+ </div>
180
+ <?php $vz++; }
181
+ ?>
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
app/design/frontend/default/default/template/imagegallery/test.phtml ADDED
@@ -0,0 +1,197 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script src="<?php echo $this->getSkinUrl('imagegallery_js/jquery-1.2.6.noConflict.min.js'); ?>" type="text/javascript" ></script>
2
+ <script type="text/javascript">
3
+
4
+ jQuery.noConflict();
5
+ function applyto(id) {
6
+ var c= '#mks'+id
7
+ jQuery(c).fadeIn(1000);
8
+ }
9
+
10
+ function applytoprev(x,y) {
11
+ jQuery('#mks'+x).hide();
12
+ jQuery('#mks'+y).show();
13
+ }
14
+
15
+ function applytonext(x,y) {
16
+ jQuery('#mks'+x).hide();
17
+ jQuery('#mks'+y).show();
18
+ }
19
+ </script>
20
+
21
+
22
+ <style type="text/css">
23
+ .blankdiv{background-color:#000;
24
+ position:fixed;
25
+ z-index: 9001;
26
+ top:0px; height:100%;
27
+ left:0px;
28
+ width:100%; opacity: 0.65;
29
+ filter:alpha(opacity=65);}
30
+
31
+ #popupform{height: 100%;
32
+ left: 0;
33
+ padding: 15px;
34
+ position: fixed;
35
+ top: 0;
36
+ width:97%;
37
+ z-index: 10001;
38
+ }
39
+
40
+ #popupform .applyform{position:relative; overflow:auto;
41
+ background-color:#fff;
42
+ width:510px;
43
+ height:500px; margin:5% auto auto auto;
44
+ z-index: 9002; padding:10px; border:10px solid #7F3814; }
45
+
46
+
47
+ #pclose{
48
+
49
+
50
+ cursor: pointer;
51
+ height: 25px;
52
+ margin: 5% auto -6%;
53
+ position: relative;
54
+ right: -276px;
55
+
56
+ top: 0;
57
+ width: 25px;
58
+ z-index: 9999;}
59
+ </style>
60
+ <?php
61
+ $connection = Mage::getSingleton('core/resource')->getConnection('core_write');
62
+
63
+
64
+ $sql = $connection->query("select * from imagegallery");
65
+ echo $nr = $connection->fetchOne( 'SELECT COUNT(*) AS count FROM imagegallery' );
66
+ //$sql = mysql_query("SELECT * FROM imagegallery");
67
+
68
+ //echo $nr = mysql_num_rows($sql); // Get total of Num rows from the database query
69
+ if (isset($_GET['pn'])) { // Get pn from URL vars if it is present
70
+ $pn = preg_replace('#[^0-9]#i', '', $_GET['pn']); // filter everything but numbers for security(new)
71
+
72
+ } else {
73
+ $pn = 1;
74
+ }
75
+
76
+ $itemsPerPage = 15;
77
+
78
+ $lastPage = ceil($nr / $itemsPerPage);
79
+
80
+ if ($pn < 1) { // If it is less than 1
81
+ $pn = 1; // force if to be 1
82
+ } else if ($pn > $lastPage) { // if it is greater than $lastpage
83
+ $pn = $lastPage; // force it to be $lastpage's value
84
+ }
85
+ // This creates the numbers to click in between the next and back buttons
86
+ // This section is explained well in the video that accompanies this script
87
+ $centerPages = "";
88
+ $sub1 = $pn - 1;
89
+ $sub2 = $pn - 2;
90
+ $add1 = $pn + 1;
91
+ $add2 = $pn + 2;
92
+ if ($pn == 1) {
93
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
94
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> &nbsp;';
95
+ } else if ($pn == $lastPage) {
96
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> &nbsp;';
97
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
98
+ } else if ($pn > 2 && $pn < ($lastPage - 1)) {
99
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub2 . '">' . $sub2 . '</a> &nbsp;';
100
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> &nbsp;';
101
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
102
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> &nbsp;';
103
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add2 . '">' . $add2 . '</a> &nbsp;';
104
+ } else if ($pn > 1 && $pn < $lastPage) {
105
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> &nbsp;';
106
+ $centerPages .= '&nbsp; <span class="pagNumActive">' . $pn . '</span> &nbsp;';
107
+ $centerPages .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> &nbsp;';
108
+ }
109
+ // This line sets the "LIMIT" range... the 2 values we place to choose a range of rows from database in our query
110
+ $limit = 'LIMIT ' .($pn - 1) * $itemsPerPage .',' .$itemsPerPage;
111
+ // Now we are going to run the same query as above but this time add $limit onto the end of the SQL syntax
112
+ // $sql2 is what we will use to fuel our while loop statement below
113
+ //$sql2 = mysql_query("SELECT * from imagegallery ORDER BY imagegallery_id ASC $limit");
114
+ $sql2 = $connection->query("select * from imagegallery ORDER BY imagegallery_id ASC $limit");
115
+
116
+ $paginationDisplay = ""; // Initialize the pagination output variable
117
+ // This code runs only if the last page variable is ot equal to 1, if it is only 1 page we require no paginated links to display
118
+ if ($lastPage != "1"){
119
+ // This shows the user what page they are on, and the total number of pages
120
+ $paginationDisplay .= 'Page <strong>' . $pn . '</strong> of ' . $lastPage. '&nbsp; &nbsp; &nbsp; ';
121
+ // If we are not on page 1 we can place the Back button
122
+ if ($pn != 1) {
123
+ $previous = $pn - 1;
124
+ $paginationDisplay .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $previous . '"> Back</a> ';
125
+ }
126
+ // Lay in the clickable numbers display here between the Back and Next links
127
+ $paginationDisplay .= '<span class="paginationNumbers">' . $centerPages . '</span>';
128
+ // If we are not on the very last page we can place the Next button
129
+ if ($pn != $lastPage) {
130
+ $nextPage = $pn + 1;
131
+ $paginationDisplay .= '&nbsp; <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $nextPage . '"> Next</a> ';
132
+ }
133
+ }
134
+ ?>
135
+
136
+
137
+ <div style="margin-left:64px; margin-right:64px;">
138
+ <h2>Total Items: <?php echo $nr; ?></h2>
139
+ </div>
140
+
141
+ <div style="margin-left:58px; margin-right:58px; padding:6px; background-color:#FFF; border:#999 1px solid;"><?php echo $paginationDisplay; ?></div>
142
+
143
+ <?php
144
+ $outputList = '';
145
+ $vz=1;
146
+ $i = 0;
147
+ $i = $i+1;
148
+
149
+
150
+ while($row = $sql2->fetch())
151
+ {
152
+
153
+ $id = $row["imagegallery_id"];
154
+ $firstname = $row["content"];
155
+ $country = $row["filename"];
156
+ $media_url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
157
+ $img_src = $media_url.$country;
158
+ ?>
159
+ <div style="margin-left:64px;float:left;">
160
+ <a href="javascript:void(0)" onclick="applyto('<?php echo $vz; ?>')"><img src="<?php echo $img_src; ?>" height="100" width="100"></a>
161
+ </div>
162
+
163
+
164
+
165
+ <div id="mks<?php echo $vz; ?>" style="display:none">
166
+ <div id="popupform">
167
+ <div class="blankdiv"></div>
168
+ <div id="pclose" onclick="javascript:document.getElementById('<?php echo 'mks'.$vz; ?>').style.display='none'">
169
+ <img src="<?php echo $this->getSkinUrl('images/imagegallery_images/close.png'); ?>" />
170
+ </div>
171
+ <div class="applyform">
172
+ <p id="contactArea">
173
+
174
+ <center>
175
+ <a href="javascript:void(0)" onclick="applytoprev('<?php echo $vz; ?>' ,'<?php echo $vz-1; ?>')"><img src="<?php echo $this->getSkinUrl('images/imagegallery_images/left_1.png'); ?>" /></a>
176
+ <img src="<?php echo $img_src; ?>" height="400" width="400">
177
+ <a href="javascript:void(0)" onclick="applytonext('<?php echo $vz; ?>' ,'<?php echo $vz+1; ?>')"><img src="<?php echo $this->getSkinUrl('images/imagegallery_images/right_1.png'); ?>" /></a>
178
+ </center>
179
+
180
+ </p>
181
+ </div>
182
+ </div>
183
+ </div>
184
+ <?php $vz++; }
185
+ ?>
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
app/etc/modules/Manv_Imagegallery.xml ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * @category Manv
5
+ * @package Manv_Imagegallery
6
+ * @author ModuleCreator
7
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
8
+ */
9
+ -->
10
+ <config>
11
+ <modules>
12
+ <Manv_Imagegallery>
13
+ <active>true</active>
14
+ <codePool>local</codePool>
15
+ </Manv_Imagegallery>
16
+ </modules>
17
+ </config>
package.xml ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>manv_imagegallery</name>
4
+ <version>1.0.0.1</version>
5
+ <stability>stable</stability>
6
+ <license>OSL</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>magento product Image gallery : is a brilliant concept for adding a gallery for product page . This module will convert your addition product images as per the slideshow / gallery style . This module is super slick and useful </summary>
10
+ <description>magento product Image gallery : is a brilliant concept for adding a gallery for product page . This module will convert your addition product images as per the slideshow / gallery style . This module is super slick and useful </description>
11
+ <notes>magento product Image gallery : is a brilliant concept for adding a gallery for product page . This module will convert your addition product images as per the slideshow / gallery style . This module is super slick and useful </notes>
12
+ <authors><author><name>Manvendra Sharma</name><user>sharmamanvendra</user><email>sharmamanvendra6@gmail.com</email></author></authors>
13
+ <date>2013-12-17</date>
14
+ <time>09:33:37</time>
15
+ <contents><target name="magelocal"><dir name="Manv"><dir name="Imagegallery"><dir name="Block"><dir name="Adminhtml"><dir name="Imagegallery"><dir name="Edit"><file name="Form.php" hash="31cf6c34c3446d7b7d38d5a38b2696cc"/><dir name="Tab"><file name="Form.php" hash="1b206918f15121c53106c902637d7994"/></dir><file name="Tabs.php" hash="d6023961439b40d3e3533dacf5ca4411"/></dir><file name="Edit.php" hash="bdc230fd01268d97b4361d5c2ce06828"/><file name="Grid.php" hash="e18dd220b7bfd74f56a114fb30a89ce2"/></dir><file name="Imagegallery.php" hash="d3e32f439b266f0b325eacb075b4a6e6"/></dir><file name="Imagegallery.php" hash="19d4ccd21057a08ed0533f8c74ae291f"/></dir><dir name="Helper"><file name="Data.php" hash="61af75ebaa8b0d8e5fd745fa97ec6527"/></dir><dir name="Model"><file name="Imagegallery.php" hash="32f1af393f7df45297ca9fb331937f56"/><dir name="Mysql4"><dir name="Imagegallery"><file name="Collection.php" hash="787daa0b6e614631cac41651eea6a635"/></dir><file name="Imagegallery.php" hash="63189d9b4b4e7897b5dc79d94cb61f4e"/></dir><file name="Status.php" hash="d5f7ee99ac39ea777accfb826ae46e66"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ImagegalleryController.php" hash="f236380300ea6bf8706999437b24dc4a"/></dir><file name="IndexController.php" hash="c14a01ac59ed22f5a2eb7af5871bd2c5"/></dir><dir name="etc"><file name="config.xml" hash="5bead007fcd5728f7f2174cf2f02db1a"/></dir><dir name="sql"><dir name="imagegallery_setup"><file name="mysql4-install-0.1.0.php" hash="ba63d30d344610a134f764aa976c0bd8"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="template"><dir name="imagegallery"><file name="16.11.2013.test.phtml" hash="6dd6754eb860c4746fa0125a9405ec82"/><file name="16.12.2013.imagegallery.phtml" hash="57f8b751d424987ac440106863993149"/><file name="17.12.2013.test.phtml" hash="faa0d0c1393aada84dd61a6a6b4bcdec"/><file name="copy of imagegallery.phtml" hash="e2cdcc6a2c49a5e2e8be9b97ae4dad08"/><file name="imagegallery.phtml" hash="57f8b751d424987ac440106863993149"/><file name="ok test.phtml" hash="264e1472ce570cc397cdc430ca23f5e9"/><file name="test.phtml" hash="e37963760fd64c5bb67dcd2607733273"/></dir></dir><dir name="layout"><file name="imagegallery.xml" hash="54a50f9f3a7dfa8e094c6f4a8f735540"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="imagegallery.xml" hash="3b887015bdb7c0dce4a89f72bf160b3f"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="default"><dir name="default"><dir name="images"><dir name="imagegallery_images"><file name="close.png" hash="7e1e4fe9697be548050b612c84df15d7"/><file name="left_1.png" hash="70604f05151344b82eb8727bf917d992"/><file name="right_1.png" hash="8d90f2d7ba1b5ff56e093c5c48950cfd"/></dir></dir><dir name="imagegallery_js"><file name="jquery-1.2.6.noConflict.min.js" hash="34c0f327c9bd8215df7206bf57c2868f"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Manv_Imagegallery.xml" hash="61c1299be32d64f49a3e6bc26f21e0c7"/></dir></target></contents>
16
+ <compatible/>
17
+ <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
18
+ </package>
skin/frontend/default/default/imagegallery_js/jquery-1.2.6.noConflict.min.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery 1.2.6 - New Wave Javascript
3
+ *
4
+ * Copyright (c) 2008 John Resig (jquery.com)
5
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
6
+ * and GPL (GPL-LICENSE.txt) licenses.
7
+ *
8
+ * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
9
+ * $Rev: 5685 $
10
+ */
11
+
12
+
13
+ (function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
14
+ return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
15
+ return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
16
+ selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
17
+ return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
18
+ this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
19
+ return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
20
+ jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&&copy&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
21
+ script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
22
+ for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
23
+ for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
24
+ jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
25
+ ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&&notxml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
26
+ while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
27
+ while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
28
+ for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
29
+ jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
30
+ xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
31
+ jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
32
+ for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
33
+ s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
34
+ e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();
35
+
36
+ jQuery.noConflict();
skin/frontend/default/default/images/imagegallery_images/close.png ADDED
Binary file
skin/frontend/default/default/images/imagegallery_images/left_1.png ADDED
Binary file
skin/frontend/default/default/images/imagegallery_images/right_1.png ADDED
Binary file