Version Notes
Version 1.0.0
Download this release
Release Info
| Developer | Sulopa Sulotion |
| Extension | Sulopa_Countdown |
| Version | 1.0.0 |
| Comparing to | |
| See all releases | |
Version 1.0.0
- app/code/community/Sulopa/Countdown/Block/Adminhtml/System/Config/Date.php +29 -0
- app/code/community/Sulopa/Countdown/Block/Countdown.php +4 -0
- app/code/community/Sulopa/Countdown/Controller/Router/Standard.php +47 -0
- app/code/community/Sulopa/Countdown/Helper/Data.php +5 -0
- app/code/community/Sulopa/Countdown/etc/config.xml +75 -0
- app/code/community/Sulopa/Countdown/etc/system.xml +93 -0
- app/design/adminhtml/default/default/layout/Countdown.xml +18 -0
- app/design/frontend/base/default/template/Countdown/Countdown.phtml +66 -0
- app/etc/modules/Sulopa_Countdown.xml +10 -0
- package.xml +20 -0
- skin/frontend/default/default/Countdown/css/flipclock.css +487 -0
- skin/frontend/default/default/Countdown/images/ajax-loader-tr.gif +0 -0
- skin/frontend/default/default/Countdown/images/binding_dark.png +0 -0
- skin/frontend/default/default/Countdown/js/flipclock/flipclock.min.js +114 -0
app/code/community/Sulopa/Countdown/Block/Adminhtml/System/Config/Date.php
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Sulopa_Countdown_Block_Adminhtml_System_Config_Date extends Mage_Adminhtml_Block_System_Config_Form_Field{
|
| 3 |
+
|
| 4 |
+
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) {
|
| 5 |
+
$res = '';
|
| 6 |
+
$divId = $element->getId();
|
| 7 |
+
$res .= <<<EOD
|
| 8 |
+
<input name="{$element->getName()}" id="{$divId}_date" value="{$element->getValue()}" type="text" style="width:130px !important;" /> <img src="{$this->getSkinUrl('images/grid-cal.gif')}" alt="" id="{$divId}_date_trig" title="{$this->__('Select Date')}" style="" />
|
| 9 |
+
<script type="text/javascript">
|
| 10 |
+
//<![CDATA[
|
| 11 |
+
//this example uses dd.MM.yyyy hh:mm format.
|
| 12 |
+
Calendar.setup({
|
| 13 |
+
inputField: "{$divId}_date",
|
| 14 |
+
ifFormat: "%Y-%m-%d %H:%M:%S",
|
| 15 |
+
showsTime: true,
|
| 16 |
+
firstDay: 1,
|
| 17 |
+
timeFormat: "24",
|
| 18 |
+
button: "{$divId}_date_trig",
|
| 19 |
+
align: "Bl",
|
| 20 |
+
singleClick : true
|
| 21 |
+
});
|
| 22 |
+
|
| 23 |
+
//]]>
|
| 24 |
+
</script>
|
| 25 |
+
EOD;
|
| 26 |
+
return $res;
|
| 27 |
+
}
|
| 28 |
+
}
|
| 29 |
+
?>
|
app/code/community/Sulopa/Countdown/Block/Countdown.php
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Sulopa_Countdown_Block_Countdown extends Mage_Catalog_Block_Product_View_Abstract {
|
| 3 |
+
|
| 4 |
+
}
|
app/code/community/Sulopa/Countdown/Controller/Router/Standard.php
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Sulopa_Countdown_Controller_Router_Standard extends Mage_Core_Controller_Varien_Router_Standard{
|
| 3 |
+
|
| 4 |
+
public function match(Zend_Controller_Request_Http $request){
|
| 5 |
+
$storeenabled = Mage::getStoreConfig('countdown/countdown/enabled', $request->getStoreCodeFromPath());
|
| 6 |
+
$clockenabled = Mage::getStoreConfig('countdown/countdown/settime', $request->getStoreCodeFromPath());
|
| 7 |
+
$now = new DateTime(date('Y-m-d H:i:s'));
|
| 8 |
+
$ref = new DateTime($clockenabled);
|
| 9 |
+
$diff = $now->diff($ref);
|
| 10 |
+
$days = ($diff->days)+(($diff->h+(($diff->i+($diff->s/60))/60))/24);
|
| 11 |
+
$remailday = Mage::getStoreConfig('countdown/countdown/timer',Mage::app()->getStore())-$days;
|
| 12 |
+
if ($storeenabled){
|
| 13 |
+
if($now >= $ref){
|
| 14 |
+
if($remailday > 0){
|
| 15 |
+
|
| 16 |
+
Mage::getSingleton('core/session', array('name' => 'adminhtml'));
|
| 17 |
+
if (!Mage::getSingleton('admin/session')->isLoggedIn())
|
| 18 |
+
{
|
| 19 |
+
Mage::getSingleton('core/session', array('name' => 'front'));
|
| 20 |
+
|
| 21 |
+
$front = $this->getFront();
|
| 22 |
+
$response = $front->getResponse();
|
| 23 |
+
$response->setHeader('HTTP/1.1','503 Service Temporarily Unavailable');
|
| 24 |
+
$response->setHeader('Status','503 Service Temporarily Unavailable');
|
| 25 |
+
$response->setHeader('Retry-After','5000');
|
| 26 |
+
$html = Mage::app()->getLayout()->createBlock('core/template')->setTemplate('Countdown/Countdown.phtml')->toHtml();
|
| 27 |
+
$response->setBody(html_entity_decode( $html, ENT_QUOTES, "utf-8" )); $response->sendHeaders();
|
| 28 |
+
$response->outputBody();
|
| 29 |
+
|
| 30 |
+
exit;
|
| 31 |
+
}
|
| 32 |
+
else
|
| 33 |
+
{
|
| 34 |
+
$showreminder = Mage::getStoreConfig('countdown/countdown/showreminder', $request->getStoreCodeFromPath());
|
| 35 |
+
if ($showreminder)
|
| 36 |
+
{
|
| 37 |
+
$front = $this->getFront();
|
| 38 |
+
$response = $front->getResponse()->appendBody('<div style="height:12px; background:red; color: white; position:relative; width:100%;padding:3px 0; z-index:100000;text-trasform:capitalize;">Offline</div>');
|
| 39 |
+
}
|
| 40 |
+
}
|
| 41 |
+
}
|
| 42 |
+
}
|
| 43 |
+
}
|
| 44 |
+
return parent::match($request);
|
| 45 |
+
|
| 46 |
+
}
|
| 47 |
+
}
|
app/code/community/Sulopa/Countdown/Helper/Data.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Sulopa_Countdown_Helper_Data extends Mage_Core_Helper_Abstract
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
}
|
app/code/community/Sulopa/Countdown/etc/config.xml
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" ?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<Sulopa_Countdown>
|
| 5 |
+
<version>0.1.0</version>
|
| 6 |
+
</Sulopa_Countdown>
|
| 7 |
+
</modules>
|
| 8 |
+
<stores>
|
| 9 |
+
<default>
|
| 10 |
+
<web>
|
| 11 |
+
<routers>
|
| 12 |
+
<standard><area>frontend</area><class>Sulopa_Countdown_Controller_Router_Standard</class></standard>
|
| 13 |
+
</routers>
|
| 14 |
+
</web>
|
| 15 |
+
</default>
|
| 16 |
+
</stores>
|
| 17 |
+
<default>
|
| 18 |
+
<web>
|
| 19 |
+
<routers>
|
| 20 |
+
<standard><area>frontend</area><class>Sulopa_Countdown_Controller_Router_Standard</class></standard>
|
| 21 |
+
</routers>
|
| 22 |
+
</web>
|
| 23 |
+
<countdown>
|
| 24 |
+
<countdown>
|
| 25 |
+
<timer><![CDATA[3]]></timer>
|
| 26 |
+
<settime><![CDATA[2015-07-12 12:00:00]]></settime>
|
| 27 |
+
<setmessage><![CDATA[This is my clock]]></setmessage>
|
| 28 |
+
<setemail><![CDATA[slaes@sulopastore.com]]></setemail>
|
| 29 |
+
<enabled>0</enabled>
|
| 30 |
+
<clockstatus>0</clockstatus>
|
| 31 |
+
</countdown>
|
| 32 |
+
</countdown>
|
| 33 |
+
</default>
|
| 34 |
+
<adminhtml>
|
| 35 |
+
<acl>
|
| 36 |
+
<resources>
|
| 37 |
+
<all>
|
| 38 |
+
<title>Allow Everything</title>
|
| 39 |
+
</all>
|
| 40 |
+
<admin>
|
| 41 |
+
<children>
|
| 42 |
+
<Sulopa_Countdown>
|
| 43 |
+
<title>Sulopa Clock</title>
|
| 44 |
+
<sort_order>10</sort_order>
|
| 45 |
+
</Sulopa_Countdown>
|
| 46 |
+
<system>
|
| 47 |
+
<children>
|
| 48 |
+
<config>
|
| 49 |
+
<children>
|
| 50 |
+
<countdown>
|
| 51 |
+
<title>Clock by sulopa</title>
|
| 52 |
+
<sort_order>50</sort_order>
|
| 53 |
+
</countdown>
|
| 54 |
+
</children>
|
| 55 |
+
</config>
|
| 56 |
+
</children>
|
| 57 |
+
</system>
|
| 58 |
+
</children>
|
| 59 |
+
</admin>
|
| 60 |
+
</resources>
|
| 61 |
+
</acl>
|
| 62 |
+
</adminhtml>
|
| 63 |
+
<global>
|
| 64 |
+
<helpers>
|
| 65 |
+
<countdown>
|
| 66 |
+
<class>Sulopa_Countdown_Helper</class>
|
| 67 |
+
</countdown>
|
| 68 |
+
</helpers>
|
| 69 |
+
<blocks>
|
| 70 |
+
<countdown>
|
| 71 |
+
<class>Sulopa_Countdown_Block</class>
|
| 72 |
+
</countdown>
|
| 73 |
+
</blocks>
|
| 74 |
+
</global>
|
| 75 |
+
</config>
|
app/code/community/Sulopa/Countdown/etc/system.xml
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<tabs>
|
| 4 |
+
<sulopabase>
|
| 5 |
+
<label>Sulopa Extensions</label>
|
| 6 |
+
<sort_order>400</sort_order>
|
| 7 |
+
</sulopabase>
|
| 8 |
+
</tabs>
|
| 9 |
+
<sections>
|
| 10 |
+
<countdown>
|
| 11 |
+
<label>Sulopa Clock</label>
|
| 12 |
+
<tab>sulopabase</tab>
|
| 13 |
+
<sort_order>130</sort_order>
|
| 14 |
+
<show_in_default>1</show_in_default>
|
| 15 |
+
<show_in_website>1</show_in_website>
|
| 16 |
+
<show_in_store>1</show_in_store>
|
| 17 |
+
<groups>
|
| 18 |
+
<countdown>
|
| 19 |
+
<label>Sulopa Clock parameters</label>
|
| 20 |
+
<frontend_type>text</frontend_type>
|
| 21 |
+
<sort_order>10</sort_order>
|
| 22 |
+
<show_in_default>1</show_in_default>
|
| 23 |
+
<show_in_website>1</show_in_website>
|
| 24 |
+
<show_in_store>1</show_in_store>
|
| 25 |
+
<fields>
|
| 26 |
+
<clockstatus>
|
| 27 |
+
<label>Show Clock Status</label>
|
| 28 |
+
<frontend_type>select</frontend_type>
|
| 29 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 30 |
+
<sort_order>1</sort_order>
|
| 31 |
+
<show_in_default>1</show_in_default>
|
| 32 |
+
<show_in_website>0</show_in_website>
|
| 33 |
+
<show_in_store>1</show_in_store>
|
| 34 |
+
</clockstatus>
|
| 35 |
+
<timer>
|
| 36 |
+
<label>Set Day</label>
|
| 37 |
+
<frontend_type>text</frontend_type>
|
| 38 |
+
<sort_order>1</sort_order>
|
| 39 |
+
<show_in_default>1</show_in_default>
|
| 40 |
+
<show_in_website>0</show_in_website>
|
| 41 |
+
<show_in_store>1</show_in_store>
|
| 42 |
+
<comment>e.g 3 day</comment>
|
| 43 |
+
</timer>
|
| 44 |
+
<settime>
|
| 45 |
+
<label>Set timer</label>
|
| 46 |
+
<frontend_type>text</frontend_type>
|
| 47 |
+
<frontend_model>sulopa_countdown_block_adminhtml_system_config_date</frontend_model>
|
| 48 |
+
<sort_order>1</sort_order>
|
| 49 |
+
<show_in_default>1</show_in_default>
|
| 50 |
+
<show_in_website>0</show_in_website>
|
| 51 |
+
<show_in_store>1</show_in_store>
|
| 52 |
+
<comment>e.g 06-05-2013 00:00:00</comment>
|
| 53 |
+
</settime>
|
| 54 |
+
<setmessage>
|
| 55 |
+
<label>Set Message</label>
|
| 56 |
+
<frontend_type>textarea</frontend_type>
|
| 57 |
+
<sort_order>1</sort_order>
|
| 58 |
+
<show_in_default>1</show_in_default>
|
| 59 |
+
<show_in_website>0</show_in_website>
|
| 60 |
+
<show_in_store>1</show_in_store>
|
| 61 |
+
</setmessage>
|
| 62 |
+
<enabled translate="label">
|
| 63 |
+
<label>Store Offline</label>
|
| 64 |
+
<frontend_type>select</frontend_type>
|
| 65 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 66 |
+
<sort_order>1</sort_order>
|
| 67 |
+
<show_in_default>1</show_in_default>
|
| 68 |
+
<show_in_website>0</show_in_website>
|
| 69 |
+
<show_in_store>1</show_in_store>
|
| 70 |
+
</enabled>
|
| 71 |
+
<setemail>
|
| 72 |
+
<label>Set Email</label>
|
| 73 |
+
<frontend_type>text</frontend_type>
|
| 74 |
+
<sort_order>1</sort_order>
|
| 75 |
+
<show_in_default>1</show_in_default>
|
| 76 |
+
<show_in_website>0</show_in_website>
|
| 77 |
+
<show_in_store>1</show_in_store>
|
| 78 |
+
</setemail>
|
| 79 |
+
<showreminder translate="label">
|
| 80 |
+
<label>Show Website Status </label>
|
| 81 |
+
<frontend_type>select</frontend_type>
|
| 82 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 83 |
+
<sort_order>1</sort_order>
|
| 84 |
+
<show_in_default>1</show_in_default>
|
| 85 |
+
<show_in_website>0</show_in_website>
|
| 86 |
+
<show_in_store>1</show_in_store>
|
| 87 |
+
</showreminder>
|
| 88 |
+
</fields>
|
| 89 |
+
</countdown>
|
| 90 |
+
</groups>
|
| 91 |
+
</countdown>
|
| 92 |
+
</sections>
|
| 93 |
+
</config>
|
app/design/adminhtml/default/default/layout/Countdown.xml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<layout version="0.1.0">
|
| 3 |
+
<default>
|
| 4 |
+
<reference name="top.links">
|
| 5 |
+
<block type="checkout/links" name="checkout_cart_link">
|
| 6 |
+
<action method="addCartLink"></action>
|
| 7 |
+
<action method="addCheckoutLink"></action>
|
| 8 |
+
</block>
|
| 9 |
+
</reference>
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
<reference name="right">
|
| 13 |
+
<block type="countdown/countdown" name="countdown" template="Countdown/Countdown.phtml" before="-">
|
| 14 |
+
</block>
|
| 15 |
+
</reference>
|
| 16 |
+
</default>
|
| 17 |
+
|
| 18 |
+
</layout>
|
app/design/frontend/base/default/template/Countdown/Countdown.phtml
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<link rel="stylesheet" type="text/css" href="<?php echo $this->getSkinUrl('Countdown/css/flipclock.css') ?>"/>
|
| 2 |
+
<?php
|
| 3 |
+
$settime = Mage::getStoreConfig('countdown/countdown/settime',Mage::app()->getStore());
|
| 4 |
+
$now = new DateTime(date('Y-m-d H:i:s'));
|
| 5 |
+
$ref = new DateTime($settime);
|
| 6 |
+
$diff = $now->diff($ref);
|
| 7 |
+
$days = ($diff->days)+(($diff->h+(($diff->i+($diff->s/60))/60))/24);
|
| 8 |
+
$remainday = Mage::getStoreConfig('countdown/countdown/timer',Mage::app()->getStore())-$days;
|
| 9 |
+
if($now >= $ref){
|
| 10 |
+
if($remainday>0){
|
| 11 |
+
?>
|
| 12 |
+
<div id="loading-mask">
|
| 13 |
+
<p id="loading_mask_loader" class="loader">
|
| 14 |
+
<img alt="Loading..." src="<?php echo $this->getSkinUrl('Countdown/images/ajax-loader-tr.gif');?>"/><br/>Please wait...
|
| 15 |
+
</p>
|
| 16 |
+
</div>
|
| 17 |
+
<div class="clockalign" style="display:none;">
|
| 18 |
+
<div class="header waypoint" id="download">
|
| 19 |
+
<div class="calign">
|
| 20 |
+
<?php $clockStatus = Mage::getStoreConfig('countdown/countdown/clockstatus', Mage::app()->getStore());?>
|
| 21 |
+
<div class="wk_clockmsg" style="display:none;">
|
| 22 |
+
<a href="mailto:<?php echo Mage::getStoreConfig('countdown/countdown/setemail',Mage::app()->getStore());?>" target="_newtab">
|
| 23 |
+
<?php $wkclockmsg = Mage::getStoreConfig('countdown/countdown/setmessage',Mage::app()->getStore());?>
|
| 24 |
+
<?php $l=strlen($wkclockmsg); if($l>83){ echo substr($wkclockmsg,0,83)."..";}else {echo $wkclockmsg;}?>
|
| 25 |
+
</a>
|
| 26 |
+
</div>
|
| 27 |
+
<?php if($clockStatus){?>
|
| 28 |
+
<div class="daily-counter" id="wk_flipclock" style="display:none;"></div>
|
| 29 |
+
<?php }?>
|
| 30 |
+
</div>
|
| 31 |
+
</div>
|
| 32 |
+
</div>
|
| 33 |
+
<script type="text/javascript">
|
| 34 |
+
if (typeof jQuery == 'undefined') {
|
| 35 |
+
document.write(unescape("%3Cscript src='http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js' type='text/javascript'%3E%3C/script%3E"));
|
| 36 |
+
}
|
| 37 |
+
</script>
|
| 38 |
+
<script src="<?php echo $this->getSkinUrl('Countdown/js/flipclock/flipclock.min.js');?>"></script>
|
| 39 |
+
<script type="text/javascript">
|
| 40 |
+
jQuery.noConflict();
|
| 41 |
+
jQuery(document).ready(function(){
|
| 42 |
+
jQuery('body').css('background-color','#000');
|
| 43 |
+
var windowWidth = jQuery(document).innerWidth();
|
| 44 |
+
var windowHeight = jQuery(document).innerHeight();
|
| 45 |
+
jQuery('#loading-mask').css('width',windowWidth);
|
| 46 |
+
jQuery('#loading-mask').css('height',windowHeight);
|
| 47 |
+
jQuery('.clockalign .header').css('width',windowWidth);
|
| 48 |
+
jQuery('.clockalign .header').css('height',windowHeight);
|
| 49 |
+
var clock = jQuery('.daily-counter').FlipClock(3600 * 24 * <?php echo $remainday;?>, {
|
| 50 |
+
clockFace: 'DailyCounter',
|
| 51 |
+
countdown: true }
|
| 52 |
+
);
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
jQuery('#loading-mask').css('display', function(index) {
|
| 56 |
+
jQuery('.clockalign').css('display','block');
|
| 57 |
+
jQuery('.wk_clockmsg').css('display','block');
|
| 58 |
+
jQuery('.daily-counter').css('display','block');
|
| 59 |
+
return 'none';
|
| 60 |
+
});
|
| 61 |
+
});
|
| 62 |
+
</script>
|
| 63 |
+
<?php die();
|
| 64 |
+
}
|
| 65 |
+
}
|
| 66 |
+
?>
|
app/etc/modules/Sulopa_Countdown.xml
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<Sulopa_Countdown>
|
| 5 |
+
<active>true</active>
|
| 6 |
+
<codePool>community</codePool>
|
| 7 |
+
</Sulopa_Countdown>
|
| 8 |
+
</modules>
|
| 9 |
+
</config>
|
| 10 |
+
|
package.xml
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<package>
|
| 3 |
+
<name>Sulopa_Countdown</name>
|
| 4 |
+
<version>1.0.0</version>
|
| 5 |
+
<stability>stable</stability>
|
| 6 |
+
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL</license>
|
| 7 |
+
<channel>community</channel>
|
| 8 |
+
<extends/>
|
| 9 |
+
<summary>Inserts eye-catching countdown timer to indicate the beginning or ending time of your promotions, sales, discounts, registrations, or whatever else.</summary>
|
| 10 |
+
<description>Often you may want to put your website on maintenance mode due to some technical or server related issues, or you may want to update or change some feature or theme of your website. This is when Easy Site Maintenance extension can come to your rescue.
|
| 11 |
+

