Version Notes
Free Version of the Featured Popup.
Download this release
Release Info
Developer | Magento Core Team |
Extension | toogas_featured_popup_free_version |
Version | 1.0.0 |
Comparing to | |
See all releases |
Version 1.0.0
- app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup.php +29 -0
- app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup/Edit.php +59 -0
- app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup/Edit/Form.php +33 -0
- app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup/Edit/Tab/Form.php +106 -0
- app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup/Edit/Tab/Formdate.php +63 -0
- app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup/Edit/Tab/Formpopup.php +61 -0
- app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup/Edit/Tabs.php +55 -0
- app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup/Grid.php +154 -0
- app/code/local/Toogas/Featuredpopup/Block/Featuredpopup.php +96 -0
- app/code/local/Toogas/Featuredpopup/Helper/Data.php +30 -0
- app/code/local/Toogas/Featuredpopup/Model/Featuredpopup.php +25 -0
- app/code/local/Toogas/Featuredpopup/Model/Mysql4/Featuredpopup.php +105 -0
- app/code/local/Toogas/Featuredpopup/Model/Mysql4/Featuredpopup/Collection.php +51 -0
- app/code/local/Toogas/Featuredpopup/controllers/Adminhtml/FeaturedpopupController.php +228 -0
- app/code/local/Toogas/Featuredpopup/etc/config.xml +163 -0
- app/code/local/Toogas/Featuredpopup/etc/system.xml +51 -0
- app/code/local/Toogas/Featuredpopup/readme.txt +23 -0
- app/code/local/Toogas/Featuredpopup/sql/featuredpopup_setup/mysql4-install-0.1.0.php +56 -0
- app/code/local/Toogas/Featuredpopup/toogas_license-free.txt +68 -0
- app/code/local/Toogas/Toogaslda/Block/Adminhtml/System/Config/Fieldset/Toogas.php +27 -0
- app/code/local/Toogas/Toogaslda/Helper/Data.php +23 -0
- app/code/local/Toogas/Toogaslda/etc/config.xml +70 -0
- app/code/local/Toogas/Toogaslda/etc/system.xml +47 -0
- app/design/adminhtml/default/default/layout/featuredpopup.xml +25 -0
- app/design/adminhtml/default/default/template/toogas_toogaslda/system/config/fieldset/toogas.phtml +47 -0
- app/design/frontend/base/default/layout/toogas_featuredpopup.xml +33 -0
- app/design/frontend/base/default/template/toogas_featuredpopup/featuredpopup.phtml +72 -0
- app/etc/modules/Toogas_Featuredpopup.xml +9 -0
- app/locale/en_GB/Toogas_Featuredpopup.csv +35 -0
- app/locale/en_GB/Toogas_Toogaslda.csv +3 -0
- app/locale/en_US/Toogas_Featuredpopup.csv +35 -0
- app/locale/en_US/Toogas_Toogaslda.csv +3 -0
- app/locale/es_ES/Toogas_Featuredpopup.csv +35 -0
- app/locale/es_ES/Toogas_Toogaslda.csv +3 -0
- app/locale/pt_BR/Toogas_Featuredpopup.csv +35 -0
- app/locale/pt_BR/Toogas_Toogaslda.csv +3 -0
- app/locale/pt_PT/Toogas_Featuredpopup.csv +35 -0
- app/locale/pt_PT/Toogas_Toogaslda.csv +3 -0
- js/toogas/featuredpopup/js/window.js +305 -0
- js/toogas/featuredpopup/js/window_orig.js +1843 -0
- js/toogas/slideshow/slideshow.js +45 -0
- js/toogas/slideshow/slideshow.js~ +45 -0
- package.xml +20 -0
- skin/adminhtml/default/default/images/toogas/Featuredpopup/featured_popup.gif +0 -0
- skin/adminhtml/default/default/images/toogas/toogas_logo.jpg +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default.css +73 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/bottom_left.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/bottom_mid.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/bottom_right.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/bottom_right_resize.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/center_left.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/center_right.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/clear.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/close.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/inspect.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/maximize.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/minimize.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/overlay.png +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/resize.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/sizer.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/top_left.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/top_mid.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/default/top_right.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/B.png +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/BL.png +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/BR.png +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/B_Main.png +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/L.png +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/L_Main.png +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/R.png +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/R_Main.png +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/T.png +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/TL.png +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/TL_Main.png +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/TR.png +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/TR_Main.png +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/T_Main.png +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/close.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/maximize.gif +0 -0
- skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/minimize.gif +0 -0
app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup.php
ADDED
@@ -0,0 +1,29 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Featuredpopup_Block_Adminhtml_Featuredpopup extends Mage_Adminhtml_Block_Widget_Grid_Container
|
18 |
+
{
|
19 |
+
public function __construct()
|
20 |
+
{
|
21 |
+
|
22 |
+
$this->_controller = 'adminhtml_featuredpopup';
|
23 |
+
$this->_blockGroup = 'featuredpopup';
|
24 |
+
$this->_headerText = Mage::helper('featuredpopup')
|
25 |
+
->__('Featured Popup (Free) <a target=_blank href="http://www.toogas.com/featured-pop-up.html">Click here for the Pro Version</a>');
|
26 |
+
$this->_addButtonLabel = Mage::helper('featuredpopup')->__('Add Featured Popup');
|
27 |
+
parent::__construct();
|
28 |
+
}
|
29 |
+
}
|
app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup/Edit.php
ADDED
@@ -0,0 +1,59 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Featuredpopup_Block_Adminhtml_Featuredpopup_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
|
18 |
+
{
|
19 |
+
public function __construct()
|
20 |
+
{
|
21 |
+
parent::__construct();
|
22 |
+
|
23 |
+
$this->_objectId = 'id';
|
24 |
+
$this->_blockGroup = 'featuredpopup';
|
25 |
+
$this->_controller = 'adminhtml_featuredpopup';
|
26 |
+
|
27 |
+
$this->_updateButton('save', 'label', Mage::helper('featuredpopup')->__('Save'));
|
28 |
+
$this->_updateButton('delete', 'label', Mage::helper('featuredpopup')->__('Delete'));
|
29 |
+
|
30 |
+
$this->_addButton('saveandcontinue', array(
|
31 |
+
'label' => Mage::helper('adminhtml')->__('Save And Continue Edit'),
|
32 |
+
'onclick' => 'saveAndContinueEdit()',
|
33 |
+
'class' => 'save',
|
34 |
+
), -100);
|
35 |
+
|
36 |
+
$this->_formScripts[] = "
|
37 |
+
function toggleEditor() {
|
38 |
+
if (tinyMCE.getInstanceById('featuredpopup_content') == null) {
|
39 |
+
tinyMCE.execCommand('mceAddControl', false, 'featuredpopup_content');
|
40 |
+
} else {
|
41 |
+
tinyMCE.execCommand('mceRemoveControl', false, 'featuredpopup_content');
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
function saveAndContinueEdit(){
|
46 |
+
editForm.submit($('edit_form').action+'back/edit/');
|
47 |
+
}
|
48 |
+
";
|
49 |
+
}
|
50 |
+
|
51 |
+
public function getHeaderText()
|
52 |
+
{
|
53 |
+
if( Mage::registry('featuredpopup_data') && Mage::registry('featuredpopup_data')->getId() ) {
|
54 |
+
return Mage::helper('featuredpopup')->__("Edit '%s'. (Free) <a target=_blank href=\"http://www.toogas.com/featured-pop-up.html\">Click here for the Pro Version</a>", $this->htmlEscape(Mage::registry('featuredpopup_data')->getPopupName()));
|
55 |
+
} else {
|
56 |
+
return Mage::helper('featuredpopup')->__('New Featured Popup (Free) <a target=_blank href="http://www.toogas.com/featured-pop-up.html">Click here for the Pro Version</a>');
|
57 |
+
}
|
58 |
+
}
|
59 |
+
}
|
app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup/Edit/Form.php
ADDED
@@ -0,0 +1,33 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Featuredpopup_Block_Adminhtml_Featuredpopup_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
|
18 |
+
{
|
19 |
+
protected function _prepareForm()
|
20 |
+
{
|
21 |
+
$form = new Varien_Data_Form(array(
|
22 |
+
'id' => 'edit_form',
|
23 |
+
'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
|
24 |
+
'method' => 'post',
|
25 |
+
'enctype' => 'multipart/form-data'
|
26 |
+
)
|
27 |
+
);
|
28 |
+
|
29 |
+
$form->setUseContainer(true);
|
30 |
+
$this->setForm($form);
|
31 |
+
return parent::_prepareForm();
|
32 |
+
}
|
33 |
+
}
|
app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup/Edit/Tab/Form.php
ADDED
@@ -0,0 +1,106 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Featuredpopup_Block_Adminhtml_Featuredpopup_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
|
18 |
+
{
|
19 |
+
protected function _prepareForm()
|
20 |
+
{
|
21 |
+
$form = new Varien_Data_Form();
|
22 |
+
|
23 |
+
$model = Mage::registry('featuredpopup_data'); //importante nas abas pa saber onde grava
|
24 |
+
|
25 |
+
|
26 |
+
$fieldset = $form->addFieldset('featuredpopup_form',
|
27 |
+
array('legend'=>Mage::helper('featuredpopup')->__('Featured Popup (Free)')));
|
28 |
+
|
29 |
+
$fieldset->addField('popup_name', 'text', array(
|
30 |
+
'label' => Mage::helper('featuredpopup')->__('Name'),
|
31 |
+
'class' => 'required-entry',
|
32 |
+
'required' => true,
|
33 |
+
'name' => 'popup_name',
|
34 |
+
'maxlength' => '30'
|
35 |
+
));
|
36 |
+
|
37 |
+
|
38 |
+
$fieldset->addField('image_link', 'image', array(
|
39 |
+
'label' => Mage::helper('featuredpopup')->__('Popup Image'),
|
40 |
+
'class' => 'required-entry',
|
41 |
+
'required' => true,
|
42 |
+
'name' => 'image_link',
|
43 |
+
));
|
44 |
+
|
45 |
+
$fieldset->addField('width_image', 'text', array(
|
46 |
+
'label' => Mage::helper('featuredpopup')->__('Width Image'),
|
47 |
+
'class' => 'required-entry validate-digits',
|
48 |
+
'required' => true,
|
49 |
+
'name' => 'width_image',
|
50 |
+
));
|
51 |
+
|
52 |
+
$fieldset->addField('height_image', 'text', array(
|
53 |
+
'label' => Mage::helper('featuredpopup')->__('Height Image'),
|
54 |
+
'class' => 'required-entry validate-digits',
|
55 |
+
'required' => true,
|
56 |
+
'name' => 'height_image',
|
57 |
+
));
|
58 |
+
|
59 |
+
$fieldset->addField('url_link', 'text', array(
|
60 |
+
'label' => Mage::helper('featuredpopup')->__('Url'),
|
61 |
+
'name' => 'url_link',
|
62 |
+
));
|
63 |
+
|
64 |
+
$fieldset->addField('is_active', 'select', array(
|
65 |
+
'label' => Mage::helper('featuredpopup')->__('Status'),
|
66 |
+
'options' => $this->helper('featuredpopup/data')->sacaStatus(),
|
67 |
+
'class' => 'required-entry',
|
68 |
+
'required' => true,
|
69 |
+
'name' => 'is_active',
|
70 |
+
));
|
71 |
+
|
72 |
+
|
73 |
+
if (!Mage::app()->isSingleStoreMode()) {
|
74 |
+
$fieldset->addField('store_id', 'multiselect', array(
|
75 |
+
'name' => 'stores[]',
|
76 |
+
'label' => Mage::helper('featuredpopup')->__('Store View'),
|
77 |
+
'title' => Mage::helper('featuredpopup')->__('Store View'),
|
78 |
+
'required' => true,
|
79 |
+
'values' => Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm(false, true),
|
80 |
+
));
|
81 |
+
}
|
82 |
+
else {
|
83 |
+
$fieldset->addField('store_id', 'hidden', array(
|
84 |
+
'name' => 'stores[]',
|
85 |
+
'value' => Mage::app()->getStore(true)->getId()
|
86 |
+
));
|
87 |
+
//$model->setStoreId(Mage::app()->getStore(true)->getId()); //isto nao devera ser necessario para este caso
|
88 |
+
}
|
89 |
+
|
90 |
+
if ( Mage::getSingleton('adminhtml/session')->getFeaturedpopupData() )
|
91 |
+
{
|
92 |
+
$form->setValues(Mage::getSingleton('adminhtml/session')->getFeaturedpopupData());
|
93 |
+
Mage::getSingleton('adminhtml/session')->setFeaturedpopupData(null);
|
94 |
+
} elseif ( Mage::registry('featuredpopup_data') ) {
|
95 |
+
$form->setValues(Mage::registry('featuredpopup_data')->getData());
|
96 |
+
}
|
97 |
+
$form->setValues($model->getData()); //coloquei
|
98 |
+
$this->setForm($form);
|
99 |
+
|
100 |
+
return parent::_prepareForm();
|
101 |
+
}
|
102 |
+
|
103 |
+
|
104 |
+
|
105 |
+
|
106 |
+
}
|
app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup/Edit/Tab/Formdate.php
ADDED
@@ -0,0 +1,63 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Featuredpopup_Block_Adminhtml_Featuredpopup_Edit_Tab_Formdate extends Mage_Adminhtml_Block_Widget_Form
|
18 |
+
|
19 |
+
{
|
20 |
+
protected function _prepareForm()
|
21 |
+
{
|
22 |
+
$form = new Varien_Data_Form();
|
23 |
+
|
24 |
+
$model = Mage::registry('featuredpopup_data');
|
25 |
+
|
26 |
+
$fieldset = $form->addFieldset('featuredpopup_date', array('legend'=>Mage::helper('featuredpopup')->__('Date Settings')));
|
27 |
+
|
28 |
+
$outputFormat = Mage::app()->getLocale()->getDateTimeFormat(Mage_Core_Model_Locale::FORMAT_TYPE_MEDIUM);
|
29 |
+
|
30 |
+
|
31 |
+
$fieldset->addField('from_date', 'date',array(
|
32 |
+
'name' => 'from_date',
|
33 |
+
'time' => true,
|
34 |
+
'class' => 'required-entry',
|
35 |
+
'required' => true,
|
36 |
+
'format' => $this->escDates(),
|
37 |
+
'label' => Mage::helper('featuredpopup')->__('From:'),
|
38 |
+
'image' => $this->getSkinUrl('images/grid-cal.gif')
|
39 |
+
));
|
40 |
+
|
41 |
+
$fieldset->addField('to_date', 'date',array(
|
42 |
+
'name' => 'to_date',
|
43 |
+
'time' => true,
|
44 |
+
'class' => 'required-entry',
|
45 |
+
'required' => true,
|
46 |
+
'format' => $this->escDates(),
|
47 |
+
'label' => Mage::helper('featuredpopup')->__('To:'),
|
48 |
+
'image' => $this->getSkinUrl('images/grid-cal.gif')
|
49 |
+
));
|
50 |
+
|
51 |
+
$form->setValues($model->getData());
|
52 |
+
|
53 |
+
$this->setForm($form);
|
54 |
+
return parent::_prepareForm();
|
55 |
+
}
|
56 |
+
|
57 |
+
|
58 |
+
private function escDates() {
|
59 |
+
return 'yyyy-MM-dd HH:mm:ss';
|
60 |
+
}
|
61 |
+
|
62 |
+
|
63 |
+
}
|
app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup/Edit/Tab/Formpopup.php
ADDED
@@ -0,0 +1,61 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Featuredpopup_Block_Adminhtml_Featuredpopup_Edit_Tab_Formpopup extends Mage_Adminhtml_Block_Widget_Form
|
18 |
+
|
19 |
+
{
|
20 |
+
protected function _prepareForm()
|
21 |
+
{
|
22 |
+
$form = new Varien_Data_Form();
|
23 |
+
|
24 |
+
$model = Mage::registry('featuredpopup_data');
|
25 |
+
|
26 |
+
$fieldset = $form->addFieldset('featuredpopup_popup', array('legend'=>Mage::helper('featuredpopup')->__('Popup Settings')));
|
27 |
+
|
28 |
+
// TODO: css and js styles to choose here
|
29 |
+
|
30 |
+
$fieldset->addField('delay_start', 'text', array(
|
31 |
+
'label' => Mage::helper('featuredpopup')->__('Delay Start'),
|
32 |
+
'name' => 'delay_start',
|
33 |
+
'class' => 'validate-zero-or-greater',
|
34 |
+
));
|
35 |
+
|
36 |
+
$fieldset->addField('delay_close', 'text', array(
|
37 |
+
'label' => Mage::helper('featuredpopup')->__('Delay Close'),
|
38 |
+
'name' => 'delay_close',
|
39 |
+
'class' => 'validate-zero-or-greater',
|
40 |
+
));
|
41 |
+
|
42 |
+
$fieldset->addField('priority', 'text', array(
|
43 |
+
'label' => Mage::helper('featuredpopup')->__('Priority'),
|
44 |
+
'name' => 'priority',
|
45 |
+
'class' => 'validate-zero-or-greater',
|
46 |
+
));
|
47 |
+
|
48 |
+
$fieldset->addField('opacity', 'text', array(
|
49 |
+
'label' => Mage::helper('featuredpopup')->__('Opacity'),
|
50 |
+
'name' => 'opacity',
|
51 |
+
'class' => 'validate-zero-or-greater',
|
52 |
+
));
|
53 |
+
|
54 |
+
$form->setValues($model->getData());
|
55 |
+
|
56 |
+
$this->setForm($form);
|
57 |
+
return parent::_prepareForm();
|
58 |
+
}
|
59 |
+
|
60 |
+
|
61 |
+
}
|
app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup/Edit/Tabs.php
ADDED
@@ -0,0 +1,55 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Featuredpopup_Block_Adminhtml_Featuredpopup_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
|
18 |
+
{
|
19 |
+
|
20 |
+
public function __construct()
|
21 |
+
{
|
22 |
+
parent::__construct();
|
23 |
+
$this->setId('featuredpopup_tabs');
|
24 |
+
$this->setDestElementId('edit_form');
|
25 |
+
$this->setTitle(Mage::helper('featuredpopup')->__('Featured Popup (Free)'));
|
26 |
+
}
|
27 |
+
|
28 |
+
protected function _beforeToHtml()
|
29 |
+
{
|
30 |
+
$this->addTab('form_section', array(
|
31 |
+
'label' => Mage::helper('featuredpopup')->__('Featured Popup'),
|
32 |
+
'title' => Mage::helper('featuredpopup')->__('Featured Popup'),
|
33 |
+
'content' => $this->getLayout()->createBlock('featuredpopup/adminhtml_featuredpopup_edit_tab_form')->toHtml(),
|
34 |
+
));
|
35 |
+
|
36 |
+
$this->addTab('date_section', array(
|
37 |
+
'label' => Mage::helper('featuredpopup')->__('Date Settings'),
|
38 |
+
'title' => Mage::helper('featuredpopup')->__('Date Settings'),
|
39 |
+
'content' => $this->getLayout()->createBlock('featuredpopup/adminhtml_featuredpopup_edit_tab_formdate')
|
40 |
+
->toHtml(),
|
41 |
+
));
|
42 |
+
|
43 |
+
|
44 |
+
|
45 |
+
$this->addTab('popup_section', array(
|
46 |
+
'label' => Mage::helper('featuredpopup')->__('Popup Settings'),
|
47 |
+
'title' => Mage::helper('featuredpopup')->__('Popup Settings'),
|
48 |
+
'content' => $this->getLayout()->createBlock('featuredpopup/adminhtml_featuredpopup_edit_tab_formpopup')->toHtml(),
|
49 |
+
));
|
50 |
+
|
51 |
+
return parent::_beforeToHtml();
|
52 |
+
}
|
53 |
+
|
54 |
+
|
55 |
+
}
|
app/code/local/Toogas/Featuredpopup/Block/Adminhtml/Featuredpopup/Grid.php
ADDED
@@ -0,0 +1,154 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Featuredpopup_Block_Adminhtml_Featuredpopup_Grid extends Mage_Adminhtml_Block_Widget_Grid
|
18 |
+
{
|
19 |
+
public function __construct()
|
20 |
+
{
|
21 |
+
parent::__construct();
|
22 |
+
$this->setId('featuredpopupGrid');
|
23 |
+
$this->setDefaultSort('featuredpopup_id');
|
24 |
+
$this->setDefaultDir('ASC');
|
25 |
+
$this->setSaveParametersInSession(true);
|
26 |
+
}
|
27 |
+
|
28 |
+
protected function _prepareCollection()
|
29 |
+
{
|
30 |
+
$collection = Mage::getModel('featuredpopup/featuredpopup')->getCollection();
|
31 |
+
$this->setCollection($collection);
|
32 |
+
return parent::_prepareCollection();
|
33 |
+
}
|
34 |
+
|
35 |
+
protected function _prepareColumns()
|
36 |
+
{
|
37 |
+
$this->addColumn('featuredpopup_id', array(
|
38 |
+
'header' => Mage::helper('featuredpopup')->__('ID'),
|
39 |
+
'align' =>'right',
|
40 |
+
'width' => '50px',
|
41 |
+
'index' => 'featuredpopup_id',
|
42 |
+
));
|
43 |
+
|
44 |
+
$this->addColumn('popup_name', array(
|
45 |
+
'header' => Mage::helper('featuredpopup')->__('Name'),
|
46 |
+
'align' =>'left',
|
47 |
+
'index' => 'popup_name',
|
48 |
+
));
|
49 |
+
|
50 |
+
|
51 |
+
$this->addColumn('url_link', array(
|
52 |
+
'header' => Mage::helper('featuredpopup')->__('Link'),
|
53 |
+
'align' =>'left',
|
54 |
+
'index' => 'url_link',
|
55 |
+
));
|
56 |
+
|
57 |
+
$this->addColumn('from_date', array(
|
58 |
+
'header' => Mage::helper('featuredpopup')->__('From:'),
|
59 |
+
'type' => 'datetime',
|
60 |
+
'index' => 'from_date',
|
61 |
+
));
|
62 |
+
|
63 |
+
$this->addColumn('to_date', array(
|
64 |
+
'header' => Mage::helper('featuredpopup')->__('To:'),
|
65 |
+
'type' => 'datetime',
|
66 |
+
'index' => 'to_date',
|
67 |
+
));
|
68 |
+
|
69 |
+
$this->addColumn('is_active', array(
|
70 |
+
'header' => Mage::helper('featuredpopup')->__('Status'),
|
71 |
+
'options' => $this->helper('featuredpopup/data')->sacaStatus(),
|
72 |
+
'type' => 'options',
|
73 |
+
'index' => 'is_active',
|
74 |
+
));
|
75 |
+
|
76 |
+
if (!Mage::app()->isSingleStoreMode()) {
|
77 |
+
$this->addColumn('store_id', array(
|
78 |
+
'header' => Mage::helper('featuredpopup')->__('Store View'),
|
79 |
+
'index' => 'store_id',
|
80 |
+
'type' => 'store',
|
81 |
+
'store_all' => true,
|
82 |
+
'store_view' => true,
|
83 |
+
'sortable' => false,
|
84 |
+
'filter_condition_callback'
|
85 |
+
=> array($this, '_filterStoreCondition'),
|
86 |
+
));
|
87 |
+
}
|
88 |
+
|
89 |
+
|
90 |
+
$this->addColumn('action',
|
91 |
+
array(
|
92 |
+
'header' => Mage::helper('featuredpopup')->__('Action'),
|
93 |
+
'width' => '100',
|
94 |
+
'type' => 'action',
|
95 |
+
'getter' => 'getId',
|
96 |
+
'actions' => array(
|
97 |
+
array(
|
98 |
+
'caption' => Mage::helper('featuredpopup')->__('Edit'),
|
99 |
+
'url' => array('base'=> '*/*/edit'),
|
100 |
+
'field' => 'id'
|
101 |
+
)
|
102 |
+
),
|
103 |
+
'filter' => false,
|
104 |
+
'sortable' => false,
|
105 |
+
'index' => 'stores',
|
106 |
+
'is_system' => true,
|
107 |
+
));
|
108 |
+
|
109 |
+
|
110 |
+
return parent::_prepareColumns();
|
111 |
+
}
|
112 |
+
|
113 |
+
|
114 |
+
|
115 |
+
protected function _afterLoadCollection()
|
116 |
+
{
|
117 |
+
$this->getCollection()->walk('afterLoad');
|
118 |
+
parent::_afterLoadCollection();
|
119 |
+
}
|
120 |
+
|
121 |
+
protected function _filterStoreCondition($collection, $column)
|
122 |
+
{
|
123 |
+
if (!$value = $column->getFilter()->getValue()) {
|
124 |
+
return;
|
125 |
+
}
|
126 |
+
$this->getCollection()->addStoreFilter($value);
|
127 |
+
}
|
128 |
+
|
129 |
+
|
130 |
+
|
131 |
+
|
132 |
+
|
133 |
+
|
134 |
+
protected function _prepareMassaction()
|
135 |
+
{
|
136 |
+
$this->setMassactionIdField('featuredpopup_id');
|
137 |
+
$this->getMassactionBlock()->setFormFieldName('featuredpopup');
|
138 |
+
|
139 |
+
$this->getMassactionBlock()->addItem('delete', array(
|
140 |
+
'label' => Mage::helper('featuredpopup')->__('Delete'),
|
141 |
+
'url' => $this->getUrl('*/*/massDelete'),
|
142 |
+
'confirm' => Mage::helper('featuredpopup')->__('Are you sure?')
|
143 |
+
));
|
144 |
+
|
145 |
+
|
146 |
+
return $this;
|
147 |
+
}
|
148 |
+
|
149 |
+
public function getRowUrl($row)
|
150 |
+
{
|
151 |
+
return $this->getUrl('*/*/edit', array('id' => $row->getId()));
|
152 |
+
}
|
153 |
+
|
154 |
+
}
|
app/code/local/Toogas/Featuredpopup/Block/Featuredpopup.php
ADDED
@@ -0,0 +1,96 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Featuredpopup_Block_Featuredpopup extends Mage_Core_Block_Template {
|
18 |
+
|
19 |
+
public $featuredpopupvar;
|
20 |
+
private $image;
|
21 |
+
private $url = '';
|
22 |
+
private $width_image = 0;
|
23 |
+
private $height_image = 0;
|
24 |
+
private $delay_start = 0;
|
25 |
+
private $delay_close;
|
26 |
+
private $opacity = 0.4;
|
27 |
+
public $okShowPopup = 0;
|
28 |
+
|
29 |
+
public function __construct() {
|
30 |
+
|
31 |
+
if (!$this->helper('featuredpopup')->getSystemStatus()) {
|
32 |
+
return;
|
33 |
+
};
|
34 |
+
|
35 |
+
$magento_now_date = $this->magentoNowDate();
|
36 |
+
$this->featuredpopupvar = Mage :: getModel('featuredpopup/featuredpopup')->getCollection()->addStoreFilter(Mage :: app()->getStore()->getId())->addFilter('is_active', 1)->addFieldToFilter('from_date', array (
|
37 |
+
'datetime' => true,
|
38 |
+
'to' => $magento_now_date
|
39 |
+
))->addFieldToFilter('to_date', array (
|
40 |
+
'datetime' => true,
|
41 |
+
'from' => $magento_now_date
|
42 |
+
))->setOrder('priority');
|
43 |
+
|
44 |
+
foreach ($this->featuredpopupvar as $vars) {
|
45 |
+
|
46 |
+
$this->image = $vars->getImageLink();
|
47 |
+
$this->url = $vars->getUrlLink();
|
48 |
+
$this->width_image = $vars->getWidthImage();
|
49 |
+
$this->height_image = $vars->getHeightImage();
|
50 |
+
$this->delay_start = $vars->getDelayStart();
|
51 |
+
$this->delay_close = $vars->getDelayClose();
|
52 |
+
$this->opacity = $vars->getOpacity();
|
53 |
+
|
54 |
+
$this->okShowPopup = 1;
|
55 |
+
}
|
56 |
+
|
57 |
+
}
|
58 |
+
|
59 |
+
public function _prepareLayout() {
|
60 |
+
return parent :: _prepareLayout();
|
61 |
+
}
|
62 |
+
|
63 |
+
public function obtainImage() {
|
64 |
+
return Mage :: getBaseUrl(Mage_Core_Model_Store :: URL_TYPE_MEDIA) . $this->image;
|
65 |
+
}
|
66 |
+
|
67 |
+
public function obtainUrl() {
|
68 |
+
return $this->url;
|
69 |
+
}
|
70 |
+
|
71 |
+
public function obtainWidthImage() {
|
72 |
+
return (is_numeric($this->width_image) && $this->width_image > 0) ? $this->width_image : 0;
|
73 |
+
}
|
74 |
+
|
75 |
+
public function obtainHeightImage() {
|
76 |
+
return (is_numeric($this->height_image) && $this->height_image > 0) ? $this->height_image : 0;
|
77 |
+
}
|
78 |
+
|
79 |
+
public function obtainDelayStart() {
|
80 |
+
return (is_numeric($this->delay_start) && $this->delay_start > 0) ? $this->delay_start : 0;
|
81 |
+
}
|
82 |
+
|
83 |
+
public function obtainDelayClose() {
|
84 |
+
return (is_numeric($this->delay_close) && $this->delay_close > 0) ? $this->delay_close : 0;
|
85 |
+
}
|
86 |
+
|
87 |
+
public function obtainOpacity() {
|
88 |
+
return (is_numeric($this->opacity) && $this->opacity > 0 && $this->opacity <= 1) ? $this->opacity : 0.4;
|
89 |
+
}
|
90 |
+
|
91 |
+
private function magentoNowDate() {
|
92 |
+
$now = Mage :: getModel('core/date')->timestamp(time());
|
93 |
+
return date('Y-m-d H:i:s', $now);
|
94 |
+
}
|
95 |
+
|
96 |
+
}
|
app/code/local/Toogas/Featuredpopup/Helper/Data.php
ADDED
@@ -0,0 +1,30 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Featuredpopup_Helper_Data extends Mage_Core_Helper_Abstract
|
18 |
+
{
|
19 |
+
|
20 |
+
public function sacaStatus() {
|
21 |
+
return array('0' => Mage::helper('featuredpopup')->__('Disabled'),
|
22 |
+
'1' => Mage::helper('featuredpopup')->__('Enabled'));
|
23 |
+
}
|
24 |
+
|
25 |
+
public function getSystemStatus() {
|
26 |
+
return (bool) Mage::getStoreConfigFlag('toogas_featuredpopup/configfeaturedpopup/featured_popup_enabled');
|
27 |
+
}
|
28 |
+
|
29 |
+
|
30 |
+
}
|
app/code/local/Toogas/Featuredpopup/Model/Featuredpopup.php
ADDED
@@ -0,0 +1,25 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Featuredpopup_Model_Featuredpopup extends Mage_Core_Model_Abstract
|
18 |
+
{
|
19 |
+
public function _construct()
|
20 |
+
{
|
21 |
+
|
22 |
+
parent::_construct();
|
23 |
+
$this->_init('featuredpopup/featuredpopup');
|
24 |
+
}
|
25 |
+
}
|
app/code/local/Toogas/Featuredpopup/Model/Mysql4/Featuredpopup.php
ADDED
@@ -0,0 +1,105 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Featuredpopup_Model_Mysql4_Featuredpopup extends Mage_Core_Model_Mysql4_Abstract
|
18 |
+
{
|
19 |
+
public function _construct()
|
20 |
+
{
|
21 |
+
|
22 |
+
|
23 |
+
$this->_init('featuredpopup/featuredpopup', 'featuredpopup_id');
|
24 |
+
}
|
25 |
+
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Process page data before saving. As validacoes podem ser feitas aqui
|
29 |
+
*
|
30 |
+
* @param Mage_Core_Model_Abstract $object
|
31 |
+
*/
|
32 |
+
protected function _beforeSave(Mage_Core_Model_Abstract $object)
|
33 |
+
{
|
34 |
+
|
35 |
+
//compare from to date
|
36 |
+
if ( strtotime($object->getData('from_date')) > strtotime($object->getData('to_date'))) {
|
37 |
+
Mage::throwException(Mage::helper('featuredpopup')->__('Range of dates wrong'));
|
38 |
+
}
|
39 |
+
|
40 |
+
return $this;
|
41 |
+
}
|
42 |
+
|
43 |
+
|
44 |
+
protected function _afterSave(Mage_Core_Model_Abstract $object)
|
45 |
+
{
|
46 |
+
$condition = $this->_getWriteAdapter()->quoteInto('featured_id = ?', $object->getId());
|
47 |
+
$this->_getWriteAdapter()->delete($this->getTable('toogas_featuredpopup_store'), $condition);
|
48 |
+
|
49 |
+
foreach ((array)$object->getData('stores') as $store) {
|
50 |
+
$storeArray = array();
|
51 |
+
$storeArray['featured_id'] = $object->getId();
|
52 |
+
$storeArray['store_id'] = $store;
|
53 |
+
$this->_getWriteAdapter()->insert($this->getTable('toogas_featuredpopup_store'), $storeArray);
|
54 |
+
}
|
55 |
+
|
56 |
+
return parent::_afterSave($object);
|
57 |
+
}
|
58 |
+
|
59 |
+
|
60 |
+
|
61 |
+
|
62 |
+
protected function _afterLoad(Mage_Core_Model_Abstract $object)
|
63 |
+
{
|
64 |
+
|
65 |
+
$select = $this->_getReadAdapter()->select()
|
66 |
+
->from($this->getTable('toogas_featuredpopup_store'))
|
67 |
+
->where('featured_id = ?', $object->getId());
|
68 |
+
|
69 |
+
if (!Mage::app()->isSingleStoreMode()) {
|
70 |
+
|
71 |
+
if ($data = $this->_getReadAdapter()->fetchAll($select)) {
|
72 |
+
$storesArray = array();
|
73 |
+
foreach ($data as $row) {
|
74 |
+
$storesArray[] = $row['store_id'];
|
75 |
+
}
|
76 |
+
|
77 |
+
$object->setData('store_id', $storesArray);
|
78 |
+
}
|
79 |
+
|
80 |
+
}
|
81 |
+
|
82 |
+
|
83 |
+
else { $object->setData('store_id', Mage::app()->getStore(true)->getId()); }
|
84 |
+
|
85 |
+
|
86 |
+
return parent::_afterLoad($object);
|
87 |
+
}
|
88 |
+
|
89 |
+
protected function _getLoadSelect($field, $value, $object)
|
90 |
+
{
|
91 |
+
$select = parent::_getLoadSelect($field, $value, $object);
|
92 |
+
|
93 |
+
if ($object->getStoreId()) {
|
94 |
+
$select->join(
|
95 |
+
array('cps' => $this->getTable('toogas_featuredpopup_store')),
|
96 |
+
$this->getMainTable().'.featured_id = `cps`.featuredpopup_id'
|
97 |
+
)
|
98 |
+
->where('is_active=1 AND `cps`.store_id in (' . Mage_Core_Model_App::ADMIN_STORE_ID . ', ?) ', $object->getStoreId())
|
99 |
+
->order('store_id DESC')
|
100 |
+
->limit(1);
|
101 |
+
}
|
102 |
+
return $select;
|
103 |
+
}
|
104 |
+
|
105 |
+
}
|
app/code/local/Toogas/Featuredpopup/Model/Mysql4/Featuredpopup/Collection.php
ADDED
@@ -0,0 +1,51 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Featuredpopup_Model_Mysql4_Featuredpopup_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
|
18 |
+
{
|
19 |
+
public function _construct()
|
20 |
+
{
|
21 |
+
parent::_construct();
|
22 |
+
$this->_init('featuredpopup/featuredpopup');
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Add Filter by store
|
27 |
+
*
|
28 |
+
* @param int|Mage_Core_Model_Store $store
|
29 |
+
* @return Mage_Cms_Model_Mysql4_Page_Collection
|
30 |
+
*/
|
31 |
+
public function addStoreFilter($store, $withAdmin = true)
|
32 |
+
{
|
33 |
+
|
34 |
+
if ($store instanceof Mage_Core_Model_Store) {
|
35 |
+
$store = array($store->getId());
|
36 |
+
}
|
37 |
+
|
38 |
+
$this->getSelect()->join(
|
39 |
+
array('store_table' => $this->getTable('toogas_featuredpopup_store')),
|
40 |
+
'main_table.featuredpopup_id = store_table.featured_id',
|
41 |
+
array()
|
42 |
+
)
|
43 |
+
->where('store_table.store_id in (?)', ($withAdmin ? array(0, $store) : $store))
|
44 |
+
->group('main_table.featuredpopup_id');
|
45 |
+
|
46 |
+
return $this;
|
47 |
+
}
|
48 |
+
|
49 |
+
|
50 |
+
|
51 |
+
}
|
app/code/local/Toogas/Featuredpopup/controllers/Adminhtml/FeaturedpopupController.php
ADDED
@@ -0,0 +1,228 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Featuredpopup_Adminhtml_FeaturedpopupController extends Mage_Adminhtml_Controller_action
|
18 |
+
{
|
19 |
+
|
20 |
+
protected function _initAction() {
|
21 |
+
|
22 |
+
|
23 |
+
$this->loadLayout()
|
24 |
+
->_setActiveMenu('cms/featuredpopup') //ver isto
|
25 |
+
->_addBreadcrumb(Mage::helper('adminhtml')->__('Items Manager'), Mage::helper('adminhtml')->__('Item Manager'));
|
26 |
+
|
27 |
+
return $this;
|
28 |
+
}
|
29 |
+
|
30 |
+
public function indexAction() {
|
31 |
+
$this->_initAction()
|
32 |
+
->renderLayout();
|
33 |
+
}
|
34 |
+
|
35 |
+
public function editAction() {
|
36 |
+
|
37 |
+
$id = $this->getRequest()->getParam('id');
|
38 |
+
$model = Mage::getModel('featuredpopup/featuredpopup')->load($id);
|
39 |
+
|
40 |
+
if ($model->getId() || $id == 0) {
|
41 |
+
$data = Mage::getSingleton('adminhtml/session')->getFormData(true);
|
42 |
+
if (!empty($data)) {
|
43 |
+
$model->setData($data);
|
44 |
+
}
|
45 |
+
|
46 |
+
Mage::register('featuredpopup_data', $model);
|
47 |
+
|
48 |
+
$this->loadLayout();
|
49 |
+
$this->_setActiveMenu('cms/featuredpopup');
|
50 |
+
|
51 |
+
$this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item Manager'), Mage::helper('adminhtml')->__('Item Manager'));
|
52 |
+
$this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item News'), Mage::helper('adminhtml')->__('Item News'));
|
53 |
+
|
54 |
+
$this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
|
55 |
+
|
56 |
+
$this->_addContent($this->getLayout()->createBlock('featuredpopup/adminhtml_featuredpopup_edit'))
|
57 |
+
->_addLeft($this->getLayout()->createBlock('featuredpopup/adminhtml_featuredpopup_edit_tabs'));
|
58 |
+
|
59 |
+
$this->renderLayout();
|
60 |
+
} else {
|
61 |
+
Mage::getSingleton('adminhtml/session')->addError(Mage::helper('featuredpopup')->__('Item does not exist'));
|
62 |
+
$this->_redirect('*/*/');
|
63 |
+
}
|
64 |
+
}
|
65 |
+
|
66 |
+
public function newAction() {
|
67 |
+
$this->_forward('edit');
|
68 |
+
}
|
69 |
+
|
70 |
+
public function saveAction() {
|
71 |
+
if ($data = $this->getRequest()->getPost()) {
|
72 |
+
|
73 |
+
|
74 |
+
if(isset($_FILES['image_link']['name']) and (file_exists($_FILES['image_link']['tmp_name']))) {
|
75 |
+
try {
|
76 |
+
$uploader = new Varien_File_Uploader('image_link');
|
77 |
+
$uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
|
78 |
+
$uploader->setAllowRenameFiles(true);
|
79 |
+
$uploader->setFilesDispersion(false);
|
80 |
+
$path = Mage::getBaseDir('media') . DS .'toogas/featuredpopup';
|
81 |
+
$uploader->save($path, $_FILES['image_link']['name']);
|
82 |
+
$name_image_link = $uploader->getUploadedFileName();
|
83 |
+
$data['image_link'] = 'toogas/featuredpopup/' . $name_image_link;
|
84 |
+
//em cima acrescentei para ver se grava com path correcta
|
85 |
+
}catch(Exception $e) {
|
86 |
+
}
|
87 |
+
}
|
88 |
+
else {
|
89 |
+
|
90 |
+
if(isset($data['image_link']['delete']) && $data['image_link']['delete'] == 1)
|
91 |
+
$data['image_link'] = '';
|
92 |
+
else
|
93 |
+
unset($data['image_link']);
|
94 |
+
}
|
95 |
+
|
96 |
+
|
97 |
+
$model = Mage::getModel('featuredpopup/featuredpopup');
|
98 |
+
$model->setData($data)
|
99 |
+
->setId($this->getRequest()->getParam('id'));
|
100 |
+
|
101 |
+
try {
|
102 |
+
|
103 |
+
$model->save();
|
104 |
+
Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('featuredpopup')->__('The featured popup has been saved.'));
|
105 |
+
Mage::getSingleton('adminhtml/session')->setFormData(false);
|
106 |
+
|
107 |
+
if ($this->getRequest()->getParam('back')) {
|
108 |
+
$this->_redirect('*/*/edit', array('id' => $model->getId()));
|
109 |
+
return;
|
110 |
+
}
|
111 |
+
$this->_redirect('*/*/');
|
112 |
+
return;
|
113 |
+
} catch (Exception $e) {
|
114 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
115 |
+
Mage::getSingleton('adminhtml/session')->setFormData($data);
|
116 |
+
$this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
|
117 |
+
return;
|
118 |
+
}
|
119 |
+
}
|
120 |
+
Mage::getSingleton('adminhtml/session')->addError(Mage::helper('featuredpopup')->__('Unable to find item to save'));
|
121 |
+
$this->_redirect('*/*/');
|
122 |
+
}
|
123 |
+
|
124 |
+
public function deleteAction() {
|
125 |
+
if( $this->getRequest()->getParam('id') > 0 ) {
|
126 |
+
try {
|
127 |
+
$model = Mage::getModel('featuredpopup/featuredpopup');
|
128 |
+
|
129 |
+
$model->setId($this->getRequest()->getParam('id'))
|
130 |
+
->delete();
|
131 |
+
|
132 |
+
Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully deleted'));
|
133 |
+
$this->_redirect('*/*/');
|
134 |
+
} catch (Exception $e) {
|
135 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
136 |
+
$this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
|
137 |
+
}
|
138 |
+
}
|
139 |
+
$this->_redirect('*/*/');
|
140 |
+
}
|
141 |
+
|
142 |
+
public function massDeleteAction() {
|
143 |
+
$featuredpopupsIds = $this->getRequest()->getParam('featuredpopup');
|
144 |
+
if(!is_array($featuredpopupsIds)) {
|
145 |
+
Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Please select item(s)'));
|
146 |
+
} else {
|
147 |
+
try {
|
148 |
+
foreach ($featuredpopupsIds as $featuredpopupId) {
|
149 |
+
$featuredpopups = Mage::getModel('featuredpopup/featuredpopup')->load($featuredpopupId);
|
150 |
+
$featuredpopups->delete();
|
151 |
+
}
|
152 |
+
Mage::getSingleton('adminhtml/session')->addSuccess(
|
153 |
+
Mage::helper('adminhtml')->__(
|
154 |
+
'Total of %d record(s) were successfully deleted', count($featuredpopupsIds)
|
155 |
+
)
|
156 |
+
);
|
157 |
+
} catch (Exception $e) {
|
158 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
159 |
+
}
|
160 |
+
}
|
161 |
+
$this->_redirect('*/*/index');
|
162 |
+
}
|
163 |
+
|
164 |
+
public function massStatusAction()
|
165 |
+
{
|
166 |
+
$featuredpopupsIds = $this->getRequest()->getParam('featuredpopup');
|
167 |
+
if(!is_array($featuredpopupsIds)) {
|
168 |
+
Mage::getSingleton('adminhtml/session')->addError($this->__('Please select item(s)'));
|
169 |
+
} else {
|
170 |
+
try {
|
171 |
+
foreach ($featuredpopupsIds as $featuredpopupId) {
|
172 |
+
$featuredpopups = Mage::getSingleton('featuredpopup/featuredpopup')
|
173 |
+
->load($featuredpopupId)
|
174 |
+
->setStatus($this->getRequest()->getParam('status'))
|
175 |
+
->setIsMassupdate(true)
|
176 |
+
->save();
|
177 |
+
}
|
178 |
+
$this->_getSession()->addSuccess(
|
179 |
+
$this->__('Total of %d record(s) were successfully updated', count($featuredpopupsIds))
|
180 |
+
);
|
181 |
+
} catch (Exception $e) {
|
182 |
+
$this->_getSession()->addError($e->getMessage());
|
183 |
+
}
|
184 |
+
}
|
185 |
+
$this->_redirect('*/*/index');
|
186 |
+
}
|
187 |
+
|
188 |
+
public function exportCsvAction()
|
189 |
+
{
|
190 |
+
$fileName = 'featuredpopup.csv';
|
191 |
+
$content = $this->getLayout()->createBlock('featuredpopup/adminhtml_featuredpopup_grid')
|
192 |
+
->getCsv();
|
193 |
+
|
194 |
+
$this->_sendUploadResponse($fileName, $content);
|
195 |
+
}
|
196 |
+
|
197 |
+
public function exportXmlAction()
|
198 |
+
{
|
199 |
+
$fileName = 'featuredpopup.xml';
|
200 |
+
$content = $this->getLayout()->createBlock('featuredpopup/adminhtml_featuredpopup_grid')
|
201 |
+
->getXml();
|
202 |
+
|
203 |
+
$this->_sendUploadResponse($fileName, $content);
|
204 |
+
}
|
205 |
+
|
206 |
+
protected function _sendUploadResponse($fileName, $content, $contentType='application/octet-stream')
|
207 |
+
{
|
208 |
+
$response = $this->getResponse();
|
209 |
+
$response->setHeader('HTTP/1.1 200 OK','');
|
210 |
+
$response->setHeader('Pragma', 'public', true);
|
211 |
+
$response->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true);
|
212 |
+
$response->setHeader('Content-Disposition', 'attachment; filename='.$fileName);
|
213 |
+
$response->setHeader('Last-Modified', date('r'));
|
214 |
+
$response->setHeader('Accept-Ranges', 'bytes');
|
215 |
+
$response->setHeader('Content-Length', strlen($content));
|
216 |
+
$response->setHeader('Content-type', $contentType);
|
217 |
+
$response->setBody($content);
|
218 |
+
$response->sendResponse();
|
219 |
+
die;
|
220 |
+
}
|
221 |
+
|
222 |
+
protected function _isAllowed()
|
223 |
+
{
|
224 |
+
return Mage::getSingleton('admin/session')->isAllowed('admin/cms/featuredpopup'); //ver isto muito bem
|
225 |
+
}
|
226 |
+
|
227 |
+
|
228 |
+
}
|
app/code/local/Toogas/Featuredpopup/etc/config.xml
ADDED
@@ -0,0 +1,163 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Toogas Lda.
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
9 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
10 |
+
* It is also available at this URL:
|
11 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
12 |
+
*
|
13 |
+
* @category Toogas
|
14 |
+
* @package Toogas_Featuredpopup
|
15 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
16 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
17 |
+
*/
|
18 |
+
-->
|
19 |
+
<config>
|
20 |
+
<modules>
|
21 |
+
<Toogas_Featuredpopup>
|
22 |
+
<version>0.1.0</version>
|
23 |
+
</Toogas_Featuredpopup>
|
24 |
+
</modules>
|
25 |
+
<admin>
|
26 |
+
<routers>
|
27 |
+
<featuredpopup>
|
28 |
+
<use>admin</use>
|
29 |
+
<args>
|
30 |
+
<module>Toogas_Featuredpopup</module>
|
31 |
+
<frontName>featuredpopup</frontName>
|
32 |
+
</args>
|
33 |
+
</featuredpopup>
|
34 |
+
</routers>
|
35 |
+
</admin>
|
36 |
+
<adminhtml>
|
37 |
+
<translate>
|
38 |
+
<modules>
|
39 |
+
<Toogas_Featuredpopup>
|
40 |
+
<files>
|
41 |
+
<default>Toogas_Featuredpopup.csv</default>
|
42 |
+
</files>
|
43 |
+
</Toogas_Featuredpopup>
|
44 |
+
</modules>
|
45 |
+
</translate>
|
46 |
+
<menu>
|
47 |
+
<cms>
|
48 |
+
<children>
|
49 |
+
<featuredpopup module="featuredpopup">
|
50 |
+
<title>Featured Popup (Free)</title>
|
51 |
+
<action>featuredpopup/adminhtml_featuredpopup</action>
|
52 |
+
<sort_order>90</sort_order>
|
53 |
+
</featuredpopup>
|
54 |
+
</children>
|
55 |
+
</cms>
|
56 |
+
</menu>
|
57 |
+
<acl>
|
58 |
+
<resources>
|
59 |
+
<all>
|
60 |
+
<title>Allow Everything</title>
|
61 |
+
</all>
|
62 |
+
<admin>
|
63 |
+
<children>
|
64 |
+
<cms translate="title" module="cms">
|
65 |
+
<children>
|
66 |
+
<featuredpopup module="featuredpopup">
|
67 |
+
<title>Featured Popup (Free)</title>
|
68 |
+
<sort_order>90</sort_order>
|
69 |
+
</featuredpopup>
|
70 |
+
</children>
|
71 |
+
</cms>
|
72 |
+
<system>
|
73 |
+
<children>
|
74 |
+
<config>
|
75 |
+
<children>
|
76 |
+
<toogas_featuredpopup>
|
77 |
+
<title>Featured Popup (System)</title>
|
78 |
+
</toogas_featuredpopup>
|
79 |
+
</children>
|
80 |
+
</config>
|
81 |
+
</children>
|
82 |
+
</system>
|
83 |
+
</children>
|
84 |
+
</admin>
|
85 |
+
</resources>
|
86 |
+
</acl>
|
87 |
+
<layout>
|
88 |
+
<updates>
|
89 |
+
<featuredpopup>
|
90 |
+
<file>featuredpopup.xml</file>
|
91 |
+
</featuredpopup>
|
92 |
+
</updates>
|
93 |
+
</layout>
|
94 |
+
</adminhtml>
|
95 |
+
<frontend>
|
96 |
+
<layout>
|
97 |
+
<updates>
|
98 |
+
<featuredpopup module="Toogas_Featuredpopup">
|
99 |
+
<file>toogas_featuredpopup.xml</file>
|
100 |
+
</featuredpopup>
|
101 |
+
</updates>
|
102 |
+
</layout>
|
103 |
+
</frontend>
|
104 |
+
<global>
|
105 |
+
<models>
|
106 |
+
<featuredpopup>
|
107 |
+
<class>Toogas_Featuredpopup_Model</class>
|
108 |
+
<resourceModel>featuredpopup_mysql4</resourceModel>
|
109 |
+
</featuredpopup>
|
110 |
+
<featuredpopup_mysql4>
|
111 |
+
<class>Toogas_Featuredpopup_Model_Mysql4</class>
|
112 |
+
<entities>
|
113 |
+
<featuredpopup>
|
114 |
+
<table>toogas_featuredpopup</table>
|
115 |
+
</featuredpopup>
|
116 |
+
<featuredpopup_store>
|
117 |
+
<table>toogas_featuredpopup_store</table>
|
118 |
+
</featuredpopup_store>
|
119 |
+
<toogas_featuredpopup_store>
|
120 |
+
<table>toogas_featuredpopup_store</table>
|
121 |
+
</toogas_featuredpopup_store>
|
122 |
+
</entities>
|
123 |
+
</featuredpopup_mysql4>
|
124 |
+
</models>
|
125 |
+
<resources>
|
126 |
+
<featuredpopup_setup>
|
127 |
+
<setup>
|
128 |
+
<module>Toogas_Featuredpopup</module>
|
129 |
+
</setup>
|
130 |
+
<connection>
|
131 |
+
<use>core_setup</use>
|
132 |
+
</connection>
|
133 |
+
</featuredpopup_setup>
|
134 |
+
<featuredpopup_write>
|
135 |
+
<connection>
|
136 |
+
<use>core_write</use>
|
137 |
+
</connection>
|
138 |
+
</featuredpopup_write>
|
139 |
+
<featuredpopup_read>
|
140 |
+
<connection>
|
141 |
+
<use>core_read</use>
|
142 |
+
</connection>
|
143 |
+
</featuredpopup_read>
|
144 |
+
</resources>
|
145 |
+
<blocks>
|
146 |
+
<featuredpopup>
|
147 |
+
<class>Toogas_Featuredpopup_Block</class>
|
148 |
+
</featuredpopup>
|
149 |
+
</blocks>
|
150 |
+
<helpers>
|
151 |
+
<featuredpopup>
|
152 |
+
<class>Toogas_Featuredpopup_Helper</class>
|
153 |
+
</featuredpopup>
|
154 |
+
</helpers>
|
155 |
+
</global>
|
156 |
+
<default>
|
157 |
+
<toogas_featuredpopup>
|
158 |
+
<configfeaturedpopup>
|
159 |
+
<featured_popup_enabled>1</featured_popup_enabled>
|
160 |
+
</configfeaturedpopup>
|
161 |
+
</toogas_featuredpopup>
|
162 |
+
</default>
|
163 |
+
</config>
|
app/code/local/Toogas/Featuredpopup/etc/system.xml
ADDED
@@ -0,0 +1,51 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Toogas Lda.
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
9 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
10 |
+
* It is also available at this URL:
|
11 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
12 |
+
*
|
13 |
+
* @category Toogas
|
14 |
+
* @package Toogas_Featuredpopup
|
15 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
16 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
17 |
+
*/
|
18 |
+
-->
|
19 |
+
<config>
|
20 |
+
<sections>
|
21 |
+
<toogas_featuredpopup translate="label" module="featuredpopup">
|
22 |
+
<label>Featured Popup</label>
|
23 |
+
<tab>toogaslda</tab>
|
24 |
+
<sort_order>10</sort_order>
|
25 |
+
<show_in_default>1</show_in_default>
|
26 |
+
<show_in_website>1</show_in_website>
|
27 |
+
<show_in_store>1</show_in_store>
|
28 |
+
<groups>
|
29 |
+
<configfeaturedpopup translate="label">
|
30 |
+
<label>Featured Popup Configuration</label>
|
31 |
+
<frontend_type>text</frontend_type>
|
32 |
+
<sort_order>10</sort_order>
|
33 |
+
<show_in_default>1</show_in_default>
|
34 |
+
<show_in_website>1</show_in_website>
|
35 |
+
<show_in_store>1</show_in_store>
|
36 |
+
<fields>
|
37 |
+
<featured_popup_enabled translate="label">
|
38 |
+
<label>Status</label>
|
39 |
+
<frontend_type>select</frontend_type>
|
40 |
+
<sort_order>10</sort_order>
|
41 |
+
<show_in_default>1</show_in_default>
|
42 |
+
<show_in_website>0</show_in_website>
|
43 |
+
<show_in_store>0</show_in_store>
|
44 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
45 |
+
</featured_popup_enabled>
|
46 |
+
</fields>
|
47 |
+
</configfeaturedpopup>
|
48 |
+
</groups>
|
49 |
+
</toogas_featuredpopup>
|
50 |
+
</sections>
|
51 |
+
</config>
|
app/code/local/Toogas/Featuredpopup/readme.txt
ADDED
@@ -0,0 +1,23 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
Simple Steps for the Featured Popup:
|
2 |
+
|
3 |
+
1) Upload the content of the part-1 directory to your Magento store root.
|
4 |
+
2) Upload the content of the part-2 directory to your Magento store root.
|
5 |
+
3) Add the code to your cms/catalog/xml file layout update:
|
6 |
+
|
7 |
+
<reference name="after_body_start">
|
8 |
+
<block type="featuredpopup/featuredpopup" name="toogasfeaturedpopup"
|
9 |
+
as="toogasfeaturedpopup"
|
10 |
+
template="toogas_featuredpopup/featuredpopup.phtml" />
|
11 |
+
</reference>
|
12 |
+
|
13 |
+
|
14 |
+
Example for the homepage:
|
15 |
+
a) Go to Cms -> Pages
|
16 |
+
b) Open your Cms Page
|
17 |
+
c) Select the tab Design
|
18 |
+
d) Paste the code on the Layout Update XML text area.
|
19 |
+
e) Save your Cms Page
|
20 |
+
|
21 |
+
4) You may need to refresh your cache.
|
22 |
+
|
23 |
+
5) That's all. Please contact us if you need support: http://www.toogas.com
|
app/code/local/Toogas/Featuredpopup/sql/featuredpopup_setup/mysql4-install-0.1.0.php
ADDED
@@ -0,0 +1,56 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
$installer = $this;
|
18 |
+
|
19 |
+
$installer->startSetup();
|
20 |
+
|
21 |
+
$installer->run("
|
22 |
+
|
23 |
+
DROP TABLE IF EXISTS {$this->getTable('toogas_featuredpopup')};
|
24 |
+
CREATE TABLE {$this->getTable('toogas_featuredpopup')} (
|
25 |
+
`featuredpopup_id` int(11) unsigned NOT NULL auto_increment,
|
26 |
+
`popup_name` varchar(30) NOT NULL default '',
|
27 |
+
`image_link` varchar(255) NOT NULL default '',
|
28 |
+
`width_image` smallint(4) NOT NULL default '0',
|
29 |
+
`height_image` smallint(4) NOT NULL default '0',
|
30 |
+
`url_link` varchar(255) NOT NULL default '',
|
31 |
+
`is_active` tinyint(1) NOT NULL default '1',
|
32 |
+
`from_date` datetime NOT NULL default '0000-00-00 00:00:00',
|
33 |
+
`to_date` datetime NOT NULL default '0000-00-00 00:00:00',
|
34 |
+
`css_style` varchar(64) NOT NULL default '',
|
35 |
+
`js_style` varchar(64) NOT NULL default '',
|
36 |
+
`delay_start` tinyint(3) NOT NULL default '0',
|
37 |
+
`delay_close` tinyint(3) NOT NULL default '0',
|
38 |
+
`priority` tinyint(4) NOT NULL default '0',
|
39 |
+
`opacity` decimal(3,2) NOT NULL default '0.4',
|
40 |
+
PRIMARY KEY (`featuredpopup_id`)
|
41 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
42 |
+
|
43 |
+
DROP TABLE IF EXISTS `{$this->getTable('toogas_featuredpopup_store')}`;
|
44 |
+
CREATE TABLE `{$this->getTable('toogas_featuredpopup_store')}` (
|
45 |
+
`featured_id` int(11) unsigned NOT NULL,
|
46 |
+
`store_id` smallint(5) unsigned NOT NULL,
|
47 |
+
PRIMARY KEY (`featured_id`,`store_id`),
|
48 |
+
CONSTRAINT `FK_FEATUREDPOPUP_STORE_FEATUREDPOPUP` FOREIGN KEY (`featured_id`) REFERENCES `{$this->getTable('toogas_featuredpopup')}` (`featuredpopup_id`) ON UPDATE CASCADE ON DELETE CASCADE,
|
49 |
+
CONSTRAINT `FK_FEATUREDPOPUP_STORE_STORE` FOREIGN KEY (`store_id`) REFERENCES `{$this->getTable('core/store')}` (`store_id`) ON UPDATE CASCADE ON DELETE CASCADE
|
50 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Store for featured popup';
|
51 |
+
|
52 |
+
|
53 |
+
");
|
54 |
+
|
55 |
+
|
56 |
+
$installer->endSetup();
|
app/code/local/Toogas/Featuredpopup/toogas_license-free.txt
ADDED
@@ -0,0 +1,68 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
Toogas Lda. End-User Licence Agreement
|
2 |
+
www.toogas.com
|
3 |
+
|
4 |
+
THIS LICENSE AGREEMENT (HEREINAFTER AGREEMENT) IS AN AGREEMENT BETWEEN YOU (THE
|
5 |
+
PERSON OR COMPANY WHO IS BEING LICENSED TO USE THE SOFTWARE OR DOCUMENTATION)
|
6 |
+
AND TOOGAS LDA. (HEREINAFTER WE/US/OUR). THE AGREEMENT APPLIES TO EVERYTHING YOU PURCHASE FROM US.
|
7 |
+
|
8 |
+
1. By using this Software you acknowledge that you have read this Agreement,
|
9 |
+
and that you agree to the content of the Agreement and its terms, and agree
|
10 |
+
to use the Software in compliance with this Agreement.
|
11 |
+
|
12 |
+
2. The Agreement comes into legal force at the moment when you order our
|
13 |
+
Software from our site or receive it through email or on data medium at the
|
14 |
+
our discretion.
|
15 |
+
|
16 |
+
3. We are the copyright holder of the Software. The Software or a portion of it
|
17 |
+
is a copyrightable matter and is liable to protection by the law. Any
|
18 |
+
activity that infringes terms of this Agreement violates copyright law and
|
19 |
+
will be prosecuted according to the current law. We reserve the right to
|
20 |
+
revoke the license of any user who is holding an invalid license.
|
21 |
+
|
22 |
+
4. This Agreement gives you the right to use the Software on
|
23 |
+
one domain solely for your own personal or business use, subject to all other
|
24 |
+
terms of this Agreement. Any distribution of the Software without our consent,
|
25 |
+
including noncommercial distribution is regarded as violation of this
|
26 |
+
Agreement and entails liability, according to the current law.
|
27 |
+
|
28 |
+
5. You may not use any part of the code in whole or part in any other software
|
29 |
+
or product or website.
|
30 |
+
|
31 |
+
6. You may not give, sell, distribute, sub-license, rent, lease or lend any
|
32 |
+
portion of the Software or Documentation to anyone. You may not place the
|
33 |
+
Software on a server so that it is accessible via a public network such as
|
34 |
+
the Internet for distribution purposes.
|
35 |
+
|
36 |
+
7. You are bound to preserve the copyright information intact.
|
37 |
+
|
38 |
+
8. We reserve the right to publish a selected list of users of our Software.
|
39 |
+
|
40 |
+
9. We will not be liable to you for any damages (including any loss of
|
41 |
+
profits/saving, or incidental or consequential) caused to you, your
|
42 |
+
information and your business arising out of the use or inability to use
|
43 |
+
this Software.
|
44 |
+
|
45 |
+
10. We are not liable for prosecution arising from use of the Software against
|
46 |
+
law or for any illegal use.
|
47 |
+
|
48 |
+
11. If you fail to use the Software in accordance with the terms and conditions
|
49 |
+
of this License Agreement, it constitutes a breach of the agreement, and
|
50 |
+
your license to use the program is revoked.
|
51 |
+
|
52 |
+
12. Toogas Lda. reserves the right to change this license agreement at any
|
53 |
+
time and impose its clauses at any given time.
|
54 |
+
|
55 |
+
13. License agreement remains effective until terminated. We retain the right to
|
56 |
+
terminate your license to use the Software at any time, if in its sole
|
57 |
+
discretion, you are not abiding by the terms of the Agreement, including,
|
58 |
+
but not limited to, obscuring or removing any link or copyright notice as
|
59 |
+
specified in this agreement. You may terminate it at any time by destroying
|
60 |
+
all copies of the Software. Termination of this Agreement does not bind us
|
61 |
+
to return you the amount spent for purchase of the Software.
|
62 |
+
|
63 |
+
14. If you continue to use the Software after Toogas Lda. gives you notice
|
64 |
+
of termination of your license, you hereby agree to accept an injunction to
|
65 |
+
enjoin you from its further use and to pay all costs (including but not
|
66 |
+
limited to reasonable attorney fees) to enforce our revocation of your
|
67 |
+
license and any damages suffered by us because of your misuse of
|
68 |
+
the Software.
|
app/code/local/Toogas/Toogaslda/Block/Adminhtml/System/Config/Fieldset/Toogas.php
ADDED
@@ -0,0 +1,27 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file licence_toogas_community.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_community.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Toogaslda
|
14 |
+
* @copyright Copyright (c) 2010 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_community.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Toogaslda_Block_Adminhtml_System_Config_Fieldset_Toogas
|
18 |
+
extends Mage_Adminhtml_Block_Abstract
|
19 |
+
implements Varien_Data_Form_Element_Renderer_Interface
|
20 |
+
{
|
21 |
+
protected $_template = 'toogas_toogaslda/system/config/fieldset/toogas.phtml';
|
22 |
+
|
23 |
+
public function render(Varien_Data_Form_Element_Abstract $element)
|
24 |
+
{
|
25 |
+
return $this->toHtml();
|
26 |
+
}
|
27 |
+
}
|
app/code/local/Toogas/Toogaslda/Helper/Data.php
ADDED
@@ -0,0 +1,23 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file licence_toogas_community.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_community.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Toogaslda
|
14 |
+
* @copyright Copyright (c) 2010 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_community.txt
|
16 |
+
*/
|
17 |
+
class Toogas_Toogaslda_Helper_Data extends Mage_Core_Helper_Abstract
|
18 |
+
{
|
19 |
+
|
20 |
+
|
21 |
+
|
22 |
+
|
23 |
+
}
|
app/code/local/Toogas/Toogaslda/etc/config.xml
ADDED
@@ -0,0 +1,70 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Toogas Lda.
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
9 |
+
* that is bundled with this package in the file licence_toogas_community.txt.
|
10 |
+
* It is also available at this URL:
|
11 |
+
* http://www.toogas.com/licences/toogas_community.txt
|
12 |
+
*
|
13 |
+
* @category Toogas
|
14 |
+
* @package Toogas_Toogaslda
|
15 |
+
* @copyright Copyright (c) 2010 Toogas Lda. (http://www.toogas.com)
|
16 |
+
* @license http://www.toogas.com/licences/toogas_community.txt
|
17 |
+
*/
|
18 |
+
-->
|
19 |
+
<config>
|
20 |
+
<modules>
|
21 |
+
<Toogas_Toogaslda>
|
22 |
+
<version>1.0.0</version>
|
23 |
+
</Toogas_Toogaslda>
|
24 |
+
</modules>
|
25 |
+
<global>
|
26 |
+
<helpers>
|
27 |
+
<toogaslda>
|
28 |
+
<class>Toogas_Toogaslda_Helper</class>
|
29 |
+
</toogaslda>
|
30 |
+
</helpers>
|
31 |
+
<blocks>
|
32 |
+
<toogaslda>
|
33 |
+
<class>Toogas_Toogaslda_Block</class>
|
34 |
+
</toogaslda>
|
35 |
+
</blocks>
|
36 |
+
</global>
|
37 |
+
<adminhtml>
|
38 |
+
<translate>
|
39 |
+
<modules>
|
40 |
+
<Toogas_Toogaslda>
|
41 |
+
<files>
|
42 |
+
<default>Toogas_Toogaslda.csv</default>
|
43 |
+
</files>
|
44 |
+
</Toogas_Toogaslda>
|
45 |
+
</modules>
|
46 |
+
</translate>
|
47 |
+
<acl>
|
48 |
+
<resources>
|
49 |
+
<all>
|
50 |
+
<title>Allow Everything</title>
|
51 |
+
</all>
|
52 |
+
<admin>
|
53 |
+
<children>
|
54 |
+
<system>
|
55 |
+
<children>
|
56 |
+
<config>
|
57 |
+
<children>
|
58 |
+
<toogas_toogaslda>
|
59 |
+
<title>Toogas Lda. (Base)</title>
|
60 |
+
</toogas_toogaslda>
|
61 |
+
</children>
|
62 |
+
</config>
|
63 |
+
</children>
|
64 |
+
</system>
|
65 |
+
</children>
|
66 |
+
</admin>
|
67 |
+
</resources>
|
68 |
+
</acl>
|
69 |
+
</adminhtml>
|
70 |
+
</config>
|
app/code/local/Toogas/Toogaslda/etc/system.xml
ADDED
@@ -0,0 +1,47 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Toogas Lda.
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
9 |
+
* that is bundled with this package in the file licence_toogas_community.txt.
|
10 |
+
* It is also available at this URL:
|
11 |
+
* http://www.toogas.com/licences/toogas_community.txt
|
12 |
+
*
|
13 |
+
* @category Toogas
|
14 |
+
* @package Toogas_Toogaslda
|
15 |
+
* @copyright Copyright (c) 2010 Toogas Lda. (http://www.toogas.com)
|
16 |
+
* @license http://www.toogas.com/licences/toogas_community.txt
|
17 |
+
*/
|
18 |
+
-->
|
19 |
+
<config>
|
20 |
+
<tabs>
|
21 |
+
<toogaslda module="toogaslda">
|
22 |
+
<label>Toogas Lda.</label>
|
23 |
+
<sort_order>100</sort_order>
|
24 |
+
</toogaslda>
|
25 |
+
</tabs>
|
26 |
+
<sections>
|
27 |
+
<toogas_toogaslda translate="label" module="toogaslda">
|
28 |
+
<label>Contact Us</label>
|
29 |
+
<tab>toogaslda</tab>
|
30 |
+
<frontend_type>text</frontend_type>
|
31 |
+
<sort_order>10000</sort_order>
|
32 |
+
<show_in_default>1</show_in_default>
|
33 |
+
<show_in_website>1</show_in_website>
|
34 |
+
<show_in_store>1</show_in_store>
|
35 |
+
<groups>
|
36 |
+
<toogas_contact>
|
37 |
+
<frontend_model>toogaslda/adminhtml_system_config_fieldset_toogas</frontend_model>
|
38 |
+
<frontend_type>text</frontend_type>
|
39 |
+
<sort_order>0</sort_order>
|
40 |
+
<show_in_default>1</show_in_default>
|
41 |
+
<show_in_website>1</show_in_website>
|
42 |
+
<show_in_store>1</show_in_store>
|
43 |
+
</toogas_contact>
|
44 |
+
</groups>
|
45 |
+
</toogas_toogaslda>
|
46 |
+
</sections>
|
47 |
+
</config>
|
app/design/adminhtml/default/default/layout/featuredpopup.xml
ADDED
@@ -0,0 +1,25 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Toogas Lda.
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
9 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
10 |
+
* It is also available at this URL:
|
11 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
12 |
+
*
|
13 |
+
* @category Toogas
|
14 |
+
* @package Toogas_Featuredpopup
|
15 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
16 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
17 |
+
*/
|
18 |
+
-->
|
19 |
+
<layout version="0.1.0">
|
20 |
+
<featuredpopup_adminhtml_featuredpopup_index>
|
21 |
+
<reference name="content">
|
22 |
+
<block type="featuredpopup/adminhtml_featuredpopup" name="featuredpopup" />
|
23 |
+
</reference>
|
24 |
+
</featuredpopup_adminhtml_featuredpopup_index>
|
25 |
+
</layout>
|
app/design/adminhtml/default/default/template/toogas_toogaslda/system/config/fieldset/toogas.phtml
ADDED
@@ -0,0 +1,47 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file licence_toogas_community.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_community.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Toogaslda
|
14 |
+
* @copyright Copyright (c) 2010 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_community.txt
|
16 |
+
*/
|
17 |
+
?>
|
18 |
+
<style>
|
19 |
+
.toogas-promo {
|
20 |
+
background:#EAF0EE url(<?php echo $this->getSkinUrl('images/toogas/toogas_logo.jpg') ?>) no-repeat scroll 5px center;
|
21 |
+
border:1px solid #CCCCCC;
|
22 |
+
margin-bottom:10px;
|
23 |
+
padding:10px 5px 5px 115px;
|
24 |
+
}
|
25 |
+
.toogas-promo h4, .toogas-promo p {
|
26 |
+
margin:0;
|
27 |
+
}
|
28 |
+
.toogas-promo h2 {
|
29 |
+
color:#444444;
|
30 |
+
font-size:1.4em;
|
31 |
+
line-height:1em;
|
32 |
+
}
|
33 |
+
.toogas-promo a {
|
34 |
+
text-decoration:none;
|
35 |
+
}
|
36 |
+
|
37 |
+
.save {
|
38 |
+
display: none;
|
39 |
+
}
|
40 |
+
</style>
|
41 |
+
<div class="toogas-promo">
|
42 |
+
<h4><?php echo Mage::helper('toogaslda')->__('Contact Toogas')?></h4>
|
43 |
+
<p><a href="http://www.toogas.com/contacts/"><?php echo Mage::helper('toogaslda')->__('Contact us!')?></a></p>
|
44 |
+
<p> </p>
|
45 |
+
<p> </p>
|
46 |
+
<p> </p>
|
47 |
+
</div>
|
app/design/frontend/base/default/layout/toogas_featuredpopup.xml
ADDED
@@ -0,0 +1,33 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Toogas Lda.
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
9 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
10 |
+
* It is also available at this URL:
|
11 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
12 |
+
*
|
13 |
+
* @category Toogas
|
14 |
+
* @package Toogas_Featuredpopup
|
15 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
16 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
17 |
+
*/
|
18 |
+
-->
|
19 |
+
<layout version="0.1.0">
|
20 |
+
<default>
|
21 |
+
<reference name="head">
|
22 |
+
<action method="addCss"><stylesheet>css/Toogas/Featuredpopup/default.css</stylesheet></action>
|
23 |
+
<action method="addJs"><script>toogas/featuredpopup/js/window.js</script></action>
|
24 |
+
</reference>
|
25 |
+
<!--
|
26 |
+
<reference name="after_body_start">
|
27 |
+
<block type="featuredpopup/featuredpopup" name="toogasfeaturedpopup" as="toogasfeaturedpopup" template="toogas_featuredpopup/featuredpopup.phtml" />
|
28 |
+
</reference>
|
29 |
+
-->
|
30 |
+
</default>
|
31 |
+
</layout>
|
32 |
+
|
33 |
+
|
app/design/frontend/base/default/template/toogas_featuredpopup/featuredpopup.phtml
ADDED
@@ -0,0 +1,72 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Toogas Lda.
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the EULA (End-User License Agreement)
|
8 |
+
* that is bundled with this package in the file toogas_license-free.txt.
|
9 |
+
* It is also available at this URL:
|
10 |
+
* http://www.toogas.com/licences/toogas_license-free.txt
|
11 |
+
*
|
12 |
+
* @category Toogas
|
13 |
+
* @package Toogas_Featuredpopup
|
14 |
+
* @copyright Copyright (c) 2011 Toogas Lda. (http://www.toogas.com)
|
15 |
+
* @license http://www.toogas.com/licences/toogas_license-free.txt
|
16 |
+
*/
|
17 |
+
if ( $this->okShowPopup ) :
|
18 |
+
$width = $this->obtainWidthImage(); $height = $this->obtainHeightImage(); $src_img = $this->obtainImage(); $href_link = $this->obtainUrl(); $opacity = $this->obtainOpacity(); $open_timer = $this->obtainDelayStart(); $close_timer = $this->obtainDelayClose() ?>
|
19 |
+
<div id="toogas_pop_up" onclick="closePopUp();"></div>
|
20 |
+
<img id="img_pop_up" src='<?php echo $src_img ?>' style="display:none">
|
21 |
+
<script type="text/javascript">
|
22 |
+
<?php if (is_numeric($width) && $width > 0 && is_numeric($height) && $height > 0) : ?>
|
23 |
+
var width_img = <?php echo $width ?> ;
|
24 |
+
var height_img = <?php echo $height ?>;
|
25 |
+
<?php else : ?>
|
26 |
+
var width_img = $('img_pop_up').getWidth();
|
27 |
+
var height_img = $('img_pop_up').getHeight();
|
28 |
+
<?php endif ?>
|
29 |
+
var win = new Window({className: "mac_os_x", width: width_img, height: height_img, zIndex: 10000, resizable: true, title: "", showEffect:Effect.Grow, hideEffect: Effect.SwitchOff, draggable:false, wiredDrag:true});
|
30 |
+
<?php if (is_numeric($open_timer) && $open_timer > 0) : ?>
|
31 |
+
setTimeout("initialParams(win);",<? echo $open_timer * 1000; ?>);
|
32 |
+
<?php else : ?>
|
33 |
+
initialParams(win);
|
34 |
+
<?php endif ?>
|
35 |
+
function initialParams(win)
|
36 |
+
{
|
37 |
+
$('toogas_pop_up').style.width = '100%';
|
38 |
+
$('toogas_pop_up').style.height = '100%';
|
39 |
+
<?php if (is_numeric($opacity) && $opacity > 0) : ?>
|
40 |
+
$('toogas_pop_up').setOpacity(<?php echo $opacity ?>);
|
41 |
+
<?php else : ?>
|
42 |
+
$('toogas_pop_up').setOpacity(0.4);
|
43 |
+
<?php endif ?>
|
44 |
+
$('toogas_pop_up').style.position = 'fixed';
|
45 |
+
$('toogas_pop_up').style.top = '0px';
|
46 |
+
$('toogas_pop_up').style.zIndex = '5000';
|
47 |
+
$('toogas_pop_up').style.backgroundColor = '#000000';
|
48 |
+
<?php if (is_numeric($width) && $width > 0 && is_numeric($height) && $height > 0) : ?>
|
49 |
+
win.getContent().innerHTML= "<div id='toogas'><?php if ($href_link) : ?><a href='<?php echo $href_link ?>'><img src='<?php echo $src_img ?>' style='width:<?php echo $width?>px;height:<?php echo $height?>px'></a><?php else : ?><img src='<?php echo $src_img ?>' style='width:<?php echo $width?>px;height:<?php echo $height?>px;'><?php endif ?></div>"
|
50 |
+
<?php else : ?>
|
51 |
+
win.getContent().innerHTML= "<div id='toogas'><?php if ($href_link) : ?><a href='<?php echo $href_link ?>'><img src='<?php echo $src_img ?>'></a><?php else : ?><img src='<?php echo $src_img ?>'><?php endif ?></div>"
|
52 |
+
<?php endif ?>
|
53 |
+
win.showCenter();
|
54 |
+
Event.observe('toogas', 'click', closePopUp, false);
|
55 |
+
<?php if (is_numeric($close_timer) && $close_timer > 0) { ?>
|
56 |
+
self.setTimeout("closePopUp();", <? echo $close_timer * 1000; ?>);
|
57 |
+
<?php } ?>
|
58 |
+
}
|
59 |
+
|
60 |
+
function closePopUp()
|
61 |
+
{
|
62 |
+
$('toogas_pop_up').style.width = '';
|
63 |
+
$('toogas_pop_up').style.height = '';
|
64 |
+
$('toogas_pop_up').setOpacity(1);
|
65 |
+
$('toogas_pop_up').style.position = '';
|
66 |
+
$('toogas_pop_up').style.top = '';
|
67 |
+
$('toogas_pop_up').style.zIndex = '';
|
68 |
+
$('toogas_pop_up').style.backgroundColor = '';
|
69 |
+
win.close();
|
70 |
+
}
|
71 |
+
</script>
|
72 |
+
<?php endif ?>
|
app/etc/modules/Toogas_Featuredpopup.xml
ADDED
@@ -0,0 +1,9 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Toogas_Featuredpopup>
|
5 |
+
<active>true</active>
|
6 |
+
<codePool>local</codePool>
|
7 |
+
</Toogas_Featuredpopup>
|
8 |
+
</modules>
|
9 |
+
</config>
|
app/locale/en_GB/Toogas_Featuredpopup.csv
ADDED
@@ -0,0 +1,35 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
"Range of dates wrong","Range of dates wrong"
|
2 |
+
"Item does not exist","Item does not exist"
|
3 |
+
"The featured popup has been saved.","The featured popup has been saved."
|
4 |
+
"Unable to find item to save","Unable to find item to save"
|
5 |
+
"Disabled","Disabled"
|
6 |
+
"Enabled","Enabled"
|
7 |
+
"Featured Popup","Featured Popup"
|
8 |
+
"Add Featured Popup","Add Featured Popup"
|
9 |
+
"ID","ID"
|
10 |
+
"Name","Name"
|
11 |
+
"Link","Link"
|
12 |
+
"From:","From:"
|
13 |
+
"To:","To:"
|
14 |
+
"Status","Status"
|
15 |
+
"Store View","Store View"
|
16 |
+
"Action","Action"
|
17 |
+
"Edit","Edit"
|
18 |
+
"Delete","Delete"
|
19 |
+
"Are you sure?","Are you sure?"
|
20 |
+
"Save","Save"
|
21 |
+
"Edit Featured Popup '%s'","Edit Featured Popup '%s'"
|
22 |
+
"New Featured Popup","New Featured Popup"
|
23 |
+
"Popup Image","Popup Image"
|
24 |
+
"Width Image","Width Image"
|
25 |
+
"Height Image","Height Image"
|
26 |
+
"Url","Url"
|
27 |
+
"Delay Start","Delay Start"
|
28 |
+
"Delay Close","Delay Close"
|
29 |
+
"Priority","Priority"
|
30 |
+
"Opacity","Opacity"
|
31 |
+
"Please upload an image.","Please upload an image."
|
32 |
+
"Add New Image","Add New Image"
|
33 |
+
"Assigned Images","Assigned Images"
|
34 |
+
"Date Settings","Date Settings"
|
35 |
+
"Popup Settings","Popup Settings"
|
app/locale/en_GB/Toogas_Toogaslda.csv
ADDED
@@ -0,0 +1,3 @@
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
"Contact Us","Contact us"
|
2 |
+
"Contact Toogas","Contact Toogas"
|
3 |
+
"Contact us!","Contact us!"
|
app/locale/en_US/Toogas_Featuredpopup.csv
ADDED
@@ -0,0 +1,35 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
"Range of dates wrong","Range of dates wrong"
|
2 |
+
"Item does not exist","Item does not exist"
|
3 |
+
"The featured popup has been saved.","The featured popup has been saved."
|
4 |
+
"Unable to find item to save","Unable to find item to save"
|
5 |
+
"Disabled","Disabled"
|
6 |
+
"Enabled","Enabled"
|
7 |
+
"Featured Popup","Featured Popup"
|
8 |
+
"Add Featured Popup","Add Featured Popup"
|
9 |
+
"ID","ID"
|
10 |
+
"Name","Name"
|
11 |
+
"Link","Link"
|
12 |
+
"From:","From:"
|
13 |
+
"To:","To:"
|
14 |
+
"Status","Status"
|
15 |
+
"Store View","Store View"
|
16 |
+
"Action","Action"
|
17 |
+
"Edit","Edit"
|
18 |
+
"Delete","Delete"
|
19 |
+
"Are you sure?","Are you sure?"
|
20 |
+
"Save","Save"
|
21 |
+
"Edit Featured Popup '%s'","Edit Featured Popup '%s'"
|
22 |
+
"New Featured Popup","New Featured Popup"
|
23 |
+
"Popup Image","Popup Image"
|
24 |
+
"Width Image","Width Image"
|
25 |
+
"Height Image","Height Image"
|
26 |
+
"Url","Url"
|
27 |
+
"Delay Start","Delay Start"
|
28 |
+
"Delay Close","Delay Close"
|
29 |
+
"Priority","Priority"
|
30 |
+
"Opacity","Opacity"
|
31 |
+
"Please upload an image.","Please upload an image."
|
32 |
+
"Add New Image","Add New Image"
|
33 |
+
"Assigned Images","Assigned Images"
|
34 |
+
"Date Settings","Date Settings"
|
35 |
+
"Popup Settings","Popup Settings"
|
app/locale/en_US/Toogas_Toogaslda.csv
ADDED
@@ -0,0 +1,3 @@
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
"Contact Us","Contact us"
|
2 |
+
"Contact Toogas","Contact Toogas"
|
3 |
+
"Contact us!","Contact us!"
|
app/locale/es_ES/Toogas_Featuredpopup.csv
ADDED
@@ -0,0 +1,35 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
"Range of dates wrong","Intervalo de Fechas Erroneo"
|
2 |
+
"Item does not exist","Item no existe"
|
3 |
+
"The featured popup has been saved.","La Ventana ha sido grabada."
|
4 |
+
"Unable to find item to save","Item no encontrado"
|
5 |
+
"Disabled","Discapacitado"
|
6 |
+
"Enabled","Activo"
|
7 |
+
"Featured Popup","Ventana de Destaque"
|
8 |
+
"Add Featured Popup","Anadir Ventana Popup"
|
9 |
+
"ID","ID"
|
10 |
+
"Name","Nombre"
|
11 |
+
"Link","Link"
|
12 |
+
"From:","De:"
|
13 |
+
"To:","Para:"
|
14 |
+
"Status","Estado"
|
15 |
+
"Store View","Vista de Tienda"
|
16 |
+
"Action","Accion"
|
17 |
+
"Edit","Editar"
|
18 |
+
"Delete","Borrar"
|
19 |
+
"Are you sure?","Esta Seguro?"
|
20 |
+
"Save","Grabar"
|
21 |
+
"Edit Featured Popup '%s'","Editar Ventana '%s'"
|
22 |
+
"New Featured Popup","Nueva Ventana"
|
23 |
+
"Popup Image","Imagen da Popup"
|
24 |
+
"Width Image","Ancho Imagen"
|
25 |
+
"Height Image","Altura Imagen"
|
26 |
+
"Url","Url"
|
27 |
+
"Delay Start","Tiempo (segundos) hasta Apertura de la Ventana"
|
28 |
+
"Delay Close","Tiempo (segundos) hasta Cierre de la Ventana"
|
29 |
+
"Priority","Prioridad"
|
30 |
+
"Opacity","Opacidad"
|
31 |
+
"Please upload an image.","Por favor suba una imagen"
|
32 |
+
"Add New Image","Anadir Nueva Imagen"
|
33 |
+
"Assigned Images","Imagenes Associadas"
|
34 |
+
"Date Settings","Parámetros de las Fechas"
|
35 |
+
"Popup Settings","Parámetros de la Ventana"
|
app/locale/es_ES/Toogas_Toogaslda.csv
ADDED
@@ -0,0 +1,3 @@
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
"Contact Us","Contacte con nosotros"
|
2 |
+
"Contact Toogas","Póngase en contacto con Toogas"
|
3 |
+
"Contact us!","Contacte con nosotros!"
|
app/locale/pt_BR/Toogas_Featuredpopup.csv
ADDED
@@ -0,0 +1,35 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
"Range of dates wrong","Intevalo de datas errado"
|
2 |
+
"Item does not exist","O Item não existe"
|
3 |
+
"The featured popup has been saved.","A Featured Popup foi gravada com sucesso."
|
4 |
+
"Unable to find item to save","Não foi possÃvel encontrar o registo para gravação."
|
5 |
+
"Disabled","Não activo"
|
6 |
+
"Enabled","Activo"
|
7 |
+
"Featured Popup","Featured Popup"
|
8 |
+
"Add Featured Popup","Adicionar Featured Popup"
|
9 |
+
"ID","ID"
|
10 |
+
"Name","Nome"
|
11 |
+
"Link","Link"
|
12 |
+
"From:","De:"
|
13 |
+
"To:","Até:"
|
14 |
+
"Status","Estado"
|
15 |
+
"Store View","Vista de Loja"
|
16 |
+
"Action","Acção"
|
17 |
+
"Edit","Editar"
|
18 |
+
"Delete","Apagar"
|
19 |
+
"Are you sure?","Tem a certeza?"
|
20 |
+
"Save","Gravar"
|
21 |
+
"Edit Featured Popup '%s'","Editar a Featured Popup '%s'"
|
22 |
+
"New Featured Popup","Nova Featured Popup"
|
23 |
+
"Popup Image","Imagem do Popup"
|
24 |
+
"Width Image","Largura da Imagem"
|
25 |
+
"Height Image","Altura da Imagem"
|
26 |
+
"Url","Url"
|
27 |
+
"Delay Start","Tempo de espera para abertura"
|
28 |
+
"Delay Close","Tempo de espera para fechar"
|
29 |
+
"Priority","Prioridade"
|
30 |
+
"Opacity","Opacidade"
|
31 |
+
"Please upload an image.","Por favor faça upload de uma imagem."
|
32 |
+
"Add New Image","Adicionar Nova Imagem"
|
33 |
+
"Assigned Images","Imagens Associadas"
|
34 |
+
"Date Settings","Configuração das Datas"
|
35 |
+
"Popup Settings","Configuração do Popup"
|
app/locale/pt_BR/Toogas_Toogaslda.csv
ADDED
@@ -0,0 +1,3 @@
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
"Contact Us","Contacte-nos"
|
2 |
+
"Information about Toogas","Sobre a Toogas!"
|
3 |
+
"Contact us!","Contacte-nos!"
|
app/locale/pt_PT/Toogas_Featuredpopup.csv
ADDED
@@ -0,0 +1,35 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
"Range of dates wrong","Intevalo de datas errado"
|
2 |
+
"Item does not exist","O Item não existe"
|
3 |
+
"The featured popup has been saved.","A Featured Popup foi gravada com sucesso."
|
4 |
+
"Unable to find item to save","Não foi possÃvel encontrar o registo para gravação."
|
5 |
+
"Disabled","Não activo"
|
6 |
+
"Enabled","Activo"
|
7 |
+
"Featured Popup","Featured Popup"
|
8 |
+
"Add Featured Popup","Adicionar Featured Popup"
|
9 |
+
"ID","ID"
|
10 |
+
"Name","Nome"
|
11 |
+
"Link","Link"
|
12 |
+
"From:","De:"
|
13 |
+
"To:","Até:"
|
14 |
+
"Status","Estado"
|
15 |
+
"Store View","Vista de Loja"
|
16 |
+
"Action","Acção"
|
17 |
+
"Edit","Editar"
|
18 |
+
"Delete","Apagar"
|
19 |
+
"Are you sure?","Tem a certeza?"
|
20 |
+
"Save","Gravar"
|
21 |
+
"Edit Featured Popup '%s'","Editar a Featured Popup '%s'"
|
22 |
+
"New Featured Popup","Nova Featured Popup"
|
23 |
+
"Popup Image","Imagem do Popup"
|
24 |
+
"Width Image","Largura da Imagem"
|
25 |
+
"Height Image","Altura da Imagem"
|
26 |
+
"Url","Url"
|
27 |
+
"Delay Start","Tempo de espera para abertura"
|
28 |
+
"Delay Close","Tempo de espera para fechar"
|
29 |
+
"Priority","Prioridade"
|
30 |
+
"Opacity","Opacidade"
|
31 |
+
"Please upload an image.","Por favor faça upload de uma imagem."
|
32 |
+
"Add New Image","Adicionar Nova Imagem"
|
33 |
+
"Assigned Images","Imagens Associadas"
|
34 |
+
"Date Settings","Configuração das Datas"
|
35 |
+
"Popup Settings","Configuração do Popup"
|
app/locale/pt_PT/Toogas_Toogaslda.csv
ADDED
@@ -0,0 +1,3 @@
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
"Contact Us","Contacte-nos"
|
2 |
+
"Information about Toogas","Sobre a Toogas!"
|
3 |
+
"Contact us!","Contacte-nos!"
|
js/toogas/featuredpopup/js/window.js
ADDED
@@ -0,0 +1,305 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
|
2 |
+
var Window=Class.create();Window.keepMultiModalWindow=false;Window.hasEffectLib=(typeof Effect!='undefined');Window.resizeEffectDuration=0.4;Window.prototype={initialize:function(){var id;var optionIndex=0;if(arguments.length>0){if(typeof arguments[0]=="string"){id=arguments[0];optionIndex=1;}
|
3 |
+
else
|
4 |
+
id=arguments[0]?arguments[0].id:null;}
|
5 |
+
if(!id)
|
6 |
+
id="window_"+new Date().getTime();if($(id))
|
7 |
+
alert("Window "+id+" is already registered in the DOM! Make sure you use setDestroyOnClose() or destroyOnClose: true in the constructor");this.options=Object.extend({className:"dialog",blurClassName:null,minWidth:100,minHeight:20,resizable:true,closable:true,minimizable:true,maximizable:true,draggable:true,userData:null,showEffect:(Window.hasEffectLib?Effect.Appear:Element.show),hideEffect:(Window.hasEffectLib?Effect.Fade:Element.hide),showEffectOptions:{},hideEffectOptions:{},effectOptions:null,parent:document.body,title:" ",url:null,onload:Prototype.emptyFunction,width:200,height:300,opacity:1,recenterAuto:true,wiredDrag:false,closeCallback:null,destroyOnClose:false,gridX:1,gridY:1},arguments[optionIndex]||{});if(this.options.blurClassName)
|
8 |
+
this.options.focusClassName=this.options.className;if(typeof this.options.top=="undefined"&&typeof this.options.bottom=="undefined")
|
9 |
+
this.options.top=this._round(Math.random()*500,this.options.gridY);if(typeof this.options.left=="undefined"&&typeof this.options.right=="undefined")
|
10 |
+
this.options.left=this._round(Math.random()*500,this.options.gridX);if(this.options.effectOptions){Object.extend(this.options.hideEffectOptions,this.options.effectOptions);Object.extend(this.options.showEffectOptions,this.options.effectOptions);if(this.options.showEffect==Element.Appear)
|
11 |
+
this.options.showEffectOptions.to=this.options.opacity;}
|
12 |
+
if(Window.hasEffectLib){if(this.options.showEffect==Effect.Appear)
|
13 |
+
this.options.showEffectOptions.to=this.options.opacity;if(this.options.hideEffect==Effect.Fade)
|
14 |
+
this.options.hideEffectOptions.from=this.options.opacity;}
|
15 |
+
if(this.options.hideEffect==Element.hide)
|
16 |
+
this.options.hideEffect=function(){Element.hide(this.element);if(this.options.destroyOnClose)this.destroy();}.bind(this)
|
17 |
+
if(this.options.parent!=document.body)
|
18 |
+
this.options.parent=$(this.options.parent);this.element=this._createWindow(id);this.element.win=this;this.eventMouseDown=this._initDrag.bindAsEventListener(this);this.eventMouseUp=this._endDrag.bindAsEventListener(this);this.eventMouseMove=this._updateDrag.bindAsEventListener(this);this.eventOnLoad=this._getWindowBorderSize.bindAsEventListener(this);this.eventMouseDownContent=this.toFront.bindAsEventListener(this);this.eventResize=this._recenter.bindAsEventListener(this);this.topbar=$(this.element.id+"_top");this.bottombar=$(this.element.id+"_bottom");this.content=$(this.element.id+"_content");Event.observe(this.topbar,"mousedown",this.eventMouseDown);Event.observe(this.bottombar,"mousedown",this.eventMouseDown);Event.observe(this.content,"mousedown",this.eventMouseDownContent);Event.observe(window,"load",this.eventOnLoad);Event.observe(window,"resize",this.eventResize);Event.observe(window,"scroll",this.eventResize);Event.observe(this.options.parent,"scroll",this.eventResize);if(this.options.draggable){var that=this;[this.topbar,this.topbar.up().previous(),this.topbar.up().next()].each(function(element){element.observe("mousedown",that.eventMouseDown);element.addClassName("top_draggable");});[this.bottombar.up(),this.bottombar.up().previous(),this.bottombar.up().next()].each(function(element){element.observe("mousedown",that.eventMouseDown);element.addClassName("bottom_draggable");});}
|
19 |
+
if(this.options.resizable){this.sizer=$(this.element.id+"_sizer");Event.observe(this.sizer,"mousedown",this.eventMouseDown);}
|
20 |
+
this.useLeft=null;this.useTop=null;if(typeof this.options.left!="undefined"){this.element.setStyle({left:parseFloat(this.options.left)+'px'});this.useLeft=true;}
|
21 |
+
else{this.element.setStyle({right:parseFloat(this.options.right)+'px'});this.useLeft=false;}
|
22 |
+
if(typeof this.options.top!="undefined"){this.element.setStyle({top:parseFloat(this.options.top)+'px'});this.useTop=true;}
|
23 |
+
else{this.element.setStyle({bottom:parseFloat(this.options.bottom)+'px'});this.useTop=false;}
|
24 |
+
this.storedLocation=null;this.setOpacity(this.options.opacity);if(this.options.zIndex)
|
25 |
+
this.setZIndex(this.options.zIndex)
|
26 |
+
if(this.options.destroyOnClose)
|
27 |
+
this.setDestroyOnClose(true);this._getWindowBorderSize();this.width=this.options.width;this.height=this.options.height;this.visible=false;this.constraint=false;this.constraintPad={top:0,left:0,bottom:0,right:0};if(this.width&&this.height)
|
28 |
+
this.setSize(this.options.width,this.options.height);this.setTitle(this.options.title)
|
29 |
+
Windows.register(this);},destroy:function(){this._notify("onDestroy");Event.stopObserving(this.topbar,"mousedown",this.eventMouseDown);Event.stopObserving(this.bottombar,"mousedown",this.eventMouseDown);Event.stopObserving(this.content,"mousedown",this.eventMouseDownContent);Event.stopObserving(window,"load",this.eventOnLoad);Event.stopObserving(window,"resize",this.eventResize);Event.stopObserving(window,"scroll",this.eventResize);Event.stopObserving(this.content,"load",this.options.onload);if(this._oldParent){var content=this.getContent();var originalContent=null;for(var i=0;i<content.childNodes.length;i++){originalContent=content.childNodes[i];if(originalContent.nodeType==1)
|
30 |
+
break;originalContent=null;}
|
31 |
+
if(originalContent)
|
32 |
+
this._oldParent.appendChild(originalContent);this._oldParent=null;}
|
33 |
+
if(this.sizer)
|
34 |
+
Event.stopObserving(this.sizer,"mousedown",this.eventMouseDown);if(this.options.url)
|
35 |
+
this.content.src=null
|
36 |
+
if(this.iefix)
|
37 |
+
Element.remove(this.iefix);Element.remove(this.element);Windows.unregister(this);},setCloseCallback:function(callback){this.options.closeCallback=callback;},getContent:function(){return this.content;},setContent:function(id,autoresize,autoposition){var element=$(id);if(null==element)throw"Unable to find element '"+id+"' in DOM";this._oldParent=element.parentNode;var d=null;var p=null;if(autoresize)
|
38 |
+
d=Element.getDimensions(element);if(autoposition)
|
39 |
+
p=Position.cumulativeOffset(element);var content=this.getContent();this.setHTMLContent("");content=this.getContent();content.appendChild(element);element.show();if(autoresize)
|
40 |
+
this.setSize(d.width,d.height);if(autoposition)
|
41 |
+
this.setLocation(p[1]-this.heightN,p[0]-this.widthW);},setHTMLContent:function(html){if(this.options.url){this.content.src=null;this.options.url=null;var content="<div id=\""+this.getId()+"_content\" class=\""+this.options.className+"_content\"> </div>";$(this.getId()+"_table_content").innerHTML=content;this.content=$(this.element.id+"_content");}
|
42 |
+
this.getContent().innerHTML=html;},setAjaxContent:function(url,options,showCentered,showModal){this.showFunction=showCentered?"showCenter":"show";this.showModal=showModal||false;options=options||{};this.setHTMLContent("");this.onComplete=options.onComplete;if(!this._onCompleteHandler)
|
43 |
+
this._onCompleteHandler=this._setAjaxContent.bind(this);options.onComplete=this._onCompleteHandler;new Ajax.Request(url,options);options.onComplete=this.onComplete;},_setAjaxContent:function(originalRequest){Element.update(this.getContent(),originalRequest.responseText);if(this.onComplete)
|
44 |
+
this.onComplete(originalRequest);this.onComplete=null;this[this.showFunction](this.showModal)},setURL:function(url){if(this.options.url)
|
45 |
+
this.content.src=null;this.options.url=url;var content="<iframe frameborder='0' name='"+this.getId()+"_content' id='"+this.getId()+"_content' src='"+url+"' width='"+this.width+"' height='"+this.height+"'> </iframe>";$(this.getId()+"_table_content").innerHTML=content;this.content=$(this.element.id+"_content");},getURL:function(){return this.options.url?this.options.url:null;},refresh:function(){if(this.options.url)
|
46 |
+
$(this.element.getAttribute('id')+'_content').src=this.options.url;},setCookie:function(name,expires,path,domain,secure){name=name||this.element.id;this.cookie=[name,expires,path,domain,secure];var value=WindowUtilities.getCookie(name)
|
47 |
+
if(value){var values=value.split(',');var x=values[0].split(':');var y=values[1].split(':');var w=parseFloat(values[2]),h=parseFloat(values[3]);var mini=values[4];var maxi=values[5];this.setSize(w,h);if(mini=="true")
|
48 |
+
this.doMinimize=true;else if(maxi=="true")
|
49 |
+
this.doMaximize=true;this.useLeft=x[0]=="l";this.useTop=y[0]=="t";this.element.setStyle(this.useLeft?{left:x[1]}:{right:x[1]});this.element.setStyle(this.useTop?{top:y[1]}:{bottom:y[1]});}},getId:function(){return this.element.id;},setDestroyOnClose:function(){this.options.destroyOnClose=true;},setConstraint:function(bool,padding){this.constraint=bool;this.constraintPad=Object.extend(this.constraintPad,padding||{});if(this.useTop&&this.useLeft)
|
50 |
+
this.setLocation(parseFloat(this.element.style.top),parseFloat(this.element.style.left));},_initDrag:function(event){if(Event.element(event)==this.sizer&&this.isMinimized())
|
51 |
+
return;if(Event.element(event)!=this.sizer&&this.isMaximized())
|
52 |
+
return;if(Prototype.Browser.IE&&this.heightN==0)
|
53 |
+
this._getWindowBorderSize();this.pointer=[this._round(Event.pointerX(event),this.options.gridX),this._round(Event.pointerY(event),this.options.gridY)];if(this.options.wiredDrag)
|
54 |
+
this.currentDrag=this._createWiredElement();else
|
55 |
+
this.currentDrag=this.element;if(Event.element(event)==this.sizer){this.doResize=true;this.widthOrg=this.width;this.heightOrg=this.height;this.bottomOrg=parseFloat(this.element.getStyle('bottom'));this.rightOrg=parseFloat(this.element.getStyle('right'));this._notify("onStartResize");}
|
56 |
+
else{this.doResize=false;var closeButton=$(this.getId()+'_close');if(closeButton&&Position.within(closeButton,this.pointer[0],this.pointer[1])){this.currentDrag=null;return;}
|
57 |
+
this.toFront();if(!this.options.draggable)
|
58 |
+
return;this._notify("onStartMove");}
|
59 |
+
Event.observe(document,"mouseup",this.eventMouseUp,false);Event.observe(document,"mousemove",this.eventMouseMove,false);WindowUtilities.disableScreen('__invisible__','__invisible__',this.overlayOpacity);document.body.ondrag=function(){return false;};document.body.onselectstart=function(){return false;};this.currentDrag.show();Event.stop(event);},_round:function(val,round){return round==1?val:val=Math.floor(val/round)*round;},_updateDrag:function(event){var pointer=[this._round(Event.pointerX(event),this.options.gridX),this._round(Event.pointerY(event),this.options.gridY)];var dx=pointer[0]-this.pointer[0];var dy=pointer[1]-this.pointer[1];if(this.doResize){var w=this.widthOrg+dx;var h=this.heightOrg+dy;dx=this.width-this.widthOrg
|
60 |
+
dy=this.height-this.heightOrg
|
61 |
+
if(this.useLeft)
|
62 |
+
w=this._updateWidthConstraint(w)
|
63 |
+
else
|
64 |
+
this.currentDrag.setStyle({right:(this.rightOrg-dx)+'px'});if(this.useTop)
|
65 |
+
h=this._updateHeightConstraint(h)
|
66 |
+
else
|
67 |
+
this.currentDrag.setStyle({bottom:(this.bottomOrg-dy)+'px'});this.setSize(w,h);this._notify("onResize");}
|
68 |
+
else{this.pointer=pointer;if(this.useLeft){var left=parseFloat(this.currentDrag.getStyle('left'))+dx;var newLeft=this._updateLeftConstraint(left);this.pointer[0]+=newLeft-left;this.currentDrag.setStyle({left:newLeft+'px'});}
|
69 |
+
else
|
70 |
+
this.currentDrag.setStyle({right:parseFloat(this.currentDrag.getStyle('right'))-dx+'px'});if(this.useTop){var top=parseFloat(this.currentDrag.getStyle('top'))+dy;var newTop=this._updateTopConstraint(top);this.pointer[1]+=newTop-top;this.currentDrag.setStyle({top:newTop+'px'});}
|
71 |
+
else
|
72 |
+
this.currentDrag.setStyle({bottom:parseFloat(this.currentDrag.getStyle('bottom'))-dy+'px'});this._notify("onMove");}
|
73 |
+
if(this.iefix)
|
74 |
+
this._fixIEOverlapping();this._removeStoreLocation();Event.stop(event);},_endDrag:function(event){WindowUtilities.enableScreen('__invisible__');if(this.doResize)
|
75 |
+
this._notify("onEndResize");else
|
76 |
+
this._notify("onEndMove");Event.stopObserving(document,"mouseup",this.eventMouseUp,false);Event.stopObserving(document,"mousemove",this.eventMouseMove,false);Event.stop(event);this._hideWiredElement();this._saveCookie()
|
77 |
+
document.body.ondrag=null;document.body.onselectstart=null;},_updateLeftConstraint:function(left){if(this.constraint&&this.useLeft&&this.useTop){var width=this.options.parent==document.body?WindowUtilities.getPageSize().windowWidth:this.options.parent.getDimensions().width;if(left<this.constraintPad.left)
|
78 |
+
left=this.constraintPad.left;if(left+this.width+this.widthE+this.widthW>width-this.constraintPad.right)
|
79 |
+
left=width-this.constraintPad.right-this.width-this.widthE-this.widthW;}
|
80 |
+
return left;},_updateTopConstraint:function(top){if(this.constraint&&this.useLeft&&this.useTop){var height=this.options.parent==document.body?WindowUtilities.getPageSize().windowHeight:this.options.parent.getDimensions().height;var h=this.height+this.heightN+this.heightS;if(top<this.constraintPad.top)
|
81 |
+
top=this.constraintPad.top;if(top+h>height-this.constraintPad.bottom)
|
82 |
+
top=height-this.constraintPad.bottom-h;}
|
83 |
+
return top;},_updateWidthConstraint:function(w){if(this.constraint&&this.useLeft&&this.useTop){var width=this.options.parent==document.body?WindowUtilities.getPageSize().windowWidth:this.options.parent.getDimensions().width;var left=parseFloat(this.element.getStyle("left"));if(left+w+this.widthE+this.widthW>width-this.constraintPad.right)
|
84 |
+
w=width-this.constraintPad.right-left-this.widthE-this.widthW;}
|
85 |
+
return w;},_updateHeightConstraint:function(h){if(this.constraint&&this.useLeft&&this.useTop){var height=this.options.parent==document.body?WindowUtilities.getPageSize().windowHeight:this.options.parent.getDimensions().height;var top=parseFloat(this.element.getStyle("top"));if(top+h+this.heightN+this.heightS>height-this.constraintPad.bottom)
|
86 |
+
h=height-this.constraintPad.bottom-top-this.heightN-this.heightS;}
|
87 |
+
return h;},_createWindow:function(id){var className=this.options.className;var win=document.createElement("div");win.setAttribute('id',id);win.className="dialog";var content;if(this.options.url)
|
88 |
+
content="<iframe frameborder=\"0\" name=\""+id+"_content\" id=\""+id+"_content\" src=\""+this.options.url+"\"> </iframe>";else
|
89 |
+
content="<div id=\""+id+"_content\" class=\""+className+"_content\"> </div>";var closeDiv=this.options.closable?"<div class='"+className+"_close' id='"+id+"_close' onclick='Windows.close(\""+id+"\", event)'> </div>":"";var minDiv=this.options.minimizable?"<div class='"+className+"_minimize' id='"+id+"_minimize' onclick='Windows.minimize(\""+id+"\", event)'> </div>":"";var maxDiv=this.options.maximizable?"<div class='"+className+"_maximize' id='"+id+"_maximize' onclick='Windows.maximize(\""+id+"\", event)'> </div>":"";var seAttributes=this.options.resizable?"class='"+className+"_sizer' id='"+id+"_sizer'":"class='"+className+"_se'";var blank="../themes/default/blank.gif";win.innerHTML=closeDiv+minDiv+maxDiv+"\
|
90 |
+
<table id='"+id+"_row1' class=\"top table_window\">\
|
91 |
+
<tr>\
|
92 |
+
<td class='"+className+"_nw'></td>\
|
93 |
+
<td class='"+className+"_n'><div id='"+id+"_top' class='"+className+"_title title_window'>"+this.options.title+"</div></td>\
|
94 |
+
<td class='"+className+"_ne'></td>\
|
95 |
+
</tr>\
|
96 |
+
</table>\
|
97 |
+
<table id='"+id+"_row2' class=\"mid table_window\">\
|
98 |
+
<tr>\
|
99 |
+
<td class='"+className+"_w'></td>\
|
100 |
+
<td id='"+id+"_table_content' class='"+className+"_content' valign='top'>"+content+"</td>\
|
101 |
+
<td class='"+className+"_e'></td>\
|
102 |
+
</tr>\
|
103 |
+
</table>\
|
104 |
+
<table id='"+id+"_row3' class=\"bot table_window\">\
|
105 |
+
<tr>\
|
106 |
+
<td class='"+className+"_sw'></td>\
|
107 |
+
<td class='"+className+"_s'><div id='"+id+"_bottom' class='status_bar'><span style='float:left; width:1px; height:1px'></span></div></td>\
|
108 |
+
<td "+seAttributes+"></td>\
|
109 |
+
</tr>\
|
110 |
+
</table>\
|
111 |
+
";Element.hide(win);this.options.parent.insertBefore(win,this.options.parent.firstChild);Event.observe($(id+"_content"),"load",this.options.onload);return win;},changeClassName:function(newClassName){var className=this.options.className;var id=this.getId();$A(["_close","_minimize","_maximize","_sizer","_content"]).each(function(value){this._toggleClassName($(id+value),className+value,newClassName+value)}.bind(this));this._toggleClassName($(id+"_top"),className+"_title",newClassName+"_title");$$("#"+id+" td").each(function(td){td.className=td.className.sub(className,newClassName);});this.options.className=newClassName;},_toggleClassName:function(element,oldClassName,newClassName){if(element){element.removeClassName(oldClassName);element.addClassName(newClassName);}},setLocation:function(top,left){top=this._updateTopConstraint(top);left=this._updateLeftConstraint(left);var e=this.currentDrag||this.element;e.setStyle({top:top+'px'});e.setStyle({left:left+'px'});this.useLeft=true;this.useTop=true;},getLocation:function(){var location={};if(this.useTop)
|
112 |
+
location=Object.extend(location,{top:this.element.getStyle("top")});else
|
113 |
+
location=Object.extend(location,{bottom:this.element.getStyle("bottom")});if(this.useLeft)
|
114 |
+
location=Object.extend(location,{left:this.element.getStyle("left")});else
|
115 |
+
location=Object.extend(location,{right:this.element.getStyle("right")});return location;},getSize:function(){return{width:this.width,height:this.height};},setSize:function(width,height,useEffect){width=parseFloat(width);height=parseFloat(height);if(!this.minimized&&width<this.options.minWidth)
|
116 |
+
width=this.options.minWidth;if(!this.minimized&&height<this.options.minHeight)
|
117 |
+
height=this.options.minHeight;if(this.options.maxHeight&&height>this.options.maxHeight)
|
118 |
+
height=this.options.maxHeight;if(this.options.maxWidth&&width>this.options.maxWidth)
|
119 |
+
width=this.options.maxWidth;if(this.useTop&&this.useLeft&&Window.hasEffectLib&&Effect.ResizeWindow&&useEffect){new Effect.ResizeWindow(this,null,null,width,height,{duration:Window.resizeEffectDuration});}else{this.width=width;this.height=height;var e=this.currentDrag?this.currentDrag:this.element;e.setStyle({width:width+this.widthW+this.widthE+"px"})
|
120 |
+
e.setStyle({height:height+this.heightN+this.heightS+"px"})
|
121 |
+
if(!this.currentDrag||this.currentDrag==this.element){var content=$(this.element.id+'_content');content.setStyle({height:height+'px'});content.setStyle({width:width+'px'});}}},updateHeight:function(){this.setSize(this.width,this.content.scrollHeight,true);},updateWidth:function(){this.setSize(this.content.scrollWidth,this.height,true);},toFront:function(){if(this.element.style.zIndex<Windows.maxZIndex)
|
122 |
+
this.setZIndex(Windows.maxZIndex+1);if(this.iefix)
|
123 |
+
this._fixIEOverlapping();},getBounds:function(insideOnly){if(!this.width||!this.height||!this.visible)
|
124 |
+
this.computeBounds();var w=this.width;var h=this.height;if(!insideOnly){w+=this.widthW+this.widthE;h+=this.heightN+this.heightS;}
|
125 |
+
var bounds=Object.extend(this.getLocation(),{width:w+"px",height:h+"px"});return bounds;},computeBounds:function(){if(!this.width||!this.height){var size=WindowUtilities._computeSize(this.content.innerHTML,this.content.id,this.width,this.height,0,this.options.className)
|
126 |
+
if(this.height)
|
127 |
+
this.width=size+5
|
128 |
+
else
|
129 |
+
this.height=size+5}
|
130 |
+
this.setSize(this.width,this.height);if(this.centered)
|
131 |
+
this._center(this.centerTop,this.centerLeft);},show:function(modal){this.visible=true;if(modal){if(typeof this.overlayOpacity=="undefined"){var that=this;setTimeout(function(){that.show(modal)},10);return;}
|
132 |
+
Windows.addModalWindow(this);this.modal=true;this.setZIndex(Windows.maxZIndex+1);Windows.unsetOverflow(this);}
|
133 |
+
else
|
134 |
+
if(!this.element.style.zIndex)
|
135 |
+
this.setZIndex(Windows.maxZIndex+1);if(this.oldStyle)
|
136 |
+
this.getContent().setStyle({overflow:this.oldStyle});this.computeBounds();this._notify("onBeforeShow");if(this.options.showEffect!=Element.show&&this.options.showEffectOptions)
|
137 |
+
this.options.showEffect(this.element,this.options.showEffectOptions);else
|
138 |
+
this.options.showEffect(this.element);this._checkIEOverlapping();WindowUtilities.focusedWindow=this
|
139 |
+
this._notify("onShow");},showCenter:function(modal,top,left){this.centered=true;this.centerTop=top;this.centerLeft=left;this.show(modal);},isVisible:function(){return this.visible;},_center:function(top,left){var windowScroll=WindowUtilities.getWindowScroll(this.options.parent);var pageSize=WindowUtilities.getPageSize(this.options.parent);if(typeof top=="undefined")
|
140 |
+
top=(pageSize.windowHeight-(this.height+this.heightN+this.heightS))/2;top+=windowScroll.top
|
141 |
+
if(typeof left=="undefined")
|
142 |
+
left=(pageSize.windowWidth-(this.width+this.widthW+this.widthE))/2;left+=windowScroll.left
|
143 |
+
this.setLocation(top,left);this.toFront();},_recenter:function(event){if(this.centered){var pageSize=WindowUtilities.getPageSize(this.options.parent);var windowScroll=WindowUtilities.getWindowScroll(this.options.parent);if(this.pageSize&&this.pageSize.windowWidth==pageSize.windowWidth&&this.pageSize.windowHeight==pageSize.windowHeight&&this.windowScroll.left==windowScroll.left&&this.windowScroll.top==windowScroll.top)
|
144 |
+
return;this.pageSize=pageSize;this.windowScroll=windowScroll;if($('overlay_modal'))
|
145 |
+
$('overlay_modal').setStyle({height:(pageSize.pageHeight+'px')});if(this.options.recenterAuto)
|
146 |
+
this._center(this.centerTop,this.centerLeft);}},hide:function(){this.visible=false;if(this.modal){Windows.removeModalWindow(this);Windows.resetOverflow();}
|
147 |
+
this.oldStyle=this.getContent().getStyle('overflow')||"auto"
|
148 |
+
this.getContent().setStyle({overflow:"hidden"});this.options.hideEffect(this.element,this.options.hideEffectOptions);if(this.iefix)
|
149 |
+
this.iefix.hide();if(!this.doNotNotifyHide)
|
150 |
+
this._notify("onHide");},close:function(){if(this.visible){if(this.options.closeCallback&&!this.options.closeCallback(this))
|
151 |
+
return;if(this.options.destroyOnClose){var destroyFunc=this.destroy.bind(this);if(this.options.hideEffectOptions.afterFinish){var func=this.options.hideEffectOptions.afterFinish;this.options.hideEffectOptions.afterFinish=function(){func();destroyFunc()}}
|
152 |
+
else
|
153 |
+
this.options.hideEffectOptions.afterFinish=function(){destroyFunc()}}
|
154 |
+
Windows.updateFocusedWindow();this.doNotNotifyHide=true;this.hide();this.doNotNotifyHide=false;this._notify("onClose");}},minimize:function(){if(this.resizing)
|
155 |
+
return;var r2=$(this.getId()+"_row2");if(!this.minimized){this.minimized=true;var dh=r2.getDimensions().height;this.r2Height=dh;var h=this.element.getHeight()-dh;if(this.useLeft&&this.useTop&&Window.hasEffectLib&&Effect.ResizeWindow){new Effect.ResizeWindow(this,null,null,null,this.height-dh,{duration:Window.resizeEffectDuration});}else{this.height-=dh;this.element.setStyle({height:h+"px"});r2.hide();}
|
156 |
+
if(!this.useTop){var bottom=parseFloat(this.element.getStyle('bottom'));this.element.setStyle({bottom:(bottom+dh)+'px'});}}
|
157 |
+
else{this.minimized=false;var dh=this.r2Height;this.r2Height=null;if(this.useLeft&&this.useTop&&Window.hasEffectLib&&Effect.ResizeWindow){new Effect.ResizeWindow(this,null,null,null,this.height+dh,{duration:Window.resizeEffectDuration});}
|
158 |
+
else{var h=this.element.getHeight()+dh;this.height+=dh;this.element.setStyle({height:h+"px"})
|
159 |
+
r2.show();}
|
160 |
+
if(!this.useTop){var bottom=parseFloat(this.element.getStyle('bottom'));this.element.setStyle({bottom:(bottom-dh)+'px'});}
|
161 |
+
this.toFront();}
|
162 |
+
this._notify("onMinimize");this._saveCookie()},maximize:function(){if(this.isMinimized()||this.resizing)
|
163 |
+
return;if(Prototype.Browser.IE&&this.heightN==0)
|
164 |
+
this._getWindowBorderSize();if(this.storedLocation!=null){this._restoreLocation();if(this.iefix)
|
165 |
+
this.iefix.hide();}
|
166 |
+
else{this._storeLocation();Windows.unsetOverflow(this);var windowScroll=WindowUtilities.getWindowScroll(this.options.parent);var pageSize=WindowUtilities.getPageSize(this.options.parent);var left=windowScroll.left;var top=windowScroll.top;if(this.options.parent!=document.body){windowScroll={top:0,left:0,bottom:0,right:0};var dim=this.options.parent.getDimensions();pageSize.windowWidth=dim.width;pageSize.windowHeight=dim.height;top=0;left=0;}
|
167 |
+
if(this.constraint){pageSize.windowWidth-=Math.max(0,this.constraintPad.left)+Math.max(0,this.constraintPad.right);pageSize.windowHeight-=Math.max(0,this.constraintPad.top)+Math.max(0,this.constraintPad.bottom);left+=Math.max(0,this.constraintPad.left);top+=Math.max(0,this.constraintPad.top);}
|
168 |
+
var width=pageSize.windowWidth-this.widthW-this.widthE;var height=pageSize.windowHeight-this.heightN-this.heightS;if(this.useLeft&&this.useTop&&Window.hasEffectLib&&Effect.ResizeWindow){new Effect.ResizeWindow(this,top,left,width,height,{duration:Window.resizeEffectDuration});}
|
169 |
+
else{this.setSize(width,height);this.element.setStyle(this.useLeft?{left:left}:{right:left});this.element.setStyle(this.useTop?{top:top}:{bottom:top});}
|
170 |
+
this.toFront();if(this.iefix)
|
171 |
+
this._fixIEOverlapping();}
|
172 |
+
this._notify("onMaximize");this._saveCookie()},isMinimized:function(){return this.minimized;},isMaximized:function(){return(this.storedLocation!=null);},setOpacity:function(opacity){if(Element.setOpacity)
|
173 |
+
Element.setOpacity(this.element,opacity);},setZIndex:function(zindex){this.element.setStyle({zIndex:zindex});Windows.updateZindex(zindex,this);},setTitle:function(newTitle){if(!newTitle||newTitle=="")
|
174 |
+
newTitle=" ";Element.update(this.element.id+'_top',newTitle);},getTitle:function(){return $(this.element.id+'_top').innerHTML;},setStatusBar:function(element){var statusBar=$(this.getId()+"_bottom");if(typeof(element)=="object"){if(this.bottombar.firstChild)
|
175 |
+
this.bottombar.replaceChild(element,this.bottombar.firstChild);else
|
176 |
+
this.bottombar.appendChild(element);}
|
177 |
+
else
|
178 |
+
this.bottombar.innerHTML=element;},_checkIEOverlapping:function(){if(!this.iefix&&(navigator.appVersion.indexOf('MSIE')>0)&&(navigator.userAgent.indexOf('Opera')<0)&&(this.element.getStyle('position')=='absolute')){new Insertion.After(this.element.id,'<iframe id="'+this.element.id+'_iefix" '+'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" '+'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');this.iefix=$(this.element.id+'_iefix');}
|
179 |
+
if(this.iefix)
|
180 |
+
setTimeout(this._fixIEOverlapping.bind(this),50);},_fixIEOverlapping:function(){Position.clone(this.element,this.iefix);this.iefix.style.zIndex=this.element.style.zIndex-1;this.iefix.show();},_getWindowBorderSize:function(event){var div=this._createHiddenDiv(this.options.className+"_n")
|
181 |
+
this.heightN=Element.getDimensions(div).height;div.parentNode.removeChild(div)
|
182 |
+
var div=this._createHiddenDiv(this.options.className+"_s")
|
183 |
+
this.heightS=Element.getDimensions(div).height;div.parentNode.removeChild(div)
|
184 |
+
var div=this._createHiddenDiv(this.options.className+"_e")
|
185 |
+
this.widthE=Element.getDimensions(div).width;div.parentNode.removeChild(div)
|
186 |
+
var div=this._createHiddenDiv(this.options.className+"_w")
|
187 |
+
this.widthW=Element.getDimensions(div).width;div.parentNode.removeChild(div);var div=document.createElement("div");div.className="overlay_"+this.options.className;document.body.appendChild(div);var that=this;setTimeout(function(){that.overlayOpacity=($(div).getStyle("opacity"));div.parentNode.removeChild(div);},10);if(Prototype.Browser.IE){this.heightS=$(this.getId()+"_row3").getDimensions().height;this.heightN=$(this.getId()+"_row1").getDimensions().height;}
|
188 |
+
if(Prototype.Browser.WebKit&&Prototype.Browser.WebKitVersion<420)
|
189 |
+
this.setSize(this.width,this.height);if(this.doMaximize)
|
190 |
+
this.maximize();if(this.doMinimize)
|
191 |
+
this.minimize();},_createHiddenDiv:function(className){var objBody=document.body;var win=document.createElement("div");win.setAttribute('id',this.element.id+"_tmp");win.className=className;win.style.display='none';win.innerHTML='';objBody.insertBefore(win,objBody.firstChild);return win;},_storeLocation:function(){if(this.storedLocation==null){this.storedLocation={useTop:this.useTop,useLeft:this.useLeft,top:this.element.getStyle('top'),bottom:this.element.getStyle('bottom'),left:this.element.getStyle('left'),right:this.element.getStyle('right'),width:this.width,height:this.height};}},_restoreLocation:function(){if(this.storedLocation!=null){this.useLeft=this.storedLocation.useLeft;this.useTop=this.storedLocation.useTop;if(this.useLeft&&this.useTop&&Window.hasEffectLib&&Effect.ResizeWindow)
|
192 |
+
new Effect.ResizeWindow(this,this.storedLocation.top,this.storedLocation.left,this.storedLocation.width,this.storedLocation.height,{duration:Window.resizeEffectDuration});else{this.element.setStyle(this.useLeft?{left:this.storedLocation.left}:{right:this.storedLocation.right});this.element.setStyle(this.useTop?{top:this.storedLocation.top}:{bottom:this.storedLocation.bottom});this.setSize(this.storedLocation.width,this.storedLocation.height);}
|
193 |
+
Windows.resetOverflow();this._removeStoreLocation();}},_removeStoreLocation:function(){this.storedLocation=null;},_saveCookie:function(){if(this.cookie){var value="";if(this.useLeft)
|
194 |
+
value+="l:"+(this.storedLocation?this.storedLocation.left:this.element.getStyle('left'))
|
195 |
+
else
|
196 |
+
value+="r:"+(this.storedLocation?this.storedLocation.right:this.element.getStyle('right'))
|
197 |
+
if(this.useTop)
|
198 |
+
value+=",t:"+(this.storedLocation?this.storedLocation.top:this.element.getStyle('top'))
|
199 |
+
else
|
200 |
+
value+=",b:"+(this.storedLocation?this.storedLocation.bottom:this.element.getStyle('bottom'))
|
201 |
+
value+=","+(this.storedLocation?this.storedLocation.width:this.width);value+=","+(this.storedLocation?this.storedLocation.height:this.height);value+=","+this.isMinimized();value+=","+this.isMaximized();WindowUtilities.setCookie(value,this.cookie)}},_createWiredElement:function(){if(!this.wiredElement){if(Prototype.Browser.IE)
|
202 |
+
this._getWindowBorderSize();var div=document.createElement("div");div.className="wired_frame "+this.options.className+"_wired_frame";div.style.position='absolute';this.options.parent.insertBefore(div,this.options.parent.firstChild);this.wiredElement=$(div);}
|
203 |
+
if(this.useLeft)
|
204 |
+
this.wiredElement.setStyle({left:this.element.getStyle('left')});else
|
205 |
+
this.wiredElement.setStyle({right:this.element.getStyle('right')});if(this.useTop)
|
206 |
+
this.wiredElement.setStyle({top:this.element.getStyle('top')});else
|
207 |
+
this.wiredElement.setStyle({bottom:this.element.getStyle('bottom')});var dim=this.element.getDimensions();this.wiredElement.setStyle({width:dim.width+"px",height:dim.height+"px"});this.wiredElement.setStyle({zIndex:Windows.maxZIndex+30});return this.wiredElement;},_hideWiredElement:function(){if(!this.wiredElement||!this.currentDrag)
|
208 |
+
return;if(this.currentDrag==this.element)
|
209 |
+
this.currentDrag=null;else{if(this.useLeft)
|
210 |
+
this.element.setStyle({left:this.currentDrag.getStyle('left')});else
|
211 |
+
this.element.setStyle({right:this.currentDrag.getStyle('right')});if(this.useTop)
|
212 |
+
this.element.setStyle({top:this.currentDrag.getStyle('top')});else
|
213 |
+
this.element.setStyle({bottom:this.currentDrag.getStyle('bottom')});this.currentDrag.hide();this.currentDrag=null;if(this.doResize)
|
214 |
+
this.setSize(this.width,this.height);}},_notify:function(eventName){if(this.options[eventName])
|
215 |
+
this.options[eventName](this);else
|
216 |
+
Windows.notify(eventName,this);}};var Windows={windows:[],modalWindows:[],observers:[],focusedWindow:null,maxZIndex:0,overlayShowEffectOptions:{duration:0.5},overlayHideEffectOptions:{duration:0.5},addObserver:function(observer){this.removeObserver(observer);this.observers.push(observer);},removeObserver:function(observer){this.observers=this.observers.reject(function(o){return o==observer});},notify:function(eventName,win){this.observers.each(function(o){if(o[eventName])o[eventName](eventName,win);});},getWindow:function(id){return this.windows.detect(function(d){return d.getId()==id});},getFocusedWindow:function(){return this.focusedWindow;},updateFocusedWindow:function(){this.focusedWindow=this.windows.length>=2?this.windows[this.windows.length-2]:null;},register:function(win){this.windows.push(win);},addModalWindow:function(win){if(this.modalWindows.length==0){WindowUtilities.disableScreen(win.options.className,'overlay_modal',win.overlayOpacity,win.getId(),win.options.parent);}
|
217 |
+
else{if(Window.keepMultiModalWindow){$('overlay_modal').style.zIndex=Windows.maxZIndex+1;Windows.maxZIndex+=1;WindowUtilities._hideSelect(this.modalWindows.last().getId());}
|
218 |
+
else
|
219 |
+
this.modalWindows.last().element.hide();WindowUtilities._showSelect(win.getId());}
|
220 |
+
this.modalWindows.push(win);},removeModalWindow:function(win){this.modalWindows.pop();if(this.modalWindows.length==0)
|
221 |
+
WindowUtilities.enableScreen();else{if(Window.keepMultiModalWindow){this.modalWindows.last().toFront();WindowUtilities._showSelect(this.modalWindows.last().getId());}
|
222 |
+
else
|
223 |
+
this.modalWindows.last().element.show();}},register:function(win){this.windows.push(win);},unregister:function(win){this.windows=this.windows.reject(function(d){return d==win});},closeAll:function(){this.windows.each(function(w){Windows.close(w.getId())});},closeAllModalWindows:function(){WindowUtilities.enableScreen();this.modalWindows.each(function(win){if(win)win.close()});},minimize:function(id,event){var win=this.getWindow(id)
|
224 |
+
if(win&&win.visible)
|
225 |
+
win.minimize();Event.stop(event);},maximize:function(id,event){var win=this.getWindow(id)
|
226 |
+
if(win&&win.visible)
|
227 |
+
win.maximize();Event.stop(event);},close:function(id,event){var win=this.getWindow(id);if(win)
|
228 |
+
win.close();if(event)
|
229 |
+
Event.stop(event);},blur:function(id){var win=this.getWindow(id);if(!win)
|
230 |
+
return;if(win.options.blurClassName)
|
231 |
+
win.changeClassName(win.options.blurClassName);if(this.focusedWindow==win)
|
232 |
+
this.focusedWindow=null;win._notify("onBlur");},focus:function(id){var win=this.getWindow(id);if(!win)
|
233 |
+
return;if(this.focusedWindow)
|
234 |
+
this.blur(this.focusedWindow.getId())
|
235 |
+
if(win.options.focusClassName)
|
236 |
+
win.changeClassName(win.options.focusClassName);this.focusedWindow=win;win._notify("onFocus");},unsetOverflow:function(except){this.windows.each(function(d){d.oldOverflow=d.getContent().getStyle("overflow")||"auto";d.getContent().setStyle({overflow:"hidden"})});if(except&&except.oldOverflow)
|
237 |
+
except.getContent().setStyle({overflow:except.oldOverflow});},resetOverflow:function(){this.windows.each(function(d){if(d.oldOverflow)d.getContent().setStyle({overflow:d.oldOverflow})});},updateZindex:function(zindex,win){if(zindex>this.maxZIndex){this.maxZIndex=zindex;if(this.focusedWindow)
|
238 |
+
this.blur(this.focusedWindow.getId())}
|
239 |
+
this.focusedWindow=win;if(this.focusedWindow)
|
240 |
+
this.focus(this.focusedWindow.getId())}};var Dialog={dialogId:null,onCompleteFunc:null,callFunc:null,parameters:null,confirm:function(content,parameters){if(content&&typeof content!="string"){Dialog._runAjaxRequest(content,parameters,Dialog.confirm);return}
|
241 |
+
content=content||"";parameters=parameters||{};var okLabel=parameters.okLabel?parameters.okLabel:"Ok";var cancelLabel=parameters.cancelLabel?parameters.cancelLabel:"Cancel";parameters=Object.extend(parameters,parameters.windowParameters||{});parameters.windowParameters=parameters.windowParameters||{};parameters.className=parameters.className||"alert";var okButtonClass="class ='"+(parameters.buttonClass?parameters.buttonClass+" ":"")+" ok_button'"
|
242 |
+
var cancelButtonClass="class ='"+(parameters.buttonClass?parameters.buttonClass+" ":"")+" cancel_button'"
|
243 |
+
var content="\
|
244 |
+
<div class='"+parameters.className+"_message'>"+content+"</div>\
|
245 |
+
<div class='"+parameters.className+"_buttons'>\
|
246 |
+
<input type='button' value='"+okLabel+"' onclick='Dialog.okCallback()' "+okButtonClass+"/>\
|
247 |
+
<input type='button' value='"+cancelLabel+"' onclick='Dialog.cancelCallback()' "+cancelButtonClass+"/>\
|
248 |
+
</div>\
|
249 |
+
";return this._openDialog(content,parameters)},alert:function(content,parameters){if(content&&typeof content!="string"){Dialog._runAjaxRequest(content,parameters,Dialog.alert);return}
|
250 |
+
content=content||"";parameters=parameters||{};var okLabel=parameters.okLabel?parameters.okLabel:"Ok";parameters=Object.extend(parameters,parameters.windowParameters||{});parameters.windowParameters=parameters.windowParameters||{};parameters.className=parameters.className||"alert";var okButtonClass="class ='"+(parameters.buttonClass?parameters.buttonClass+" ":"")+" ok_button'"
|
251 |
+
var content="\
|
252 |
+
<div class='"+parameters.className+"_message'>"+content+"</div>\
|
253 |
+
<div class='"+parameters.className+"_buttons'>\
|
254 |
+
<input type='button' value='"+okLabel+"' onclick='Dialog.okCallback()' "+okButtonClass+"/>\
|
255 |
+
</div>";return this._openDialog(content,parameters)},info:function(content,parameters){if(content&&typeof content!="string"){Dialog._runAjaxRequest(content,parameters,Dialog.info);return}
|
256 |
+
content=content||"";parameters=parameters||{};parameters=Object.extend(parameters,parameters.windowParameters||{});parameters.windowParameters=parameters.windowParameters||{};parameters.className=parameters.className||"alert";var content="<div id='modal_dialog_message' class='"+parameters.className+"_message'>"+content+"</div>";if(parameters.showProgress)
|
257 |
+
content+="<div id='modal_dialog_progress' class='"+parameters.className+"_progress'> </div>";parameters.ok=null;parameters.cancel=null;return this._openDialog(content,parameters)},setInfoMessage:function(message){$('modal_dialog_message').update(message);},closeInfo:function(){Windows.close(this.dialogId);},_openDialog:function(content,parameters){var className=parameters.className;if(!parameters.height&&!parameters.width){parameters.width=WindowUtilities.getPageSize(parameters.options.parent||document.body).pageWidth/2;}
|
258 |
+
if(parameters.id)
|
259 |
+
this.dialogId=parameters.id;else{var t=new Date();this.dialogId='modal_dialog_'+t.getTime();parameters.id=this.dialogId;}
|
260 |
+
if(!parameters.height||!parameters.width){var size=WindowUtilities._computeSize(content,this.dialogId,parameters.width,parameters.height,5,className)
|
261 |
+
if(parameters.height)
|
262 |
+
parameters.width=size+5
|
263 |
+
else
|
264 |
+
parameters.height=size+5}
|
265 |
+
parameters.effectOptions=parameters.effectOptions;parameters.resizable=parameters.resizable||false;parameters.minimizable=parameters.minimizable||false;parameters.maximizable=parameters.maximizable||false;parameters.draggable=parameters.draggable||false;parameters.closable=parameters.closable||false;var win=new Window(parameters);win.getContent().innerHTML=content;win.showCenter(true,parameters.top,parameters.left);win.setDestroyOnClose();win.cancelCallback=parameters.onCancel||parameters.cancel;win.okCallback=parameters.onOk||parameters.ok;return win;},_getAjaxContent:function(originalRequest){Dialog.callFunc(originalRequest.responseText,Dialog.parameters)},_runAjaxRequest:function(message,parameters,callFunc){if(message.options==null)
|
266 |
+
message.options={}
|
267 |
+
Dialog.onCompleteFunc=message.options.onComplete;Dialog.parameters=parameters;Dialog.callFunc=callFunc;message.options.onComplete=Dialog._getAjaxContent;new Ajax.Request(message.url,message.options);},okCallback:function(){var win=Windows.focusedWindow;if(!win.okCallback||win.okCallback(win)){$$("#"+win.getId()+" input").each(function(element){element.onclick=null;})
|
268 |
+
win.close();}},cancelCallback:function(){var win=Windows.focusedWindow;$$("#"+win.getId()+" input").each(function(element){element.onclick=null})
|
269 |
+
win.close();if(win.cancelCallback)
|
270 |
+
win.cancelCallback(win);}}
|
271 |
+
if(Prototype.Browser.WebKit){var array=navigator.userAgent.match(new RegExp(/AppleWebKit\/([\d\.\+]*)/));Prototype.Browser.WebKitVersion=parseFloat(array[1]);}
|
272 |
+
var WindowUtilities={getWindowScroll:function(parent){var T,L,W,H;parent=parent||document.body;if(parent!=document.body){T=parent.scrollTop;L=parent.scrollLeft;W=parent.scrollWidth;H=parent.scrollHeight;}
|
273 |
+
else{var w=window;with(w.document){if(w.document.documentElement&&documentElement.scrollTop){T=documentElement.scrollTop;L=documentElement.scrollLeft;}else if(w.document.body){T=body.scrollTop;L=body.scrollLeft;}
|
274 |
+
if(w.innerWidth){W=w.innerWidth;H=w.innerHeight;}else if(w.document.documentElement&&documentElement.clientWidth){W=documentElement.clientWidth;H=documentElement.clientHeight;}else{W=body.offsetWidth;H=body.offsetHeight}}}
|
275 |
+
return{top:T,left:L,width:W,height:H};},getPageSize:function(parent){parent=parent||document.body;var windowWidth,windowHeight;var pageHeight,pageWidth;if(parent!=document.body){windowWidth=parent.getWidth();windowHeight=parent.getHeight();pageWidth=parent.scrollWidth;pageHeight=parent.scrollHeight;}
|
276 |
+
else{var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=document.body.scrollWidth;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}
|
277 |
+
if(self.innerHeight){windowWidth=self.innerWidth;windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
|
278 |
+
if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}
|
279 |
+
if(xScroll<windowWidth){pageWidth=windowWidth;}else{pageWidth=xScroll;}}
|
280 |
+
return{pageWidth:pageWidth,pageHeight:pageHeight,windowWidth:windowWidth,windowHeight:windowHeight};},disableScreen:function(className,overlayId,overlayOpacity,contentId,parent){WindowUtilities.initLightbox(overlayId,className,function(){this._disableScreen(className,overlayId,overlayOpacity,contentId)}.bind(this),parent||document.body);},_disableScreen:function(className,overlayId,overlayOpacity,contentId){var objOverlay=$(overlayId);var pageSize=WindowUtilities.getPageSize(objOverlay.parentNode);if(contentId&&Prototype.Browser.IE){WindowUtilities._hideSelect();WindowUtilities._showSelect(contentId);}
|
281 |
+
objOverlay.style.height=(pageSize.pageHeight+'px');objOverlay.style.display='none';if(overlayId=="overlay_modal"&&Window.hasEffectLib&&Windows.overlayShowEffectOptions){objOverlay.overlayOpacity=overlayOpacity;new Effect.Appear(objOverlay,Object.extend({from:0,to:overlayOpacity},Windows.overlayShowEffectOptions));}
|
282 |
+
else
|
283 |
+
objOverlay.style.display="block";},enableScreen:function(id){id=id||'overlay_modal';var objOverlay=$(id);if(objOverlay){if(id=="overlay_modal"&&Window.hasEffectLib&&Windows.overlayHideEffectOptions)
|
284 |
+
new Effect.Fade(objOverlay,Object.extend({from:objOverlay.overlayOpacity,to:0},Windows.overlayHideEffectOptions));else{objOverlay.style.display='none';objOverlay.parentNode.removeChild(objOverlay);}
|
285 |
+
if(id!="__invisible__")
|
286 |
+
WindowUtilities._showSelect();}},_hideSelect:function(id){if(Prototype.Browser.IE){id=id==null?"":"#"+id+" ";$$(id+'select').each(function(element){if(!WindowUtilities.isDefined(element.oldVisibility)){element.oldVisibility=element.style.visibility?element.style.visibility:"visible";element.style.visibility="hidden";}});}},_showSelect:function(id){if(Prototype.Browser.IE){id=id==null?"":"#"+id+" ";$$(id+'select').each(function(element){if(WindowUtilities.isDefined(element.oldVisibility)){try{element.style.visibility=element.oldVisibility;}catch(e){element.style.visibility="visible";}
|
287 |
+
element.oldVisibility=null;}
|
288 |
+
else{if(element.style.visibility)
|
289 |
+
element.style.visibility="visible";}});}},isDefined:function(object){return typeof(object)!="undefined"&&object!=null;},initLightbox:function(id,className,doneHandler,parent){if($(id)){Element.setStyle(id,{zIndex:Windows.maxZIndex+1});Windows.maxZIndex++;doneHandler();}
|
290 |
+
else{var objOverlay=document.createElement("div");objOverlay.setAttribute('id',id);objOverlay.className="overlay_"+className
|
291 |
+
objOverlay.style.display='none';objOverlay.style.position='absolute';objOverlay.style.top='0';objOverlay.style.left='0';objOverlay.style.zIndex=Windows.maxZIndex+1;Windows.maxZIndex++;objOverlay.style.width='100%';parent.insertBefore(objOverlay,parent.firstChild);if(Prototype.Browser.WebKit&&id=="overlay_modal"){setTimeout(function(){doneHandler()},10);}
|
292 |
+
else
|
293 |
+
doneHandler();}},setCookie:function(value,parameters){document.cookie=parameters[0]+"="+escape(value)+
|
294 |
+
((parameters[1])?"; expires="+parameters[1].toGMTString():"")+
|
295 |
+
((parameters[2])?"; path="+parameters[2]:"")+
|
296 |
+
((parameters[3])?"; domain="+parameters[3]:"")+
|
297 |
+
((parameters[4])?"; secure":"");},getCookie:function(name){var dc=document.cookie;var prefix=name+"=";var begin=dc.indexOf("; "+prefix);if(begin==-1){begin=dc.indexOf(prefix);if(begin!=0)return null;}else{begin+=2;}
|
298 |
+
var end=document.cookie.indexOf(";",begin);if(end==-1){end=dc.length;}
|
299 |
+
return unescape(dc.substring(begin+prefix.length,end));},_computeSize:function(content,id,width,height,margin,className){var objBody=document.body;var tmpObj=document.createElement("div");tmpObj.setAttribute('id',id);tmpObj.className=className+"_content";if(height)
|
300 |
+
tmpObj.style.height=height+"px"
|
301 |
+
else
|
302 |
+
tmpObj.style.width=width+"px"
|
303 |
+
tmpObj.style.position='absolute';tmpObj.style.top='0';tmpObj.style.left='0';tmpObj.style.display='none';tmpObj.innerHTML=content;objBody.insertBefore(tmpObj,objBody.firstChild);var size;if(height)
|
304 |
+
size=$(tmpObj).getDimensions().width+margin;else
|
305 |
+
size=$(tmpObj).getDimensions().height+margin;objBody.removeChild(tmpObj);return size;}}
|
js/toogas/featuredpopup/js/window_orig.js
ADDED
@@ -0,0 +1,1843 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
// Copyright (c) 2006 Sébastien Gruhier (http://xilinus.com, http://itseb.com)
|
2 |
+
//
|
3 |
+
// Permission is hereby granted, free of charge, to any person obtaining
|
4 |
+
// a copy of this software and associated documentation files (the
|
5 |
+
// "Software"), to deal in the Software without restriction, including
|
6 |
+
// without limitation the rights to use, copy, modify, merge, publish,
|
7 |
+
// distribute, sublicense, and/or sell copies of the Software, and to
|
8 |
+
// permit persons to whom the Software is furnished to do so, subject to
|
9 |
+
// the following conditions:
|
10 |
+
//
|
11 |
+
// The above copyright notice and this permission notice shall be
|
12 |
+
// included in all copies or substantial portions of the Software.
|
13 |
+
//
|
14 |
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15 |
+
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16 |
+
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17 |
+
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18 |
+
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19 |
+
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20 |
+
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21 |
+
//
|
22 |
+
// VERSION 1.3
|
23 |
+
|
24 |
+
var Window = Class.create();
|
25 |
+
|
26 |
+
Window.keepMultiModalWindow = false;
|
27 |
+
Window.hasEffectLib = (typeof Effect != 'undefined');
|
28 |
+
Window.resizeEffectDuration = 0.4;
|
29 |
+
|
30 |
+
Window.prototype = {
|
31 |
+
// Constructor
|
32 |
+
// Available parameters : className, blurClassName, title, minWidth, minHeight, maxWidth, maxHeight, width, height, top, left, bottom, right, resizable, zIndex, opacity, recenterAuto, wiredDrag
|
33 |
+
// hideEffect, showEffect, showEffectOptions, hideEffectOptions, effectOptions, url, draggable, closable, minimizable, maximizable, parent, onload
|
34 |
+
// add all callbacks (if you do not use an observer)
|
35 |
+
// onDestroy onStartResize onStartMove onResize onMove onEndResize onEndMove onFocus onBlur onBeforeShow onShow onHide onMinimize onMaximize onClose
|
36 |
+
|
37 |
+
initialize: function() {
|
38 |
+
var id;
|
39 |
+
var optionIndex = 0;
|
40 |
+
// For backward compatibility like win= new Window("id", {...}) instead of win = new Window({id: "id", ...})
|
41 |
+
if (arguments.length > 0) {
|
42 |
+
if (typeof arguments[0] == "string" ) {
|
43 |
+
id = arguments[0];
|
44 |
+
optionIndex = 1;
|
45 |
+
}
|
46 |
+
else
|
47 |
+
id = arguments[0] ? arguments[0].id : null;
|
48 |
+
}
|
49 |
+
|
50 |
+
// Generate unique ID if not specified
|
51 |
+
if (!id)
|
52 |
+
id = "window_" + new Date().getTime();
|
53 |
+
|
54 |
+
if ($(id))
|
55 |
+
alert("Window " + id + " is already registered in the DOM! Make sure you use setDestroyOnClose() or destroyOnClose: true in the constructor");
|
56 |
+
|
57 |
+
this.options = Object.extend({
|
58 |
+
className: "dialog",
|
59 |
+
blurClassName: null,
|
60 |
+
minWidth: 100,
|
61 |
+
minHeight: 20,
|
62 |
+
resizable: true,
|
63 |
+
closable: true,
|
64 |
+
minimizable: true,
|
65 |
+
maximizable: true,
|
66 |
+
draggable: true,
|
67 |
+
userData: null,
|
68 |
+
showEffect: (Window.hasEffectLib ? Effect.Appear : Element.show),
|
69 |
+
hideEffect: (Window.hasEffectLib ? Effect.Fade : Element.hide),
|
70 |
+
showEffectOptions: {},
|
71 |
+
hideEffectOptions: {},
|
72 |
+
effectOptions: null,
|
73 |
+
parent: document.body,
|
74 |
+
title: " ",
|
75 |
+
url: null,
|
76 |
+
onload: Prototype.emptyFunction,
|
77 |
+
width: 200,
|
78 |
+
height: 300,
|
79 |
+
opacity: 1,
|
80 |
+
recenterAuto: true,
|
81 |
+
wiredDrag: false,
|
82 |
+
closeCallback: null,
|
83 |
+
destroyOnClose: false,
|
84 |
+
gridX: 1,
|
85 |
+
gridY: 1
|
86 |
+
}, arguments[optionIndex] || {});
|
87 |
+
if (this.options.blurClassName)
|
88 |
+
this.options.focusClassName = this.options.className;
|
89 |
+
|
90 |
+
if (typeof this.options.top == "undefined" && typeof this.options.bottom == "undefined")
|
91 |
+
this.options.top = this._round(Math.random()*500, this.options.gridY);
|
92 |
+
if (typeof this.options.left == "undefined" && typeof this.options.right == "undefined")
|
93 |
+
this.options.left = this._round(Math.random()*500, this.options.gridX);
|
94 |
+
|
95 |
+
if (this.options.effectOptions) {
|
96 |
+
Object.extend(this.options.hideEffectOptions, this.options.effectOptions);
|
97 |
+
Object.extend(this.options.showEffectOptions, this.options.effectOptions);
|
98 |
+
if (this.options.showEffect == Element.Appear)
|
99 |
+
this.options.showEffectOptions.to = this.options.opacity;
|
100 |
+
}
|
101 |
+
if (Window.hasEffectLib) {
|
102 |
+
if (this.options.showEffect == Effect.Appear)
|
103 |
+
this.options.showEffectOptions.to = this.options.opacity;
|
104 |
+
|
105 |
+
if (this.options.hideEffect == Effect.Fade)
|
106 |
+
this.options.hideEffectOptions.from = this.options.opacity;
|
107 |
+
}
|
108 |
+
if (this.options.hideEffect == Element.hide)
|
109 |
+
this.options.hideEffect = function(){ Element.hide(this.element); if (this.options.destroyOnClose) this.destroy(); }.bind(this)
|
110 |
+
|
111 |
+
if (this.options.parent != document.body)
|
112 |
+
this.options.parent = $(this.options.parent);
|
113 |
+
|
114 |
+
this.element = this._createWindow(id);
|
115 |
+
this.element.win = this;
|
116 |
+
|
117 |
+
// Bind event listener
|
118 |
+
this.eventMouseDown = this._initDrag.bindAsEventListener(this);
|
119 |
+
this.eventMouseUp = this._endDrag.bindAsEventListener(this);
|
120 |
+
this.eventMouseMove = this._updateDrag.bindAsEventListener(this);
|
121 |
+
this.eventOnLoad = this._getWindowBorderSize.bindAsEventListener(this);
|
122 |
+
this.eventMouseDownContent = this.toFront.bindAsEventListener(this);
|
123 |
+
this.eventResize = this._recenter.bindAsEventListener(this);
|
124 |
+
|
125 |
+
this.topbar = $(this.element.id + "_top");
|
126 |
+
this.bottombar = $(this.element.id + "_bottom");
|
127 |
+
this.content = $(this.element.id + "_content");
|
128 |
+
|
129 |
+
Event.observe(this.topbar, "mousedown", this.eventMouseDown);
|
130 |
+
Event.observe(this.bottombar, "mousedown", this.eventMouseDown);
|
131 |
+
Event.observe(this.content, "mousedown", this.eventMouseDownContent);
|
132 |
+
Event.observe(window, "load", this.eventOnLoad);
|
133 |
+
Event.observe(window, "resize", this.eventResize);
|
134 |
+
Event.observe(window, "scroll", this.eventResize);
|
135 |
+
Event.observe(this.options.parent, "scroll", this.eventResize);
|
136 |
+
|
137 |
+
if (this.options.draggable) {
|
138 |
+
var that = this;
|
139 |
+
[this.topbar, this.topbar.up().previous(), this.topbar.up().next()].each(function(element) {
|
140 |
+
element.observe("mousedown", that.eventMouseDown);
|
141 |
+
element.addClassName("top_draggable");
|
142 |
+
});
|
143 |
+
[this.bottombar.up(), this.bottombar.up().previous(), this.bottombar.up().next()].each(function(element) {
|
144 |
+
element.observe("mousedown", that.eventMouseDown);
|
145 |
+
element.addClassName("bottom_draggable");
|
146 |
+
});
|
147 |
+
|
148 |
+
}
|
149 |
+
|
150 |
+
if (this.options.resizable) {
|
151 |
+
this.sizer = $(this.element.id + "_sizer");
|
152 |
+
Event.observe(this.sizer, "mousedown", this.eventMouseDown);
|
153 |
+
}
|
154 |
+
|
155 |
+
this.useLeft = null;
|
156 |
+
this.useTop = null;
|
157 |
+
if (typeof this.options.left != "undefined") {
|
158 |
+
this.element.setStyle({left: parseFloat(this.options.left) + 'px'});
|
159 |
+
this.useLeft = true;
|
160 |
+
}
|
161 |
+
else {
|
162 |
+
this.element.setStyle({right: parseFloat(this.options.right) + 'px'});
|
163 |
+
this.useLeft = false;
|
164 |
+
}
|
165 |
+
|
166 |
+
if (typeof this.options.top != "undefined") {
|
167 |
+
this.element.setStyle({top: parseFloat(this.options.top) + 'px'});
|
168 |
+
this.useTop = true;
|
169 |
+
}
|
170 |
+
else {
|
171 |
+
this.element.setStyle({bottom: parseFloat(this.options.bottom) + 'px'});
|
172 |
+
this.useTop = false;
|
173 |
+
}
|
174 |
+
|
175 |
+
this.storedLocation = null;
|
176 |
+
|
177 |
+
this.setOpacity(this.options.opacity);
|
178 |
+
if (this.options.zIndex)
|
179 |
+
this.setZIndex(this.options.zIndex)
|
180 |
+
|
181 |
+
if (this.options.destroyOnClose)
|
182 |
+
this.setDestroyOnClose(true);
|
183 |
+
|
184 |
+
this._getWindowBorderSize();
|
185 |
+
this.width = this.options.width;
|
186 |
+
this.height = this.options.height;
|
187 |
+
this.visible = false;
|
188 |
+
|
189 |
+
this.constraint = false;
|
190 |
+
this.constraintPad = {top: 0, left:0, bottom:0, right:0};
|
191 |
+
|
192 |
+
if (this.width && this.height)
|
193 |
+
this.setSize(this.options.width, this.options.height);
|
194 |
+
this.setTitle(this.options.title)
|
195 |
+
Windows.register(this);
|
196 |
+
},
|
197 |
+
|
198 |
+
// Destructor
|
199 |
+
destroy: function() {
|
200 |
+
this._notify("onDestroy");
|
201 |
+
Event.stopObserving(this.topbar, "mousedown", this.eventMouseDown);
|
202 |
+
Event.stopObserving(this.bottombar, "mousedown", this.eventMouseDown);
|
203 |
+
Event.stopObserving(this.content, "mousedown", this.eventMouseDownContent);
|
204 |
+
|
205 |
+
Event.stopObserving(window, "load", this.eventOnLoad);
|
206 |
+
Event.stopObserving(window, "resize", this.eventResize);
|
207 |
+
Event.stopObserving(window, "scroll", this.eventResize);
|
208 |
+
|
209 |
+
Event.stopObserving(this.content, "load", this.options.onload);
|
210 |
+
|
211 |
+
if (this._oldParent) {
|
212 |
+
var content = this.getContent();
|
213 |
+
var originalContent = null;
|
214 |
+
for(var i = 0; i < content.childNodes.length; i++) {
|
215 |
+
originalContent = content.childNodes[i];
|
216 |
+
if (originalContent.nodeType == 1)
|
217 |
+
break;
|
218 |
+
originalContent = null;
|
219 |
+
}
|
220 |
+
if (originalContent)
|
221 |
+
this._oldParent.appendChild(originalContent);
|
222 |
+
this._oldParent = null;
|
223 |
+
}
|
224 |
+
|
225 |
+
if (this.sizer)
|
226 |
+
Event.stopObserving(this.sizer, "mousedown", this.eventMouseDown);
|
227 |
+
|
228 |
+
if (this.options.url)
|
229 |
+
this.content.src = null
|
230 |
+
|
231 |
+
if(this.iefix)
|
232 |
+
Element.remove(this.iefix);
|
233 |
+
|
234 |
+
Element.remove(this.element);
|
235 |
+
Windows.unregister(this);
|
236 |
+
},
|
237 |
+
|
238 |
+
// Sets close callback, if it sets, it should return true to be able to close the window.
|
239 |
+
setCloseCallback: function(callback) {
|
240 |
+
this.options.closeCallback = callback;
|
241 |
+
},
|
242 |
+
|
243 |
+
// Gets window content
|
244 |
+
getContent: function () {
|
245 |
+
return this.content;
|
246 |
+
},
|
247 |
+
|
248 |
+
// Sets the content with an element id
|
249 |
+
setContent: function(id, autoresize, autoposition) {
|
250 |
+
var element = $(id);
|
251 |
+
if (null == element) throw "Unable to find element '" + id + "' in DOM";
|
252 |
+
this._oldParent = element.parentNode;
|
253 |
+
|
254 |
+
var d = null;
|
255 |
+
var p = null;
|
256 |
+
|
257 |
+
if (autoresize)
|
258 |
+
d = Element.getDimensions(element);
|
259 |
+
if (autoposition)
|
260 |
+
p = Position.cumulativeOffset(element);
|
261 |
+
|
262 |
+
var content = this.getContent();
|
263 |
+
// Clear HTML (and even iframe)
|
264 |
+
this.setHTMLContent("");
|
265 |
+
content = this.getContent();
|
266 |
+
|
267 |
+
content.appendChild(element);
|
268 |
+
element.show();
|
269 |
+
if (autoresize)
|
270 |
+
this.setSize(d.width, d.height);
|
271 |
+
if (autoposition)
|
272 |
+
this.setLocation(p[1] - this.heightN, p[0] - this.widthW);
|
273 |
+
},
|
274 |
+
|
275 |
+
setHTMLContent: function(html) {
|
276 |
+
// It was an url (iframe), recreate a div content instead of iframe content
|
277 |
+
if (this.options.url) {
|
278 |
+
this.content.src = null;
|
279 |
+
this.options.url = null;
|
280 |
+
|
281 |
+
var content ="<div id=\"" + this.getId() + "_content\" class=\"" + this.options.className + "_content\"> </div>";
|
282 |
+
$(this.getId() +"_table_content").innerHTML = content;
|
283 |
+
|
284 |
+
this.content = $(this.element.id + "_content");
|
285 |
+
}
|
286 |
+
|
287 |
+
this.getContent().innerHTML = html;
|
288 |
+
},
|
289 |
+
|
290 |
+
setAjaxContent: function(url, options, showCentered, showModal) {
|
291 |
+
this.showFunction = showCentered ? "showCenter" : "show";
|
292 |
+
this.showModal = showModal || false;
|
293 |
+
|
294 |
+
options = options || {};
|
295 |
+
|
296 |
+
// Clear HTML (and even iframe)
|
297 |
+
this.setHTMLContent("");
|
298 |
+
|
299 |
+
this.onComplete = options.onComplete;
|
300 |
+
if (! this._onCompleteHandler)
|
301 |
+
this._onCompleteHandler = this._setAjaxContent.bind(this);
|
302 |
+
options.onComplete = this._onCompleteHandler;
|
303 |
+
|
304 |
+
new Ajax.Request(url, options);
|
305 |
+
options.onComplete = this.onComplete;
|
306 |
+
},
|
307 |
+
|
308 |
+
_setAjaxContent: function(originalRequest) {
|
309 |
+
Element.update(this.getContent(), originalRequest.responseText);
|
310 |
+
if (this.onComplete)
|
311 |
+
this.onComplete(originalRequest);
|
312 |
+
this.onComplete = null;
|
313 |
+
this[this.showFunction](this.showModal)
|
314 |
+
},
|
315 |
+
|
316 |
+
setURL: function(url) {
|
317 |
+
// Not an url content, change div to iframe
|
318 |
+
if (this.options.url)
|
319 |
+
this.content.src = null;
|
320 |
+
this.options.url = url;
|
321 |
+
var content= "<iframe frameborder='0' name='" + this.getId() + "_content' id='" + this.getId() + "_content' src='" + url + "' width='" + this.width + "' height='" + this.height + "'> </iframe>";
|
322 |
+
$(this.getId() +"_table_content").innerHTML = content;
|
323 |
+
|
324 |
+
this.content = $(this.element.id + "_content");
|
325 |
+
},
|
326 |
+
|
327 |
+
getURL: function() {
|
328 |
+
return this.options.url ? this.options.url : null;
|
329 |
+
},
|
330 |
+
|
331 |
+
refresh: function() {
|
332 |
+
if (this.options.url)
|
333 |
+
$(this.element.getAttribute('id') + '_content').src = this.options.url;
|
334 |
+
},
|
335 |
+
|
336 |
+
// Stores position/size in a cookie, by default named with window id
|
337 |
+
setCookie: function(name, expires, path, domain, secure) {
|
338 |
+
name = name || this.element.id;
|
339 |
+
this.cookie = [name, expires, path, domain, secure];
|
340 |
+
|
341 |
+
// Get cookie
|
342 |
+
var value = WindowUtilities.getCookie(name)
|
343 |
+
// If exists
|
344 |
+
if (value) {
|
345 |
+
var values = value.split(',');
|
346 |
+
var x = values[0].split(':');
|
347 |
+
var y = values[1].split(':');
|
348 |
+
|
349 |
+
var w = parseFloat(values[2]), h = parseFloat(values[3]);
|
350 |
+
var mini = values[4];
|
351 |
+
var maxi = values[5];
|
352 |
+
|
353 |
+
this.setSize(w, h);
|
354 |
+
if (mini == "true")
|
355 |
+
this.doMinimize = true; // Minimize will be done at onload window event
|
356 |
+
else if (maxi == "true")
|
357 |
+
this.doMaximize = true; // Maximize will be done at onload window event
|
358 |
+
|
359 |
+
this.useLeft = x[0] == "l";
|
360 |
+
this.useTop = y[0] == "t";
|
361 |
+
|
362 |
+
this.element.setStyle(this.useLeft ? {left: x[1]} : {right: x[1]});
|
363 |
+
this.element.setStyle(this.useTop ? {top: y[1]} : {bottom: y[1]});
|
364 |
+
}
|
365 |
+
},
|
366 |
+
|
367 |
+
// Gets window ID
|
368 |
+
getId: function() {
|
369 |
+
return this.element.id;
|
370 |
+
},
|
371 |
+
|
372 |
+
// Detroys itself when closing
|
373 |
+
setDestroyOnClose: function() {
|
374 |
+
this.options.destroyOnClose = true;
|
375 |
+
},
|
376 |
+
|
377 |
+
setConstraint: function(bool, padding) {
|
378 |
+
this.constraint = bool;
|
379 |
+
this.constraintPad = Object.extend(this.constraintPad, padding || {});
|
380 |
+
// Reset location to apply constraint
|
381 |
+
if (this.useTop && this.useLeft)
|
382 |
+
this.setLocation(parseFloat(this.element.style.top), parseFloat(this.element.style.left));
|
383 |
+
},
|
384 |
+
|
385 |
+
// initDrag event
|
386 |
+
|
387 |
+
_initDrag: function(event) {
|
388 |
+
// No resize on minimized window
|
389 |
+
if (Event.element(event) == this.sizer && this.isMinimized())
|
390 |
+
return;
|
391 |
+
|
392 |
+
// No move on maximzed window
|
393 |
+
if (Event.element(event) != this.sizer && this.isMaximized())
|
394 |
+
return;
|
395 |
+
|
396 |
+
if (Prototype.Browser.IE && this.heightN == 0)
|
397 |
+
this._getWindowBorderSize();
|
398 |
+
|
399 |
+
// Get pointer X,Y
|
400 |
+
this.pointer = [this._round(Event.pointerX(event), this.options.gridX), this._round(Event.pointerY(event), this.options.gridY)];
|
401 |
+
if (this.options.wiredDrag)
|
402 |
+
this.currentDrag = this._createWiredElement();
|
403 |
+
else
|
404 |
+
this.currentDrag = this.element;
|
405 |
+
|
406 |
+
// Resize
|
407 |
+
if (Event.element(event) == this.sizer) {
|
408 |
+
this.doResize = true;
|
409 |
+
this.widthOrg = this.width;
|
410 |
+
this.heightOrg = this.height;
|
411 |
+
this.bottomOrg = parseFloat(this.element.getStyle('bottom'));
|
412 |
+
this.rightOrg = parseFloat(this.element.getStyle('right'));
|
413 |
+
this._notify("onStartResize");
|
414 |
+
}
|
415 |
+
else {
|
416 |
+
this.doResize = false;
|
417 |
+
|
418 |
+
// Check if click on close button,
|
419 |
+
var closeButton = $(this.getId() + '_close');
|
420 |
+
if (closeButton && Position.within(closeButton, this.pointer[0], this.pointer[1])) {
|
421 |
+
this.currentDrag = null;
|
422 |
+
return;
|
423 |
+
}
|
424 |
+
|
425 |
+
this.toFront();
|
426 |
+
|
427 |
+
if (! this.options.draggable)
|
428 |
+
return;
|
429 |
+
this._notify("onStartMove");
|
430 |
+
}
|
431 |
+
// Register global event to capture mouseUp and mouseMove
|
432 |
+
Event.observe(document, "mouseup", this.eventMouseUp, false);
|
433 |
+
Event.observe(document, "mousemove", this.eventMouseMove, false);
|
434 |
+
|
435 |
+
// Add an invisible div to keep catching mouse event over iframes
|
436 |
+
WindowUtilities.disableScreen('__invisible__', '__invisible__', this.overlayOpacity);
|
437 |
+
|
438 |
+
// Stop selection while dragging
|
439 |
+
document.body.ondrag = function () { return false; };
|
440 |
+
document.body.onselectstart = function () { return false; };
|
441 |
+
|
442 |
+
this.currentDrag.show();
|
443 |
+
Event.stop(event);
|
444 |
+
},
|
445 |
+
|
446 |
+
_round: function(val, round) {
|
447 |
+
return round == 1 ? val : val = Math.floor(val / round) * round;
|
448 |
+
},
|
449 |
+
|
450 |
+
// updateDrag event
|
451 |
+
_updateDrag: function(event) {
|
452 |
+
var pointer = [this._round(Event.pointerX(event), this.options.gridX), this._round(Event.pointerY(event), this.options.gridY)];
|
453 |
+
var dx = pointer[0] - this.pointer[0];
|
454 |
+
var dy = pointer[1] - this.pointer[1];
|
455 |
+
|
456 |
+
// Resize case, update width/height
|
457 |
+
if (this.doResize) {
|
458 |
+
var w = this.widthOrg + dx;
|
459 |
+
var h = this.heightOrg + dy;
|
460 |
+
|
461 |
+
dx = this.width - this.widthOrg
|
462 |
+
dy = this.height - this.heightOrg
|
463 |
+
|
464 |
+
// Check if it's a right position, update it to keep upper-left corner at the same position
|
465 |
+
if (this.useLeft)
|
466 |
+
w = this._updateWidthConstraint(w)
|
467 |
+
else
|
468 |
+
this.currentDrag.setStyle({right: (this.rightOrg -dx) + 'px'});
|
469 |
+
// Check if it's a bottom position, update it to keep upper-left corner at the same position
|
470 |
+
if (this.useTop)
|
471 |
+
h = this._updateHeightConstraint(h)
|
472 |
+
else
|
473 |
+
this.currentDrag.setStyle({bottom: (this.bottomOrg -dy) + 'px'});
|
474 |
+
|
475 |
+
this.setSize(w , h);
|
476 |
+
this._notify("onResize");
|
477 |
+
}
|
478 |
+
// Move case, update top/left
|
479 |
+
else {
|
480 |
+
this.pointer = pointer;
|
481 |
+
|
482 |
+
if (this.useLeft) {
|
483 |
+
var left = parseFloat(this.currentDrag.getStyle('left')) + dx;
|
484 |
+
var newLeft = this._updateLeftConstraint(left);
|
485 |
+
// Keep mouse pointer correct
|
486 |
+
this.pointer[0] += newLeft-left;
|
487 |
+
this.currentDrag.setStyle({left: newLeft + 'px'});
|
488 |
+
}
|
489 |
+
else
|
490 |
+
this.currentDrag.setStyle({right: parseFloat(this.currentDrag.getStyle('right')) - dx + 'px'});
|
491 |
+
|
492 |
+
if (this.useTop) {
|
493 |
+
var top = parseFloat(this.currentDrag.getStyle('top')) + dy;
|
494 |
+
var newTop = this._updateTopConstraint(top);
|
495 |
+
// Keep mouse pointer correct
|
496 |
+
this.pointer[1] += newTop - top;
|
497 |
+
this.currentDrag.setStyle({top: newTop + 'px'});
|
498 |
+
}
|
499 |
+
else
|
500 |
+
this.currentDrag.setStyle({bottom: parseFloat(this.currentDrag.getStyle('bottom')) - dy + 'px'});
|
501 |
+
|
502 |
+
this._notify("onMove");
|
503 |
+
}
|
504 |
+
if (this.iefix)
|
505 |
+
this._fixIEOverlapping();
|
506 |
+
|
507 |
+
this._removeStoreLocation();
|
508 |
+
Event.stop(event);
|
509 |
+
},
|
510 |
+
|
511 |
+
// endDrag callback
|
512 |
+
_endDrag: function(event) {
|
513 |
+
// Remove temporary div over iframes
|
514 |
+
WindowUtilities.enableScreen('__invisible__');
|
515 |
+
|
516 |
+
if (this.doResize)
|
517 |
+
this._notify("onEndResize");
|
518 |
+
else
|
519 |
+
this._notify("onEndMove");
|
520 |
+
|
521 |
+
// Release event observing
|
522 |
+
Event.stopObserving(document, "mouseup", this.eventMouseUp,false);
|
523 |
+
Event.stopObserving(document, "mousemove", this.eventMouseMove, false);
|
524 |
+
|
525 |
+
Event.stop(event);
|
526 |
+
|
527 |
+
this._hideWiredElement();
|
528 |
+
|
529 |
+
// Store new location/size if need be
|
530 |
+
this._saveCookie()
|
531 |
+
|
532 |
+
// Restore selection
|
533 |
+
document.body.ondrag = null;
|
534 |
+
document.body.onselectstart = null;
|
535 |
+
},
|
536 |
+
|
537 |
+
_updateLeftConstraint: function(left) {
|
538 |
+
if (this.constraint && this.useLeft && this.useTop) {
|
539 |
+
var width = this.options.parent == document.body ? WindowUtilities.getPageSize().windowWidth : this.options.parent.getDimensions().width;
|
540 |
+
|
541 |
+
if (left < this.constraintPad.left)
|
542 |
+
left = this.constraintPad.left;
|
543 |
+
if (left + this.width + this.widthE + this.widthW > width - this.constraintPad.right)
|
544 |
+
left = width - this.constraintPad.right - this.width - this.widthE - this.widthW;
|
545 |
+
}
|
546 |
+
return left;
|
547 |
+
},
|
548 |
+
|
549 |
+
_updateTopConstraint: function(top) {
|
550 |
+
if (this.constraint && this.useLeft && this.useTop) {
|
551 |
+
var height = this.options.parent == document.body ? WindowUtilities.getPageSize().windowHeight : this.options.parent.getDimensions().height;
|
552 |
+
|
553 |
+
var h = this.height + this.heightN + this.heightS;
|
554 |
+
|
555 |
+
if (top < this.constraintPad.top)
|
556 |
+
top = this.constraintPad.top;
|
557 |
+
if (top + h > height - this.constraintPad.bottom)
|
558 |
+
top = height - this.constraintPad.bottom - h;
|
559 |
+
}
|
560 |
+
return top;
|
561 |
+
},
|
562 |
+
|
563 |
+
_updateWidthConstraint: function(w) {
|
564 |
+
if (this.constraint && this.useLeft && this.useTop) {
|
565 |
+
var width = this.options.parent == document.body ? WindowUtilities.getPageSize().windowWidth : this.options.parent.getDimensions().width;
|
566 |
+
var left = parseFloat(this.element.getStyle("left"));
|
567 |
+
|
568 |
+
if (left + w + this.widthE + this.widthW > width - this.constraintPad.right)
|
569 |
+
w = width - this.constraintPad.right - left - this.widthE - this.widthW;
|
570 |
+
}
|
571 |
+
return w;
|
572 |
+
},
|
573 |
+
|
574 |
+
_updateHeightConstraint: function(h) {
|
575 |
+
if (this.constraint && this.useLeft && this.useTop) {
|
576 |
+
var height = this.options.parent == document.body ? WindowUtilities.getPageSize().windowHeight : this.options.parent.getDimensions().height;
|
577 |
+
var top = parseFloat(this.element.getStyle("top"));
|
578 |
+
|
579 |
+
if (top + h + this.heightN + this.heightS > height - this.constraintPad.bottom)
|
580 |
+
h = height - this.constraintPad.bottom - top - this.heightN - this.heightS;
|
581 |
+
}
|
582 |
+
return h;
|
583 |
+
},
|
584 |
+
|
585 |
+
|
586 |
+
// Creates HTML window code
|
587 |
+
_createWindow: function(id) {
|
588 |
+
var className = this.options.className;
|
589 |
+
var win = document.createElement("div");
|
590 |
+
win.setAttribute('id', id);
|
591 |
+
win.className = "dialog";
|
592 |
+
|
593 |
+
var content;
|
594 |
+
if (this.options.url)
|
595 |
+
content= "<iframe frameborder=\"0\" name=\"" + id + "_content\" id=\"" + id + "_content\" src=\"" + this.options.url + "\"> </iframe>";
|
596 |
+
else
|
597 |
+
content ="<div id=\"" + id + "_content\" class=\"" +className + "_content\"> </div>";
|
598 |
+
|
599 |
+
var closeDiv = this.options.closable ? "<div class='"+ className +"_close' id='"+ id +"_close' onclick='Windows.close(\""+ id +"\", event)'> </div>" : "";
|
600 |
+
var minDiv = this.options.minimizable ? "<div class='"+ className + "_minimize' id='"+ id +"_minimize' onclick='Windows.minimize(\""+ id +"\", event)'> </div>" : "";
|
601 |
+
var maxDiv = this.options.maximizable ? "<div class='"+ className + "_maximize' id='"+ id +"_maximize' onclick='Windows.maximize(\""+ id +"\", event)'> </div>" : "";
|
602 |
+
var seAttributes = this.options.resizable ? "class='" + className + "_sizer' id='" + id + "_sizer'" : "class='" + className + "_se'";
|
603 |
+
var blank = "../themes/default/blank.gif";
|
604 |
+
|
605 |
+
win.innerHTML = closeDiv + minDiv + maxDiv + "\
|
606 |
+
<table id='"+ id +"_row1' class=\"top table_window\">\
|
607 |
+
<tr>\
|
608 |
+
<td class='"+ className +"_nw'></td>\
|
609 |
+
<td class='"+ className +"_n'><div id='"+ id +"_top' class='"+ className +"_title title_window'>"+ this.options.title +"</div></td>\
|
610 |
+
<td class='"+ className +"_ne'></td>\
|
611 |
+
</tr>\
|
612 |
+
</table>\
|
613 |
+
<table id='"+ id +"_row2' class=\"mid table_window\">\
|
614 |
+
<tr>\
|
615 |
+
<td class='"+ className +"_w'></td>\
|
616 |
+
<td id='"+ id +"_table_content' class='"+ className +"_content' valign='top'>" + content + "</td>\
|
617 |
+
<td class='"+ className +"_e'></td>\
|
618 |
+
</tr>\
|
619 |
+
</table>\
|
620 |
+
<table id='"+ id +"_row3' class=\"bot table_window\">\
|
621 |
+
<tr>\
|
622 |
+
<td class='"+ className +"_sw'></td>\
|
623 |
+
<td class='"+ className +"_s'><div id='"+ id +"_bottom' class='status_bar'><span style='float:left; width:1px; height:1px'></span></div></td>\
|
624 |
+
<td " + seAttributes + "></td>\
|
625 |
+
</tr>\
|
626 |
+
</table>\
|
627 |
+
";
|
628 |
+
Element.hide(win);
|
629 |
+
this.options.parent.insertBefore(win, this.options.parent.firstChild);
|
630 |
+
Event.observe($(id + "_content"), "load", this.options.onload);
|
631 |
+
return win;
|
632 |
+
},
|
633 |
+
|
634 |
+
|
635 |
+
changeClassName: function(newClassName) {
|
636 |
+
var className = this.options.className;
|
637 |
+
var id = this.getId();
|
638 |
+
$A(["_close", "_minimize", "_maximize", "_sizer", "_content"]).each(function(value) { this._toggleClassName($(id + value), className + value, newClassName + value) }.bind(this));
|
639 |
+
this._toggleClassName($(id + "_top"), className + "_title", newClassName + "_title");
|
640 |
+
$$("#" + id + " td").each(function(td) {td.className = td.className.sub(className,newClassName); });
|
641 |
+
this.options.className = newClassName;
|
642 |
+
},
|
643 |
+
|
644 |
+
_toggleClassName: function(element, oldClassName, newClassName) {
|
645 |
+
if (element) {
|
646 |
+
element.removeClassName(oldClassName);
|
647 |
+
element.addClassName(newClassName);
|
648 |
+
}
|
649 |
+
},
|
650 |
+
|
651 |
+
// Sets window location
|
652 |
+
setLocation: function(top, left) {
|
653 |
+
top = this._updateTopConstraint(top);
|
654 |
+
left = this._updateLeftConstraint(left);
|
655 |
+
|
656 |
+
var e = this.currentDrag || this.element;
|
657 |
+
e.setStyle({top: top + 'px'});
|
658 |
+
e.setStyle({left: left + 'px'});
|
659 |
+
|
660 |
+
this.useLeft = true;
|
661 |
+
this.useTop = true;
|
662 |
+
},
|
663 |
+
|
664 |
+
getLocation: function() {
|
665 |
+
var location = {};
|
666 |
+
if (this.useTop)
|
667 |
+
location = Object.extend(location, {top: this.element.getStyle("top")});
|
668 |
+
else
|
669 |
+
location = Object.extend(location, {bottom: this.element.getStyle("bottom")});
|
670 |
+
if (this.useLeft)
|
671 |
+
location = Object.extend(location, {left: this.element.getStyle("left")});
|
672 |
+
else
|
673 |
+
location = Object.extend(location, {right: this.element.getStyle("right")});
|
674 |
+
|
675 |
+
return location;
|
676 |
+
},
|
677 |
+
|
678 |
+
// Gets window size
|
679 |
+
getSize: function() {
|
680 |
+
return {width: this.width, height: this.height};
|
681 |
+
},
|
682 |
+
|
683 |
+
// Sets window size
|
684 |
+
setSize: function(width, height, useEffect) {
|
685 |
+
width = parseFloat(width);
|
686 |
+
height = parseFloat(height);
|
687 |
+
|
688 |
+
// Check min and max size
|
689 |
+
if (!this.minimized && width < this.options.minWidth)
|
690 |
+
width = this.options.minWidth;
|
691 |
+
|
692 |
+
if (!this.minimized && height < this.options.minHeight)
|
693 |
+
height = this.options.minHeight;
|
694 |
+
|
695 |
+
if (this.options. maxHeight && height > this.options. maxHeight)
|
696 |
+
height = this.options. maxHeight;
|
697 |
+
|
698 |
+
if (this.options. maxWidth && width > this.options. maxWidth)
|
699 |
+
width = this.options. maxWidth;
|
700 |
+
|
701 |
+
|
702 |
+
if (this.useTop && this.useLeft && Window.hasEffectLib && Effect.ResizeWindow && useEffect) {
|
703 |
+
new Effect.ResizeWindow(this, null, null, width, height, {duration: Window.resizeEffectDuration});
|
704 |
+
} else {
|
705 |
+
this.width = width;
|
706 |
+
this.height = height;
|
707 |
+
var e = this.currentDrag ? this.currentDrag : this.element;
|
708 |
+
|
709 |
+
e.setStyle({width: width + this.widthW + this.widthE + "px"})
|
710 |
+
e.setStyle({height: height + this.heightN + this.heightS + "px"})
|
711 |
+
|
712 |
+
// Update content size
|
713 |
+
if (!this.currentDrag || this.currentDrag == this.element) {
|
714 |
+
var content = $(this.element.id + '_content');
|
715 |
+
content.setStyle({height: height + 'px'});
|
716 |
+
content.setStyle({width: width + 'px'});
|
717 |
+
}
|
718 |
+
}
|
719 |
+
},
|
720 |
+
|
721 |
+
updateHeight: function() {
|
722 |
+
this.setSize(this.width, this.content.scrollHeight, true);
|
723 |
+
},
|
724 |
+
|
725 |
+
updateWidth: function() {
|
726 |
+
this.setSize(this.content.scrollWidth, this.height, true);
|
727 |
+
},
|
728 |
+
|
729 |
+
// Brings window to front
|
730 |
+
toFront: function() {
|
731 |
+
if (this.element.style.zIndex < Windows.maxZIndex)
|
732 |
+
this.setZIndex(Windows.maxZIndex + 1);
|
733 |
+
if (this.iefix)
|
734 |
+
this._fixIEOverlapping();
|
735 |
+
},
|
736 |
+
|
737 |
+
getBounds: function(insideOnly) {
|
738 |
+
if (! this.width || !this.height || !this.visible)
|
739 |
+
this.computeBounds();
|
740 |
+
var w = this.width;
|
741 |
+
var h = this.height;
|
742 |
+
|
743 |
+
if (!insideOnly) {
|
744 |
+
w += this.widthW + this.widthE;
|
745 |
+
h += this.heightN + this.heightS;
|
746 |
+
}
|
747 |
+
var bounds = Object.extend(this.getLocation(), {width: w + "px", height: h + "px"});
|
748 |
+
return bounds;
|
749 |
+
},
|
750 |
+
|
751 |
+
computeBounds: function() {
|
752 |
+
if (! this.width || !this.height) {
|
753 |
+
var size = WindowUtilities._computeSize(this.content.innerHTML, this.content.id, this.width, this.height, 0, this.options.className)
|
754 |
+
if (this.height)
|
755 |
+
this.width = size + 5
|
756 |
+
else
|
757 |
+
this.height = size + 5
|
758 |
+
}
|
759 |
+
|
760 |
+
this.setSize(this.width, this.height);
|
761 |
+
if (this.centered)
|
762 |
+
this._center(this.centerTop, this.centerLeft);
|
763 |
+
},
|
764 |
+
|
765 |
+
// Displays window modal state or not
|
766 |
+
show: function(modal) {
|
767 |
+
this.visible = true;
|
768 |
+
if (modal) {
|
769 |
+
// Hack for Safari !!
|
770 |
+
if (typeof this.overlayOpacity == "undefined") {
|
771 |
+
var that = this;
|
772 |
+
setTimeout(function() {that.show(modal)}, 10);
|
773 |
+
return;
|
774 |
+
}
|
775 |
+
Windows.addModalWindow(this);
|
776 |
+
|
777 |
+
this.modal = true;
|
778 |
+
this.setZIndex(Windows.maxZIndex + 1);
|
779 |
+
Windows.unsetOverflow(this);
|
780 |
+
}
|
781 |
+
else
|
782 |
+
if (!this.element.style.zIndex)
|
783 |
+
this.setZIndex(Windows.maxZIndex + 1);
|
784 |
+
|
785 |
+
// To restore overflow if need be
|
786 |
+
if (this.oldStyle)
|
787 |
+
this.getContent().setStyle({overflow: this.oldStyle});
|
788 |
+
|
789 |
+
this.computeBounds();
|
790 |
+
|
791 |
+
this._notify("onBeforeShow");
|
792 |
+
if (this.options.showEffect != Element.show && this.options.showEffectOptions)
|
793 |
+
this.options.showEffect(this.element, this.options.showEffectOptions);
|
794 |
+
else
|
795 |
+
this.options.showEffect(this.element);
|
796 |
+
|
797 |
+
this._checkIEOverlapping();
|
798 |
+
WindowUtilities.focusedWindow = this
|
799 |
+
this._notify("onShow");
|
800 |
+
},
|
801 |
+
|
802 |
+
// Displays window modal state or not at the center of the page
|
803 |
+
showCenter: function(modal, top, left) {
|
804 |
+
this.centered = true;
|
805 |
+
this.centerTop = top;
|
806 |
+
this.centerLeft = left;
|
807 |
+
|
808 |
+
this.show(modal);
|
809 |
+
},
|
810 |
+
|
811 |
+
isVisible: function() {
|
812 |
+
return this.visible;
|
813 |
+
},
|
814 |
+
|
815 |
+
_center: function(top, left) {
|
816 |
+
var windowScroll = WindowUtilities.getWindowScroll(this.options.parent);
|
817 |
+
var pageSize = WindowUtilities.getPageSize(this.options.parent);
|
818 |
+
if (typeof top == "undefined")
|
819 |
+
top = (pageSize.windowHeight - (this.height + this.heightN + this.heightS))/2;
|
820 |
+
top += windowScroll.top
|
821 |
+
|
822 |
+
if (typeof left == "undefined")
|
823 |
+
left = (pageSize.windowWidth - (this.width + this.widthW + this.widthE))/2;
|
824 |
+
left += windowScroll.left
|
825 |
+
this.setLocation(top, left);
|
826 |
+
this.toFront();
|
827 |
+
},
|
828 |
+
|
829 |
+
_recenter: function(event) {
|
830 |
+
if (this.centered) {
|
831 |
+
var pageSize = WindowUtilities.getPageSize(this.options.parent);
|
832 |
+
var windowScroll = WindowUtilities.getWindowScroll(this.options.parent);
|
833 |
+
|
834 |
+
// Check for this stupid IE that sends dumb events
|
835 |
+
if (this.pageSize && this.pageSize.windowWidth == pageSize.windowWidth && this.pageSize.windowHeight == pageSize.windowHeight &&
|
836 |
+
this.windowScroll.left == windowScroll.left && this.windowScroll.top == windowScroll.top)
|
837 |
+
return;
|
838 |
+
this.pageSize = pageSize;
|
839 |
+
this.windowScroll = windowScroll;
|
840 |
+
// set height of Overlay to take up whole page and show
|
841 |
+
if ($('overlay_modal'))
|
842 |
+
$('overlay_modal').setStyle({height: (pageSize.pageHeight + 'px')});
|
843 |
+
|
844 |
+
if (this.options.recenterAuto)
|
845 |
+
this._center(this.centerTop, this.centerLeft);
|
846 |
+
}
|
847 |
+
},
|
848 |
+
|
849 |
+
// Hides window
|
850 |
+
hide: function() {
|
851 |
+
this.visible = false;
|
852 |
+
if (this.modal) {
|
853 |
+
Windows.removeModalWindow(this);
|
854 |
+
Windows.resetOverflow();
|
855 |
+
}
|
856 |
+
// To avoid bug on scrolling bar
|
857 |
+
this.oldStyle = this.getContent().getStyle('overflow') || "auto"
|
858 |
+
this.getContent().setStyle({overflow: "hidden"});
|
859 |
+
|
860 |
+
this.options.hideEffect(this.element, this.options.hideEffectOptions);
|
861 |
+
|
862 |
+
if(this.iefix)
|
863 |
+
this.iefix.hide();
|
864 |
+
|
865 |
+
if (!this.doNotNotifyHide)
|
866 |
+
this._notify("onHide");
|
867 |
+
},
|
868 |
+
|
869 |
+
close: function() {
|
870 |
+
// Asks closeCallback if exists
|
871 |
+
if (this.visible) {
|
872 |
+
if (this.options.closeCallback && ! this.options.closeCallback(this))
|
873 |
+
return;
|
874 |
+
|
875 |
+
if (this.options.destroyOnClose) {
|
876 |
+
var destroyFunc = this.destroy.bind(this);
|
877 |
+
if (this.options.hideEffectOptions.afterFinish) {
|
878 |
+
var func = this.options.hideEffectOptions.afterFinish;
|
879 |
+
this.options.hideEffectOptions.afterFinish = function() {func();destroyFunc() }
|
880 |
+
}
|
881 |
+
else
|
882 |
+
this.options.hideEffectOptions.afterFinish = function() {destroyFunc() }
|
883 |
+
}
|
884 |
+
Windows.updateFocusedWindow();
|
885 |
+
|
886 |
+
this.doNotNotifyHide = true;
|
887 |
+
this.hide();
|
888 |
+
this.doNotNotifyHide = false;
|
889 |
+
this._notify("onClose");
|
890 |
+
}
|
891 |
+
},
|
892 |
+
|
893 |
+
minimize: function() {
|
894 |
+
if (this.resizing)
|
895 |
+
return;
|
896 |
+
|
897 |
+
var r2 = $(this.getId() + "_row2");
|
898 |
+
|
899 |
+
if (!this.minimized) {
|
900 |
+
this.minimized = true;
|
901 |
+
|
902 |
+
var dh = r2.getDimensions().height;
|
903 |
+
this.r2Height = dh;
|
904 |
+
var h = this.element.getHeight() - dh;
|
905 |
+
|
906 |
+
if (this.useLeft && this.useTop && Window.hasEffectLib && Effect.ResizeWindow) {
|
907 |
+
new Effect.ResizeWindow(this, null, null, null, this.height -dh, {duration: Window.resizeEffectDuration});
|
908 |
+
} else {
|
909 |
+
this.height -= dh;
|
910 |
+
this.element.setStyle({height: h + "px"});
|
911 |
+
r2.hide();
|
912 |
+
}
|
913 |
+
|
914 |
+
if (! this.useTop) {
|
915 |
+
var bottom = parseFloat(this.element.getStyle('bottom'));
|
916 |
+
this.element.setStyle({bottom: (bottom + dh) + 'px'});
|
917 |
+
}
|
918 |
+
}
|
919 |
+
else {
|
920 |
+
this.minimized = false;
|
921 |
+
|
922 |
+
var dh = this.r2Height;
|
923 |
+
this.r2Height = null;
|
924 |
+
if (this.useLeft && this.useTop && Window.hasEffectLib && Effect.ResizeWindow) {
|
925 |
+
new Effect.ResizeWindow(this, null, null, null, this.height + dh, {duration: Window.resizeEffectDuration});
|
926 |
+
}
|
927 |
+
else {
|
928 |
+
var h = this.element.getHeight() + dh;
|
929 |
+
this.height += dh;
|
930 |
+
this.element.setStyle({height: h + "px"})
|
931 |
+
r2.show();
|
932 |
+
}
|
933 |
+
if (! this.useTop) {
|
934 |
+
var bottom = parseFloat(this.element.getStyle('bottom'));
|
935 |
+
this.element.setStyle({bottom: (bottom - dh) + 'px'});
|
936 |
+
}
|
937 |
+
this.toFront();
|
938 |
+
}
|
939 |
+
this._notify("onMinimize");
|
940 |
+
|
941 |
+
// Store new location/size if need be
|
942 |
+
this._saveCookie()
|
943 |
+
},
|
944 |
+
|
945 |
+
maximize: function() {
|
946 |
+
if (this.isMinimized() || this.resizing)
|
947 |
+
return;
|
948 |
+
|
949 |
+
if (Prototype.Browser.IE && this.heightN == 0)
|
950 |
+
this._getWindowBorderSize();
|
951 |
+
|
952 |
+
if (this.storedLocation != null) {
|
953 |
+
this._restoreLocation();
|
954 |
+
if(this.iefix)
|
955 |
+
this.iefix.hide();
|
956 |
+
}
|
957 |
+
else {
|
958 |
+
this._storeLocation();
|
959 |
+
Windows.unsetOverflow(this);
|
960 |
+
|
961 |
+
var windowScroll = WindowUtilities.getWindowScroll(this.options.parent);
|
962 |
+
var pageSize = WindowUtilities.getPageSize(this.options.parent);
|
963 |
+
var left = windowScroll.left;
|
964 |
+
var top = windowScroll.top;
|
965 |
+
|
966 |
+
if (this.options.parent != document.body) {
|
967 |
+
windowScroll = {top:0, left:0, bottom:0, right:0};
|
968 |
+
var dim = this.options.parent.getDimensions();
|
969 |
+
pageSize.windowWidth = dim.width;
|
970 |
+
pageSize.windowHeight = dim.height;
|
971 |
+
top = 0;
|
972 |
+
left = 0;
|
973 |
+
}
|
974 |
+
|
975 |
+
if (this.constraint) {
|
976 |
+
pageSize.windowWidth -= Math.max(0, this.constraintPad.left) + Math.max(0, this.constraintPad.right);
|
977 |
+
pageSize.windowHeight -= Math.max(0, this.constraintPad.top) + Math.max(0, this.constraintPad.bottom);
|
978 |
+
left += Math.max(0, this.constraintPad.left);
|
979 |
+
top += Math.max(0, this.constraintPad.top);
|
980 |
+
}
|
981 |
+
|
982 |
+
var width = pageSize.windowWidth - this.widthW - this.widthE;
|
983 |
+
var height= pageSize.windowHeight - this.heightN - this.heightS;
|
984 |
+
|
985 |
+
if (this.useLeft && this.useTop && Window.hasEffectLib && Effect.ResizeWindow) {
|
986 |
+
new Effect.ResizeWindow(this, top, left, width, height, {duration: Window.resizeEffectDuration});
|
987 |
+
}
|
988 |
+
else {
|
989 |
+
this.setSize(width, height);
|
990 |
+
this.element.setStyle(this.useLeft ? {left: left} : {right: left});
|
991 |
+
this.element.setStyle(this.useTop ? {top: top} : {bottom: top});
|
992 |
+
}
|
993 |
+
|
994 |
+
this.toFront();
|
995 |
+
if (this.iefix)
|
996 |
+
this._fixIEOverlapping();
|
997 |
+
}
|
998 |
+
this._notify("onMaximize");
|
999 |
+
|
1000 |
+
// Store new location/size if need be
|
1001 |
+
this._saveCookie()
|
1002 |
+
},
|
1003 |
+
|
1004 |
+
isMinimized: function() {
|
1005 |
+
return this.minimized;
|
1006 |
+
},
|
1007 |
+
|
1008 |
+
isMaximized: function() {
|
1009 |
+
return (this.storedLocation != null);
|
1010 |
+
},
|
1011 |
+
|
1012 |
+
setOpacity: function(opacity) {
|
1013 |
+
if (Element.setOpacity)
|
1014 |
+
Element.setOpacity(this.element, opacity);
|
1015 |
+
},
|
1016 |
+
|
1017 |
+
setZIndex: function(zindex) {
|
1018 |
+
this.element.setStyle({zIndex: zindex});
|
1019 |
+
Windows.updateZindex(zindex, this);
|
1020 |
+
},
|
1021 |
+
|
1022 |
+
setTitle: function(newTitle) {
|
1023 |
+
if (!newTitle || newTitle == "")
|
1024 |
+
newTitle = " ";
|
1025 |
+
|
1026 |
+
Element.update(this.element.id + '_top', newTitle);
|
1027 |
+
},
|
1028 |
+
|
1029 |
+
getTitle: function() {
|
1030 |
+
return $(this.element.id + '_top').innerHTML;
|
1031 |
+
},
|
1032 |
+
|
1033 |
+
setStatusBar: function(element) {
|
1034 |
+
var statusBar = $(this.getId() + "_bottom");
|
1035 |
+
|
1036 |
+
if (typeof(element) == "object") {
|
1037 |
+
if (this.bottombar.firstChild)
|
1038 |
+
this.bottombar.replaceChild(element, this.bottombar.firstChild);
|
1039 |
+
else
|
1040 |
+
this.bottombar.appendChild(element);
|
1041 |
+
}
|
1042 |
+
else
|
1043 |
+
this.bottombar.innerHTML = element;
|
1044 |
+
},
|
1045 |
+
|
1046 |
+
_checkIEOverlapping: function() {
|
1047 |
+
if(!this.iefix && (navigator.appVersion.indexOf('MSIE')>0) && (navigator.userAgent.indexOf('Opera')<0) && (this.element.getStyle('position')=='absolute')) {
|
1048 |
+
new Insertion.After(this.element.id, '<iframe id="' + this.element.id + '_iefix" '+ 'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" ' + 'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');
|
1049 |
+
this.iefix = $(this.element.id+'_iefix');
|
1050 |
+
}
|
1051 |
+
if(this.iefix)
|
1052 |
+
setTimeout(this._fixIEOverlapping.bind(this), 50);
|
1053 |
+
},
|
1054 |
+
|
1055 |
+
_fixIEOverlapping: function() {
|
1056 |
+
Position.clone(this.element, this.iefix);
|
1057 |
+
this.iefix.style.zIndex = this.element.style.zIndex - 1;
|
1058 |
+
this.iefix.show();
|
1059 |
+
},
|
1060 |
+
|
1061 |
+
_getWindowBorderSize: function(event) {
|
1062 |
+
// Hack to get real window border size!!
|
1063 |
+
var div = this._createHiddenDiv(this.options.className + "_n")
|
1064 |
+
this.heightN = Element.getDimensions(div).height;
|
1065 |
+
div.parentNode.removeChild(div)
|
1066 |
+
|
1067 |
+
var div = this._createHiddenDiv(this.options.className + "_s")
|
1068 |
+
this.heightS = Element.getDimensions(div).height;
|
1069 |
+
div.parentNode.removeChild(div)
|
1070 |
+
|
1071 |
+
var div = this._createHiddenDiv(this.options.className + "_e")
|
1072 |
+
this.widthE = Element.getDimensions(div).width;
|
1073 |
+
div.parentNode.removeChild(div)
|
1074 |
+
|
1075 |
+
var div = this._createHiddenDiv(this.options.className + "_w")
|
1076 |
+
this.widthW = Element.getDimensions(div).width;
|
1077 |
+
div.parentNode.removeChild(div);
|
1078 |
+
|
1079 |
+
var div = document.createElement("div");
|
1080 |
+
div.className = "overlay_" + this.options.className ;
|
1081 |
+
document.body.appendChild(div);
|
1082 |
+
//alert("no timeout:\nopacity: " + div.getStyle("opacity") + "\nwidth: " + document.defaultView.getComputedStyle(div, null).width);
|
1083 |
+
var that = this;
|
1084 |
+
|
1085 |
+
// Workaround for Safari!!
|
1086 |
+
setTimeout(function() {that.overlayOpacity = ($(div).getStyle("opacity")); div.parentNode.removeChild(div);}, 10);
|
1087 |
+
|
1088 |
+
// Workaround for IE!!
|
1089 |
+
if (Prototype.Browser.IE) {
|
1090 |
+
this.heightS = $(this.getId() +"_row3").getDimensions().height;
|
1091 |
+
this.heightN = $(this.getId() +"_row1").getDimensions().height;
|
1092 |
+
}
|
1093 |
+
|
1094 |
+
// Safari size fix
|
1095 |
+
if (Prototype.Browser.WebKit && Prototype.Browser.WebKitVersion < 420)
|
1096 |
+
this.setSize(this.width, this.height);
|
1097 |
+
if (this.doMaximize)
|
1098 |
+
this.maximize();
|
1099 |
+
if (this.doMinimize)
|
1100 |
+
this.minimize();
|
1101 |
+
},
|
1102 |
+
|
1103 |
+
_createHiddenDiv: function(className) {
|
1104 |
+
var objBody = document.body;
|
1105 |
+
var win = document.createElement("div");
|
1106 |
+
win.setAttribute('id', this.element.id+ "_tmp");
|
1107 |
+
win.className = className;
|
1108 |
+
win.style.display = 'none';
|
1109 |
+
win.innerHTML = '';
|
1110 |
+
objBody.insertBefore(win, objBody.firstChild);
|
1111 |
+
return win;
|
1112 |
+
},
|
1113 |
+
|
1114 |
+
_storeLocation: function() {
|
1115 |
+
if (this.storedLocation == null) {
|
1116 |
+
this.storedLocation = {useTop: this.useTop, useLeft: this.useLeft,
|
1117 |
+
top: this.element.getStyle('top'), bottom: this.element.getStyle('bottom'),
|
1118 |
+
left: this.element.getStyle('left'), right: this.element.getStyle('right'),
|
1119 |
+
width: this.width, height: this.height };
|
1120 |
+
}
|
1121 |
+
},
|
1122 |
+
|
1123 |
+
_restoreLocation: function() {
|
1124 |
+
if (this.storedLocation != null) {
|
1125 |
+
this.useLeft = this.storedLocation.useLeft;
|
1126 |
+
this.useTop = this.storedLocation.useTop;
|
1127 |
+
|
1128 |
+
if (this.useLeft && this.useTop && Window.hasEffectLib && Effect.ResizeWindow)
|
1129 |
+
new Effect.ResizeWindow(this, this.storedLocation.top, this.storedLocation.left, this.storedLocation.width, this.storedLocation.height, {duration: Window.resizeEffectDuration});
|
1130 |
+
else {
|
1131 |
+
this.element.setStyle(this.useLeft ? {left: this.storedLocation.left} : {right: this.storedLocation.right});
|
1132 |
+
this.element.setStyle(this.useTop ? {top: this.storedLocation.top} : {bottom: this.storedLocation.bottom});
|
1133 |
+
this.setSize(this.storedLocation.width, this.storedLocation.height);
|
1134 |
+
}
|
1135 |
+
|
1136 |
+
Windows.resetOverflow();
|
1137 |
+
this._removeStoreLocation();
|
1138 |
+
}
|
1139 |
+
},
|
1140 |
+
|
1141 |
+
_removeStoreLocation: function() {
|
1142 |
+
this.storedLocation = null;
|
1143 |
+
},
|
1144 |
+
|
1145 |
+
_saveCookie: function() {
|
1146 |
+
if (this.cookie) {
|
1147 |
+
var value = "";
|
1148 |
+
if (this.useLeft)
|
1149 |
+
value += "l:" + (this.storedLocation ? this.storedLocation.left : this.element.getStyle('left'))
|
1150 |
+
else
|
1151 |
+
value += "r:" + (this.storedLocation ? this.storedLocation.right : this.element.getStyle('right'))
|
1152 |
+
if (this.useTop)
|
1153 |
+
value += ",t:" + (this.storedLocation ? this.storedLocation.top : this.element.getStyle('top'))
|
1154 |
+
else
|
1155 |
+
value += ",b:" + (this.storedLocation ? this.storedLocation.bottom :this.element.getStyle('bottom'))
|
1156 |
+
|
1157 |
+
value += "," + (this.storedLocation ? this.storedLocation.width : this.width);
|
1158 |
+
value += "," + (this.storedLocation ? this.storedLocation.height : this.height);
|
1159 |
+
value += "," + this.isMinimized();
|
1160 |
+
value += "," + this.isMaximized();
|
1161 |
+
WindowUtilities.setCookie(value, this.cookie)
|
1162 |
+
}
|
1163 |
+
},
|
1164 |
+
|
1165 |
+
_createWiredElement: function() {
|
1166 |
+
if (! this.wiredElement) {
|
1167 |
+
if (Prototype.Browser.IE)
|
1168 |
+
this._getWindowBorderSize();
|
1169 |
+
var div = document.createElement("div");
|
1170 |
+
div.className = "wired_frame " + this.options.className + "_wired_frame";
|
1171 |
+
|
1172 |
+
div.style.position = 'absolute';
|
1173 |
+
this.options.parent.insertBefore(div, this.options.parent.firstChild);
|
1174 |
+
this.wiredElement = $(div);
|
1175 |
+
}
|
1176 |
+
if (this.useLeft)
|
1177 |
+
this.wiredElement.setStyle({left: this.element.getStyle('left')});
|
1178 |
+
else
|
1179 |
+
this.wiredElement.setStyle({right: this.element.getStyle('right')});
|
1180 |
+
|
1181 |
+
if (this.useTop)
|
1182 |
+
this.wiredElement.setStyle({top: this.element.getStyle('top')});
|
1183 |
+
else
|
1184 |
+
this.wiredElement.setStyle({bottom: this.element.getStyle('bottom')});
|
1185 |
+
|
1186 |
+
var dim = this.element.getDimensions();
|
1187 |
+
this.wiredElement.setStyle({width: dim.width + "px", height: dim.height +"px"});
|
1188 |
+
|
1189 |
+
this.wiredElement.setStyle({zIndex: Windows.maxZIndex+30});
|
1190 |
+
return this.wiredElement;
|
1191 |
+
},
|
1192 |
+
|
1193 |
+
_hideWiredElement: function() {
|
1194 |
+
if (! this.wiredElement || ! this.currentDrag)
|
1195 |
+
return;
|
1196 |
+
if (this.currentDrag == this.element)
|
1197 |
+
this.currentDrag = null;
|
1198 |
+
else {
|
1199 |
+
if (this.useLeft)
|
1200 |
+
this.element.setStyle({left: this.currentDrag.getStyle('left')});
|
1201 |
+
else
|
1202 |
+
this.element.setStyle({right: this.currentDrag.getStyle('right')});
|
1203 |
+
|
1204 |
+
if (this.useTop)
|
1205 |
+
this.element.setStyle({top: this.currentDrag.getStyle('top')});
|
1206 |
+
else
|
1207 |
+
this.element.setStyle({bottom: this.currentDrag.getStyle('bottom')});
|
1208 |
+
|
1209 |
+
this.currentDrag.hide();
|
1210 |
+
this.currentDrag = null;
|
1211 |
+
if (this.doResize)
|
1212 |
+
this.setSize(this.width, this.height);
|
1213 |
+
}
|
1214 |
+
},
|
1215 |
+
|
1216 |
+
_notify: function(eventName) {
|
1217 |
+
if (this.options[eventName])
|
1218 |
+
this.options[eventName](this);
|
1219 |
+
else
|
1220 |
+
Windows.notify(eventName, this);
|
1221 |
+
}
|
1222 |
+
};
|
1223 |
+
|
1224 |
+
// Windows containers, register all page windows
|
1225 |
+
var Windows = {
|
1226 |
+
windows: [],
|
1227 |
+
modalWindows: [],
|
1228 |
+
observers: [],
|
1229 |
+
focusedWindow: null,
|
1230 |
+
maxZIndex: 0,
|
1231 |
+
overlayShowEffectOptions: {duration: 0.5},
|
1232 |
+
overlayHideEffectOptions: {duration: 0.5},
|
1233 |
+
|
1234 |
+
addObserver: function(observer) {
|
1235 |
+
this.removeObserver(observer);
|
1236 |
+
this.observers.push(observer);
|
1237 |
+
},
|
1238 |
+
|
1239 |
+
removeObserver: function(observer) {
|
1240 |
+
this.observers = this.observers.reject( function(o) { return o==observer });
|
1241 |
+
},
|
1242 |
+
|
1243 |
+
// onDestroy onStartResize onStartMove onResize onMove onEndResize onEndMove onFocus onBlur onBeforeShow onShow onHide onMinimize onMaximize onClose
|
1244 |
+
notify: function(eventName, win) {
|
1245 |
+
this.observers.each( function(o) {if(o[eventName]) o[eventName](eventName, win);});
|
1246 |
+
},
|
1247 |
+
|
1248 |
+
// Gets window from its id
|
1249 |
+
getWindow: function(id) {
|
1250 |
+
return this.windows.detect(function(d) { return d.getId() ==id });
|
1251 |
+
},
|
1252 |
+
|
1253 |
+
// Gets the last focused window
|
1254 |
+
getFocusedWindow: function() {
|
1255 |
+
return this.focusedWindow;
|
1256 |
+
},
|
1257 |
+
|
1258 |
+
updateFocusedWindow: function() {
|
1259 |
+
this.focusedWindow = this.windows.length >=2 ? this.windows[this.windows.length-2] : null;
|
1260 |
+
},
|
1261 |
+
|
1262 |
+
// Registers a new window (called by Windows constructor)
|
1263 |
+
register: function(win) {
|
1264 |
+
this.windows.push(win);
|
1265 |
+
},
|
1266 |
+
|
1267 |
+
// Add a modal window in the stack
|
1268 |
+
addModalWindow: function(win) {
|
1269 |
+
// Disable screen if first modal window
|
1270 |
+
if (this.modalWindows.length == 0) {
|
1271 |
+
WindowUtilities.disableScreen(win.options.className, 'overlay_modal', win.overlayOpacity, win.getId(), win.options.parent);
|
1272 |
+
}
|
1273 |
+
else {
|
1274 |
+
// Move overlay over all windows
|
1275 |
+
if (Window.keepMultiModalWindow) {
|
1276 |
+
$('overlay_modal').style.zIndex = Windows.maxZIndex + 1;
|
1277 |
+
Windows.maxZIndex += 1;
|
1278 |
+
WindowUtilities._hideSelect(this.modalWindows.last().getId());
|
1279 |
+
}
|
1280 |
+
// Hide current modal window
|
1281 |
+
else
|
1282 |
+
this.modalWindows.last().element.hide();
|
1283 |
+
// Fucking IE select issue
|
1284 |
+
WindowUtilities._showSelect(win.getId());
|
1285 |
+
}
|
1286 |
+
this.modalWindows.push(win);
|
1287 |
+
},
|
1288 |
+
|
1289 |
+
removeModalWindow: function(win) {
|
1290 |
+
this.modalWindows.pop();
|
1291 |
+
|
1292 |
+
// No more modal windows
|
1293 |
+
if (this.modalWindows.length == 0)
|
1294 |
+
WindowUtilities.enableScreen();
|
1295 |
+
else {
|
1296 |
+
if (Window.keepMultiModalWindow) {
|
1297 |
+
this.modalWindows.last().toFront();
|
1298 |
+
WindowUtilities._showSelect(this.modalWindows.last().getId());
|
1299 |
+
}
|
1300 |
+
else
|
1301 |
+
this.modalWindows.last().element.show();
|
1302 |
+
}
|
1303 |
+
},
|
1304 |
+
|
1305 |
+
// Registers a new window (called by Windows constructor)
|
1306 |
+
register: function(win) {
|
1307 |
+
this.windows.push(win);
|
1308 |
+
},
|
1309 |
+
|
1310 |
+
// Unregisters a window (called by Windows destructor)
|
1311 |
+
unregister: function(win) {
|
1312 |
+
this.windows = this.windows.reject(function(d) { return d==win });
|
1313 |
+
},
|
1314 |
+
|
1315 |
+
// Closes all windows
|
1316 |
+
closeAll: function() {
|
1317 |
+
this.windows.each( function(w) {Windows.close(w.getId())} );
|
1318 |
+
},
|
1319 |
+
|
1320 |
+
closeAllModalWindows: function() {
|
1321 |
+
WindowUtilities.enableScreen();
|
1322 |
+
this.modalWindows.each( function(win) {if (win) win.close()});
|
1323 |
+
},
|
1324 |
+
|
1325 |
+
// Minimizes a window with its id
|
1326 |
+
minimize: function(id, event) {
|
1327 |
+
var win = this.getWindow(id)
|
1328 |
+
if (win && win.visible)
|
1329 |
+
win.minimize();
|
1330 |
+
Event.stop(event);
|
1331 |
+
},
|
1332 |
+
|
1333 |
+
// Maximizes a window with its id
|
1334 |
+
maximize: function(id, event) {
|
1335 |
+
var win = this.getWindow(id)
|
1336 |
+
if (win && win.visible)
|
1337 |
+
win.maximize();
|
1338 |
+
Event.stop(event);
|
1339 |
+
},
|
1340 |
+
|
1341 |
+
// Closes a window with its id
|
1342 |
+
close: function(id, event) {
|
1343 |
+
var win = this.getWindow(id);
|
1344 |
+
if (win)
|
1345 |
+
win.close();
|
1346 |
+
if (event)
|
1347 |
+
Event.stop(event);
|
1348 |
+
},
|
1349 |
+
|
1350 |
+
blur: function(id) {
|
1351 |
+
var win = this.getWindow(id);
|
1352 |
+
if (!win)
|
1353 |
+
return;
|
1354 |
+
if (win.options.blurClassName)
|
1355 |
+
win.changeClassName(win.options.blurClassName);
|
1356 |
+
if (this.focusedWindow == win)
|
1357 |
+
this.focusedWindow = null;
|
1358 |
+
win._notify("onBlur");
|
1359 |
+
},
|
1360 |
+
|
1361 |
+
focus: function(id) {
|
1362 |
+
var win = this.getWindow(id);
|
1363 |
+
if (!win)
|
1364 |
+
return;
|
1365 |
+
if (this.focusedWindow)
|
1366 |
+
this.blur(this.focusedWindow.getId())
|
1367 |
+
|
1368 |
+
if (win.options.focusClassName)
|
1369 |
+
win.changeClassName(win.options.focusClassName);
|
1370 |
+
this.focusedWindow = win;
|
1371 |
+
win._notify("onFocus");
|
1372 |
+
},
|
1373 |
+
|
1374 |
+
unsetOverflow: function(except) {
|
1375 |
+
this.windows.each(function(d) { d.oldOverflow = d.getContent().getStyle("overflow") || "auto" ; d.getContent().setStyle({overflow: "hidden"}) });
|
1376 |
+
if (except && except.oldOverflow)
|
1377 |
+
except.getContent().setStyle({overflow: except.oldOverflow});
|
1378 |
+
},
|
1379 |
+
|
1380 |
+
resetOverflow: function() {
|
1381 |
+
this.windows.each(function(d) { if (d.oldOverflow) d.getContent().setStyle({overflow: d.oldOverflow}) });
|
1382 |
+
},
|
1383 |
+
|
1384 |
+
updateZindex: function(zindex, win) {
|
1385 |
+
if (zindex > this.maxZIndex) {
|
1386 |
+
this.maxZIndex = zindex;
|
1387 |
+
if (this.focusedWindow)
|
1388 |
+
this.blur(this.focusedWindow.getId())
|
1389 |
+
}
|
1390 |
+
this.focusedWindow = win;
|
1391 |
+
if (this.focusedWindow)
|
1392 |
+
this.focus(this.focusedWindow.getId())
|
1393 |
+
}
|
1394 |
+
};
|
1395 |
+
|
1396 |
+
var Dialog = {
|
1397 |
+
dialogId: null,
|
1398 |
+
onCompleteFunc: null,
|
1399 |
+
callFunc: null,
|
1400 |
+
parameters: null,
|
1401 |
+
|
1402 |
+
confirm: function(content, parameters) {
|
1403 |
+
// Get Ajax return before
|
1404 |
+
if (content && typeof content != "string") {
|
1405 |
+
Dialog._runAjaxRequest(content, parameters, Dialog.confirm);
|
1406 |
+
return
|
1407 |
+
}
|
1408 |
+
content = content || "";
|
1409 |
+
|
1410 |
+
parameters = parameters || {};
|
1411 |
+
var okLabel = parameters.okLabel ? parameters.okLabel : "Ok";
|
1412 |
+
var cancelLabel = parameters.cancelLabel ? parameters.cancelLabel : "Cancel";
|
1413 |
+
|
1414 |
+
// Backward compatibility
|
1415 |
+
parameters = Object.extend(parameters, parameters.windowParameters || {});
|
1416 |
+
parameters.windowParameters = parameters.windowParameters || {};
|
1417 |
+
|
1418 |
+
parameters.className = parameters.className || "alert";
|
1419 |
+
|
1420 |
+
var okButtonClass = "class ='" + (parameters.buttonClass ? parameters.buttonClass + " " : "") + " ok_button'"
|
1421 |
+
var cancelButtonClass = "class ='" + (parameters.buttonClass ? parameters.buttonClass + " " : "") + " cancel_button'"
|
1422 |
+
var content = "\
|
1423 |
+
<div class='" + parameters.className + "_message'>" + content + "</div>\
|
1424 |
+
<div class='" + parameters.className + "_buttons'>\
|
1425 |
+
<input type='button' value='" + okLabel + "' onclick='Dialog.okCallback()' " + okButtonClass + "/>\
|
1426 |
+
<input type='button' value='" + cancelLabel + "' onclick='Dialog.cancelCallback()' " + cancelButtonClass + "/>\
|
1427 |
+
</div>\
|
1428 |
+
";
|
1429 |
+
return this._openDialog(content, parameters)
|
1430 |
+
},
|
1431 |
+
|
1432 |
+
alert: function(content, parameters) {
|
1433 |
+
// Get Ajax return before
|
1434 |
+
if (content && typeof content != "string") {
|
1435 |
+
Dialog._runAjaxRequest(content, parameters, Dialog.alert);
|
1436 |
+
return
|
1437 |
+
}
|
1438 |
+
content = content || "";
|
1439 |
+
|
1440 |
+
parameters = parameters || {};
|
1441 |
+
var okLabel = parameters.okLabel ? parameters.okLabel : "Ok";
|
1442 |
+
|
1443 |
+
// Backward compatibility
|
1444 |
+
parameters = Object.extend(parameters, parameters.windowParameters || {});
|
1445 |
+
parameters.windowParameters = parameters.windowParameters || {};
|
1446 |
+
|
1447 |
+
parameters.className = parameters.className || "alert";
|
1448 |
+
|
1449 |
+
var okButtonClass = "class ='" + (parameters.buttonClass ? parameters.buttonClass + " " : "") + " ok_button'"
|
1450 |
+
var content = "\
|
1451 |
+
<div class='" + parameters.className + "_message'>" + content + "</div>\
|
1452 |
+
<div class='" + parameters.className + "_buttons'>\
|
1453 |
+
<input type='button' value='" + okLabel + "' onclick='Dialog.okCallback()' " + okButtonClass + "/>\
|
1454 |
+
</div>";
|
1455 |
+
return this._openDialog(content, parameters)
|
1456 |
+
},
|
1457 |
+
|
1458 |
+
info: function(content, parameters) {
|
1459 |
+
// Get Ajax return before
|
1460 |
+
if (content && typeof content != "string") {
|
1461 |
+
Dialog._runAjaxRequest(content, parameters, Dialog.info);
|
1462 |
+
return
|
1463 |
+
}
|
1464 |
+
content = content || "";
|
1465 |
+
|
1466 |
+
// Backward compatibility
|
1467 |
+
parameters = parameters || {};
|
1468 |
+
parameters = Object.extend(parameters, parameters.windowParameters || {});
|
1469 |
+
parameters.windowParameters = parameters.windowParameters || {};
|
1470 |
+
|
1471 |
+
parameters.className = parameters.className || "alert";
|
1472 |
+
|
1473 |
+
var content = "<div id='modal_dialog_message' class='" + parameters.className + "_message'>" + content + "</div>";
|
1474 |
+
if (parameters.showProgress)
|
1475 |
+
content += "<div id='modal_dialog_progress' class='" + parameters.className + "_progress'> </div>";
|
1476 |
+
|
1477 |
+
parameters.ok = null;
|
1478 |
+
parameters.cancel = null;
|
1479 |
+
|
1480 |
+
return this._openDialog(content, parameters)
|
1481 |
+
},
|
1482 |
+
|
1483 |
+
setInfoMessage: function(message) {
|
1484 |
+
$('modal_dialog_message').update(message);
|
1485 |
+
},
|
1486 |
+
|
1487 |
+
closeInfo: function() {
|
1488 |
+
Windows.close(this.dialogId);
|
1489 |
+
},
|
1490 |
+
|
1491 |
+
_openDialog: function(content, parameters) {
|
1492 |
+
var className = parameters.className;
|
1493 |
+
|
1494 |
+
if (! parameters.height && ! parameters.width) {
|
1495 |
+
parameters.width = WindowUtilities.getPageSize(parameters.options.parent || document.body).pageWidth / 2;
|
1496 |
+
}
|
1497 |
+
if (parameters.id)
|
1498 |
+
this.dialogId = parameters.id;
|
1499 |
+
else {
|
1500 |
+
var t = new Date();
|
1501 |
+
this.dialogId = 'modal_dialog_' + t.getTime();
|
1502 |
+
parameters.id = this.dialogId;
|
1503 |
+
}
|
1504 |
+
|
1505 |
+
// compute height or width if need be
|
1506 |
+
if (! parameters.height || ! parameters.width) {
|
1507 |
+
var size = WindowUtilities._computeSize(content, this.dialogId, parameters.width, parameters.height, 5, className)
|
1508 |
+
if (parameters.height)
|
1509 |
+
parameters.width = size + 5
|
1510 |
+
else
|
1511 |
+
parameters.height = size + 5
|
1512 |
+
}
|
1513 |
+
parameters.effectOptions = parameters.effectOptions ;
|
1514 |
+
parameters.resizable = parameters.resizable || false;
|
1515 |
+
parameters.minimizable = parameters.minimizable || false;
|
1516 |
+
parameters.maximizable = parameters.maximizable || false;
|
1517 |
+
parameters.draggable = parameters.draggable || false;
|
1518 |
+
parameters.closable = parameters.closable || false;
|
1519 |
+
|
1520 |
+
var win = new Window(parameters);
|
1521 |
+
win.getContent().innerHTML = content;
|
1522 |
+
|
1523 |
+
win.showCenter(true, parameters.top, parameters.left);
|
1524 |
+
win.setDestroyOnClose();
|
1525 |
+
|
1526 |
+
win.cancelCallback = parameters.onCancel || parameters.cancel;
|
1527 |
+
win.okCallback = parameters.onOk || parameters.ok;
|
1528 |
+
|
1529 |
+
return win;
|
1530 |
+
},
|
1531 |
+
|
1532 |
+
_getAjaxContent: function(originalRequest) {
|
1533 |
+
Dialog.callFunc(originalRequest.responseText, Dialog.parameters)
|
1534 |
+
},
|
1535 |
+
|
1536 |
+
_runAjaxRequest: function(message, parameters, callFunc) {
|
1537 |
+
if (message.options == null)
|
1538 |
+
message.options = {}
|
1539 |
+
Dialog.onCompleteFunc = message.options.onComplete;
|
1540 |
+
Dialog.parameters = parameters;
|
1541 |
+
Dialog.callFunc = callFunc;
|
1542 |
+
|
1543 |
+
message.options.onComplete = Dialog._getAjaxContent;
|
1544 |
+
new Ajax.Request(message.url, message.options);
|
1545 |
+
},
|
1546 |
+
|
1547 |
+
okCallback: function() {
|
1548 |
+
var win = Windows.focusedWindow;
|
1549 |
+
if (!win.okCallback || win.okCallback(win)) {
|
1550 |
+
// Remove onclick on button
|
1551 |
+
$$("#" + win.getId()+" input").each(function(element) {element.onclick=null;})
|
1552 |
+
win.close();
|
1553 |
+
}
|
1554 |
+
},
|
1555 |
+
|
1556 |
+
cancelCallback: function() {
|
1557 |
+
var win = Windows.focusedWindow;
|
1558 |
+
// Remove onclick on button
|
1559 |
+
$$("#" + win.getId()+" input").each(function(element) {element.onclick=null})
|
1560 |
+
win.close();
|
1561 |
+
if (win.cancelCallback)
|
1562 |
+
win.cancelCallback(win);
|
1563 |
+
}
|
1564 |
+
}
|
1565 |
+
/*
|
1566 |
+
Based on Lightbox JS: Fullsize Image Overlays
|
1567 |
+
by Lokesh Dhakar - http://www.huddletogether.com
|
1568 |
+
|
1569 |
+
For more information on this script, visit:
|
1570 |
+
http://huddletogether.com/projects/lightbox/
|
1571 |
+
|
1572 |
+
Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/
|
1573 |
+
(basically, do anything you want, just leave my name and link)
|
1574 |
+
*/
|
1575 |
+
|
1576 |
+
if (Prototype.Browser.WebKit) {
|
1577 |
+
var array = navigator.userAgent.match(new RegExp(/AppleWebKit\/([\d\.\+]*)/));
|
1578 |
+
Prototype.Browser.WebKitVersion = parseFloat(array[1]);
|
1579 |
+
}
|
1580 |
+
|
1581 |
+
var WindowUtilities = {
|
1582 |
+
// From dragdrop.js
|
1583 |
+
getWindowScroll: function(parent) {
|
1584 |
+
var T, L, W, H;
|
1585 |
+
parent = parent || document.body;
|
1586 |
+
if (parent != document.body) {
|
1587 |
+
T = parent.scrollTop;
|
1588 |
+
L = parent.scrollLeft;
|
1589 |
+
W = parent.scrollWidth;
|
1590 |
+
H = parent.scrollHeight;
|
1591 |
+
}
|
1592 |
+
else {
|
1593 |
+
var w = window;
|
1594 |
+
with (w.document) {
|
1595 |
+
if (w.document.documentElement && documentElement.scrollTop) {
|
1596 |
+
T = documentElement.scrollTop;
|
1597 |
+
L = documentElement.scrollLeft;
|
1598 |
+
} else if (w.document.body) {
|
1599 |
+
T = body.scrollTop;
|
1600 |
+
L = body.scrollLeft;
|
1601 |
+
}
|
1602 |
+
if (w.innerWidth) {
|
1603 |
+
W = w.innerWidth;
|
1604 |
+
H = w.innerHeight;
|
1605 |
+
} else if (w.document.documentElement && documentElement.clientWidth) {
|
1606 |
+
W = documentElement.clientWidth;
|
1607 |
+
H = documentElement.clientHeight;
|
1608 |
+
} else {
|
1609 |
+
W = body.offsetWidth;
|
1610 |
+
H = body.offsetHeight
|
1611 |
+
}
|
1612 |
+
}
|
1613 |
+
}
|
1614 |
+
return { top: T, left: L, width: W, height: H };
|
1615 |
+
},
|
1616 |
+
//
|
1617 |
+
// getPageSize()
|
1618 |
+
// Returns array with page width, height and window width, height
|
1619 |
+
// Core code from - quirksmode.org
|
1620 |
+
// Edit for Firefox by pHaez
|
1621 |
+
//
|
1622 |
+
getPageSize: function(parent){
|
1623 |
+
parent = parent || document.body;
|
1624 |
+
var windowWidth, windowHeight;
|
1625 |
+
var pageHeight, pageWidth;
|
1626 |
+
if (parent != document.body) {
|
1627 |
+
windowWidth = parent.getWidth();
|
1628 |
+
windowHeight = parent.getHeight();
|
1629 |
+
pageWidth = parent.scrollWidth;
|
1630 |
+
pageHeight = parent.scrollHeight;
|
1631 |
+
}
|
1632 |
+
else {
|
1633 |
+
var xScroll, yScroll;
|
1634 |
+
|
1635 |
+
if (window.innerHeight && window.scrollMaxY) {
|
1636 |
+
xScroll = document.body.scrollWidth;
|
1637 |
+
yScroll = window.innerHeight + window.scrollMaxY;
|
1638 |
+
} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
|
1639 |
+
xScroll = document.body.scrollWidth;
|
1640 |
+
yScroll = document.body.scrollHeight;
|
1641 |
+
} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
|
1642 |
+
xScroll = document.body.offsetWidth;
|
1643 |
+
yScroll = document.body.offsetHeight;
|
1644 |
+
}
|
1645 |
+
|
1646 |
+
|
1647 |
+
if (self.innerHeight) { // all except Explorer
|
1648 |
+
windowWidth = self.innerWidth;
|
1649 |
+
windowHeight = self.innerHeight;
|
1650 |
+
} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
|
1651 |
+
windowWidth = document.documentElement.clientWidth;
|
1652 |
+
windowHeight = document.documentElement.clientHeight;
|
1653 |
+
} else if (document.body) { // other Explorers
|
1654 |
+
windowWidth = document.body.clientWidth;
|
1655 |
+
windowHeight = document.body.clientHeight;
|
1656 |
+
}
|
1657 |
+
|
1658 |
+
// for small pages with total height less then height of the viewport
|
1659 |
+
if(yScroll < windowHeight){
|
1660 |
+
pageHeight = windowHeight;
|
1661 |
+
} else {
|
1662 |
+
pageHeight = yScroll;
|
1663 |
+
}
|
1664 |
+
|
1665 |
+
// for small pages with total width less then width of the viewport
|
1666 |
+
if(xScroll < windowWidth){
|
1667 |
+
pageWidth = windowWidth;
|
1668 |
+
} else {
|
1669 |
+
pageWidth = xScroll;
|
1670 |
+
}
|
1671 |
+
}
|
1672 |
+
return {pageWidth: pageWidth ,pageHeight: pageHeight , windowWidth: windowWidth, windowHeight: windowHeight};
|
1673 |
+
},
|
1674 |
+
|
1675 |
+
disableScreen: function(className, overlayId, overlayOpacity, contentId, parent) {
|
1676 |
+
WindowUtilities.initLightbox(overlayId, className, function() {this._disableScreen(className, overlayId, overlayOpacity, contentId)}.bind(this), parent || document.body);
|
1677 |
+
},
|
1678 |
+
|
1679 |
+
_disableScreen: function(className, overlayId, overlayOpacity, contentId) {
|
1680 |
+
// prep objects
|
1681 |
+
var objOverlay = $(overlayId);
|
1682 |
+
|
1683 |
+
var pageSize = WindowUtilities.getPageSize(objOverlay.parentNode);
|
1684 |
+
|
1685 |
+
// Hide select boxes as they will 'peek' through the image in IE, store old value
|
1686 |
+
if (contentId && Prototype.Browser.IE) {
|
1687 |
+
WindowUtilities._hideSelect();
|
1688 |
+
WindowUtilities._showSelect(contentId);
|
1689 |
+
}
|
1690 |
+
|
1691 |
+
// set height of Overlay to take up whole page and show
|
1692 |
+
objOverlay.style.height = (pageSize.pageHeight + 'px');
|
1693 |
+
objOverlay.style.display = 'none';
|
1694 |
+
if (overlayId == "overlay_modal" && Window.hasEffectLib && Windows.overlayShowEffectOptions) {
|
1695 |
+
objOverlay.overlayOpacity = overlayOpacity;
|
1696 |
+
new Effect.Appear(objOverlay, Object.extend({from: 0, to: overlayOpacity}, Windows.overlayShowEffectOptions));
|
1697 |
+
}
|
1698 |
+
else
|
1699 |
+
objOverlay.style.display = "block";
|
1700 |
+
},
|
1701 |
+
|
1702 |
+
enableScreen: function(id) {
|
1703 |
+
id = id || 'overlay_modal';
|
1704 |
+
var objOverlay = $(id);
|
1705 |
+
if (objOverlay) {
|
1706 |
+
// hide lightbox and overlay
|
1707 |
+
if (id == "overlay_modal" && Window.hasEffectLib && Windows.overlayHideEffectOptions)
|
1708 |
+
new Effect.Fade(objOverlay, Object.extend({from: objOverlay.overlayOpacity, to:0}, Windows.overlayHideEffectOptions));
|
1709 |
+
else {
|
1710 |
+
objOverlay.style.display = 'none';
|
1711 |
+
objOverlay.parentNode.removeChild(objOverlay);
|
1712 |
+
}
|
1713 |
+
|
1714 |
+
// make select boxes visible using old value
|
1715 |
+
if (id != "__invisible__")
|
1716 |
+
WindowUtilities._showSelect();
|
1717 |
+
}
|
1718 |
+
},
|
1719 |
+
|
1720 |
+
_hideSelect: function(id) {
|
1721 |
+
if (Prototype.Browser.IE) {
|
1722 |
+
id = id == null ? "" : "#" + id + " ";
|
1723 |
+
$$(id + 'select').each(function(element) {
|
1724 |
+
if (! WindowUtilities.isDefined(element.oldVisibility)) {
|
1725 |
+
element.oldVisibility = element.style.visibility ? element.style.visibility : "visible";
|
1726 |
+
element.style.visibility = "hidden";
|
1727 |
+
}
|
1728 |
+
});
|
1729 |
+
}
|
1730 |
+
},
|
1731 |
+
|
1732 |
+
_showSelect: function(id) {
|
1733 |
+
if (Prototype.Browser.IE) {
|
1734 |
+
id = id == null ? "" : "#" + id + " ";
|
1735 |
+
$$(id + 'select').each(function(element) {
|
1736 |
+
if (WindowUtilities.isDefined(element.oldVisibility)) {
|
1737 |
+
// Why?? Ask IE
|
1738 |
+
try {
|
1739 |
+
element.style.visibility = element.oldVisibility;
|
1740 |
+
} catch(e) {
|
1741 |
+
element.style.visibility = "visible";
|
1742 |
+
}
|
1743 |
+
element.oldVisibility = null;
|
1744 |
+
}
|
1745 |
+
else {
|
1746 |
+
if (element.style.visibility)
|
1747 |
+
element.style.visibility = "visible";
|
1748 |
+
}
|
1749 |
+
});
|
1750 |
+
}
|
1751 |
+
},
|
1752 |
+
|
1753 |
+
isDefined: function(object) {
|
1754 |
+
return typeof(object) != "undefined" && object != null;
|
1755 |
+
},
|
1756 |
+
|
1757 |
+
// initLightbox()
|
1758 |
+
// Function runs on window load, going through link tags looking for rel="lightbox".
|
1759 |
+
// These links receive onclick events that enable the lightbox display for their targets.
|
1760 |
+
// The function also inserts html markup at the top of the page which will be used as a
|
1761 |
+
// container for the overlay pattern and the inline image.
|
1762 |
+
initLightbox: function(id, className, doneHandler, parent) {
|
1763 |
+
// Already done, just update zIndex
|
1764 |
+
if ($(id)) {
|
1765 |
+
Element.setStyle(id, {zIndex: Windows.maxZIndex + 1});
|
1766 |
+
Windows.maxZIndex++;
|
1767 |
+
doneHandler();
|
1768 |
+
}
|
1769 |
+
// create overlay div and hardcode some functional styles (aesthetic styles are in CSS file)
|
1770 |
+
else {
|
1771 |
+
var objOverlay = document.createElement("div");
|
1772 |
+
objOverlay.setAttribute('id', id);
|
1773 |
+
objOverlay.className = "overlay_" + className
|
1774 |
+
objOverlay.style.display = 'none';
|
1775 |
+
objOverlay.style.position = 'absolute';
|
1776 |
+
objOverlay.style.top = '0';
|
1777 |
+
objOverlay.style.left = '0';
|
1778 |
+
objOverlay.style.zIndex = Windows.maxZIndex + 1;
|
1779 |
+
Windows.maxZIndex++;
|
1780 |
+
objOverlay.style.width = '100%';
|
1781 |
+
parent.insertBefore(objOverlay, parent.firstChild);
|
1782 |
+
if (Prototype.Browser.WebKit && id == "overlay_modal") {
|
1783 |
+
setTimeout(function() {doneHandler()}, 10);
|
1784 |
+
}
|
1785 |
+
else
|
1786 |
+
doneHandler();
|
1787 |
+
}
|
1788 |
+
},
|
1789 |
+
|
1790 |
+
setCookie: function(value, parameters) {
|
1791 |
+
document.cookie= parameters[0] + "=" + escape(value) +
|
1792 |
+
((parameters[1]) ? "; expires=" + parameters[1].toGMTString() : "") +
|
1793 |
+
((parameters[2]) ? "; path=" + parameters[2] : "") +
|
1794 |
+
((parameters[3]) ? "; domain=" + parameters[3] : "") +
|
1795 |
+
((parameters[4]) ? "; secure" : "");
|
1796 |
+
},
|
1797 |
+
|
1798 |
+
getCookie: function(name) {
|
1799 |
+
var dc = document.cookie;
|
1800 |
+
var prefix = name + "=";
|
1801 |
+
var begin = dc.indexOf("; " + prefix);
|
1802 |
+
if (begin == -1) {
|
1803 |
+
begin = dc.indexOf(prefix);
|
1804 |
+
if (begin != 0) return null;
|
1805 |
+
} else {
|
1806 |
+
begin += 2;
|
1807 |
+
}
|
1808 |
+
var end = document.cookie.indexOf(";", begin);
|
1809 |
+
if (end == -1) {
|
1810 |
+
end = dc.length;
|
1811 |
+
}
|
1812 |
+
return unescape(dc.substring(begin + prefix.length, end));
|
1813 |
+
},
|
1814 |
+
|
1815 |
+
_computeSize: function(content, id, width, height, margin, className) {
|
1816 |
+
var objBody = document.body;
|
1817 |
+
var tmpObj = document.createElement("div");
|
1818 |
+
tmpObj.setAttribute('id', id);
|
1819 |
+
tmpObj.className = className + "_content";
|
1820 |
+
|
1821 |
+
if (height)
|
1822 |
+
tmpObj.style.height = height + "px"
|
1823 |
+
else
|
1824 |
+
tmpObj.style.width = width + "px"
|
1825 |
+
|
1826 |
+
tmpObj.style.position = 'absolute';
|
1827 |
+
tmpObj.style.top = '0';
|
1828 |
+
tmpObj.style.left = '0';
|
1829 |
+
tmpObj.style.display = 'none';
|
1830 |
+
|
1831 |
+
tmpObj.innerHTML = content;
|
1832 |
+
objBody.insertBefore(tmpObj, objBody.firstChild);
|
1833 |
+
|
1834 |
+
var size;
|
1835 |
+
if (height)
|
1836 |
+
size = $(tmpObj).getDimensions().width + margin;
|
1837 |
+
else
|
1838 |
+
size = $(tmpObj).getDimensions().height + margin;
|
1839 |
+
objBody.removeChild(tmpObj);
|
1840 |
+
return size;
|
1841 |
+
}
|
1842 |
+
}
|
1843 |
+
|
js/toogas/slideshow/slideshow.js
ADDED
@@ -0,0 +1,45 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
var delay=3000;var start_frame=0;var el=0;var timeout=0;var timeout1=0;var timeout2=0;function init(){var lis=$('slide-images').getElementsByTagName('li');for(i=0;i<lis.length;i++){if(i!=0){lis[i].style.display='none';}}
|
2 |
+
end_frame=lis.length-1;start_slideshow(start_frame,end_frame,delay,lis,el);}
|
3 |
+
function start_slideshow(start_frame,end_frame,delay,lis,el){$('show_0').setAttribute("src","skin/frontend/base/default/images/slideshow/active.png");$('show_0').addClassName('active');timeout=setTimeout(function(){fadeInOut(start_frame,start_frame,end_frame,delay,lis,el,timeout)},delay);}
|
4 |
+
function fadeInOut(frame,start_frame,end_frame,delay,lis,el){lis=$('slide-images').getElementsByTagName('li');Effect.Fade(lis[frame]);if(frame==end_frame){frame=start_frame;}else{frame++;}
|
5 |
+
lisAppear=lis[frame];if(el<end_frame)
|
6 |
+
{var el=el+1;}
|
7 |
+
else
|
8 |
+
{var el=0;}
|
9 |
+
if(el=='0')
|
10 |
+
{$('show_'+end_frame).setAttribute("src","skin/frontend/base/default/images/slideshow/not_active.png");$('show_'+end_frame).removeClassName('active');}
|
11 |
+
$('show_'+el).setAttribute("src","skin/frontend/base/default/images/slideshow/active.png");$('show_'+el).addClassName('active');if(el>0)
|
12 |
+
{var temp=el-1;$('show_'+temp).setAttribute("src","skin/frontend/base/default/images/slideshow/not_active.png");$('show_'+temp).removeClassName('active');}
|
13 |
+
timeout1=setTimeout("Effect.Appear(lisAppear);",0);timeout2=setTimeout(function(){fadeInOut(frame,start_frame,end_frame,delay,null,el)},delay+1850);}
|
14 |
+
function disableNextImage(){$('nextImg').setAttribute("onclick","changeNextImg()");}
|
15 |
+
function disablePreviousImage(){$('previousImg').setAttribute("onclick","changePreviousImg()");}
|
16 |
+
function changeNextImg(){clearTimeout(timeout);clearTimeout(timeout1);clearTimeout(timeout2);$('nextImg').setAttribute("onclick","");var start_frame=0;var lis=$('slide-images').getElementsByTagName('li');var end_frame=lis.length-1;var show=$('show').getElementsByTagName('img');for(i=0;i<show.length;i++)
|
17 |
+
{if($(show[i].id).hasClassName('active'))
|
18 |
+
{id=show[i].id;var temp1=id.split("_");if(temp1[1]==end_frame)
|
19 |
+
{Effect.Fade(lis[temp1[1]]);var next_num=start_frame;}
|
20 |
+
else
|
21 |
+
{Effect.Fade(lis[temp1[1]]);var next_num=parseFloat(temp1[1])+parseFloat(1);}}}
|
22 |
+
lisAppear=lis[next_num];$('show_'+next_num).setAttribute("src","skin/frontend/base/default/images/slideshow/active.png");$('show_'+next_num).addClassName('active');for(i=0;i<lis.length;i++)
|
23 |
+
{if(i!=next_num)
|
24 |
+
{lis[i].style.display='none';}}
|
25 |
+
for(i=0;i<show.length;i++)
|
26 |
+
{if(show[i].id!='show_'+next_num)
|
27 |
+
{$(show[i].id).setAttribute("src","skin/frontend/base/default/images/slideshow/not_active.png");$(show[i].id).removeClassName('active');}}
|
28 |
+
setTimeout("Effect.Appear(lisAppear);",0);setTimeout("disableNextImage()",1000);}
|
29 |
+
function changePreviousImg(){clearTimeout(timeout);clearTimeout(timeout1);clearTimeout(timeout2);$('previousImg').setAttribute("onclick","");var start_frame=0;var lis=$('slide-images').getElementsByTagName('li');var end_frame=lis.length-1;var show=$('show').getElementsByTagName('img');for(i=0;i<show.length;i++)
|
30 |
+
{if($(show[i].id).hasClassName('active'))
|
31 |
+
{id=show[i].id;var temp1=id.split("_");if(temp1[1]==start_frame)
|
32 |
+
{Effect.Fade(lis[temp1[1]]);var previous_num=end_frame;}
|
33 |
+
else
|
34 |
+
{Effect.Fade(lis[temp1[1]]);var previous_num=temp1[1]-1;}}}
|
35 |
+
lisAppear=lis[previous_num];$('show_'+previous_num).setAttribute("src","skin/frontend/base/default/images/slideshow/active.png");$('show_'+previous_num).addClassName('active');for(i=0;i<lis.length;i++)
|
36 |
+
{if(i!=previous_num)
|
37 |
+
{lis[i].style.display='none';}}
|
38 |
+
for(i=0;i<show.length;i++)
|
39 |
+
{if(show[i].id!='show_'+previous_num)
|
40 |
+
{$(show[i].id).setAttribute("src","skin/frontend/base/default/images/slideshow/not_active.png");$(show[i].id).removeClassName('active');}}
|
41 |
+
setTimeout("Effect.Appear(lisAppear);",0);setTimeout("disablePreviousImage()",1000);}
|
42 |
+
Event.observe(window,'load',init,false);function showSearch()
|
43 |
+
{if($('form-search').hasClassName('hidesearch'))
|
44 |
+
{$('form-search').removeClassName('hidesearch');}
|
45 |
+
else{$('form-search').addClassName('hidesearch');}}
|
js/toogas/slideshow/slideshow.js~
ADDED
@@ -0,0 +1,45 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
var delay=3000;var start_frame=0;var el=0;var timeout=0;var timeout1=0;var timeout2=0;function init(){var lis=$('slide-images').getElementsByTagName('li');for(i=0;i<lis.length;i++){if(i!=0){lis[i].style.display='none';}}
|
2 |
+
end_frame=lis.length-1;start_slideshow(start_frame,end_frame,delay,lis,el);}
|
3 |
+
function start_slideshow(start_frame,end_frame,delay,lis,el){$('show_0').setAttribute("src","skin/frontend/toogas/default/images/active.png");$('show_0').addClassName('active');timeout=setTimeout(function(){fadeInOut(start_frame,start_frame,end_frame,delay,lis,el,timeout)},delay);}
|
4 |
+
function fadeInOut(frame,start_frame,end_frame,delay,lis,el){lis=$('slide-images').getElementsByTagName('li');Effect.Fade(lis[frame]);if(frame==end_frame){frame=start_frame;}else{frame++;}
|
5 |
+
lisAppear=lis[frame];if(el<end_frame)
|
6 |
+
{var el=el+1;}
|
7 |
+
else
|
8 |
+
{var el=0;}
|
9 |
+
if(el=='0')
|
10 |
+
{$('show_'+end_frame).setAttribute("src","skin/frontend/toogas/default/images/not_active.png");$('show_'+end_frame).removeClassName('active');}
|
11 |
+
$('show_'+el).setAttribute("src","skin/frontend/toogas/default/images/active.png");$('show_'+el).addClassName('active');if(el>0)
|
12 |
+
{var temp=el-1;$('show_'+temp).setAttribute("src","skin/frontend/toogas/default/images/not_active.png");$('show_'+temp).removeClassName('active');}
|
13 |
+
timeout1=setTimeout("Effect.Appear(lisAppear);",0);timeout2=setTimeout(function(){fadeInOut(frame,start_frame,end_frame,delay,null,el)},delay+1850);}
|
14 |
+
function disableNextImage(){$('nextImg').setAttribute("onclick","changeNextImg()");}
|
15 |
+
function disablePreviousImage(){$('previousImg').setAttribute("onclick","changePreviousImg()");}
|
16 |
+
function changeNextImg(){clearTimeout(timeout);clearTimeout(timeout1);clearTimeout(timeout2);$('nextImg').setAttribute("onclick","");var start_frame=0;var lis=$('slide-images').getElementsByTagName('li');var end_frame=lis.length-1;var show=$('show').getElementsByTagName('img');for(i=0;i<show.length;i++)
|
17 |
+
{if($(show[i].id).hasClassName('active'))
|
18 |
+
{id=show[i].id;var temp1=id.split("_");if(temp1[1]==end_frame)
|
19 |
+
{Effect.Fade(lis[temp1[1]]);var next_num=start_frame;}
|
20 |
+
else
|
21 |
+
{Effect.Fade(lis[temp1[1]]);var next_num=parseFloat(temp1[1])+parseFloat(1);}}}
|
22 |
+
lisAppear=lis[next_num];$('show_'+next_num).setAttribute("src","skin/frontend/toogas/default/images/active.png");$('show_'+next_num).addClassName('active');for(i=0;i<lis.length;i++)
|
23 |
+
{if(i!=next_num)
|
24 |
+
{lis[i].style.display='none';}}
|
25 |
+
for(i=0;i<show.length;i++)
|
26 |
+
{if(show[i].id!='show_'+next_num)
|
27 |
+
{$(show[i].id).setAttribute("src","skin/frontend/toogas/default/images/not_active.png");$(show[i].id).removeClassName('active');}}
|
28 |
+
setTimeout("Effect.Appear(lisAppear);",0);setTimeout("disableNextImage()",1000);}
|
29 |
+
function changePreviousImg(){clearTimeout(timeout);clearTimeout(timeout1);clearTimeout(timeout2);$('previousImg').setAttribute("onclick","");var start_frame=0;var lis=$('slide-images').getElementsByTagName('li');var end_frame=lis.length-1;var show=$('show').getElementsByTagName('img');for(i=0;i<show.length;i++)
|
30 |
+
{if($(show[i].id).hasClassName('active'))
|
31 |
+
{id=show[i].id;var temp1=id.split("_");if(temp1[1]==start_frame)
|
32 |
+
{Effect.Fade(lis[temp1[1]]);var previous_num=end_frame;}
|
33 |
+
else
|
34 |
+
{Effect.Fade(lis[temp1[1]]);var previous_num=temp1[1]-1;}}}
|
35 |
+
lisAppear=lis[previous_num];$('show_'+previous_num).setAttribute("src","skin/frontend/toogas/default/images/active.png");$('show_'+previous_num).addClassName('active');for(i=0;i<lis.length;i++)
|
36 |
+
{if(i!=previous_num)
|
37 |
+
{lis[i].style.display='none';}}
|
38 |
+
for(i=0;i<show.length;i++)
|
39 |
+
{if(show[i].id!='show_'+previous_num)
|
40 |
+
{$(show[i].id).setAttribute("src","skin/frontend/toogas/default/images/not_active.png");$(show[i].id).removeClassName('active');}}
|
41 |
+
setTimeout("Effect.Appear(lisAppear);",0);setTimeout("disablePreviousImage()",1000);}
|
42 |
+
Event.observe(window,'load',init,false);function showSearch()
|
43 |
+
{if($('form-search').hasClassName('hidesearch'))
|
44 |
+
{$('form-search').removeClassName('hidesearch');}
|
45 |
+
else{$('form-search').addClassName('hidesearch');}}
|
package.xml
ADDED
@@ -0,0 +1,20 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<package>
|
3 |
+
<name>toogas_featured_popup_free_version</name>
|
4 |
+
<version>1.0.0</version>
|
5 |
+
<stability>stable</stability>
|
6 |
+
<license uri="http://www.toogas.com/licences/toogas_license-free.txt">Community</license>
|
7 |
+
<channel>community</channel>
|
8 |
+
<extends/>
|
9 |
+
<summary>With Featured Pop-Up extension it’s possible to define the pop-ups you want being called from the Homepage.</summary>
|
10 |
+
<description>With fully customized options at magento’s admin (CMS -> Featured Popup) just define, for each one of them, the correspondent image, its dimensions, associated store views and the several optional settings (opacity, priority – in case of more than one popup being called from the same page, start and close delays of the popup window and even an associated link to allow, upon a mouse clicking, to jump to that specific URL).
|
11 |
+
|
12 |
+
You can also define the “from” and “to” dates during which the popup is going to be enable and visible.</description>
|
13 |
+
<notes>Free Version of the Featured Popup.</notes>
|
14 |
+
<authors><author><name>Pedro Azevedo</name><user>auto-converted</user><email>pedrovazazevedo@toogas.com</email></author><author><name>Paulo Silva</name><user>auto-converted</user><email>psilva@toogas.com</email></author></authors>
|
15 |
+
<date>2011-02-14</date>
|
16 |
+
<time>17:09:03</time>
|
17 |
+
<contents><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="toogas"><dir name="Featuredpopup"><file name="featured_popup.gif" hash="ab25e7f2c819f15c78384820dad0a745"/></dir><file name="toogas_logo.jpg" hash="e8ef5fcbb97484e3a2ad1fe5d84c0a88"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="Toogas"><dir name="Featuredpopup"><dir name="default"><file name="bottom_left.gif" hash="fb99ffa815a8648f95f42698fe5dfaa1"/><file name="bottom_mid.gif" hash="49b9ca7025562ea7f070a9111282364b"/><file name="bottom_right.gif" hash="e46768f632765cd86c5fe5d0166dcf2c"/><file name="bottom_right_resize.gif" hash="1b35a4ec3b734dfe37e31ba87bcc7d99"/><file name="center_left.gif" hash="bd567580b4ee16a7a2734057cfbbe219"/><file name="center_right.gif" hash="eef184d5d89d1710313581a2ccf408e8"/><file name="clear.gif" hash="7af1206eeb0e7834a75e69d70676060d"/><file name="close.gif" hash="8a08f243c37a8e25a88d4ac135b2f07d"/><file name="inspect.gif" hash="aa2a0961067aad5c54b8634919af863b"/><file name="maximize.gif" hash="e73cd71c4979ebeadeb9e27d40a9e8fb"/><file name="minimize.gif" hash="2d2f4b1bd0506f342425f80ab76c49a3"/><file name="overlay.png" hash="536d40e87cda0c7ae7b11f1721aa52d0"/><file name="resize.gif" hash="320f534b5d444b39701e0b679529e779"/><file name="sizer.gif" hash="1b35a4ec3b734dfe37e31ba87bcc7d99"/><file name="top_left.gif" hash="9c5e5920bfc189a45cc618099af93aa8"/><file name="top_mid.gif" hash="a12ff2b944025ad2d127d033dae5e9e1"/><file name="top_right.gif" hash="0cf1ec5b93f8ac8fcce0e2f72cf7f45e"/></dir><dir name="mac_os_x"><file name="B.png" hash="2fea4a4d5e990fa375ad9eaf020bee5e"/><file name="BL.png" hash="ea146bd3aad0711cdff18d9c4da9ef91"/><file name="BL_Main.png" hash=""/><file name="BR.png" hash="2b2e6565cee5e26dda2f01a1f49bbc29"/><file name="BR_Main.png" hash=""/><file name="B_Main.png" hash="cf6434f14c177549cb105409c57ad6a1"/><file name="close.gif" hash="8a08f243c37a8e25a88d4ac135b2f07d"/><file name="L.png" hash="853d64d3d3bf796216f4a5316678af91"/><file name="L_Main.png" hash="634dacbbe3897ff7ece850d1dbb9965e"/><file name="maximize.gif" hash="e73cd71c4979ebeadeb9e27d40a9e8fb"/><file name="minimize.gif" hash="2d2f4b1bd0506f342425f80ab76c49a3"/><file name="R.png" hash="987d585b4a287276e24432b4698d9bc0"/><file name="R_Main.png" hash="e3b066b234b460afebd1d423eb483dd7"/><file name="T.png" hash="827cdb4c01906725269435d11daf3294"/><file name="TL.png" hash="87c0672cbef7a0a4e9bb3133cb93ddaa"/><file name="TL_Main.png" hash="137daac506cf6748cb56536a436ba137"/><file name="TR.png" hash="b69408667b74fc79bb49a9a7585be0ca"/><file name="TR_Main.png" hash="c510261f75c9887efea1fbd1bbed35f1"/><file name="T_Main.png" hash="a0aec2a53e2cbdbe7ef589ca7c999ffe"/></dir><file name="default.css" hash="60cd9ab79c6c09ab21b770443a910d04"/></dir></dir></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="featuredpopup.xml" hash="f720029f4bf9fc7faef47b3589f17848"/></dir><dir name="template"><dir name="toogas_toogaslda"><dir name="system"><dir name="config"><dir name="fieldset"><file name="toogas.phtml" hash="813549d1e4456d9c58bae8911d851672"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="toogas_featuredpopup.xml" hash="4291651633167a90f06d12617cfa9067"/></dir><dir name="template"><dir name="toogas_featuredpopup"><file name="featuredpopup.phtml" hash="2a4128e76afb2ad05e5b448145021fdc"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_GB"><file name="Toogas_Featuredpopup.csv" hash="7f321efbc01725fb27c9746fc102d51e"/><file name="Toogas_Toogaslda.csv" hash="fba436aad6f9db392405de33fea5ad49"/></dir><dir name="en_US"><file name="Toogas_Featuredpopup.csv" hash="7f321efbc01725fb27c9746fc102d51e"/><file name="Toogas_Toogaslda.csv" hash="fba436aad6f9db392405de33fea5ad49"/></dir><dir name="es_ES"><file name="Toogas_Featuredpopup.csv" hash="8ef5fc4e310ac7ba80c53c7036bf8e32"/><file name="Toogas_Toogaslda.csv" hash="4742f5912349c51917bb068cce36e07a"/></dir><dir name="pt_BR"><file name="Toogas_Featuredpopup.csv" hash="cf68df906ba4f1e454f1db6c1d6a0aa9"/><file name="Toogas_Toogaslda.csv" hash="50d38d03fd09c4cfef6df07ca47a8f81"/></dir><dir name="pt_PT"><file name="Toogas_Featuredpopup.csv" hash="cf68df906ba4f1e454f1db6c1d6a0aa9"/><file name="Toogas_Toogaslda.csv" hash="50d38d03fd09c4cfef6df07ca47a8f81"/></dir></target><target name="mageweb"><dir name="js"><dir name="toogas"><dir name="featuredpopup"><dir name="js"><file name="window.js" hash="0b119d6ec8c49da99a854dad60a4195f"/><file name="window_orig.js" hash="1e305ad1d962f10a56c6970babc03d32"/></dir></dir><dir name="slideshow"><file name="slideshow.js" hash="89c706c0022ccae11ddb9f47b474bde9"/><file name="slideshow.js~" hash="d4bfadb98c4b8128d469ba1cf940e6df"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Toogas_Featuredpopup.xml" hash="fc847368b47d545494326a6163d0bd01"/></dir></target><target name="magelocal"><dir name="Toogas"><dir name="Featuredpopup"><dir name="Block"><dir name="Adminhtml"><dir name="Featuredpopup"><dir name="Edit"><dir name="Tab"><file name="Form.php" hash="71430b8ba385a8ff06b32a08913a91c5"/><file name="Formdate.php" hash="947053788ca8d46a0fa6a1d807ffe107"/><file name="Formpopup.php" hash="b526f94e5aadb61cd416779085c33fd9"/></dir><file name="Form.php" hash="2a8d2f7660915e5e6b026303731464a2"/><file name="Tabs.php" hash="8c34437d2f1327543de687decef1f1bb"/></dir><file name="Edit.php" hash="fc2922ab151d22fb4ef72f2b7b88b51e"/><file name="Grid.php" hash="411d840ab4d95e6f991d73aa910ff1d5"/></dir><file name="Featuredpopup.php" hash="7ac83e834616624d360e5f1467c0d251"/></dir><file name="Featuredpopup.php" hash="362328c098d781f3476f77132105520a"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="FeaturedpopupController.php" hash="058fce266aada913e85d185a5247d3be"/></dir></dir><dir name="etc"><file name="config.xml" hash="3dc6ae6b52d7428315705c00907c993c"/><file name="system.xml" hash="f85813a49b50ce67135d316155f18f8d"/></dir><dir name="Helper"><file name="Data.php" hash="37d55824d6f3aefbb8146c9563ccac21"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Featuredpopup"><file name="Collection.php" hash="f1b61a4cb961d627ae6f34168c48947d"/></dir><file name="Featuredpopup.php" hash="447c5bf1704b39fdc8470d58af76a13a"/></dir><file name="Featuredpopup.php" hash="84ecce07407ff5f904b1244fcdf6761d"/></dir><dir name="sql"><dir name="featuredpopup_setup"><file name="mysql4-install-0.1.0.php" hash="74c854d97d1844e1226a90e98d488921"/></dir></dir><file name="readme.txt" hash="d2b0f89a0065d0747fc9b7d2ceb358ce"/><file name="toogas_license-free.txt" hash="0bc9e50942f208c5c3d0d556a90861a9"/></dir><dir name="Toogaslda"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Toogas.php" hash="b2e74f7d9cbd8bce9d232ef12dc96de7"/></dir></dir></dir></dir></dir><dir name="etc"><file name="config.xml" hash="13c5051d30c9d67fd640a8701159750b"/><file name="system.xml" hash="a2797ad1121cf332b5b2dbb2f60c7da6"/></dir><dir name="Helper"><file name="Data.php" hash="9b7b50f15e375cd2a6e33ceb9938253b"/></dir></dir></dir></target></contents>
|
18 |
+
<compatible/>
|
19 |
+
<dependencies/>
|
20 |
+
</package>
|
skin/adminhtml/default/default/images/toogas/Featuredpopup/featured_popup.gif
ADDED
Binary file
|
skin/adminhtml/default/default/images/toogas/toogas_logo.jpg
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default.css
ADDED
@@ -0,0 +1,73 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
.overlay_dialog{background-color:#666666;filter:alpha(opacity=60);-moz-opacity:0.6;opacity:0.6;}
|
2 |
+
.overlay___invisible__{background-color:#666666;filter:alpha(opacity=0);-moz-opacity:0;opacity:0;}
|
3 |
+
.dialog_nw{width:9px;height:23px;background:transparent url(default/top_left.gif)no-repeat 0 0;}
|
4 |
+
.dialog_n{background:transparent url(default/top_mid.gif)repeat-x 0 0;height:23px;}
|
5 |
+
.dialog_ne{width:9px;height:23px;background:transparent url(default/top_right.gif)no-repeat 0 0;}
|
6 |
+
.dialog_e{width:2px;background:transparent url(default/center_right.gif)repeat-y 0 0;}
|
7 |
+
.dialog_w{width:2px;background:transparent url(default/center_left.gif)repeat-y 0 0;}
|
8 |
+
.dialog_sw{width:9px;height:19px;background:transparent url(default/bottom_left.gif)no-repeat 0 0;}
|
9 |
+
.dialog_s{background:transparent url(default/bottom_mid.gif)repeat-x 0 0;height:19px;}
|
10 |
+
.dialog_se{width:9px;height:19px;background:transparent url(default/bottom_right.gif)no-repeat 0 0;}
|
11 |
+
.dialog_sizer{width:9px;height:19px;background:transparent url(default/sizer.gif)no-repeat 0 0;cursor:se-resize;}
|
12 |
+
.dialog_close{width:14px;height:14px;background:transparent url(default/close.gif)no-repeat 0 0;position:absolute;top:5px;left:8px;cursor:pointer;z-index:2000;}
|
13 |
+
.dialog_minimize{width:14px;height:15px;background:transparent url(default/minimize.gif)no-repeat 0 0;position:absolute;top:5px;left:28px;cursor:pointer;z-index:2000;}
|
14 |
+
.dialog_maximize{width:14px;height:15px;background:transparent url(default/maximize.gif)no-repeat 0 0;position:absolute;top:5px;left:49px;cursor:pointer;z-index:2000;}
|
15 |
+
.dialog_title{float:left;height:14px;font-family:Tahoma, Arial, sans-serif;font-size:12px;text-align:center;width:100%;color:#000;}
|
16 |
+
.dialog_content{overflow:auto;color:#DDD;font-family:Tahoma, Arial, sans-serif;font-size:10px;background-color:#123;}
|
17 |
+
.top_draggable, .bottom_draggable{cursor:move;}
|
18 |
+
.status_bar{font-size:12px;}
|
19 |
+
.status_bar input{font-size:12px;}
|
20 |
+
.wired_frame{display:block;position:absolute;border:1px #000 dashed;}
|
21 |
+
.dialog{display:block;position:absolute;}
|
22 |
+
.dialog table.table_window{border-collapse:collapse;border-spacing:0;width:100%;margin:0px;padding:0px;}
|
23 |
+
.dialog table.table_window td , .dialog table.table_window th{padding:0;}
|
24 |
+
.dialog .title_window{-moz-user-select:none;}
|
25 |
+
.overlay_mac_os_x{background-color:#85BBEF;filter:alpha(opacity=60);-moz-opacity:0.6;opacity:0.6;}
|
26 |
+
.mac_os_x_nw{width:24px;height:30px;}
|
27 |
+
.mac_os_x_n{height:30px;}
|
28 |
+
.mac_os_x_ne{width:31px;height:30px;}
|
29 |
+
.mac_os_x_w{width:16px;}
|
30 |
+
.mac_os_x_e{width:16px;}
|
31 |
+
.mac_os_x_sw{width:31px;height:40px;}
|
32 |
+
.mac_os_x_s{height:40px;}
|
33 |
+
.mac_os_x_se, .mac_os_x_sizer{width:31px;height:40px;}
|
34 |
+
.mac_os_x_sizer{cursor:se-resize;}
|
35 |
+
.mac_os_x_close{width:19px;height:19px;position:absolute;top:12px;left:25px;cursor:pointer;z-index:1000;}
|
36 |
+
.mac_os_x_minimize{width:19px;height:19px;position:absolute;top:12px;left:45px;cursor:pointer;z-index:1000;}
|
37 |
+
.mac_os_x_maximize{width:19px;height:19px;position:absolute;top:12px;left:65px;cursor:pointer;z-index:1000;}
|
38 |
+
.mac_os_x_title{float:left;height:14px;font-family:Tahoma, Arial, sans-serif;font-size:12px;text-align:center;margin-top:8px;width:100%;color:#000;}
|
39 |
+
.mac_os_x_content{overflow:hidden;color:#222;font-family:Tahoma, Arial, sans-serif;font-size:10px;background:#FFF;}
|
40 |
+
.mac_os_x_s .status_bar{padding-bottom:24px;}
|
41 |
+
* html .mac_os_x_nw{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TL_Main.png", sizingMethod="crop");}* html .mac_os_x_n{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/T_Main.png", sizingMethod="scale");}
|
42 |
+
* html .mac_os_x_ne{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TR_Main.png", sizingMethod="crop");}
|
43 |
+
* html .mac_os_x_w{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/L_Main.png", sizingMethod="scale");}
|
44 |
+
* html .mac_os_x_e{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/R_Main.png", sizingMethod="scale");}
|
45 |
+
* html .mac_os_x_sw{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BL_Main.png", sizingMethod="crop");}
|
46 |
+
* html .mac_os_x_s{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/B_Main.png", sizingMethod="scale");}
|
47 |
+
* html .mac_os_x_se{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR_Main.png", sizingMethod="crop");}
|
48 |
+
* html .mac_os_x_sizer{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR_Main.png", sizingMethod="crop");}
|
49 |
+
.overlay_blur_os_x{background-color:#85BBEF;filter:alpha(opacity=60);-moz-opacity:0.6;opacity:0.6;}
|
50 |
+
.blur_os_x_nw{background:transparent url(mac_os_x/TL.png)no-repeat 0 0;width:24px;height:30px;}
|
51 |
+
.blur_os_x_n{background:transparent url(mac_os_x/T.png)repeat-x 0 0;height:30px;}
|
52 |
+
.blur_os_x_ne{background:transparent url(mac_os_x/TR.png)no-repeat 0 0;width:31px;height:30px;}
|
53 |
+
.blur_os_x_w{background:transparent url(mac_os_x/L.png)repeat-y top left;width:16px;}
|
54 |
+
.blur_os_x_e{background:transparent url(mac_os_x/R.png)repeat-y top right;width:16px;}
|
55 |
+
.blur_os_x_sw{background:transparent url(mac_os_x/BL.png)no-repeat 0 0;width:31px;height:40px;}
|
56 |
+
.blur_os_x_s{background:transparent url(mac_os_x/B.png)repeat-x 0 0;height:40px;}
|
57 |
+
.blur_os_x_se, .blur_os_x_sizer{background:transparent url(mac_os_x/BR.png)no-repeat 0 0;width:31px;height:40px;}
|
58 |
+
.blur_os_x_sizer{cursor:se-resize;}
|
59 |
+
.blur_os_x_close{width:19px;height:19px;background:transparent url(mac_os_x/close.gif)no-repeat 0 0;position:absolute;top:12px;left:25px;cursor:pointer;z-index:1000;}
|
60 |
+
.blur_os_x_minimize{width:19px;height:19px;background:transparent url(mac_os_x/minimize.gif)no-repeat 0 0;position:absolute;top:12px;left:45px;cursor:pointer;z-index:1000;}
|
61 |
+
.blur_os_x_maximize{width:19px;height:19px;background:transparent url(mac_os_x/maximize.gif)no-repeat 0 0;position:absolute;top:12px;left:65px;cursor:pointer;z-index:1000;}
|
62 |
+
.blur_os_x_title{float:left;height:14px;font-family:Tahoma, Arial, sans-serif;font-size:12px;text-align:center;margin-top:8px;width:100%;color:#000;}
|
63 |
+
.blur_os_x_content{overflow:auto;color:#222;font-family:Tahoma, Arial, sans-serif;font-size:10px;background:#FFF;}
|
64 |
+
.blur_os_x_s .status_bar{padding-bottom:24px;}
|
65 |
+
* html .blur_os_x_nw{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TL.png", sizingMethod="crop");}
|
66 |
+
* html .blur_os_x_n{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/T.png", sizingMethod="scale");}
|
67 |
+
* html .blur_os_x_ne{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/TR.png", sizingMethod="crop");}
|
68 |
+
* html .blur_os_x_w{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/L.png", sizingMethod="scale");}
|
69 |
+
* html .blur_os_x_e{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/R.png", sizingMethod="scale");}
|
70 |
+
* html .blur_os_x_sw{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BL.png", sizingMethod="crop");}
|
71 |
+
* html .blur_os_x_s{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/B.png", sizingMethod="scale");}
|
72 |
+
* html .blur_os_x_se{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR.png", sizingMethod="crop");}
|
73 |
+
* html .blur_os_x_sizer{background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/mac_os_x/BR.png", sizingMethod="crop");}
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/bottom_left.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/bottom_mid.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/bottom_right.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/bottom_right_resize.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/center_left.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/center_right.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/clear.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/close.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/inspect.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/maximize.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/minimize.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/overlay.png
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/resize.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/sizer.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/top_left.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/top_mid.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/default/top_right.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/B.png
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/BL.png
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/BR.png
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/B_Main.png
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/L.png
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/L_Main.png
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/R.png
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/R_Main.png
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/T.png
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/TL.png
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/TL_Main.png
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/TR.png
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/TR_Main.png
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/T_Main.png
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/close.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/maximize.gif
ADDED
Binary file
|
skin/frontend/base/default/css/Toogas/Featuredpopup/mac_os_x/minimize.gif
ADDED
Binary file
|