|
| 12 |
+
Easy Site Maintenance Extension enables you put your online store in maintenance mode for specific period of time from the frontend which you can configure from the backend.</description>
|
| 13 |
+
<notes>Version 1.0.0</notes>
|
| 14 |
+
<authors><author><name>Sulopa Sulotion</name><user>sulopa</user><email>info@sulopa.com</email></author></authors>
|
| 15 |
+
<date>2015-07-30</date>
|
| 16 |
+
<time>07:37:33</time>
|
| 17 |
+
<contents><target name="magecommunity"><dir name="Sulopa"><dir name="Countdown"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="Date.php" hash="f020430d992d4290ad910e41b2f40efc"/></dir></dir></dir><file name="Countdown.php" hash="bb53361dfe89beb96705a613ea29ddc9"/></dir><dir name="Controller"><dir name="Router"><file name="Standard.php" hash="1cbceccd01d07416aa1df4f6ee6f4d09"/></dir></dir><dir name="Helper"><file name="Data.php" hash="302832d24d49d6dbb7344c459b5a3130"/></dir><dir name="etc"><file name="config.xml" hash="cd9b390fa4e56d8c27def5c99c4312fc"/><file name="system.xml" hash="3d8404e8fcb68efc3f2bfbd976d51221"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="Countdown.xml" hash="686eff2ac9fc8a9bdc6f98ec946a72fe"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="Countdown"><file name="Countdown.phtml" hash="f890ea022a821e42d0fa56f872404dfb"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Sulopa_Countdown.xml" hash="c069fd2431c2a551e7d11fdb2ea43140"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="default"><dir name="default"><dir name="Countdown"><dir name="css"><file name="flipclock.css" hash="350e78a3e0f3247b685598774c721f79"/></dir><dir name="images"><file name="ajax-loader-tr.gif" hash="1ae32bc8232ff2527c627e5b38eb319a"/><file name="binding_dark.png" hash="e547a578794634635212f480b58e091d"/></dir><dir name="js"><dir name="flipclock"><file name="flipclock.min.js" hash="8d23ddd1ba4433b66e9f1b63c0bb0631"/></dir></dir></dir></dir></dir></dir></target></contents>
|
| 18 |
+
<compatible/>
|
| 19 |
+
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
| 20 |
+
</package>
|
skin/frontend/default/default/Countdown/css/flipclock.css
ADDED
|
@@ -0,0 +1,487 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
body {
|
| 2 |
+
overflow:hidden;
|
| 3 |
+
}
|
| 4 |
+
.flip-clock-wrapper * {
|
| 5 |
+
margin: 0;
|
| 6 |
+
padding: 0;
|
| 7 |
+
-webkit-box-sizing: border-box;
|
| 8 |
+
-moz-box-sizing: border-box;
|
| 9 |
+
-o-box-sizing: border-box;
|
| 10 |
+
box-sizing: border-box;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
.flip-clock-wrapper a {
|
| 14 |
+
cursor: pointer;
|
| 15 |
+
text-decoration: none;
|
| 16 |
+
color: #ccc;
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
.flip-clock-wrapper a:hover {
|
| 20 |
+
color: #fff;
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
.flip-clock-wrapper ul {
|
| 24 |
+
list-style: none
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
.flip-clock-wrapper.clearfix:before,
|
| 28 |
+
.flip-clock-wrapper.clearfix:after {
|
| 29 |
+
content: " ";
|
| 30 |
+
display: table;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
.flip-clock-wrapper.clearfix:after {
|
| 34 |
+
clear: both;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
.flip-clock-wrapper.clearfix {
|
| 38 |
+
*zoom: 1;
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
/* Main */
|
| 42 |
+
|
| 43 |
+
.flip-clock-wrapper {
|
| 44 |
+
min-height: 100%;
|
| 45 |
+
font: normal 11px "Helvetica Neue", Helvetica, sans-serif;
|
| 46 |
+
-webkit-user-select: none;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
.flip-clock-meridium {
|
| 50 |
+
background: none;
|
| 51 |
+
box-shadow: 0 0 0 !important;
|
| 52 |
+
font-size: 36px !important;
|
| 53 |
+
color: rgb(49, 51, 51);
|
| 54 |
+
bottom: 10px;
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
|
| 58 |
+
.flip-clock-wrapper {
|
| 59 |
+
text-align: center;
|
| 60 |
+
position: relative;
|
| 61 |
+
width: 100%;
|
| 62 |
+
margin: 5em;
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
/* Skeleton */
|
| 66 |
+
|
| 67 |
+
.flip-clock-wrapper ul {
|
| 68 |
+
border-radius: 6px 6px 6px 6px;
|
| 69 |
+
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.7);
|
| 70 |
+
float: left;
|
| 71 |
+
font-size: 11px;
|
| 72 |
+
font-weight: bold;
|
| 73 |
+
height: 90px;
|
| 74 |
+
line-height: 92px;
|
| 75 |
+
margin: 5px;
|
| 76 |
+
position: relative;
|
| 77 |
+
top: 22px;
|
| 78 |
+
width: 60px;
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
.flip-clock-wrapper ul li {
|
| 82 |
+
z-index: 1;
|
| 83 |
+
position: absolute;
|
| 84 |
+
left: 0;
|
| 85 |
+
top: 0;
|
| 86 |
+
width: 100%;
|
| 87 |
+
height: 100%;
|
| 88 |
+
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
.flip-clock-wrapper ul li:first-child {
|
| 92 |
+
z-index: 2;
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
.flip-clock-wrapper ul li a {
|
| 96 |
+
display: block;
|
| 97 |
+
height: 100%;
|
| 98 |
+
perspective: 200px;
|
| 99 |
+
margin: 0 !important;
|
| 100 |
+
overflow: visible !important;
|
| 101 |
+
}
|
| 102 |
+
|
| 103 |
+
.flip-clock-wrapper ul li a div {
|
| 104 |
+
z-index: 1;
|
| 105 |
+
position: absolute;
|
| 106 |
+
left: 0;
|
| 107 |
+
width: 100%;
|
| 108 |
+
height: 50%;
|
| 109 |
+
overflow: hidden;
|
| 110 |
+
}
|
| 111 |
+
|
| 112 |
+
.flip-clock-wrapper ul li a div .shadow {
|
| 113 |
+
position: absolute;
|
| 114 |
+
width: 100%;
|
| 115 |
+
height: 100%;
|
| 116 |
+
z-index: 2;
|
| 117 |
+
}
|
| 118 |
+
|
| 119 |
+
.flip-clock-wrapper ul li a div.up {
|
| 120 |
+
-moz-transform-origin: 50% 100%;
|
| 121 |
+
-webkit-transform-origin: 50% 100%;
|
| 122 |
+
top: 0;
|
| 123 |
+
}
|
| 124 |
+
|
| 125 |
+
.flip-clock-wrapper ul li a div.up:after {
|
| 126 |
+
content: "";
|
| 127 |
+
position:absolute;
|
| 128 |
+
top:44px;
|
| 129 |
+
left:0;
|
| 130 |
+
z-index: 5;
|
| 131 |
+
width: 100%;
|
| 132 |
+
height: 3px;
|
| 133 |
+
background-color: rgba(0,0,0,.4);
|
| 134 |
+
}
|
| 135 |
+
|
| 136 |
+
.flip-clock-wrapper ul li a div.down {
|
| 137 |
+
-moz-transform-origin: 50% 0%;
|
| 138 |
+
-webkit-transform-origin: 50% 0%;
|
| 139 |
+
bottom: 0;
|
| 140 |
+
}
|
| 141 |
+
|
| 142 |
+
.flip-clock-wrapper ul li a div div.inn {
|
| 143 |
+
position: absolute;
|
| 144 |
+
left: 0;
|
| 145 |
+
z-index: 1;
|
| 146 |
+
width: 100%;
|
| 147 |
+
height: 200%;
|
| 148 |
+
color: #ccc;
|
| 149 |
+
text-shadow: 0 1px 2px #000;
|
| 150 |
+
text-align: center;
|
| 151 |
+
background-color: #333;
|
| 152 |
+
border-radius: 6px;
|
| 153 |
+
font-size: 70px;
|
| 154 |
+
}
|
| 155 |
+
|
| 156 |
+
.flip-clock-wrapper ul li a div.up div.inn {
|
| 157 |
+
top: 0;
|
| 158 |
+
|
| 159 |
+
}
|
| 160 |
+
|
| 161 |
+
.flip-clock-wrapper ul li a div.down div.inn {
|
| 162 |
+
bottom: 0;
|
| 163 |
+
}
|
| 164 |
+
|
| 165 |
+
/* PLAY */
|
| 166 |
+
|
| 167 |
+
.flip-clock-wrapper ul.play li.flip-clock-before {
|
| 168 |
+
z-index: 3;
|
| 169 |
+
}
|
| 170 |
+
|
| 171 |
+
.flip-clock-wrapper ul.play li.flip-clock-active {
|
| 172 |
+
-moz-animation: asd .5s .5s linear both;
|
| 173 |
+
-webkit-animation: asd .5s .5s linear both;
|
| 174 |
+
z-index: 2;
|
| 175 |
+
}
|
| 176 |
+
|
| 177 |
+
.flip-clock-divider {
|
| 178 |
+
float: left;
|
| 179 |
+
display: inline-block;
|
| 180 |
+
position: relative;
|
| 181 |
+
width: 20px;
|
| 182 |
+
height: 100px;
|
| 183 |
+
top: 23px;
|
| 184 |
+
}
|
| 185 |
+
|
| 186 |
+
.flip-clock-divider:first-child { width: 0; }
|
| 187 |
+
|
| 188 |
+
.flip-clock-dot {
|
| 189 |
+
background: none repeat scroll 0 0 #323434;
|
| 190 |
+
border-radius: 1000px 1000px 1000px 1000px;
|
| 191 |
+
box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
|
| 192 |
+
display: block;
|
| 193 |
+
height: 10px;
|
| 194 |
+
position: absolute;
|
| 195 |
+
width: 10px;
|
| 196 |
+
}
|
| 197 |
+
|
| 198 |
+
.flip-clock-divider .flip-clock-label {
|
| 199 |
+
color: black;
|
| 200 |
+
position: absolute;
|
| 201 |
+
right: -86px;
|
| 202 |
+
text-shadow: none;
|
| 203 |
+
top: -1.5em;
|
| 204 |
+
}
|
| 205 |
+
|
| 206 |
+
.flip-clock-divider.minutes .flip-clock-label { right: -88px; }
|
| 207 |
+
.flip-clock-divider.seconds .flip-clock-label { right: -91px; }
|
| 208 |
+
|
| 209 |
+
.flip-clock-dot.top {
|
| 210 |
+
top: 30px;
|
| 211 |
+
left: 5px;
|
| 212 |
+
}
|
| 213 |
+
|
| 214 |
+
.flip-clock-dot.bottom {
|
| 215 |
+
bottom: 30px;
|
| 216 |
+
left: 5px;
|
| 217 |
+
}
|
| 218 |
+
|
| 219 |
+
@-webkit-keyframes asd {
|
| 220 |
+
0% {
|
| 221 |
+
z-index: 2;
|
| 222 |
+
}
|
| 223 |
+
5% {
|
| 224 |
+
z-index: 4;
|
| 225 |
+
}
|
| 226 |
+
100% {
|
| 227 |
+
z-index: 4;
|
| 228 |
+
}
|
| 229 |
+
}
|
| 230 |
+
@-moz-keyframes asd {
|
| 231 |
+
0% {
|
| 232 |
+
z-index: 2;
|
| 233 |
+
}
|
| 234 |
+
5% {
|
| 235 |
+
z-index: 4;
|
| 236 |
+
}
|
| 237 |
+
100% {
|
| 238 |
+
z-index: 4;
|
| 239 |
+
}
|
| 240 |
+
}
|
| 241 |
+
|
| 242 |
+
.flip-clock-wrapper ul.play li.flip-clock-active .down {
|
| 243 |
+
z-index: 2;
|
| 244 |
+
-webkit-animation: turn .5s .5s linear both;
|
| 245 |
+
-moz-animation: turn .5s .5s linear both;
|
| 246 |
+
}
|
| 247 |
+
|
| 248 |
+
@-webkit-keyframes turn {
|
| 249 |
+
0% {
|
| 250 |
+
-webkit-transform: rotateX(90deg);
|
| 251 |
+
-moz-transform: rotateX(90deg);
|
| 252 |
+
}
|
| 253 |
+
100% {
|
| 254 |
+
-webkit-transform: rotateX(0deg);
|
| 255 |
+
-moz-transform: rotateX(0deg);
|
| 256 |
+
}
|
| 257 |
+
}
|
| 258 |
+
@-moz-keyframes turn {
|
| 259 |
+
0% {
|
| 260 |
+
-webkit-transform: rotateX(90deg);
|
| 261 |
+
-moz-transform: rotateX(90deg);
|
| 262 |
+
}
|
| 263 |
+
100% {
|
| 264 |
+
-webkit-transform: rotateX(0deg);
|
| 265 |
+
-moz-transform: rotateX(0deg);
|
| 266 |
+
}
|
| 267 |
+
}
|
| 268 |
+
|
| 269 |
+
.flip-clock-wrapper ul.play li.flip-clock-before .up {
|
| 270 |
+
z-index: 2;
|
| 271 |
+
-moz-animation: turn2 .5s linear both;
|
| 272 |
+
-webkit-animation: turn2 .5s linear both;
|
| 273 |
+
}
|
| 274 |
+
|
| 275 |
+
@-webkit-keyframes turn2 {
|
| 276 |
+
0% {
|
| 277 |
+
-webkit-transform: rotateX(0deg);
|
| 278 |
+
-moz-transform: rotateX(0deg);
|
| 279 |
+
}
|
| 280 |
+
100% {
|
| 281 |
+
-webkit-transform: rotateX(-90deg);
|
| 282 |
+
-moz-transform: rotateX(-90deg);
|
| 283 |
+
}
|
| 284 |
+
}
|
| 285 |
+
@-moz-keyframes turn2 {
|
| 286 |
+
0% {
|
| 287 |
+
-webkit-transform: rotateX(0deg);
|
| 288 |
+
-moz-transform: rotateX(0deg);
|
| 289 |
+
}
|
| 290 |
+
100% {
|
| 291 |
+
-webkit-transform: rotateX(-90deg);
|
| 292 |
+
-moz-transform: rotateX(-90deg);
|
| 293 |
+
}
|
| 294 |
+
}
|
| 295 |
+
|
| 296 |
+
.flip-clock-wrapper ul li.flip-clock-active { z-index:2; }
|
| 297 |
+
|
| 298 |
+
/* SHADOW */
|
| 299 |
+
|
| 300 |
+
.flip-clock-wrapper ul.play li.flip-clock-before .up .shadow {
|
| 301 |
+
background: -moz-linear-gradient(top, rgba(0, 0, 0, .1) 0%, rgba(0, 0, 0, 1) 100%);
|
| 302 |
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(0, 0, 0, .1)), color-stop(100%, rgba(0, 0, 0, 1)));
|
| 303 |
+
background: linear-gradient(top, rgba(0, 0, 0, .1) 0%, rgba(0, 0, 0, 1) 100%);
|
| 304 |
+
background: -o-linear-gradient(top, rgba(0, 0, 0, .1) 0%, rgba(0, 0, 0, 1) 100%);
|
| 305 |
+
background: -ms-linear-gradient(top, rgba(0, 0, 0, .1) 0%, rgba(0, 0, 0, 1) 100%);
|
| 306 |
+
background: linear-gradient(to bottom, rgba(0, 0, 0, .1) 0%, rgba(0, 0, 0, 1) 100%);
|
| 307 |
+
-moz-animation: show .5s linear both;
|
| 308 |
+
-webkit-animation: show .5s linear both;
|
| 309 |
+
}
|
| 310 |
+
|
| 311 |
+
.flip-clock-wrapper ul.play li.flip-clock-active .up .shadow {
|
| 312 |
+
background: -moz-linear-gradient(top, rgba(0, 0, 0, .1) 0%, rgba(0, 0, 0, 1) 100%);
|
| 313 |
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(0, 0, 0, .1)), color-stop(100%, rgba(0, 0, 0, 1)));
|
| 314 |
+
background: linear-gradient(top, rgba(0, 0, 0, .1) 0%, rgba(0, 0, 0, 1) 100%);
|
| 315 |
+
background: -o-linear-gradient(top, rgba(0, 0, 0, .1) 0%, rgba(0, 0, 0, 1) 100%);
|
| 316 |
+
background: -ms-linear-gradient(top, rgba(0, 0, 0, .1) 0%, rgba(0, 0, 0, 1) 100%);
|
| 317 |
+
background: linear-gradient(to bottom, rgba(0, 0, 0, .1) 0%, rgba(0, 0, 0, 1) 100%);
|
| 318 |
+
-moz-animation: hide .5s .3s linear both;
|
| 319 |
+
-webkit-animation: hide .5s .3s linear both;
|
| 320 |
+
}
|
| 321 |
+
|
| 322 |
+
/*DOWN*/
|
| 323 |
+
|
| 324 |
+
.flip-clock-wrapper ul.play li.flip-clock-before .down .shadow {
|
| 325 |
+
background: -moz-linear-gradient(top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, .1) 100%);
|
| 326 |
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(0, 0, 0, 1)), color-stop(100%, rgba(0, 0, 0, .1)));
|
| 327 |
+
background: linear-gradient(top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, .1) 100%);
|
| 328 |
+
background: -o-linear-gradient(top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, .1) 100%);
|
| 329 |
+
background: -ms-linear-gradient(top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, .1) 100%);
|
| 330 |
+
background: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, .1) 100%);
|
| 331 |
+
-moz-animation: show .5s linear both;
|
| 332 |
+
-webkit-animation: show .5s linear both;
|
| 333 |
+
}
|
| 334 |
+
|
| 335 |
+
.flip-clock-wrapper ul.play li.flip-clock-active .down .shadow {
|
| 336 |
+
background: -moz-linear-gradient(top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, .1) 100%);
|
| 337 |
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(0, 0, 0, 1)), color-stop(100%, rgba(0, 0, 0, .1)));
|
| 338 |
+
background: linear-gradient(top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, .1) 100%);
|
| 339 |
+
background: -o-linear-gradient(top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, .1) 100%);
|
| 340 |
+
background: -ms-linear-gradient(top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, .1) 100%);
|
| 341 |
+
background: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, .1) 100%);
|
| 342 |
+
-moz-animation: hide .5s .3s linear both;
|
| 343 |
+
-webkit-animation: hide .5s .3s linear both;
|
| 344 |
+
}
|
| 345 |
+
|
| 346 |
+
@-webkit-keyframes show {
|
| 347 |
+
0% {
|
| 348 |
+
opacity: 0;
|
| 349 |
+
}
|
| 350 |
+
100% {
|
| 351 |
+
opacity: 1;
|
| 352 |
+
}
|
| 353 |
+
}
|
| 354 |
+
|
| 355 |
+
@-webkit-keyframes hide {
|
| 356 |
+
0% {
|
| 357 |
+
opacity: 1;
|
| 358 |
+
}
|
| 359 |
+
100% {
|
| 360 |
+
opacity: 0;
|
| 361 |
+
}
|
| 362 |
+
}
|
| 363 |
+
@-moz-keyframes show {
|
| 364 |
+
0% {
|
| 365 |
+
opacity: 0;
|
| 366 |
+
}
|
| 367 |
+
100% {
|
| 368 |
+
opacity: 1;
|
| 369 |
+
}
|
| 370 |
+
}
|
| 371 |
+
|
| 372 |
+
@-moz-keyframes hide {
|
| 373 |
+
0% {
|
| 374 |
+
opacity: 1;
|
| 375 |
+
}
|
| 376 |
+
100% {
|
| 377 |
+
opacity: 0;
|
| 378 |
+
}
|
| 379 |
+
}
|
| 380 |
+
|
| 381 |
+
.header {
|
| 382 |
+
background: url("../images/binding_dark.png") repeat scroll 0 0 transparent;
|
| 383 |
+
left: 0;
|
| 384 |
+
padding: 45px 0 75px;
|
| 385 |
+
position: absolute;
|
| 386 |
+
top: 0;
|
| 387 |
+
overflow:hidden;
|
| 388 |
+
}
|
| 389 |
+
.clockalign .header h1 {
|
| 390 |
+
color: #CB0E70;
|
| 391 |
+
font-family: "Oleo Script",cursive,sans-serif;
|
| 392 |
+
font-size: 99px;
|
| 393 |
+
margin: 1em 0;
|
| 394 |
+
text-align: center;
|
| 395 |
+
text-shadow: 0 -1px 0 #CF84AC, 0 1px 0 #8E094E, 0 0 40px #000000;
|
| 396 |
+
}
|
| 397 |
+
.clockalign .header .calign{
|
| 398 |
+
height: 116px;
|
| 399 |
+
margin: 0 auto;
|
| 400 |
+
width: 741px;
|
| 401 |
+
}
|
| 402 |
+
.clockalign .header .flip-clock-divider .flip-clock-label {
|
| 403 |
+
color: #CCCCCC;
|
| 404 |
+
font-size: 24px;
|
| 405 |
+
}
|
| 406 |
+
.clockalign .header .flip-clock-divider.seconds .flip-clock-label {
|
| 407 |
+
right: -114px;
|
| 408 |
+
}
|
| 409 |
+
.clockalign .header .flip-clock-divider.minutes .flip-clock-label {
|
| 410 |
+
right: -110px;
|
| 411 |
+
}
|
| 412 |
+
.clockalign .header .flip-clock-divider.hours .flip-clock-label {
|
| 413 |
+
right: -102px;
|
| 414 |
+
}
|
| 415 |
+
.clockalign .header .flip-clock-dot {
|
| 416 |
+
background: none repeat scroll 0 0 #A0A0A0;
|
| 417 |
+
}
|
| 418 |
+
.clockalign .header.no-clock {
|
| 419 |
+
padding: 25px 0 75px;
|
| 420 |
+
}
|
| 421 |
+
.clockalign .header.no-clock .clock {
|
| 422 |
+
display: none;
|
| 423 |
+
}
|
| 424 |
+
.clockalign .header.no-clock .buttons {
|
| 425 |
+
float: right;
|
| 426 |
+
margin: 7px 2em;
|
| 427 |
+
}
|
| 428 |
+
.clockalign .header.no-clock .buttons a {
|
| 429 |
+
display: none;
|
| 430 |
+
font-size: 20px;
|
| 431 |
+
}
|
| 432 |
+
.clockalign .header.no-clock .buttons a:first-child {
|
| 433 |
+
display: inline-block;
|
| 434 |
+
}
|
| 435 |
+
.clockalign .header.no-clock h1 {
|
| 436 |
+
font-size: 50px;
|
| 437 |
+
left: 0.5em;
|
| 438 |
+
margin: 0;
|
| 439 |
+
position: absolute;
|
| 440 |
+
top: 15px;
|
| 441 |
+
}
|
| 442 |
+
.clockalign .header.no-clock .version {
|
| 443 |
+
font-size: 16px;
|
| 444 |
+
}
|
| 445 |
+
#loading-mask {
|
| 446 |
+
color: #D85909;
|
| 447 |
+
font-size: 1.1em;
|
| 448 |
+
font-weight: bold;
|
| 449 |
+
opacity: 0.8;
|
| 450 |
+
position: absolute;
|
| 451 |
+
text-align: center;
|
| 452 |
+
z-index: 500;
|
| 453 |
+
left: -2px;
|
| 454 |
+
top: 0px;
|
| 455 |
+
width: 100%;
|
| 456 |
+
height: 100%;
|
| 457 |
+
background:none repeat scroll 0 0 #FFF4E9;
|
| 458 |
+
}
|
| 459 |
+
#loading-mask .loader {
|
| 460 |
+
background: none repeat scroll 0 0 #FFF4E9;
|
| 461 |
+
border: 2px solid #F1AF73;
|
| 462 |
+
color: #D85909;
|
| 463 |
+
font-weight: bold;
|
| 464 |
+
left: 50%;
|
| 465 |
+
margin-left: -105px;
|
| 466 |
+
padding: 15px 30px;
|
| 467 |
+
position: fixed;
|
| 468 |
+
text-align: center;
|
| 469 |
+
top: 45%;
|
| 470 |
+
width: 150px;
|
| 471 |
+
z-index: 1000;
|
| 472 |
+
}
|
| 473 |
+
#loading-mask .loader {
|
| 474 |
+
color: #D85909;
|
| 475 |
+
font-weight: bold;
|
| 476 |
+
text-align: center;
|
| 477 |
+
}
|
| 478 |
+
.wk_clockmsg{
|
| 479 |
+
color:#ccc;
|
| 480 |
+
font-size:35px;
|
| 481 |
+
text-align:center;
|
| 482 |
+
padding-top:90px;
|
| 483 |
+
}
|
| 484 |
+
.wk_clockmsg a{
|
| 485 |
+
text-decoration:none;
|
| 486 |
+
color:#ccc;
|
| 487 |
+
}
|
skin/frontend/default/default/Countdown/images/ajax-loader-tr.gif
ADDED
|
Binary file
|
skin/frontend/default/default/Countdown/images/binding_dark.png
ADDED
|
Binary file
|
skin/frontend/default/default/Countdown/js/flipclock/flipclock.min.js
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*
|
| 2 |
+
Base.js, version 1.1a
|
| 3 |
+
Copyright 2006-2010, Dean Edwards
|
| 4 |
+
License: http://www.opensource.org/licenses/mit-license.php
|
| 5 |
+
*/
|
| 6 |
+
var Base=function(){};
|
| 7 |
+
Base.extend=function(e,t){
|
| 8 |
+
"use strict";var n=Base.prototype.extend;Base._prototyping=!0;var r=new this;n.call(r,e);r.base=function(){};delete Base._prototyping;var i=r.constructor,s=r.constructor=function(){if(!Base._prototyping)if(this._constructing||this.constructor==s){this._constructing=!0;i.apply(this,arguments);delete this._constructing}else if(arguments[0]!==null)return(arguments[0].extend||n).call(arguments[0],r)};s.ancestor=this;s.extend=this.extend;s.forEach=this.forEach;s.implement=this.implement;s.prototype=r;s.toString=this.toString;s.valueOf=function(e){return e=="object"?s:i.valueOf()};n.call(s,t);typeof s.init=="function"&&s.init();return s
|
| 9 |
+
};
|
| 10 |
+
Base.prototype={extend:function(e,t){
|
| 11 |
+
if(arguments.length>1){var n=this[e];if(n&&typeof t=="function"&&(!n.valueOf||n.valueOf()!=t.valueOf())&&/\bbase\b/.test(t)){var r=t.valueOf();t=function(){var e=this.base||Base.prototype.base;this.base=n;var t=r.apply(this,arguments);this.base=e;return t};t.valueOf=function(e){return e=="object"?t:r};t.toString=Base.toString}this[e]=t}else if(e){var i=Base.prototype.extend;!Base._prototyping&&typeof this!="function"&&(i=this.extend||i);var s={toSource:null},o=["constructor","toString","valueOf"],u=Base._prototyping?0:1;while(a=o[u++])e[a]!=s[a]&&i.call(this,a,e[a]);for(var a in e)s[a]||i.call(this,a,e[a])}return this
|
| 12 |
+
}};
|
| 13 |
+
Base=Base.extend({constructor:function(){this.extend(arguments[0])}},
|
| 14 |
+
{
|
| 15 |
+
ancestor:Object,version:"1.1",forEach:function(e,t,n){for(var r in e)this.prototype[r]===undefined&&t.call(n,e[r],r,e)},implement:function(){for(var e=0;e<arguments.length;e++)typeof arguments[e]=="function"?arguments[e](this.prototype):this.prototype.extend(arguments[e]);return this},toString:function(){return String(this.valueOf())}
|
| 16 |
+
});
|
| 17 |
+
var FlipClock;(function(e){
|
| 18 |
+
"use strict";
|
| 19 |
+
FlipClock=function(e,t,n){return new FlipClock.Factory(e,t,n)};
|
| 20 |
+
FlipClock.Base=Base.extend(
|
| 21 |
+
{buildDate:"2013-04-16",version:"0.1.2",constructor:function(t,n){typeof t!="object"&&(t={});typeof n!="object"&&(n={});this.setOptions(e.extend(!0,{},t,n))},callback:function(e){if(typeof e=="function"){var t=[];for(var n=1;n<=arguments.length;n++)arguments[n]&&t.push(arguments[n]);e.apply(this,t)}},log:function(e){window.console&&console.log&&console.log(e)},getOption:function(e){return this[e]?this[e]:!1},getOptions:function(){return this},setOption:function(e,t){this[e]=t},setOptions:function(e){for(var t in e)typeof e[t]!="undefined"&&this.setOption(t,e[t])}
|
| 22 |
+
});
|
| 23 |
+
FlipClock.Factory=FlipClock.Base.extend({
|
| 24 |
+
autoStart:!0,callbacks:{
|
| 25 |
+
destroy:!1,create:!1,init:!1,interval:!1,start:!1,stop:!1
|
| 26 |
+
},
|
| 27 |
+
classes:{
|
| 28 |
+
active:"flip-clock-active",before:"flip-clock-before",divider:"flip-clock-divider",dot:"flip-clock-dot",label:"flip-clock-label",flip:"flip",play:"play",wrapper:"flip-clock-wrapper"
|
| 29 |
+
},clockFace:"HourlyCounter",defaultClockFace:"HourlyCounter",face:!0,running:!1,time:!1,timer:!1,lists:[],$wrapper:!1,constructor:function(t,n,r){
|
| 30 |
+
this.base(r);
|
| 31 |
+
this.$wrapper=e(t).addClass(this.classes.wrapper);
|
| 32 |
+
this.time=new FlipClock.Time(this,n?Math.round(n):0);
|
| 33 |
+
this.timer=new FlipClock.Timer(this,r);
|
| 34 |
+
this.face=this.loadClockFace(this.clockFace,r);
|
| 35 |
+
this.autoStart&&this.start()
|
| 36 |
+
},loadClockFace:function(e,t){
|
| 37 |
+
var n;e=e.ucfirst()+"Face";
|
| 38 |
+
FlipClock[e]?n=new FlipClock[e](this,t):n=new FlipClock[this.defaultClockFace+"Face"](this,t);
|
| 39 |
+
n.build();
|
| 40 |
+
return n
|
| 41 |
+
},start:function(e){
|
| 42 |
+
var t=this;
|
| 43 |
+
if(!t.running&&(!t.countdown||t.countdown&&t.time.time>0)){
|
| 44 |
+
t.face.start(t.time);
|
| 45 |
+
//alert(t.time);
|
| 46 |
+
t.timer.start(function(){
|
| 47 |
+
t.flip();
|
| 48 |
+
typeof e=="function"&&e()
|
| 49 |
+
})
|
| 50 |
+
}else t.log("Trying to start timer when countdown already at 0")
|
| 51 |
+
},stop:function(e){
|
| 52 |
+
//this.face.stop();
|
| 53 |
+
//this.timer.stop(e);
|
| 54 |
+
//for(var t in this.lists)this.lists[t].stop()
|
| 55 |
+
},reset:function(e){
|
| 56 |
+
//this.timer.reset(e);this.face.reset()
|
| 57 |
+
},setTime:function(e){
|
| 58 |
+
this.time.time=e;this.face.setTime(e)
|
| 59 |
+
},getTime:function(e){
|
| 60 |
+
return this.time
|
| 61 |
+
},setCountdown:function(e){
|
| 62 |
+
var t=this.running;
|
| 63 |
+
this.countdown=e?!0:!1;
|
| 64 |
+
if(t){
|
| 65 |
+
//this.stop();
|
| 66 |
+
this.start()
|
| 67 |
+
}},flip:function(){
|
| 68 |
+
this.face.flip()
|
| 69 |
+
}
|
| 70 |
+
});
|
| 71 |
+
FlipClock.Face=FlipClock.Base.extend({
|
| 72 |
+
factory:!1,lists:[],constructor:function(e,t){
|
| 73 |
+
this.base(t);this.factory=e
|
| 74 |
+
},build:function(){},createDivider:function(t,n)
|
| 75 |
+
{
|
| 76 |
+
var r=['<span class="'+this.factory.classes.dot+' top"></span>','<span class="'+this.factory.classes.dot+' bottom"></span>'].join("");n&&(r="");var i=['<span class="'+this.factory.classes.divider+" "+(t?t:"").toLowerCase()+'">','<span class="'+this.factory.classes.label+'">'+(t?t:"")+"</span>",r,"</span>"];return e(i.join(""))
|
| 77 |
+
},createList:function(e,t){
|
| 78 |
+
if(typeof e=="object"){t=e;e=0}var n=new FlipClock.List(this.factory,e,t);return n
|
| 79 |
+
},reset:function(){},setTime:function(e){
|
| 80 |
+
this.flip(e)
|
| 81 |
+
},addDigit:function(e){
|
| 82 |
+
var t=this.createList(e,{
|
| 83 |
+
classes:{
|
| 84 |
+
active:this.factory.classes.active,before:this.factory.classes.before,flip:this.factory.classes.flip
|
| 85 |
+
}
|
| 86 |
+
});
|
| 87 |
+
t.$obj.insertBefore(this.factory.lists[0].$obj);
|
| 88 |
+
this.factory.lists.unshift(t)},start:function(){},
|
| 89 |
+
stop:function(){},
|
| 90 |
+
flip:function(t,n){
|
| 91 |
+
var r=this;
|
| 92 |
+
if(r.factory.time.time > 0){
|
| 93 |
+
if(!n)if(!r.factory.countdown)r.factory.time.time++;
|
| 94 |
+
else{
|
| 95 |
+
//alert(r.factory.time.time);
|
| 96 |
+
r.factory.time.time<=0&&r.factory.stop();
|
| 97 |
+
r.factory.time.time--
|
| 98 |
+
}
|
| 99 |
+
}
|
| 100 |
+
else{
|
| 101 |
+
jQuery('html').load(window.location.href);
|
| 102 |
+
}
|
| 103 |
+
var i=r.factory.lists.length-t.length;i<0&&(i=0);var s=0,o=!1;e.each(t,function(e,t){e+=i;var s=r.factory.lists[e];if(s){var u=s.digit;s.select(t);t!=u&&!n&&s.play()}else{r.addDigit(t);o=!0}});for(var u=0;u<t.length;u++)u>=i&&r.factory.lists[u].digit!=t[u]&&r.factory.lists[u].select(t[u])}});FlipClock.List=FlipClock.Base.extend({digit:0,classes:{active:"flip-clock-active",before:"flip-clock-before",flip:"flip"},factory:!1,$obj:!1,items:[],constructor:function(e,t,n){this.factory=e;this.digit=t;this.$obj=this.createList();t>0&&this.select(t);this.factory.$wrapper.append(this.$obj)},select:function(e){typeof e=="undefined"?e=this.digit:this.digit=e;var t=this.$obj.find('[data-digit="'+e+'"]'),n=this.$obj.find("."+this.classes.active).removeClass(this.classes.active),r=this.$obj.find("."+this.classes.before).removeClass(this.classes.before);this.factory.countdown?t.is(":last-child")?this.$obj.find(":first-child").addClass(this.classes.before):t.next().addClass(this.classes.before):t.is(":first-child")?this.$obj.find(":last-child").addClass(this.classes.before):t.prev().addClass(this.classes.before);t.addClass(this.classes.active)},
|
| 104 |
+
play:function(){
|
| 105 |
+
this.$obj.addClass(this.factory.classes.play)},
|
| 106 |
+
stop:function(){
|
| 107 |
+
var e=this;setTimeout(function(){e.$obj.removeClass(e.factory.classes.play)},this.factory.timer.interval)},createList:function(){var t=e('<ul class="'+this.classes.flip+'" />');for(var n=0;n<10;n++){var r=e(['<li data-digit="'+n+'">','<a href="#">','<div class="up">','<div class="shadow"></div>','<div class="inn">'+n+"</div>","</div>",'<div class="down">','<div class="shadow"></div>','<div class="inn">'+n+"</div>","</div>","</a>","</li>"].join(""));this.items.push(r);t.append(r)}return t}});FlipClock.Time=FlipClock.Base.extend({minimumDigits:0,time:0,factory:!1,constructor:function(e,t,n){this.base(n);this.factory=e;t&&(this.time=t)},convertDigitsToArray:function(e){var t=[];e=e.toString();for(var n=0;n<e.length;n++)e[n].match(/^\d*$/g)&&t.push(e[n]);return t},digit:function(e){var t=this.toString(),n=t.length;return t[n-e]?t[n-e]:!1},digitize:function(t){var n=[];e.each(t,function(e,t){t=t.toString();t.length==1&&(t="0"+t);for(var r=0;r<t.length;r++)n.push(t[r])});n.length>this.minimumDigits&&(this.minimumDigits=n.length);this.minimumDigits>n.length&&n.unshift("0");return n},getDayCounter:function(){var e=this.digitize([this.getDays(),this.getHours(!0),this.getMinutes(!0),this.getSeconds(!0)]);return e},getDays:function(e){var t=this.time/60/60/24;e&&(t%=7);return Math.floor(t)},getHourCounter:function(){var e=this.digitize([this.getHours(),this.getMinutes(!0),this.getSeconds(!0)]);return e},getHourly:function(){return this.getHourCounter()},getHours:function(e){var t=this.time/60/60;e&&(t%=24);return Math.floor(t)},getMilitaryTime:function(){var e=new Date,t=this.digitize([e.getHours(),e.getMinutes(),e.getSeconds()]);return t},getMinutes:function(e){var t=this.time/60;e&&(t%=60);return Math.floor(t)},getMinuteCounter:function(){var e=this.digitize([this.getMinutes(!0),this.getSeconds(!0)]);return e},getSeconds:function(e){var t=this.time;e&&(t==60?t=0:t%=60);return Math.ceil(t)},getTime:function(){var e=new Date,t=e.getHours(),n=t>12?"PM":"AM",r=this.digitize([t>12?t-12:t===0?12:t,e.getMinutes(),e.getSeconds()]);return r},getWeeks:function(){var e=this.time/60/60/24/7;mod&&(e%=52);return Math.floor(e)},removeLeadingZeros:function(t,n){var r=0,i=[];e.each(n,function(e,s){e<t?r+=parseInt(n[e],10):i.push(n[e])});return r===0?i:n},toString:function(){return this.time.toString()}});FlipClock.Timer=FlipClock.Base.extend({callbacks:{destroy:!1,create:!1,init:!1,interval:!1,start:!1,stop:!1},count:0,factory:!1,interval:1e3,constructor:function(e,t){this.base(t);this.factory=e;this.callback(this.callbacks.init);this.callback(this.callbacks.create)},getElapsed:function(){return this.count*this.interval},getElapsedTime:function(){return new Date(this.time+this.getElapsed())},
|
| 108 |
+
reset:function(e){
|
| 109 |
+
//clearInterval(this.timer);this.count=0;this._setInterval(e);this.callback(this.callbacks.reset)
|
| 110 |
+
},start:function(e){
|
| 111 |
+
this.factory.running=!0;this._createTimer(e);this.callback(this.callbacks.start)
|
| 112 |
+
},stop:function(e){
|
| 113 |
+
this.factory.running=!1;this._clearInterval(e);this.callback(this.callbacks.stop);this.callback(e)
|
| 114 |
+
},_clearInterval:function(){clearInterval(this.timer)},_createTimer:function(e){this._setInterval(e)},_destroyTimer:function(e){this._clearInterval();this.timer=!1;this.callback(e);this.callback(this.callbacks.destroy)},_interval:function(e){this.callback(this.callbacks.interval);this.callback(e);this.count++},_setInterval:function(e){var t=this;t.timer=setInterval(function(){t._interval(e)},this.interval)}});String.prototype.ucfirst=function(){return this.substr(0,1).toUpperCase()+this.substr(1)};e.fn.FlipClock=function(t,n){if(typeof t=="object"){n=t;t=0}return new FlipClock(e(this),t,n)};e.fn.flipClock=function(t,n){return e.fn.FlipClock(t,n)}})(jQuery);(function(e){FlipClock.HourlyCounterFace=FlipClock.Face.extend({constructor:function(e,t){this.base(e,t)},build:function(t,n){var r=this,i=this.factory.$wrapper.find("ul"),s=[];n=n?n:this.factory.time.getHourCounter();n.length>i.length&&e.each(n,function(e,t){s.push(r.createList(t))});this.factory.lists=s;e(this.createDivider("Seconds")).insertBefore(this.factory.lists[this.factory.lists.length-2].$obj);e(this.createDivider("Minutes")).insertBefore(this.factory.lists[this.factory.lists.length-4].$obj);t||e(this.createDivider("Hours",!0)).insertBefore(this.factory.lists[0].$obj);this._clearExcessDigits();this.autoStart&&this.start()},flip:function(e,t){t||(t=this.factory.time.getHourCounter());this.base(t,e)},_clearExcessDigits:function(){var e=this.factory.lists[this.factory.lists.length-2],t=this.factory.lists[this.factory.lists.length-4];for(var n=6;n<10;n++){e.$obj.find("li:last-child").remove();t.$obj.find("li:last-child").remove()}}})})(jQuery);(function(e){FlipClock.MinuteCounterFace=FlipClock.HourlyCounterFace.extend({constructor:function(e,t){this.base(e,t)},build:function(){this.base(!0,this.factory.time.getMinuteCounter())},flip:function(e){this.base(e,this.factory.time.getMinuteCounter())}})})(jQuery);(function(e){FlipClock.TwentyFourHourClockFace=FlipClock.Face.extend({dividers:[],build:function(t){var n=this,r=this.factory.$wrapper.find("ul");t=t?t:this.factory.time.time||this.factory.time.getMilitaryTime();t.length>r.length&&e.each(t,function(e,t){n.factory.lists.push(n.createList(t))});this.dividers.push(this.createDivider());this.dividers.push(this.createDivider());e(this.dividers[0]).insertBefore(this.factory.lists[this.factory.lists.length-2].$obj);e(this.dividers[1]).insertBefore(this.factory.lists[this.factory.lists.length-4].$obj);this._clearExcessDigits();this.autoStart&&this.start()},flip:function(e){e=e?e:this.factory.time.getMilitaryTime();this.base(e)},_clearExcessDigits:function(){var e=this.factory.lists[this.factory.lists.length-2],t=this.factory.lists[this.factory.lists.length-4];for(var n=6;n<10;n++){e.$obj.find("li:last-child").remove();t.$obj.find("li:last-child").remove()}}})})(jQuery);(function(e){FlipClock.TwelveHourClockFace=FlipClock.TwentyFourHourClockFace.extend({meridium:!1,meridiumText:"AM",build:function(t){var n=this;t=t?t:this.factory.time.time?this.factory.time.time:this.factory.time.getTime();this.base(t);this.meridiumText=this._isPM()?"PM":"AM";this.meridium=e(['<ul class="flip-clock-meridium">',"<li>",'<a href="#">'+this.meridiumText+"</a>","</li>","</ul>"].join(""));this.meridium.insertAfter(this.factory.lists[this.factory.lists.length-1].$obj)},flip:function(){if(this.meridiumText!=this._getMeridium()){this.meridiumText=this._getMeridium();this.meridium.find("a").html(this.meridiumText)}this.base(this.factory.time.getTime())},_getMeridium:function(){return(new Date).getHours()>=12?"PM":"AM"},_isPM:function(){return this._getMeridium()=="PM"?!0:!1},_clearExcessDigits:function(){var e=this.factory.lists[this.factory.lists.length-2],t=this.factory.lists[this.factory.lists.length-4];for(var n=6;n<10;n++){e.$obj.find("li:last-child").remove();t.$obj.find("li:last-child").remove()}}})})(jQuery);(function(e){FlipClock.DailyCounterFace=FlipClock.Face.extend({constructor:function(e,t){this.base(e,t)},build:function(t,n){var r=this,i=this.factory.$wrapper.find("ul"),s=[];n=n?n:this.factory.time.getDayCounter();n.length>i.length&&e.each(n,function(e,t){s.push(r.createList(t))});this.factory.lists=s;e(this.createDivider("Seconds")).insertBefore(this.factory.lists[this.factory.lists.length-2].$obj);e(this.createDivider("Minutes")).insertBefore(this.factory.lists[this.factory.lists.length-4].$obj);e(this.createDivider("Hours",!0)).insertBefore(this.factory.lists[this.factory.lists.length-6].$obj);e(this.createDivider("Days",!0)).insertBefore(this.factory.lists[0].$obj);this._clearExcessDigits();this.autoStart&&this.start()},flip:function(e,t){t||(t=this.factory.time.getDayCounter());this.base(t,e)},_clearExcessDigits:function(){var e=this.factory.lists[this.factory.lists.length-2],t=this.factory.lists[this.factory.lists.length-4];for(var n=6;n<10;n++){e.$obj.find("li:last-child").remove();t.$obj.find("li:last-child").remove()}}})})(jQuery);
|
