Version Notes
Synchronize your Magento contacts with SendinBlue platform, send your marketing and transactional emails and SMS
Download this release
Release Info
Developer | Sendinblue |
Extension | Sendinblue |
Version | 1.1.0 |
Comparing to | |
See all releases |
Version 1.1.0
- app/code/local/Sendinblue/Sendinblue/Block/Sendinblue.php +90 -0
- app/code/local/Sendinblue/Sendinblue/Helper/Data.php +54 -0
- app/code/local/Sendinblue/Sendinblue/Model/Email.php +36 -0
- app/code/local/Sendinblue/Sendinblue/Model/Email/Template.php +104 -0
- app/code/local/Sendinblue/Sendinblue/Model/Mysql4/Sendinblue.php +17 -0
- app/code/local/Sendinblue/Sendinblue/Model/Mysql4/Sendinblue/Collection.php +17 -0
- app/code/local/Sendinblue/Sendinblue/Model/Observer.php +260 -0
- app/code/local/Sendinblue/Sendinblue/Model/Sendinblue.php +1072 -0
- app/code/local/Sendinblue/Sendinblue/Model/Status.php +23 -0
- app/code/local/Sendinblue/Sendinblue/controllers/Adminhtml/MyformController.php +520 -0
- app/code/local/Sendinblue/Sendinblue/controllers/Adminhtml/NotifyController.php +21 -0
- app/code/local/Sendinblue/Sendinblue/controllers/Adminhtml/SyncController.php +21 -0
- app/code/local/Sendinblue/Sendinblue/controllers/AjaxController.php +473 -0
- app/code/local/Sendinblue/Sendinblue/controllers/IndexController.php +18 -0
- app/code/local/Sendinblue/Sendinblue/etc/adminhtml.xml +22 -0
- app/code/local/Sendinblue/Sendinblue/etc/config.xml +325 -0
- app/code/local/Sendinblue/Sendinblue/sql/sendinblue_setup/install-0.1.0.php +276 -0
- app/code/local/Sendinblue/Sendinblue/sql/sendinblue_setup/mysql4-upgrade-0.1.0-0.2.0.php +22 -0
- app/design/adminhtml/default/default/layout/sendinblue.xml +16 -0
- app/design/adminhtml/default/default/template/sendinblue/myform.phtml +617 -0
- app/design/frontend/base/default/layout/sendinblue.xml +38 -0
- app/design/frontend/base/default/template/sendinblue/account/edit.phtml +26 -0
- app/etc/modules/Sendinblue_Sendinblue.xml +9 -0
- app/locale/en_US/template/email/sendin_notification.html +182 -0
- app/locale/en_US/template/email/sendinsmtp_conf.html +169 -0
- app/locale/fr_FR/Sendinblue.csv +130 -0
- app/locale/fr_FR/template/email/sendin_notification.html +172 -0
- app/locale/fr_FR/template/email/sendinsmtp_conf.html +174 -0
- package.xml +28 -0
- skin/adminhtml/default/default/sendinblue/css/jquery-ui.css +1175 -0
- skin/adminhtml/default/default/sendinblue/css/jquery.multiselect.css +23 -0
- skin/adminhtml/default/default/sendinblue/css/styles.css +332 -0
- skin/adminhtml/default/default/sendinblue/images/close.png +0 -0
- skin/adminhtml/default/default/sendinblue/images/disabled.gif +0 -0
- skin/adminhtml/default/default/sendinblue/images/enabled.gif +0 -0
- skin/adminhtml/default/default/sendinblue/images/help.gif +0 -0
- skin/adminhtml/default/default/sendinblue/images/index.php +8 -0
- skin/adminhtml/default/default/sendinblue/images/loader.gif +0 -0
- skin/adminhtml/default/default/sendinblue/images/loading_anim.gif +0 -0
- skin/adminhtml/default/default/sendinblue/images/logo.gif +0 -0
- skin/adminhtml/default/default/sendinblue/images/logo.png +0 -0
- skin/adminhtml/default/default/sendinblue/images/sendinblue.png +0 -0
- skin/adminhtml/default/default/sendinblue/images/ui-icons_ef8c08_256x240.png +0 -0
- skin/adminhtml/default/default/sendinblue/images/ui-icons_ef8c08_256x240.png.png +0 -0
- skin/adminhtml/default/default/sendinblue/js/index.php +19 -0
- skin/adminhtml/default/default/sendinblue/js/jquery-1.9.1.min.js +5 -0
- skin/adminhtml/default/default/sendinblue/js/jquery-ui.min.js +12 -0
- skin/adminhtml/default/default/sendinblue/js/jquery.multiselect.js +705 -0
- skin/adminhtml/default/default/sendinblue/js/jquery.multiselect.min.js +1 -0
- skin/adminhtml/default/default/sendinblue/js/sendinblue.js +870 -0
- skin/adminhtml/default/default/sendinblue/js/sendinblue.min.js +10 -0
app/code/local/Sendinblue/Sendinblue/Block/Sendinblue.php
ADDED
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
|
11 |
+
class Sendinblue_Sendinblue_Block_Sendinblue extends Mage_Core_Block_Template
|
12 |
+
{
|
13 |
+
public function _prepareLayout()
|
14 |
+
{
|
15 |
+
return parent::_prepareLayout();
|
16 |
+
}
|
17 |
+
public function getPagerHtml()
|
18 |
+
{
|
19 |
+
return $this->getChildHtml('pager');
|
20 |
+
}
|
21 |
+
|
22 |
+
protected function _toHtml()
|
23 |
+
{
|
24 |
+
|
25 |
+
$get_Enable_Status = Mage::getModel('sendinblue/sendinblue')->getEnableStatus();
|
26 |
+
|
27 |
+
$get_Tracking_Status = Mage::getModel('sendinblue/sendinblue')->getTrackingStatus();
|
28 |
+
|
29 |
+
$get_order_status = Mage::getModel('sendinblue/sendinblue')->getOrderSmsStatus();
|
30 |
+
|
31 |
+
$get_User_lists = Mage::getModel('sendinblue/sendinblue')->getUserlists();
|
32 |
+
|
33 |
+
|
34 |
+
$value = Mage::getModel('sendinblue/sendinblue')->TrackingSmtp();
|
35 |
+
|
36 |
+
$orders = Mage::getModel('sales/order')->getCollection();
|
37 |
+
|
38 |
+
$order = $orders->getLastItem();
|
39 |
+
$order_Data = $order->getPayment()->getData();
|
40 |
+
$customer = Mage::getSingleton('customer/session')->getCustomer();
|
41 |
+
$orderaddress = Mage::getModel('sales/order')->loadByIncrementId($order->increment_id);
|
42 |
+
|
43 |
+
$mobile = $customer->getPrimaryBillingAddress()->getTelephone();
|
44 |
+
$email = $customer->getEmail();// for email address
|
45 |
+
$firstname = $customer->getFirstname();// For first name
|
46 |
+
$lastname= $customer->getLastname();// For last name
|
47 |
+
$costomer_data = Mage::getModel('newsletter/subscriber')->loadByEmail($email);
|
48 |
+
$nlStatus = $costomer_data->getStatus();
|
49 |
+
if ($get_Enable_Status == 1 && $get_Tracking_Status == 1 && $nlStatus == 1)
|
50 |
+
{
|
51 |
+
|
52 |
+
$value_config = Mage::getModel('sendinblue/sendinblue')->getApiConfigValue();
|
53 |
+
if ($value_config->date_format == 'dd-mm-yyyy')
|
54 |
+
$date = date('d-m-Y', strtotime($order->created_at));
|
55 |
+
else
|
56 |
+
$date = date('m-d-Y', strtotime($order->created_at));
|
57 |
+
|
58 |
+
$html = '';
|
59 |
+
|
60 |
+
$html .= '<script type="text/javascript">
|
61 |
+
/**Code for NB tracking*/
|
62 |
+
function loadScript(url,callback){var script=document.createElement("script");script.type="text/javascript";if(script.readyState){script.onreadystatechange=function(){
|
63 |
+
if(script.readyState=="loaded"||script.readyState=="complete"){script.onreadystatechange=null;callback(url)}}}else{
|
64 |
+
script.onload=function(){callback(url)}}script.src=url;if(document.body){document.body.appendChild(script)}else{
|
65 |
+
document.head.appendChild(script)}}
|
66 |
+
var nbJsURL = (("https:" == document.location.protocol) ? "https://my-tracking-orders.googlecode.com/files" : "http://my-tracking-orders.googlecode.com/files");
|
67 |
+
var nbBaseURL = "http://tracking.mailin.fr/";
|
68 |
+
loadScript(nbJsURL+"/nbv2.js",
|
69 |
+
function(){
|
70 |
+
/*You can put your custom variables here as shown in example.*/
|
71 |
+
try {
|
72 |
+
var nbTracker = nb.getTracker(nbBaseURL , "'.$value->result->tracking_data->site_id.'");
|
73 |
+
var list = ["'.$get_User_lists.'"];
|
74 |
+
var attributes = ["EMAIL","PRENOM","NOM","ORDER_ID","ORDER_DATE","ORDER_PRICE"];
|
75 |
+
var values = ["'.$email.'","'.$firstname.'","'.$lastname.'","'.$order->increment_id.'","'.$date.'","'.$order_Data[amount_ordered].'"];
|
76 |
+
nbTracker.setListData(list);
|
77 |
+
nbTracker.setTrackingData(attributes,values);
|
78 |
+
nbTracker.trackPageView();
|
79 |
+
} catch( err ) {}
|
80 |
+
});
|
81 |
+
|
82 |
+
</script>';
|
83 |
+
|
84 |
+
echo $html;
|
85 |
+
}
|
86 |
+
|
87 |
+
}
|
88 |
+
|
89 |
+
|
90 |
+
}
|
app/code/local/Sendinblue/Sendinblue/Helper/Data.php
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
|
11 |
+
class Sendinblue_Sendinblue_Helper_Data extends Mage_Core_Helper_Abstract
|
12 |
+
{
|
13 |
+
public function getSMTP()
|
14 |
+
{
|
15 |
+
return Mage::getStoreConfig('sendinblue/smtp/option') == 'smtp';
|
16 |
+
}
|
17 |
+
public function getTransport()
|
18 |
+
{
|
19 |
+
if ($this->getSMTP())
|
20 |
+
{
|
21 |
+
$username = Mage::getStoreConfig('sendinblue/smtp/username');
|
22 |
+
$password = Mage::getStoreConfig('sendinblue/smtp/password');
|
23 |
+
$host = Mage::getStoreConfig('sendinblue/smtp/host');
|
24 |
+
$port = Mage::getStoreConfig('sendinblue/smtp/port');
|
25 |
+
$ssl = Mage::getStoreConfig('sendinblue/smtp/ssl');
|
26 |
+
$auth = Mage::getStoreConfig('sendinblue/smtp/authentication');
|
27 |
+
$config = array();
|
28 |
+
$config['username'] = $username;
|
29 |
+
$config['password'] = $password;
|
30 |
+
$config['port'] = $port;
|
31 |
+
$config['ssl'] = null;
|
32 |
+
$config['auth'] = $auth;
|
33 |
+
//echo "<pre>";
|
34 |
+
//print_r($config);
|
35 |
+
//die;
|
36 |
+
$transport = new Zend_Mail_Transport_Smtp($host, $config);
|
37 |
+
}
|
38 |
+
else
|
39 |
+
{
|
40 |
+
Mage::log('Disabled, or no matching transport');
|
41 |
+
return null;
|
42 |
+
}
|
43 |
+
Mage::log('Returning transport');
|
44 |
+
return $transport;
|
45 |
+
}
|
46 |
+
public function ModuleisEnabled()
|
47 |
+
{
|
48 |
+
return Mage::getStoreConfig('sendinblue/enabled');
|
49 |
+
}
|
50 |
+
public function isEnabled()
|
51 |
+
{
|
52 |
+
return Mage::getStoreConfig('sendinblue/smtp/status');
|
53 |
+
}
|
54 |
+
}
|
app/code/local/Sendinblue/Sendinblue/Model/Email.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
|
11 |
+
class Sendinblue_Sendinblue_Model_Email extends Mage_Core_Model_Email {
|
12 |
+
/**
|
13 |
+
* override send function
|
14 |
+
*/
|
15 |
+
public function send()
|
16 |
+
{
|
17 |
+
// If it's not enabled, just return the parent result.
|
18 |
+
if (Mage::helper('sendinblue')->isEnabled() == 0 || Mage::helper('sendinblue')->ModuleisEnabled() == 0)
|
19 |
+
return parent::send($email, $name, $variables);
|
20 |
+
Mage::log('SendinblueSMTP is enabled, sending email in Sendinblue_Sendinblue_Model_Sendinblue');
|
21 |
+
$mail = new Zend_Mail();
|
22 |
+
if (strtolower($this->getType()) == 'html')
|
23 |
+
$mail->setBodyHtml($this->getBody());
|
24 |
+
else
|
25 |
+
$mail->setBodyText($this->getBody());
|
26 |
+
$transport = Mage::helper('sendinblue')->getTransport();
|
27 |
+
$email = Mage::getStoreConfig('contacts/email/recipient_email');
|
28 |
+
$mail->setFrom($this->getFromEmail(), $this->getFromName())
|
29 |
+
->addTo($email, $this->getToName())
|
30 |
+
->setSubject($this->getSubject());
|
31 |
+
Mage::log('About to send email');
|
32 |
+
$mail->send($transport);
|
33 |
+
Mage::log('Finished sending email');
|
34 |
+
return $this;
|
35 |
+
}
|
36 |
+
}
|
app/code/local/Sendinblue/Sendinblue/Model/Email/Template.php
ADDED
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
|
11 |
+
class Sendinblue_Sendinblue_Model_Email_Template extends Mage_Core_Model_Email_Template {
|
12 |
+
|
13 |
+
public function send($email, $name=null, array $variables = array()) {
|
14 |
+
|
15 |
+
// If it's not enabled, just return the parent result.
|
16 |
+
|
17 |
+
// If it's not enabled, just return the parent result.
|
18 |
+
if (Mage::helper('sendinblue')->isEnabled()==0 || Mage::helper('sendinblue')->ModuleisEnabled()==0) {
|
19 |
+
return parent::send($email, $name, $variables);
|
20 |
+
}
|
21 |
+
|
22 |
+
|
23 |
+
|
24 |
+
if(!$this->isValidForSend()) {
|
25 |
+
Mage::log('SMTP: Email not valid for sending - check template, and smtp enabled/disabled setting');
|
26 |
+
Mage::logException(new Exception('This letter cannot be sent.')); // translation is intentionally omitted
|
27 |
+
return false;
|
28 |
+
}
|
29 |
+
|
30 |
+
$emails = array_values((array)$email);
|
31 |
+
$names = is_array($name) ? $name : (array)$name;
|
32 |
+
$names = array_values($names);
|
33 |
+
foreach ($emails as $key => $email) {
|
34 |
+
if (!isset($names[$key])) {
|
35 |
+
$names[$key] = substr($email, 0, strpos($email, '@'));
|
36 |
+
}
|
37 |
+
}
|
38 |
+
|
39 |
+
$variables['email'] = reset($emails);
|
40 |
+
$variables['name'] = reset($names);
|
41 |
+
|
42 |
+
$mail = $this->getMail();
|
43 |
+
|
44 |
+
|
45 |
+
|
46 |
+
if (true) {
|
47 |
+
|
48 |
+
$email = Mage::getStoreConfig('contacts/email/recipient_email', $this->getDesignConfig()->getStore());
|
49 |
+
Mage::log("Development mode set to send all emails to contact form recipient: " . $email);
|
50 |
+
|
51 |
+
}
|
52 |
+
|
53 |
+
// In Magento core they set the Return-Path here, for the sendmail command.
|
54 |
+
|
55 |
+
|
56 |
+
foreach ($emails as $key => $email) {
|
57 |
+
$mail->addTo($email, '=?utf-8?B?' . base64_encode($names[$key]) . '?=');
|
58 |
+
}
|
59 |
+
|
60 |
+
|
61 |
+
$this->setUseAbsoluteLinks(true);
|
62 |
+
$text = $this->getProcessedTemplate($variables, true);
|
63 |
+
|
64 |
+
if($this->isPlain()) {
|
65 |
+
$mail->setBodyText($text);
|
66 |
+
} else {
|
67 |
+
$mail->setBodyHTML($text);
|
68 |
+
}
|
69 |
+
|
70 |
+
$mail->setSubject('=?utf-8?B?'.base64_encode($this->getProcessedTemplateSubject($variables)).'?=');
|
71 |
+
$mail->setFrom($this->getSenderEmail(), $this->getSenderName());
|
72 |
+
|
73 |
+
|
74 |
+
$transport = Mage::helper('sendinblue')->getTransport();
|
75 |
+
|
76 |
+
try {
|
77 |
+
|
78 |
+
// adding new Event dispatch in case anyone wants to interrogate an email before being sent
|
79 |
+
// throwing an Exception in the Event Observer will prevent the mail being sent,
|
80 |
+
// and will return false to the calling function
|
81 |
+
Mage::dispatchEvent('sendin_email_after_send', array(
|
82 |
+
'mail' => $mail,
|
83 |
+
'template' => $this->getTemplateId(),
|
84 |
+
'subject' => $this->getProcessedTemplateSubject($variables),
|
85 |
+
));
|
86 |
+
|
87 |
+
Mage::log('About to send email');
|
88 |
+
$mail->send($transport); // Zend_Mail warning..
|
89 |
+
|
90 |
+
Mage::log('Finished sending email');
|
91 |
+
|
92 |
+
|
93 |
+
$this->_mail = null;
|
94 |
+
} catch (Exception $e) {
|
95 |
+
|
96 |
+
Mage::logException($e);
|
97 |
+
$responceArr = array('result'=>false, 'error'=>$e->getMessage());
|
98 |
+
return json_encode($responceArr);
|
99 |
+
}
|
100 |
+
$responceArr = array('result'=>true);
|
101 |
+
return json_encode($responceArr);
|
102 |
+
|
103 |
+
}
|
104 |
+
}
|
app/code/local/Sendinblue/Sendinblue/Model/Mysql4/Sendinblue.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
|
11 |
+
class Sendinblue_Sendinblue_Model_Mysql4_Sendinblue extends Mage_Core_Model_Mysql4_Abstract
|
12 |
+
{
|
13 |
+
public function _construct()
|
14 |
+
{
|
15 |
+
$this->_init('sendinblue/sendinblue', 'sendinblue_country_code_id');
|
16 |
+
}
|
17 |
+
}
|
app/code/local/Sendinblue/Sendinblue/Model/Mysql4/Sendinblue/Collection.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
|
11 |
+
class Sendinblue_Sendinblue_Model_Mysql4_Sendinblue_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
|
12 |
+
{
|
13 |
+
public function _construct()
|
14 |
+
{
|
15 |
+
$this->_init('sendinblue/sendinblue');
|
16 |
+
}
|
17 |
+
}
|
app/code/local/Sendinblue/Sendinblue/Model/Observer.php
ADDED
@@ -0,0 +1,260 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
class Sendinblue_Sendinblue_Model_Observer
|
11 |
+
{
|
12 |
+
protected static $fields = array ();
|
13 |
+
public function adminSubcriberDelete($observer)
|
14 |
+
{
|
15 |
+
$params = (Mage::app()->getRequest()->getParams())? Mage::app()->getRequest()->getParams() : array();
|
16 |
+
if (isset($params['subscriber']) && count($params['subscriber'] > 0))
|
17 |
+
{
|
18 |
+
$customer_email = array();
|
19 |
+
foreach ($params['subscriber'] as $costomer_id)
|
20 |
+
{
|
21 |
+
$costomer_data = Mage::getModel('newsletter/subscriber')->load($costomer_id)->toArray();
|
22 |
+
$customer_email[] = $costomer_data['subscriber_email'];
|
23 |
+
}
|
24 |
+
$customer_emails = implode('|', $customer_email);
|
25 |
+
$responce = Mage::getModel('sendinblue/sendinblue')->emailDelete($customer_emails);
|
26 |
+
}
|
27 |
+
if ($responce->result)
|
28 |
+
Mage::getSingleton('core/session')->addSuccess('Total of '.$responce->result->unsubEmailsCounts.' record(s) were Unsubscribed');
|
29 |
+
return $this;
|
30 |
+
}
|
31 |
+
public function adminCustomerDelete($observer)
|
32 |
+
{
|
33 |
+
$params = (Mage::app()->getRequest()->getParams())? Mage::app()->getRequest()->getParams() : array();
|
34 |
+
if (isset($params['customer']) && count($params['customer'] > 0))
|
35 |
+
{
|
36 |
+
$customer_email = array();
|
37 |
+
foreach ($params['customer'] as $costomer_id)
|
38 |
+
{
|
39 |
+
$costomer_data = Mage::getModel('customer/customer')->load($costomer_id)->toArray();
|
40 |
+
$customer_email[] = $costomer_data['email'];
|
41 |
+
}
|
42 |
+
$customer_emails = implode('|', $customer_email);
|
43 |
+
$responce = Mage::getModel('sendinblue/sendinblue')->emailDelete($customer_emails);
|
44 |
+
}
|
45 |
+
if ($responce->result)
|
46 |
+
Mage::getSingleton('core/session')->addSuccess('Total of '.$responce->result->unsubEmailsCounts.' record(s) were Unsubscribed');
|
47 |
+
return $this;
|
48 |
+
}
|
49 |
+
public function adminCustomerSubscribe($observer)
|
50 |
+
{
|
51 |
+
$params = (Mage::app()->getRequest()->getParams())? Mage::app()->getRequest()->getParams() : array();
|
52 |
+
if (isset($params['customer']) && count($params['customer'] > 0))
|
53 |
+
{
|
54 |
+
$customer_email = array();
|
55 |
+
foreach ($params['customer'] as $costomer_id)
|
56 |
+
{
|
57 |
+
$costomer_data = Mage::getModel('customer/customer')->load($costomer_id)->toArray();
|
58 |
+
$customer_email[] = $costomer_data['email'];
|
59 |
+
}
|
60 |
+
$customer_emails = implode('|', $customer_email);
|
61 |
+
$responce = Mage::getModel('sendinblue/sendinblue')->addEmailList($customer_emails);
|
62 |
+
}
|
63 |
+
if ($responce->result)
|
64 |
+
Mage::getSingleton('core/session')->addSuccess('Total of '.$responce->result->infoUpdatedCount.' record(s) were subscribed');
|
65 |
+
return $this;
|
66 |
+
}
|
67 |
+
public function subscribeObserver($observer)
|
68 |
+
{
|
69 |
+
$params = (Mage::app()->getRequest()->getParams())? Mage::app()->getRequest()->getParams() : array();
|
70 |
+
$client = 0;
|
71 |
+
$extra = ''.'|'.''.'|'.$client.'|'.'';
|
72 |
+
$responce = Mage::getModel('sendinblue/sendinblue')->emailAdd($params['email'], $extra);
|
73 |
+
return $this;
|
74 |
+
}
|
75 |
+
public function updateNewObserver($observer)
|
76 |
+
{
|
77 |
+
$extra = null;
|
78 |
+
$params = (Mage::app()->getRequest()->getParams())? Mage::app()->getRequest()->getParams() : array();
|
79 |
+
|
80 |
+
$cus_session = Mage::getSingleton('customer/session')->getCustomer();
|
81 |
+
$customer = ($cus_session->getEmail())? $cus_session : $observer->getCustomer();
|
82 |
+
$cus_data = $cus_session->getData();
|
83 |
+
$email = (isset($params['email']))? $params['email'] : $customer->getEmail();
|
84 |
+
$cid = $customer->getEntityid();
|
85 |
+
$fname = $customer->getFirstname();
|
86 |
+
$fname = empty($fname)?'':$fname;
|
87 |
+
$lname = $customer->getLastname();
|
88 |
+
$lname = empty($lname)?'':$lname;
|
89 |
+
|
90 |
+
$collectionAddress = Mage::getModel('customer/address')->getCollection()->addAttributeToSelect('telephone')->addAttributeToSelect('firstname')->addAttributeToSelect('lastname')->addAttributeToFilter('parent_id',$cid);
|
91 |
+
$telephone = '';
|
92 |
+
foreach ($collectionAddress as $customerPhno) {
|
93 |
+
$telephone = $customerPhno->getData('telephone');
|
94 |
+
$firstname = $customerPhno->getData('firstname');
|
95 |
+
$lastname = $customerPhno->getData('lastname');
|
96 |
+
|
97 |
+
}
|
98 |
+
$telephone = empty($telephone)?'':$telephone;
|
99 |
+
$firstname = empty($firstname)?'':$firstname;
|
100 |
+
$lastname = empty($lastname)?'':$lastname;
|
101 |
+
|
102 |
+
if ($fname != '' || $lname != '')
|
103 |
+
$client = 1;
|
104 |
+
else
|
105 |
+
$client = 0;
|
106 |
+
|
107 |
+
$is_subscribed = (isset($params['is_subscribed']))? $params['is_subscribed'] : '';
|
108 |
+
|
109 |
+
$is_subscribedupdate = (isset($params['is_subscribed']))? 1 : 0;
|
110 |
+
if ( isset($params['is_subscribed']) == '' ) {
|
111 |
+
$costomer_data = Mage::getModel('newsletter/subscriber')->loadByEmail($email);
|
112 |
+
$nlStatus = $costomer_data->getStatus();
|
113 |
+
$is_subscribedupdate = 1;
|
114 |
+
if ($nlStatus == '') {
|
115 |
+
$is_subscribedupdate = 0;
|
116 |
+
}
|
117 |
+
}
|
118 |
+
if ($fname != '' || $lname != '' || $telephone != '' || $email != '')
|
119 |
+
{
|
120 |
+
$extra = $fname.'|'.$lname.'|'.$client.'|'.$telephone;
|
121 |
+
if (isset($is_subscribed) && $is_subscribed == 1)
|
122 |
+
$responce = Mage::getModel('sendinblue/sendinblue')->emailAdd($email, $extra);
|
123 |
+
|
124 |
+
if (isset($is_subscribedupdate) && $is_subscribedupdate == 1) {
|
125 |
+
$responce = Mage::getModel('sendinblue/sendinblue')->emailAdd($email, $extra);
|
126 |
+
}
|
127 |
+
}
|
128 |
+
|
129 |
+
if (isset($is_subscribed) && $is_subscribed != '' && $is_subscribed === 0) {
|
130 |
+
Mage::getSingleton('core/session')->addSuccess($is_subscribed);
|
131 |
+
$responce = Mage::getModel('sendinblue/sendinblue')->emailDelete($email);
|
132 |
+
}
|
133 |
+
return $this;
|
134 |
+
}
|
135 |
+
public function syncData()
|
136 |
+
{
|
137 |
+
$responce = Mage::getModel('sendinblue/sendinblue')->syncData();
|
138 |
+
return $this;
|
139 |
+
}
|
140 |
+
public function updateStatus($observer)
|
141 |
+
{
|
142 |
+
$order = $observer->getEvent()->getOrder();
|
143 |
+
|
144 |
+
if ($order->getState() == Mage_Sales_Model_Order::STATE_PROCESSING)
|
145 |
+
{
|
146 |
+
$history = $order->getShipmentsCollection();
|
147 |
+
$history_array=$history->toarray();
|
148 |
+
$order_id = $history_array['items']['0']['order_id'];
|
149 |
+
$shippingaddrid = $history_array['items']['0']['shipping_address_id'];
|
150 |
+
$_order = Mage::getModel('sales/order')->load($order_id);
|
151 |
+
$_shippingAddress = $_order->getShippingAddress();
|
152 |
+
$locale = Mage::app()->getLocale()->getLocaleCode();
|
153 |
+
$mobile = $_shippingAddress->getTelephone();
|
154 |
+
$countryid = $_shippingAddress->getCountryId();
|
155 |
+
$sql = 'SELECT * FROM sendinblue_country_codes WHERE iso_code = "'.$countryid.'" ';
|
156 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_read');
|
157 |
+
$data = $connection->fetchRow($sql);
|
158 |
+
|
159 |
+
$mobile = Mage::getModel('sendinblue/sendinblue')->checkMobileNumber($mobile,$data['country_prefix']);
|
160 |
+
$firstname = $_shippingAddress->getFirstname();
|
161 |
+
$lastname = $_shippingAddress->getLastname();
|
162 |
+
$ref_num = $_order->getIncrementId();
|
163 |
+
$orderprice = $_order->getGrandTotal();
|
164 |
+
$courrencycode = $_order->getBaseCurrencyCode();
|
165 |
+
$orderdate = $_order->getCreatedAt();
|
166 |
+
if ($locale == 'fr_FR')
|
167 |
+
$ord_date = date('d/m/Y', strtotime($orderdate));
|
168 |
+
else
|
169 |
+
$ord_date = date('m/d/Y', strtotime($orderdate));
|
170 |
+
$total_pay = $orderprice.' '.$courrencycode;
|
171 |
+
$msgbody = Mage::getModel('sendinblue/sendinblue')->getSendSmsShipingMessage();
|
172 |
+
$fname = str_replace('{first_name}', $firstname, $msgbody);
|
173 |
+
$lname = str_replace('{last_name}', $lastname."\r\n", $fname);
|
174 |
+
$procuct_price = str_replace('{order_price}', $total_pay, $lname);
|
175 |
+
$order_date = str_replace('{order_date}', $ord_date."\r\n", $procuct_price);
|
176 |
+
$msgbody = str_replace('{order_reference}', $ref_num, $order_date);
|
177 |
+
|
178 |
+
$arr = array();
|
179 |
+
$arr['to'] = $mobile;
|
180 |
+
$arr['from'] = Mage::getModel('sendinblue/sendinblue')->getSendSmsShipingSubject();
|
181 |
+
$arr['text'] = $msgbody;
|
182 |
+
Mage::getModel('sendinblue/sendinblue')->sendSmsApi($arr);
|
183 |
+
|
184 |
+
}
|
185 |
+
}
|
186 |
+
public function ordersucess($observer)
|
187 |
+
{
|
188 |
+
$get_Enable_Status = Mage::getModel('sendinblue/sendinblue')->getEnableStatus();
|
189 |
+
$get_order_status = Mage::getModel('sendinblue/sendinblue')->getOrderSmsStatus();
|
190 |
+
$get_User_lists = Mage::getModel('sendinblue/sendinblue')->getUserlists();
|
191 |
+
$get_Tracking_Status = Mage::getModel('sendinblue/sendinblue')->getTrackingStatus();
|
192 |
+
$value = Mage::getModel('sendinblue/sendinblue')->TrackingSmtp();
|
193 |
+
|
194 |
+
$orders = Mage::getModel('sales/order')->getCollection();
|
195 |
+
$order = $orders->getLastItem();
|
196 |
+
|
197 |
+
$order_Data = $order->getPayment()->getData();
|
198 |
+
|
199 |
+
$customer = Mage::getSingleton('customer/session')->getCustomer();
|
200 |
+
$orderaddress = Mage::getModel('sales/order')->loadByIncrementId($order->increment_id);
|
201 |
+
|
202 |
+
//for order sms send
|
203 |
+
if($get_Enable_Status && $get_order_status)
|
204 |
+
{
|
205 |
+
$locale = Mage::app()->getLocale()->getLocaleCode();
|
206 |
+
$mobile = $orderaddress->getBillingAddress()->getTelephone();
|
207 |
+
$countryid = $orderaddress->getBillingAddress()->getCountryId();
|
208 |
+
$sql = 'SELECT * FROM sendinblue_country_codes WHERE iso_code = "'.$countryid.'" ';
|
209 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_read');
|
210 |
+
$data = $connection->fetchRow($sql);
|
211 |
+
|
212 |
+
$mobile = Mage::getModel('sendinblue/sendinblue')->checkMobileNumber($mobile,$data['country_prefix']);
|
213 |
+
$email = $orderaddress->getBillingAddress()->getEmail();
|
214 |
+
$firstname = $orderaddress->getBillingAddress()->getFirstname();
|
215 |
+
$lastname = $orderaddress->getBillingAddress()->getLastname();
|
216 |
+
$ref_num = $order->getIncrementId();
|
217 |
+
$orderprice = $order->getGrandTotal();
|
218 |
+
$currencycode = $order->getBaseCurrencyCode();
|
219 |
+
$orderdate = $order->getCreatedAt();
|
220 |
+
if ($locale == 'fr_FR')
|
221 |
+
$ord_date = date('d/m/Y', strtotime($orderdate));
|
222 |
+
else
|
223 |
+
$ord_date = date('m/d/Y', strtotime($orderdate));
|
224 |
+
$total_pay = $orderprice.' '.$currencycode;
|
225 |
+
$msgbody = Mage::getModel('sendinblue/sendinblue')->getSendSmsmOrderMessage();
|
226 |
+
$fname = str_replace('{first_name}', $firstname, $msgbody);
|
227 |
+
$lname = str_replace('{last_name}', $lastname."\r\n", $fname);
|
228 |
+
$procuct_price = str_replace('{order_price}', $total_pay, $lname);
|
229 |
+
$order_date = str_replace('{order_date}', $ord_date."\r\n", $procuct_price);
|
230 |
+
$msgbody = str_replace('{order_reference}', $ref_num, $order_date);
|
231 |
+
|
232 |
+
$arr = array();
|
233 |
+
$arr['to'] = $mobile;
|
234 |
+
$arr['from'] = Mage::getModel('sendinblue/sendinblue')->getSendSmsOrderSubject();
|
235 |
+
$arr['text'] = $msgbody;
|
236 |
+
$responce = Mage::getModel('sendinblue/sendinblue')->sendSmsApi($arr);
|
237 |
+
}
|
238 |
+
|
239 |
+
}
|
240 |
+
public function subscribedToNewsletter($observer)
|
241 |
+
{
|
242 |
+
$data = $observer->subscriber;
|
243 |
+
if($data->subscriber_status == 3)
|
244 |
+
Mage::getModel('sendinblue/sendinblue')->emailDelete($data->subscriber_email);
|
245 |
+
else if ($data->subscriber_status == 1)
|
246 |
+
Mage::getModel('sendinblue/sendinblue')->emailSubscribe($data->subscriber_email);
|
247 |
+
|
248 |
+
}
|
249 |
+
public function disableCache(Varien_Event_Observer $observer)
|
250 |
+
{
|
251 |
+
$action = $observer->getEvent()->getControllerAction();
|
252 |
+
|
253 |
+
if ($action instanceof Sendinblue_Sendinblue_Adminhtml_MyformController) { // eg. Mage_Catalog_ProductController
|
254 |
+
$request = $action->getRequest();
|
255 |
+
$cache = Mage::app()->getCacheInstance();
|
256 |
+
Mage::getSingleton('core/session')->addSuccess('Done successfully');
|
257 |
+
$cache->banUse('full_page'); // Tell Magento to 'ban' the use of FPC for this request
|
258 |
+
}
|
259 |
+
}
|
260 |
+
}
|
app/code/local/Sendinblue/Sendinblue/Model/Sendinblue.php
ADDED
@@ -0,0 +1,1072 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
class Sendinblue_Sendinblue_Model_Sendinblue extends Mage_Core_Model_Abstract
|
11 |
+
{
|
12 |
+
var $api_url;
|
13 |
+
var $api_key;
|
14 |
+
var $smtp_status;
|
15 |
+
var $error_message;
|
16 |
+
var $error_code;
|
17 |
+
var $lists_ids;
|
18 |
+
var $module_enable;
|
19 |
+
var $st;
|
20 |
+
public function _construct()
|
21 |
+
{
|
22 |
+
parent::_construct();
|
23 |
+
$this->_init('sendinblue/sendinblue');
|
24 |
+
$this->MIAPI();
|
25 |
+
}
|
26 |
+
/**
|
27 |
+
* functions used for set module config
|
28 |
+
*/
|
29 |
+
public function MIAPI()
|
30 |
+
{
|
31 |
+
$scope = ($this->getScope()) ? $this->getScope() : Mage::app()->getStore()->getStoreId();
|
32 |
+
$this->module_enable = $this->getEnableStatus($scope);
|
33 |
+
$this->api_url = 'http://ws.mailin.fr/';
|
34 |
+
$this->api_url2 = 'https://www.sendinblue.com/ws/getamd/';
|
35 |
+
$this->api_key = $this->getApiKey();
|
36 |
+
if (!$this->lists_ids)
|
37 |
+
$this->lists_ids = str_replace(',', '|', $this->getUserlists($scope));
|
38 |
+
$this->CreateFolderCaseTwo();
|
39 |
+
}
|
40 |
+
|
41 |
+
public function checkMobileNumber($number, $call_prefix)
|
42 |
+
{
|
43 |
+
$number = preg_replace('/\s+/', '', $number);
|
44 |
+
$charone = substr($number, 0, 1);
|
45 |
+
$chartwo = substr($number, 0, 2);
|
46 |
+
if ($charone == '0' && $chartwo != '00')
|
47 |
+
return '00'.$call_prefix.substr($number, 1);
|
48 |
+
else if ($chartwo == '00')
|
49 |
+
return $number;
|
50 |
+
else if ($charone == '+')
|
51 |
+
return '00'.substr($number, 1);
|
52 |
+
else if ($charone != '0')
|
53 |
+
return '00'.$call_prefix.$number;
|
54 |
+
}
|
55 |
+
/**
|
56 |
+
* functions used for getting module status
|
57 |
+
*/
|
58 |
+
public function getEnableStatus()
|
59 |
+
{
|
60 |
+
$status = $this->getGeneralConfig('enabled', Mage::app()->getStore()->getStoreId());
|
61 |
+
if (!$status)
|
62 |
+
return false;
|
63 |
+
return $status;
|
64 |
+
}
|
65 |
+
/**
|
66 |
+
* functions used for send order sms module status
|
67 |
+
*/
|
68 |
+
public function getOrderSmsStatus()
|
69 |
+
{
|
70 |
+
$status = $this->getGeneralConfig('sms/order', Mage::app()->getStore()->getStoreId());
|
71 |
+
if (!$status)
|
72 |
+
return false;
|
73 |
+
return $status;
|
74 |
+
}
|
75 |
+
/**
|
76 |
+
* functions used for getting notify sms status
|
77 |
+
*/
|
78 |
+
public function getNotifySmsStatus()
|
79 |
+
{
|
80 |
+
$status = $this->getGeneralConfig('sms/credit', Mage::app()->getStore()->getStoreId());
|
81 |
+
if (!$status)
|
82 |
+
return false;
|
83 |
+
return $status;
|
84 |
+
}
|
85 |
+
/**
|
86 |
+
* functions used for getting Notify value limit
|
87 |
+
*/
|
88 |
+
public function getNotifyValueStatus()
|
89 |
+
{
|
90 |
+
$status = $this->getGeneralConfig('Sendin_Notify_Value', Mage::app()->getStore()->getStoreId());
|
91 |
+
if (!$status)
|
92 |
+
return false;
|
93 |
+
return $status;
|
94 |
+
}
|
95 |
+
/**
|
96 |
+
* functions used for getting Notify email limit
|
97 |
+
*/
|
98 |
+
public function getNotifyEmailStatus()
|
99 |
+
{
|
100 |
+
$status = $this->getGeneralConfig('Sendin_Notify_Email', Mage::app()->getStore()->getStoreId());
|
101 |
+
if (!$status)
|
102 |
+
return false;
|
103 |
+
return $status;
|
104 |
+
}
|
105 |
+
/**
|
106 |
+
* functions used for getting Notify email limit
|
107 |
+
*/
|
108 |
+
public function getNotifyCronStatus()
|
109 |
+
{
|
110 |
+
$status = $this->getGeneralConfig('Sendin_Notify_Cron_Executed', Mage::app()->getStore()->getStoreId());
|
111 |
+
if (!$status)
|
112 |
+
return false;
|
113 |
+
return $status;
|
114 |
+
}
|
115 |
+
/**
|
116 |
+
* functions used for getting shiping sms status
|
117 |
+
*/
|
118 |
+
public function getShipingSmsStatus()
|
119 |
+
{
|
120 |
+
$status = $this->getGeneralConfig('sms/shiping', Mage::app()->getStore()->getStoreId());
|
121 |
+
if (!$status)
|
122 |
+
return false;
|
123 |
+
return $status;
|
124 |
+
}
|
125 |
+
/**
|
126 |
+
* functions used for getting campaign sms status
|
127 |
+
*/
|
128 |
+
public function getCampaignStatus()
|
129 |
+
{
|
130 |
+
$status = $this->getGeneralConfig('sms/campaign', Mage::app()->getStore()->getStoreId());
|
131 |
+
if (!$status)
|
132 |
+
return false;
|
133 |
+
return $status;
|
134 |
+
}
|
135 |
+
/**
|
136 |
+
* functions used for getting send sms order subject
|
137 |
+
*/
|
138 |
+
public function getSendSmsOrderSubject()
|
139 |
+
{
|
140 |
+
$status = $this->getGeneralConfig('Sendin_Sender_Order', Mage::app()->getStore()->getStoreId());
|
141 |
+
if (!$status)
|
142 |
+
return false;
|
143 |
+
return $status;
|
144 |
+
}
|
145 |
+
/**
|
146 |
+
* functions used for getting order sms message
|
147 |
+
*/
|
148 |
+
public function getSendSmsmOrderMessage()
|
149 |
+
{
|
150 |
+
$status = $this->getGeneralConfig('Sendin_Sender_Order_Message', Mage::app()->getStore()->getStoreId());
|
151 |
+
if (!$status)
|
152 |
+
return false;
|
153 |
+
return $status;
|
154 |
+
}
|
155 |
+
/**
|
156 |
+
*functions used for getting send sms shiping subject
|
157 |
+
*/
|
158 |
+
public function getSendSmsShipingSubject()
|
159 |
+
{
|
160 |
+
$status = $this->getGeneralConfig('Sendin_Sender_Shipment', Mage::app()->getStore()->getStoreId());
|
161 |
+
if (!$status)
|
162 |
+
return false;
|
163 |
+
return $status;
|
164 |
+
}
|
165 |
+
/**
|
166 |
+
*functions used for getting shiping sms message
|
167 |
+
*/
|
168 |
+
public function getSendSmsShipingMessage()
|
169 |
+
{
|
170 |
+
$status = $this->getGeneralConfig('Sendin_Sender_Shipment_Message', Mage::app()->getStore()->getStoreId());
|
171 |
+
if (!$status)
|
172 |
+
return false;
|
173 |
+
return $status;
|
174 |
+
}
|
175 |
+
/**
|
176 |
+
* functions used for get api key
|
177 |
+
*/
|
178 |
+
public function getApiKey()
|
179 |
+
{
|
180 |
+
$apikey = $this->getGeneralConfig('api', Mage::app()->getStore()->getStoreId());
|
181 |
+
if (!$apikey)
|
182 |
+
return false;
|
183 |
+
return $apikey;
|
184 |
+
}
|
185 |
+
/**
|
186 |
+
* functions used for getting smtp status
|
187 |
+
*/
|
188 |
+
public function getSmtpStatus()
|
189 |
+
{
|
190 |
+
$status = $this->getSendinSmtpStatus('status', Mage::app()->getStore()->getStoreId());
|
191 |
+
if (!$status)
|
192 |
+
return false;
|
193 |
+
return $status;
|
194 |
+
}
|
195 |
+
/**
|
196 |
+
* functions used for getting tracking status
|
197 |
+
*/
|
198 |
+
public function getTrackingStatus()
|
199 |
+
{
|
200 |
+
$status = $this->getSendinTrackingCodeStatus('code', Mage::app()->getStore()->getStoreId());
|
201 |
+
if (!$status) {
|
202 |
+
return false;
|
203 |
+
}
|
204 |
+
return $status;
|
205 |
+
}
|
206 |
+
/**
|
207 |
+
* functions used for getting userlists
|
208 |
+
*/
|
209 |
+
public function getUserlists()
|
210 |
+
{
|
211 |
+
$userlist = $this->getGeneralConfig('list', Mage::app()->getStore()->getStoreId());
|
212 |
+
if (!$userlist)
|
213 |
+
return false;
|
214 |
+
return $userlist;
|
215 |
+
}
|
216 |
+
/**
|
217 |
+
* functions used for getting general config
|
218 |
+
*/
|
219 |
+
public function getGeneralConfig($field, $store = null)
|
220 |
+
{
|
221 |
+
return Mage::getStoreConfig('sendinblue/'.$field, $store);
|
222 |
+
}
|
223 |
+
/**
|
224 |
+
* functions used for get sendinsmtp status
|
225 |
+
*/
|
226 |
+
public function getSendinSmtpStatus($field, $store = null)
|
227 |
+
{
|
228 |
+
return Mage::getStoreConfig('sendinblue/smtp/'.$field, $store);
|
229 |
+
}
|
230 |
+
public function getSyncronizeStatus()
|
231 |
+
{
|
232 |
+
return $this->getGeneralConfig('syncronize', Mage::app()->getStore()->getStoreId());
|
233 |
+
}
|
234 |
+
/**
|
235 |
+
* functions used for get sendin tracking status
|
236 |
+
*/
|
237 |
+
public function getSendinTrackingCodeStatus($field, $store = null)
|
238 |
+
{
|
239 |
+
return Mage::getStoreConfig('sendinblue/tracking/'.$field, $store);
|
240 |
+
}
|
241 |
+
/**
|
242 |
+
* functions used for module functionality
|
243 |
+
*/
|
244 |
+
public function getLists()
|
245 |
+
{
|
246 |
+
return $this->lists();
|
247 |
+
}
|
248 |
+
/**
|
249 |
+
* functions used for email adds
|
250 |
+
*/
|
251 |
+
public function emailAdd($email, $extra)
|
252 |
+
{
|
253 |
+
if ($this->module_enable == 1 && $this->getSyncronizeStatus())
|
254 |
+
{
|
255 |
+
$apikey = $this->api_key;
|
256 |
+
if (!$apikey)
|
257 |
+
return false;
|
258 |
+
$params = array();
|
259 |
+
$params['email'] = $email;
|
260 |
+
$params['id'] = '';
|
261 |
+
$params['blacklisted'] = '';
|
262 |
+
if ($extra != null)
|
263 |
+
{
|
264 |
+
$params['attributes_name'] = 'PRENOM|NOM|CLIENT|SMS';
|
265 |
+
$params['attributes_value'] = $extra;
|
266 |
+
} else
|
267 |
+
{
|
268 |
+
$params['attributes_value'] = $email;
|
269 |
+
|
270 |
+
}
|
271 |
+
$params['listid'] = $this->lists_ids;
|
272 |
+
return $this->callServer('USERCREADITM', $params);
|
273 |
+
} else
|
274 |
+
return false;
|
275 |
+
}
|
276 |
+
/**
|
277 |
+
* functions subscribeuser
|
278 |
+
*/
|
279 |
+
public function emailSubscribe($email)
|
280 |
+
{
|
281 |
+
if ($this->module_enable == 1 && $this->getSyncronizeStatus())
|
282 |
+
{
|
283 |
+
$apikey = $this->api_key;
|
284 |
+
$timezone = Mage::app()->getStore()->getConfig('general/locale/timezone');
|
285 |
+
$timez = str_replace('Calcutta', 'Kolkata', $timezone);
|
286 |
+
$tm = date("Y-m-d H:i:s", Mage::getModel('core/date')->timestamp(time()));
|
287 |
+
|
288 |
+
if (!$apikey)
|
289 |
+
return false;
|
290 |
+
$data = array();
|
291 |
+
$data['key'] = $apikey;
|
292 |
+
$data['webaction']='UPDATE-USER-SUBSCRIPTION-STATUS';
|
293 |
+
$data['timezone'] = $timez;
|
294 |
+
$data['user_status'] = $email.', '.'1'.', '.$tm;
|
295 |
+
return $this->curlRequest($data);
|
296 |
+
} else
|
297 |
+
return false;
|
298 |
+
}
|
299 |
+
|
300 |
+
/**
|
301 |
+
* functions used for sync data
|
302 |
+
*/
|
303 |
+
public function syncData()
|
304 |
+
{
|
305 |
+
if ($this->module_enable == 1 && $this->getSyncronizeStatus())
|
306 |
+
{
|
307 |
+
$apikey = $this->api_key;
|
308 |
+
if (!$apikey)
|
309 |
+
return false;
|
310 |
+
$params = array();
|
311 |
+
$params['listids'] = str_replace(',', '|', $this->lists_ids);
|
312 |
+
$response = $this->callServer('DISPLAYLISTDATABLACK', $params);
|
313 |
+
$result_arr = $response->result;
|
314 |
+
$collection = Mage::getResourceModel('newsletter/subscriber_collection')->showStoreInfo()->showCustomerInfo()->toArray();
|
315 |
+
$subscriber_data = $collection['items'];
|
316 |
+
if (count($result_arr) > 0)
|
317 |
+
{
|
318 |
+
$emails = array();
|
319 |
+
foreach ($result_arr as $key => $value)
|
320 |
+
{
|
321 |
+
foreach ($value as $user_data)
|
322 |
+
{
|
323 |
+
foreach ($subscriber_data as $data)
|
324 |
+
{
|
325 |
+
$temp_sub_status = ($data['subscriber_status'] == 3) ? 1 : 0;
|
326 |
+
if (($data['subscriber_email'] == $user_data->email) && ($temp_sub_status != $user_data->blacklisted))
|
327 |
+
{
|
328 |
+
$emails[] = $data['subscriber_email'];
|
329 |
+
$subscribe_data['subscriber_id'] = $data['subscriber_id'];
|
330 |
+
$subscribe_data['subscriber_status'] = ($user_data->blacklisted == 1)?3:1;
|
331 |
+
$costomer_data = Mage::getModel('newsletter/subscriber')->loadByEmail($data['subscriber_email']);
|
332 |
+
$costomer_data->setStatus($subscribe_data['subscriber_status']);
|
333 |
+
$costomer_data->setIsStatusChanged(true);
|
334 |
+
$costomer_data->save();
|
335 |
+
}
|
336 |
+
}
|
337 |
+
}
|
338 |
+
}
|
339 |
+
}
|
340 |
+
if (count($emails) > 0)
|
341 |
+
Mage::getSingleton('core/session')->addSuccess(count($emails).Mage::helper('sendinblue')->__(' Total of record(s) have been updated'));
|
342 |
+
else
|
343 |
+
Mage::getSingleton('core/session')->addSuccess(count($emails).Mage::helper('sendinblue')->__(' Total of record(s) have been updated'));
|
344 |
+
return true;
|
345 |
+
}
|
346 |
+
else
|
347 |
+
return false;
|
348 |
+
}
|
349 |
+
/**
|
350 |
+
* This method is used for add email list
|
351 |
+
*/
|
352 |
+
public function addEmailList($email)
|
353 |
+
{
|
354 |
+
if ($this->module_enable == 1 && $this->getSyncronizeStatus())
|
355 |
+
{
|
356 |
+
$apikey = $this->api_key;
|
357 |
+
if (!$apikey)
|
358 |
+
return false;
|
359 |
+
$params = array();
|
360 |
+
$params['email'] = $email;
|
361 |
+
$params['id'] = '';
|
362 |
+
$params['blacklisted'] = '';
|
363 |
+
$params['attributes_name'] = '';
|
364 |
+
$params['attributes_value'] = '';
|
365 |
+
$params['listid'] = $this->lists_ids;
|
366 |
+
return $this->callServer('USERCREADITM', $params);
|
367 |
+
} else
|
368 |
+
return false;
|
369 |
+
}
|
370 |
+
/**
|
371 |
+
* This method is used used for email unsubscribe
|
372 |
+
*/
|
373 |
+
public function emailDelete($email)
|
374 |
+
{
|
375 |
+
if ($this->module_enable == 1 && $this->getSyncronizeStatus())
|
376 |
+
{
|
377 |
+
$apikey = $this->api_key;
|
378 |
+
if (!$apikey)
|
379 |
+
return false;
|
380 |
+
$params = array();
|
381 |
+
$params['email'] = $email;
|
382 |
+
$params['listid'] = $this->lists_ids;
|
383 |
+
return $this->callServer('UNSUBAPI', $params);
|
384 |
+
} else
|
385 |
+
return false;
|
386 |
+
}
|
387 |
+
/**
|
388 |
+
* This method is used used for check api status
|
389 |
+
*/
|
390 |
+
public function checkApikey($api_key)
|
391 |
+
{
|
392 |
+
$params['key'] = $api_key;
|
393 |
+
$response = $this->callServer('DISPLAYLISTDATA', $params);
|
394 |
+
if (isset($response->errorMsg) && !empty($response->errorMsg))
|
395 |
+
return $lists['error'] = $response->errorMsg;
|
396 |
+
}
|
397 |
+
/**
|
398 |
+
* functions used for smtp details and order tracking
|
399 |
+
*/
|
400 |
+
public function SmtpDetailsWithTracking()
|
401 |
+
{
|
402 |
+
$params['key'] = $this->api_key;
|
403 |
+
$response = $this->callServer('TRACKINGDATA', $params);
|
404 |
+
if (isset($response->errorMsg) && !empty($response->errorMsg))
|
405 |
+
{
|
406 |
+
$tracking['error'] = $response->errorMsg;
|
407 |
+
return $tracking;
|
408 |
+
}
|
409 |
+
return $response;
|
410 |
+
}
|
411 |
+
/**
|
412 |
+
* Fetches all the list of the user from the Sendinblue platform.
|
413 |
+
*/
|
414 |
+
public function lists($filters = array())
|
415 |
+
{
|
416 |
+
$params = array();
|
417 |
+
$response = $this->callServer('DISPLAYLISTDATA', $params);
|
418 |
+
if (isset($response->errorMsg) && !empty($response->errorMsg))
|
419 |
+
{
|
420 |
+
$this->error_message = $response->errorMsg;
|
421 |
+
$lists['error'] = $response->errorMsg;
|
422 |
+
} else
|
423 |
+
{
|
424 |
+
$i = 0;
|
425 |
+
$lists = array();
|
426 |
+
foreach ($response->result as $list_data)
|
427 |
+
{
|
428 |
+
$lists[$i]['id'] = $list_data->id;
|
429 |
+
$lists[$i]['name'] = $list_data->name;
|
430 |
+
$i++;
|
431 |
+
}
|
432 |
+
}
|
433 |
+
return $lists;
|
434 |
+
}
|
435 |
+
/**
|
436 |
+
* Fetches the list status of the user from the Sendinblue platform.
|
437 |
+
*/
|
438 |
+
public function getUserListStats()
|
439 |
+
{
|
440 |
+
if ($this->module_enable == 1)
|
441 |
+
{
|
442 |
+
$params = array();
|
443 |
+
$params['list'] = 'ALL';
|
444 |
+
return $this->callServer('DISPLAYLISTDATA', $params);
|
445 |
+
} else
|
446 |
+
return Mage::getSingleton('core/session')->addError('Sendinblue not enabled');
|
447 |
+
}
|
448 |
+
/**
|
449 |
+
* Fetches all folders and all list within each folder of the user's Sendinblue
|
450 |
+
* account and displays them to the user.
|
451 |
+
*/
|
452 |
+
public function checkFolderList()
|
453 |
+
{
|
454 |
+
$params = array();
|
455 |
+
$array = array();
|
456 |
+
$list_response = $this->callServer('DISPLAY-FOLDERS-LISTS', $params);
|
457 |
+
$list_response = json_encode($list_response);
|
458 |
+
$res = json_decode($list_response, true);
|
459 |
+
if (isset($res) && !empty($res))
|
460 |
+
{
|
461 |
+
foreach ($res as $key => $value)
|
462 |
+
{
|
463 |
+
if (strtolower($value['name']) == 'magento')
|
464 |
+
{
|
465 |
+
$array[] = $key;
|
466 |
+
$array[] = $value['name'];
|
467 |
+
}
|
468 |
+
if (!empty($value['lists']))
|
469 |
+
{
|
470 |
+
foreach ($value['lists'] as $val)
|
471 |
+
{
|
472 |
+
if (strtolower($val['name']) == 'magento')
|
473 |
+
$array[] = $val['name'];
|
474 |
+
}
|
475 |
+
}
|
476 |
+
}
|
477 |
+
}
|
478 |
+
return $array;
|
479 |
+
}
|
480 |
+
/**
|
481 |
+
* folder create in Sendinblue after removing from Sendinblue
|
482 |
+
*/
|
483 |
+
public function createFolderCaseTwo()
|
484 |
+
{
|
485 |
+
$apikey = $this->api_key;
|
486 |
+
if($apikey == '')
|
487 |
+
return false;
|
488 |
+
$response = $this->checkApikey($apikey); // check api key is valid or not
|
489 |
+
if ($this->module_enable != 1 && $apikey == '' && $response['error'] != '' && $this->getSyncronizeStatus())
|
490 |
+
return false;
|
491 |
+
$result = $this->checkFolderList();
|
492 |
+
$list_name = 'magento';
|
493 |
+
$param = array();
|
494 |
+
$data = array();
|
495 |
+
$folder_id = $result[0];
|
496 |
+
$exist_list = $result[2];
|
497 |
+
if (empty($result[1]))
|
498 |
+
{
|
499 |
+
$params = array();
|
500 |
+
$params['foldername'] = 'magento';
|
501 |
+
$response = $this->callServer('ADDFOLDER', $params);
|
502 |
+
$folder_id = $response->folder_id;
|
503 |
+
$params = array();
|
504 |
+
$params['listname'] = $list_name;
|
505 |
+
$params['list_parent'] = $folder_id; //folder id
|
506 |
+
$list_response = $this->callServer('NEWLIST', $params);
|
507 |
+
$this->sendAllMailIDToSendin($list_response);
|
508 |
+
} elseif (empty($exist_list))
|
509 |
+
{
|
510 |
+
$params = array();
|
511 |
+
$params['listname'] = $list_name;
|
512 |
+
$params['list_parent'] = $folder_id; //folder id
|
513 |
+
$list_response = $this->callServer('NEWLIST', $params);
|
514 |
+
$this->sendAllMailIDToSendin($list_response);
|
515 |
+
}
|
516 |
+
}
|
517 |
+
/**
|
518 |
+
* Method is used getambassador Services.
|
519 |
+
*/
|
520 |
+
public function amdRequest($api)
|
521 |
+
{
|
522 |
+
$data['key'] = $api;
|
523 |
+
$data['campaign_id'] = '2147';
|
524 |
+
$data['campaign_short_code'] = 'zHzc';
|
525 |
+
|
526 |
+
return $list_response = $this->curlRequest($data);
|
527 |
+
|
528 |
+
}
|
529 |
+
|
530 |
+
/**
|
531 |
+
* folder create in Sendinblue after installing
|
532 |
+
*/
|
533 |
+
public function createFolderName($api_key)
|
534 |
+
{
|
535 |
+
$this->api_key = $api_key;
|
536 |
+
$this->createAttributesName();
|
537 |
+
$result = $this->checkFolderList();
|
538 |
+
if (empty($result[1]))
|
539 |
+
{
|
540 |
+
$params = array();
|
541 |
+
$params['foldername'] = 'magento';
|
542 |
+
$response = $this->callServer('ADDFOLDER', $params);
|
543 |
+
$folder_id = $response->folder_id;
|
544 |
+
$exist_list = '';
|
545 |
+
} else
|
546 |
+
{
|
547 |
+
$folder_id = $result[0];
|
548 |
+
$exist_list = $result[2];
|
549 |
+
}
|
550 |
+
$this->createNewList($folder_id, $exist_list);
|
551 |
+
$this->partnerMagento();
|
552 |
+
}
|
553 |
+
/**
|
554 |
+
* Method is used to add the partner's name in Sendinblue.
|
555 |
+
* In this case its "MAGENTO".
|
556 |
+
*/
|
557 |
+
public function partnerMagento()
|
558 |
+
{
|
559 |
+
$params = array();
|
560 |
+
$params['partner'] = 'MAGENTO';
|
561 |
+
$this->callServer('MAILIN-PARTNER', $params);
|
562 |
+
}
|
563 |
+
/**
|
564 |
+
* Creates a list by the name "magento" on user's Sendinblue account.
|
565 |
+
*/
|
566 |
+
public function createNewList($response, $exist_list)
|
567 |
+
{
|
568 |
+
if ($exist_list != '')
|
569 |
+
{
|
570 |
+
$date = date('dmY');
|
571 |
+
$list_name = 'magento_'.$date;
|
572 |
+
}
|
573 |
+
else
|
574 |
+
$list_name = 'magento';
|
575 |
+
$params = array();
|
576 |
+
$params['listname'] = $list_name;
|
577 |
+
$params['list_parent'] = $response;
|
578 |
+
$list_response = $this->callServer('NEWLIST', $params);
|
579 |
+
$this->sendAllMailIDToSendin($list_response);
|
580 |
+
$this->createAttributesName();
|
581 |
+
}
|
582 |
+
/**
|
583 |
+
* Create Normal, Transactional, Calculated and Global attributes and their values
|
584 |
+
* on Sendinblue platform. This is necessary for the Prestashop to add subscriber's details.
|
585 |
+
*/
|
586 |
+
public function createAttributesName()
|
587 |
+
{
|
588 |
+
$params = array();
|
589 |
+
$params['normal_attributes'] = 'PRENOM,text|NOM,text|SMS,text|CLIENT,number';
|
590 |
+
$params['transactional_attributes'] = 'ORDER_ID,id|ORDER_DATE,date|ORDER_PRICE,number';
|
591 |
+
$this->callServer('ATTRIBUTES_CREATION', $params);
|
592 |
+
}
|
593 |
+
/**
|
594 |
+
* Method is used to send all the subscribers from magento to
|
595 |
+
* Sendinblue for adding / updating purpose.
|
596 |
+
*/
|
597 |
+
public function sendAllMailIDToSendin($list)
|
598 |
+
{
|
599 |
+
$allemail = $this->getcustomers();
|
600 |
+
$params = array();
|
601 |
+
$params['webaction'] = 'MULTI-USERCREADIT';
|
602 |
+
$params['key'] = $this->api_key;
|
603 |
+
$params['attributes'] = $allemail;
|
604 |
+
$params['listid'] = $list->result;
|
605 |
+
$response = $this->callServer('MULTI-USERCREADIT', $params);
|
606 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
607 |
+
$sendin_switch->saveConfig('sendinblue/list', $list->result, 'default', 0);
|
608 |
+
}
|
609 |
+
/**
|
610 |
+
* Send SMS from Sendin.
|
611 |
+
*/
|
612 |
+
public function sendSmsApi($array)
|
613 |
+
{
|
614 |
+
$params = array();
|
615 |
+
$params['key'] = $this->api_key;
|
616 |
+
$params['to'] = $array['to'];
|
617 |
+
$params['from'] = $array['from'];
|
618 |
+
$params['text'] = $array['text'];
|
619 |
+
return $this->callServer('SENDSMS', $params);
|
620 |
+
}
|
621 |
+
|
622 |
+
public function sendOrder($mobile)
|
623 |
+
{
|
624 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
625 |
+
|
626 |
+
if (isset($mobile))
|
627 |
+
{
|
628 |
+
$arr = array();
|
629 |
+
$arr['to'] = $mobile;
|
630 |
+
$arr['from'] = Mage::getModel('sendinblue/sendinblue')->getSendSmsOrderSubject();
|
631 |
+
$arr['text'] = Mage::getModel('sendinblue/sendinblue')->getSendSmsmOrderMessage();
|
632 |
+
|
633 |
+
return $result = Mage::getModel('sendinblue/sendinblue')->sendSmsApi($arr);
|
634 |
+
}
|
635 |
+
|
636 |
+
}
|
637 |
+
public function notifySmsEmail()
|
638 |
+
{
|
639 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
640 |
+
if($this->getSmsCredit() < $this->getNotifyValueStatus() && $this->module_enable == 1 && $this->getNotifySmsStatus() == 1)
|
641 |
+
{
|
642 |
+
if($this->getNotifyCronStatus() == 0)
|
643 |
+
{
|
644 |
+
$sendin_switch->saveConfig('Sendin_Notify_Cron_Executed', 1, 'default', 0);
|
645 |
+
$locale = Mage::app()->getLocale()->getLocaleCode();
|
646 |
+
$email_template_variables = array();
|
647 |
+
if ($locale == 'fr_FR')
|
648 |
+
{
|
649 |
+
$email_template_variables['text0'] = ' [SendinBlue] Alerte: Vos crédits SMS seront bientôt épuisés';
|
650 |
+
$sender_name = 'SendinBlue';
|
651 |
+
$sender_email = 'contact@sendinblue.com';
|
652 |
+
}
|
653 |
+
else
|
654 |
+
{
|
655 |
+
$email_template_variables['text0'] = '[SendinBlue] Alert: You do not have enough credits SMS';
|
656 |
+
$sender_name = 'SendinBlue';
|
657 |
+
$sender_email = 'contact@sendinblue.com';
|
658 |
+
}
|
659 |
+
$email = $this->getNotifyEmailStatus();
|
660 |
+
|
661 |
+
$email_template = Mage::getModel('core/email_template')->loadDefault('notification_template');
|
662 |
+
$temp=$email_template->template_text;
|
663 |
+
$web_site = Mage::app()->getWebsite()->getName();
|
664 |
+
$credit = $this->getSmsCredit();
|
665 |
+
preg_match_all('#{(.*)}#', $temp, $match);
|
666 |
+
|
667 |
+
$temp_params = array(
|
668 |
+
'{site_name}'=>$web_site,
|
669 |
+
'{present_credit}'=>$credit
|
670 |
+
|
671 |
+
);
|
672 |
+
foreach($match[0] as $var=>$value){
|
673 |
+
$temp = preg_replace('#'.$value.'#',$temp_params[$value],$temp);
|
674 |
+
}
|
675 |
+
$email_template->template_text = $temp;
|
676 |
+
$email_template->getProcessedTemplate($email_template_variables);
|
677 |
+
$email_template->setSenderName($sender_name);
|
678 |
+
$email_template->setSenderEmail($sender_email);
|
679 |
+
$email_template->setTemplateSubject($email_template_variables['text0']);
|
680 |
+
return $email_template->send($email, '', $email_template_variables);
|
681 |
+
|
682 |
+
}
|
683 |
+
|
684 |
+
|
685 |
+
}
|
686 |
+
else
|
687 |
+
{
|
688 |
+
$sendin_switch->saveConfig('Sendin_Notify_Cron_Executed', 0, 'default', 0);
|
689 |
+
}
|
690 |
+
|
691 |
+
Mage::getSingleton('core/session')->addSuccess(Mage::helper('sendinblue')->__('Notification mail has been sent'));
|
692 |
+
}
|
693 |
+
/**
|
694 |
+
* show SMS credit from Sendinblue.
|
695 |
+
*/
|
696 |
+
public function getSmsCredit()
|
697 |
+
{
|
698 |
+
$params = array();
|
699 |
+
$params['key'] = $this->api_key;
|
700 |
+
$result = $this->callServer('USER-CURRENT-PLAN', $params);
|
701 |
+
if ($result['1']->plan_type == 'SMS')
|
702 |
+
return $result['1']->credits;
|
703 |
+
}
|
704 |
+
/**
|
705 |
+
* Method is used to send test email to the user.
|
706 |
+
*/
|
707 |
+
public function sendTestMail($email)
|
708 |
+
{
|
709 |
+
$locale = Mage::app()->getLocale()->getLocaleCode();
|
710 |
+
$email_template_variables = array();
|
711 |
+
if ($locale == 'fr_FR')
|
712 |
+
{
|
713 |
+
$email_template_variables['text0'] = '[SendinBlue SMTP] e-mail de test';
|
714 |
+
$sender_name = 'SendinBlue';
|
715 |
+
$sender_email = 'contact@sendinblue.com';
|
716 |
+
}
|
717 |
+
else
|
718 |
+
{
|
719 |
+
$email_template_variables['text0'] = '[SendinBlue SMTP] test email';
|
720 |
+
$sender_name = 'SendinBlue';
|
721 |
+
$sender_email = 'contact@sendinblue.com';
|
722 |
+
}
|
723 |
+
try {
|
724 |
+
$email_template = Mage::getModel('core/email_template')->loadDefault('custom_template');
|
725 |
+
$email_template->getProcessedTemplate($email_template_variables);
|
726 |
+
$email_template->setSenderName($sender_name);
|
727 |
+
$email_template->setSenderEmail($sender_email);
|
728 |
+
$email_template->setTemplateSubject($email_template_variables['text0']);
|
729 |
+
return $email_template->send($email, '', $email_template_variables);
|
730 |
+
}
|
731 |
+
catch(Exception $e) {
|
732 |
+
|
733 |
+
}
|
734 |
+
}
|
735 |
+
|
736 |
+
/**
|
737 |
+
* This method is used to fetch all users from the default customer table to list
|
738 |
+
* them in the Sendinblue magento module.
|
739 |
+
*/
|
740 |
+
public function getcustomers()
|
741 |
+
{
|
742 |
+
$data = array();
|
743 |
+
$collection = Mage::getModel('customer/customer')->getCollection()->addAttributeToSelect('email')->addAttributeToSelect('firstname')->addAttributeToSelect('lastname');
|
744 |
+
foreach ($collection as $customer)
|
745 |
+
{
|
746 |
+
|
747 |
+
$email = $customer->getData('email');
|
748 |
+
$firstname = $customer->getData('firstname');
|
749 |
+
$lastname = $customer->getData('lastname');
|
750 |
+
$cid = $customer->getData('entity_id');
|
751 |
+
|
752 |
+
$collectionAddress = Mage::getModel('customer/address')->getCollection()->addAttributeToSelect('telephone')->addAttributeToSelect('country_id')->addAttributeToFilter('parent_id',(int)$cid);
|
753 |
+
$telephone = '';
|
754 |
+
foreach ($collectionAddress as $customerPhno) {
|
755 |
+
$telephone = $customerPhno->getData('telephone');
|
756 |
+
$country_id = $customerPhno->getData('country_id');
|
757 |
+
}
|
758 |
+
|
759 |
+
$customer_select[$email] = array(
|
760 |
+
'email' => $email,
|
761 |
+
'PRENOM' => $firstname,
|
762 |
+
'NOM' => $lastname,
|
763 |
+
'SMS' => $telephone,
|
764 |
+
'country_id' => $country_id,
|
765 |
+
'CLIENT' => $cid>0?1:0
|
766 |
+
);
|
767 |
+
}
|
768 |
+
|
769 |
+
$newsletterArr = array();
|
770 |
+
$newsletter = Mage::getResourceModel('newsletter/subscriber_collection')->addFieldToFilter('subscriber_status', array('eq' => 1))->load();
|
771 |
+
$cnt = 0;
|
772 |
+
foreach ( $newsletter->getItems() as $subscriber )
|
773 |
+
{
|
774 |
+
$customer_id = $subscriber->getCustomerId();;
|
775 |
+
$subscriber_email = $subscriber->getSubscriberEmail();
|
776 |
+
$subscriber_status = $subscriber->getSubscriberStatus();
|
777 |
+
|
778 |
+
if ( !empty($customer_select[$subscriber_email]) ) {
|
779 |
+
$newsletterArr[$cnt] = $customer_select[$subscriber_email];
|
780 |
+
$newsletterArr[$cnt]['subscriber_status'] = $subscriber_status;
|
781 |
+
unset($customer_select[$subscriber_email]);
|
782 |
+
}
|
783 |
+
else {
|
784 |
+
$newsletterArr[$cnt] = array(
|
785 |
+
'email' => $subscriber_email,
|
786 |
+
'PRENOM' => '',
|
787 |
+
'NOM' => '',
|
788 |
+
'SMS' => '',
|
789 |
+
'country_id' => ''
|
790 |
+
);
|
791 |
+
$newsletterArr[$cnt]['CLIENT'] = $customer_id>0?1:0;
|
792 |
+
$newsletterArr[$cnt]['subscriber_status'] = $subscriber_status;
|
793 |
+
}
|
794 |
+
$cnt++;
|
795 |
+
}
|
796 |
+
|
797 |
+
return json_encode($newsletterArr);
|
798 |
+
}
|
799 |
+
/**
|
800 |
+
* This method is used to fetch all users from the default newsletter table to list
|
801 |
+
* them in the Sendinblue magento module.
|
802 |
+
*/
|
803 |
+
public function getNewsletterSubscribe($start, $per_page)
|
804 |
+
{
|
805 |
+
$collection = Mage::getModel('customer/customer')->getCollection()->addAttributeToSelect('email')->addAttributeToSelect('firstname')->addAttributeToSelect('lastname');
|
806 |
+
foreach ($collection as $customer)
|
807 |
+
{
|
808 |
+
|
809 |
+
$email = $customer->getData('email');
|
810 |
+
$firstname = $customer->getData('firstname');
|
811 |
+
$lastname = $customer->getData('lastname');
|
812 |
+
$cid = $customer->getData('entity_id');
|
813 |
+
|
814 |
+
$collectionAddress = Mage::getModel('customer/address')->getCollection()->addAttributeToSelect('telephone')->addAttributeToSelect('country_id')->addAttributeToFilter('parent_id',(int)$cid);
|
815 |
+
$telephone = '';
|
816 |
+
foreach ($collectionAddress as $customerPhno) {
|
817 |
+
$telephone = $customerPhno->getData('telephone');
|
818 |
+
$country_id = $customerPhno->getData('country_id');
|
819 |
+
}
|
820 |
+
|
821 |
+
$customer_select[$email] = array(
|
822 |
+
'email' => $email,
|
823 |
+
'firstname' => $firstname,
|
824 |
+
'lastname' => $lastname,
|
825 |
+
'telephone' => $telephone,
|
826 |
+
'country_id' => $country_id,
|
827 |
+
'customer_id' => $cid
|
828 |
+
);
|
829 |
+
}
|
830 |
+
|
831 |
+
$newsletterArr = array();
|
832 |
+
$newsletter = Mage::getResourceModel('newsletter/subscriber_collection')->load();
|
833 |
+
|
834 |
+
$cnt = 0;
|
835 |
+
foreach ( $newsletter->getItems() as $subscriber )
|
836 |
+
{
|
837 |
+
$customer_id = $subscriber->getCustomerId();;
|
838 |
+
$subscriber_email = $subscriber->getSubscriberEmail();
|
839 |
+
$subscriber_status = $subscriber->getSubscriberStatus();
|
840 |
+
|
841 |
+
if ( !empty($customer_select[$subscriber_email]) ) {
|
842 |
+
$newsletterArr[$cnt] = $customer_select[$subscriber_email];
|
843 |
+
$newsletterArr[$cnt]['subscriber_status'] = $subscriber_status;
|
844 |
+
unset($customer_select[$subscriber_email]);
|
845 |
+
}
|
846 |
+
else {
|
847 |
+
$newsletterArr[$cnt] = array(
|
848 |
+
'email' => $subscriber_email,
|
849 |
+
'firstname' => '',
|
850 |
+
'lastname' => '',
|
851 |
+
'telephone' => '',
|
852 |
+
'country_id' => ''
|
853 |
+
);
|
854 |
+
$newsletterArr[$cnt]['customer_id'] = $customer_id;
|
855 |
+
$newsletterArr[$cnt]['subscriber_status'] = $subscriber_status;
|
856 |
+
}
|
857 |
+
$cnt++;
|
858 |
+
}
|
859 |
+
|
860 |
+
if ( count($customer_select) > 0 ) {
|
861 |
+
foreach ( $customer_select as $cData ) {
|
862 |
+
$newsletterArr[$cnt] = $cData;
|
863 |
+
$newsletterArr[$cnt]['subscriber_status'] = 3;
|
864 |
+
$cnt++;
|
865 |
+
}
|
866 |
+
}
|
867 |
+
|
868 |
+
return array_slice($newsletterArr, $start, $per_page, true);
|
869 |
+
}
|
870 |
+
/**
|
871 |
+
* This method is used to fetch total count users from the default newsletter table to list
|
872 |
+
* them in the Sendinblue magento module.
|
873 |
+
*/
|
874 |
+
public function getTotalCount()
|
875 |
+
{
|
876 |
+
$collection = Mage::getModel('customer/customer')->getCollection()->addAttributeToSelect('email')->addAttributeToSelect('firstname')->addAttributeToSelect('lastname');
|
877 |
+
foreach ($collection as $customer)
|
878 |
+
{
|
879 |
+
|
880 |
+
$email = $customer->getData('email');
|
881 |
+
$firstname = $customer->getData('firstname');
|
882 |
+
$lastname = $customer->getData('lastname');
|
883 |
+
$cid = $customer->getData('entity_id');
|
884 |
+
|
885 |
+
$collectionAddress = Mage::getModel('customer/address')->getCollection()->addAttributeToSelect('telephone')->addAttributeToSelect('country_id')->addAttributeToFilter('parent_id',(int)$cid);
|
886 |
+
$telephone = '';
|
887 |
+
foreach ($collectionAddress as $customerPhno) {
|
888 |
+
$telephone = $customerPhno->getData('telephone');
|
889 |
+
$country_id = $customerPhno->getData('country_id');
|
890 |
+
}
|
891 |
+
|
892 |
+
$customer_select[$email] = array(
|
893 |
+
'email' => $email,
|
894 |
+
'firstname' => $firstname,
|
895 |
+
'lastname' => $lastname,
|
896 |
+
'telephone' => $telephone,
|
897 |
+
'country_id' => $country_id,
|
898 |
+
'customer_id' => $cid
|
899 |
+
);
|
900 |
+
}
|
901 |
+
|
902 |
+
$newsletterArr = array();
|
903 |
+
$newsletter = Mage::getResourceModel('newsletter/subscriber_collection')->load();
|
904 |
+
|
905 |
+
$cnt = 0;
|
906 |
+
foreach ( $newsletter->getItems() as $subscriber )
|
907 |
+
{
|
908 |
+
$customer_id = $subscriber->getCustomerId();;
|
909 |
+
$subscriber_email = $subscriber->getSubscriberEmail();
|
910 |
+
$subscriber_status = $subscriber->getSubscriberStatus();
|
911 |
+
|
912 |
+
if ( !empty($customer_select[$subscriber_email]) ) {
|
913 |
+
$newsletterArr[$cnt] = $customer_select[$subscriber_email];
|
914 |
+
$newsletterArr[$cnt]['subscriber_status'] = $subscriber_status;
|
915 |
+
unset($customer_select[$subscriber_email]);
|
916 |
+
}
|
917 |
+
else {
|
918 |
+
$newsletterArr[$cnt] = array(
|
919 |
+
'email' => $subscriber_email,
|
920 |
+
'firstname' => '',
|
921 |
+
'lastname' => '',
|
922 |
+
'telephone' => '',
|
923 |
+
'country_id' => ''
|
924 |
+
);
|
925 |
+
$newsletterArr[$cnt]['customer_id'] = $customer_id;
|
926 |
+
$newsletterArr[$cnt]['subscriber_status'] = $subscriber_status;
|
927 |
+
}
|
928 |
+
$cnt++;
|
929 |
+
}
|
930 |
+
|
931 |
+
if ( count($customer_select) > 0 ) {
|
932 |
+
foreach ( $customer_select as $cData ) {
|
933 |
+
$newsletterArr[$cnt] = $cData;
|
934 |
+
$newsletterArr[$cnt]['subscriber_status'] = 3;
|
935 |
+
$cnt++;
|
936 |
+
}
|
937 |
+
}
|
938 |
+
|
939 |
+
return count($newsletterArr);
|
940 |
+
}
|
941 |
+
/**
|
942 |
+
* This method is used to fetch total count unsubscribe users from the default newsletter table to list
|
943 |
+
* them in the Sendinblue magento module.
|
944 |
+
*/
|
945 |
+
public function getNewsletterUnSubscribeCount()
|
946 |
+
{
|
947 |
+
$sql = 'SELECT count(*) as totalcoutn FROM customer_entity CE
|
948 |
+
LEFT JOIN newsletter_subscriber
|
949 |
+
ON CE.entity_id=newsletter_subscriber.customer_id WHERE subscriber_status != 1 or subscriber_status is null';
|
950 |
+
$unsubs_count1 = Mage::getSingleton('core/resource') ->getConnection('core_read')->fetchRow($sql);
|
951 |
+
|
952 |
+
$sql = 'SELECT count(*) as totalcoutn FROM newsletter_subscriber WHERE customer_id = 0 AND subscriber_status = 3';
|
953 |
+
$unsubs_count2 = Mage::getSingleton('core/resource') ->getConnection('core_read')->fetchRow($sql);
|
954 |
+
return ($unsubs_count1['totalcoutn'] + $unsubs_count2['totalcoutn']);
|
955 |
+
|
956 |
+
}
|
957 |
+
/**
|
958 |
+
* This method is used to fetch total count subscribe users from the default newsletter table to list
|
959 |
+
* them in the Sendinblue magento module.
|
960 |
+
*/
|
961 |
+
public function getNewsletterSubscribeCount()
|
962 |
+
{
|
963 |
+
$sql = 'SELECT count(*) as totalvalue from newsletter_subscriber where subscriber_status = 1';
|
964 |
+
$data = Mage::getSingleton('core/resource') ->getConnection('core_read')->fetchRow($sql);
|
965 |
+
return $data['totalvalue'];
|
966 |
+
}
|
967 |
+
/**
|
968 |
+
* This method is used to check the subscriber's newsletter subscription status in Sendinblue
|
969 |
+
*/
|
970 |
+
public function checkUserSendinStatus($result)
|
971 |
+
{
|
972 |
+
$userstatus = array();
|
973 |
+
foreach ($result as $subscriber)
|
974 |
+
$userstatus[] = $subscriber['email'];
|
975 |
+
$email = implode(',', $userstatus);
|
976 |
+
$params = array();
|
977 |
+
$params['key'] = $this->api_key;
|
978 |
+
$params['email'] = $email;
|
979 |
+
$response = $this->callServer('USERS-STATUS', $params);
|
980 |
+
$response = json_encode($response);
|
981 |
+
return json_decode($response, true);
|
982 |
+
}
|
983 |
+
/**
|
984 |
+
* Fetches the SMTP and order tracking details
|
985 |
+
*/
|
986 |
+
public function TrackingSmtp()
|
987 |
+
{
|
988 |
+
$params = array();
|
989 |
+
$params['key'] = $this->api_key;
|
990 |
+
return $this->callServer('TRACKINGDATA', $params);
|
991 |
+
}
|
992 |
+
/**
|
993 |
+
* CURL function to send request to the Sendinblue API server
|
994 |
+
*/
|
995 |
+
public function callServer($method, $params)
|
996 |
+
{
|
997 |
+
$host = $this->api_url;
|
998 |
+
$params['key'] = (isset($params['key']) && !empty($params['key'])) ? $params['key'] : $this->api_key;
|
999 |
+
$params['webaction'] = $method;
|
1000 |
+
$this->error_message = '';
|
1001 |
+
$this->error_code = '';
|
1002 |
+
$response = $this->curlRequest($params);
|
1003 |
+
return json_decode($response);
|
1004 |
+
}
|
1005 |
+
/**
|
1006 |
+
* CURL function to send request to the Sendinblue API server
|
1007 |
+
*/
|
1008 |
+
public function curlRequest($data)
|
1009 |
+
{
|
1010 |
+
$url1 = $this->api_url;
|
1011 |
+
$url2 = $this->api_url2;
|
1012 |
+
if (array_key_exists('campaign_short_code', $data))
|
1013 |
+
$url = $url2; // WS URL
|
1014 |
+
else
|
1015 |
+
$url = $url1; // WS URL
|
1016 |
+
$ch = curl_init();
|
1017 |
+
$ndata = '';
|
1018 |
+
if (is_array($data))
|
1019 |
+
{
|
1020 |
+
foreach ($data as $key => $value)
|
1021 |
+
$ndata .= $key.'='.urlencode($value).'&';
|
1022 |
+
} else
|
1023 |
+
$ndata = $data;
|
1024 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
|
1025 |
+
'Expect:'
|
1026 |
+
));
|
1027 |
+
|
1028 |
+
$ndata = trim($ndata,'&');
|
1029 |
+
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
1030 |
+
curl_setopt($ch, CURLOPT_POST, 1);
|
1031 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, $ndata);
|
1032 |
+
curl_setopt($ch, CURLOPT_HEADER, 0);
|
1033 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
1034 |
+
curl_setopt($ch, CURLOPT_URL, $url);
|
1035 |
+
$data2 = curl_exec($ch);
|
1036 |
+
curl_close($ch);
|
1037 |
+
return $data2;
|
1038 |
+
}
|
1039 |
+
|
1040 |
+
public function removeOldEntry()
|
1041 |
+
{
|
1042 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
1043 |
+
$sendin_switch->saveConfig('sendinblue/smtp/status', '');
|
1044 |
+
$sendin_switch->saveConfig('sendinblue/smtp/authentication', '');
|
1045 |
+
$sendin_switch->saveConfig('sendinblue/smtp/username', '');
|
1046 |
+
$sendin_switch->saveConfig('sendinblue/smtp/password', '');
|
1047 |
+
$sendin_switch->saveConfig('sendinblue/smtp/host', '');
|
1048 |
+
$sendin_switch->saveConfig('sendinblue/smtp/port', '');
|
1049 |
+
$sendin_switch->saveConfig('sendinblue/smtp/ssl', '');
|
1050 |
+
$sendin_switch->saveConfig('sendinblue/smtp/option', '');
|
1051 |
+
$sendin_switch->saveConfig('sendinblue/tracking/code', '');
|
1052 |
+
}
|
1053 |
+
protected function _uninstallResourceDb($version)
|
1054 |
+
{
|
1055 |
+
Mage::dispatchEvent('module_uninstall', array('resource' => $this->_resourceName));
|
1056 |
+
|
1057 |
+
$this->_modifyResourceDb(self::TYPE_DB_UNINSTALL, $version, '');
|
1058 |
+
return $this;
|
1059 |
+
}
|
1060 |
+
/**
|
1061 |
+
* API config value from SendinBlue.
|
1062 |
+
*/
|
1063 |
+
public function getApiConfigValue()
|
1064 |
+
{
|
1065 |
+
$data = array();
|
1066 |
+
$data['key'] = $this->api_key;
|
1067 |
+
$data['webaction'] = 'PLUGIN-CONFIG';
|
1068 |
+
$value_config = $this->curlRequest($data);
|
1069 |
+
$result = json_decode($value_config);
|
1070 |
+
return $result;
|
1071 |
+
}
|
1072 |
+
}
|
app/code/local/Sendinblue/Sendinblue/Model/Status.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
|
11 |
+
class Sendinblue_Sendinblue_Model_Status extends Varien_Object
|
12 |
+
{
|
13 |
+
const STATUS_ENABLED = 1;
|
14 |
+
const STATUS_DISABLED = 2;
|
15 |
+
|
16 |
+
static public function getOptionArray()
|
17 |
+
{
|
18 |
+
return array(
|
19 |
+
self::STATUS_ENABLED => Mage::helper('sendinblue')->__('Enabled'),
|
20 |
+
self::STATUS_DISABLED => Mage::helper('sendinblue')->__('Disabled')
|
21 |
+
);
|
22 |
+
}
|
23 |
+
}
|
app/code/local/Sendinblue/Sendinblue/controllers/Adminhtml/MyformController.php
ADDED
@@ -0,0 +1,520 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
|
11 |
+
class Sendinblue_Sendinblue_Adminhtml_MyformController extends Mage_Adminhtml_Controller_Action
|
12 |
+
{
|
13 |
+
public function indexAction()
|
14 |
+
{
|
15 |
+
Mage::getModel('sendinblue/sendinblue')->createFolderCaseTwo();
|
16 |
+
$this->loadLayout();
|
17 |
+
$this->renderLayout();
|
18 |
+
|
19 |
+
}
|
20 |
+
public function syncronizepostAction()
|
21 |
+
{
|
22 |
+
$post = $this->getRequest()->getPost();
|
23 |
+
try {
|
24 |
+
if (empty($post))
|
25 |
+
Mage::throwException($this->__('Invalid form data.'));
|
26 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
27 |
+
if (isset($post['syncronizeSubmit']))
|
28 |
+
{
|
29 |
+
$sendin_switch->saveConfig('sendinblue/syncronize', $post['syncronize']);
|
30 |
+
if (!empty($post['sendin_list']))
|
31 |
+
{
|
32 |
+
$list = implode('|', $post['sendin_list']);
|
33 |
+
$sendin_switch->saveConfig('sendinblue/list', $list);
|
34 |
+
$message = $this->__('Your setting has been successfully saved');
|
35 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($message);
|
36 |
+
} else
|
37 |
+
{
|
38 |
+
$message = $this->__('Please select a list');
|
39 |
+
Mage::getSingleton('adminhtml/session')->addError($message);
|
40 |
+
}
|
41 |
+
}
|
42 |
+
}
|
43 |
+
catch (Exception $e)
|
44 |
+
{
|
45 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
46 |
+
}
|
47 |
+
$this->_redirect('*/*');
|
48 |
+
}
|
49 |
+
public function apikeypostAction()
|
50 |
+
{
|
51 |
+
$post = $this->getRequest()->getPost();
|
52 |
+
try {
|
53 |
+
if (empty($post))
|
54 |
+
Mage::throwException($this->__('Invalid form data.'));
|
55 |
+
elseif (isset($post['sendin_apikey']) && !empty($post['sendin_apikey']))
|
56 |
+
{
|
57 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
58 |
+
$result = Mage::getModel('sendinblue/sendinblue')->checkApikey(trim($post['sendin_apikey']));
|
59 |
+
if (empty($result['error']))
|
60 |
+
{
|
61 |
+
Mage::getModel('sendinblue/sendinblue')->amdRequest(trim($post['sendin_apikey']));
|
62 |
+
$get_key = Mage::getModel('sendinblue/sendinblue')->getApiKey();
|
63 |
+
if ($get_key == '')
|
64 |
+
Mage::getModel('sendinblue/sendinblue')->createFolderName($post['sendin_apikey']);
|
65 |
+
elseif ($get_key != $post['sendin_apikey'])
|
66 |
+
Mage::getModel('sendinblue/sendinblue')->createFolderName($post['sendin_apikey']);
|
67 |
+
|
68 |
+
$sendin_switch->saveConfig('sendinblue/api', trim($post['sendin_apikey']));
|
69 |
+
$sendin_switch->saveConfig('sendinblue/enabled', $post['sendin_api_status']);
|
70 |
+
$sendin_switch->saveConfig('sendinblue/syncronize', 1);
|
71 |
+
Mage::getModel('sendinblue/sendinblue')->removeOldEntry();
|
72 |
+
$message = $this->__('Your setting has been successfully saved');
|
73 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($message);
|
74 |
+
} else if (isset($result['error']))
|
75 |
+
{
|
76 |
+
$message = $this->__('You have entered wrong api key');
|
77 |
+
Mage::getSingleton('core/session')->addError($message);
|
78 |
+
}
|
79 |
+
}
|
80 |
+
}
|
81 |
+
catch (Exception $e)
|
82 |
+
{
|
83 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
84 |
+
}
|
85 |
+
$this->_redirect('*/*');
|
86 |
+
}
|
87 |
+
public function sendmailAction()
|
88 |
+
{
|
89 |
+
$post = $this->getRequest()->getPost();
|
90 |
+
|
91 |
+
try {
|
92 |
+
if (empty($post))
|
93 |
+
Mage::throwException($this->__('Invalid form data.'));
|
94 |
+
elseif (isset($post['SmtpSubmit']) && !empty($post['SmtpSubmit']))
|
95 |
+
{
|
96 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
97 |
+
$get_key = Mage::getModel('sendinblue/sendinblue')->getApiKey();
|
98 |
+
$result = Mage::getModel('sendinblue/sendinblue')->checkApikey($get_key);
|
99 |
+
if (empty($result['error']))
|
100 |
+
{
|
101 |
+
$smtp_response = Mage::getModel('sendinblue/sendinblue')->TrackingSmtp(); // get tracking code
|
102 |
+
|
103 |
+
if ($smtp_response->result->relay_data->status == 'enabled')
|
104 |
+
{
|
105 |
+
$sendin_switch->saveConfig('sendinblue/smtp/authentication', 'crammd5', 'default', 0);
|
106 |
+
$sendin_switch->saveConfig('sendinblue/smtp/username', $smtp_response->result->relay_data->data->username, 'default', 0);
|
107 |
+
$sendin_switch->saveConfig('sendinblue/smtp/password', $smtp_response->result->relay_data->data->password, 'default', 0);
|
108 |
+
$sendin_switch->saveConfig('sendinblue/smtp/host', $smtp_response->result->relay_data->data->relay, 'default', 0);
|
109 |
+
$sendin_switch->saveConfig('sendinblue/smtp/port', $smtp_response->result->relay_data->data->port, 'default', 0);
|
110 |
+
$sendin_switch->saveConfig('sendinblue/smtp/ssl', 'null', 'default', 0);
|
111 |
+
$sendin_switch->saveConfig('sendinblue/smtp/option', 'smtp', 'default', 0);
|
112 |
+
if ($post['email'])
|
113 |
+
{
|
114 |
+
$data11 = Mage::getModel('sendinblue/sendinblue')->sendTestMail($post['email']);
|
115 |
+
$resArr = json_decode($data11, true);
|
116 |
+
if ($resArr['result'] != true) {
|
117 |
+
$message = $this->__('Mail not sent').' '.$this->__(trim($resArr['error']));
|
118 |
+
Mage::getSingleton('adminhtml/session')->addError($message);
|
119 |
+
}
|
120 |
+
else {
|
121 |
+
$message = $this->__('Mail sent!');
|
122 |
+
Mage::getSingleton('core/session')->addSuccess($message);
|
123 |
+
|
124 |
+
}
|
125 |
+
|
126 |
+
} else
|
127 |
+
{
|
128 |
+
$message = $this->__('Mail not sent');
|
129 |
+
Mage::getSingleton('adminhtml/session')->addError($message);
|
130 |
+
}
|
131 |
+
}
|
132 |
+
else
|
133 |
+
{
|
134 |
+
$sendin_switch->saveConfig('sendinblue/smtp/status', 0);
|
135 |
+
$message = $this->__('Your SMTP account is not activated and therefore you can not use SendinBlue SMTP. For more informations, Please contact our support to: contact@sendinblue.com');
|
136 |
+
Mage::getSingleton('adminhtml/session')->addError($message);
|
137 |
+
|
138 |
+
}
|
139 |
+
} elseif (isset($responce['error']))
|
140 |
+
{
|
141 |
+
$message = $this->__('You have entered wrong api key');
|
142 |
+
Mage::getSingleton('core/session')->addError($message);
|
143 |
+
}
|
144 |
+
}
|
145 |
+
}
|
146 |
+
catch (Exception $e)
|
147 |
+
{
|
148 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
149 |
+
}
|
150 |
+
$this->_redirect('*/*');
|
151 |
+
}
|
152 |
+
public function sendorderAction()
|
153 |
+
{
|
154 |
+
$post = $this->getRequest()->getPost();
|
155 |
+
try
|
156 |
+
{
|
157 |
+
if (empty($post))
|
158 |
+
Mage::throwException($this->__('Invalid form data.'));
|
159 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
160 |
+
if (isset($post['sender_order_save']))
|
161 |
+
{
|
162 |
+
$sender_order = $post['sender_order'];
|
163 |
+
$sender_order_message = $post['sender_order_message'];
|
164 |
+
|
165 |
+
if (isset($sender_order) && $sender_order == '')
|
166 |
+
{
|
167 |
+
$message = $this->__('Please fill the message field');
|
168 |
+
Mage::getSingleton('adminhtml/session')->addError($message);
|
169 |
+
}
|
170 |
+
else if ($sender_order_message == '')
|
171 |
+
{
|
172 |
+
$message = $this->__('Please fill the message field');
|
173 |
+
Mage::getSingleton('adminhtml/session')->addError($message);
|
174 |
+
}
|
175 |
+
else
|
176 |
+
{
|
177 |
+
$sendin_switch->saveConfig('sendinblue/Sendin_Sender_Order', $sender_order);
|
178 |
+
$sendin_switch->saveConfig('sendinblue/Sendin_Sender_Order_Message', $sender_order_message);
|
179 |
+
$message = $this->__('Your setting has been successfully saved');
|
180 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($message);
|
181 |
+
}
|
182 |
+
|
183 |
+
}
|
184 |
+
}
|
185 |
+
catch (Exception $e)
|
186 |
+
{
|
187 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
188 |
+
}
|
189 |
+
$this->_redirect('*/*');
|
190 |
+
}
|
191 |
+
public function sendshipmentAction()
|
192 |
+
{
|
193 |
+
$post = $this->getRequest()->getPost();
|
194 |
+
try {
|
195 |
+
if (empty($post))
|
196 |
+
Mage::throwException($this->__('Invalid form data.'));
|
197 |
+
|
198 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
199 |
+
if (isset($post['sender_shipment_save']))
|
200 |
+
{
|
201 |
+
$sender_shipment = $post['sender_shipment'];
|
202 |
+
$sender_shipment_message = $post['sender_shipment_message'];
|
203 |
+
|
204 |
+
if (isset($sender_shipment) && $sender_shipment == '')
|
205 |
+
{
|
206 |
+
$message = $this->__('Please fill the message field');
|
207 |
+
Mage::getSingleton('adminhtml/session')->addError($message);
|
208 |
+
}
|
209 |
+
else if ($sender_shipment_message == '')
|
210 |
+
{
|
211 |
+
$message = $this->__('Please fill the message field');
|
212 |
+
Mage::getSingleton('adminhtml/session')->addError($message);
|
213 |
+
}
|
214 |
+
else
|
215 |
+
{
|
216 |
+
$sendin_switch->saveConfig('sendinblue/Sendin_Sender_Shipment', $sender_shipment);
|
217 |
+
$sendin_switch->saveConfig('sendinblue/Sendin_Sender_Shipment_Message', $sender_shipment_message);
|
218 |
+
$message = $this->__('Your setting has been successfully saved');
|
219 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($message);
|
220 |
+
}
|
221 |
+
|
222 |
+
}
|
223 |
+
}
|
224 |
+
catch (Exception $e)
|
225 |
+
{
|
226 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
227 |
+
}
|
228 |
+
$this->_redirect('*/*');
|
229 |
+
}
|
230 |
+
|
231 |
+
/**
|
232 |
+
* This method is called when the user test Shipment Sms and hits the submit button.
|
233 |
+
*/
|
234 |
+
|
235 |
+
public function sendordertestAction()
|
236 |
+
{
|
237 |
+
$post = $this->getRequest()->getPost();
|
238 |
+
try {
|
239 |
+
if (empty($post))
|
240 |
+
Mage::throwException($this->__('Invalid form data.'));
|
241 |
+
|
242 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
243 |
+
|
244 |
+
if (isset($post['sender_order_submit']))
|
245 |
+
{
|
246 |
+
$arr = array();
|
247 |
+
$arr['to'] = $post['sender_order_number'];
|
248 |
+
$arr['from'] = Mage::getModel('sendinblue/sendinblue')->getSendSmsOrderSubject();
|
249 |
+
$arr['text'] = Mage::getModel('sendinblue/sendinblue')->getSendSmsmOrderMessage();
|
250 |
+
|
251 |
+
$result = Mage::getModel('sendinblue/sendinblue')->sendSmsApi($arr);
|
252 |
+
|
253 |
+
if (isset($result->status) && $result->status == 'OK')
|
254 |
+
{
|
255 |
+
$message = $this->__('Message has been sent successfully');
|
256 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($message);
|
257 |
+
}
|
258 |
+
else
|
259 |
+
{
|
260 |
+
$message = $this->__('Message has not been sent successfully');
|
261 |
+
Mage::getSingleton('adminhtml/session')->addError($message);
|
262 |
+
}
|
263 |
+
|
264 |
+
}
|
265 |
+
}
|
266 |
+
catch (Exception $e)
|
267 |
+
{
|
268 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
269 |
+
}
|
270 |
+
$this->_redirect('*/*');
|
271 |
+
}
|
272 |
+
|
273 |
+
|
274 |
+
/**
|
275 |
+
* This method is called when the user test Shipment Sms and hits the submit button.
|
276 |
+
*/
|
277 |
+
|
278 |
+
public function sendshipmenttestAction()
|
279 |
+
{
|
280 |
+
$post = $this->getRequest()->getPost();
|
281 |
+
try {
|
282 |
+
if (empty($post))
|
283 |
+
Mage::throwException($this->__('Invalid form data.'));
|
284 |
+
|
285 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
286 |
+
|
287 |
+
if (isset($post['sender_shipment_submit']))
|
288 |
+
{
|
289 |
+
$arr = array();
|
290 |
+
$arr['to'] = $post['sender_shipment_number'];
|
291 |
+
$arr['from'] = Mage::getModel('sendinblue/sendinblue')->getSendSmsShipingSubject();
|
292 |
+
$arr['text'] = Mage::getModel('sendinblue/sendinblue')->getSendSmsShipingMessage();
|
293 |
+
|
294 |
+
$result = Mage::getModel('sendinblue/sendinblue')->sendSmsApi($arr);
|
295 |
+
|
296 |
+
if (isset($result->status) && $result->status == 'OK')
|
297 |
+
{
|
298 |
+
$message = $this->__('Message has been sent successfully');
|
299 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($message);
|
300 |
+
}
|
301 |
+
else
|
302 |
+
{
|
303 |
+
$message = $this->__('Message has not been sent successfully');
|
304 |
+
Mage::getSingleton('adminhtml/session')->addError($message);
|
305 |
+
}
|
306 |
+
|
307 |
+
}
|
308 |
+
}
|
309 |
+
catch (Exception $e)
|
310 |
+
{
|
311 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
312 |
+
}
|
313 |
+
$this->_redirect('*/*');
|
314 |
+
}
|
315 |
+
|
316 |
+
public function sendnotifysmsAction()
|
317 |
+
{
|
318 |
+
$post = $this->getRequest()->getPost();
|
319 |
+
try {
|
320 |
+
if (empty($post))
|
321 |
+
Mage::throwException($this->__('Invalid form data.'));
|
322 |
+
|
323 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
324 |
+
|
325 |
+
if (isset($post['notify_sms_mail']))
|
326 |
+
{
|
327 |
+
$sendin_switch->saveConfig('sendinblue/Sendin_Notify_Value', $post['sendin_notify_value']);
|
328 |
+
$sendin_switch->saveConfig('sendinblue/Sendin_Notify_Email', $post['sendin_notify_email']);
|
329 |
+
$message = $this->__('Your setting has been successfully saved');
|
330 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($message);
|
331 |
+
}
|
332 |
+
}
|
333 |
+
catch (Exception $e)
|
334 |
+
{
|
335 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
336 |
+
}
|
337 |
+
$this->_redirect('*/*');
|
338 |
+
|
339 |
+
}
|
340 |
+
|
341 |
+
|
342 |
+
public function sendcampaignAction()
|
343 |
+
{
|
344 |
+
$post = $this->getRequest()->getPost();
|
345 |
+
try {
|
346 |
+
if (empty($post))
|
347 |
+
Mage::throwException($this->__('Invalid form data.'));
|
348 |
+
|
349 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
350 |
+
|
351 |
+
if (isset($post['sender_campaign_save']) && $post['Sendin_Sms_Choice'] == 1)
|
352 |
+
{
|
353 |
+
$arr = array();
|
354 |
+
$arr['to'] = $post['singlechoice'];
|
355 |
+
$arr['from'] = $post['sender_campaign'];
|
356 |
+
$arr['text'] = $post['sender_campaign_message'];
|
357 |
+
|
358 |
+
$result = Mage::getModel('sendinblue/sendinblue')->sendSmsApi($arr);
|
359 |
+
if (isset($result->status) && $result->status == 'OK')
|
360 |
+
{
|
361 |
+
$message = $this->__('Message has been sent successfully');
|
362 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($message);
|
363 |
+
}
|
364 |
+
else
|
365 |
+
{
|
366 |
+
$message = $this->__('Message has not been sent successfully');
|
367 |
+
Mage::getSingleton('adminhtml/session')->addError($message);
|
368 |
+
}
|
369 |
+
|
370 |
+
|
371 |
+
}else if(isset($post['sender_campaign_save']) && $post['Sendin_Sms_Choice'] == 0)
|
372 |
+
{
|
373 |
+
$smscredit = Mage::getModel('sendinblue/sendinblue')->getSmsCredit();
|
374 |
+
$collection = Mage::getModel('customer/customer')
|
375 |
+
->getCollection()
|
376 |
+
->addAttributeToSelect('*')
|
377 |
+
->joinAttribute('shipping_telephone', 'customer_address/telephone', 'default_shipping', null, 'left')
|
378 |
+
->joinAttribute('shipping_country_code', 'customer_address/country_id', 'default_shipping', null, 'left');
|
379 |
+
|
380 |
+
$results = array();
|
381 |
+
foreach ($collection as $customer) {
|
382 |
+
$results[] = $customer->toArray();
|
383 |
+
}
|
384 |
+
|
385 |
+
//$count = count($result);
|
386 |
+
foreach ($results as $i => $result)
|
387 |
+
{
|
388 |
+
|
389 |
+
if(!empty($result['shipping_telephone']))
|
390 |
+
{
|
391 |
+
$sql = 'SELECT * FROM sendinblue_country_codes WHERE iso_code = "'.$result['shipping_country_code'].'" ';
|
392 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_read');
|
393 |
+
$data = $connection->fetchRow($sql);
|
394 |
+
$number = Mage::getModel('sendinblue/sendinblue')->checkMobileNumber($result['shipping_telephone'],$data['country_prefix']);
|
395 |
+
$firstname = $result['firstname'];
|
396 |
+
$lastname = $result['lastname'];
|
397 |
+
$msgbody = $post['sender_campaign_message'];
|
398 |
+
$fname = str_replace('{first_name}', $firstname, $msgbody);
|
399 |
+
$msgbody = str_replace('{last_name}', $lastname."\r\n", $fname);
|
400 |
+
$arr = array();
|
401 |
+
$arr['to'] = $number;
|
402 |
+
$arr['from'] = $post['sender_campaign'];
|
403 |
+
$arr['text'] = $msgbody;
|
404 |
+
Mage::getModel('sendinblue/sendinblue')->sendSmsApi($arr);
|
405 |
+
}
|
406 |
+
}
|
407 |
+
if ($smscredit >= 1)
|
408 |
+
{
|
409 |
+
$message = $this->__('Message has been sent successfully');
|
410 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($message);
|
411 |
+
}
|
412 |
+
else
|
413 |
+
{
|
414 |
+
$message = $this->__('Message has not been sent successfully');
|
415 |
+
Mage::getSingleton('adminhtml/session')->addError($message);
|
416 |
+
}
|
417 |
+
|
418 |
+
}
|
419 |
+
else if(isset($post['sender_campaign_save']) && $post['Sendin_Sms_Choice'] == 2)
|
420 |
+
{
|
421 |
+
$smscredit = Mage::getModel('sendinblue/sendinblue')->getSmsCredit();
|
422 |
+
$collection = Mage::getModel('customer/customer')->getCollection()->addAttributeToSelect('email')->addAttributeToSelect('firstname')->addAttributeToSelect('lastname');
|
423 |
+
foreach ($collection as $customer)
|
424 |
+
{
|
425 |
+
|
426 |
+
$email = $customer->getData('email');
|
427 |
+
$firstname = $customer->getData('firstname');
|
428 |
+
$lastname = $customer->getData('lastname');
|
429 |
+
$cid = $customer->getData('entity_id');
|
430 |
+
|
431 |
+
$collectionAddress = Mage::getModel('customer/address')->getCollection()->addAttributeToSelect('telephone')->addAttributeToSelect('country_id')->addAttributeToFilter('parent_id',(int)$cid);
|
432 |
+
$telephone = '';
|
433 |
+
foreach ($collectionAddress as $customerPhno) {
|
434 |
+
$telephone = $customerPhno->getData('telephone');
|
435 |
+
$country_id = $customerPhno->getData('country_id');
|
436 |
+
}
|
437 |
+
|
438 |
+
$customer_select[$email] = array(
|
439 |
+
'email' => $email,
|
440 |
+
'firstname' => $firstname,
|
441 |
+
'lastname' => $lastname,
|
442 |
+
'telephone' => $telephone,
|
443 |
+
'country_id' => $country_id,
|
444 |
+
'customer_id' => $cid
|
445 |
+
);
|
446 |
+
}
|
447 |
+
|
448 |
+
$newsletterArr = array();
|
449 |
+
$newsletter = Mage::getResourceModel('newsletter/subscriber_collection')->load();
|
450 |
+
$cnt = 0;
|
451 |
+
foreach ( $newsletter->getItems() as $subscriber )
|
452 |
+
{
|
453 |
+
$customer_id = $subscriber->getCustomerId();;
|
454 |
+
$subscriber_email = $subscriber->getSubscriberEmail();
|
455 |
+
$subscriber_status = $subscriber->getSubscriberStatus();
|
456 |
+
|
457 |
+
if ( !empty($customer_select[$subscriber_email]) ) {
|
458 |
+
$newsletterArr[$cnt] = $customer_select[$subscriber_email];
|
459 |
+
$newsletterArr[$cnt]['subscriber_status'] = $subscriber_status;
|
460 |
+
unset($customer_select[$subscriber_email]);
|
461 |
+
}
|
462 |
+
else {
|
463 |
+
$newsletterArr[$cnt] = array(
|
464 |
+
'email' => $subscriber_email,
|
465 |
+
'firstname' => '',
|
466 |
+
'lastname' => '',
|
467 |
+
'telephone' => '',
|
468 |
+
'country_id' => ''
|
469 |
+
);
|
470 |
+
$newsletterArr[$cnt]['customer_id'] = $customer_id;
|
471 |
+
$newsletterArr[$cnt]['subscriber_status'] = $subscriber_status;
|
472 |
+
}
|
473 |
+
$cnt++;
|
474 |
+
}
|
475 |
+
foreach($newsletterArr as $result)
|
476 |
+
{
|
477 |
+
|
478 |
+
|
479 |
+
if(!empty($result['telephone']))
|
480 |
+
{
|
481 |
+
|
482 |
+
$sql = 'SELECT * FROM sendinblue_country_codes WHERE iso_code = "'.$result['country_id'].'" ';
|
483 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_read');
|
484 |
+
$data = $connection->fetchRow($sql);
|
485 |
+
$number = Mage::getModel('sendinblue/sendinblue')->checkMobileNumber($result['telephone'],$data['country_prefix']);
|
486 |
+
$msgbody = $post['sender_campaign_message'];
|
487 |
+
$firstname = $result['firstname'];
|
488 |
+
$lastname = $result['lastname'];
|
489 |
+
$fname = str_replace('{first_name}', $firstname, $msgbody);
|
490 |
+
$msgbody = str_replace('{last_name}', $lastname."\r\n", $fname);
|
491 |
+
$arr = array();
|
492 |
+
$arr['to'] = $number;
|
493 |
+
$arr['from'] = $post['sender_campaign'];
|
494 |
+
$arr['text'] = $msgbody;
|
495 |
+
Mage::getModel('sendinblue/sendinblue')->sendSmsApi($arr);
|
496 |
+
|
497 |
+
|
498 |
+
}
|
499 |
+
}
|
500 |
+
if ($smscredit >= 1)
|
501 |
+
{
|
502 |
+
$message = $this->__('Message has been sent successfully');
|
503 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($message);
|
504 |
+
}
|
505 |
+
else
|
506 |
+
{
|
507 |
+
$message = $this->__('Message has not been sent successfully');
|
508 |
+
Mage::getSingleton('adminhtml/session')->addError($message);
|
509 |
+
}
|
510 |
+
}
|
511 |
+
|
512 |
+
}
|
513 |
+
catch (Exception $e)
|
514 |
+
{
|
515 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
516 |
+
}
|
517 |
+
$this->_redirect('*/*');
|
518 |
+
}
|
519 |
+
|
520 |
+
}
|
app/code/local/Sendinblue/Sendinblue/controllers/Adminhtml/NotifyController.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
|
11 |
+
class Sendinblue_Sendinblue_Adminhtml_NotifyController extends Mage_Adminhtml_Controller_Action
|
12 |
+
{
|
13 |
+
public function indexAction()
|
14 |
+
{
|
15 |
+
$responce = Mage::getModel('sendinblue/sendinblue')->notifySmsEmail();
|
16 |
+
$this->loadLayout()->_setActiveMenu('system')->_addContent()->renderLayout();
|
17 |
+
$msg_disp = $this->__('The CRON has been well executed.');
|
18 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($msg_disp);
|
19 |
+
$this->_redirect("sendinblue/adminhtml_myform/");
|
20 |
+
}
|
21 |
+
}
|
app/code/local/Sendinblue/Sendinblue/controllers/Adminhtml/SyncController.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
|
11 |
+
class Sendinblue_Sendinblue_Adminhtml_SyncController extends Mage_Adminhtml_Controller_Action
|
12 |
+
{
|
13 |
+
public function indexAction()
|
14 |
+
{
|
15 |
+
$responce = Mage::getModel('sendinblue/sendinblue')->syncData();
|
16 |
+
$this->loadLayout()->_setActiveMenu('system')->_addContent()->renderLayout();
|
17 |
+
$msg_disp = $this->__('The CRON has been well executed.');
|
18 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($msg_disp);
|
19 |
+
$this->_redirect("sendinblue/adminhtml_myform/");
|
20 |
+
}
|
21 |
+
}
|
app/code/local/Sendinblue/Sendinblue/controllers/AjaxController.php
ADDED
@@ -0,0 +1,473 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
|
11 |
+
class Sendinblue_Sendinblue_AjaxController extends Mage_Core_Controller_Front_Action
|
12 |
+
{
|
13 |
+
public function indexAction()
|
14 |
+
{
|
15 |
+
$this->loadLayout();
|
16 |
+
$this->renderLayout();
|
17 |
+
Mage::getModel('sendinblue/sendinblue')->createFolderCaseTwo();
|
18 |
+
}
|
19 |
+
|
20 |
+
public function campaignAction()
|
21 |
+
{
|
22 |
+
$post = $this->getRequest()->getPost();
|
23 |
+
try {
|
24 |
+
if (empty($post))
|
25 |
+
echo Mage::throwException($this->__('Invalid form data.'));
|
26 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
27 |
+
$sendin_switch->saveConfig('sendinblue/sms/campaign', $post['campaignSetting']);
|
28 |
+
echo $this->__('Your setting has been successfully saved');
|
29 |
+
}
|
30 |
+
catch (Exception $e)
|
31 |
+
{
|
32 |
+
echo $this->__($e->getMessage());
|
33 |
+
}
|
34 |
+
}
|
35 |
+
public function orderAction()
|
36 |
+
{
|
37 |
+
$post = $this->getRequest()->getPost();
|
38 |
+
try {
|
39 |
+
if (empty($post))
|
40 |
+
Mage::throwException($this->__('Invalid form data.'));
|
41 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
42 |
+
$sendin_switch->saveConfig('sendinblue/sms/order', $post['orderSetting']);
|
43 |
+
echo $this->__('Your setting has been successfully saved');
|
44 |
+
}
|
45 |
+
catch (Exception $e)
|
46 |
+
{
|
47 |
+
echo $this->__($e->getMessage());
|
48 |
+
}
|
49 |
+
}
|
50 |
+
public function creditAction()
|
51 |
+
{
|
52 |
+
$post = $this->getRequest()->getPost();
|
53 |
+
try {
|
54 |
+
if (empty($post))
|
55 |
+
Mage::throwException($this->__('Invalid form data.'));
|
56 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
57 |
+
$sendin_switch->saveConfig('sendinblue/sms/credit', $post['sms_credit']);
|
58 |
+
echo $this->__('Your setting has been successfully saved');
|
59 |
+
}
|
60 |
+
catch (Exception $e)
|
61 |
+
{
|
62 |
+
echo $this->__($e->getMessage());
|
63 |
+
}
|
64 |
+
}
|
65 |
+
public function shipingAction()
|
66 |
+
{
|
67 |
+
$post = $this->getRequest()->getPost();
|
68 |
+
try {
|
69 |
+
if (empty($post))
|
70 |
+
Mage::throwException($this->__('Invalid form data.'));
|
71 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
72 |
+
$sendin_switch->saveConfig('sendinblue/sms/shiping', $post['shipingSetting']);
|
73 |
+
echo $this->__('Your setting has been successfully saved');
|
74 |
+
}
|
75 |
+
catch (Exception $e)
|
76 |
+
{
|
77 |
+
echo $this->__($e->getMessage());
|
78 |
+
}
|
79 |
+
}
|
80 |
+
public function codepostAction()
|
81 |
+
{
|
82 |
+
$post = $this->getRequest()->getPost();
|
83 |
+
try {
|
84 |
+
if (empty($post))
|
85 |
+
Mage::throwException($this->__('Invalid form data.'));
|
86 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
87 |
+
$sendin_switch->saveConfig('sendinblue/tracking/code', $post['script']);
|
88 |
+
echo $this->__('Your setting has been successfully saved');
|
89 |
+
}
|
90 |
+
catch (Exception $e)
|
91 |
+
{
|
92 |
+
echo $this->__($e->getMessage());
|
93 |
+
}
|
94 |
+
}
|
95 |
+
public function smtppostAction()
|
96 |
+
{
|
97 |
+
$post = $this->getRequest()->getPost();
|
98 |
+
try {
|
99 |
+
if (empty($post))
|
100 |
+
Mage::throwException($this->__('Invalid form data.'));
|
101 |
+
else
|
102 |
+
{
|
103 |
+
$sendin_switch = new Mage_Core_Model_Config();
|
104 |
+
$get_key = Mage::getModel('sendinblue/sendinblue')->getApiKey();
|
105 |
+
$result = Mage::getModel('sendinblue/sendinblue')->checkApikey($get_key);
|
106 |
+
if (empty($result['error']))
|
107 |
+
{
|
108 |
+
$sendin_switch->saveConfig('sendinblue/smtp/status', $post['smtptest']);
|
109 |
+
$smtp_response = Mage::getModel('sendinblue/sendinblue')->TrackingSmtp(); // get tracking code
|
110 |
+
if ($smtp_response->result->relay_data->status == 'enabled')
|
111 |
+
{
|
112 |
+
$sendin_switch->saveConfig('sendinblue/smtp/authentication', 'crammd5', 'default', 0);
|
113 |
+
$sendin_switch->saveConfig('sendinblue/smtp/username', $smtp_response->result->relay_data->data->username, 'default', 0);
|
114 |
+
$sendin_switch->saveConfig('sendinblue/smtp/password', $smtp_response->result->relay_data->data->password, 'default', 0);
|
115 |
+
$sendin_switch->saveConfig('sendinblue/smtp/host', $smtp_response->result->relay_data->data->relay, 'default', 0);
|
116 |
+
$sendin_switch->saveConfig('sendinblue/smtp/port', $smtp_response->result->relay_data->data->port, 'default', 0);
|
117 |
+
$sendin_switch->saveConfig('sendinblue/smtp/ssl', 'null', 'default', 0);
|
118 |
+
$sendin_switch->saveConfig('sendinblue/smtp/option', 'smtp', 'default', 0);
|
119 |
+
echo $this->__('Your setting has been successfully saved');
|
120 |
+
}else
|
121 |
+
{
|
122 |
+
$sendin_switch->saveConfig('sendinblue/smtp/status', 0);
|
123 |
+
echo $this->__('Your SMTP account is not activated and therefore you can\'t use SendinBlue SMTP. For more informations, please contact our support to: contact@sendinblue.com');
|
124 |
+
}
|
125 |
+
}elseif (isset($responce['error']))
|
126 |
+
echo $this->__('You have entered wrong api key');
|
127 |
+
}
|
128 |
+
}
|
129 |
+
catch (Exception $e)
|
130 |
+
{
|
131 |
+
echo $this->__($e->getMessage());
|
132 |
+
}
|
133 |
+
}
|
134 |
+
public function ajaxcontentAction()
|
135 |
+
{
|
136 |
+
$post = $this->getRequest()->getPost();
|
137 |
+
try {
|
138 |
+
if (empty($post))
|
139 |
+
Mage::throwException($this->__('Invalid form data.'));
|
140 |
+
else
|
141 |
+
{
|
142 |
+
$locale = Mage::app()->getLocale()->getLocaleCode();
|
143 |
+
if ($locale == 'fr_FR')
|
144 |
+
{
|
145 |
+
$title1 = 'Inscrire le contact';
|
146 |
+
$title2 = 'Désinscrire le contact';
|
147 |
+
$first = 'Première page';
|
148 |
+
$last = 'Dernière page';
|
149 |
+
$previous = 'Précédente';
|
150 |
+
$next = 'Suivante';
|
151 |
+
$yes = 'oui';
|
152 |
+
$no = 'non';
|
153 |
+
} else
|
154 |
+
{
|
155 |
+
$title1 = 'Unsubscribe the contact';
|
156 |
+
$title2 = 'Subscribe the contact';
|
157 |
+
$first = 'First';
|
158 |
+
$last = 'Last';
|
159 |
+
$previous = 'Previous';
|
160 |
+
$next = 'Next';
|
161 |
+
$yes = 'yes';
|
162 |
+
$no = 'no';
|
163 |
+
}
|
164 |
+
$page = (int)$post['page'];
|
165 |
+
$cur_page = $page;
|
166 |
+
$page -= 1;
|
167 |
+
$per_page = 20;
|
168 |
+
$previous_btn = true;
|
169 |
+
$next_btn = true;
|
170 |
+
$first_btn = true;
|
171 |
+
$last_btn = true;
|
172 |
+
$start = $page * $per_page;
|
173 |
+
$count = Mage::getModel('sendinblue/sendinblue')->getTotalCount();
|
174 |
+
$no_of_paginations = ceil($count / $per_page);
|
175 |
+
if ($cur_page >= 7)
|
176 |
+
{
|
177 |
+
$start_loop = $cur_page - 3;
|
178 |
+
if ($no_of_paginations > $cur_page + 3)
|
179 |
+
$end_loop = $cur_page + 3;
|
180 |
+
else if ($cur_page <= $no_of_paginations && $cur_page > $no_of_paginations - 6)
|
181 |
+
{
|
182 |
+
$start_loop = $no_of_paginations - 6;
|
183 |
+
$end_loop = $no_of_paginations;
|
184 |
+
} else
|
185 |
+
$end_loop = $no_of_paginations;
|
186 |
+
} else
|
187 |
+
{
|
188 |
+
$start_loop = 1;
|
189 |
+
if ($no_of_paginations > 7)
|
190 |
+
$end_loop = 7;
|
191 |
+
else
|
192 |
+
$end_loop = $no_of_paginations;
|
193 |
+
}
|
194 |
+
$collection = Mage::getModel('sendinblue/sendinblue')->getNewsletterSubscribe($start, $per_page);
|
195 |
+
$sendin_status = Mage::getModel('sendinblue/sendinblue')->checkUserSendinStatus($collection);
|
196 |
+
$sendin_result = $sendin_status['result'];
|
197 |
+
if (count($collection) != 0)
|
198 |
+
{
|
199 |
+
$i = 1;
|
200 |
+
$msg = '';
|
201 |
+
foreach ($collection as $subscriber)
|
202 |
+
{
|
203 |
+
$email = $subscriber['email'];
|
204 |
+
$phone = !empty($subscriber['telephone'])?$subscriber['telephone'] : '';
|
205 |
+
$country_id = !empty($subscriber['country_id'])?$subscriber['country_id'] : '';
|
206 |
+
if($phone != '')
|
207 |
+
{
|
208 |
+
$sql = 'SELECT * FROM sendinblue_country_codes WHERE iso_code = "'.$country_id.'" ';
|
209 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_read');
|
210 |
+
$data = $connection->fetchRow($sql);
|
211 |
+
$phone = Mage::getModel('sendinblue/sendinblue')->checkMobileNumber($phone,$data['country_prefix']);
|
212 |
+
}
|
213 |
+
if ($subscriber['customer_id'] != 0)
|
214 |
+
$client = $yes;
|
215 |
+
else
|
216 |
+
$client = $no;
|
217 |
+
if ($sendin_result[$email] === 1 || $sendin_result[$email] === null)
|
218 |
+
$show_status = 0;
|
219 |
+
if ($sendin_result[$email] === 0)
|
220 |
+
$show_status = 1;
|
221 |
+
if ($subscriber['subscriber_status'] != 3)
|
222 |
+
$img_magento = '<img src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN).'adminhtml/default/default/sendinblue/images/enabled.gif" >';
|
223 |
+
else
|
224 |
+
$img_magento = '<img src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN).'adminhtml/default/default/sendinblue/images/disabled.gif" >';
|
225 |
+
if ($show_status)
|
226 |
+
$img_sendin = '<img src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN).'adminhtml/default/default/sendinblue/images/enabled.gif"
|
227 |
+
id="ajax_contact_status_'.$i.'" title="'.$title1.'" >';
|
228 |
+
else
|
229 |
+
$img_sendin = '<img src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN).'adminhtml/default/default/sendinblue/images/disabled.gif"
|
230 |
+
id="ajax_contact_status_'.$i.'" title="'.$title2.'" >';
|
231 |
+
$msg .= '<tr class="even pointer"><td class="a-left">'.$email.'</td><td class="a-left">'.$client.'</td><td class="a-left">'.$phone.'</td><td class="a-left">'.$img_magento.'</td>
|
232 |
+
<td class="a-left last"><a status="'.$show_status.'" email="'.$email.'" class="ajax_contacts_href" href="javascript:void(0)">
|
233 |
+
'.$img_sendin.'</a></td></tr>';
|
234 |
+
$i++;
|
235 |
+
}
|
236 |
+
}
|
237 |
+
$msg_paging = '';
|
238 |
+
$msg_paging .= '<tr><td colspan="7"><div class="pagination"><ul class="pull-left">';
|
239 |
+
if ($first_btn && $cur_page > 1)
|
240 |
+
$msg_paging .= '<li p="1" class="active">'.$first.'</li>';
|
241 |
+
else if ($first_btn)
|
242 |
+
$msg_paging .= '<li p="1" class="inactive">'.$first.'</li>';
|
243 |
+
if ($previous_btn && $cur_page > 1)
|
244 |
+
{
|
245 |
+
$pre = $cur_page - 1;
|
246 |
+
$msg_paging .= '<li p="'.$pre.'" class="active">'.$previous.'</li>';
|
247 |
+
} else if ($previous_btn)
|
248 |
+
$msg_paging .= '<li class="inactive">'.$previous.'</li>';
|
249 |
+
for ($i = $start_loop; $i <= $end_loop; $i++)
|
250 |
+
{
|
251 |
+
if ($cur_page == $i)
|
252 |
+
$msg_paging .= '<li p="'.$i.'" style="color:#fff;background-color:#000000;" class="active">'.$i.'</li>';
|
253 |
+
else
|
254 |
+
$msg_paging .= '<li p="'.$i.'" class="active">'.$i.'</li>';
|
255 |
+
}
|
256 |
+
if ($next_btn && $cur_page < $no_of_paginations)
|
257 |
+
{
|
258 |
+
$nex = $cur_page + 1;
|
259 |
+
$msg_paging .= '<li p="'.$nex.'" class="active">'.$next.'</li>';
|
260 |
+
} else if ($next_btn)
|
261 |
+
$msg_paging .= '<li class="inactive">'.$next.'</li>';
|
262 |
+
if ($last_btn && $cur_page < $no_of_paginations)
|
263 |
+
$msg_paging .= '<li p="'.$no_of_paginations.'" class="active">'.$last.'</li>';
|
264 |
+
else if ($last_btn)
|
265 |
+
$msg_paging .= '<li p="'.$no_of_paginations.'" class="inactive">'.$last.'</li>';
|
266 |
+
if ($count != 0)
|
267 |
+
echo $msg.$msg_paging.'</td></tr>';
|
268 |
+
}
|
269 |
+
}catch (Exception $e)
|
270 |
+
{
|
271 |
+
echo $this->__($e->getMessage());
|
272 |
+
}
|
273 |
+
}
|
274 |
+
public function ajaxupdateAction()
|
275 |
+
{
|
276 |
+
$post = $this->getRequest()->getPost();
|
277 |
+
try {
|
278 |
+
if (empty($post))
|
279 |
+
Mage::throwException($this->__('Invalid form data.'));
|
280 |
+
$temp_sub_status = ($post['newsletter'] == 0) ? 1 : 3;
|
281 |
+
if (!empty($post['email']) && $post['newsletter'] == 0)
|
282 |
+
{
|
283 |
+
$responce = Mage::getModel('sendinblue/sendinblue')->emailSubscribe($post['email']);
|
284 |
+
$responce_data = json_decode($responce);
|
285 |
+
$sql = 'SELECT * from customer_entity where email = "'.$post['email'].'" ';
|
286 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_read');
|
287 |
+
$custdata = $connection->fetchRow($sql);
|
288 |
+
|
289 |
+
if ($responce_data->errorMsg == 'User not exists')
|
290 |
+
{
|
291 |
+
if ($custdata['entity_id'] != '')
|
292 |
+
{
|
293 |
+
$collectionAddress = Mage::getModel('customer/address')->getCollection()->addAttributeToSelect('telephone')->addAttributeToSelect('country_id')->addAttributeToFilter('parent_id',(int)$custdata['entity_id']);
|
294 |
+
$telephone = '';
|
295 |
+
foreach ($collectionAddress as $customerPhno) {
|
296 |
+
$telephone = $customerPhno->getData('telephone');
|
297 |
+
$country_id = $customerPhno->getData('country_id');
|
298 |
+
|
299 |
+
}
|
300 |
+
|
301 |
+
$customer = Mage::getModel("customer/customer");
|
302 |
+
$customer->setWebsiteId(Mage::app()->getWebsite()->getId());
|
303 |
+
$customer->loadByEmail($post['email']); //load customer by email id
|
304 |
+
$customer_name = $customer->getData();
|
305 |
+
|
306 |
+
if (!empty($telephone))
|
307 |
+
{
|
308 |
+
$sql = 'SELECT * FROM sendinblue_country_codes WHERE iso_code = "'.$country_id.'" ';
|
309 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_read');
|
310 |
+
$data = $connection->fetchRow($sql);
|
311 |
+
$number = Mage::getModel('sendinblue/sendinblue')->checkMobileNumber($telephone,$data['country_prefix']);
|
312 |
+
}
|
313 |
+
$client = 1;
|
314 |
+
$telephone = (isset($number))? $number : '';
|
315 |
+
$firstname = (isset($customer_name['firstname']))?$customer_name['firstname'] : '';
|
316 |
+
$lasttname = (isset($customer_name['lastname']))?$customer_name['lastname'] : '';
|
317 |
+
|
318 |
+
$extra = $firstname.'|'.$lasttname.'|'.$client.'|'.$telephone;
|
319 |
+
|
320 |
+
$responce = Mage::getModel('sendinblue/sendinblue')->emailAdd($post['email'], $extra);
|
321 |
+
|
322 |
+
}
|
323 |
+
else
|
324 |
+
{
|
325 |
+
$client = 0;
|
326 |
+
$extra = ''.'|'.''.'|'.$client.'|'.'';
|
327 |
+
$responce = Mage::getModel('sendinblue/sendinblue')->emailAdd($post['email'], $extra);
|
328 |
+
}
|
329 |
+
}
|
330 |
+
$sql = 'SELECT * from newsletter_subscriber where subscriber_email = "'.$post['email'].'" ';
|
331 |
+
$custdatanews = $connection->fetchRow($sql);
|
332 |
+
if ($custdata['entity_id'] !='' && $custdatanews['subscriber_email'] == '' )
|
333 |
+
{
|
334 |
+
|
335 |
+
$connection->query("insert into newsletter_subscriber(store_id, customer_id, subscriber_email, subscriber_status)
|
336 |
+
values('".$custdata['store_id']."','".$custdata['entity_id']."','".$custdata['email']."','1')");
|
337 |
+
|
338 |
+
}
|
339 |
+
else
|
340 |
+
{
|
341 |
+
$costomer_data = Mage::getModel('newsletter/subscriber')->loadByEmail($post['email']);
|
342 |
+
$costomer_data->setStatus($temp_sub_status);
|
343 |
+
$costomer_data->setIsStatusChanged(true);
|
344 |
+
$costomer_data->save();
|
345 |
+
}
|
346 |
+
|
347 |
+
}
|
348 |
+
else{
|
349 |
+
$responce = Mage::getModel('sendinblue/sendinblue')->emailDelete($post['email']);
|
350 |
+
$costomer_data = Mage::getModel('newsletter/subscriber')->loadByEmail($post['email']);
|
351 |
+
$sql = 'SELECT * from customer_entity where email = "'.$post['email'].'" ';
|
352 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_read');
|
353 |
+
$custdata = $connection->fetchRow($sql);
|
354 |
+
|
355 |
+
if (!$costomer_data->getStoreId())
|
356 |
+
{
|
357 |
+
$costomer_data->setSubscriberEmail($custdata['email']);
|
358 |
+
$costomer_data->setCustomerId($custdata['entity_id']);
|
359 |
+
$costomer_data->setStoreId($custdata['store_id']);
|
360 |
+
}
|
361 |
+
$costomer_data->setStatus($temp_sub_status);
|
362 |
+
$costomer_data->setIsStatusChanged(true);
|
363 |
+
$costomer_data->save();
|
364 |
+
}
|
365 |
+
}
|
366 |
+
catch (Exception $e)
|
367 |
+
{
|
368 |
+
echo $this->__($e->getMessage());
|
369 |
+
}
|
370 |
+
}
|
371 |
+
|
372 |
+
public function ajaxordersmsAction($sender, $message, $number)
|
373 |
+
{
|
374 |
+
$post = $this->getRequest()->getPost();
|
375 |
+
try {
|
376 |
+
if (empty($post))
|
377 |
+
Mage::throwException($this->__('Invalid form data.'));
|
378 |
+
$number = $post['number'];
|
379 |
+
$charone = substr($number, 0, 1);
|
380 |
+
$chartwo = substr($number, 0, 2);
|
381 |
+
if ($charone == '0' && $chartwo == '00')
|
382 |
+
$number = $number;
|
383 |
+
|
384 |
+
if (isset($number))
|
385 |
+
{
|
386 |
+
$arr = array();
|
387 |
+
$arr['to'] = $number;
|
388 |
+
$arr['from'] = $post['sender'];
|
389 |
+
$arr['text'] = $post['message'];
|
390 |
+
|
391 |
+
$result = Mage::getModel('sendinblue/sendinblue')->sendSmsApi($arr);
|
392 |
+
if (isset($result->status) && $result->status == 'OK')
|
393 |
+
echo 'OK';
|
394 |
+
else
|
395 |
+
echo 'KO';
|
396 |
+
}
|
397 |
+
|
398 |
+
}
|
399 |
+
catch (Exception $e)
|
400 |
+
{
|
401 |
+
echo $this->__($e->getMessage());
|
402 |
+
}
|
403 |
+
}
|
404 |
+
|
405 |
+
public function ajaxordershippedAction($sender,$message,$number)
|
406 |
+
{
|
407 |
+
$post = $this->getRequest()->getPost();
|
408 |
+
try {
|
409 |
+
if (empty($post))
|
410 |
+
Mage::throwException($this->__('Invalid form data.'));
|
411 |
+
$number = $post['number'];
|
412 |
+
$charone = substr($number, 0, 1);
|
413 |
+
$chartwo = substr($number, 0, 2);
|
414 |
+
|
415 |
+
if ($charone == '0' && $chartwo == '00')
|
416 |
+
$number = $number;
|
417 |
+
|
418 |
+
|
419 |
+
if (isset($number))
|
420 |
+
{
|
421 |
+
$arr = array();
|
422 |
+
$arr['to'] = $number;
|
423 |
+
$arr['from'] = $post['sender'];
|
424 |
+
$arr['text'] = $post['message'];
|
425 |
+
|
426 |
+
$result = Mage::getModel('sendinblue/sendinblue')->sendSmsApi($arr);
|
427 |
+
if (isset($result->status) && $result->status == 'OK')
|
428 |
+
echo 'OK';
|
429 |
+
else
|
430 |
+
echo 'KO';exit;
|
431 |
+
}
|
432 |
+
|
433 |
+
}
|
434 |
+
catch (Exception $e)
|
435 |
+
{
|
436 |
+
echo $this->__($e->getMessage());
|
437 |
+
}
|
438 |
+
}
|
439 |
+
|
440 |
+
public function ajaxsmscampaignAction($sender,$message,$number)
|
441 |
+
{
|
442 |
+
$post = $this->getRequest()->getPost();
|
443 |
+
try {
|
444 |
+
if (empty($post))
|
445 |
+
Mage::throwException($this->__('Invalid form data.'));
|
446 |
+
$number = $post['number'];
|
447 |
+
$charone = substr($number, 0, 1);
|
448 |
+
$chartwo = substr($number, 0, 2);
|
449 |
+
if ($charone == '0' && $chartwo == '00')
|
450 |
+
$number = $number;
|
451 |
+
|
452 |
+
if (isset($number))
|
453 |
+
{
|
454 |
+
$arr = array();
|
455 |
+
$arr['to'] = $number;
|
456 |
+
$arr['from'] = $post['sender'];
|
457 |
+
$arr['text'] = $post['message'];
|
458 |
+
$result = Mage::getModel('sendinblue/sendinblue')->sendSmsApi($arr);
|
459 |
+
$locale = Mage::app()->getLocale()->getLocaleCode();
|
460 |
+
if (isset($result->status) && $result->status == 'OK')
|
461 |
+
echo 'OK';
|
462 |
+
else
|
463 |
+
echo 'KO';
|
464 |
+
}
|
465 |
+
|
466 |
+
}
|
467 |
+
catch (Exception $e)
|
468 |
+
{
|
469 |
+
echo $this->__($e->getMessage());
|
470 |
+
}
|
471 |
+
}
|
472 |
+
|
473 |
+
}
|
app/code/local/Sendinblue/Sendinblue/controllers/IndexController.php
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
|
11 |
+
class Sendinblue_Sendinblue_IndexController extends Mage_Core_Controller_Front_Action
|
12 |
+
{
|
13 |
+
public function indexAction()
|
14 |
+
{
|
15 |
+
$this->loadLayout();
|
16 |
+
$this->renderLayout();
|
17 |
+
}
|
18 |
+
}
|
app/code/local/Sendinblue/Sendinblue/etc/adminhtml.xml
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<acl>
|
4 |
+
<resources>
|
5 |
+
<admin>
|
6 |
+
<children>
|
7 |
+
<system>
|
8 |
+
<children>
|
9 |
+
<config>
|
10 |
+
<children>
|
11 |
+
<sendinblue translate="title" module="sendinblue">
|
12 |
+
<title>SendinBlue Settings</title>
|
13 |
+
</sendinblue>
|
14 |
+
</children>
|
15 |
+
</config>
|
16 |
+
</children>
|
17 |
+
</system>
|
18 |
+
</children>
|
19 |
+
</admin>
|
20 |
+
</resources>
|
21 |
+
</acl>
|
22 |
+
</config>
|
app/code/local/Sendinblue/Sendinblue/etc/config.xml
ADDED
@@ -0,0 +1,325 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Sendinblue_Sendinblue>
|
5 |
+
<version>1.1.0</version>
|
6 |
+
<platform>ce</platform>
|
7 |
+
</Sendinblue_Sendinblue>
|
8 |
+
</modules>
|
9 |
+
<adminhtml>
|
10 |
+
<menu>
|
11 |
+
<system>
|
12 |
+
<children>
|
13 |
+
<mails translate="title" module="sendinblue">
|
14 |
+
<title>SendinBlue Settings</title>
|
15 |
+
<action>sendinblue/adminhtml_myform</action>
|
16 |
+
<sort_order>0</sort_order>
|
17 |
+
|
18 |
+
</mails>
|
19 |
+
</children>
|
20 |
+
</system>
|
21 |
+
</menu>
|
22 |
+
<translate></translate>
|
23 |
+
<events>
|
24 |
+
|
25 |
+
<!--use for delete customer (post) -->
|
26 |
+
<controller_action_postdispatch_adminhtml_customer_massDelete>
|
27 |
+
<observers>
|
28 |
+
<sendinblue_admin_customer_massDelete>
|
29 |
+
<type>singleton</type>
|
30 |
+
<class>Sendinblue_Sendinblue_Model_Observer</class>
|
31 |
+
<method>adminCustomerDelete</method>
|
32 |
+
</sendinblue_admin_customer_massDelete>
|
33 |
+
</observers>
|
34 |
+
</controller_action_postdispatch_adminhtml_customer_massDelete>
|
35 |
+
|
36 |
+
<!--use for delete newsletter subcriber (post) -->
|
37 |
+
<controller_action_postdispatch_adminhtml_newsletter_subscriber_massDelete>
|
38 |
+
<observers>
|
39 |
+
<sendinblue_admin_newsletter_massDelete>
|
40 |
+
<type>singleton</type>
|
41 |
+
<class>Sendinblue_Sendinblue_Model_Observer</class>
|
42 |
+
<method>adminSubcriberDelete</method>
|
43 |
+
</sendinblue_admin_newsletter_massDelete>
|
44 |
+
</observers>
|
45 |
+
</controller_action_postdispatch_adminhtml_newsletter_subscriber_massDelete>
|
46 |
+
|
47 |
+
<!--use for subscribe customer (subscribe customer for newsletter from admin) (post) -->
|
48 |
+
<controller_action_postdispatch_adminhtml_customer_massSubscribe>
|
49 |
+
<observers>
|
50 |
+
<sendinblue_admin_customer_massSubscribe>
|
51 |
+
<type>singleton</type>
|
52 |
+
<class>Sendinblue_Sendinblue_Model_Observer</class>
|
53 |
+
<method>adminCustomerSubscribe</method>
|
54 |
+
</sendinblue_admin_customer_massSubscribe>
|
55 |
+
</observers>
|
56 |
+
</controller_action_postdispatch_adminhtml_customer_massSubscribe>
|
57 |
+
|
58 |
+
<!--use for unsubscribe customer (post) -->
|
59 |
+
<controller_action_postdispatch_adminhtml_customer_massUnsubscribe>
|
60 |
+
<observers>
|
61 |
+
<sendinblue_admin_customer_massUnsubscribe>
|
62 |
+
<type>singleton</type>
|
63 |
+
<class>Sendinblue_Sendinblue_Model_Observer</class>
|
64 |
+
<method>adminCustomerDelete</method>
|
65 |
+
</sendinblue_admin_customer_massUnsubscribe>
|
66 |
+
</observers>
|
67 |
+
</controller_action_postdispatch_adminhtml_customer_massUnsubscribe>
|
68 |
+
|
69 |
+
<!--use for unsubscribe newsletter subscriber (post) -->
|
70 |
+
<controller_action_predispatch_adminhtml_newsletter_subscriber_massUnsubscribe>
|
71 |
+
<observers>
|
72 |
+
<sendinblue_admin_newsletter_massUnsubscribe>
|
73 |
+
<type>singleton</type>
|
74 |
+
<class>Sendinblue_Sendinblue_Model_Observer</class>
|
75 |
+
<method>adminSubcriberDelete</method>
|
76 |
+
</sendinblue_admin_newsletter_massUnsubscribe>
|
77 |
+
</observers>
|
78 |
+
</controller_action_predispatch_adminhtml_newsletter_subscriber_massUnsubscribe>
|
79 |
+
|
80 |
+
|
81 |
+
<sales_order_save_after>
|
82 |
+
<observers>
|
83 |
+
<sendinblue_update_data>
|
84 |
+
<type>singleton</type>
|
85 |
+
<class>Sendinblue_Sendinblue_Model_Observer</class>
|
86 |
+
<method>updateStatus</method>
|
87 |
+
</sendinblue_update_data>
|
88 |
+
</observers>
|
89 |
+
</sales_order_save_after>
|
90 |
+
|
91 |
+
</events>
|
92 |
+
<acl>
|
93 |
+
<resources>
|
94 |
+
<all>
|
95 |
+
<title>Allow Everything</title>
|
96 |
+
</all>
|
97 |
+
<admin>
|
98 |
+
<children>
|
99 |
+
<mails>
|
100 |
+
<children>
|
101 |
+
<mails>
|
102 |
+
<title>Sendinblue</title>
|
103 |
+
</mails>
|
104 |
+
</children>
|
105 |
+
</mails>
|
106 |
+
<system>
|
107 |
+
<children>
|
108 |
+
<config>
|
109 |
+
<children>
|
110 |
+
<sendinblue>
|
111 |
+
<title>Sendinblue</title>
|
112 |
+
</sendinblue>
|
113 |
+
</children>
|
114 |
+
</config>
|
115 |
+
</children>
|
116 |
+
</system>
|
117 |
+
</children>
|
118 |
+
<children>
|
119 |
+
<system>
|
120 |
+
<children>
|
121 |
+
<mails translate="title" module="sendinblue">
|
122 |
+
<title>Sendinblue Settings</title>
|
123 |
+
<sort_order>0</sort_order>
|
124 |
+
<action></action>
|
125 |
+
</mails>
|
126 |
+
</children>
|
127 |
+
</system>
|
128 |
+
</children>
|
129 |
+
</admin>
|
130 |
+
</resources>
|
131 |
+
</acl>
|
132 |
+
<translate>
|
133 |
+
<modules>
|
134 |
+
<Sendinblue_Sendinblue>
|
135 |
+
<files>
|
136 |
+
<default>Sendinblue.csv</default>
|
137 |
+
</files>
|
138 |
+
</Sendinblue_Sendinblue>
|
139 |
+
</modules>
|
140 |
+
</translate>
|
141 |
+
|
142 |
+
|
143 |
+
<layout>
|
144 |
+
<updates>
|
145 |
+
<sendinblue_sendinblue>
|
146 |
+
<file>sendinblue.xml</file>
|
147 |
+
</sendinblue_sendinblue>
|
148 |
+
</updates>
|
149 |
+
</layout>
|
150 |
+
|
151 |
+
</adminhtml>
|
152 |
+
<admin>
|
153 |
+
<routers>
|
154 |
+
<sendinblue_admin>
|
155 |
+
<use>admin</use>
|
156 |
+
<args>
|
157 |
+
<module>Sendinblue_Sendinblue</module>
|
158 |
+
<frontName>sendinblue</frontName>
|
159 |
+
</args>
|
160 |
+
</sendinblue_admin>
|
161 |
+
</routers>
|
162 |
+
<children>
|
163 |
+
<system>
|
164 |
+
<children>
|
165 |
+
<mails translate="label" module="sendinblue">
|
166 |
+
<title>Sendinblue Settings</title>
|
167 |
+
<sort_order>40</sort_order>
|
168 |
+
<action>adminhtml/system_config/edit/section/sendinblue</action>
|
169 |
+
</mails>
|
170 |
+
</children>
|
171 |
+
</system>
|
172 |
+
</children>
|
173 |
+
</admin>
|
174 |
+
<global>
|
175 |
+
<events>
|
176 |
+
<newsletter_subscriber_save_commit_after>
|
177 |
+
<observers>
|
178 |
+
<sendinblue_sendinblue_model_observer>
|
179 |
+
<class>Sendinblue_Sendinblue_Model_Observer</class>
|
180 |
+
<method>subscribedToNewsletter</method>
|
181 |
+
</sendinblue_sendinblue_model_observer>
|
182 |
+
</observers>
|
183 |
+
</newsletter_subscriber_save_commit_after>
|
184 |
+
<customer_save_after>
|
185 |
+
<observers>
|
186 |
+
<sendinblue_update_data>
|
187 |
+
<type>singleton</type>
|
188 |
+
<class>Sendinblue_Sendinblue_Model_Observer</class>
|
189 |
+
<method>updateNewObserver</method>
|
190 |
+
</sendinblue_update_data>
|
191 |
+
</observers>
|
192 |
+
</customer_save_after>
|
193 |
+
</events>
|
194 |
+
|
195 |
+
<template>
|
196 |
+
<email>
|
197 |
+
<custom_template>
|
198 |
+
<label>Sendinblue custom email module</label>
|
199 |
+
<file>sendinsmtp_conf.html</file>
|
200 |
+
<type>html</type>
|
201 |
+
</custom_template>
|
202 |
+
<notification_template>
|
203 |
+
<label>Sendinblue notification email module</label>
|
204 |
+
<file>sendin_notification.html</file>
|
205 |
+
<type>html</type>
|
206 |
+
</notification_template>
|
207 |
+
</email>
|
208 |
+
</template>
|
209 |
+
|
210 |
+
<models>
|
211 |
+
<core>
|
212 |
+
<rewrite>
|
213 |
+
<email>Sendinblue_Sendinblue_Model_Email</email>
|
214 |
+
<email_template>Sendinblue_Sendinblue_Model_Email_Template</email_template>
|
215 |
+
</rewrite>
|
216 |
+
</core>
|
217 |
+
<sendinblue>
|
218 |
+
<class>Sendinblue_Sendinblue_Model</class>
|
219 |
+
<resourceModel>sendinblue_mysql4</resourceModel>
|
220 |
+
</sendinblue>
|
221 |
+
<sendinblue_mysql4>
|
222 |
+
<class>Sendinblue_Sendinblue_Model_Mysql4</class>
|
223 |
+
<entities>
|
224 |
+
<sendinblue>
|
225 |
+
<table>sendinblue_country_codes</table>
|
226 |
+
</sendinblue>
|
227 |
+
</entities>
|
228 |
+
</sendinblue_mysql4>
|
229 |
+
</models>
|
230 |
+
<resources>
|
231 |
+
<sendinblue_setup>
|
232 |
+
<setup>
|
233 |
+
<module>Sendinblue_Sendinblue</module>
|
234 |
+
</setup>
|
235 |
+
<connection>
|
236 |
+
<use>core_setup</use>
|
237 |
+
</connection>
|
238 |
+
</sendinblue_setup>
|
239 |
+
<sendinblue_write>
|
240 |
+
<connection>
|
241 |
+
<use>core_write</use>
|
242 |
+
</connection>
|
243 |
+
</sendinblue_write>
|
244 |
+
<sendinblue_read>
|
245 |
+
<connection>
|
246 |
+
<use>core_read</use>
|
247 |
+
</connection>
|
248 |
+
</sendinblue_read>
|
249 |
+
</resources>
|
250 |
+
|
251 |
+
<helpers>
|
252 |
+
<sendinblue>
|
253 |
+
<class>Sendinblue_Sendinblue_Helper</class>
|
254 |
+
</sendinblue>
|
255 |
+
</helpers>
|
256 |
+
<blocks>
|
257 |
+
<sendinblue>
|
258 |
+
<class>Sendinblue_Sendinblue_Block</class>
|
259 |
+
</sendinblue>
|
260 |
+
</blocks>
|
261 |
+
|
262 |
+
</global>
|
263 |
+
<crontab>
|
264 |
+
<jobs>
|
265 |
+
<sendinblue_sendinblue>
|
266 |
+
<schedule>
|
267 |
+
<cron_expr>*/5 * * * *</cron_expr>
|
268 |
+
</schedule>
|
269 |
+
<run>
|
270 |
+
<model>sendinblue/observer::syncData</model>
|
271 |
+
</run>
|
272 |
+
</sendinblue_sendinblue>
|
273 |
+
</jobs>
|
274 |
+
</crontab>
|
275 |
+
<default>
|
276 |
+
<sendinblue>
|
277 |
+
<general>
|
278 |
+
<enabled>0</enabled>
|
279 |
+
<test>0</test>
|
280 |
+
<test_address />
|
281 |
+
</general>
|
282 |
+
<smtp>
|
283 |
+
<host>sendinblue.fr</host>
|
284 |
+
<port />
|
285 |
+
<login />
|
286 |
+
<password />
|
287 |
+
<ssl />
|
288 |
+
</smtp>
|
289 |
+
</sendinblue>
|
290 |
+
</default>
|
291 |
+
<frontend>
|
292 |
+
<events>
|
293 |
+
<!--use when new subcriber add for newsletter-->
|
294 |
+
<controller_action_postdispatch_newsletter_subscriber_new>
|
295 |
+
<observers>
|
296 |
+
<sendinblue_subscribe_new_observer>
|
297 |
+
<type>singleton</type>
|
298 |
+
<class>Sendinblue_Sendinblue_Model_Observer</class>
|
299 |
+
<method>subscribeObserver</method>
|
300 |
+
</sendinblue_subscribe_new_observer>
|
301 |
+
</observers>
|
302 |
+
</controller_action_postdispatch_newsletter_subscriber_new>
|
303 |
+
|
304 |
+
<!--use when new user register check (is_subscribed = 1)-->
|
305 |
+
<checkout_submit_all_after>
|
306 |
+
<observers>
|
307 |
+
<sendinblue_sendinblue_model_observer>
|
308 |
+
<class>Sendinblue_Sendinblue_Model_Observer</class>
|
309 |
+
<method>ordersucess</method>
|
310 |
+
</sendinblue_sendinblue_model_observer>
|
311 |
+
</observers>
|
312 |
+
</checkout_submit_all_after>
|
313 |
+
|
314 |
+
</events>
|
315 |
+
|
316 |
+
<layout>
|
317 |
+
<updates>
|
318 |
+
<sendinblue_sendinblue>
|
319 |
+
<file>sendinblue.xml</file>
|
320 |
+
</sendinblue_sendinblue>
|
321 |
+
</updates>
|
322 |
+
</layout>
|
323 |
+
|
324 |
+
</frontend>
|
325 |
+
</config>
|
app/code/local/Sendinblue/Sendinblue/sql/sendinblue_setup/install-0.1.0.php
ADDED
@@ -0,0 +1,276 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
|
11 |
+
$installer = $this;
|
12 |
+
/* @var $installer Mage_Core_Model_Resource_Setup */
|
13 |
+
|
14 |
+
$installer->startSetup();
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Create table 'newsletter/subscriber'
|
18 |
+
*/
|
19 |
+
$installer->run("
|
20 |
+
-- DROP TABLE IF EXISTS {$this->getTable('sendinblue_country_codes')};
|
21 |
+
CREATE TABLE {$this->getTable('sendinblue_country_codes')} (
|
22 |
+
`sendinblue_country_code_id` int(11) unsigned NOT NULL auto_increment,
|
23 |
+
`iso_code` varchar(255) NOT NULL default '',
|
24 |
+
`country_prefix` text NOT NULL default '',
|
25 |
+
`status` smallint(6) NOT NULL default '1',
|
26 |
+
`created_time` datetime NULL,
|
27 |
+
`update_time` datetime NULL,
|
28 |
+
PRIMARY KEY (`sendinblue_country_code_id`)
|
29 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
30 |
+
|
31 |
+
INSERT INTO {$this->getTable('sendinblue_country_codes')}
|
32 |
+
(`iso_code`, `country_prefix`, `status`, `created_time`, `update_time`)
|
33 |
+
VALUES
|
34 |
+
('AD', '376', 1, now(), now()),
|
35 |
+
('AE', '971', 1, now(), now()),
|
36 |
+
('AF', '93', 1, now(), now()),
|
37 |
+
('AG', '1268', 1, now(), now()),
|
38 |
+
('AI', '1264', 1, now(), now()),
|
39 |
+
('AL', '355', 1, now(), now()),
|
40 |
+
('AM', '374', 1, now(), now()),
|
41 |
+
('AN', '599', 1, now(), now()),
|
42 |
+
('AO', '244', 1, now(), now()),
|
43 |
+
('AQ', '672', 1, now(), now()),
|
44 |
+
('AR', '54', 1, now(), now()),
|
45 |
+
('AS', '1684', 1, now(), now()),
|
46 |
+
('AT', '43', 1, now(), now()),
|
47 |
+
('AU', '61', 1, now(), now()),
|
48 |
+
('AW', '297', 1, now(), now()),
|
49 |
+
('AZ', '994', 1, now(), now()),
|
50 |
+
('BA', '387', 1, now(), now()),
|
51 |
+
('BB', '1246', 1, now(), now()),
|
52 |
+
('BD', '880', 1, now(), now()),
|
53 |
+
('BE', '32', 1, now(), now()),
|
54 |
+
('BF', '226', 1, now(), now()),
|
55 |
+
('BG', '359', 1, now(), now()),
|
56 |
+
('BH', '973', 1, now(), now()),
|
57 |
+
('BI', '257', 1, now(), now()),
|
58 |
+
('BJ', '229', 1, now(), now()),
|
59 |
+
('BL', '590', 1, now(), now()),
|
60 |
+
('BM', '1441', 1, now(), now()),
|
61 |
+
('BN', '673', 1, now(), now()),
|
62 |
+
('BO', '591', 1, now(), now()),
|
63 |
+
('BR', '55', 1, now(), now()),
|
64 |
+
('BS', '1242', 1, now(), now()),
|
65 |
+
('BT', '975', 1, now(), now()),
|
66 |
+
('BW', '267', 1, now(), now()),
|
67 |
+
('BY', '375', 1, now(), now()),
|
68 |
+
('BZ', '501', 1, now(), now()),
|
69 |
+
('CA', '1', 1, now(), now()),
|
70 |
+
('CC', '61', 1, now(), now()),
|
71 |
+
('CD', '242', 1, now(), now()),
|
72 |
+
('CF', '236', 1, now(), now()),
|
73 |
+
('CG', '242', 1, now(), now()),
|
74 |
+
('CH', '41', 1, now(), now()),
|
75 |
+
('CI', '225', 1, now(), now()),
|
76 |
+
('CK', '682', 1, now(), now()),
|
77 |
+
('CL', '56', 1, now(), now()),
|
78 |
+
('CM', '237', 1, now(), now()),
|
79 |
+
('CN', '86', 1, now(), now()),
|
80 |
+
('CO', '57', 1, now(), now()),
|
81 |
+
('CR', '506', 1, now(), now()),
|
82 |
+
('CU', '53', 1, now(), now()),
|
83 |
+
('CV', '238', 1, now(), now()),
|
84 |
+
('CX', '61', 1, now(), now()),
|
85 |
+
('CY', '357', 1, now(), now()),
|
86 |
+
('CZ', '420', 1, now(), now()),
|
87 |
+
('DE', '49', 1, now(), now()),
|
88 |
+
('DJ', '253', 1, now(), now()),
|
89 |
+
('DK', '45', 1, now(), now()),
|
90 |
+
('DM', '1767', 1, now(), now()),
|
91 |
+
('DO', '1809', 1, now(), now()),
|
92 |
+
('DZ', '213', 1, now(), now()),
|
93 |
+
('EC', '593', 1, now(), now()),
|
94 |
+
('EE', '372', 1, now(), now()),
|
95 |
+
('EG', '20', 1, now(), now()),
|
96 |
+
('EH', '212', 1, now(), now()),
|
97 |
+
('ER', '291', 1, now(), now()),
|
98 |
+
('ES', '34', 1, now(), now()),
|
99 |
+
('ET', '251', 1, now(), now()),
|
100 |
+
('FI', '358', 1, now(), now()),
|
101 |
+
('FJ', '679', 1, now(), now()),
|
102 |
+
('FK', '500', 1, now(), now()),
|
103 |
+
('FM', '691', 1, now(), now()),
|
104 |
+
('FO', '298', 1, now(), now()),
|
105 |
+
('FR', '33', 1, now(), now()),
|
106 |
+
('GA', '241', 1, now(), now()),
|
107 |
+
('GB', '44', 1, now(), now()),
|
108 |
+
('GD', '1473', 1, now(), now()),
|
109 |
+
('GE', '995', 1, now(), now()),
|
110 |
+
('GF', '594', 1, now(), now()),
|
111 |
+
('GH', '233', 1, now(), now()),
|
112 |
+
('GI', '350', 1, now(), now()),
|
113 |
+
('GL', '299', 1, now(), now()),
|
114 |
+
('GM', '220', 1, now(), now()),
|
115 |
+
('GN', '224', 1, now(), now()),
|
116 |
+
('GP', '590', 1, now(), now()),
|
117 |
+
('GQ', '240', 1, now(), now()),
|
118 |
+
('GR', '30', 1, now(), now()),
|
119 |
+
('GT', '502', 1, now(), now()),
|
120 |
+
('GU', '1671', 1, now(), now()),
|
121 |
+
('GW', '245', 1, now(), now()),
|
122 |
+
('GY', '592', 1, now(), now()),
|
123 |
+
('HK', '852', 1, now(), now()),
|
124 |
+
('HN', '504', 1, now(), now()),
|
125 |
+
('HR', '385', 1, now(), now()),
|
126 |
+
('HT', '509', 1, now(), now()),
|
127 |
+
('HU', '36', 1, now(), now()),
|
128 |
+
('ID', '62', 1, now(), now()),
|
129 |
+
('IE', '353', 1, now(), now()),
|
130 |
+
('IL', '972', 1, now(), now()),
|
131 |
+
('IM', '44', 1, now(), now()),
|
132 |
+
('IN', '91', 1, now(), now()),
|
133 |
+
('IO', '246', 1, now(), now()),
|
134 |
+
('IQ', '964', 1, now(), now()),
|
135 |
+
('IR', '98', 1, now(), now()),
|
136 |
+
('IS', '354', 1, now(), now()),
|
137 |
+
('IT', '39', 1, now(), now()),
|
138 |
+
('JE', '44', 1, now(), now()),
|
139 |
+
('JM', '1876', 1, now(), now()),
|
140 |
+
('JO', '962', 1, now(), now()),
|
141 |
+
('JP', '81', 1, now(), now()),
|
142 |
+
('KE', '254', 1, now(), now()),
|
143 |
+
('KG', '996', 1, now(), now()),
|
144 |
+
('KH', '855', 1, now(), now()),
|
145 |
+
('KI', '686', 1, now(), now()),
|
146 |
+
('KM', '269', 1, now(), now()),
|
147 |
+
('KN', '1869', 1, now(), now()),
|
148 |
+
('KP', '850', 1, now(), now()),
|
149 |
+
('KR', '82', 1, now(), now()),
|
150 |
+
('KW', '965', 1, now(), now()),
|
151 |
+
('KY', '1345', 1, now(), now()),
|
152 |
+
('KZ', '7', 1, now(), now()),
|
153 |
+
('LA', '856', 1, now(), now()),
|
154 |
+
('LB', '961', 1, now(), now()),
|
155 |
+
('LC', '1758', 1, now(), now()),
|
156 |
+
('LI', '423', 1, now(), now()),
|
157 |
+
('LK', '94', 1, now(), now()),
|
158 |
+
('LR', '231', 1, now(), now()),
|
159 |
+
('LS', '266', 1, now(), now()),
|
160 |
+
('LT', '370', 1, now(), now()),
|
161 |
+
('LU', '352', 1, now(), now()),
|
162 |
+
('LV', '371', 1, now(), now()),
|
163 |
+
('LY', '218', 1, now(), now()),
|
164 |
+
('MA', '212', 1, now(), now()),
|
165 |
+
('MC', '377', 1, now(), now()),
|
166 |
+
('MD', '373', 1, now(), now()),
|
167 |
+
('ME', '382', 1, now(), now()),
|
168 |
+
('MF', '1599', 1, now(), now()),
|
169 |
+
('MG', '261', 1, now(), now()),
|
170 |
+
('MH', '692', 1, now(), now()),
|
171 |
+
('MK', '389', 1, now(), now()),
|
172 |
+
('ML', '223', 1, now(), now()),
|
173 |
+
('MN', '976', 1, now(), now()),
|
174 |
+
('MO', '853', 1, now(), now()),
|
175 |
+
('MP', '1670', 1, now(), now()),
|
176 |
+
('MQ', '596', 1, now(), now()),
|
177 |
+
('MR', '222', 1, now(), now()),
|
178 |
+
('MS', '1664', 1, now(), now()),
|
179 |
+
('MT', '356', 1, now(), now()),
|
180 |
+
('MU', '230', 1, now(), now()),
|
181 |
+
('MV', '960', 1, now(), now()),
|
182 |
+
('MW', '265', 1, now(), now()),
|
183 |
+
('MX', '52', 1, now(), now()),
|
184 |
+
('MY', '60', 1, now(), now()),
|
185 |
+
('MZ', '258', 1, now(), now()),
|
186 |
+
('NA', '264', 1, now(), now()),
|
187 |
+
('NC', '687', 1, now(), now()),
|
188 |
+
('NE', '227', 1, now(), now()),
|
189 |
+
('NF', '672', 1, now(), now()),
|
190 |
+
('NG', '234', 1, now(), now()),
|
191 |
+
('NI', '505', 1, now(), now()),
|
192 |
+
('NL', '31', 1, now(), now()),
|
193 |
+
('NO', '47', 1, now(), now()),
|
194 |
+
('NP', '977', 1, now(), now()),
|
195 |
+
('NR', '674', 1, now(), now()),
|
196 |
+
('NU', '683', 1, now(), now()),
|
197 |
+
('NZ', '64', 1, now(), now()),
|
198 |
+
('OM', '968', 1, now(), now()),
|
199 |
+
('PA', '507', 1, now(), now()),
|
200 |
+
('PE', '51', 1, now(), now()),
|
201 |
+
('PF', '689', 1, now(), now()),
|
202 |
+
('PG', '675', 1, now(), now()),
|
203 |
+
('PH', '63', 1, now(), now()),
|
204 |
+
('PK', '92', 1, now(), now()),
|
205 |
+
('PL', '48', 1, now(), now()),
|
206 |
+
('PM', '508', 1, now(), now()),
|
207 |
+
('PN', '870', 1, now(), now()),
|
208 |
+
('PR', '1', 1, now(), now()),
|
209 |
+
('PS', '970', 1, now(), now()),
|
210 |
+
('PT', '351', 1, now(), now()),
|
211 |
+
('PW', '680', 1, now(), now()),
|
212 |
+
('PY', '595', 1, now(), now()),
|
213 |
+
('QA', '974', 1, now(), now()),
|
214 |
+
('RE', '262', 1, now(), now()),
|
215 |
+
('RO', '40', 1, now(), now()),
|
216 |
+
('RS', '381', 1, now(), now()),
|
217 |
+
('RU', '7', 1, now(), now()),
|
218 |
+
('RW', '250', 1, now(), now()),
|
219 |
+
('SA', '966', 1, now(), now()),
|
220 |
+
('SB', '677', 1, now(), now()),
|
221 |
+
('SC', '248', 1, now(), now()),
|
222 |
+
('SD', '249', 1, now(), now()),
|
223 |
+
('SE', '46', 1, now(), now()),
|
224 |
+
('SG', '65', 1, now(), now()),
|
225 |
+
('SH', '290', 1, now(), now()),
|
226 |
+
('SI', '386', 1, now(), now()),
|
227 |
+
('SJ', '47', 1, now(), now()),
|
228 |
+
('SK', '421', 1, now(), now()),
|
229 |
+
('SL', '232', 1, now(), now()),
|
230 |
+
('SM', '378', 1, now(), now()),
|
231 |
+
('SN', '221', 1, now(), now()),
|
232 |
+
('SO', '252', 1, now(), now()),
|
233 |
+
('SR', '597', 1, now(), now()),
|
234 |
+
('ST', '239', 1, now(), now()),
|
235 |
+
('SV', '503', 1, now(), now()),
|
236 |
+
('SY', '963', 1, now(), now()),
|
237 |
+
('SZ', '268', 1, now(), now()),
|
238 |
+
('TC', '1649', 1, now(), now()),
|
239 |
+
('TD', '235', 1, now(), now()),
|
240 |
+
('TF', '262', 1, now(), now()),
|
241 |
+
('TG', '228', 1, now(), now()),
|
242 |
+
('TH', '66', 1, now(), now()),
|
243 |
+
('TJ', '992', 1, now(), now()),
|
244 |
+
('TK', '690', 1, now(), now()),
|
245 |
+
('TL', '670', 1, now(), now()),
|
246 |
+
('TM', '993', 1, now(), now()),
|
247 |
+
('TN', '216', 1, now(), now()),
|
248 |
+
('TO', '676', 1, now(), now()),
|
249 |
+
('TR', '90', 1, now(), now()),
|
250 |
+
('TT', '1868', 1, now(), now()),
|
251 |
+
('TV', '688', 1, now(), now()),
|
252 |
+
('TW', '886', 1, now(), now()),
|
253 |
+
('TZ', '255', 1, now(), now()),
|
254 |
+
('UA', '380', 1, now(), now()),
|
255 |
+
('UG', '256', 1, now(), now()),
|
256 |
+
('UM', '1', 1, now(), now()),
|
257 |
+
('US', '1', 1, now(), now()),
|
258 |
+
('UY', '598', 1, now(), now()),
|
259 |
+
('UZ', '998', 1, now(), now()),
|
260 |
+
('VA', '39', 1, now(), now()),
|
261 |
+
('VC', '1784', 1, now(), now()),
|
262 |
+
('VE', '58', 1, now(), now()),
|
263 |
+
('VG', '1284', 1, now(), now()),
|
264 |
+
('VI', '1340', 1, now(), now()),
|
265 |
+
('VN', '84', 1, now(), now()),
|
266 |
+
('VU', '678', 1, now(), now()),
|
267 |
+
('WF', '681', 1, now(), now()),
|
268 |
+
('WS', '685', 1, now(), now()),
|
269 |
+
('YE', '967', 1, now(), now()),
|
270 |
+
('YT', '262', 1, now(), now()),
|
271 |
+
('ZA', '27', 1, now(), now()),
|
272 |
+
('ZM', '260', 1, now(), now()),
|
273 |
+
('ZW', '263', 1, now(), now());
|
274 |
+
");
|
275 |
+
|
276 |
+
$installer->endSetup();
|
app/code/local/Sendinblue/Sendinblue/sql/sendinblue_setup/mysql4-upgrade-0.1.0-0.2.0.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
|
11 |
+
//echo 'Testing our upgrade script (upgrade-0.1.0-0.2.0.php) and halting execution to avoid updating the system version number <br />';
|
12 |
+
|
13 |
+
$resource = Mage::getSingleton('core/resource');
|
14 |
+
$writeConnection = $resource->getConnection('core_write');
|
15 |
+
$sql = "SELECT * FROM `core_config_data` WHERE `path` LIKE 'sendinblue/%'";
|
16 |
+
echo $datanum = count($writeConnection->fetchAll($sql));
|
17 |
+
if ($datanum > 0 )
|
18 |
+
{
|
19 |
+
$query = "DELETE FROM `core_config_data` WHERE `path` LIKE 'sendinblue/%'";
|
20 |
+
$writeConnection->query($query);
|
21 |
+
}
|
22 |
+
?>
|
app/design/adminhtml/default/default/layout/sendinblue.xml
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout>
|
3 |
+
<sendinblue_admin_adminhtml_myform_index>
|
4 |
+
<reference name="content">
|
5 |
+
<block type="adminhtml/template" name="sendinblue" template="sendinblue/myform.phtml"/>
|
6 |
+
</reference>
|
7 |
+
</sendinblue_admin_adminhtml_myform_index>
|
8 |
+
<!-- Code to add for js and css -->
|
9 |
+
<default>
|
10 |
+
<reference name="head">
|
11 |
+
<action method="addItem"><type>skin_css</type><name>sendinblue/css/styles.css</name><params/></action>
|
12 |
+
<action method="addItem"><type>skin_css</type><name>sendinblue/css/jquery.multiselect.css</name><params/></action>
|
13 |
+
</reference>
|
14 |
+
</default>
|
15 |
+
<!-- [end] -->
|
16 |
+
</layout>
|
app/design/adminhtml/default/default/template/sendinblue/myform.phtml
ADDED
@@ -0,0 +1,617 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
?>
|
11 |
+
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/ui-lightness/jquery-ui.css" />
|
12 |
+
<script>
|
13 |
+
var selectoption = "<?php echo $this->__('Select option'); ?>";
|
14 |
+
var selected = "<?php echo $this->__('Selected'); ?>";
|
15 |
+
</script>
|
16 |
+
<script type="text/javascript" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);?>adminhtml/default/default/sendinblue/js/jquery-1.9.1.min.js"></script>
|
17 |
+
<script type="text/javascript" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);?>adminhtml/default/default/sendinblue/js/jquery-ui.min.js"></script>
|
18 |
+
<script type="text/javascript" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);?>adminhtml/default/default/sendinblue/js/jquery.multiselect.min.js"></script>
|
19 |
+
<script type="text/javascript" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);?>adminhtml/default/default/sendinblue/js/sendinblue.js"></script>
|
20 |
+
<div class="entry-edit">
|
21 |
+
<div class="">
|
22 |
+
<img class="sendin-logo" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);?>adminhtml/default/default/sendinblue/images/<?php echo $this->__('sendinblue.png'); ?>">
|
23 |
+
<div class="slogan">
|
24 |
+
<?php echo $this->__('SendinBlue : THE all-in-one plugin for your marketing and transactional emails.'); ?></div><div class="clear"></div>
|
25 |
+
</div>
|
26 |
+
<div class="sendin_row">
|
27 |
+
<fieldset class="fields">
|
28 |
+
<legend class="lgend"><img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);?>adminhtml/default/default/sendinblue/images/logo.gif">
|
29 |
+
<?php echo $this->__('SendinBlue'); ?></legend>
|
30 |
+
<div class="contact-details">
|
31 |
+
<h2 style="color:#268CCD;"> <?php echo $this->__('Contact SendinBlue team'); ?></h2>
|
32 |
+
<div style="clear: both;"></div>
|
33 |
+
<p> <?php echo $this->__('Contact us:'); ?>
|
34 |
+
<br><br>Email:<a href="mailto:<?php echo $this->__('contact@sendinblue.com'); ?>" style="color:#268CCD; text-decoration: none;">
|
35 |
+
<?php echo $this->__('contact@sendinblue.com'); ?></a>
|
36 |
+
<br><?php echo $this->__('Phone : 0899 25 30 61'); ?></p>
|
37 |
+
<p style="padding-top:20px;"><b><?php echo $this->__('For further informations, please visit our website:'); ?></b>
|
38 |
+
<br><a href="<?php echo $this->__('https://www.sendinblue.com'); ?>" target="_blank" style="color:#268CCD; text-decoration: none;">
|
39 |
+
<?php echo $this->__('https://www.sendinblue.com'); ?></a></p>
|
40 |
+
</div>
|
41 |
+
<div><p><?php echo $this->__('With the SendinBlue plugin, you can find everything you need to easily and efficiently send your email & SMS campaigns to your prospects and customers.'); ?></p>
|
42 |
+
<ul class="listt">
|
43 |
+
<li> <?php echo $this->__('Synchronize your subscribers with SendinBlue (subscribed and unsubscribed contacts)'); ?></li>
|
44 |
+
<li> <?php echo $this->__('Easily create good looking emailings'); ?></li>
|
45 |
+
<li> <?php echo $this->__('Schedule your campaigns'); ?></li>
|
46 |
+
<li> <?php echo $this->__('Track your results and optimize'); ?></li>
|
47 |
+
<li> <?php echo $this->__('Monitor your transactional emails (purchase confirmation, password reset …) with a better deliverability and real-time analytics'); ?></li>
|
48 |
+
</ul>
|
49 |
+
<b><?php echo $this->__('Why should you use SendinBlue ?'); ?></b>
|
50 |
+
<ul class="listt">
|
51 |
+
<li> <?php echo $this->__('Optimized deliverability'); ?></li>
|
52 |
+
<li> <?php echo $this->__('Unbeatable pricing – best value in the industry'); ?></li>
|
53 |
+
<li> <?php echo $this->__('Technical support, by phone or by email'); ?></li>
|
54 |
+
</ul>
|
55 |
+
</div><div style="clear:both;"> </div>
|
56 |
+
</fieldset>
|
57 |
+
</div>
|
58 |
+
<?php
|
59 |
+
$module_status = Mage::getModel('sendinblue/sendinblue')->getEnableStatus()?1:0;
|
60 |
+
if ($module_status)
|
61 |
+
$style = '';
|
62 |
+
else
|
63 |
+
$style = 'style="display:none;"';
|
64 |
+
$api_key = Mage::getModel('sendinblue/sendinblue')->getApiKey();
|
65 |
+
$get_syncronize = Mage::getModel('sendinblue/sendinblue')->getSyncronizeStatus();
|
66 |
+
|
67 |
+
?>
|
68 |
+
|
69 |
+
<div class="sendin_row">
|
70 |
+
<fieldset class="fields">
|
71 |
+
<legend class="lgend"><img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);?>adminhtml/default/default/sendinblue/images/logo.gif">
|
72 |
+
<?php echo $this->__('Prerequisites'); ?></legend>
|
73 |
+
<span><?php echo $this->__('- You should have a SendinBlue account. You can create a free account here:'); ?>
|
74 |
+
<a href="<?php echo $this->__('https://www.sendinblue.com'); ?>" target="_blank" style="text-decoration: none; color: #268CCD;">
|
75 |
+
<?php echo $this->__('https://www.sendinblue.com'); ?></a><br></span></fieldset>
|
76 |
+
</div>
|
77 |
+
|
78 |
+
<div class="sendin_row" >
|
79 |
+
<form id="edit_formapik" name="edit_form" method="post" action="<?php echo $this->getUrl('*/*/apikeypost'); ?>">
|
80 |
+
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
|
81 |
+
<input name="skin_url" id ='skin_url' type="hidden" value="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);?>" />
|
82 |
+
<div class="section-config active">
|
83 |
+
<fieldset class="fields">
|
84 |
+
<legend class="lgend"><img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);?>adminhtml/default/default/sendinblue/images/logo.gif"> <?php echo $this->__('Settings'); ?></legend>
|
85 |
+
<table cellspacing="0" class="form-list3">
|
86 |
+
<tr>
|
87 |
+
<td class="fix_width2"><label><?php echo $this->__('Activate the SendinBlue module:'); ?></label></td>
|
88 |
+
<td class="input-ele">
|
89 |
+
<input type="radio" <?php if(Mage::getModel('sendinblue/sendinblue')->getEnableStatus()==1) { echo 'checked'; } ?> name="sendin_api_status" class="sendin_api_status radio_nospaceing" value="1" /> <?php echo $this->__('Yes'); ?>
|
90 |
+
<input type="radio" name="sendin_api_status" <?php if(Mage::getModel('sendinblue/sendinblue')->getEnableStatus()==0) { echo 'checked'; } ?> class="sendin_api_status radio_spaceing2" value="0" /> <?php echo $this->__('No'); ?>
|
91 |
+
<input type="hidden" name="apistatuskey" id="apistatuskey" value="<?php echo $module_status;?>">
|
92 |
+
</td>
|
93 |
+
</tr>
|
94 |
+
|
95 |
+
<tr <?php echo $style; ?> id="sendin_apikey">
|
96 |
+
<td><label><?php echo $this->__('API Key:'); ?></label></td>
|
97 |
+
<td class="input-ele">
|
98 |
+
<input type="text" name="sendin_apikey" id="sendin_apikey_val" class="input-text" value="<?php echo Mage::getModel('sendinblue/sendinblue')->getApiKey(); ?>" />
|
99 |
+
<span class="toolTip" title="<?php echo stripslashes($this->__('Please enter your API key from your SendinBlue account and if you don\'t have it yet, please go to www.sendinblue.com and subscribe. You can then get the API key from https://my.sendinblue.com/advanced/apikey')); ?>"> </span>
|
100 |
+
</td>
|
101 |
+
</tr>
|
102 |
+
|
103 |
+
<tr>
|
104 |
+
<td> </td>
|
105 |
+
<td class="a-left">
|
106 |
+
<div class="btnmrgn-right">
|
107 |
+
<input type="submit" class="btn" name="SmtpSubmit" onclick="return apikvalidate('<?php echo $this->__('Please enter your API key') ;?>');" value ="<?php echo $this->__('Update'); ?>" /></div>
|
108 |
+
</td>
|
109 |
+
</tr>
|
110 |
+
|
111 |
+
</table>
|
112 |
+
</fieldset>
|
113 |
+
</div>
|
114 |
+
</form>
|
115 |
+
</div>
|
116 |
+
<?php if ($api_key != '') { ?>
|
117 |
+
<div class="sendin_row alldiv" <?php echo $style; ?> >
|
118 |
+
<form id="edit_form" name="edit_form" method="post" action="<?php echo $this->getUrl('*/*/syncronizepost'); ?>">
|
119 |
+
<div class="section-config active">
|
120 |
+
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
|
121 |
+
<fieldset id="my-fieldset" class="fields">
|
122 |
+
<legend class="lgend"><img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);?>adminhtml/default/default/sendinblue/images/logo.gif"> <?php echo $this->__('Activate SendinBlue to manage subscribers'); ?></legend>
|
123 |
+
<table cellspacing="0" class="form-list">
|
124 |
+
<tr>
|
125 |
+
<td class="fix_width"><label><?php echo $this->__('Activate SendinBlue to manage subscribers'); ?></label>
|
126 |
+
</td>
|
127 |
+
<td class="input-ele">
|
128 |
+
<input type="radio" <?php if(Mage::getModel('sendinblue/sendinblue')->getSyncronizeStatus()==1) { echo "checked"; } ?> name="syncronize" value="1" class="radio_nospaceing hdtab"/> <?php echo $this->__('Yes'); ?>
|
129 |
+
<input type="radio" <?php if(Mage::getModel('sendinblue/sendinblue')->getSyncronizeStatus()==0) { echo "checked"; } ?> name="syncronize" value="0" class="radio_spaceing2 hdtab" /> <?php echo $this->__('No'); ?> <span title="<?php echo $this->__('If you activate this feature, your new contacts will be automatically added to SendinBlue or unsubscribed from SendinBlue. To synchronize the other way (SendinBlue to Magento), you should run the url (mentioned below) each day.'); ?>" class="toolTip"> </span>
|
130 |
+
</td>
|
131 |
+
</tr>
|
132 |
+
<tr>
|
133 |
+
<td colspan="2">
|
134 |
+
<div id="hidetabselect" <?php if(!Mage::getModel('sendinblue/sendinblue')->getSyncronizeStatus()) {?>style="display:none;"<?php } ?>>
|
135 |
+
<table>
|
136 |
+
<tr>
|
137 |
+
<td><label><?php echo $this->__('Your Lists'); ?></label></td>
|
138 |
+
<td class="input-ele"><?php
|
139 |
+
$list = Mage::getModel('sendinblue/sendinblue')->lists();
|
140 |
+
|
141 |
+
$selectedlist = Mage::getModel('sendinblue/sendinblue')->getUserlists();
|
142 |
+
if($selectedlist!=NULL){
|
143 |
+
$list_array = explode('|',$selectedlist);
|
144 |
+
}else{
|
145 |
+
$list_array = array();
|
146 |
+
}
|
147 |
+
|
148 |
+
?>
|
149 |
+
<select multiple="multiple" name="sendin_list[]" id="select">
|
150 |
+
<?php foreach($list as $value ){ ?>
|
151 |
+
<option value="<?php echo $value['id']; ?>" <?php if(in_array($value['id'],$list_array)) echo 'selected = "selected"' ?> ><?php echo $value['name']; ?></option>
|
152 |
+
<?php } ?>
|
153 |
+
</select>
|
154 |
+
<span title="<?php echo $this->__('Select the contact list where you want to save the contacts of your site Magento. By default, we have created a list Magento in your SendinBlue account and we have selected it'); ?>" class="toolTip"> </span>
|
155 |
+
</td>
|
156 |
+
</tr>
|
157 |
+
|
158 |
+
<tr>
|
159 |
+
<td> </td>
|
160 |
+
<td class="a-left">
|
161 |
+
<div class="btnmrgn-right">
|
162 |
+
<input type="submit" class="btn" name="syncronizeSubmit" value ="<?php echo $this->__('Update'); ?>" /></div>
|
163 |
+
</td>
|
164 |
+
</tr>
|
165 |
+
<tr><td colspan="2">
|
166 |
+
<?php echo $this->__('To synchronize the emails of your customers from SendinBlue platform to your e-commerce website, you should run '); ?><a href="<?php echo Mage::helper("adminhtml")->getUrl("sendinblue/adminhtml_sync/index/",array()); ?>" style="color: #000000; outline: 0 none; text-decoration: none;"><?php echo $this->__('this link'); ?> </a><?php echo $this->__('each day'); ?><span class="toolTip" title="<?php echo $this->__('Note that if you change the name of your Shop (currently ');?><?php echo ucfirst(Mage::app()->getFrontController()->getRequest()->getModuleName());?><?php echo $this->__(') the token value changes.'); ?>"> </span>
|
167 |
+
</td></tr>
|
168 |
+
</table>
|
169 |
+
</div>
|
170 |
+
</td>
|
171 |
+
</tr>
|
172 |
+
|
173 |
+
</table>
|
174 |
+
</fieldset>
|
175 |
+
</div>
|
176 |
+
</form>
|
177 |
+
</div>
|
178 |
+
<?php
|
179 |
+
}
|
180 |
+
$module_status = Mage::getModel('sendinblue/sendinblue')->getSmtpStatus();
|
181 |
+
if ($module_status == 0)
|
182 |
+
$style_smtp = 'style="display:none;"';
|
183 |
+
else
|
184 |
+
$style_smtp = '';
|
185 |
+
|
186 |
+
?>
|
187 |
+
<?php if ($api_key != '') { ?>
|
188 |
+
<div class="sendin_row alldiv" <?php echo $style; ?> >
|
189 |
+
<form id="edit_formsmtp" name="edit_form" method="post" action="<?php echo $this->getUrl('*/*/sendmail'); ?>">
|
190 |
+
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
|
191 |
+
<input name="smtpUrl" type="hidden" id="smtpUrl" value="<?php echo $this->getUrl('sendinblue/ajax/smtppost'); ?>" />
|
192 |
+
<div class="section-config active">
|
193 |
+
<fieldset class="fields">
|
194 |
+
<legend class="lgend"><img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);?>adminhtml/default/default/sendinblue/images/logo.gif"> <?php echo $this->__('Activate SendinBlue SMTP for your transactional emails'); ?></legend>
|
195 |
+
<table cellspacing="0" class="form-list">
|
196 |
+
|
197 |
+
<tr>
|
198 |
+
<td class="fix_width"><label><?php echo $this->__('Activate SendinBlue SMTP for your transactional emails'); ?></label></td>
|
199 |
+
<td class="input-ele">
|
200 |
+
<input type="radio" class = 'smtpStatus radio_nospaceing' <?php if(Mage::getModel('sendinblue/sendinblue')->getSmtpStatus()==1) { echo 'checked'; } ?> name="smtp" value="1" /> <?php echo $this->__('Yes'); ?>
|
201 |
+
<input <?php if(Mage::getModel('sendinblue/sendinblue')->getSmtpStatus()==0) { echo 'checked'; } ?> type="radio" class = 'smtpStatus radio_spaceing2' name="smtp" value="0" /> <?php echo $this->__('No'); ?><span title="<?php echo $this->__('Transactional email is an expected email because it is triggered automatically after a transaction or a specific event. Common examples of transactional email are : account opening and welcome message, order shipment confirmation, shipment tracking and purchase order status, registration via a contact form, account termination, payment confirmation, invoice etc.'); ?>" class="toolTip"> </span>
|
202 |
+
</td>
|
203 |
+
<td> </td>
|
204 |
+
</tr>
|
205 |
+
|
206 |
+
<tr <?php echo $style_smtp; ?> class='smtptest'>
|
207 |
+
<td class="fix_width"><label><?php echo $this->__('Send email test From / To :'); ?></label></td>
|
208 |
+
<td class="input-ele"><input class="input-text" name="email" id="email" value="" size="40"/>
|
209 |
+
<input type="submit" class="btn" style="margin-left:3px;" name="SmtpSubmit" onclick="return smtpvalidate('<?php echo $this->__('Please provide valid Email!') ;?>');" value ="<?php echo $this->__('Send'); ?>" />
|
210 |
+
</td>
|
211 |
+
</tr>
|
212 |
+
|
213 |
+
</table>
|
214 |
+
</fieldset>
|
215 |
+
</div>
|
216 |
+
</form>
|
217 |
+
|
218 |
+
</div>
|
219 |
+
|
220 |
+
<div class="sendin_row alldiv" <?php echo $style; ?> >
|
221 |
+
<div class="section-config active">
|
222 |
+
<input name="trackingUrl" type="hidden" id="trackingUrl" value="<?php echo $this->getUrl('sendinblue/ajax/codepost'); ?>" />
|
223 |
+
<fieldset id="my-fieldset" class="fields">
|
224 |
+
<legend class="lgend"><img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);?>adminhtml/default/default/sendinblue/images/logo.gif"> <?php echo $this->__('Code tracking'); ?> </legend>
|
225 |
+
<table cellspacing="0" class="form-list">
|
226 |
+
<tr>
|
227 |
+
<td class="fix_width"><label><?php echo $this->__('Do you want to install a tracking code when validating an order'); ?></label>
|
228 |
+
</td>
|
229 |
+
<td class="input-ele">
|
230 |
+
<input type="radio" <?php if(Mage::getModel('sendinblue/sendinblue')->getTrackingStatus()==1) { echo 'checked'; } ?> name="Tracking" class='Tracking radio_nospaceing' value="1" /> <?php echo $this->__('Yes'); ?>
|
231 |
+
<input type="radio" <?php if(Mage::getModel('sendinblue/sendinblue')->getTrackingStatus()==0) { echo 'checked'; } ?> name="Tracking" class='Tracking radio_spaceing2' value="0" /> <?php echo $this->__('No'); ?>
|
232 |
+
<span title="<?php echo $this->__('This feature will allow you to transfer all your customers orders from Magento into SendinBlue to implement your email marketing strategy.'); ?>" class="toolTip"> </span>
|
233 |
+
</td>
|
234 |
+
</tr>
|
235 |
+
</table>
|
236 |
+
</fieldset>
|
237 |
+
</div>
|
238 |
+
</div>
|
239 |
+
|
240 |
+
<div class="sendin_row hidetableblock" <?php echo $style; ?> >
|
241 |
+
<fieldset class="fields">
|
242 |
+
<legend class="lgend"><img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);?>adminhtml/default/default/sendinblue/images/logo.gif">
|
243 |
+
<?php echo $this->__('Manage SMS'); ?></legend>
|
244 |
+
<table width="100%" cellspacing="0" cellpadding="0" class="table hidetableblock form-list">
|
245 |
+
|
246 |
+
<tbody>
|
247 |
+
<tr>
|
248 |
+
<td class="row1" colspan="2" style="border:none; padding-top:10px;">
|
249 |
+
<span style="margin-bottom:10px; color:#333333;">
|
250 |
+
<?php echo $this->__('Currently you have '); ?>
|
251 |
+
<?php $credit = Mage::getModel('sendinblue/sendinblue')->getSmsCredit(); ?>
|
252 |
+
<?php if ($credit >= 10){ ?> <strong style="color:#000000;"><?php echo $credit; ?></strong><?php } else {?><strong style="color:#F03D25;"><?php echo $credit; ?></strong><?php } ?>
|
253 |
+
|
254 |
+
<?php echo $this->__(' credits sms. To buy more credits, please click'); ?>
|
255 |
+
<a target="_blank" href ="<?php echo $this->__('https://www.sendinblue.com/pricing'); ?>" style="color: #000000; outline: 0 none; text-decoration: none;">
|
256 |
+
<?php echo $this->__('here'); ?></a></span></td></tr>
|
257 |
+
<tr>
|
258 |
+
<td>
|
259 |
+
<label>
|
260 |
+
<?php echo $this->__('You want to be notified by e-mail when you do not have enough credits?'); ?></label>
|
261 |
+
<input name="sms_credit" <?php if(Mage::getModel('sendinblue/sendinblue')->getNotifySmsStatus()==1) { echo 'checked'; } ?> type="radio" value="1" class="sms_credit radio_nospaceing" style="margin-right:10px;" />
|
262 |
+
<?php echo $this->__('Yes'); ?>
|
263 |
+
<input name="sms_credit" <?php if(Mage::getModel('sendinblue/sendinblue')->getNotifySmsStatus()==0) { echo 'checked'; } ?> type="radio" value="0" class="sms_credit radio_spaceing2" style="margin-left:20px;margin-right:10px;" />
|
264 |
+
<?php echo $this->__('No'); ?>
|
265 |
+
<input name="credit" type="hidden" id="credits" value="<?php echo $this->getUrl('sendinblue/ajax/credit'); ?>" />
|
266 |
+
<div class="hideCredit" id="div_email_test" style="padding-top:20px;">
|
267 |
+
<form action="<?php echo $this->getUrl('*/*/sendnotifysms'); ?>" method="POST" name="notify_sms_mail_form">
|
268 |
+
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
|
269 |
+
<p class="form-data"><label><?php echo $this->__('Email'); ?></label>
|
270 |
+
<input name="sendin_notify_email" id="sendin_notify_email" type="text" class="input-text" value="<?php echo Mage::getModel('sendinblue/sendinblue')->getNotifyEmailStatus(); ?>" size="40" />
|
271 |
+
</p>
|
272 |
+
<p class="form-data"> <label><?php echo $this->__('Limit'); ?></label>
|
273 |
+
<input name="sendin_notify_value" id="sendin_notify_value" type="text" class="input-text" value="<?php echo Mage::getModel('sendinblue/sendinblue')->getNotifyValueStatus(); ?>" size="40" /><span class="toolTip" title="<?php echo $this->__('Alert threshold for remaining credits'); ?>"> </span>
|
274 |
+
</p>
|
275 |
+
<p class="form-data" style="width:705px"><input name="notify_sms_mail" type="submit" value="<?php echo $this->__('Save'); ?>" onclick="return validate('<?php echo $this->__('Please provide valid Email!') ;?>','<?php echo $this->__('Please provide a limit in integer format') ; ?>');" class="button btn" style=" float:right;"/></p>
|
276 |
+
<p class="mrgin-left" style="float:left;"><?php echo $this->__('To get the email notification, you should run '); ?> <a href="<?php echo Mage::helper("adminhtml")->getUrl("sendinblue/adminhtml_notify/index/",array()); ?>" style="color: #000000; outline: 0 none; text-decoration: none;"><?php echo $this->__('this link'); ?> </a> <?php echo $this->__(' atleast one time per day. '); ?>
|
277 |
+
<span class="toolTip" title="<?php echo $this->__('Note that if you change the name of your Shop (currently ');?><?php echo ucfirst(Mage::app()->getFrontController()->getRequest()->getModuleName());?><?php echo $this->__(') the token value changes.'); ?>"> </span>
|
278 |
+
</p>
|
279 |
+
</form>
|
280 |
+
</div>
|
281 |
+
</td>
|
282 |
+
</tr>
|
283 |
+
<tr>
|
284 |
+
<td>
|
285 |
+
<div id="tabs_wrapper">
|
286 |
+
<div id="tabs_container">
|
287 |
+
<ul id="tabs">
|
288 |
+
<li class="active"><a href="#tab1"><?php echo $this->__('Send SMS after order confirmation'); ?></a></li>
|
289 |
+
<li><a class="icon_accept" href="#tab2">
|
290 |
+
<?php echo $this->__('Send a SMS confirmation for the shipment of the order'); ?></a></li>
|
291 |
+
<li><a href="#tab3">
|
292 |
+
<?php echo $this->__('Send a campaign SMS'); ?>
|
293 |
+
</a></li>
|
294 |
+
</ul>
|
295 |
+
</div>
|
296 |
+
<div id="tabs_content_container">
|
297 |
+
<div id="tab1" class="tab_content" style="display: block;">
|
298 |
+
<div class="wrapper" style="margin-top:15px;">
|
299 |
+
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="form-list3 ">
|
300 |
+
<input name="order" type="hidden" id="order" value="<?php echo $this->getUrl('sendinblue/ajax/order'); ?>" />
|
301 |
+
<tr>
|
302 |
+
<td class="row1 fix_width2" >
|
303 |
+
<label class="r_label">
|
304 |
+
<?php echo $this->__('Send SMS after order confirmation'); ?></label>
|
305 |
+
<div class="radio_bx">
|
306 |
+
<input name="sms_order_setting" <?php if(Mage::getModel('sendinblue/sendinblue')->getOrderSmsStatus()==1) { echo 'checked'; } ?> class="sms_order_setting radio_nospaceing" type="radio" value="1" />
|
307 |
+
<?php echo $this->__('Yes'); ?>
|
308 |
+
<input name="sms_order_setting" <?php if(Mage::getModel('sendinblue/sendinblue')->getOrderSmsStatus()==0) { echo 'checked'; } ?> class="sms_order_setting radio_spaceing2" type="radio" value="0" />
|
309 |
+
<?php echo $this->__('No'); ?>
|
310 |
+
</div>
|
311 |
+
<div style="clear:both;"></div>
|
312 |
+
<div class="hideOrder">
|
313 |
+
<h4><?php echo $this->__('SMS settings'); ?></h4>
|
314 |
+
<div class="form_table ">
|
315 |
+
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="form-list3 ">
|
316 |
+
<tr>
|
317 |
+
<td>
|
318 |
+
<form method="POST" action="<?php echo $this->getUrl('*/*/sendorder'); ?>" name="sender_order_form">
|
319 |
+
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
|
320 |
+
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="form-list3 no-padding">
|
321 |
+
<tr>
|
322 |
+
<td class="fix_width2" valign="top">
|
323 |
+
<label>
|
324 |
+
<?php echo $this->__('Sender'); ?></label>
|
325 |
+
</td>
|
326 |
+
<td>
|
327 |
+
<input name="sender_order" id="sender_order" type="text" value="<?php echo Mage::getModel('sendinblue/sendinblue')->getSendSmsOrderSubject(); ?>" class="input_bx" autocomplete="off" />
|
328 |
+
<span class="toolTip" title="<?php echo $this->__('This field allows you to personalize the SMS sender. Attention, there is a limited number of characters.If you enter a name, it is limited to 11 characters, and special characters (é, à ...) are not accepted. If you enter a phone number, it is limited to 17 characters; the number should be preceded by 00 and the country code (for instance, for France mobile 06 12 34 56 78 use 0033612345678 with 0033 is France prefix ).'); ?>"> </span>
|
329 |
+
<div class="hintmsg"><em><?php echo $this->__('Number of characters left: '); ?><span id="sender_order_text">17</span></em>
|
330 |
+
</div>
|
331 |
+
|
332 |
+
</td>
|
333 |
+
</tr>
|
334 |
+
<tr>
|
335 |
+
<td valign="top"><label><?php echo $this->__('Message'); ?></label></td>
|
336 |
+
<td>
|
337 |
+
<textarea name="sender_order_message" id="sender_order_message" cols="45" rows="5" class="textarea_bx"><?php echo Mage::getModel('sendinblue/sendinblue')->getSendSmsmOrderMessage(); ?></textarea>
|
338 |
+
<span class="toolTip" style="float:left; margin-top: 85px;" title="<?php echo $this->__(' Create the content of your SMS with the limit of 160-character.Beyond 160 characters, it will be counted as a second SMS. Thus, if you write SMS of 240 characters, it will be recorded using two SMS.'); ?>"> </span>
|
339 |
+
<span style="float:left; line-height:16px; margin-bottom:15px; width:490px; clear:both;"><?php echo $this->__('Number of SMS used: '); ?><span id="sender_order_message_text_count">0</span>
|
340 |
+
<div class="hintmsg"><em><?php echo $this->__('Number of characters left: '); ?></em><span id="sender_order_message_text">160</span></div>
|
341 |
+
<div class="hintmsg"><em><?php echo $this->__('Attention line break is counted as a single character.'); ?></em>
|
342 |
+
</div><br>
|
343 |
+
<div class="hintmsg"><em><?php echo $this->__('If you want to personalize the SMS, you can use the variables below:'); ?></em></div>
|
344 |
+
<div class="hintmsg"><em><?php echo $this->__('- For first name use {first_name}'); ?></em></div>
|
345 |
+
<div class="hintmsg"><em><?php echo $this->__('- For last name use {last_name}'); ?></em></div>
|
346 |
+
<div class="hintmsg"><em><?php echo $this->__('- For order reference id use {order_reference}'); ?></em></div>
|
347 |
+
<div class="hintmsg"><em><?php echo $this->__('- For order price use {order_price}'); ?></em></div>
|
348 |
+
<div class="hintmsg"><em><?php echo $this->__('- For order date use {order_date}'); ?></em></div>
|
349 |
+
<input name="sender_order_save" type="submit" value="<?php echo $this->__('Save'); ?>" onclick="return senderOrderSaveValid('<?php echo $this->__('Please fill the Sender field'); ?>','<?php echo $this->__('Please fill the Message field'); ?>');" class="button mrgn-right btn" style="margin-right:197px;" />
|
350 |
+
</td>
|
351 |
+
</tr>
|
352 |
+
</table>
|
353 |
+
</form>
|
354 |
+
</td>
|
355 |
+
</tr>
|
356 |
+
<tr>
|
357 |
+
<td colspan="2" valign="top" border="0">
|
358 |
+
<form method="POST" action="<?php echo $this->getUrl('*/*/sendordertest'); ?>" name="sender_order_testForm">
|
359 |
+
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
|
360 |
+
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="form-data">
|
361 |
+
<tr>
|
362 |
+
<td>
|
363 |
+
<div class="hintmsg"><em><?php echo $this->__('Sending a test SMS will be deducted from your SMS credits.'); ?></em></div>
|
364 |
+
<label><?php echo $this->__('Send a test SMS'); ?></label>
|
365 |
+
<input name="sender_order_number" id="sender_order_number" maxlength="17" type="text" value="" class="input_bx input-texts" />
|
366 |
+
<span class="toolTip" title="<?php echo $this->__('The phone number should be in this form: 0033663309741 for this France mobile 06 63 30 97 41 (0033 is France prefix)'); ?>"> </span>
|
367 |
+
<input name="sender_order_submit" type="button" value="<?php echo $this->__('Send'); ?>" onclick="return testsmssend('<?php echo $this->__('Please fill the Sender field'); ?>','<?php echo $this->__('Please fill the Message field'); ?>','<?php echo $this->__('Please enter the valid Mobile Number'); ?>');" class="button btn" />
|
368 |
+
</td>
|
369 |
+
</tr>
|
370 |
+
</table>
|
371 |
+
</form>
|
372 |
+
</td>
|
373 |
+
</tr>
|
374 |
+
</table>
|
375 |
+
</div>
|
376 |
+
</td>
|
377 |
+
</tr>
|
378 |
+
</table>
|
379 |
+
</div>
|
380 |
+
</div>
|
381 |
+
</div>
|
382 |
+
<div id="tab2" class="tab_content">
|
383 |
+
<div class="wrapper" style="margin-top:15px;">
|
384 |
+
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="form-list3">
|
385 |
+
<input name="shiping" type="hidden" id="shiping" value="<?php echo $this->getUrl('sendinblue/ajax/shiping'); ?>" />
|
386 |
+
<tr>
|
387 |
+
<td class="row1 fix-width2">
|
388 |
+
<label class="r_label">
|
389 |
+
<?php echo $this->__('Send a SMS confirmation for the shipment of the order'); ?></label>
|
390 |
+
<div class="radio_bx">
|
391 |
+
<input name="sms_shiping_setting" <?php if(Mage::getModel('sendinblue/sendinblue')->getShipingSmsStatus()==1) { echo 'checked'; } ?> class="sms_shiping_setting radio_nospaceing" type="radio" value="1" />
|
392 |
+
<?php echo $this->__('Yes'); ?>
|
393 |
+
<input name="sms_shiping_setting" type="radio" value="0" class="sms_shiping_setting radio_spaceing2" <?php if(Mage::getModel('sendinblue/sendinblue')->getShipingSmsStatus()==0) { echo 'checked'; } ?>/>
|
394 |
+
<?php echo $this->__('No'); ?>
|
395 |
+
</div>
|
396 |
+
<div style="clear:both;"></div>
|
397 |
+
<div class="hideShiping">
|
398 |
+
<h4><?php echo $this->__('SMS settings'); ?></h4>
|
399 |
+
<div class="form_table ">
|
400 |
+
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="form-list3 no-padding">
|
401 |
+
<tr>
|
402 |
+
<td>
|
403 |
+
<div class="" style="width:500px;">
|
404 |
+
<form method="post" action="<?php echo $this->getUrl('*/*/sendshipment'); ?>" name="sender_shipment_form">
|
405 |
+
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
|
406 |
+
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
407 |
+
<tr>
|
408 |
+
<td class="fix_width2" valign="top"><label><?php echo $this->__('Sender'); ?></label></td>
|
409 |
+
<td>
|
410 |
+
<input name="sender_shipment" maxlength="17" id="sender_shipment" type="text" value="<?php echo Mage::getModel('sendinblue/sendinblue')->getSendSmsShipingSubject(); ?>" class="input_bx" autocomplete="off" />
|
411 |
+
<span class="toolTip" title="<?php echo $this->__('This field allows you to personalize the SMS sender. Attention, there is a limited number of characters.If you enter a name, it is limited to 11 characters, and special characters (é, à ...) are not accepted. If you enter a phone number, it is limited to 17 characters; the number should be preceded by 00 and the country code (for instance, for France mobile 06 12 34 56 78 use 0033612345678 with 0033 is France prefix ).'); ?>"> </span>
|
412 |
+
<div class="hintmsg"><em><?php echo $this->__('Number of characters left: '); ?><span id="sender_shipment_text">17</span></em>
|
413 |
+
</div>
|
414 |
+
|
415 |
+
</td>
|
416 |
+
</tr>
|
417 |
+
<tr>
|
418 |
+
<td valign="top"><label><?php echo $this->__('Message'); ?></label></td>
|
419 |
+
<td>
|
420 |
+
<textarea name="sender_shipment_message" id="sender_shipment_message" cols="45" rows="5" class="textarea_bx"><?php echo Mage::getModel('sendinblue/sendinblue')->getSendSmsShipingMessage(); ?></textarea>
|
421 |
+
<span class="toolTip" style="float:left; margin-top: 85px;" title="<?php echo $this->__(' Create the content of your SMS with the limit of 160-character.Beyond 160 characters, it will be counted as a second SMS. Thus, if you write SMS of 240 characters, it will be recorded using two SMS.'); ?>"> </span>
|
422 |
+
<span style="float:left; line-height:16px; margin-bottom:15px; width:470px; clear:both;"><?php echo $this->__('Number of SMS used: '); ?><span id="sender_shipment_message_text_count">0</span>
|
423 |
+
<div class="hintmsg"><em><?php echo $this->__('Number of characters left: '); ?></em><span id="sender_shipment_message_text">160</span></div>
|
424 |
+
<div class="hintmsg"><em><?php echo $this->__('Attention line break is counted as a single character.'); ?></em>
|
425 |
+
</div><br>
|
426 |
+
<div class="hintmsg"><em><?php echo $this->__('If you want to personalize the SMS, you can use the variables below:'); ?></em></div>
|
427 |
+
<div class="hintmsg"><em><?php echo $this->__('- For first name use {first_name}'); ?></em></div>
|
428 |
+
<div class="hintmsg"><em><?php echo $this->__('- For last name use {last_name}'); ?></em></div>
|
429 |
+
<div class="hintmsg"><em><?php echo $this->__('- For order reference id use {order_reference}'); ?></em></div>
|
430 |
+
<div class="hintmsg"><em><?php echo $this->__('- For order price use {order_price}'); ?></em></div>
|
431 |
+
<div class="hintmsg"><em><?php echo $this->__('- For order date use {order_date}'); ?></em></div>
|
432 |
+
<input name="sender_shipment_save" type="submit" value="<?php echo $this->__('Save'); ?>" onclick="return senderShipmentSaveValid('<?php echo $this->__('Please fill the Sender field'); ?>','<?php echo $this->__('Please fill the Message field'); ?>');" class="button mrgn-right btn" />
|
433 |
+
</td>
|
434 |
+
</tr>
|
435 |
+
</table>
|
436 |
+
</form>
|
437 |
+
</div>
|
438 |
+
</td>
|
439 |
+
</tr>
|
440 |
+
<tr>
|
441 |
+
<td colspan="2" valign="top" border="0">
|
442 |
+
<form method="post" action="<?php echo $this->getUrl('*/*/sendshipmenttest'); ?>" name="sender_order_testForm">
|
443 |
+
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
|
444 |
+
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
445 |
+
<tr>
|
446 |
+
<td valign="top" colspan="2">
|
447 |
+
<div class="hintmsg"><em><?php echo $this->__('Sending a test SMS will be deducted from your SMS credits.'); ?></em></div>
|
448 |
+
<label><?php echo $this->__('Send a test SMS'); ?></label>
|
449 |
+
<input name="sender_shipment_number" id="sender_shipment_number" maxlength="17" type="text" value="" class="input_bx" />
|
450 |
+
<span class="toolTip" title="<?php echo $this->__('The phone number should be in this form: 0033663309741 for this France mobile 06 63 30 97 41 (0033 is France prefix)'); ?>"> </span>
|
451 |
+
<input name="sender_shipment_submit" type="button" value="<?php echo $this->__('Send'); ?>" onclick="return testShippedSmsSend('<?php echo $this->__('Please fill the Sender field'); ?>','<?php echo $this->__('Please fill the Message field'); ?>','<?php echo $this->__('Please enter the valid Mobile Number'); ?>');" class="button btn" />
|
452 |
+
</td>
|
453 |
+
</tr>
|
454 |
+
</table>
|
455 |
+
</form>
|
456 |
+
</td>
|
457 |
+
</tr>
|
458 |
+
</table>
|
459 |
+
</div>
|
460 |
+
</td>
|
461 |
+
</tr>
|
462 |
+
</table>
|
463 |
+
</div>
|
464 |
+
</div>
|
465 |
+
</div>
|
466 |
+
<div id="tab3" class="tab_content">
|
467 |
+
<div class="wrapper" style="margin-top:15px;">
|
468 |
+
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="form-list3">
|
469 |
+
<input name="campaign" type="hidden" id="campaign" value="<?php echo $this->getUrl('sendinblue/ajax/campaign'); ?>" />
|
470 |
+
<tr>
|
471 |
+
<td class="row1 fix_width2">
|
472 |
+
<label class="r_label"><?php echo $this->__('Send a campaign SMS'); ?></label>
|
473 |
+
<div class="radio_bx">
|
474 |
+
<input name="sms_campaign_setting" <?php if(Mage::getModel('sendinblue/sendinblue')->getCampaignStatus()==1) { echo 'checked'; } ?> class="sms_campaign_setting radio_nospaceing" type="radio" value="1" />
|
475 |
+
<?php echo $this->__('Yes'); ?>
|
476 |
+
<input name="sms_campaign_setting" <?php if(Mage::getModel('sendinblue/sendinblue')->getCampaignStatus()==0) { echo 'checked'; } ?> class="sms_campaign_setting radio_spaceing2" type="radio" value="0" />
|
477 |
+
<?php echo $this->__('No'); ?>
|
478 |
+
</div>
|
479 |
+
<div class="hideCampaign">
|
480 |
+
<div class="form_table ">
|
481 |
+
|
482 |
+
<table width="100%" border="0" cellspacing="0" cellpadding="0" >
|
483 |
+
<tr>
|
484 |
+
<td>
|
485 |
+
<form method="post" action="<?php echo $this->getUrl('*/*/sendcampaign'); ?>" name="sender_campaign_form">
|
486 |
+
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
|
487 |
+
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="form-list3 no-padding" >
|
488 |
+
<tr>
|
489 |
+
<td class="fix_width2" valign="top"> <label><?php echo $this->__('To'); ?></label></td>
|
490 |
+
<td>
|
491 |
+
<input name="Sendin_Sms_Choice" id="r1_Sendin_Sms_Choice" class="Sendin_Sms_Choice radio_nospaceing" type="radio" value="1" <?php if(Mage::getModel('sendinblue/sendinblue')->getShipingSmsStatus()==1) { echo 'checked'; } ?> />
|
492 |
+
<?php echo $this->__('A single contact'); ?>
|
493 |
+
|
494 |
+
<input name="Sendin_Sms_Choice" id="r2_Sendin_Sms_Choice" class="Sendin_Sms_Choice radio_spaceing2" type="radio" value="0" <?php if(Mage::getModel('sendinblue/sendinblue')->getShipingSmsStatus()==0) { echo 'checked'; } ?> />
|
495 |
+
<?php echo $this->__('All my Magento customers'); ?>
|
496 |
+
|
497 |
+
<input name="Sendin_Sms_Choice" id="r3_Sendin_Sms_Choice" class="Sendin_Sms_Choice radio_spaceing2" type="radio" value="2" <?php if(Mage::getModel('sendinblue/sendinblue')->getShipingSmsStatus()==0) { echo 'checked'; } ?> />
|
498 |
+
<?php echo $this->__('Only subscribed customers'); ?>
|
499 |
+
</td>
|
500 |
+
</tr>
|
501 |
+
<script>
|
502 |
+
jQuery('#r1_Sendin_Sms_Choice').attr('checked', true);
|
503 |
+
</script>
|
504 |
+
<tr>
|
505 |
+
<td><h4 style="margin-top:0;"><?php echo $this->__('SMS settings'); ?></h4></td>
|
506 |
+
<td> </td>
|
507 |
+
</tr>
|
508 |
+
|
509 |
+
|
510 |
+
<tr class="singlechoice">
|
511 |
+
<td valign="top"><label><?php echo $this->__('Phone number of the contact'); ?>
|
512 |
+
</label></td>
|
513 |
+
<td>
|
514 |
+
<input name="singlechoice" id="singlechoice" maxlength="17" type="text" value="" class="input_bx" /><span class="toolTip" title="<?php echo $this->__('The phone number should be in this form: 0033663309741 for this France mobile 06 63 30 97 41 (0033 is France prefix)'); ?>"> </span>
|
515 |
+
</td>
|
516 |
+
</tr>
|
517 |
+
|
518 |
+
<tr>
|
519 |
+
<td valign="top"><label><?php echo $this->__('Sender'); ?></label></td>
|
520 |
+
<td>
|
521 |
+
<input name="sender_campaign" maxlength="17" id="sender_campaign" type="text" value="" class="input_bx" autocomplete="off" />
|
522 |
+
<span class="toolTip" title="<?php echo $this->__('This field allows you to personalize the SMS sender. Attention, there is a limited number of characters.If you enter a name, it is limited to 11 characters, and special characters (é, à ...) are not accepted. If you enter a phone number, it is limited to 17 characters; the number should be preceded by 00 and the country code (for instance, for France mobile 06 12 34 56 78 use 0033612345678 with 0033 is France prefix ).'); ?>"> </span>
|
523 |
+
<div class="hintmsg"><em><?php echo $this->__('Number of characters left: '); ?><span id="sender_campaign_text">17</span></em>
|
524 |
+
</div>
|
525 |
+
|
526 |
+
</td>
|
527 |
+
</tr>
|
528 |
+
<tr>
|
529 |
+
<td valign="top"><label><?php echo $this->__('Message'); ?></label></td>
|
530 |
+
<td>
|
531 |
+
<textarea name="sender_campaign_message" id="sender_campaign_message" cols="45" rows="5" class="textarea_bx"></textarea>
|
532 |
+
<span class="toolTip" style="float:left; margin-top: 85px;" title="<?php echo $this->__(' Create the content of your SMS with the limit of 160-character.Beyond 160 characters, it will be counted as a second SMS. Thus, if you write SMS of 240 characters, it will be recorded using two SMS.'); ?>"> </span>
|
533 |
+
<span style="float:left; line-height:16px; margin-bottom:15px; width:470px; clear:both;"><?php echo $this->__('Number of SMS used: '); ?><span id="sender_campaign_message_text_count">0</span>
|
534 |
+
<div class="hintmsg"><em><?php echo $this->__('Number of characters left: '); ?></em><span id="sender_campaign_message_text">160</span></div>
|
535 |
+
<div class="hintmsg"><em><?php echo $this->__('Attention line break is counted as a single character.'); ?></em>
|
536 |
+
</div><br>
|
537 |
+
<div class="hintmsg"><em><?php echo $this->__('If you want to personalize the SMS, you can use the variables below:'); ?></em></div>
|
538 |
+
<div class="hintmsg"><em><?php echo $this->__('- For first name use {first_name}'); ?></em></div>
|
539 |
+
<div class="hintmsg"><em><?php echo $this->__('- For last name use {last_name}'); ?></em></div>
|
540 |
+
<input type="submit" class="button mrgn-right btn" value="<?php echo $this->__('Send the campaign'); ?>" name="sender_campaign_save" onclick="return senderCampaignSaveValid('<?php echo $this->__('Please fill the Sender field'); ?>','<?php echo $this->__('Please fill the Message field'); ?>','<?php echo $this->__('Please enter the valid Mobile Number'); ?>');"">
|
541 |
+
</td>
|
542 |
+
</tr>
|
543 |
+
</table>
|
544 |
+
</form>
|
545 |
+
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="form-data">
|
546 |
+
<tr>
|
547 |
+
<td>
|
548 |
+
<div class="hintmsg"><em><?php echo $this->__('Sending a test SMS will be deducted from your SMS credits.'); ?></em></div>
|
549 |
+
<label><?php echo $this->__('Send a test SMS'); ?></label>
|
550 |
+
<input name="sender_campaigntest_number" id="sender_campaigntest_number" maxlength="17" type="text" value="" class="input_bx" />
|
551 |
+
<span class="toolTip" title="<?php echo $this->__('The phone number should be in this form: 0033663309741 for this France mobile 06 63 30 97 41 (0033 is France prefix)'); ?>"> </span>
|
552 |
+
<input name="sender_campaignsms_submit" type="button" value="<?php echo $this->__('Send'); ?>" onclick="return testCampaignSmsSend('<?php echo $this->__('Please fill the Sender field'); ?>','<?php echo $this->__('Please fill the Message field'); ?>','<?php echo $this->__('Please fill the Mobile Phone field'); ?>');" class="button btn" />
|
553 |
+
<input type="hidden" name="smsCampError" id="smsCampError" style="display:none;" value="<?php echo $this->__('Message has not been sent successfully'); ?>"><input type="hidden" id="smsCampSuccess" name="smsCampSuccess" value="<?php echo $this->__('Message has been sent successfully'); ?>">
|
554 |
+
</td>
|
555 |
+
</tr>
|
556 |
+
</table>
|
557 |
+
</td>
|
558 |
+
</tr>
|
559 |
+
</table>
|
560 |
+
|
561 |
+
</div></span>
|
562 |
+
</td>
|
563 |
+
</tr>
|
564 |
+
</table>
|
565 |
+
</div>
|
566 |
+
</div>
|
567 |
+
</div>
|
568 |
+
</div>
|
569 |
+
</div>
|
570 |
+
</td>
|
571 |
+
</tr>
|
572 |
+
</tbody>
|
573 |
+
</table>
|
574 |
+
</fieldset>
|
575 |
+
</div>
|
576 |
+
<?php if($get_syncronize == 1) { ?>
|
577 |
+
<div class="sendin_row alldiv" <?php echo $style; ?> >
|
578 |
+
<fieldset id="my-fieldset" class="fields">
|
579 |
+
<legend class="lgend"><img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);?>adminhtml/default/default/sendinblue/images/logo.gif"> <?php echo $this->__('Contacts list'); ?> </legend>
|
580 |
+
|
581 |
+
<input name="ajaxcontentUrl" type="hidden" id="ajaxcontentUrl" value="<?php echo $this->getUrl('sendinblue/ajax/ajaxcontent'); ?>" />
|
582 |
+
<input name="ajaxUrl" type="hidden" id="ajaxUrl" value="<?php echo $this->getUrl('sendinblue/ajax/ajaxupdate'); ?>" />
|
583 |
+
<input name="ajaxOrderSmsUrl" type="hidden" id="ajaxOrderSmsUrl" value="<?php echo $this->getUrl('sendinblue/ajax/ajaxordersms'); ?>" />
|
584 |
+
<input name="ajaxOrderShippedUrl" type="hidden" id="ajaxOrderShippedUrl" value="<?php echo $this->getUrl('sendinblue/ajax/ajaxordershipped'); ?>" />
|
585 |
+
<input name="ajaxSmsCampaignUrl" type="hidden" id="ajaxSmsCampaignUrl" value="<?php echo $this->getUrl('sendinblue/ajax/ajaxsmscampaign'); ?>" />
|
586 |
+
<input type="hidden" name="pagenumber" id="pagenumber" value="1" />
|
587 |
+
<div id="userGrid">
|
588 |
+
<div class="grid">
|
589 |
+
<div class="hor-scroll">
|
590 |
+
<?php echo $this->__('You have '); ?> <?php echo Mage::getModel('sendinblue/sendinblue')->getNewsletterSubscribeCount(); ?>
|
591 |
+
<?php echo $this->__(' contacts subscribed and '); ?>
|
592 |
+
<?php echo Mage::getModel('sendinblue/sendinblue')->getNewsletterUnSubscribeCount(); ?>
|
593 |
+
<?php echo $this->__(' contacts unsubscribed from Magento.'); ?><span id="Spantextmore" >
|
594 |
+
<?php echo $this->__(' For more details,'); ?></span><span id="Spantextless" style="display: none;" >
|
595 |
+
<?php echo $this->__(' For less details,'); ?></span><b>
|
596 |
+
<a href="javascript:void(0);" id="showUserlist" style="color: #000000; outline: 0 none; text-decoration: none;"><?php echo $this->__('click here'); ?></a></b>
|
597 |
+
<br><br>
|
598 |
+
|
599 |
+
<table cellspacing="0" id="userGrid_table " class="data userDetails" style='display:none;'>
|
600 |
+
<thead>
|
601 |
+
<tr class="headings">
|
602 |
+
<th class="no-link"><span class="nobr"><?php echo $this->__('Email'); ?></span></th>
|
603 |
+
<th class="no-link"><span class="nobr"><?php echo $this->__('clients'); ?></span></th>
|
604 |
+
<th class="no-link"><span class="nobr"><?php echo $this->__('SMS'); ?></span></th>
|
605 |
+
<th class="no-link"><span class="nobr"><?php echo $this->__('Newsletter Magento Status'); ?></span></th>
|
606 |
+
<th class="no-link last"><span class="nobr"><?php echo $this->__('Newsletter SendinBlue Status'); ?><span title="<?php echo $this->__('Click on the icon to subscribe / unsubscribe the contact from SendinBlue and Magento.'); ?>" class="toolTip"> </span></span></th>
|
607 |
+
</tr>
|
608 |
+
</thead>
|
609 |
+
<tbody class='midleft'>
|
610 |
+
|
611 |
+
</tbody>
|
612 |
+
</table>
|
613 |
+
</div></div></div>
|
614 |
+
</fieldset>
|
615 |
+
</div>
|
616 |
+
<?php }} ?>
|
617 |
+
|
app/design/frontend/base/default/layout/sendinblue.xml
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout version="1.1.0">
|
3 |
+
<checkout_onepage_success>
|
4 |
+
<reference name="before_body_end">
|
5 |
+
<block ifconfig="sendinblue/tracking/code" type="sendinblue/sendinblue" name="sendinblue.sendinblue" />
|
6 |
+
</reference>
|
7 |
+
</checkout_onepage_success>
|
8 |
+
<checkout_multishipping_success>
|
9 |
+
<reference name="before_body_end">
|
10 |
+
<block ifconfig="sendinblue/tracking/code" type="sendinblue/sendinblue" name="sendinblue.sendinblue" />
|
11 |
+
</reference>
|
12 |
+
</checkout_multishipping_success>
|
13 |
+
|
14 |
+
<customer_address_form translate="label">
|
15 |
+
<reference name="my.account.wrapper">
|
16 |
+
<block type="customer/address_edit" name="sendinblue_account_edit" template="sendinblue/account/edit.phtml"/>
|
17 |
+
</reference>
|
18 |
+
</customer_address_form>
|
19 |
+
|
20 |
+
<checkout_multishipping_address_editshipping translate="label">
|
21 |
+
<reference name="content">
|
22 |
+
<block type="customer/address_edit" name="sendinblue_account_edit" template="sendinblue/account/edit.phtml"/>
|
23 |
+
</reference>
|
24 |
+
</checkout_multishipping_address_editshipping>
|
25 |
+
|
26 |
+
<checkout_multishipping_address_editaddress>
|
27 |
+
<reference name="content">
|
28 |
+
<block type="customer/address_edit" name="sendinblue_account_edit" template="sendinblue/account/edit.phtml"/>
|
29 |
+
</reference>
|
30 |
+
</checkout_multishipping_address_editaddress>
|
31 |
+
|
32 |
+
<checkout_multishipping_address_newbilling translate="label">
|
33 |
+
<reference name="content">
|
34 |
+
<block type="customer/address_edit" name="sendinblue_account_edit" template="sendinblue/account/edit.phtml"/>
|
35 |
+
</reference>
|
36 |
+
</checkout_multishipping_address_newbilling>
|
37 |
+
|
38 |
+
</layout>
|
app/design/frontend/base/default/template/sendinblue/account/edit.phtml
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
**/
|
10 |
+
?>
|
11 |
+
|
12 |
+
<div class="fieldset">
|
13 |
+
|
14 |
+
<h2 class="legend"><?php echo $this->__('SMS notifications'); ?></h2>
|
15 |
+
|
16 |
+
|
17 |
+
<ul class="form-list">
|
18 |
+
<li class="fields">
|
19 |
+
<label>
|
20 |
+
<?php echo $this->__('In order to receive update about your incoming orders, please fill the mobile phone input like this 0017185481985 (with country code) for the US number (718) 548-1985'); ?>
|
21 |
+
</label>
|
22 |
+
</li>
|
23 |
+
|
24 |
+
</ul>
|
25 |
+
|
26 |
+
</div>
|
app/etc/modules/Sendinblue_Sendinblue.xml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Sendinblue_Sendinblue>
|
5 |
+
<active>true</active>
|
6 |
+
<codePool>local</codePool>
|
7 |
+
</Sendinblue_Sendinblue>
|
8 |
+
</modules>
|
9 |
+
</config>
|
app/locale/en_US/template/email/sendin_notification.html
ADDED
@@ -0,0 +1,182 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2 |
+
|
3 |
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
4 |
+
|
5 |
+
<head>
|
6 |
+
|
7 |
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
8 |
+
|
9 |
+
<title>[SendinBlue] Alert: You do not have enough credits SMS</title>
|
10 |
+
|
11 |
+
</head>
|
12 |
+
|
13 |
+
|
14 |
+
|
15 |
+
<body style="font-family: Arial, Helvetica, sans-serif;font-size: 12px;color: #222;">
|
16 |
+
|
17 |
+
<div class="moz-forward-container"><br>
|
18 |
+
<table style="background-color:#ffffff" width="100%" border="0"
|
19 |
+
cellpadding="0" cellspacing="0">
|
20 |
+
<tbody>
|
21 |
+
<tr style="border-collapse:collapse;">
|
22 |
+
<td style="border-collapse:collapse;" align="center">
|
23 |
+
<table width="570" border="0" cellpadding="0"
|
24 |
+
cellspacing="0">
|
25 |
+
<tbody>
|
26 |
+
<tr>
|
27 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
28 |
+
</tr>
|
29 |
+
</tbody>
|
30 |
+
</table>
|
31 |
+
<table width="570" border="0" cellpadding="0"
|
32 |
+
cellspacing="0">
|
33 |
+
<tbody>
|
34 |
+
<tr>
|
35 |
+
<td valign="middle" align="left">
|
36 |
+
<h1 style="margin:0;color:#2f8bee;font-family:arial,sans-serif">
|
37 |
+
<img src="http://img.sendinblue.com/14406/images/529f2339c6ece.png" alt="SendinBlue">
|
38 |
+
</h1>
|
39 |
+
</td>
|
40 |
+
</tr>
|
41 |
+
</tbody>
|
42 |
+
</table>
|
43 |
+
<table width="570" border="0" cellpadding="0"
|
44 |
+
cellspacing="0">
|
45 |
+
<tbody>
|
46 |
+
<tr>
|
47 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
48 |
+
</tr>
|
49 |
+
</tbody>
|
50 |
+
</table>
|
51 |
+
<table width="540" border="0" cellpadding="0"
|
52 |
+
cellspacing="0">
|
53 |
+
<tbody>
|
54 |
+
<tr>
|
55 |
+
<td align="left">
|
56 |
+
<div style="font-family:arial,sans-serif;
|
57 |
+
color:#2f8bee; font-size:18px; font-weight:bold;
|
58 |
+
margin:0 0 10px 0;">Hello,<br /><br />
|
59 |
+
|
60 |
+
This email is sent to inform you that you don't have enough credits to send SMS from your Magento website {site_name}.<br /><br />
|
61 |
+
|
62 |
+
Actually, you have {present_credit} credits sms.<br /><br />
|
63 |
+
|
64 |
+
Regards,<br />
|
65 |
+
|
66 |
+
SendinBlue team<br />
|
67 |
+
</div>
|
68 |
+
</td>
|
69 |
+
</tr>
|
70 |
+
</tbody>
|
71 |
+
</table>
|
72 |
+
<table width="570" border="0" cellpadding="0"
|
73 |
+
cellspacing="0">
|
74 |
+
<tbody>
|
75 |
+
<tr>
|
76 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
77 |
+
</tr>
|
78 |
+
<tr>
|
79 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
80 |
+
</tr>
|
81 |
+
</tbody>
|
82 |
+
</table>
|
83 |
+
<table width="540" border="0" cellpadding="0"
|
84 |
+
cellspacing="0">
|
85 |
+
|
86 |
+
</table>
|
87 |
+
<table width="570" border="0" cellpadding="0"
|
88 |
+
cellspacing="0">
|
89 |
+
<tbody>
|
90 |
+
<tr>
|
91 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
92 |
+
</tr>
|
93 |
+
</tbody>
|
94 |
+
</table>
|
95 |
+
|
96 |
+
<table width="570" border="0" cellpadding="0"
|
97 |
+
cellspacing="0">
|
98 |
+
<tbody>
|
99 |
+
<tr>
|
100 |
+
<td style="line-height:0; font-size:0;" height="10"> </td>
|
101 |
+
</tr>
|
102 |
+
</tbody>
|
103 |
+
</table>
|
104 |
+
<table width="570" border="0" cellpadding="0"
|
105 |
+
cellspacing="0">
|
106 |
+
|
107 |
+
</table>
|
108 |
+
<table width="540" border="0" cellpadding="0"
|
109 |
+
cellspacing="0">
|
110 |
+
<tbody>
|
111 |
+
<tr>
|
112 |
+
<td style="line-height:0; font-size:0;" height="10"> </td>
|
113 |
+
</tr>
|
114 |
+
<tr>
|
115 |
+
<td align="left" valign="top" width="200">
|
116 |
+
<div
|
117 |
+
style="font-family:arial,sans-serif;
|
118 |
+
font-size:12px; margin:0;
|
119 |
+
line-height:16px; color:#7e7e7e;"> <strong
|
120 |
+
style="color:#2f8bee;">SendinBlue</strong>
|
121 |
+
</div>
|
122 |
+
<div
|
123 |
+
style="font-family:arial,sans-serif;
|
124 |
+
font-size:12px; margin:0;
|
125 |
+
line-height:16px; color:#7e7e7e;">
|
126 |
+
118, rue de Tocqueville</div>
|
127 |
+
<div
|
128 |
+
style="font-family:arial,sans-serif;
|
129 |
+
font-size:12px; margin:0;
|
130 |
+
line-height:16px; color:#7e7e7e;">
|
131 |
+
75017 Paris - France</div>
|
132 |
+
<div
|
133 |
+
style="font-family:arial,sans-serif;
|
134 |
+
font-size:12px; margin:0;
|
135 |
+
line-height:16px; color:#7e7e7e;"> Tél
|
136 |
+
: 0899 25 30 61</div>
|
137 |
+
<div
|
138 |
+
style="font-family:arial,sans-serif;
|
139 |
+
font-size:12px; margin:0;
|
140 |
+
line-height:16px; color:#7e7e7e;"> <a
|
141 |
+
moz-do-not-send="true"
|
142 |
+
href="http://www.sendinblue.com"
|
143 |
+
style="color:#2f8bee;"
|
144 |
+
target="_blank">www.sendinblue.com</a>
|
145 |
+
</div>
|
146 |
+
</td>
|
147 |
+
<td align="right" valign="top">
|
148 |
+
<div style="font-family:arial,sans-serif; font-size:12px; margin:0; line-height:20px; color:#7e7e7e;">
|
149 |
+
<a href="http://www.facebook.com/SendinBlue" style="color:#2f8bee; text-decoration:none;" target="_blank"> <img alt="Facebook" src="https://my.sendinblue.com/public/upload/14406/images/523693143fe88.gif" style="border:none;"> </a> <a href="https://twitter.com/SendinBlue" style="color:#2f8bee; text-decoration:none;" target="_blank"> <img alt="Twitter" src="https://my.sendinblue.com/public/upload/14406/images/5236931746c01.gif" style="border:none;"> </a> <a href="http://www.linkedin.com/company/mailin" style="color:#2f8bee; text-decoration:none;" target="_blank"> <img alt="Linkedin" src="https://my.sendinblue.com/public/upload/14406/images/5236931ad253b.gif" style="border:none;"> </a> <a href="http://sendinblue.tumblr.com/" style="color:#2f8bee; text-decoration:none;" target="_blank">Blog</a></div>
|
150 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;">
|
151 |
+
© 2013-2014 SendinBlue, all rights reserved.</div>
|
152 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;">
|
153 |
+
This is an automatic message generated by SendinBlue.</div>
|
154 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;">
|
155 |
+
Do not respond, you wouldn't receive any answer.</div>
|
156 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;"><a href="https://www.sendinblue.com/legal/antispampolicy" style="color:#7e7e7e;" target="_blank">Anti-spam & emailing policy</a> | <a href="https://www.sendinblue.com/legal/generalterms" style="color:#7e7e7e;" target="_blank">General Terms and Conditions</a></div>
|
157 |
+
</td>
|
158 |
+
</tr>
|
159 |
+
</tbody>
|
160 |
+
</table>
|
161 |
+
<table width="570" border="0" cellpadding="0"
|
162 |
+
cellspacing="0">
|
163 |
+
<tbody>
|
164 |
+
<tr>
|
165 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
166 |
+
</tr>
|
167 |
+
<tr>
|
168 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
169 |
+
</tr>
|
170 |
+
</tbody>
|
171 |
+
</table>
|
172 |
+
</td>
|
173 |
+
</tr>
|
174 |
+
</tbody>
|
175 |
+
</table>
|
176 |
+
<br>
|
177 |
+
</div>
|
178 |
+
|
179 |
+
</body>
|
180 |
+
|
181 |
+
</html>
|
182 |
+
|
app/locale/en_US/template/email/sendinsmtp_conf.html
ADDED
@@ -0,0 +1,169 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2 |
+
|
3 |
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
4 |
+
|
5 |
+
<head>
|
6 |
+
|
7 |
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
8 |
+
|
9 |
+
<title>[SendinBlue SMTP] test email</title>
|
10 |
+
|
11 |
+
</head>
|
12 |
+
|
13 |
+
|
14 |
+
|
15 |
+
<body style="font-family: Arial, Helvetica, sans-serif;font-size: 12px;color: #222;">
|
16 |
+
|
17 |
+
<div class="moz-forward-container"><br>
|
18 |
+
<table style="background-color:#ffffff" width="100%" border="0"
|
19 |
+
cellpadding="0" cellspacing="0">
|
20 |
+
<tbody>
|
21 |
+
<tr style="border-collapse:collapse;">
|
22 |
+
<td style="border-collapse:collapse;" align="center">
|
23 |
+
<table width="570" border="0" cellpadding="0"
|
24 |
+
cellspacing="0">
|
25 |
+
<tbody>
|
26 |
+
<tr>
|
27 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
28 |
+
</tr>
|
29 |
+
</tbody>
|
30 |
+
</table>
|
31 |
+
<table width="570" border="0" cellpadding="0"
|
32 |
+
cellspacing="0">
|
33 |
+
<tbody>
|
34 |
+
<tr>
|
35 |
+
<td valign="middle" align="left">
|
36 |
+
<h1 style="margin:0;color:#2f8bee;font-family:arial,sans-serif">
|
37 |
+
<img src="http://img.sendinblue.com/14406/images/529f2339c6ece.png" alt="SendinBlue">
|
38 |
+
</h1>
|
39 |
+
</td>
|
40 |
+
</tr>
|
41 |
+
</tbody>
|
42 |
+
</table>
|
43 |
+
<table width="570" border="0" cellpadding="0"
|
44 |
+
cellspacing="0">
|
45 |
+
<tbody>
|
46 |
+
<tr>
|
47 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
48 |
+
</tr>
|
49 |
+
</tbody>
|
50 |
+
</table>
|
51 |
+
<table width="540" border="0" cellpadding="0"
|
52 |
+
cellspacing="0">
|
53 |
+
<tbody>
|
54 |
+
<tr>
|
55 |
+
<td align="left">
|
56 |
+
<div style="font-family:arial,sans-serif;
|
57 |
+
color:#2f8bee; font-size:18px; font-weight:bold;
|
58 |
+
margin:0 0 10px 0;">This email has been sent using SendinBlue SMTP. <br />
|
59 |
+
Congratulations, your SendinBlue SMTP module has been set up well.
|
60 |
+
</div>
|
61 |
+
</td>
|
62 |
+
</tr>
|
63 |
+
</tbody>
|
64 |
+
</table>
|
65 |
+
<table width="570" border="0" cellpadding="0"
|
66 |
+
cellspacing="0">
|
67 |
+
<tbody>
|
68 |
+
<tr>
|
69 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
70 |
+
</tr>
|
71 |
+
<tr>
|
72 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
73 |
+
</tr>
|
74 |
+
</tbody>
|
75 |
+
</table>
|
76 |
+
<table width="540" border="0" cellpadding="0"
|
77 |
+
cellspacing="0">
|
78 |
+
<tbody>
|
79 |
+
<tr>
|
80 |
+
<td align="right">
|
81 |
+
<div style="font-family:arial,sans-serif;
|
82 |
+
font-size:14px; color:#2f8bee; margin:0;
|
83 |
+
font-weight:bold; line-height:18px;">SendinBlue Team</div>
|
84 |
+
</td>
|
85 |
+
</tr>
|
86 |
+
</tbody>
|
87 |
+
</table>
|
88 |
+
<table width="570" border="0" cellpadding="0"
|
89 |
+
cellspacing="0">
|
90 |
+
<tbody>
|
91 |
+
<tr>
|
92 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
93 |
+
</tr>
|
94 |
+
</tbody>
|
95 |
+
</table>
|
96 |
+
<table width="570" border="0" cellpadding="0"
|
97 |
+
cellspacing="0">
|
98 |
+
|
99 |
+
</table>
|
100 |
+
<table width="570" border="0" cellpadding="0"
|
101 |
+
cellspacing="0">
|
102 |
+
<tbody>
|
103 |
+
<tr>
|
104 |
+
<td style="line-height:0; font-size:0;" height="10"> </td>
|
105 |
+
</tr>
|
106 |
+
|
107 |
+
</tbody>
|
108 |
+
</table>
|
109 |
+
<table width="540" border="0" cellpadding="0"
|
110 |
+
cellspacing="0">
|
111 |
+
<tbody>
|
112 |
+
<tr>
|
113 |
+
<td style="line-height:0; font-size:0;" height="10"> </td>
|
114 |
+
</tr>
|
115 |
+
<tr>
|
116 |
+
<td valign="top" width="200" align="left">
|
117 |
+
<div style="font-family:arial,sans-serif;
|
118 |
+
font-size:12px; margin:0; line-height:16px;
|
119 |
+
color:#7e7e7e;"> <strong style="color:#2f8bee;">SendinBlue</strong></div>
|
120 |
+
<div style="font-family:arial,sans-serif;
|
121 |
+
font-size:12px; margin:0; line-height:16px;
|
122 |
+
color:#7e7e7e;"> 118, rue de Tocqueville</div>
|
123 |
+
<div style="font-family:arial,sans-serif;
|
124 |
+
font-size:12px; margin:0; line-height:16px;
|
125 |
+
color:#7e7e7e;"> 75017 Paris - France</div>
|
126 |
+
<div style="font-family:arial,sans-serif;
|
127 |
+
font-size:12px; margin:0; line-height:16px;
|
128 |
+
color:#7e7e7e;"> Tél : 0899 25 30 61</div>
|
129 |
+
<div style="font-family:arial,sans-serif;
|
130 |
+
font-size:12px; margin:0; line-height:16px;
|
131 |
+
color:#7e7e7e;"> <a moz-do-not-send="true"
|
132 |
+
href="http://www.sendinblue.com"
|
133 |
+
style="color:#2f8bee;" target="_blank">www.sendinblue.com</a></div>
|
134 |
+
</td>
|
135 |
+
<td align="right" valign="top">
|
136 |
+
<div style="font-family:arial,sans-serif; font-size:12px; margin:0; line-height:20px; color:#7e7e7e;">
|
137 |
+
<a href="http://www.facebook.com/SendinBlue" style="color:#2f8bee; text-decoration:none;" target="_blank"> <img alt="Facebook" src="https://my.sendinblue.com/public/upload/14406/images/523693143fe88.gif" style="border:none;"> </a> <a href="https://twitter.com/SendinBlue" style="color:#2f8bee; text-decoration:none;" target="_blank"> <img alt="Twitter" src="https://my.sendinblue.com/public/upload/14406/images/5236931746c01.gif" style="border:none;"> </a> <a href="http://www.linkedin.com/company/mailin" style="color:#2f8bee; text-decoration:none;" target="_blank"> <img alt="Linkedin" src="https://my.sendinblue.com/public/upload/14406/images/5236931ad253b.gif" style="border:none;"> </a> <a href="http://sendinblue.tumblr.com/" style="color:#2f8bee; text-decoration:none;" target="_blank">Blog</a></div>
|
138 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;">
|
139 |
+
© 2013-2014 SendinBlue, all rights reserved.</div>
|
140 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;">
|
141 |
+
This is an automatic message generated by SendinBlue.</div>
|
142 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;">
|
143 |
+
Do not respond, you wouldn't receive any answer.</div>
|
144 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;"><a href="https://www.sendinblue.com/legal/antispampolicy" style="color:#7e7e7e;" target="_blank">Anti-spam & emailing policy</a> | <a href="https://www.sendinblue.com/legal/generalterms" style="color:#7e7e7e;" target="_blank">General Terms and Conditions</a></div>
|
145 |
+
</td>
|
146 |
+
</tr>
|
147 |
+
</tbody>
|
148 |
+
</table>
|
149 |
+
<table width="570" border="0" cellpadding="0"
|
150 |
+
cellspacing="0">
|
151 |
+
<tbody>
|
152 |
+
<tr>
|
153 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
154 |
+
</tr>
|
155 |
+
<tr>
|
156 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
157 |
+
</tr>
|
158 |
+
</tbody>
|
159 |
+
</table>
|
160 |
+
</td>
|
161 |
+
</tr>
|
162 |
+
</tbody>
|
163 |
+
</table>
|
164 |
+
<br>
|
165 |
+
</div>
|
166 |
+
|
167 |
+
</body>
|
168 |
+
|
169 |
+
</html>
|
app/locale/fr_FR/Sendinblue.csv
ADDED
@@ -0,0 +1,130 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"SendinBlue : THE all-in-one plugin for your marketing and transactional emails.", "SendinBlue : LE plugin tout-en-un pour vos emails marketing et transactionnels."
|
2 |
+
"SendinBlue", "SendinBlue"
|
3 |
+
"Contact SendinBlue team", "Contactez l'équipe SendinBlue"
|
4 |
+
"Contact us:", "Contactez-nous :"
|
5 |
+
"contact@sendinblue.com", "contact@sendinblue.com"
|
6 |
+
"https://www.sendinblue.com", "https://www.sendinblue.com"
|
7 |
+
"For further informations, please visit our website:", "Pour plus d'informations, merci de visiter notre site internet:"
|
8 |
+
"Synchronize your subscribers with SendinBlue (subscribed and unsubscribed contacts)", "Synchronisation automatique de vos contacts avec SendinBlue (inscrits et désinscrits)"
|
9 |
+
"Easily create good looking emailings", "Outils d'aide à la création d'emailings"
|
10 |
+
"Schedule your campaigns", "Programmation des campagnes"
|
11 |
+
"Track your results and optimize", "Suivi des résultats"
|
12 |
+
"Monitor your transactional emails (purchase confirmation, password reset …) with a better deliverability and real-time analytics", "Pilotage simple et efficace de vos emails transactionnels (emails de confirmation de commande, de récupération de mot de passe …) avec une meilleure délivrabilité et le détail des ouvertures et des clics en temps réel"
|
13 |
+
"Why should you use SendinBlue ?", "Pourquoi utiliser SendinBlue ?"
|
14 |
+
"Optimized deliverability", "Une délivrabilité optimisée"
|
15 |
+
"Unbeatable pricing – best value in the industry", "Les meilleurs prix du marché, sans engagement"
|
16 |
+
"Technical support, by phone or by email", "Un support technique joignable par téléphone ou par email"
|
17 |
+
"Settings", "Paramètres"
|
18 |
+
"Activate the SendinBlue module:", "Activer le module SendinBlue:"
|
19 |
+
"Yes", "Oui"
|
20 |
+
"No", "Non"
|
21 |
+
"API Key:", "Clé API:"
|
22 |
+
"Validate & Save", "Valider et enregistrer"
|
23 |
+
"Please enter your API key from your SendinBlue account and if you don't have it yet, please go to www.sendinblue.com and subscribe. You can then get the API key from https://my.sendinblue.com/advanced/apikey", "Veuillez renseigner votre clé API qui est liée à votre compte SendinBlue. Elle est disponible sur cette page: https://my.sendinblue.com/advanced/apikey. Si vous ne possédez pas de compte SendinBlue, vous devez créer un compte sur le site https://www.sendinblue.com"
|
24 |
+
"Your lists", "Vos listes"
|
25 |
+
"Activate SendinBlue to manage subscribers", "Activer SendinBlue pour gérer vos contacts"
|
26 |
+
"Your Lists", "Vos listes"
|
27 |
+
"Select the contact list where you want to save the contacts of your site Magento. By default, we have created a list Magento in your SendinBlue account and we have selected it", "Choisissez les listes de contacts où vous souhaitez enregistrer les contacts de votre site Magento. Nous avons créé automatiquement une liste Magento sur votre compte SendinBlue, elle est sélectionnée par défaut."
|
28 |
+
"To synchronize the emails of your customers from SendinBlue platform to your e-commerce website, you should run ", "Pour synchroniser les emails de vos clients de la plateforme SendinBlue vers votre site e-commerce website, il faudra exécuter "
|
29 |
+
"this link", "ce lien"
|
30 |
+
"each day", "chaque jour."
|
31 |
+
"Activate SendinBlue SMTP for your transactional emails", "Activer SendinBlue SMTP pour vos emails transactionnels"
|
32 |
+
"SendinBlue SMTP ", "SendinBlue SMTP "
|
33 |
+
"is a product of SendinBlue and it allows you to manage your transactional emails", "est un produit de SendinBlue et vous permet de gérer vos emails transactionnels."
|
34 |
+
"Transactional email is an expected email because it is triggered automatically after a transaction or a specific event. Common examples of transactional email are : account opening and welcome message, order shipment confirmation, shipment tracking and purchase order status, registration via a contact form, account termination, payment confirmation, invoice etc.", "SendinBlue SMTP permet d'envoyer des emails transactionnels (un email transactionnel est envoyé pour attester d'une transaction ou d'un évènement. Exemple : email d'inscription, de confirmation de commande, une facture …). En activant cette fonctionnalité, vous êtes sûr que vos emails transactionnels parviennent bien à vos destinataires et vous pouvez consulter l'historique de vos emails (ouvertures, clics …)."
|
35 |
+
"Activate SendinBlue SMTP for your transactional emails", "Activer SendinBlue SMTP pour vos emails transactionnels"
|
36 |
+
"Send email test From / To :", "Envoyer un email de test à"
|
37 |
+
"Send", "Envoyer"
|
38 |
+
"Code tracking", "Code de tracking"
|
39 |
+
"Do you want to install a tracking code when validating an order", "Voulez vous installer un code de tracking lors de la validation d'une commande"
|
40 |
+
"This feature will allow you to transfer all your customers orders from Magento into SendinBlue to implement your email marketing strategy.", "Cette fonctionnalité vous permettra de remonter vos commandes réalisées depuis votre site Magento vers SendinBlue afin de mettre en place des strategies marketing lors de l'envoi de vos campagnes."
|
41 |
+
"You have ", "Vous avez "
|
42 |
+
" contacts subscribed and ", " contacts inscrits et "
|
43 |
+
" contacts unsubscribed from Magento.", " contacts désinscrits de Magento."
|
44 |
+
"Contacts list", "Liste des contacts "
|
45 |
+
" For more details,", " Pour plus de détails cliquez"
|
46 |
+
" For less details,", " Pour moins de détails, cliquez"
|
47 |
+
"click here", "ici"
|
48 |
+
"SendinBlue Setting", "Les Paramètres du module SendinBlue"
|
49 |
+
"Prerequisites", "Pré-requis"
|
50 |
+
"Clients", "Clients"
|
51 |
+
"Newsletter Magento Status", "Inscrit sur Magento"
|
52 |
+
"Newsletter SendinBlue Status", "Inscrit sur SendinBlue"
|
53 |
+
"- You should have a SendinBlue account. You can create a free account here:", "- Pour installer ce module, il est nécessaire d'avoir un compte SendinBlue. Vous pouvez en créer un gratuitement sur le site:"
|
54 |
+
"Click on the icon to subscribe / unsubscribe the contact from SendinBlue and Magento.", "Cliquez sur l'icône pour inscrire / désinscrire un contact de SendinBlue et Magento."
|
55 |
+
"Manage SMS", "Gestion des SMS"
|
56 |
+
"Currently you have ", "Actuellement, vous avez"
|
57 |
+
" credits sms. To buy more credits, please click", "crédits SMS. Pour acheter plus de crédits, cliquez "
|
58 |
+
"https://www.sendinblue.com/pricing", "https://fr.sendinblue.com/pricing"
|
59 |
+
"here", "ici"
|
60 |
+
"You want to be notified by e-mail when you do not have enough credits?", "Voulez vous être prévenu par e-mail lorsqu'il vous reste peu de crédits ?"
|
61 |
+
"Yes", "Oui"
|
62 |
+
"No", "Non"
|
63 |
+
"Limit", "Limite"
|
64 |
+
"Save", "Enregistrer"
|
65 |
+
"To get the email notification, you should run ", "Pour recevoir l'e-mail de notification, il faudra exécuter "
|
66 |
+
" atleast one time per day. ", "au moins une fois par jour."
|
67 |
+
"Note that if you change the name of your Shop (currently ", "Si vous changez le nom de votre boutique (actuellement "
|
68 |
+
") the token value changes.", ") la valeur du token changera. "
|
69 |
+
"Send SMS after order confirmation", "Envoyer un SMS après la confirmation de commande"
|
70 |
+
"Send a SMS confirmation for the shipment of the order", "Envoyer un SMS après l'expédition de commande"
|
71 |
+
"Send a campaign SMS", "Envoyer une campagne SMS"
|
72 |
+
"SMS settings", "Paramètres du SMS"
|
73 |
+
"Sender", "Expéditeur"
|
74 |
+
"This field allows you to personalize the SMS sender. Attention, there is a limited number of characters.If you enter a name, it is limited to 11 characters, and special characters (é, à ...) are not accepted. If you enter a phone number, it is limited to 17 characters; the number should be preceded by 00 and the country code (for instance, for France mobile 06 12 34 56 78 use 0033612345678 with 0033 is France prefix ).", "Ce champ vous permet de personnaliser l'expéditeur du SMS. Attention, il y 'a un nombre limité de caractères. Si vous entrez un nom, il sera limité à 11 caractères (les caractères spéciaux (é, à ...) ne sont pas acceptés) et si vous entrez un numéro de téléphone, il sera limité à 17 caractères. Le numéro devrait être précédé par 00 et le code du pays (par exemple, pour un numéro de téléphone mobile français 06 12 34 56 78 il faudra utiliser 0033612345678 (0033 est l'indicatif de la France)"
|
75 |
+
"Number of characters left: ", "Nombre de caractères restants: "
|
76 |
+
"Attention line break is counted as a single character.", "Attention, un saut de ligne est compté comme un seul caractère. "
|
77 |
+
" Create the content of your SMS with the limit of 160-character.Beyond 160 characters, it will be counted as a second SMS. Thus, if you write SMS of 240 characters, it will be recorded using two SMS.", "Créer le contenu de vos SMS avec une limite de 160 caractères. Au-delà de 160 caractères, il sera compté comme un second SMS. Ainsi, si vous écrivez un SMS de 240 caractères, il sera compté comme deux SMS."
|
78 |
+
"Number of SMS used: ", "Nombre de SMS utilisé(s):"
|
79 |
+
"Sending a test SMS will be deducted from your SMS credits.", "L'envoi d'un SMS test sera décompté de vos crédits SMS. "
|
80 |
+
"Send a test SMS", "Envoyer un SMS de test"
|
81 |
+
"The phone number should be in this form: 33663309741 for 06 63 30 97 41", "Le téléphone mobile doit être sous cette forme: 33663309741 pour 06 63 30 97 41"
|
82 |
+
"Send", "Envoyer"
|
83 |
+
"To", "à"
|
84 |
+
"A single contact", "Un seul contact"
|
85 |
+
"If you want to personalize the SMS, you can use the variables below:", "Si vous souhaitez personnaliser les SMS, vous pouvez utiliser les variables ci-dessous:"
|
86 |
+
"- For first name use {first_name}", "- Pour afficher le prénom, utiliser {first_name}"
|
87 |
+
"- For last name use {last_name}", "- Pour afficher le nom, utiliser {last_name}"
|
88 |
+
"- For order reference id use {order_reference}", "- Pour afficher l'id de la commande, utiliser {order_reference}"
|
89 |
+
"- For order price use {order_price}", "- Pour afficher le prix de la commande, utiliser {order_price}"
|
90 |
+
"- For order date use {order_date}", "- Pour afficher la date de la commande, utiliser {order_date}"
|
91 |
+
"All my Magento customers", "Tous mes contacts Magento"
|
92 |
+
"Phone number of the contact", "Numéro de téléphone du contact"
|
93 |
+
"Send the campaign", "Envoyer la campagne"
|
94 |
+
"Message has been sent successfully", "Le SMS a bien été envoyé"
|
95 |
+
"Message has not been sent successfully", "Le SMS n'a pas été envoyé"
|
96 |
+
"Please fill the Sender field", "Veuillez renseigner un expéditeur"
|
97 |
+
"Please fill the Mobile Phone field", "Veuillez renseigner votre Téléphone Mobile"
|
98 |
+
"Please enter the valid Mobile Number", "Veuillez renseigner votre Téléphone Mobile"
|
99 |
+
"Please fill the Message field", "Veuillez remplir le champ message"
|
100 |
+
"Please fill the message field", "Veuillez remplir le champ message"
|
101 |
+
"Please select a list", "Veuillez sélectionner une liste"
|
102 |
+
"Mail not sent", "Email non envoyé"
|
103 |
+
"Please fill message field", "Veuillez remplir le champ message"
|
104 |
+
"Your setting has been successfully saved", "Votre paramétrage a été enregistré avec succès"
|
105 |
+
"Please provide valid Email!", "Veuillez renseigner un email valide"
|
106 |
+
"Please provide a limit in integer format", "Le champ limite doit être un nombre entier"
|
107 |
+
"You have entered wrong api key", "Votre clé API n'est pas correcte"
|
108 |
+
"Your SMTP account is not activated and therefore you can not use SendinBlue SMTP. For more informations, Please contact our support to: contact@sendinblue.com", "Votre compte SMTP n'est pas activé et donc vous ne pouvez pas utiliser SendinBlue SMTP. Pour plus d'informations, vous pouvez contacter notre support à : contact@sendinblue.com"
|
109 |
+
"Your setting has been sucessfully saved", "Votre configuration a bien été enregistrée"
|
110 |
+
"Only subscribed customers", "Seuls les contacts abonnés"
|
111 |
+
"Successfully updated.", "Mise à jour effectuée avec succès"
|
112 |
+
"Mail sent!", "Email envoyé!"
|
113 |
+
"The CRON has been well executed.", "Le CRON a bien été exécuté."
|
114 |
+
"Activate SendinBlue to manage subscribers", "Activer SendinBlue pour gérer vos contacts"
|
115 |
+
"Please enter your API key", "Veuillez renseigner votre clé API"
|
116 |
+
"Alert threshold for remaining credits", "Seuil d'alerte de crédits restants"
|
117 |
+
"SMS notifications", "Notifications par SMS"
|
118 |
+
"In order to receive update about your incoming orders, please fill the mobile phone input like this 0017185481985 (with country code) for the US number (718) 548-1985", "Pour recevoir les informations de vos prochaines commandes, veuillez renseigner votre numéro de téléphone de la manière suivante: 0033663309748 (avec le code du pays) pour le numéro français 06 63 30 97 48"
|
119 |
+
"SendinBlue Settings", "Les Paramètres du module SendinBlue"
|
120 |
+
"Invalid form data.", "Invalides données de formulaire."
|
121 |
+
"Mail not sent,Hourly Quota Exceeded", "Email non envoyé parce que votre quota horaire a été dépassé"
|
122 |
+
"Selected", "liste(s) sélectionnée(s)"
|
123 |
+
"Hourly Quota Exceeded", "Quota horaire dépassé"
|
124 |
+
"The phone number should be in this form: 0033663309741 for this France mobile 06 63 30 97 41 (0033 is France prefix)", "Le numéro de téléphone mobile devrait être sous cette forme: 0033663309741 pour le numéro français 06 63 30 97 41 (0033 est l'indicatif de la France)"
|
125 |
+
"Update", "Mettre à jour"
|
126 |
+
"If you activate this feature, your new contacts will be automatically added to SendinBlue or unsubscribed from SendinBlue. To synchronize the other way (SendinBlue to Magento), you should run the url (mentioned below) each day.", " En activant cette fonctionnalité, vos nouveaux contacts seront automatiquement ajoutés / désinscrits de SendinBlue. Pour une synchronisation inverse (SendinBlue vers Magento), il faudra exécuter quotidiennement l'url du CRON (cf remarque plus bas)"
|
127 |
+
"The phone number should be in this form: 0033663309741 for this France mobile 06 63 30 97 41 (0033 is France prefix)", "Le numéro de téléphone mobile devrait être sous cette forme: 0033663309741 pour le numéro français 06 63 30 97 41 (0033 est l'indicatif de la France)"
|
128 |
+
"Select option", "Sélectionnez"
|
129 |
+
"Synchronize your Magento contacts with SendinBlue platform, easily send your marketing and transactional emails and SMS.", "Synchronisez les contacts de votre site Magento avec SendinBlue & envoyez facilement tous vos emails & SMS marketing et transactionnels."
|
130 |
+
"With the SendinBlue plugin, you can find everything you need to easily and efficiently send your email & SMS campaigns to your prospects and customers.", "Avec le module SendinBlue, retrouvez tout ce dont vous avez besoin pour envoyer simplement et efficacement vos campagnes emailing & SMS à vos prospects et clients :"
|
app/locale/fr_FR/template/email/sendin_notification.html
ADDED
@@ -0,0 +1,172 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2 |
+
|
3 |
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
4 |
+
|
5 |
+
<head>
|
6 |
+
|
7 |
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
8 |
+
|
9 |
+
<title> [SendinBlue] Alerte: Vos crédits SMS seront bientôt épuisés</title>
|
10 |
+
|
11 |
+
</head>
|
12 |
+
|
13 |
+
|
14 |
+
|
15 |
+
<body style="font-family: Arial, Helvetica, sans-serif;font-size: 12px;color: #222;">
|
16 |
+
|
17 |
+
<div class="moz-forward-container"><br>
|
18 |
+
<table style="background-color:#ffffff" width="100%" border="0"
|
19 |
+
cellpadding="0" cellspacing="0">
|
20 |
+
<tbody>
|
21 |
+
<tr style="border-collapse:collapse;">
|
22 |
+
<td style="border-collapse:collapse;" align="center">
|
23 |
+
<table width="570" border="0" cellpadding="0"
|
24 |
+
cellspacing="0">
|
25 |
+
<tbody>
|
26 |
+
<tr>
|
27 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
28 |
+
</tr>
|
29 |
+
</tbody>
|
30 |
+
</table>
|
31 |
+
<table width="570" border="0" cellpadding="0"
|
32 |
+
cellspacing="0">
|
33 |
+
<tbody>
|
34 |
+
<tr>
|
35 |
+
<td valign="middle" align="left">
|
36 |
+
<h1 style="margin:0;color:#2f8bee;font-family:arial,sans-serif">
|
37 |
+
<img src="http://img.sendinblue.com/14406/images/529f2339c6ece.png" alt="SendinBlue">
|
38 |
+
</h1>
|
39 |
+
</td>
|
40 |
+
</tr>
|
41 |
+
</tbody>
|
42 |
+
</table>
|
43 |
+
<table width="570" border="0" cellpadding="0"
|
44 |
+
cellspacing="0">
|
45 |
+
<tbody>
|
46 |
+
<tr>
|
47 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
48 |
+
</tr>
|
49 |
+
</tbody>
|
50 |
+
</table>
|
51 |
+
<table width="540" border="0" cellpadding="0"
|
52 |
+
cellspacing="0">
|
53 |
+
<tbody>
|
54 |
+
<tr>
|
55 |
+
<td align="left">
|
56 |
+
<div style="font-family:arial,sans-serif;
|
57 |
+
color:#2f8bee; font-size:18px; font-weight:bold;
|
58 |
+
margin:0 0 10px 0;">Bonjour,<br /><br />
|
59 |
+
|
60 |
+
Cet email est envoyé pour vous informer que vous n'avez plus assez de crédits pour envoyer des SMS à partir de votre site Magento {site_name}.<br /><br />
|
61 |
+
|
62 |
+
Actuellement, vous avez {present_credit} crédits SMS.<br /><br />
|
63 |
+
|
64 |
+
Cordialement,<br />
|
65 |
+
|
66 |
+
L'équipe de SendinBlue<br />
|
67 |
+
</div>
|
68 |
+
</td>
|
69 |
+
</tr>
|
70 |
+
</tbody>
|
71 |
+
</table>
|
72 |
+
<table width="570" border="0" cellpadding="0"
|
73 |
+
cellspacing="0">
|
74 |
+
<tbody>
|
75 |
+
<tr>
|
76 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
77 |
+
</tr>
|
78 |
+
<tr>
|
79 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
80 |
+
</tr>
|
81 |
+
</tbody>
|
82 |
+
</table>
|
83 |
+
<table width="540" border="0" cellpadding="0"
|
84 |
+
cellspacing="0">
|
85 |
+
|
86 |
+
</table>
|
87 |
+
<table width="570" border="0" cellpadding="0"
|
88 |
+
cellspacing="0">
|
89 |
+
<tbody>
|
90 |
+
<tr>
|
91 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
92 |
+
</tr>
|
93 |
+
</tbody>
|
94 |
+
</table>
|
95 |
+
<table width="570" border="0" cellpadding="0"
|
96 |
+
cellspacing="0">
|
97 |
+
|
98 |
+
</table>
|
99 |
+
<table width="570" border="0" cellpadding="0"
|
100 |
+
cellspacing="0">
|
101 |
+
<tbody>
|
102 |
+
<tr>
|
103 |
+
<td style="line-height:0; font-size:0;" height="10"> </td>
|
104 |
+
</tr>
|
105 |
+
</tbody>
|
106 |
+
</table>
|
107 |
+
<table width="540" border="0" cellpadding="0"
|
108 |
+
cellspacing="0">
|
109 |
+
<tbody>
|
110 |
+
<tr>
|
111 |
+
<td style="line-height:0; font-size:0;" height="10"> </td>
|
112 |
+
</tr>
|
113 |
+
<tr>
|
114 |
+
<td valign="top" width="200" align="left">
|
115 |
+
<div style="font-family:arial,sans-serif;
|
116 |
+
font-size:12px; margin:0; line-height:16px;
|
117 |
+
color:#7e7e7e;"> <strong style="color:#2f8bee;">SendinBlue</strong></div>
|
118 |
+
<div style="font-family:arial,sans-serif;
|
119 |
+
font-size:12px; margin:0; line-height:16px;
|
120 |
+
color:#7e7e7e;"> 118, rue de Tocqueville</div>
|
121 |
+
<div style="font-family:arial,sans-serif;
|
122 |
+
font-size:12px; margin:0; line-height:16px;
|
123 |
+
color:#7e7e7e;"> 75017 Paris - France</div>
|
124 |
+
<div style="font-family:arial,sans-serif;
|
125 |
+
font-size:12px; margin:0; line-height:16px;
|
126 |
+
color:#7e7e7e;"> Tél : 0899 25 30 61</div>
|
127 |
+
<div style="font-family:arial,sans-serif;
|
128 |
+
font-size:12px; margin:0; line-height:16px;
|
129 |
+
color:#7e7e7e;"> <a moz-do-not-send="true"
|
130 |
+
href="http://www.sendinblue.com"
|
131 |
+
style="color:#2f8bee;" target="_blank">www.sendinblue.com</a></div>
|
132 |
+
</td>
|
133 |
+
<td align="right" valign="top">
|
134 |
+
<div style="font-family:arial,sans-serif; font-size:12px; margin:0; line-height:20px; color:#7e7e7e;">
|
135 |
+
<a href="http://www.facebook.com/SendinBlue" style="color:#2f8bee; text-decoration:none;" target="_blank"> <img alt="Facebook" src="https://my.sendinblue.com/public/upload/14406/images/523693143fe88.gif" style="border:none;"> </a> <a href="https://twitter.com/SendinBlue" style="color:#2f8bee; text-decoration:none;" target="_blank"> <img alt="Twitter" src="https://my.sendinblue.com/public/upload/14406/images/5236931746c01.gif" style="border:none;"> </a> <a href="http://www.linkedin.com/company/mailin" style="color:#2f8bee; text-decoration:none;" target="_blank"> <img alt="Linkedin" src="https://my.sendinblue.com/public/upload/14406/images/5236931ad253b.gif" style="border:none;"> </a> <a href="http://sendinblue.tumblr.com/" style="color:#2f8bee; text-decoration:none;" target="_blank">Blog</a></div>
|
136 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;"> © 2013-2014 SendinBlue, tous droits
|
137 |
+
réservés.
|
138 |
+
</div>
|
139 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;"> Ceci est un message automatique
|
140 |
+
généré par SendinBlue.
|
141 |
+
</div>
|
142 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;"> Ne pas y répondre, vous ne
|
143 |
+
recevriez aucune réponse.
|
144 |
+
</div>
|
145 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;"><a href="https://www.sendinblue.com/legal/antispampolicy" style="color:#7e7e7e;" target="_blank">Politique
|
146 |
+
anti-spam & emailing</a> | <a href="https://www.sendinblue.com/legal/generalterms" style="color:#7e7e7e;" target="_blank">Conditions
|
147 |
+
générales de ventes</a></div>
|
148 |
+
</td>
|
149 |
+
</tr>
|
150 |
+
</tbody>
|
151 |
+
</table>
|
152 |
+
<table width="570" border="0" cellpadding="0"
|
153 |
+
cellspacing="0">
|
154 |
+
<tbody>
|
155 |
+
<tr>
|
156 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
157 |
+
</tr>
|
158 |
+
<tr>
|
159 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
160 |
+
</tr>
|
161 |
+
</tbody>
|
162 |
+
</table>
|
163 |
+
</td>
|
164 |
+
</tr>
|
165 |
+
</tbody>
|
166 |
+
</table>
|
167 |
+
<br>
|
168 |
+
</div>
|
169 |
+
|
170 |
+
</body>
|
171 |
+
|
172 |
+
</html>
|
app/locale/fr_FR/template/email/sendinsmtp_conf.html
ADDED
@@ -0,0 +1,174 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2 |
+
|
3 |
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
4 |
+
|
5 |
+
<head>
|
6 |
+
|
7 |
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
8 |
+
|
9 |
+
<title>[SendinBlue SMTP] e-mail de test</title>
|
10 |
+
|
11 |
+
</head>
|
12 |
+
|
13 |
+
|
14 |
+
|
15 |
+
<body style="font-family: Arial, Helvetica, sans-serif;font-size: 12px;color: #222;">
|
16 |
+
|
17 |
+
<div class="moz-forward-container"><br>
|
18 |
+
<table style="background-color:#ffffff" width="100%" border="0"
|
19 |
+
cellpadding="0" cellspacing="0">
|
20 |
+
<tbody>
|
21 |
+
<tr style="border-collapse:collapse;">
|
22 |
+
<td style="border-collapse:collapse;" align="center">
|
23 |
+
<table width="570" border="0" cellpadding="0"
|
24 |
+
cellspacing="0">
|
25 |
+
<tbody>
|
26 |
+
<tr>
|
27 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
28 |
+
</tr>
|
29 |
+
</tbody>
|
30 |
+
</table>
|
31 |
+
<table width="570" border="0" cellpadding="0"
|
32 |
+
cellspacing="0">
|
33 |
+
<tbody>
|
34 |
+
<tr>
|
35 |
+
<td valign="middle" align="left">
|
36 |
+
<h1 style="margin:0;color:#2f8bee;font-family:arial,sans-serif">
|
37 |
+
<img src="http://img.sendinblue.com/14406/images/529f2339c6ece.png" alt="SendinBlue">
|
38 |
+
</h1>
|
39 |
+
</td>
|
40 |
+
</tr>
|
41 |
+
</tbody>
|
42 |
+
</table>
|
43 |
+
<table width="570" border="0" cellpadding="0"
|
44 |
+
cellspacing="0">
|
45 |
+
<tbody>
|
46 |
+
<tr>
|
47 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
48 |
+
</tr>
|
49 |
+
</tbody>
|
50 |
+
</table>
|
51 |
+
<table width="540" border="0" cellpadding="0"
|
52 |
+
cellspacing="0">
|
53 |
+
<tbody>
|
54 |
+
<tr>
|
55 |
+
<td align="left">
|
56 |
+
<div style="font-family:arial,sans-serif;
|
57 |
+
color:#2f8bee; font-size:18px; font-weight:bold;
|
58 |
+
margin:0 0 10px 0;">Cet e-mail a été envoyé via SendinBlue SMTP. <br />
|
59 |
+
Félicitations, la fonctionnalité SendinBlue SMTP est bien configurée.
|
60 |
+
</div>
|
61 |
+
</td>
|
62 |
+
</tr>
|
63 |
+
</tbody>
|
64 |
+
</table>
|
65 |
+
<table width="570" border="0" cellpadding="0"
|
66 |
+
cellspacing="0">
|
67 |
+
<tbody>
|
68 |
+
<tr>
|
69 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
70 |
+
</tr>
|
71 |
+
<tr>
|
72 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
73 |
+
</tr>
|
74 |
+
</tbody>
|
75 |
+
</table>
|
76 |
+
<table width="540" border="0" cellpadding="0"
|
77 |
+
cellspacing="0">
|
78 |
+
<tbody>
|
79 |
+
<tr>
|
80 |
+
<td align="right">
|
81 |
+
<div style="font-family:arial,sans-serif;
|
82 |
+
font-size:14px; color:#2f8bee; margin:0;
|
83 |
+
font-weight:bold; line-height:18px;"> L'équipe
|
84 |
+
de SendinBlue</div>
|
85 |
+
</td>
|
86 |
+
</tr>
|
87 |
+
</tbody>
|
88 |
+
</table>
|
89 |
+
<table width="570" border="0" cellpadding="0"
|
90 |
+
cellspacing="0">
|
91 |
+
<tbody>
|
92 |
+
<tr>
|
93 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
94 |
+
</tr>
|
95 |
+
</tbody>
|
96 |
+
</table>
|
97 |
+
<table width="570" border="0" cellpadding="0"
|
98 |
+
cellspacing="0">
|
99 |
+
|
100 |
+
</table>
|
101 |
+
<table width="570" border="0" cellpadding="0"
|
102 |
+
cellspacing="0">
|
103 |
+
<tbody>
|
104 |
+
<tr>
|
105 |
+
<td style="line-height:0; font-size:0;" height="10"> </td>
|
106 |
+
</tr>
|
107 |
+
</tbody>
|
108 |
+
</table>
|
109 |
+
<table width="540" border="0" cellpadding="0"
|
110 |
+
cellspacing="0">
|
111 |
+
<tbody>
|
112 |
+
<tr>
|
113 |
+
<td style="line-height:0; font-size:0;" height="10"> </td>
|
114 |
+
</tr>
|
115 |
+
<tr>
|
116 |
+
<td valign="top" width="200" align="left">
|
117 |
+
<div style="font-family:arial,sans-serif;
|
118 |
+
font-size:12px; margin:0; line-height:16px;
|
119 |
+
color:#7e7e7e;"> <strong style="color:#2f8bee;">SendinBlue</strong></div>
|
120 |
+
<div style="font-family:arial,sans-serif;
|
121 |
+
font-size:12px; margin:0; line-height:16px;
|
122 |
+
color:#7e7e7e;"> 118, rue de Tocqueville</div>
|
123 |
+
<div style="font-family:arial,sans-serif;
|
124 |
+
font-size:12px; margin:0; line-height:16px;
|
125 |
+
color:#7e7e7e;"> 75017 Paris - France</div>
|
126 |
+
<div style="font-family:arial,sans-serif;
|
127 |
+
font-size:12px; margin:0; line-height:16px;
|
128 |
+
color:#7e7e7e;"> Tél : 0899 25 30 61</div>
|
129 |
+
<div style="font-family:arial,sans-serif;
|
130 |
+
font-size:12px; margin:0; line-height:16px;
|
131 |
+
color:#7e7e7e;"> <a moz-do-not-send="true"
|
132 |
+
href="http://www.sendinblue.com"
|
133 |
+
style="color:#2f8bee;" target="_blank">www.sendinblue.com</a></div>
|
134 |
+
</td>
|
135 |
+
<td align="right" valign="top">
|
136 |
+
<div style="font-family:arial,sans-serif; font-size:12px; margin:0; line-height:20px; color:#7e7e7e;">
|
137 |
+
<a href="http://www.facebook.com/SendinBlue" style="color:#2f8bee; text-decoration:none;" target="_blank"> <img alt="Facebook" src="https://my.sendinblue.com/public/upload/14406/images/523693143fe88.gif" style="border:none;"> </a> <a href="https://twitter.com/SendinBlue" style="color:#2f8bee; text-decoration:none;" target="_blank"> <img alt="Twitter" src="https://my.sendinblue.com/public/upload/14406/images/5236931746c01.gif" style="border:none;"> </a> <a href="http://www.linkedin.com/company/mailin" style="color:#2f8bee; text-decoration:none;" target="_blank"> <img alt="Linkedin" src="https://my.sendinblue.com/public/upload/14406/images/5236931ad253b.gif" style="border:none;"> </a> <a href="http://sendinblue.tumblr.com/" style="color:#2f8bee; text-decoration:none;" target="_blank">Blog</a></div>
|
138 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;"> © 2013-2014 SendinBlue, tous droits
|
139 |
+
réservés.
|
140 |
+
</div>
|
141 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;"> Ceci est un message automatique
|
142 |
+
généré par SendinBlue.
|
143 |
+
</div>
|
144 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;"> Ne pas y répondre, vous ne
|
145 |
+
recevriez aucune réponse.
|
146 |
+
</div>
|
147 |
+
<div style="font-family:arial,sans-serif; font-size:10px; margin:0; line-height:14px; color:#7e7e7e;"><a href="https://www.sendinblue.com/legal/antispampolicy" style="color:#7e7e7e;" target="_blank">Politique
|
148 |
+
anti-spam & emailing</a> | <a href="https://www.sendinblue.com/legal/generalterms" style="color:#7e7e7e;" target="_blank">Conditions
|
149 |
+
générales de ventes</a></div>
|
150 |
+
</td>
|
151 |
+
</tr>
|
152 |
+
</tbody>
|
153 |
+
</table>
|
154 |
+
<table width="570" border="0" cellpadding="0"
|
155 |
+
cellspacing="0">
|
156 |
+
<tbody>
|
157 |
+
<tr>
|
158 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
159 |
+
</tr>
|
160 |
+
<tr>
|
161 |
+
<td style="line-height:0; font-size:0;" height="20"> </td>
|
162 |
+
</tr>
|
163 |
+
</tbody>
|
164 |
+
</table>
|
165 |
+
</td>
|
166 |
+
</tr>
|
167 |
+
</tbody>
|
168 |
+
</table>
|
169 |
+
<br>
|
170 |
+
</div>
|
171 |
+
|
172 |
+
</body>
|
173 |
+
|
174 |
+
</html>
|
package.xml
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<package>
|
3 |
+
<name>Sendinblue</name>
|
4 |
+
<version>1.1.0</version>
|
5 |
+
<stability>stable</stability>
|
6 |
+
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL V1.0</license>
|
7 |
+
<channel>community</channel>
|
8 |
+
<extends/>
|
9 |
+
<summary>Synchronize your Magento contacts with SendinBlue platform, easily send your marketing and transactional emails and SMS.</summary>
|
10 |
+
<description>With the SendinBlue plugin, you can find everything you need to easily and efficiently send your email and SMS campaigns to your prospects and customers.
|
11 |
+
Synchronize your subscribers with SendinBlue (subscribed and unsubscribed contacts)
|
12 |
+
Easily create good looking emailings
|
13 |
+
Schedule your campaigns
|
14 |
+
Track your results and optimize
|
15 |
+
Monitor your transactional emails (purchase confirmation, password reset, etc) with a better deliverability and real-time analytics
|
16 |
+
Why should you use SendinBlue
|
17 |
+
Optimized deliverability
|
18 |
+
Unbeatable pricing–best value in the industry
|
19 |
+
Technical support, by phone or by email</description>
|
20 |
+
<notes>Synchronize your Magento contacts with SendinBlue platform, send your marketing and transactional emails and SMS</notes>
|
21 |
+
<authors><author><name>SendinBlue</name><user>Sendinblue_Team</user><email>contact@sendinblue.com</email></author></authors>
|
22 |
+
<date>2014-02-28</date>
|
23 |
+
<time>10:05:32</time>
|
24 |
+
<contents><target name="magelocal"><dir name="Sendinblue"><dir name="Sendinblue"><dir name="Block"><file name="Sendinblue.php" hash="4b5adae031b714e188d576e306bfd5a1"/></dir><dir name="Helper"><file name="Data.php" hash="0532b48f611c1cc623589d5792e0dbf2"/></dir><dir name="Model"><dir name="Email"><file name="Template.php" hash="6d2d6eac00b7bd6da3ff53d2abe40dd4"/></dir><file name="Email.php" hash="fe07aa2dba951ee117bda2cefebfb875"/><dir name="Mysql4"><dir name="Sendinblue"><file name="Collection.php" hash="d6aff03eda9a6b2ee1c42b8dd50df402"/></dir><file name="Sendinblue.php" hash="c000c1f6a277f7c9a91ad628b02eb001"/></dir><file name="Observer.php" hash="250cc069aa5194652f6503e2cc0f8194"/><file name="Sendinblue.php" hash="963c473c2f3ca66f23d00de0c4c9292f"/><file name="Status.php" hash="444fe4d099bd23a9d87cdf7e2b2e6cbb"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="MyformController.php" hash="67dd963b1f003d2b2f25c8b4643d4715"/><file name="NotifyController.php" hash="e3b43db59f8c5b7c8cd54a58a7bc2d1b"/><file name="SyncController.php" hash="352fd0d804701d0228bad7e7b92afb58"/></dir><file name="AjaxController.php" hash="b4914ddac9d4e836ecf53869055a6a82"/><file name="IndexController.php" hash="2cf5287ba31d6960eb28c2cbc03a60ed"/></dir><dir name="etc"><file name="adminhtml.xml" hash="640ba5382a16c749fc56a2a8283682ee"/><file name="config.xml" hash="ba48680b7267a4b2d27f4645792b2393"/></dir><dir name="sql"><dir name="sendinblue_setup"><file name="install-0.1.0.php" hash="58bb365dcb29115c66f2fa3f17dcb697"/><file name="mysql4-upgrade-0.1.0-0.2.0.php" hash="b50e876441a247cd5feb2614ff649fd3"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="sendinblue.xml" hash="e23253764fbbf0e3a2f1cb5ff65eb318"/></dir><dir name="template"><dir name="sendinblue"><file name="myform.phtml" hash="2a4748e2e456d2b95d9828bf2da90bd8"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="sendinblue.xml" hash="61346d8b2b321b10c09a77fef39ec112"/></dir><dir name="template"><dir name="sendinblue"><dir name="account"><file name="edit.phtml" hash="c2b17e90e59e1d13791feded28982330"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Sendinblue_Sendinblue.xml" hash="1a245999d412c36ea9666b56bfc63e2d"/></dir></target><target name="magelocale"><dir name="fr_FR"><file name="Sendinblue.csv" hash="72507895f18a8c4a80611065790aba56"/></dir></target><target name="mage"><dir name="app"><dir name="locale"><dir name="fr_FR"><dir name="template"><dir name="email"><file name="sendin_notification.html" hash="557ddb7212800b4a99937b2d8956270c"/><file name="sendinsmtp_conf.html" hash="b1c790c78605b2beb4cd38152cd8f0ca"/>
|
25 |
+
</dir></dir></dir><dir name="en_US"><dir name="template"><dir name="email"><file name="sendin_notification.html" hash="de646d23657f68387d32683d14ea215a"/><file name="sendinsmtp_conf.html" hash="a35979191ec11cd5cbebc0efece1c472"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="sendinblue"><dir name="css"><file name="jquery-ui.css" hash="3f3d39116de928eb9c3cc33004efae77"/><file name="jquery.multiselect.css" hash="b2ecda55b895b485e49baa5759cc61fe"/><file name="styles.css" hash="61f4da300d2b59cc4d22af19d6abc742"/></dir><dir name="images"><file name="close.png" hash="223ea7c82841be9da96aec80bd68b7f5"/><file name="disabled.gif" hash="21ff0e6ba24381e63789116139180cf0"/><file name="enabled.gif" hash="0db2c4f24c0f0c3f7958a05181af897a"/><file name="help.gif" hash="19002f53dd724465717c27f0399c0a90"/><file name="index.php" hash="507d846db3efc2563672c8f60ac080f4"/><file name="loader.gif" hash="394bafc3cc4dfb3a0ee48c1f54669539"/><file name="loading_anim.gif" hash="b494fceca79586281a29c9462b09c85a"/><file name="logo.gif" hash="b13ce89934c4aa2aeb76d75896efe40f"/><file name="logo.png" hash="76ecf5757c096639a3b27ed5fc470d48"/><file name="sendinblue.png" hash="4bb823a9290b79546cc99d57de304db9"/><file name="ui-icons_ef8c08_256x240.png" hash="47fc08e06aba0b7ac0a6d3b9f92894cb"/><file name="ui-icons_ef8c08_256x240.png.png" hash="47fc08e06aba0b7ac0a6d3b9f92894cb"/></dir><dir name="js"><file name="index.php" hash="36aa6e5d248b48fd910a4dfa1987ca56"/><file name="jquery-1.9.1.min.js" hash="397754ba49e9e0cf4e7c190da78dda05"/><file name="jquery-ui.min.js" hash="3e6acb1e6426ef90d2e786a006a4ea28"/><file name="jquery.multiselect.js" hash="9851bb7a2509099e28ee789fc864570e"/><file name="jquery.multiselect.min.js" hash="efb34f759712b9da1172c3a2efe8ef6b"/><file name="sendinblue.js" hash="e5d8ac61766af444255eb9226a0cb344"/><file name="sendinblue.min.js" hash="60a1241bec9edc538c360ac459890927"/></dir></dir></dir></dir></dir></target></contents>
|
26 |
+
<compatible/>
|
27 |
+
<dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php></required></dependencies>
|
28 |
+
</package>
|
skin/adminhtml/default/default/sendinblue/css/jquery-ui.css
ADDED
@@ -0,0 +1,1175 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery UI - v1.10.2 - 2013-03-14
|
2 |
+
* http://jqueryui.com
|
3 |
+
* Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css
|
4 |
+
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
|
5 |
+
* Copyright 2013 jQuery Foundation and other contributors Licensed MIT */
|
6 |
+
|
7 |
+
/* Layout helpers
|
8 |
+
----------------------------------*/
|
9 |
+
.ui-helper-hidden {
|
10 |
+
display: none;
|
11 |
+
}
|
12 |
+
.ui-helper-hidden-accessible {
|
13 |
+
border: 0;
|
14 |
+
clip: rect(0 0 0 0);
|
15 |
+
height: 1px;
|
16 |
+
margin: -1px;
|
17 |
+
overflow: hidden;
|
18 |
+
padding: 0;
|
19 |
+
position: absolute;
|
20 |
+
width: 1px;
|
21 |
+
}
|
22 |
+
.ui-helper-reset {
|
23 |
+
margin: 0;
|
24 |
+
padding: 0;
|
25 |
+
border: 0;
|
26 |
+
outline: 0;
|
27 |
+
line-height: 1.3;
|
28 |
+
text-decoration: none;
|
29 |
+
font-size: 100%;
|
30 |
+
list-style: none;
|
31 |
+
}
|
32 |
+
.ui-helper-clearfix:before,
|
33 |
+
.ui-helper-clearfix:after {
|
34 |
+
content: "";
|
35 |
+
display: table;
|
36 |
+
border-collapse: collapse;
|
37 |
+
}
|
38 |
+
.ui-helper-clearfix:after {
|
39 |
+
clear: both;
|
40 |
+
}
|
41 |
+
.ui-helper-clearfix {
|
42 |
+
min-height: 0; /* support: IE7 */
|
43 |
+
}
|
44 |
+
.ui-helper-zfix {
|
45 |
+
width: 100%;
|
46 |
+
height: 100%;
|
47 |
+
top: 0;
|
48 |
+
left: 0;
|
49 |
+
position: absolute;
|
50 |
+
opacity: 0;
|
51 |
+
filter:Alpha(Opacity=0);
|
52 |
+
}
|
53 |
+
|
54 |
+
.ui-front {
|
55 |
+
z-index: 100;
|
56 |
+
}
|
57 |
+
|
58 |
+
|
59 |
+
/* Interaction Cues
|
60 |
+
----------------------------------*/
|
61 |
+
.ui-state-disabled {
|
62 |
+
cursor: default !important;
|
63 |
+
}
|
64 |
+
|
65 |
+
|
66 |
+
/* Icons
|
67 |
+
----------------------------------*/
|
68 |
+
|
69 |
+
/* states and images */
|
70 |
+
.ui-icon {
|
71 |
+
display: block;
|
72 |
+
text-indent: -99999px;
|
73 |
+
overflow: hidden;
|
74 |
+
background-repeat: no-repeat;
|
75 |
+
}
|
76 |
+
|
77 |
+
|
78 |
+
/* Misc visuals
|
79 |
+
----------------------------------*/
|
80 |
+
|
81 |
+
/* Overlays */
|
82 |
+
.ui-widget-overlay {
|
83 |
+
position: fixed;
|
84 |
+
top: 0;
|
85 |
+
left: 0;
|
86 |
+
width: 100%;
|
87 |
+
height: 100%;
|
88 |
+
}
|
89 |
+
.ui-accordion .ui-accordion-header {
|
90 |
+
display: block;
|
91 |
+
cursor: pointer;
|
92 |
+
position: relative;
|
93 |
+
margin-top: 2px;
|
94 |
+
padding: .5em .5em .5em .7em;
|
95 |
+
min-height: 0; /* support: IE7 */
|
96 |
+
}
|
97 |
+
.ui-accordion .ui-accordion-icons {
|
98 |
+
padding-left: 2.2em;
|
99 |
+
}
|
100 |
+
.ui-accordion .ui-accordion-noicons {
|
101 |
+
padding-left: .7em;
|
102 |
+
}
|
103 |
+
.ui-accordion .ui-accordion-icons .ui-accordion-icons {
|
104 |
+
padding-left: 2.2em;
|
105 |
+
}
|
106 |
+
.ui-accordion .ui-accordion-header .ui-accordion-header-icon {
|
107 |
+
position: absolute;
|
108 |
+
left: .5em;
|
109 |
+
top: 50%;
|
110 |
+
margin-top: -8px;
|
111 |
+
}
|
112 |
+
.ui-accordion .ui-accordion-content {
|
113 |
+
padding: 1em 2.2em;
|
114 |
+
border-top: 0;
|
115 |
+
overflow: auto;
|
116 |
+
}
|
117 |
+
.ui-autocomplete {
|
118 |
+
position: absolute;
|
119 |
+
top: 0;
|
120 |
+
left: 0;
|
121 |
+
cursor: default;
|
122 |
+
}
|
123 |
+
.ui-button {
|
124 |
+
display: inline-block;
|
125 |
+
position: relative;
|
126 |
+
padding: 0;
|
127 |
+
line-height: normal;
|
128 |
+
margin-right: .1em;
|
129 |
+
cursor: pointer;
|
130 |
+
vertical-align: middle;
|
131 |
+
text-align: center;
|
132 |
+
overflow: visible; /* removes extra width in IE */
|
133 |
+
}
|
134 |
+
.ui-button,
|
135 |
+
.ui-button:link,
|
136 |
+
.ui-button:visited,
|
137 |
+
.ui-button:hover,
|
138 |
+
.ui-button:active {
|
139 |
+
text-decoration: none;
|
140 |
+
}
|
141 |
+
/* to make room for the icon, a width needs to be set here */
|
142 |
+
.ui-button-icon-only {
|
143 |
+
width: 2.2em;
|
144 |
+
}
|
145 |
+
/* button elements seem to need a little more width */
|
146 |
+
button.ui-button-icon-only {
|
147 |
+
width: 2.4em;
|
148 |
+
}
|
149 |
+
.ui-button-icons-only {
|
150 |
+
width: 3.4em;
|
151 |
+
}
|
152 |
+
button.ui-button-icons-only {
|
153 |
+
width: 3.7em;
|
154 |
+
}
|
155 |
+
|
156 |
+
/* button text element */
|
157 |
+
.ui-button .ui-button-text {
|
158 |
+
display: block;
|
159 |
+
line-height: normal;
|
160 |
+
}
|
161 |
+
.ui-button-text-only .ui-button-text {
|
162 |
+
padding: .4em 1em;
|
163 |
+
}
|
164 |
+
.ui-button-icon-only .ui-button-text,
|
165 |
+
.ui-button-icons-only .ui-button-text {
|
166 |
+
padding: .4em;
|
167 |
+
text-indent: -9999999px;
|
168 |
+
}
|
169 |
+
.ui-button-text-icon-primary .ui-button-text,
|
170 |
+
.ui-button-text-icons .ui-button-text {
|
171 |
+
padding: .4em 1em .4em 2.1em;
|
172 |
+
}
|
173 |
+
.ui-button-text-icon-secondary .ui-button-text,
|
174 |
+
.ui-button-text-icons .ui-button-text {
|
175 |
+
padding: .4em 2.1em .4em 1em;
|
176 |
+
}
|
177 |
+
.ui-button-text-icons .ui-button-text {
|
178 |
+
padding-left: 2.1em;
|
179 |
+
padding-right: 2.1em;
|
180 |
+
}
|
181 |
+
/* no icon support for input elements, provide padding by default */
|
182 |
+
input.ui-button {
|
183 |
+
padding: .4em 1em;
|
184 |
+
}
|
185 |
+
|
186 |
+
/* button icon element(s) */
|
187 |
+
.ui-button-icon-only .ui-icon,
|
188 |
+
.ui-button-text-icon-primary .ui-icon,
|
189 |
+
.ui-button-text-icon-secondary .ui-icon,
|
190 |
+
.ui-button-text-icons .ui-icon,
|
191 |
+
.ui-button-icons-only .ui-icon {
|
192 |
+
position: absolute;
|
193 |
+
top: 50%;
|
194 |
+
margin-top: -8px;
|
195 |
+
}
|
196 |
+
.ui-button-icon-only .ui-icon {
|
197 |
+
left: 50%;
|
198 |
+
margin-left: -8px;
|
199 |
+
}
|
200 |
+
.ui-button-text-icon-primary .ui-button-icon-primary,
|
201 |
+
.ui-button-text-icons .ui-button-icon-primary,
|
202 |
+
.ui-button-icons-only .ui-button-icon-primary {
|
203 |
+
left: .5em;
|
204 |
+
}
|
205 |
+
.ui-button-text-icon-secondary .ui-button-icon-secondary,
|
206 |
+
.ui-button-text-icons .ui-button-icon-secondary,
|
207 |
+
.ui-button-icons-only .ui-button-icon-secondary {
|
208 |
+
right: .5em;
|
209 |
+
}
|
210 |
+
|
211 |
+
/* button sets */
|
212 |
+
.ui-buttonset {
|
213 |
+
margin-right: 7px;
|
214 |
+
}
|
215 |
+
.ui-buttonset .ui-button {
|
216 |
+
margin-left: 0;
|
217 |
+
margin-right: -.3em;
|
218 |
+
}
|
219 |
+
|
220 |
+
/* workarounds */
|
221 |
+
/* reset extra padding in Firefox, see h5bp.com/l */
|
222 |
+
input.ui-button::-moz-focus-inner,
|
223 |
+
button.ui-button::-moz-focus-inner {
|
224 |
+
border: 0;
|
225 |
+
padding: 0;
|
226 |
+
}
|
227 |
+
.ui-datepicker {
|
228 |
+
width: 17em;
|
229 |
+
padding: .2em .2em 0;
|
230 |
+
display: none;
|
231 |
+
}
|
232 |
+
.ui-datepicker .ui-datepicker-header {
|
233 |
+
position: relative;
|
234 |
+
padding: .2em 0;
|
235 |
+
}
|
236 |
+
.ui-datepicker .ui-datepicker-prev,
|
237 |
+
.ui-datepicker .ui-datepicker-next {
|
238 |
+
position: absolute;
|
239 |
+
top: 2px;
|
240 |
+
width: 1.8em;
|
241 |
+
height: 1.8em;
|
242 |
+
}
|
243 |
+
.ui-datepicker .ui-datepicker-prev-hover,
|
244 |
+
.ui-datepicker .ui-datepicker-next-hover {
|
245 |
+
top: 1px;
|
246 |
+
}
|
247 |
+
.ui-datepicker .ui-datepicker-prev {
|
248 |
+
left: 2px;
|
249 |
+
}
|
250 |
+
.ui-datepicker .ui-datepicker-next {
|
251 |
+
right: 2px;
|
252 |
+
}
|
253 |
+
.ui-datepicker .ui-datepicker-prev-hover {
|
254 |
+
left: 1px;
|
255 |
+
}
|
256 |
+
.ui-datepicker .ui-datepicker-next-hover {
|
257 |
+
right: 1px;
|
258 |
+
}
|
259 |
+
.ui-datepicker .ui-datepicker-prev span,
|
260 |
+
.ui-datepicker .ui-datepicker-next span {
|
261 |
+
display: block;
|
262 |
+
position: absolute;
|
263 |
+
left: 50%;
|
264 |
+
margin-left: -8px;
|
265 |
+
top: 50%;
|
266 |
+
margin-top: -8px;
|
267 |
+
}
|
268 |
+
.ui-datepicker .ui-datepicker-title {
|
269 |
+
margin: 0 2.3em;
|
270 |
+
line-height: 1.8em;
|
271 |
+
text-align: center;
|
272 |
+
}
|
273 |
+
.ui-datepicker .ui-datepicker-title select {
|
274 |
+
font-size: 1em;
|
275 |
+
margin: 1px 0;
|
276 |
+
}
|
277 |
+
.ui-datepicker select.ui-datepicker-month-year {
|
278 |
+
width: 100%;
|
279 |
+
}
|
280 |
+
.ui-datepicker select.ui-datepicker-month,
|
281 |
+
.ui-datepicker select.ui-datepicker-year {
|
282 |
+
width: 49%;
|
283 |
+
}
|
284 |
+
.ui-datepicker table {
|
285 |
+
width: 100%;
|
286 |
+
font-size: .9em;
|
287 |
+
border-collapse: collapse;
|
288 |
+
margin: 0 0 .4em;
|
289 |
+
}
|
290 |
+
.ui-datepicker th {
|
291 |
+
padding: .7em .3em;
|
292 |
+
text-align: center;
|
293 |
+
font-weight: bold;
|
294 |
+
border: 0;
|
295 |
+
}
|
296 |
+
.ui-datepicker td {
|
297 |
+
border: 0;
|
298 |
+
padding: 1px;
|
299 |
+
}
|
300 |
+
.ui-datepicker td span,
|
301 |
+
.ui-datepicker td a {
|
302 |
+
display: block;
|
303 |
+
padding: .2em;
|
304 |
+
text-align: right;
|
305 |
+
text-decoration: none;
|
306 |
+
}
|
307 |
+
.ui-datepicker .ui-datepicker-buttonpane {
|
308 |
+
background-image: none;
|
309 |
+
margin: .7em 0 0 0;
|
310 |
+
padding: 0 .2em;
|
311 |
+
border-left: 0;
|
312 |
+
border-right: 0;
|
313 |
+
border-bottom: 0;
|
314 |
+
}
|
315 |
+
.ui-datepicker .ui-datepicker-buttonpane button {
|
316 |
+
float: right;
|
317 |
+
margin: .5em .2em .4em;
|
318 |
+
cursor: pointer;
|
319 |
+
padding: .2em .6em .3em .6em;
|
320 |
+
width: auto;
|
321 |
+
overflow: visible;
|
322 |
+
}
|
323 |
+
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
|
324 |
+
float: left;
|
325 |
+
}
|
326 |
+
|
327 |
+
/* with multiple calendars */
|
328 |
+
.ui-datepicker.ui-datepicker-multi {
|
329 |
+
width: auto;
|
330 |
+
}
|
331 |
+
.ui-datepicker-multi .ui-datepicker-group {
|
332 |
+
float: left;
|
333 |
+
}
|
334 |
+
.ui-datepicker-multi .ui-datepicker-group table {
|
335 |
+
width: 95%;
|
336 |
+
margin: 0 auto .4em;
|
337 |
+
}
|
338 |
+
.ui-datepicker-multi-2 .ui-datepicker-group {
|
339 |
+
width: 50%;
|
340 |
+
}
|
341 |
+
.ui-datepicker-multi-3 .ui-datepicker-group {
|
342 |
+
width: 33.3%;
|
343 |
+
}
|
344 |
+
.ui-datepicker-multi-4 .ui-datepicker-group {
|
345 |
+
width: 25%;
|
346 |
+
}
|
347 |
+
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
|
348 |
+
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
|
349 |
+
border-left-width: 0;
|
350 |
+
}
|
351 |
+
.ui-datepicker-multi .ui-datepicker-buttonpane {
|
352 |
+
clear: left;
|
353 |
+
}
|
354 |
+
.ui-datepicker-row-break {
|
355 |
+
clear: both;
|
356 |
+
width: 100%;
|
357 |
+
font-size: 0;
|
358 |
+
}
|
359 |
+
|
360 |
+
/* RTL support */
|
361 |
+
.ui-datepicker-rtl {
|
362 |
+
direction: rtl;
|
363 |
+
}
|
364 |
+
.ui-datepicker-rtl .ui-datepicker-prev {
|
365 |
+
right: 2px;
|
366 |
+
left: auto;
|
367 |
+
}
|
368 |
+
.ui-datepicker-rtl .ui-datepicker-next {
|
369 |
+
left: 2px;
|
370 |
+
right: auto;
|
371 |
+
}
|
372 |
+
.ui-datepicker-rtl .ui-datepicker-prev:hover {
|
373 |
+
right: 1px;
|
374 |
+
left: auto;
|
375 |
+
}
|
376 |
+
.ui-datepicker-rtl .ui-datepicker-next:hover {
|
377 |
+
left: 1px;
|
378 |
+
right: auto;
|
379 |
+
}
|
380 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane {
|
381 |
+
clear: right;
|
382 |
+
}
|
383 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button {
|
384 |
+
float: left;
|
385 |
+
}
|
386 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
|
387 |
+
.ui-datepicker-rtl .ui-datepicker-group {
|
388 |
+
float: right;
|
389 |
+
}
|
390 |
+
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
|
391 |
+
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
|
392 |
+
border-right-width: 0;
|
393 |
+
border-left-width: 1px;
|
394 |
+
}
|
395 |
+
.ui-dialog {
|
396 |
+
position: absolute;
|
397 |
+
top: 0;
|
398 |
+
left: 0;
|
399 |
+
padding: .2em;
|
400 |
+
outline: 0;
|
401 |
+
}
|
402 |
+
.ui-dialog .ui-dialog-titlebar {
|
403 |
+
padding: .4em 1em;
|
404 |
+
position: relative;
|
405 |
+
}
|
406 |
+
.ui-dialog .ui-dialog-title {
|
407 |
+
float: left;
|
408 |
+
margin: .1em 0;
|
409 |
+
white-space: nowrap;
|
410 |
+
width: 90%;
|
411 |
+
overflow: hidden;
|
412 |
+
text-overflow: ellipsis;
|
413 |
+
}
|
414 |
+
.ui-dialog .ui-dialog-titlebar-close {
|
415 |
+
position: absolute;
|
416 |
+
right: .3em;
|
417 |
+
top: 50%;
|
418 |
+
width: 21px;
|
419 |
+
margin: -10px 0 0 0;
|
420 |
+
padding: 1px;
|
421 |
+
height: 20px;
|
422 |
+
}
|
423 |
+
.ui-dialog .ui-dialog-content {
|
424 |
+
position: relative;
|
425 |
+
border: 0;
|
426 |
+
padding: .5em 1em;
|
427 |
+
background: none;
|
428 |
+
overflow: auto;
|
429 |
+
}
|
430 |
+
.ui-dialog .ui-dialog-buttonpane {
|
431 |
+
text-align: left;
|
432 |
+
border-width: 1px 0 0 0;
|
433 |
+
background-image: none;
|
434 |
+
margin-top: .5em;
|
435 |
+
padding: .3em 1em .5em .4em;
|
436 |
+
}
|
437 |
+
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
|
438 |
+
float: right;
|
439 |
+
}
|
440 |
+
.ui-dialog .ui-dialog-buttonpane button {
|
441 |
+
margin: .5em .4em .5em 0;
|
442 |
+
cursor: pointer;
|
443 |
+
}
|
444 |
+
.ui-dialog .ui-resizable-se {
|
445 |
+
width: 12px;
|
446 |
+
height: 12px;
|
447 |
+
right: -5px;
|
448 |
+
bottom: -5px;
|
449 |
+
background-position: 16px 16px;
|
450 |
+
}
|
451 |
+
.ui-draggable .ui-dialog-titlebar {
|
452 |
+
cursor: move;
|
453 |
+
}
|
454 |
+
.ui-menu {
|
455 |
+
list-style: none;
|
456 |
+
padding: 2px;
|
457 |
+
margin: 0;
|
458 |
+
display: block;
|
459 |
+
outline: none;
|
460 |
+
}
|
461 |
+
.ui-menu .ui-menu {
|
462 |
+
margin-top: -3px;
|
463 |
+
position: absolute;
|
464 |
+
}
|
465 |
+
.ui-menu .ui-menu-item {
|
466 |
+
margin: 0;
|
467 |
+
padding: 0;
|
468 |
+
width: 100%;
|
469 |
+
}
|
470 |
+
.ui-menu .ui-menu-divider {
|
471 |
+
margin: 5px -2px 5px -2px;
|
472 |
+
height: 0;
|
473 |
+
font-size: 0;
|
474 |
+
line-height: 0;
|
475 |
+
border-width: 1px 0 0 0;
|
476 |
+
}
|
477 |
+
.ui-menu .ui-menu-item a {
|
478 |
+
text-decoration: none;
|
479 |
+
display: block;
|
480 |
+
padding: 2px .4em;
|
481 |
+
line-height: 1.5;
|
482 |
+
min-height: 0; /* support: IE7 */
|
483 |
+
font-weight: normal;
|
484 |
+
}
|
485 |
+
.ui-menu .ui-menu-item a.ui-state-focus,
|
486 |
+
.ui-menu .ui-menu-item a.ui-state-active {
|
487 |
+
font-weight: normal;
|
488 |
+
margin: -1px;
|
489 |
+
}
|
490 |
+
|
491 |
+
.ui-menu .ui-state-disabled {
|
492 |
+
font-weight: normal;
|
493 |
+
margin: .4em 0 .2em;
|
494 |
+
line-height: 1.5;
|
495 |
+
}
|
496 |
+
.ui-menu .ui-state-disabled a {
|
497 |
+
cursor: default;
|
498 |
+
}
|
499 |
+
|
500 |
+
/* icon support */
|
501 |
+
.ui-menu-icons {
|
502 |
+
position: relative;
|
503 |
+
}
|
504 |
+
.ui-menu-icons .ui-menu-item a {
|
505 |
+
position: relative;
|
506 |
+
padding-left: 2em;
|
507 |
+
}
|
508 |
+
|
509 |
+
/* left-aligned */
|
510 |
+
.ui-menu .ui-icon {
|
511 |
+
position: absolute;
|
512 |
+
top: .2em;
|
513 |
+
left: .2em;
|
514 |
+
}
|
515 |
+
|
516 |
+
/* right-aligned */
|
517 |
+
.ui-menu .ui-menu-icon {
|
518 |
+
position: static;
|
519 |
+
float: right;
|
520 |
+
}
|
521 |
+
.ui-progressbar {
|
522 |
+
height: 2em;
|
523 |
+
text-align: left;
|
524 |
+
overflow: hidden;
|
525 |
+
}
|
526 |
+
.ui-progressbar .ui-progressbar-value {
|
527 |
+
margin: -1px;
|
528 |
+
height: 100%;
|
529 |
+
}
|
530 |
+
.ui-progressbar .ui-progressbar-overlay {
|
531 |
+
background: url("images/animated-overlay.gif");
|
532 |
+
height: 100%;
|
533 |
+
filter: alpha(opacity=25);
|
534 |
+
opacity: 0.25;
|
535 |
+
}
|
536 |
+
.ui-progressbar-indeterminate .ui-progressbar-value {
|
537 |
+
background-image: none;
|
538 |
+
}
|
539 |
+
.ui-resizable {
|
540 |
+
position: relative;
|
541 |
+
}
|
542 |
+
.ui-resizable-handle {
|
543 |
+
position: absolute;
|
544 |
+
font-size: 0.1px;
|
545 |
+
display: block;
|
546 |
+
}
|
547 |
+
.ui-resizable-disabled .ui-resizable-handle,
|
548 |
+
.ui-resizable-autohide .ui-resizable-handle {
|
549 |
+
display: none;
|
550 |
+
}
|
551 |
+
.ui-resizable-n {
|
552 |
+
cursor: n-resize;
|
553 |
+
height: 7px;
|
554 |
+
width: 100%;
|
555 |
+
top: -5px;
|
556 |
+
left: 0;
|
557 |
+
}
|
558 |
+
.ui-resizable-s {
|
559 |
+
cursor: s-resize;
|
560 |
+
height: 7px;
|
561 |
+
width: 100%;
|
562 |
+
bottom: -5px;
|
563 |
+
left: 0;
|
564 |
+
}
|
565 |
+
.ui-resizable-e {
|
566 |
+
cursor: e-resize;
|
567 |
+
width: 7px;
|
568 |
+
right: -5px;
|
569 |
+
top: 0;
|
570 |
+
height: 100%;
|
571 |
+
}
|
572 |
+
.ui-resizable-w {
|
573 |
+
cursor: w-resize;
|
574 |
+
width: 7px;
|
575 |
+
left: -5px;
|
576 |
+
top: 0;
|
577 |
+
height: 100%;
|
578 |
+
}
|
579 |
+
.ui-resizable-se {
|
580 |
+
cursor: se-resize;
|
581 |
+
width: 12px;
|
582 |
+
height: 12px;
|
583 |
+
right: 1px;
|
584 |
+
bottom: 1px;
|
585 |
+
}
|
586 |
+
.ui-resizable-sw {
|
587 |
+
cursor: sw-resize;
|
588 |
+
width: 9px;
|
589 |
+
height: 9px;
|
590 |
+
left: -5px;
|
591 |
+
bottom: -5px;
|
592 |
+
}
|
593 |
+
.ui-resizable-nw {
|
594 |
+
cursor: nw-resize;
|
595 |
+
width: 9px;
|
596 |
+
height: 9px;
|
597 |
+
left: -5px;
|
598 |
+
top: -5px;
|
599 |
+
}
|
600 |
+
.ui-resizable-ne {
|
601 |
+
cursor: ne-resize;
|
602 |
+
width: 9px;
|
603 |
+
height: 9px;
|
604 |
+
right: -5px;
|
605 |
+
top: -5px;
|
606 |
+
}
|
607 |
+
.ui-selectable-helper {
|
608 |
+
position: absolute;
|
609 |
+
z-index: 100;
|
610 |
+
border: 1px dotted black;
|
611 |
+
}
|
612 |
+
.ui-slider {
|
613 |
+
position: relative;
|
614 |
+
text-align: left;
|
615 |
+
}
|
616 |
+
.ui-slider .ui-slider-handle {
|
617 |
+
position: absolute;
|
618 |
+
z-index: 2;
|
619 |
+
width: 1.2em;
|
620 |
+
height: 1.2em;
|
621 |
+
cursor: default;
|
622 |
+
}
|
623 |
+
.ui-slider .ui-slider-range {
|
624 |
+
position: absolute;
|
625 |
+
z-index: 1;
|
626 |
+
font-size: .7em;
|
627 |
+
display: block;
|
628 |
+
border: 0;
|
629 |
+
background-position: 0 0;
|
630 |
+
}
|
631 |
+
|
632 |
+
/* For IE8 - See #6727 */
|
633 |
+
.ui-slider.ui-state-disabled .ui-slider-handle,
|
634 |
+
.ui-slider.ui-state-disabled .ui-slider-range {
|
635 |
+
filter: inherit;
|
636 |
+
}
|
637 |
+
|
638 |
+
.ui-slider-horizontal {
|
639 |
+
height: .8em;
|
640 |
+
}
|
641 |
+
.ui-slider-horizontal .ui-slider-handle {
|
642 |
+
top: -.3em;
|
643 |
+
margin-left: -.6em;
|
644 |
+
}
|
645 |
+
.ui-slider-horizontal .ui-slider-range {
|
646 |
+
top: 0;
|
647 |
+
height: 100%;
|
648 |
+
}
|
649 |
+
.ui-slider-horizontal .ui-slider-range-min {
|
650 |
+
left: 0;
|
651 |
+
}
|
652 |
+
.ui-slider-horizontal .ui-slider-range-max {
|
653 |
+
right: 0;
|
654 |
+
}
|
655 |
+
|
656 |
+
.ui-slider-vertical {
|
657 |
+
width: .8em;
|
658 |
+
height: 100px;
|
659 |
+
}
|
660 |
+
.ui-slider-vertical .ui-slider-handle {
|
661 |
+
left: -.3em;
|
662 |
+
margin-left: 0;
|
663 |
+
margin-bottom: -.6em;
|
664 |
+
}
|
665 |
+
.ui-slider-vertical .ui-slider-range {
|
666 |
+
left: 0;
|
667 |
+
width: 100%;
|
668 |
+
}
|
669 |
+
.ui-slider-vertical .ui-slider-range-min {
|
670 |
+
bottom: 0;
|
671 |
+
}
|
672 |
+
.ui-slider-vertical .ui-slider-range-max {
|
673 |
+
top: 0;
|
674 |
+
}
|
675 |
+
.ui-spinner {
|
676 |
+
position: relative;
|
677 |
+
display: inline-block;
|
678 |
+
overflow: hidden;
|
679 |
+
padding: 0;
|
680 |
+
vertical-align: middle;
|
681 |
+
}
|
682 |
+
.ui-spinner-input {
|
683 |
+
border: none;
|
684 |
+
background: none;
|
685 |
+
color: inherit;
|
686 |
+
padding: 0;
|
687 |
+
margin: .2em 0;
|
688 |
+
vertical-align: middle;
|
689 |
+
margin-left: .4em;
|
690 |
+
margin-right: 22px;
|
691 |
+
}
|
692 |
+
.ui-spinner-button {
|
693 |
+
width: 16px;
|
694 |
+
height: 50%;
|
695 |
+
font-size: .5em;
|
696 |
+
padding: 0;
|
697 |
+
margin: 0;
|
698 |
+
text-align: center;
|
699 |
+
position: absolute;
|
700 |
+
cursor: default;
|
701 |
+
display: block;
|
702 |
+
overflow: hidden;
|
703 |
+
right: 0;
|
704 |
+
}
|
705 |
+
/* more specificity required here to overide default borders */
|
706 |
+
.ui-spinner a.ui-spinner-button {
|
707 |
+
border-top: none;
|
708 |
+
border-bottom: none;
|
709 |
+
border-right: none;
|
710 |
+
}
|
711 |
+
/* vertical centre icon */
|
712 |
+
.ui-spinner .ui-icon {
|
713 |
+
position: absolute;
|
714 |
+
margin-top: -8px;
|
715 |
+
top: 50%;
|
716 |
+
left: 0;
|
717 |
+
}
|
718 |
+
.ui-spinner-up {
|
719 |
+
top: 0;
|
720 |
+
}
|
721 |
+
.ui-spinner-down {
|
722 |
+
bottom: 0;
|
723 |
+
}
|
724 |
+
|
725 |
+
/* TR overrides */
|
726 |
+
.ui-spinner .ui-icon-triangle-1-s {
|
727 |
+
/* need to fix icons sprite */
|
728 |
+
background-position: -65px -16px;
|
729 |
+
}
|
730 |
+
.ui-tabs {
|
731 |
+
position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
732 |
+
padding: .2em;
|
733 |
+
}
|
734 |
+
.ui-tabs .ui-tabs-nav {
|
735 |
+
margin: 0;
|
736 |
+
padding: .2em .2em 0;
|
737 |
+
}
|
738 |
+
.ui-tabs .ui-tabs-nav li {
|
739 |
+
list-style: none;
|
740 |
+
float: left;
|
741 |
+
position: relative;
|
742 |
+
top: 0;
|
743 |
+
margin: 1px .2em 0 0;
|
744 |
+
border-bottom-width: 0;
|
745 |
+
padding: 0;
|
746 |
+
white-space: nowrap;
|
747 |
+
}
|
748 |
+
.ui-tabs .ui-tabs-nav li a {
|
749 |
+
float: left;
|
750 |
+
padding: .5em 1em;
|
751 |
+
text-decoration: none;
|
752 |
+
}
|
753 |
+
.ui-tabs .ui-tabs-nav li.ui-tabs-active {
|
754 |
+
margin-bottom: -1px;
|
755 |
+
padding-bottom: 1px;
|
756 |
+
}
|
757 |
+
.ui-tabs .ui-tabs-nav li.ui-tabs-active a,
|
758 |
+
.ui-tabs .ui-tabs-nav li.ui-state-disabled a,
|
759 |
+
.ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
|
760 |
+
cursor: text;
|
761 |
+
}
|
762 |
+
.ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
763 |
+
.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
|
764 |
+
cursor: pointer;
|
765 |
+
}
|
766 |
+
.ui-tabs .ui-tabs-panel {
|
767 |
+
display: block;
|
768 |
+
border-width: 0;
|
769 |
+
padding: 1em 1.4em;
|
770 |
+
background: none;
|
771 |
+
}
|
772 |
+
.ui-tooltip {
|
773 |
+
padding: 8px;
|
774 |
+
position: absolute;
|
775 |
+
z-index: 9999;
|
776 |
+
max-width: 300px;
|
777 |
+
-webkit-box-shadow: 0 0 5px #aaa;
|
778 |
+
box-shadow: 0 0 5px #aaa;
|
779 |
+
}
|
780 |
+
body .ui-tooltip {
|
781 |
+
border-width: 2px;
|
782 |
+
}
|
783 |
+
|
784 |
+
/* Component containers
|
785 |
+
----------------------------------*/
|
786 |
+
.ui-widget {
|
787 |
+
font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;
|
788 |
+
font-size: 1.1em;
|
789 |
+
}
|
790 |
+
.ui-widget .ui-widget {
|
791 |
+
font-size: 1em;
|
792 |
+
}
|
793 |
+
.ui-widget input,
|
794 |
+
.ui-widget select,
|
795 |
+
.ui-widget textarea,
|
796 |
+
.ui-widget button {
|
797 |
+
font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;
|
798 |
+
font-size: 1em;
|
799 |
+
}
|
800 |
+
.ui-widget-content {
|
801 |
+
border: 1px solid #dddddd;
|
802 |
+
background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x;
|
803 |
+
color: #333333;
|
804 |
+
}
|
805 |
+
.ui-widget-content a {
|
806 |
+
color: #333333;
|
807 |
+
}
|
808 |
+
.ui-widget-header {
|
809 |
+
border: 1px solid #e78f08;
|
810 |
+
background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x;
|
811 |
+
color: #ffffff;
|
812 |
+
font-weight: bold;
|
813 |
+
}
|
814 |
+
.ui-widget-header a {
|
815 |
+
color: #ffffff;
|
816 |
+
}
|
817 |
+
|
818 |
+
/* Interaction states
|
819 |
+
----------------------------------*/
|
820 |
+
.ui-state-default,
|
821 |
+
.ui-widget-content .ui-state-default,
|
822 |
+
.ui-widget-header .ui-state-default {
|
823 |
+
border: 1px solid #cccccc;
|
824 |
+
background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x;
|
825 |
+
font-weight: bold;
|
826 |
+
color: #1c94c4;
|
827 |
+
}
|
828 |
+
.ui-state-default a,
|
829 |
+
.ui-state-default a:link,
|
830 |
+
.ui-state-default a:visited {
|
831 |
+
color: #1c94c4;
|
832 |
+
text-decoration: none;
|
833 |
+
}
|
834 |
+
.ui-state-hover,
|
835 |
+
.ui-widget-content .ui-state-hover,
|
836 |
+
.ui-widget-header .ui-state-hover,
|
837 |
+
.ui-state-focus,
|
838 |
+
.ui-widget-content .ui-state-focus,
|
839 |
+
.ui-widget-header .ui-state-focus {
|
840 |
+
border: 1px solid #fbcb09;
|
841 |
+
background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x;
|
842 |
+
font-weight: bold;
|
843 |
+
color: #c77405;
|
844 |
+
}
|
845 |
+
.ui-state-hover a,
|
846 |
+
.ui-state-hover a:hover,
|
847 |
+
.ui-state-hover a:link,
|
848 |
+
.ui-state-hover a:visited {
|
849 |
+
color: #c77405;
|
850 |
+
text-decoration: none;
|
851 |
+
}
|
852 |
+
.ui-state-active,
|
853 |
+
.ui-widget-content .ui-state-active,
|
854 |
+
.ui-widget-header .ui-state-active {
|
855 |
+
border: 1px solid #fbd850;
|
856 |
+
background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
|
857 |
+
font-weight: bold;
|
858 |
+
color: #eb8f00;
|
859 |
+
}
|
860 |
+
.ui-state-active a,
|
861 |
+
.ui-state-active a:link,
|
862 |
+
.ui-state-active a:visited {
|
863 |
+
color: #eb8f00;
|
864 |
+
text-decoration: none;
|
865 |
+
}
|
866 |
+
|
867 |
+
/* Interaction Cues
|
868 |
+
----------------------------------*/
|
869 |
+
.ui-state-highlight,
|
870 |
+
.ui-widget-content .ui-state-highlight,
|
871 |
+
.ui-widget-header .ui-state-highlight {
|
872 |
+
border: 1px solid #fed22f;
|
873 |
+
background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x;
|
874 |
+
color: #363636;
|
875 |
+
}
|
876 |
+
.ui-state-highlight a,
|
877 |
+
.ui-widget-content .ui-state-highlight a,
|
878 |
+
.ui-widget-header .ui-state-highlight a {
|
879 |
+
color: #363636;
|
880 |
+
}
|
881 |
+
.ui-state-error,
|
882 |
+
.ui-widget-content .ui-state-error,
|
883 |
+
.ui-widget-header .ui-state-error {
|
884 |
+
border: 1px solid #cd0a0a;
|
885 |
+
background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat;
|
886 |
+
color: #ffffff;
|
887 |
+
}
|
888 |
+
.ui-state-error a,
|
889 |
+
.ui-widget-content .ui-state-error a,
|
890 |
+
.ui-widget-header .ui-state-error a {
|
891 |
+
color: #ffffff;
|
892 |
+
}
|
893 |
+
.ui-state-error-text,
|
894 |
+
.ui-widget-content .ui-state-error-text,
|
895 |
+
.ui-widget-header .ui-state-error-text {
|
896 |
+
color: #ffffff;
|
897 |
+
}
|
898 |
+
.ui-priority-primary,
|
899 |
+
.ui-widget-content .ui-priority-primary,
|
900 |
+
.ui-widget-header .ui-priority-primary {
|
901 |
+
font-weight: bold;
|
902 |
+
}
|
903 |
+
.ui-priority-secondary,
|
904 |
+
.ui-widget-content .ui-priority-secondary,
|
905 |
+
.ui-widget-header .ui-priority-secondary {
|
906 |
+
opacity: .7;
|
907 |
+
filter:Alpha(Opacity=70);
|
908 |
+
font-weight: normal;
|
909 |
+
}
|
910 |
+
.ui-state-disabled,
|
911 |
+
.ui-widget-content .ui-state-disabled,
|
912 |
+
.ui-widget-header .ui-state-disabled {
|
913 |
+
opacity: .35;
|
914 |
+
filter:Alpha(Opacity=35);
|
915 |
+
background-image: none;
|
916 |
+
}
|
917 |
+
.ui-state-disabled .ui-icon {
|
918 |
+
filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
|
919 |
+
}
|
920 |
+
|
921 |
+
/* Icons
|
922 |
+
----------------------------------*/
|
923 |
+
|
924 |
+
/* states and images */
|
925 |
+
.ui-icon {
|
926 |
+
width: 16px;
|
927 |
+
height: 16px;
|
928 |
+
}
|
929 |
+
.ui-icon,
|
930 |
+
.ui-widget-content .ui-icon {
|
931 |
+
background-image: url(images/ui-icons_222222_256x240.png);
|
932 |
+
}
|
933 |
+
.ui-widget-header .ui-icon {
|
934 |
+
background-image: url(images/ui-icons_ffffff_256x240.png);
|
935 |
+
}
|
936 |
+
.ui-state-default .ui-icon {
|
937 |
+
background-image: url(../img/ui-icons_ef8c08_256x240.png);
|
938 |
+
}
|
939 |
+
.ui-state-hover .ui-icon,
|
940 |
+
.ui-state-focus .ui-icon {
|
941 |
+
background-image: url(../img/ui-icons_ef8c08_256x240.png);
|
942 |
+
}
|
943 |
+
.ui-state-active .ui-icon {
|
944 |
+
background-image: url(../img/ui-icons_ef8c08_256x240.png);
|
945 |
+
}
|
946 |
+
.ui-state-highlight .ui-icon {
|
947 |
+
background-image: url(images/ui-icons_228ef1_256x240.png);
|
948 |
+
}
|
949 |
+
.ui-state-error .ui-icon,
|
950 |
+
.ui-state-error-text .ui-icon {
|
951 |
+
background-image: url(images/ui-icons_ffd27a_256x240.png);
|
952 |
+
}
|
953 |
+
|
954 |
+
/* positioning */
|
955 |
+
.ui-icon-blank { background-position: 16px 16px; }
|
956 |
+
.ui-icon-carat-1-n { background-position: 0 0; }
|
957 |
+
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
958 |
+
.ui-icon-carat-1-e { background-position: -32px 0; }
|
959 |
+
.ui-icon-carat-1-se { background-position: -48px 0; }
|
960 |
+
.ui-icon-carat-1-s { background-position: -64px 0; }
|
961 |
+
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
962 |
+
.ui-icon-carat-1-w { background-position: -96px 0; }
|
963 |
+
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
964 |
+
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
965 |
+
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
966 |
+
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
967 |
+
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
968 |
+
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
969 |
+
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
970 |
+
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
971 |
+
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
972 |
+
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
973 |
+
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
974 |
+
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
975 |
+
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
976 |
+
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
977 |
+
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
978 |
+
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
979 |
+
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
980 |
+
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
981 |
+
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
982 |
+
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
983 |
+
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
984 |
+
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
985 |
+
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
986 |
+
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
987 |
+
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
988 |
+
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
989 |
+
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
990 |
+
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
991 |
+
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
992 |
+
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
993 |
+
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
994 |
+
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
995 |
+
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
996 |
+
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
997 |
+
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
998 |
+
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
999 |
+
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
1000 |
+
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
1001 |
+
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
1002 |
+
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
1003 |
+
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
1004 |
+
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
1005 |
+
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
1006 |
+
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
1007 |
+
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
1008 |
+
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
1009 |
+
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
1010 |
+
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
1011 |
+
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
1012 |
+
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
1013 |
+
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
1014 |
+
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
1015 |
+
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
1016 |
+
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
1017 |
+
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
1018 |
+
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
1019 |
+
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
1020 |
+
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
1021 |
+
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
1022 |
+
.ui-icon-extlink { background-position: -32px -80px; }
|
1023 |
+
.ui-icon-newwin { background-position: -48px -80px; }
|
1024 |
+
.ui-icon-refresh { background-position: -64px -80px; }
|
1025 |
+
.ui-icon-shuffle { background-position: -80px -80px; }
|
1026 |
+
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
1027 |
+
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
1028 |
+
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
1029 |
+
.ui-icon-folder-open { background-position: -16px -96px; }
|
1030 |
+
.ui-icon-document { background-position: -32px -96px; }
|
1031 |
+
.ui-icon-document-b { background-position: -48px -96px; }
|
1032 |
+
.ui-icon-note { background-position: -64px -96px; }
|
1033 |
+
.ui-icon-mail-closed { background-position: -80px -96px; }
|
1034 |
+
.ui-icon-mail-open { background-position: -96px -96px; }
|
1035 |
+
.ui-icon-suitcase { background-position: -112px -96px; }
|
1036 |
+
.ui-icon-comment { background-position: -128px -96px; }
|
1037 |
+
.ui-icon-person { background-position: -144px -96px; }
|
1038 |
+
.ui-icon-print { background-position: -160px -96px; }
|
1039 |
+
.ui-icon-trash { background-position: -176px -96px; }
|
1040 |
+
.ui-icon-locked { background-position: -192px -96px; }
|
1041 |
+
.ui-icon-unlocked { background-position: -208px -96px; }
|
1042 |
+
.ui-icon-bookmark { background-position: -224px -96px; }
|
1043 |
+
.ui-icon-tag { background-position: -240px -96px; }
|
1044 |
+
.ui-icon-home { background-position: 0 -112px; }
|
1045 |
+
.ui-icon-flag { background-position: -16px -112px; }
|
1046 |
+
.ui-icon-calendar { background-position: -32px -112px; }
|
1047 |
+
.ui-icon-cart { background-position: -48px -112px; }
|
1048 |
+
.ui-icon-pencil { background-position: -64px -112px; }
|
1049 |
+
.ui-icon-clock { background-position: -80px -112px; }
|
1050 |
+
.ui-icon-disk { background-position: -96px -112px; }
|
1051 |
+
.ui-icon-calculator { background-position: -112px -112px; }
|
1052 |
+
.ui-icon-zoomin { background-position: -128px -112px; }
|
1053 |
+
.ui-icon-zoomout { background-position: -144px -112px; }
|
1054 |
+
.ui-icon-search { background-position: -160px -112px; }
|
1055 |
+
.ui-icon-wrench { background-position: -176px -112px; }
|
1056 |
+
.ui-icon-gear { background-position: -192px -112px; }
|
1057 |
+
.ui-icon-heart { background-position: -208px -112px; }
|
1058 |
+
.ui-icon-star { background-position: -224px -112px; }
|
1059 |
+
.ui-icon-link { background-position: -240px -112px; }
|
1060 |
+
.ui-icon-cancel { background-position: 0 -128px; }
|
1061 |
+
.ui-icon-plus { background-position: -16px -128px; }
|
1062 |
+
.ui-icon-plusthick { background-position: -32px -128px; }
|
1063 |
+
.ui-icon-minus { background-position: -48px -128px; }
|
1064 |
+
.ui-icon-minusthick { background-position: -64px -128px; }
|
1065 |
+
.ui-icon-close { background-position: -80px -128px; }
|
1066 |
+
.ui-icon-closethick { background-position: -96px -128px; }
|
1067 |
+
.ui-icon-key { background-position: -112px -128px; }
|
1068 |
+
.ui-icon-lightbulb { background-position: -128px -128px; }
|
1069 |
+
.ui-icon-scissors { background-position: -144px -128px; }
|
1070 |
+
.ui-icon-clipboard { background-position: -160px -128px; }
|
1071 |
+
.ui-icon-copy { background-position: -176px -128px; }
|
1072 |
+
.ui-icon-contact { background-position: -192px -128px; }
|
1073 |
+
.ui-icon-image { background-position: -208px -128px; }
|
1074 |
+
.ui-icon-video { background-position: -224px -128px; }
|
1075 |
+
.ui-icon-script { background-position: -240px -128px; }
|
1076 |
+
.ui-icon-alert { background-position: 0 -144px; }
|
1077 |
+
.ui-icon-info { background-position: -16px -144px; }
|
1078 |
+
.ui-icon-notice { background-position: -32px -144px; }
|
1079 |
+
.ui-icon-help { background-position: -48px -144px; }
|
1080 |
+
.ui-icon-check { background-position: -64px -144px; }
|
1081 |
+
.ui-icon-bullet { background-position: -80px -144px; }
|
1082 |
+
.ui-icon-radio-on { background-position: -96px -144px; }
|
1083 |
+
.ui-icon-radio-off { background-position: -112px -144px; }
|
1084 |
+
.ui-icon-pin-w { background-position: -128px -144px; }
|
1085 |
+
.ui-icon-pin-s { background-position: -144px -144px; }
|
1086 |
+
.ui-icon-play { background-position: 0 -160px; }
|
1087 |
+
.ui-icon-pause { background-position: -16px -160px; }
|
1088 |
+
.ui-icon-seek-next { background-position: -32px -160px; }
|
1089 |
+
.ui-icon-seek-prev { background-position: -48px -160px; }
|
1090 |
+
.ui-icon-seek-end { background-position: -64px -160px; }
|
1091 |
+
.ui-icon-seek-start { background-position: -80px -160px; }
|
1092 |
+
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
1093 |
+
.ui-icon-seek-first { background-position: -80px -160px; }
|
1094 |
+
.ui-icon-stop { background-position: -96px -160px; }
|
1095 |
+
.ui-icon-eject { background-position: -112px -160px; }
|
1096 |
+
.ui-icon-volume-off { background-position: -128px -160px; }
|
1097 |
+
.ui-icon-volume-on { background-position: -144px -160px; }
|
1098 |
+
.ui-icon-power { background-position: 0 -176px; }
|
1099 |
+
.ui-icon-signal-diag { background-position: -16px -176px; }
|
1100 |
+
.ui-icon-signal { background-position: -32px -176px; }
|
1101 |
+
.ui-icon-battery-0 { background-position: -48px -176px; }
|
1102 |
+
.ui-icon-battery-1 { background-position: -64px -176px; }
|
1103 |
+
.ui-icon-battery-2 { background-position: -80px -176px; }
|
1104 |
+
.ui-icon-battery-3 { background-position: -96px -176px; }
|
1105 |
+
.ui-icon-circle-plus { background-position: 0 -192px; }
|
1106 |
+
.ui-icon-circle-minus { background-position: -16px -192px; }
|
1107 |
+
.ui-icon-circle-close { background-position: -32px -192px; }
|
1108 |
+
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
1109 |
+
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
1110 |
+
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
1111 |
+
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
1112 |
+
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
1113 |
+
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
1114 |
+
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
1115 |
+
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
1116 |
+
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
1117 |
+
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
1118 |
+
.ui-icon-circle-check { background-position: -208px -192px; }
|
1119 |
+
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
1120 |
+
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
1121 |
+
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
1122 |
+
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
1123 |
+
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
1124 |
+
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
1125 |
+
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
1126 |
+
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
1127 |
+
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
1128 |
+
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
1129 |
+
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
1130 |
+
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
1131 |
+
|
1132 |
+
|
1133 |
+
/* Misc visuals
|
1134 |
+
----------------------------------*/
|
1135 |
+
|
1136 |
+
/* Corner radius */
|
1137 |
+
.ui-corner-all,
|
1138 |
+
.ui-corner-top,
|
1139 |
+
.ui-corner-left,
|
1140 |
+
.ui-corner-tl {
|
1141 |
+
border-top-left-radius: 4px;
|
1142 |
+
}
|
1143 |
+
.ui-corner-all,
|
1144 |
+
.ui-corner-top,
|
1145 |
+
.ui-corner-right,
|
1146 |
+
.ui-corner-tr {
|
1147 |
+
border-top-right-radius: 4px;
|
1148 |
+
}
|
1149 |
+
.ui-corner-all,
|
1150 |
+
.ui-corner-bottom,
|
1151 |
+
.ui-corner-left,
|
1152 |
+
.ui-corner-bl {
|
1153 |
+
border-bottom-left-radius: 4px;
|
1154 |
+
}
|
1155 |
+
.ui-corner-all,
|
1156 |
+
.ui-corner-bottom,
|
1157 |
+
.ui-corner-right,
|
1158 |
+
.ui-corner-br {
|
1159 |
+
border-bottom-right-radius: 4px;
|
1160 |
+
}
|
1161 |
+
|
1162 |
+
/* Overlays */
|
1163 |
+
.ui-widget-overlay {
|
1164 |
+
background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;
|
1165 |
+
opacity: .5;
|
1166 |
+
filter: Alpha(Opacity=50);
|
1167 |
+
}
|
1168 |
+
.ui-widget-shadow {
|
1169 |
+
margin: -5px 0 0 -5px;
|
1170 |
+
padding: 5px;
|
1171 |
+
background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x;
|
1172 |
+
opacity: .2;
|
1173 |
+
filter: Alpha(Opacity=20);
|
1174 |
+
border-radius: 5px;
|
1175 |
+
}
|
skin/adminhtml/default/default/sendinblue/css/jquery.multiselect.css
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.ui-multiselect { padding:2px 0 2px 4px; text-align:left }
|
2 |
+
.ui-multiselect span.ui-icon { float:right }
|
3 |
+
.ui-multiselect-single .ui-multiselect-checkboxes input { position:absolute !important; top: auto !important; left:-9999px; }
|
4 |
+
.ui-multiselect-single .ui-multiselect-checkboxes label { padding:5px !important }
|
5 |
+
|
6 |
+
.ui-multiselect-header { margin-bottom:3px; padding:3px 0 3px 4px }
|
7 |
+
.ui-multiselect-header ul { font-size:0.9em }
|
8 |
+
.ui-multiselect-header ul li { float:left; padding:0 10px 0 0 }
|
9 |
+
.ui-multiselect-header a { text-decoration:none }
|
10 |
+
.ui-multiselect-header a:hover { text-decoration:underline }
|
11 |
+
.ui-multiselect-header span.ui-icon { float:left }
|
12 |
+
.ui-multiselect-header li.ui-multiselect-close { float:right; text-align:right; padding-right:0 }
|
13 |
+
|
14 |
+
.ui-multiselect-menu { display:none; padding:3px; position:absolute; z-index:10000; text-align: left }
|
15 |
+
.ui-multiselect-checkboxes { position:relative /* fixes bug in IE6/7 */; overflow-y:auto }
|
16 |
+
.ui-multiselect-checkboxes label { cursor:default; display:block; border:1px solid transparent; padding:3px 1px }
|
17 |
+
.ui-multiselect-checkboxes label input { position:relative; top:1px }
|
18 |
+
.ui-multiselect-checkboxes li { clear:both; font-size:0.9em; padding-right:3px }
|
19 |
+
.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label { text-align:center; font-weight:bold; border-bottom:1px solid }
|
20 |
+
.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label a { display:block; padding:3px; margin:1px 0; text-decoration:none }
|
21 |
+
|
22 |
+
/* remove label borders in IE6 because IE6 does not support transparency */
|
23 |
+
* html .ui-multiselect-checkboxes label { border:none }
|
skin/adminhtml/default/default/sendinblue/css/styles.css
ADDED
@@ -0,0 +1,332 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
3 |
+
* @copyright 2013-2014 Sendinblue
|
4 |
+
* URL: https:www.sendinblue.com
|
5 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
6 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
7 |
+
* needs then we can't provide a technical support.
|
8 |
+
*/
|
9 |
+
|
10 |
+
.pagination{width:620px; height:25px; margin:0 auto;}
|
11 |
+
.pagination ul li{list-style:none; float:left; border:1px solid #000; padding:2px 6px 2px 6px; margin:0 3px 0 3px; font-family:arial; font-size:12px; color:#000; font-weight:bold; background-color:#f2f2f2;}
|
12 |
+
.pagination ul li:hover{color:#fff; background-color:#000; cursor:pointer;}
|
13 |
+
.pagination ul li.inactive, .pagination ul li.inactive:hover {background-color:#ededed; color:#bababa; border:1px solid #bababa; cursor:default;}
|
14 |
+
|
15 |
+
#mySelectBox{width:260px; height:150px;}
|
16 |
+
|
17 |
+
.sendin-logo {float:left; margin:0px 20px 0px 10px; }
|
18 |
+
.slogan {float:left; font-weight:bold; padding:25px 0px 0px 0px; color:#268CCD;}
|
19 |
+
|
20 |
+
.sendin_row {clear:both; margin-top:40px; width:100%;}
|
21 |
+
.contact-details {border:1px dashed #666666; float:right; height:205px; margin-left:12px; margin-right:12px; margin-top:10px; padding:8px; width:350px; position: absolute; right: 0;}
|
22 |
+
fieldset.fields {background-color:#EBEDF4; border:1px solid; margin-bottom:10px; padding:20px 0 10px 10px; position:relative;}
|
23 |
+
fieldset legend {background-color:#EBEDF4; border:1px solid #DFD5C3; display:inline; visibility:visible; float:left; font:bold 13px/13px Arial; margin:0; padding:4px 10px; position:absolute; top:-15px; width:inherit !important; height:auto;}
|
24 |
+
ul.listt {text-align:justify; margin:8px 0px 8px 0px;list-style:none; padding:0px; width:800px;}
|
25 |
+
ul.listt li:before{ content:"-"; position:relative; left:-2px;}
|
26 |
+
ul.listt li{ text-indent:-5px; padding:5px 0px 5px 10px;}
|
27 |
+
.toolTip{background:url(../images/help.gif) no-repeat scroll right top transparent;color:#36F;cursor:help;padding-right:20px;padding-bottom:5px;position:relative}
|
28 |
+
.sendin{background:url(../images/logo.gif) no-repeat}
|
29 |
+
#tipkk{position:absolute;z-index:999;opacity:0.9;background:#ccc;border:1px solid #000;max-width:500px;color:#000;padding:10px}
|
30 |
+
|
31 |
+
|
32 |
+
.form-list td.label {
|
33 |
+
padding-right: 12px;
|
34 |
+
text-align: right;
|
35 |
+
width: 491px;
|
36 |
+
}
|
37 |
+
|
38 |
+
|
39 |
+
|
40 |
+
|
41 |
+
.btn {
|
42 |
+
display: inline-block;
|
43 |
+
*display: inline;
|
44 |
+
padding: 2px 12px;
|
45 |
+
margin-bottom: 0;
|
46 |
+
*margin-left: .3em;
|
47 |
+
font-size: 14px;
|
48 |
+
line-height: 20px;
|
49 |
+
*line-height: 20px;
|
50 |
+
color: #333333;
|
51 |
+
text-align: center;
|
52 |
+
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
|
53 |
+
vertical-align: middle;
|
54 |
+
cursor: pointer;
|
55 |
+
background-color: #f5f5f5;
|
56 |
+
*background-color: #e6e6e6;
|
57 |
+
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
|
58 |
+
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
|
59 |
+
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
|
60 |
+
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
|
61 |
+
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
|
62 |
+
background-repeat: repeat-x;
|
63 |
+
border: 1px solid #bbbbbb;
|
64 |
+
*border: 0;
|
65 |
+
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
66 |
+
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
|
67 |
+
border-bottom-color: #a2a2a2;
|
68 |
+
-webkit-border-radius: 4px;
|
69 |
+
-moz-border-radius: 4px;
|
70 |
+
border-radius: 4px;
|
71 |
+
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
|
72 |
+
filter: progid:dximagetransform.microsoft.gradient(enabled=false);
|
73 |
+
*zoom: 1;
|
74 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
75 |
+
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
76 |
+
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
77 |
+
}
|
78 |
+
|
79 |
+
.btn {
|
80 |
+
border-color: #c5c5c5;
|
81 |
+
border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
|
82 |
+
}
|
83 |
+
|
84 |
+
.btn-primary {
|
85 |
+
color: #ffffff;
|
86 |
+
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
87 |
+
background-color: #006dcc;
|
88 |
+
*background-color: #0044cc;
|
89 |
+
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
|
90 |
+
background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
|
91 |
+
background-image: -o-linear-gradient(top, #0088cc, #0044cc);
|
92 |
+
background-image: linear-gradient(to bottom, #0088cc, #0044cc);
|
93 |
+
background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
|
94 |
+
background-repeat: repeat-x;
|
95 |
+
border-color: #0044cc #0044cc #002a80;
|
96 |
+
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
97 |
+
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
|
98 |
+
filter: progid:dximagetransform.microsoft.gradient(enabled=false);
|
99 |
+
}
|
100 |
+
|
101 |
+
#tabs_container {
|
102 |
+
border-bottom: 1px solid #ccc;
|
103 |
+
}
|
104 |
+
#tabs {
|
105 |
+
list-style: none;
|
106 |
+
padding: 5px 0 4px 0;
|
107 |
+
margin: 33px 0 0 10px;
|
108 |
+
font: 0.75em arial;
|
109 |
+
}
|
110 |
+
#tabs li {
|
111 |
+
display: inline-block;
|
112 |
+
margin:0px;
|
113 |
+
}
|
114 |
+
#tabs li a {
|
115 |
+
border: 1px solid #ccc;
|
116 |
+
padding: 4px 6px;
|
117 |
+
text-decoration: none;
|
118 |
+
background-color: #eeeeee!important;
|
119 |
+
border-bottom: none;
|
120 |
+
outline: none;
|
121 |
+
font-size:12px;
|
122 |
+
font-weight:normal;
|
123 |
+
border-radius: 5px 5px 0 0;
|
124 |
+
-moz-border-radius: 5px 5px 0 0;
|
125 |
+
-webkit-border-top-left-radius: 5px;
|
126 |
+
-webkit-border-top-right-radius: 5px;
|
127 |
+
}
|
128 |
+
#tabs li a:hover {
|
129 |
+
background-color: #dddddd!important;
|
130 |
+
padding: 4px 6px;
|
131 |
+
color: #000000;
|
132 |
+
}
|
133 |
+
#tabs li.active a {
|
134 |
+
border-bottom: 1px solid #fff;
|
135 |
+
background-color: #fff!important;
|
136 |
+
padding: 4px 6px 5px 6px;
|
137 |
+
border-bottom: none;
|
138 |
+
}
|
139 |
+
#tabs li.active a:hover {
|
140 |
+
background-color: #eeeeee!important;
|
141 |
+
padding: 4px 6px 5px 6px;
|
142 |
+
border-bottom: none;
|
143 |
+
}
|
144 |
+
|
145 |
+
#tabs li a.icon_accept {
|
146 |
+
|
147 |
+
background-position: 5px;
|
148 |
+
background-repeat: no-repeat;
|
149 |
+
/* padding-left: 24px;*/
|
150 |
+
}
|
151 |
+
#tabs li a.icon_accept:hover {
|
152 |
+
/* padding-left: 24px;*/
|
153 |
+
}
|
154 |
+
|
155 |
+
#tabs_content_container {
|
156 |
+
border-top: none;
|
157 |
+
padding: 10px 10px 5px;
|
158 |
+
}
|
159 |
+
.tab_content {
|
160 |
+
display: none;
|
161 |
+
}
|
162 |
+
/*.wrapper {
|
163 |
+
width:820px;
|
164 |
+
margin:0px auto;
|
165 |
+
}*/
|
166 |
+
.wrapper .row1 {
|
167 |
+
padding:/*10px 12px*/0px;
|
168 |
+
border:none;
|
169 |
+
}
|
170 |
+
.wrapper h4 {
|
171 |
+
line-height:24px;
|
172 |
+
margin-top:23px;
|
173 |
+
clear:both;
|
174 |
+
}
|
175 |
+
.wrapper p {
|
176 |
+
margin-bottom:12px;
|
177 |
+
}
|
178 |
+
.r_label {
|
179 |
+
float:left;
|
180 |
+
width: auto;
|
181 |
+
font-weight: normal;
|
182 |
+
white-space:nowrap;
|
183 |
+
}
|
184 |
+
.radio_bx span {
|
185 |
+
margin:0px 15px 0px 0px;
|
186 |
+
float:left;
|
187 |
+
}
|
188 |
+
.email_field {
|
189 |
+
margin:15px auto;
|
190 |
+
width:350px;
|
191 |
+
clear:both;
|
192 |
+
}
|
193 |
+
.email_field label {
|
194 |
+
margin-right:25px;
|
195 |
+
margin-top: 6px;
|
196 |
+
width: auto;
|
197 |
+
}
|
198 |
+
.input_bx {
|
199 |
+
border:1px solid #c8c8c8;
|
200 |
+
margin:5px 0px;
|
201 |
+
padding:3px;
|
202 |
+
}
|
203 |
+
.form_table {
|
204 |
+
width:100%;/*550px;*/
|
205 |
+
/*margin:0px auto;*/
|
206 |
+
clear: both;
|
207 |
+
}
|
208 |
+
.form_table table tr td{
|
209 |
+
border-bottom:none;
|
210 |
+
}
|
211 |
+
.form_table label {
|
212 |
+
width:160px;
|
213 |
+
float:left;
|
214 |
+
line-height:20px;
|
215 |
+
font-weight: bold;
|
216 |
+
}
|
217 |
+
.hintmsg {
|
218 |
+
/*font-size:11px;*/
|
219 |
+
color:#666666;
|
220 |
+
clear:both;
|
221 |
+
}
|
222 |
+
.textarea_bx {
|
223 |
+
float:left;
|
224 |
+
margin:5px 0px;
|
225 |
+
width:288px!important;
|
226 |
+
}
|
227 |
+
.btn_bx {
|
228 |
+
padding:2px;
|
229 |
+
cursor:pointer;
|
230 |
+
margin-left:15px;
|
231 |
+
background:#ffffff;
|
232 |
+
border:1px solid #000000;
|
233 |
+
}
|
234 |
+
.table-bottom td{padding:15px!important;}
|
235 |
+
.manage-label{margin-left:50px;}
|
236 |
+
|
237 |
+
.hidetableblock tr td td {
|
238 |
+
font-size: 11px;
|
239 |
+
height: 23px;
|
240 |
+
/* padding: 0 4px 0 6px;*/
|
241 |
+
}
|
242 |
+
|
243 |
+
/*Form*/
|
244 |
+
/*.table tr td {
|
245 |
+
color: #996633;
|
246 |
+
font-size:12px;
|
247 |
+
}
|
248 |
+
.sendin_row .form-list label{ width:670px; float:left; padding-right:20px; padding-top:0px; text-align:right;}
|
249 |
+
.sendin_row .form-list2 label{ width:385px; padding-right:20px; padding-top:0px;}
|
250 |
+
.sendin_row .form-list3 label{ width:295px; padding-right:20px; padding-top:0px;text-align:left!important;}
|
251 |
+
|
252 |
+
|
253 |
+
|
254 |
+
.label-small{ width:30px!important; text-align:left!important;}
|
255 |
+
.no-padding td{ padding:0px!important;}
|
256 |
+
.clear{ clear:both;}
|
257 |
+
.module_error.error{ padding-top: 8px!important;}
|
258 |
+
.module_error.error p{ display:inline-block;}
|
259 |
+
#content .alert{ width:auto!important;}
|
260 |
+
.tablepadding td{padding:5px 0px;}
|
261 |
+
.btnmrgn-right{
|
262 |
+
margin-top:12px;
|
263 |
+
margin-right:26px;
|
264 |
+
float:right;}*/
|
265 |
+
.radio_nospaceing{
|
266 |
+
margin:0px 10px 0px 0px;}
|
267 |
+
.radio_spaceing {
|
268 |
+
margin:0 10px!important;
|
269 |
+
vertical-align:top;
|
270 |
+
}
|
271 |
+
.radio_spaceing2 {
|
272 |
+
margin-left: 20px;
|
273 |
+
margin-right: 10px;
|
274 |
+
}
|
275 |
+
|
276 |
+
.mrgn-right{
|
277 |
+
margin-top:12px;
|
278 |
+
margin-right:175px;
|
279 |
+
float:right;}
|
280 |
+
|
281 |
+
.mrgin-left{ margin-left:466px;}
|
282 |
+
/*Design matched style*/
|
283 |
+
|
284 |
+
p {
|
285 |
+
color: #585A69;
|
286 |
+
margin: 0.5em 0;
|
287 |
+
}
|
288 |
+
|
289 |
+
.fix_width{width:450px}
|
290 |
+
.fix_width2{width:350px}
|
291 |
+
|
292 |
+
.form-list label {
|
293 |
+
padding-right: 20px;
|
294 |
+
padding-top: 0;
|
295 |
+
font-weight: bold;
|
296 |
+
text-align:right;
|
297 |
+
width: 450px;
|
298 |
+
float:left;
|
299 |
+
color:#585A69;
|
300 |
+
}
|
301 |
+
.form-list {
|
302 |
+
border: 0 none !important;
|
303 |
+
width: 100%;
|
304 |
+
}
|
305 |
+
|
306 |
+
.form-list td, .form-list3 td
|
307 |
+
{
|
308 |
+
padding:4px 0px;
|
309 |
+
color:#585A69;
|
310 |
+
}
|
311 |
+
.form-list td a, .form-list3 td a{
|
312 |
+
font-weight:bold;
|
313 |
+
}
|
314 |
+
.form-list3 label {
|
315 |
+
padding-right: 20px;
|
316 |
+
padding-top: 0;
|
317 |
+
font-weight: bold;
|
318 |
+
text-align:right;
|
319 |
+
width: 350px;
|
320 |
+
float:left;
|
321 |
+
font-size:12px;
|
322 |
+
line-height:24px;
|
323 |
+
color:#585A69;
|
324 |
+
}
|
325 |
+
|
326 |
+
input.input-text, textarea, select { border:1px solid #c8c8c8;}
|
327 |
+
input.input-text{padding:3px 5px;}
|
328 |
+
a {
|
329 |
+
color: #000000;
|
330 |
+
outline: 0 none;
|
331 |
+
text-decoration: none;
|
332 |
+
}
|
skin/adminhtml/default/default/sendinblue/images/close.png
ADDED
Binary file
|
skin/adminhtml/default/default/sendinblue/images/disabled.gif
ADDED
Binary file
|
skin/adminhtml/default/default/sendinblue/images/enabled.gif
ADDED
Binary file
|
skin/adminhtml/default/default/sendinblue/images/help.gif
ADDED
Binary file
|
skin/adminhtml/default/default/sendinblue/images/index.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
3 |
+
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
4 |
+
header('Cache-Control: no-store, no-cache, must-revalidate');
|
5 |
+
header('Cache-Control: post-check=0, pre-check=0', false);
|
6 |
+
header('Pragma: no-cache');
|
7 |
+
header('Location: ../');
|
8 |
+
exit;
|
skin/adminhtml/default/default/sendinblue/images/loader.gif
ADDED
Binary file
|
skin/adminhtml/default/default/sendinblue/images/loading_anim.gif
ADDED
Binary file
|
skin/adminhtml/default/default/sendinblue/images/logo.gif
ADDED
Binary file
|
skin/adminhtml/default/default/sendinblue/images/logo.png
ADDED
Binary file
|
skin/adminhtml/default/default/sendinblue/images/sendinblue.png
ADDED
Binary file
|
skin/adminhtml/default/default/sendinblue/images/ui-icons_ef8c08_256x240.png
ADDED
Binary file
|
skin/adminhtml/default/default/sendinblue/images/ui-icons_ef8c08_256x240.png.png
ADDED
Binary file
|
skin/adminhtml/default/default/sendinblue/js/index.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
4 |
+
* @copyright 2013-2014 Sendinblue
|
5 |
+
* URL: https:www.sendinblue.com
|
6 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
7 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
8 |
+
* needs then we can't provide a technical support.
|
9 |
+
*/
|
10 |
+
|
11 |
+
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
12 |
+
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
|
13 |
+
|
14 |
+
header("Cache-Control: no-store, no-cache, must-revalidate");
|
15 |
+
header("Cache-Control: post-check=0, pre-check=0", false);
|
16 |
+
header("Pragma: no-cache");
|
17 |
+
|
18 |
+
header("Location: ../");
|
19 |
+
exit;
|
skin/adminhtml/default/default/sendinblue/js/jquery-1.9.1.min.js
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license
|
2 |
+
//@ sourceMappingURL=jquery.min.map
|
3 |
+
*/(function(e,t){var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementById(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},isArray:Array.isArray||function(e){return"array"===b.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call("\ufeff\u00a0")?function(e){return null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEventListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=b(o);var _={};function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function(){if(u){var t=u.length;(function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){var r;while((r=b.inArray(t,u,r))>-1)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,u,l;if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,B=/([A-Z])/g;function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s;if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)delete o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf("data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q=b.support.getSetAttribute,K=b.support.input;b.fn.extend({attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return b.isFunction(e)?this.each(function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=b(this),u=t,l=e.match(w)||[];while(o=l[a++])u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType&&(o=i?e.call(this,n,a.val()):e,null==o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)}}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;for(;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inArray(b(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;if(e&&3!==u&&8!==u&&2!==u)return typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected||(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(w)||[""],l=n.length;while(l--)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((l=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c=b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=b.event.handlers.call(this,e,l),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;while(t--)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documentElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.scrollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.removeEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;
|
4 |
+
return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){var t,n=[];while(t=this[e++])n.push(t);return n}}function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;while(u--)l[u]=g+dt(l[u]);m=V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="<a name='"+x+"'></a><div name='"+x+"'></div>",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==A&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||h.push("\\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e};function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}o=st.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||st.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&st.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x]={}))[e])&&l[0]===N)f=l[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[x]||(p[x]={}))[e]=[N,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=i.preFilter;while(s){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,s)||r,l[1]===!0)return!0}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){var o,a=[],s=0,u=e.length,l=null!=t;for(;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r){l=mt(y,d),r(l,[],s,u),c=l.length;while(c--)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r;r++)if(i.relative[e[r].type])break;return yt(u>1&>(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)),o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){g=0;while(m=t[g++])m(x,y,u,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=ft(e)),n=t.length;while(n--)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o};function xt(e,t,n){var r=0,i=t.length;for(;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}o=U.needsContext.test(e)?0:a.length;while(o--){if(u=a[o],i.relative[l=u.type])break;if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}}return s(e,p)(r,t,d,n,V.test(e)),n}i.pseudos.nth=i.pseudos.eq;function Tt(){}i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#\[\.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)b.find(e,this[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;for(;i>r;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&11!==n.nodeType){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack;function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){return b.inArray(e,t)>=0===n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Nt=/^(?:checkbox|radio)$/i,Ct=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:b.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return b.isFunction(e)?this.each(function(t){b(this).wrapInner(e.call(this,t))}):this.each(function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b.isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=0;for(;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&b.cleanData(Ot(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"globalEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return this}});function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){var n,r=0;for(;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){var n,r=0,i=[],o=b(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}});function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.support.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody){o="table"!==u||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l)
|
5 |
+
}b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=ln(e,t),Pt.detach()),Gt[e]=n),n}function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[0],"display");return n.remove(),r}b.each(["height","width"],function(e,n){b.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(b.css(e,"display"))?b.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,i),i):0)}}}),b.support.opacity||(b.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=b.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===b.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),b(function(){b.support.reliableMarginRight||(b.cssHooks.marginRight={get:function(e,n){return n?b.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!b.support.pixelPosition&&b.fn.position&&b.each(["top","left"],function(e,n){b.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?b(e).position()[n]+"px":r):t}}})}),b.expr&&b.expr.filters&&(b.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!b.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||b.css(e,"display"))},b.expr.filters.visible=function(e){return!b.expr.filters.hidden(e)}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(b.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Nt.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:b.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),b.param=function(e,n){var r,i=[],o=function(e,t){t=b.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=b.ajaxSettings&&b.ajaxSettings.traditional),b.isArray(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==b.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}b.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){b.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),b.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var mn,yn,vn=b.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Cn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=b.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=a.href}catch(Ln){yn=o.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(b.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(u){var l;return o[u]=!0,b.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||a||o[c]?a?!(l=c):t:(n.dataTypes.unshift(c),s(c),!1)}),l}return s(n.dataTypes[0])||!o["*"]&&s("*")}function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&b.extend(!0,e,r),e}b.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),b.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&b.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?b("<div>").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{},y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.done,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader("Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(jn,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="error",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}});function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);while("*"===l[0])l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*"!==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)\?(?=&|$)|\?\?/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.noop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.text=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){var r=(Qn[t]||[]).concat(Qn["*"]),i=0,o=r.length;for(;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;for(;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.timer(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.cssHooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}b.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.isFunction(t)&&t};return r.duration=b.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in b.fx.speeds?b.fx.speeds[r.duration]:b.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){b.isFunction(r.old)&&r.old.call(this),r.queue&&b.dequeue(this,r.queue)},r},b.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},b.timers=[],b.fx=rr.prototype.init,b.fx.tick=function(){var e,n=b.timers,r=0;for(Xn=b.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||b.fx.stop(),Xn=t},b.fx.timer=function(e){e()&&b.timers.push(e)&&b.fx.start()},b.fx.interval=13,b.fx.start=function(){Un||(Un=setInterval(b.fx.tick,b.fx.interval))},b.fx.stop=function(){clearInterval(Un),Un=null},b.fx.speeds={slow:600,fast:200,_default:400},b.fx.step={},b.expr&&b.expr.filters&&(b.expr.filters.animated=function(e){return b.grep(b.timers,function(t){return e===t.elem}).length}),b.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){b.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,b.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},b.offset={setOffset:function(e,t,n){var r=b.css(e,"position");"static"===r&&(e.style.position="relative");var i=b(e),o=i.offset(),a=b.css(e,"top"),s=b.css(e,"left"),u=("absolute"===r||"fixed"===r)&&b.inArray("auto",[a,s])>-1,l={},c={},p,f;u?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),b.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(l.top=t.top-o.top+p),null!=t.left&&(l.left=t.left-o.left+f),"using"in t?t.using.call(e,l):i.css(l)}},b.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===b.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),b.nodeName(e[0],"html")||(n=e.offset()),n.top+=b.css(e[0],"borderTopWidth",!0),n.left+=b.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-b.css(r,"marginTop",!0),left:t.left-n.left-b.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||o.documentElement;while(e&&!b.nodeName(e,"html")&&"static"===b.css(e,"position"))e=e.offsetParent;return e||o.documentElement})}}),b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);b.fn[e]=function(i){return b.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?b(a).scrollLeft():o,r?o:b(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}b.each({Height:"height",Width:"width"},function(e,n){b.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){b.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return b.access(this,function(n,r,i){var o;return b.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?b.css(n,r,s):b.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=b,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return b})})(window);
|
skin/adminhtml/default/default/sendinblue/js/jquery-ui.min.js
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! jQuery UI - v1.10.2 - 2013-03-14
|
2 |
+
* http://jqueryui.com
|
3 |
+
* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js, jquery.ui.effect.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.effect-blind.js, jquery.ui.effect-bounce.js, jquery.ui.effect-clip.js, jquery.ui.effect-drop.js, jquery.ui.effect-explode.js, jquery.ui.effect-fade.js, jquery.ui.effect-fold.js, jquery.ui.effect-highlight.js, jquery.ui.effect-pulsate.js, jquery.ui.effect-scale.js, jquery.ui.effect-shake.js, jquery.ui.effect-slide.js, jquery.ui.effect-transfer.js, jquery.ui.menu.js, jquery.ui.position.js, jquery.ui.progressbar.js, jquery.ui.slider.js, jquery.ui.spinner.js, jquery.ui.tabs.js, jquery.ui.tooltip.js
|
4 |
+
* Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */
|
5 |
+
(function(t,e){function i(e,i){var n,o,a,r=e.nodeName.toLowerCase();return"area"===r?(n=e.parentNode,o=n.name,e.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap=#"+o+"]")[0],!!a&&s(a)):!1):(/input|select|textarea|button|object/.test(r)?!e.disabled:"a"===r?e.href||i:i)&&s(e)}function s(e){return t.expr.filters.visible(e)&&!t(e).parents().addBack().filter(function(){return"hidden"===t.css(this,"visibility")}).length}var n=0,o=/^ui-id-\d+$/;t.ui=t.ui||{},t.extend(t.ui,{version:"1.10.2",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),t.fn.extend({focus:function(e){return function(i,s){return"number"==typeof i?this.each(function(){var e=this;setTimeout(function(){t(e).focus(),s&&s.call(e)},i)}):e.apply(this,arguments)}}(t.fn.focus),scrollParent:function(){var e;return e=t.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(t.css(this,"position"))&&/(auto|scroll)/.test(t.css(this,"overflow")+t.css(this,"overflow-y")+t.css(this,"overflow-x"))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(t.css(this,"overflow")+t.css(this,"overflow-y")+t.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!e.length?t(document):e},zIndex:function(i){if(i!==e)return this.css("zIndex",i);if(this.length)for(var s,n,o=t(this[0]);o.length&&o[0]!==document;){if(s=o.css("position"),("absolute"===s||"relative"===s||"fixed"===s)&&(n=parseInt(o.css("zIndex"),10),!isNaN(n)&&0!==n))return n;o=o.parent()}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++n)})},removeUniqueId:function(){return this.each(function(){o.test(this.id)&&t(this).removeAttr("id")})}}),t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])},focusable:function(e){return i(e,!isNaN(t.attr(e,"tabindex")))},tabbable:function(e){var s=t.attr(e,"tabindex"),n=isNaN(s);return(n||s>=0)&&i(e,!n)}}),t("<a>").outerWidth(1).jquery||t.each(["Width","Height"],function(i,s){function n(e,i,s,n){return t.each(o,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),n&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var o="Width"===s?["Left","Right"]:["Top","Bottom"],a=s.toLowerCase(),r={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+s]=function(i){return i===e?r["inner"+s].call(this):this.each(function(){t(this).css(a,n(this,i)+"px")})},t.fn["outer"+s]=function(e,i){return"number"!=typeof e?r["outer"+s].call(this,e):this.each(function(){t(this).css(a,n(this,e,!0,i)+"px")})}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(t.fn.removeData=function(e){return function(i){return arguments.length?e.call(this,t.camelCase(i)):e.call(this)}}(t.fn.removeData)),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),t.support.selectstart="onselectstart"in document.createElement("div"),t.fn.extend({disableSelection:function(){return this.bind((t.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(t){t.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),t.extend(t.ui,{plugin:{add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i){var s,n=t.plugins[e];if(n&&t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType)for(s=0;n.length>s;s++)t.options[n[s][0]]&&n[s][1].apply(t.element,i)}},hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)}})})(jQuery),function(t,e){var i=0,s=Array.prototype.slice,n=t.cleanData;t.cleanData=function(e){for(var i,s=0;null!=(i=e[s]);s++)try{t(i).triggerHandler("remove")}catch(o){}n(e)},t.widget=function(i,s,n){var o,a,r,h,l={},c=i.split(".")[0];i=i.split(".")[1],o=c+"-"+i,n||(n=s,s=t.Widget),t.expr[":"][o.toLowerCase()]=function(e){return!!t.data(e,o)},t[c]=t[c]||{},a=t[c][i],r=t[c][i]=function(t,i){return this._createWidget?(arguments.length&&this._createWidget(t,i),e):new r(t,i)},t.extend(r,a,{version:n.version,_proto:t.extend({},n),_childConstructors:[]}),h=new s,h.options=t.widget.extend({},h.options),t.each(n,function(i,n){return t.isFunction(n)?(l[i]=function(){var t=function(){return s.prototype[i].apply(this,arguments)},e=function(t){return s.prototype[i].apply(this,t)};return function(){var i,s=this._super,o=this._superApply;return this._super=t,this._superApply=e,i=n.apply(this,arguments),this._super=s,this._superApply=o,i}}(),e):(l[i]=n,e)}),r.prototype=t.widget.extend(h,{widgetEventPrefix:a?h.widgetEventPrefix:i},l,{constructor:r,namespace:c,widgetName:i,widgetFullName:o}),a?(t.each(a._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,r,i._proto)}),delete a._childConstructors):s._childConstructors.push(r),t.widget.bridge(i,r)},t.widget.extend=function(i){for(var n,o,a=s.call(arguments,1),r=0,h=a.length;h>r;r++)for(n in a[r])o=a[r][n],a[r].hasOwnProperty(n)&&o!==e&&(i[n]=t.isPlainObject(o)?t.isPlainObject(i[n])?t.widget.extend({},i[n],o):t.widget.extend({},o):o);return i},t.widget.bridge=function(i,n){var o=n.prototype.widgetFullName||i;t.fn[i]=function(a){var r="string"==typeof a,h=s.call(arguments,1),l=this;return a=!r&&h.length?t.widget.extend.apply(null,[a].concat(h)):a,r?this.each(function(){var s,n=t.data(this,o);return n?t.isFunction(n[a])&&"_"!==a.charAt(0)?(s=n[a].apply(n,h),s!==n&&s!==e?(l=s&&s.jquery?l.pushStack(s.get()):s,!1):e):t.error("no such method '"+a+"' for "+i+" widget instance"):t.error("cannot call methods on "+i+" prior to initialization; "+"attempted to call method '"+a+"'")}):this.each(function(){var e=t.data(this,o);e?e.option(a||{})._init():t.data(this,o,new n(a,this))}),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this.bindings=t(),this.hoverable=t(),this.focusable=t(),s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:t.noop,_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(t.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:t.noop,widget:function(){return this.element},option:function(i,s){var n,o,a,r=i;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof i)if(r={},n=i.split("."),i=n.shift(),n.length){for(o=r[i]=t.widget.extend({},this.options[i]),a=0;n.length-1>a;a++)o[n[a]]=o[n[a]]||{},o=o[n[a]];if(i=n.pop(),s===e)return o[i]===e?null:o[i];o[i]=s}else{if(s===e)return this.options[i]===e?null:this.options[i];r[i]=s}return this._setOptions(r),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return this.options[t]=e,"disabled"===t&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!e).attr("aria-disabled",e),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(i,s,n){var o,a=this;"boolean"!=typeof i&&(n=s,s=i,i=!1),n?(s=o=t(s),this.bindings=this.bindings.add(s)):(n=s,s=this.element,o=this.widget()),t.each(n,function(n,r){function h(){return i||a.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof r?a[r]:r).apply(a,arguments):e}"string"!=typeof r&&(h.guid=r.guid=r.guid||h.guid||t.guid++);var l=n.match(/^(\w+)\s*(.*)$/),c=l[1]+a.eventNamespace,u=l[2];u?o.delegate(u,c,h):s.bind(c,h)})},_off:function(t,e){e=(e||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(e).undelegate(e)},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){t(e.currentTarget).addClass("ui-state-hover")},mouseleave:function(e){t(e.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){t(e.currentTarget).addClass("ui-state-focus")},focusout:function(e){t(e.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}})}(jQuery),function(t){var e=!1;t(document).mouseup(function(){e=!1}),t.widget("ui.mouse",{version:"1.10.2",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.bind("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).bind("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):undefined}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&t(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(i){if(!e){this._mouseStarted&&this._mouseUp(i),this._mouseDownEvent=i;var s=this,n=1===i.which,o="string"==typeof this.options.cancel&&i.target.nodeName?t(i.target).closest(this.options.cancel).length:!1;return n&&!o&&this._mouseCapture(i)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){s.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(i)&&this._mouseDelayMet(i)&&(this._mouseStarted=this._mouseStart(i)!==!1,!this._mouseStarted)?(i.preventDefault(),!0):(!0===t.data(i.target,this.widgetName+".preventClickEvent")&&t.removeData(i.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return s._mouseMove(t)},this._mouseUpDelegate=function(t){return s._mouseUp(t)},t(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),i.preventDefault(),e=!0,!0)):!0}},_mouseMove:function(e){return t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button?this._mouseUp(e):this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){return t(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),!1},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})}(jQuery),function(t){t.widget("ui.draggable",t.ui.mouse,{version:"1.10.2",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"!==this.options.helper||/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},_destroy:function(){this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy()},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(t(i.iframeFix===!0?"iframe":i.iframeFix).each(function(){t("<div class='ui-draggable-iframeFix' style='background: #fff;'></div>").css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(t(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),i.containment&&this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_mouseDrag:function(e,i){if(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp({}),!1;this.position=s.position}return this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i,s=this,n=!1,o=!1;for(t.ui.ddmanager&&!this.options.dropBehaviour&&(o=t.ui.ddmanager.drop(this,e)),this.dropped&&(o=this.dropped,this.dropped=!1),i=this.element[0];i&&(i=i.parentNode);)i===document&&(n=!0);return n||"original"!==this.options.helper?("invalid"===this.options.revert&&!o||"valid"===this.options.revert&&o||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,o)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){s._trigger("stop",e)!==!1&&s._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1):!1},_mouseUp:function(e){return t("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return s.parents("body").length||s.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s[0]===this.element[0]||/(fixed|absolute)/.test(s.css("position"))||s.css("position","absolute"),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.element.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;if("parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=["document"===n.containment?0:t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,"document"===n.containment?0:t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,("document"===n.containment?0:t(window).scrollLeft())+t("document"===n.containment?document:window).width()-this.helperProportions.width-this.margins.left,("document"===n.containment?0:t(window).scrollTop())+(t("document"===n.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||n.containment.constructor===Array)n.containment.constructor===Array&&(this.containment=n.containment);else{if(i=t(n.containment),s=i[0],!s)return;e="hidden"!==t(s).css("overflow"),this.containment=[(parseInt(t(s).css("borderLeftWidth"),10)||0)+(parseInt(t(s).css("paddingLeft"),10)||0),(parseInt(t(s).css("borderTopWidth"),10)||0)+(parseInt(t(s).css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(t(s).css("borderRightWidth"),10)||0)-(parseInt(t(s).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(t(s).css("borderBottomWidth"),10)||0)-(parseInt(t(s).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=i}},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n,o,a=this.options,r="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName),l=e.pageX,c=e.pageY;return this.originalPosition&&(this.containment&&(this.relative_container?(s=this.relative_container.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,e.pageX-this.offset.click.left<i[0]&&(l=i[0]+this.offset.click.left),e.pageY-this.offset.click.top<i[1]&&(c=i[1]+this.offset.click.top),e.pageX-this.offset.click.left>i[2]&&(l=i[2]+this.offset.click.left),e.pageY-this.offset.click.top>i[3]&&(c=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((c-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,c=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,l=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o)),{top:c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s]),"drag"===e&&(this.positionAbs=this._convertPositionTo("absolute")),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i){var s=t(this).data("ui-draggable"),n=s.options,o=t.extend({},i,{item:s.element});s.sortables=[],t(n.connectToSortable).each(function(){var i=t.data(this,"ui-sortable");i&&!i.options.disabled&&(s.sortables.push({instance:i,shouldRevert:i.options.revert}),i.refreshPositions(),i._trigger("activate",e,o))})},stop:function(e,i){var s=t(this).data("ui-draggable"),n=t.extend({},i,{item:s.element});t.each(s.sortables,function(){this.instance.isOver?(this.instance.isOver=0,s.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=this.shouldRevert),this.instance._mouseStop(e),this.instance.options.helper=this.instance.options._helper,"original"===s.options.helper&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",e,n))})},drag:function(e,i){var s=t(this).data("ui-draggable"),n=this;t.each(s.sortables,function(){var o=!1,a=this;this.instance.positionAbs=s.positionAbs,this.instance.helperProportions=s.helperProportions,this.instance.offset.click=s.offset.click,this.instance._intersectsWith(this.instance.containerCache)&&(o=!0,t.each(s.sortables,function(){return this.instance.positionAbs=s.positionAbs,this.instance.helperProportions=s.helperProportions,this.instance.offset.click=s.offset.click,this!==a&&this.instance._intersectsWith(this.instance.containerCache)&&t.contains(a.instance.element[0],this.instance.element[0])&&(o=!1),o})),o?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=t(n).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return i.helper[0]},e.target=this.instance.currentItem[0],this.instance._mouseCapture(e,!0),this.instance._mouseStart(e,!0,!0),this.instance.offset.click.top=s.offset.click.top,this.instance.offset.click.left=s.offset.click.left,this.instance.offset.parent.left-=s.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=s.offset.parent.top-this.instance.offset.parent.top,s._trigger("toSortable",e),s.dropped=this.instance.element,s.currentItem=s.element,this.instance.fromOutside=s),this.instance.currentItem&&this.instance._mouseDrag(e)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",e,this.instance._uiHash(this.instance)),this.instance._mouseStop(e,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),s._trigger("fromSortable",e),s.dropped=!1)})}}),t.ui.plugin.add("draggable","cursor",{start:function(){var e=t("body"),i=t(this).data("ui-draggable").options;e.css("cursor")&&(i._cursor=e.css("cursor")),e.css("cursor",i.cursor)},stop:function(){var e=t(this).data("ui-draggable").options;e._cursor&&t("body").css("cursor",e._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i){var s=t(i.helper),n=t(this).data("ui-draggable").options;s.css("opacity")&&(n._opacity=s.css("opacity")),s.css("opacity",n.opacity)},stop:function(e,i){var s=t(this).data("ui-draggable").options;s._opacity&&t(i.helper).css("opacity",s._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(){var e=t(this).data("ui-draggable");e.scrollParent[0]!==document&&"HTML"!==e.scrollParent[0].tagName&&(e.overflowOffset=e.scrollParent.offset())},drag:function(e){var i=t(this).data("ui-draggable"),s=i.options,n=!1;i.scrollParent[0]!==document&&"HTML"!==i.scrollParent[0].tagName?(s.axis&&"x"===s.axis||(i.overflowOffset.top+i.scrollParent[0].offsetHeight-e.pageY<s.scrollSensitivity?i.scrollParent[0].scrollTop=n=i.scrollParent[0].scrollTop+s.scrollSpeed:e.pageY-i.overflowOffset.top<s.scrollSensitivity&&(i.scrollParent[0].scrollTop=n=i.scrollParent[0].scrollTop-s.scrollSpeed)),s.axis&&"y"===s.axis||(i.overflowOffset.left+i.scrollParent[0].offsetWidth-e.pageX<s.scrollSensitivity?i.scrollParent[0].scrollLeft=n=i.scrollParent[0].scrollLeft+s.scrollSpeed:e.pageX-i.overflowOffset.left<s.scrollSensitivity&&(i.scrollParent[0].scrollLeft=n=i.scrollParent[0].scrollLeft-s.scrollSpeed))):(s.axis&&"x"===s.axis||(e.pageY-t(document).scrollTop()<s.scrollSensitivity?n=t(document).scrollTop(t(document).scrollTop()-s.scrollSpeed):t(window).height()-(e.pageY-t(document).scrollTop())<s.scrollSensitivity&&(n=t(document).scrollTop(t(document).scrollTop()+s.scrollSpeed))),s.axis&&"y"===s.axis||(e.pageX-t(document).scrollLeft()<s.scrollSensitivity?n=t(document).scrollLeft(t(document).scrollLeft()-s.scrollSpeed):t(window).width()-(e.pageX-t(document).scrollLeft())<s.scrollSensitivity&&(n=t(document).scrollLeft(t(document).scrollLeft()+s.scrollSpeed)))),n!==!1&&t.ui.ddmanager&&!s.dropBehaviour&&t.ui.ddmanager.prepareOffsets(i,e)}}),t.ui.plugin.add("draggable","snap",{start:function(){var e=t(this).data("ui-draggable"),i=e.options;e.snapElements=[],t(i.snap.constructor!==String?i.snap.items||":data(ui-draggable)":i.snap).each(function(){var i=t(this),s=i.offset();this!==e.element[0]&&e.snapElements.push({item:this,width:i.outerWidth(),height:i.outerHeight(),top:s.top,left:s.left})})},drag:function(e,i){var s,n,o,a,r,h,l,c,u,d,p=t(this).data("ui-draggable"),f=p.options,g=f.snapTolerance,m=i.offset.left,v=m+p.helperProportions.width,_=i.offset.top,b=_+p.helperProportions.height;for(u=p.snapElements.length-1;u>=0;u--)r=p.snapElements[u].left,h=r+p.snapElements[u].width,l=p.snapElements[u].top,c=l+p.snapElements[u].height,m>r-g&&h+g>m&&_>l-g&&c+g>_||m>r-g&&h+g>m&&b>l-g&&c+g>b||v>r-g&&h+g>v&&_>l-g&&c+g>_||v>r-g&&h+g>v&&b>l-g&&c+g>b?("inner"!==f.snapMode&&(s=g>=Math.abs(l-b),n=g>=Math.abs(c-_),o=g>=Math.abs(r-v),a=g>=Math.abs(h-m),s&&(i.position.top=p._convertPositionTo("relative",{top:l-p.helperProportions.height,left:0}).top-p.margins.top),n&&(i.position.top=p._convertPositionTo("relative",{top:c,left:0}).top-p.margins.top),o&&(i.position.left=p._convertPositionTo("relative",{top:0,left:r-p.helperProportions.width}).left-p.margins.left),a&&(i.position.left=p._convertPositionTo("relative",{top:0,left:h}).left-p.margins.left)),d=s||n||o||a,"outer"!==f.snapMode&&(s=g>=Math.abs(l-_),n=g>=Math.abs(c-b),o=g>=Math.abs(r-m),a=g>=Math.abs(h-v),s&&(i.position.top=p._convertPositionTo("relative",{top:l,left:0}).top-p.margins.top),n&&(i.position.top=p._convertPositionTo("relative",{top:c-p.helperProportions.height,left:0}).top-p.margins.top),o&&(i.position.left=p._convertPositionTo("relative",{top:0,left:r}).left-p.margins.left),a&&(i.position.left=p._convertPositionTo("relative",{top:0,left:h-p.helperProportions.width}).left-p.margins.left)),!p.snapElements[u].snapping&&(s||n||o||a||d)&&p.options.snap.snap&&p.options.snap.snap.call(p.element,e,t.extend(p._uiHash(),{snapItem:p.snapElements[u].item})),p.snapElements[u].snapping=s||n||o||a||d):(p.snapElements[u].snapping&&p.options.snap.release&&p.options.snap.release.call(p.element,e,t.extend(p._uiHash(),{snapItem:p.snapElements[u].item})),p.snapElements[u].snapping=!1)}}),t.ui.plugin.add("draggable","stack",{start:function(){var e,i=this.data("ui-draggable").options,s=t.makeArray(t(i.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});s.length&&(e=parseInt(t(s[0]).css("zIndex"),10)||0,t(s).each(function(i){t(this).css("zIndex",e+i)}),this.css("zIndex",e+s.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i){var s=t(i.helper),n=t(this).data("ui-draggable").options;s.css("zIndex")&&(n._zIndex=s.css("zIndex")),s.css("zIndex",n.zIndex)},stop:function(e,i){var s=t(this).data("ui-draggable").options;s._zIndex&&t(i.helper).css("zIndex",s._zIndex)}})}(jQuery),function(t){function e(t,e,i){return t>e&&e+i>t}t.widget("ui.droppable",{version:"1.10.2",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e=this.options,i=e.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(i)?i:function(t){return t.is(i)},this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight},t.ui.ddmanager.droppables[e.scope]=t.ui.ddmanager.droppables[e.scope]||[],t.ui.ddmanager.droppables[e.scope].push(this),e.addClasses&&this.element.addClass("ui-droppable")
|
6 |
+
},_destroy:function(){for(var e=0,i=t.ui.ddmanager.droppables[this.options.scope];i.length>e;e++)i[e]===this&&i.splice(e,1);this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(e,i){"accept"===e&&(this.accept=t.isFunction(i)?i:function(t){return t.is(i)}),t.Widget.prototype._setOption.apply(this,arguments)},_activate:function(e){var i=t.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var e=t.data(this,"ui-droppable");return e.options.greedy&&!e.options.disabled&&e.options.scope===s.options.scope&&e.accept.call(e.element[0],s.currentItem||s.element)&&t.ui.intersect(s,t.extend(e,{offset:e.element.offset()}),e.options.tolerance)?(n=!0,!1):undefined}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}}}),t.ui.intersect=function(t,i,s){if(!i.offset)return!1;var n,o,a=(t.positionAbs||t.position.absolute).left,r=a+t.helperProportions.width,h=(t.positionAbs||t.position.absolute).top,l=h+t.helperProportions.height,c=i.offset.left,u=c+i.proportions.width,d=i.offset.top,p=d+i.proportions.height;switch(s){case"fit":return a>=c&&u>=r&&h>=d&&p>=l;case"intersect":return a+t.helperProportions.width/2>c&&u>r-t.helperProportions.width/2&&h+t.helperProportions.height/2>d&&p>l-t.helperProportions.height/2;case"pointer":return n=(t.positionAbs||t.position.absolute).left+(t.clickOffset||t.offset.click).left,o=(t.positionAbs||t.position.absolute).top+(t.clickOffset||t.offset.click).top,e(o,d,i.proportions.height)&&e(n,c,i.proportions.width);case"touch":return(h>=d&&p>=h||l>=d&&p>=l||d>h&&l>p)&&(a>=c&&u>=a||r>=c&&u>=r||c>a&&r>u);default:return!1}},t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],a=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===o[s].element[0]){o[s].proportions.height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===a&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions={width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight})}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&t.ui.intersect(e,this,this.options.tolerance)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").bind("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,o,a=t.ui.intersect(e,this,this.options.tolerance),r=!a&&this.isover?"isout":a&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,o=this.element.parents(":data(ui-droppable)").filter(function(){return t.data(this,"ui-droppable").options.scope===n}),o.length&&(s=t.data(o[0],"ui-droppable"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").unbind("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}}}(jQuery),function(t){function e(t){return parseInt(t,10)||0}function i(t){return!isNaN(parseInt(t,10))}t.widget("ui.resizable",t.ui.mouse,{version:"1.10.2",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_create:function(){var e,i,s,n,o,a=this,r=this.options;if(this.element.addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!r.aspectRatio,aspectRatio:r.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:r.helper||r.ghost||r.animate?r.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.data("ui-resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=r.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),e=this.handles.split(","),this.handles={},i=0;e.length>i;i++)s=t.trim(e[i]),o="ui-resizable-"+s,n=t("<div class='ui-resizable-handle "+o+"'></div>"),n.css({zIndex:r.zIndex}),"se"===s&&n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(n);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String&&(this.handles[i]=t(this.handles[i],this.element).show()),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),t(this.handles[i]).length},this._renderAxis(this.element),this._handles=t(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){a.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),a.axis=n&&n[1]?n[1]:"se")}),r.autoHide&&(this._handles.hide(),t(this.element).addClass("ui-resizable-autohide").mouseenter(function(){r.disabled||(t(this).removeClass("ui-resizable-autohide"),a._handles.show())}).mouseleave(function(){r.disabled||a.resizing||(t(this).addClass("ui-resizable-autohide"),a._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(i){var s,n,o,a=this.options,r=this.element.position(),h=this.element;return this.resizing=!0,/absolute/.test(h.css("position"))?h.css({position:"absolute",top:h.css("top"),left:h.css("left")}):h.is(".ui-draggable")&&h.css({position:"absolute",top:r.top,left:r.left}),this._renderProxy(),s=e(this.helper.css("left")),n=e(this.helper.css("top")),a.containment&&(s+=t(a.containment).scrollLeft()||0,n+=t(a.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:s,top:n},this.size=this._helper?{width:h.outerWidth(),height:h.outerHeight()}:{width:h.width(),height:h.height()},this.originalSize=this._helper?{width:h.outerWidth(),height:h.outerHeight()}:{width:h.width(),height:h.height()},this.originalPosition={left:s,top:n},this.sizeDiff={width:h.outerWidth()-h.width(),height:h.outerHeight()-h.height()},this.originalMousePosition={left:i.pageX,top:i.pageY},this.aspectRatio="number"==typeof a.aspectRatio?a.aspectRatio:this.originalSize.width/this.originalSize.height||1,o=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===o?this.axis+"-resize":o),h.addClass("ui-resizable-resizing"),this._propagate("start",i),!0},_mouseDrag:function(e){var i,s=this.helper,n={},o=this.originalMousePosition,a=this.axis,r=this.position.top,h=this.position.left,l=this.size.width,c=this.size.height,u=e.pageX-o.left||0,d=e.pageY-o.top||0,p=this._change[a];return p?(i=p.apply(this,[e,u,d]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),this.position.top!==r&&(n.top=this.position.top+"px"),this.position.left!==h&&(n.left=this.position.left+"px"),this.size.width!==l&&(n.width=this.size.width+"px"),this.size.height!==c&&(n.height=this.size.height+"px"),s.css(n),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(n)||this._trigger("resize",e,this.ui()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&t.ui.hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null,h=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(t){var e,s,n,o,a,r=this.options;a={minWidth:i(r.minWidth)?r.minWidth:0,maxWidth:i(r.maxWidth)?r.maxWidth:1/0,minHeight:i(r.minHeight)?r.minHeight:0,maxHeight:i(r.maxHeight)?r.maxHeight:1/0},(this._aspectRatio||t)&&(e=a.minHeight*this.aspectRatio,n=a.minWidth/this.aspectRatio,s=a.maxHeight*this.aspectRatio,o=a.maxWidth/this.aspectRatio,e>a.minWidth&&(a.minWidth=e),n>a.minHeight&&(a.minHeight=n),a.maxWidth>s&&(a.maxWidth=s),a.maxHeight>o&&(a.maxHeight=o)),this._vBoundaries=a},_updateCache:function(t){this.offset=this.helper.offset(),i(t.left)&&(this.position.left=t.left),i(t.top)&&(this.position.top=t.top),i(t.height)&&(this.size.height=t.height),i(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,s=this.size,n=this.axis;return i(t.height)?t.width=t.height*this.aspectRatio:i(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===n&&(t.left=e.left+(s.width-t.width),t.top=null),"nw"===n&&(t.top=e.top+(s.height-t.height),t.left=e.left+(s.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,s=this.axis,n=i(t.width)&&e.maxWidth&&e.maxWidth<t.width,o=i(t.height)&&e.maxHeight&&e.maxHeight<t.height,a=i(t.width)&&e.minWidth&&e.minWidth>t.width,r=i(t.height)&&e.minHeight&&e.minHeight>t.height,h=this.originalPosition.left+this.originalSize.width,l=this.position.top+this.size.height,c=/sw|nw|w/.test(s),u=/nw|ne|n/.test(s);return a&&(t.width=e.minWidth),r&&(t.height=e.minHeight),n&&(t.width=e.maxWidth),o&&(t.height=e.maxHeight),a&&c&&(t.left=h-e.minWidth),n&&c&&(t.left=h-e.maxWidth),r&&u&&(t.top=l-e.minHeight),o&&u&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_proportionallyResize:function(){if(this._proportionallyResizeElements.length){var t,e,i,s,n,o=this.helper||this.element;for(t=0;this._proportionallyResizeElements.length>t;t++){if(n=this._proportionallyResizeElements[t],!this.borderDif)for(this.borderDif=[],i=[n.css("borderTopWidth"),n.css("borderRightWidth"),n.css("borderBottomWidth"),n.css("borderLeftWidth")],s=[n.css("paddingTop"),n.css("paddingRight"),n.css("paddingBottom"),n.css("paddingLeft")],e=0;i.length>e;e++)this.borderDif[e]=(parseInt(i[e],10)||0)+(parseInt(s[e],10)||0);n.css({height:o.height()-this.borderDif[0]-this.borderDif[2]||0,width:o.width()-this.borderDif[1]-this.borderDif[3]||0})}}},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).data("ui-resizable"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&t.ui.hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,c=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var i,s,n,o,a,r,h,l=t(this).data("ui-resizable"),c=l.options,u=l.element,d=c.containment,p=d instanceof t?d.get(0):/parent/.test(d)?u.parent().get(0):d;p&&(l.containerElement=t(p),/document/.test(d)||d===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(i=t(p),s=[],t(["Top","Right","Left","Bottom"]).each(function(t,n){s[t]=e(i.css("padding"+n))}),l.containerOffset=i.offset(),l.containerPosition=i.position(),l.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},n=l.containerOffset,o=l.containerSize.height,a=l.containerSize.width,r=t.ui.hasScroll(p,"left")?p.scrollWidth:a,h=t.ui.hasScroll(p)?p.scrollHeight:o,l.parentData={element:p,left:n.left,top:n.top,width:r,height:h}))},resize:function(e){var i,s,n,o,a=t(this).data("ui-resizable"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio),a.position.top=a._helper?h.top:0),a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top,i=Math.abs((a._helper?a.offset.left-u.left:a.offset.left-u.left)+a.sizeDiff.width),s=Math.abs((a._helper?a.offset.top-u.top:a.offset.top-h.top)+a.sizeDiff.height),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o&&(i-=a.parentData.left),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio))},stop:function(){var e=t(this).data("ui-resizable"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).data("ui-resizable"),i=e.options,s=function(e){t(e).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseInt(e.width(),10),height:parseInt(e.height(),10),left:parseInt(e.css("left"),10),top:parseInt(e.css("top"),10)})})};"object"!=typeof i.alsoResize||i.alsoResize.parentNode?s(i.alsoResize):i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):t.each(i.alsoResize,function(t){s(t)})},resize:function(e,i){var s=t(this).data("ui-resizable"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0},h=function(e,s){t(e).each(function(){var e=t(this),n=t(this).data("ui-resizable-alsoresize"),o={},a=s&&s.length?s:e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(a,function(t,e){var i=(n[e]||0)+(r[e]||0);i&&i>=0&&(o[e]=i||null)}),e.css(o)})};"object"!=typeof n.alsoResize||n.alsoResize.nodeType?h(n.alsoResize):t.each(n.alsoResize,function(t,e){h(t,e)})},stop:function(){t(this).removeData("resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).data("ui-resizable"),i=e.options,s=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof i.ghost?i.ghost:""),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).data("ui-resizable");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).data("ui-resizable");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e=t(this).data("ui-resizable"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,a=e.axis,r="number"==typeof i.grid?[i.grid,i.grid]:i.grid,h=r[0]||1,l=r[1]||1,c=Math.round((s.width-n.width)/h)*h,u=Math.round((s.height-n.height)/l)*l,d=n.width+c,p=n.height+u,f=i.maxWidth&&d>i.maxWidth,g=i.maxHeight&&p>i.maxHeight,m=i.minWidth&&i.minWidth>d,v=i.minHeight&&i.minHeight>p;i.grid=r,m&&(d+=h),v&&(p+=l),f&&(d-=h),g&&(p-=l),/^(se|s|e)$/.test(a)?(e.size.width=d,e.size.height=p):/^(ne)$/.test(a)?(e.size.width=d,e.size.height=p,e.position.top=o.top-u):/^(sw)$/.test(a)?(e.size.width=d,e.size.height=p,e.position.left=o.left-c):(e.size.width=d,e.size.height=p,e.position.top=o.top-u,e.position.left=o.left-c)}})}(jQuery),function(t){t.widget("ui.selectable",t.ui.mouse,{version:"1.10.2",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e,i=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e=t(i.options.filter,i.element[0]),e.addClass("ui-selectee"),e.each(function(){var e=t(this),i=e.offset();t.data(this,"selectable-item",{element:this,$element:e,left:i.left,top:i.top,right:i.left+e.outerWidth(),bottom:i.top+e.outerHeight(),startselected:!1,selected:e.hasClass("ui-selected"),selecting:e.hasClass("ui-selecting"),unselecting:e.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=e.addClass("ui-selectee"),this._mouseInit(),this.helper=t("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(s.$element.removeClass("ui-selected"),s.selected=!1,s.$element.addClass("ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),n.$element.removeClass(s?"ui-unselecting":"ui-selected").addClass(s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):undefined}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=e.pageX,h=e.pageY;return o>r&&(i=r,r=o,o=i),a>h&&(i=h,h=a,a=i),this.helper.css({left:o,top:a,width:r-o,height:h-a}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),l=!1;i&&i.element!==s.element[0]&&("touch"===n.tolerance?l=!(i.left>r||o>i.right||i.top>h||a>i.bottom):"fit"===n.tolerance&&(l=i.left>o&&r>i.right&&i.top>a&&h>i.bottom),l?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");s.$element.removeClass("ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");s.$element.removeClass("ui-selecting").addClass("ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}})}(jQuery),function(t){function e(t,e,i){return t>e&&e+i>t}function i(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))}t.widget("ui.sortable",t.ui.mouse,{version:"1.10.2",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_create:function(){var t=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?"x"===t.axis||i(this.items[0].item):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_setOption:function(e,i){"disabled"===e?(this.options[e]=i,this.widget().toggleClass("ui-sortable-disabled",!!i)):t.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):undefined}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=t("<style>*{ cursor: "+a.cursor+" !important; }</style>").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<a.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+a.scrollSpeed:e.pageY-this.overflowOffset.top<a.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-a.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<a.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+a.scrollSpeed:e.pageX-this.overflowOffset.left<a.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-a.scrollSpeed)):(e.pageY-t(document).scrollTop()<a.scrollSensitivity?r=t(document).scrollTop(t(document).scrollTop()-a.scrollSpeed):t(window).height()-(e.pageY-t(document).scrollTop())<a.scrollSensitivity&&(r=t(document).scrollTop(t(document).scrollTop()+a.scrollSpeed)),e.pageX-t(document).scrollLeft()<a.scrollSensitivity?r=t(document).scrollLeft(t(document).scrollLeft()-a.scrollSpeed):t(window).width()-(e.pageX-t(document).scrollLeft())<a.scrollSensitivity&&(r=t(document).scrollLeft(t(document).scrollLeft()+a.scrollSpeed))),r!==!1&&t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;
|
7 |
+
this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u=s+l>r&&h>s+l&&e+c>o&&a>e+c;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?u:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var i="x"===this.options.axis||e(this.positionAbs.top+this.offset.click.top,t.top,t.height),s="y"===this.options.axis||e(this.positionAbs.left+this.offset.click.left,t.left,t.width),n=i&&s,o=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return n?this.floating?a&&"right"===a||"down"===o?2:1:o&&("down"===o?2:1):!1},_intersectsWithSides:function(t){var i=e(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),s=e(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),n=this._getDragVerticalDirection(),o=this._getDragHorizontalDirection();return this.floating&&o?"right"===o&&s||"left"===o&&!s:n&&("down"===n&&i||"up"===n&&!i)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){var i,s,n,o,a=[],r=[],h=this._connectWith();if(h&&e)for(i=h.length-1;i>=0;i--)for(n=t(h[i]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&r.push([t.isFunction(o.options.items)?o.options.items.call(o.element):t(o.options.items,o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),o]);for(r.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),i=r.length-1;i>=0;i--)r[i][0].each(function(){a.push(this)});return t(a)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",a),c.push({item:h,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t(e.document[0].createElement(s)).addClass(i||e.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tr"===s?n.append("<td colspan='99'> </td>"):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_contactContainers:function(s){var n,o,a,r,h,l,c,u,d,p,f=null,g=null;for(n=this.containers.length-1;n>=0;n--)if(!t.contains(this.currentItem[0],this.containers[n].element[0]))if(this._intersectsWith(this.containers[n].containerCache)){if(f&&t.contains(this.containers[n].element[0],f.element[0]))continue;f=this.containers[n],g=n}else this.containers[n].containerCache.over&&(this.containers[n]._trigger("out",s,this._uiHash(this)),this.containers[n].containerCache.over=0);if(f)if(1===this.containers.length)this.containers[g].containerCache.over||(this.containers[g]._trigger("over",s,this._uiHash(this)),this.containers[g].containerCache.over=1);else{for(a=1e4,r=null,p=f.floating||i(this.currentItem),h=p?"left":"top",l=p?"width":"height",c=this.positionAbs[h]+this.offset.click[h],o=this.items.length-1;o>=0;o--)t.contains(this.containers[g].element[0],this.items[o].item[0])&&this.items[o].item[0]!==this.currentItem[0]&&(!p||e(this.positionAbs.top+this.offset.click.top,this.items[o].top,this.items[o].height))&&(u=this.items[o].item.offset()[h],d=!1,Math.abs(u-c)>Math.abs(u+this.items[o][l]-c)&&(d=!0,u+=this.items[o][l]),a>Math.abs(u-c)&&(a=Math.abs(u-c),r=this.items[o],this.direction=d?"up":"down"));if(!r&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[g])return;r?this._rearrange(s,r,null,!0):this._rearrange(s,null,this.containers[g].element,!0),this._trigger("change",s,this._uiHash()),this.containers[g]._trigger("change",s,this._uiHash(this)),this.currentContainer=this.containers[g],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[g]._trigger("over",s,this._uiHash(this)),this.containers[g].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,t("document"===n.containment?document:window).width()-this.helperProportions.width-this.margins.left,(t("document"===n.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==document&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(o=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(a=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){this.reverting=!1;var i,s=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)("auto"===this._storedCSS[i]||"static"===this._storedCSS[i])&&(this._storedCSS[i]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&s.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||s.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(s.push(function(t){this._trigger("remove",t,this._uiHash())}),s.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),s.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;i>=0;i--)e||s.push(function(t){return function(e){t._trigger("deactivate",e,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over&&(s.push(function(t){return function(e){t._trigger("out",e,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,this.cancelHelperRemoval){if(!e){for(this._trigger("beforeStop",t,this._uiHash()),i=0;s.length>i;i++)s[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!1}if(e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null,!e){for(i=0;s.length>i;i++)s[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}})}(jQuery),function(t,e){var i="ui-effects-";t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(t,o){var a,r=o.re.exec(i),h=r&&o.parse(r),l=o.space||"rgba";return h?(a=s[l](h),s[c[l].cache]=a[c[l].cache],n=s._rgba=a._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,o.transparent),s):o[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var o,a="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],l=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=l.support={},p=t("<p>")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),l.fn=t.extend(l.prototype,{parse:function(n,a,r,h){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(a),a=e);var u=this,d=t.type(n),p=this._rgba=[];return a!==e&&(n=[n,a,r,h],d="array"),"string"===d?this.parse(s(n)||o._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof l?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var o=s.cache;f(s.props,function(t,e){if(!u[o]&&s.to){if("alpha"===t||null==n[t])return;u[o]=s.to(u._rgba)}u[o][e.idx]=i(n[t],e,!0)}),u[o]&&0>t.inArray(null,u[o].slice(0,3))&&(u[o][3]=1,s.from&&(u._rgba=s.from(u[o])))}),this):e},is:function(t){var i=l(t),s=!0,n=this;return f(c,function(t,o){var a,r=i[o.cache];return r&&(a=n[o.cache]||o.to&&o.to(n._rgba)||[],f(o.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===a[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=l(t),n=s._space(),o=c[n],a=0===this.alpha()?l("transparent"):this,r=a[o.cache]||o.to(a._rgba),h=r.slice();return s=s[o.cache],f(o.props,function(t,n){var o=n.idx,a=r[o],l=s[o],c=u[n.type]||{};null!==l&&(null===a?h[o]=l:(c.mod&&(l-a>c.mod/2?a+=c.mod:a-l>c.mod/2&&(a-=c.mod)),h[o]=i((l-a)*e+a,n)))}),this[n](h)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(e)._rgba;return l(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,a=t[3],r=Math.max(s,n,o),h=Math.min(s,n,o),l=r-h,c=r+h,u=.5*c;return e=h===r?0:s===r?60*(n-o)/l+360:n===r?60*(o-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=u?l/c:l/(2-c),[Math.round(e)%360,i,u,null==a?1:a]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],o=t[3],a=.5>=s?s*(1+i):s+i-s*i,r=2*s-a;return[Math.round(255*n(r,a,e+1/3)),Math.round(255*n(r,a,e)),Math.round(255*n(r,a,e-1/3)),o]},f(c,function(s,n){var o=n.props,a=n.cache,h=n.to,c=n.from;l.fn[s]=function(s){if(h&&!this[a]&&(this[a]=h(this._rgba)),s===e)return this[a].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[a].slice();return f(o,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=l(c(d)),n[a]=d,n):l(d)},f(o,function(e,i){l.fn[e]||(l.fn[e]=function(n){var o,a=t.type(n),h="alpha"===e?this._hsla?"hsla":"rgba":s,l=this[h](),c=l[i.idx];return"undefined"===a?c:("function"===a&&(n=n.call(this,c),a=t.type(n)),null==n&&i.empty?this:("string"===a&&(o=r.exec(n),o&&(n=c+parseFloat(o[2])*("+"===o[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var o,a,r="";if("transparent"!==n&&("string"!==t.type(n)||(o=s(n)))){if(n=l(o||n),!d.rgba&&1!==n._rgba[3]){for(a="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&a&&a.style;)try{r=t.css(a,"backgroundColor"),a=a.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(h){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=l(e.elem,i),e.end=l(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},l.hook(a),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},o=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(o[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(o[i]=n[i]);return o}function s(e,i){var s,n,a={};for(s in i)n=i[s],e[s]!==n&&(o[s]||(t.fx.step[s]||!isNaN(parseFloat(n)))&&(a[s]=n));return a}var n=["add","remove","toggle"],o={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(jQuery.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(e,o,a,r){var h=t.speed(o,a,r);return this.queue(function(){var o,a=t(this),r=a.attr("class")||"",l=h.children?a.find("*").addBack():a;l=l.map(function(){var e=t(this);return{el:e,start:i(this)}}),o=function(){t.each(n,function(t,i){e[i]&&a[i+"Class"](e[i])})},o(),l=l.map(function(){return this.end=i(this.el[0]),this.diff=s(this.start,this.end),this}),a.attr("class",r),l=l.map(function(){var e=this,i=t.Deferred(),s=t.extend({},h,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,l.get()).done(function(){o(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),h.complete.call(a[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,o){return s?t.effects.animateClass.call(this,{add:i},s,n,o):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,o){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,o):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(i){return function(s,n,o,a,r){return"boolean"==typeof n||n===e?o?t.effects.animateClass.call(this,n?{add:s}:{remove:s},o,a,r):i.apply(this,arguments):t.effects.animateClass.call(this,{toggle:s},n,o,a)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,o)}})}(),function(){function s(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function n(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}t.extend(t.effects,{version:"1.10.2",save:function(t,e){for(var s=0;e.length>s;s++)null!==e[s]&&t.data(i+e[s],t[0].style[e[s]])},restore:function(t,s){var n,o;for(o=0;s.length>o;o++)null!==s[o]&&(n=t.data(i+s[o]),n===e&&(n=""),t.css(s[o],n))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},o=document.activeElement;try{o.id}catch(a){o=document.body}return e.wrap(s),(e[0]===o||t.contains(e[0],o))&&t(o).focus(),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).focus()),e},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var o=e.cssUnit(i);o[0]>0&&(n[i]=o[0]*s+o[1])}),n}}),t.fn.extend({effect:function(){function e(e){function s(){t.isFunction(o)&&o.call(n[0]),t.isFunction(e)&&e()}var n=t(this),o=i.complete,r=i.mode;(n.is(":hidden")?"hide"===r:"show"===r)?(n[r](),s()):a.call(n[0],i,s)}var i=s.apply(this,arguments),n=i.mode,o=i.queue,a=t.effects.effect[i.effect];return t.fx.off||!a?n?this[n](i.duration,i.complete):this.each(function(){i.complete&&i.complete.call(this)}):o===!1?this.each(e):this.queue(o||"fx",e)},show:function(t){return function(e){if(n(e))return t.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="show",this.effect.call(this,i)}}(t.fn.show),hide:function(t){return function(e){if(n(e))return t.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="hide",this.effect.call(this,i)}}(t.fn.hide),toggle:function(t){return function(e){if(n(e)||"boolean"==typeof e)return t.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="toggle",this.effect.call(this,i)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s}})}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}()}(jQuery),function(t){var e=0,i={},s={};i.height=i.paddingTop=i.paddingBottom=i.borderTopWidth=i.borderBottomWidth="hide",s.height=s.paddingTop=s.paddingBottom=s.borderTopWidth=s.borderBottomWidth="show",t.widget("ui.accordion",{version:"1.10.2",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),0>e.active&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t(),content:this.active.length?this.active.next():t()}},_createIcons:function(){var e=this.options.icons;e&&(t("<span>").addClass("ui-accordion-header-icon ui-icon "+e.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(e.header).addClass(e.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()
|
8 |
+
},_destroy:function(){var t;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?(this._activate(e),undefined):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),"disabled"===t&&this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!e),undefined)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var i=t.ui.keyCode,s=this.headers.length,n=this.headers.index(e.target),o=!1;switch(e.keyCode){case i.RIGHT:case i.DOWN:o=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:o=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(e);break;case i.HOME:o=this.headers[0];break;case i.END:o=this.headers[s-1]}o&&(t(e.target).attr("tabIndex",-1),t(o).attr("tabIndex",0),o.focus(),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().focus()},refresh:function(){var e=this.options;this._processPanels(),(e.active===!1&&e.collapsible===!0||!this.headers.length)&&(e.active=!1,this.active=t()),e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"),this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide()},_refresh:function(){var i,s=this.options,n=s.heightStyle,o=this.element.parent(),a=this.accordionId="ui-accordion-"+(this.element.attr("id")||++e);this.active=this._findActive(s.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(e){var i=t(this),s=i.attr("id"),n=i.next(),o=n.attr("id");s||(s=a+"-header-"+e,i.attr("id",s)),o||(o=a+"-panel-"+e,n.attr("id",o)),i.attr("aria-controls",o),n.attr("aria-labelledby",s)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false",tabIndex:-1}).next().attr({"aria-expanded":"false","aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true",tabIndex:0}).next().attr({"aria-expanded":"true","aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(s.event),"fill"===n?(i=o.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.headers.each(function(){i-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===n&&(i=0,this.headers.next().each(function(){i=Math.max(i,t(this).css("height","").height())}).height(i))},_activate:function(e){var i=this._findActive(e)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),o=n[0]===s[0],a=o&&i.collapsible,r=a?t():n.next(),h=s.next(),l={oldHeader:s,oldPanel:h,newHeader:a?t():n,newPanel:r};e.preventDefault(),o&&!i.collapsible||this._trigger("beforeActivate",e,l)===!1||(i.active=a?!1:this.headers.index(n),this.active=o?t():n,this._toggle(l),s.removeClass("ui-accordion-header-active ui-state-active"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),o||(n.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),i.icons&&n.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),n.next().addClass("ui-accordion-content-active")))},_toggle:function(e){var i=e.newPanel,s=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,e):(s.hide(),i.show(),this._toggleComplete(e)),s.attr({"aria-expanded":"false","aria-hidden":"true"}),s.prev().attr("aria-selected","false"),i.length&&s.length?s.prev().attr("tabIndex",-1):i.length&&this.headers.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),i.attr({"aria-expanded":"true","aria-hidden":"false"}).prev().attr({"aria-selected":"true",tabIndex:0})},_animate:function(t,e,n){var o,a,r,h=this,l=0,c=t.length&&(!e.length||t.index()<e.index()),u=this.options.animate||{},d=c&&u.down||u,p=function(){h._toggleComplete(n)};return"number"==typeof d&&(r=d),"string"==typeof d&&(a=d),a=a||d.easing||u.easing,r=r||d.duration||u.duration,e.length?t.length?(o=t.show().outerHeight(),e.animate(i,{duration:r,easing:a,step:function(t,e){e.now=Math.round(t)}}),t.hide().animate(s,{duration:r,easing:a,complete:p,step:function(t,i){i.now=Math.round(t),"height"!==i.prop?l+=i.now:"content"!==h.options.heightStyle&&(i.now=Math.round(o-e.outerHeight()-l),l=0)}}),undefined):e.animate(i,r,a,p):t.animate(s,r,a,p)},_toggleComplete:function(t){var e=t.oldPanel;e.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),e.length&&(e.parent()[0].className=e.parent()[0].className),this._trigger("activate",null,t)}})}(jQuery),function(t){var e=0;t.widget("ui.autocomplete",{version:"1.10.2",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o?!0:a?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,undefined;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:case o.NUMPAD_ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,s.preventDefault(),undefined;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),undefined):(this._searchTimeout(t),undefined)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,undefined):(clearTimeout(this.searching),this.close(t),this._change(t),undefined)}}),this._initSource(),this.menu=t("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({input:t(),role:null}).hide().data("ui-menu"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];t(e.target).closest(".ui-menu-item").length||this._delay(function(){var e=this;this.document.one("mousedown",function(s){s.target===e.element[0]||s.target===i||t.contains(i,s.target)||e.close()})})},menufocus:function(e,i){if(this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type)))return this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),undefined;var s=i.item.data("ui-autocomplete-item");!1!==this._trigger("focus",e,{item:s})?e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(s.value):this.liveRegion.text(s.value)},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=t("<span>",{role:"status","aria-live":"polite"}).addClass("ui-helper-hidden-accessible").insertAfter(this.element),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e||(e=this.element.closest(".ui-front")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){this.term!==this._value()&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):undefined},_search:function(t){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var t=this,i=++e;return function(s){i===e&&t.__response(s),t.pending--,t.pending||t.element.removeClass("ui-autocomplete-loading")}},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({label:e.label||e.value,value:e.value||e.label},e)})},_suggest:function(e){var i=this.menu.element.empty();this._renderMenu(i,e),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,i){var s=this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,i){return t("<li>").append(t("<a>").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this._value(this.term),this.menu.blur(),undefined):(this.menu[t](e),undefined):(this.search(null,e),undefined)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var e;this._superApply(arguments),this.options.disabled||this.cancelSearch||(e=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,this.liveRegion.text(e))}})}(jQuery),function(t){var e,i,s,n,o="ui-button ui-widget ui-state-default ui-corner-all",a="ui-state-hover ui-state-active ",r="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",h=function(){var e=t(this).find(":ui-button");setTimeout(function(){e.button("refresh")},1)},l=function(e){var i=e.name,s=e.form,n=t([]);return i&&(i=i.replace(/'/g,"\\'"),n=s?t(s).find("[name='"+i+"']"):t("[name='"+i+"']",e.ownerDocument).filter(function(){return!this.form})),n};t.widget("ui.button",{version:"1.10.2",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,h),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var a=this,r=this.options,c="checkbox"===this.type||"radio"===this.type,u=c?"":"ui-state-active",d="ui-state-focus";null===r.label&&(r.label="input"===this.type?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(o).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){r.disabled||this===e&&t(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){r.disabled||t(this).removeClass(u)}).bind("click"+this.eventNamespace,function(t){r.disabled&&(t.preventDefault(),t.stopImmediatePropagation())}),this.element.bind("focus"+this.eventNamespace,function(){a.buttonElement.addClass(d)}).bind("blur"+this.eventNamespace,function(){a.buttonElement.removeClass(d)}),c&&(this.element.bind("change"+this.eventNamespace,function(){n||a.refresh()}),this.buttonElement.bind("mousedown"+this.eventNamespace,function(t){r.disabled||(n=!1,i=t.pageX,s=t.pageY)}).bind("mouseup"+this.eventNamespace,function(t){r.disabled||(i!==t.pageX||s!==t.pageY)&&(n=!0)})),"checkbox"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){return r.disabled||n?!1:undefined}):"radio"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){if(r.disabled||n)return!1;t(this).addClass("ui-state-active"),a.buttonElement.attr("aria-pressed","true");var e=a.element[0];l(e).not(e).map(function(){return t(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){return r.disabled?!1:(t(this).addClass("ui-state-active"),e=this,a.document.one("mouseup",function(){e=null}),undefined)}).bind("mouseup"+this.eventNamespace,function(){return r.disabled?!1:(t(this).removeClass("ui-state-active"),undefined)}).bind("keydown"+this.eventNamespace,function(e){return r.disabled?!1:((e.keyCode===t.ui.keyCode.SPACE||e.keyCode===t.ui.keyCode.ENTER)&&t(this).addClass("ui-state-active"),undefined)}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){t(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(e){e.keyCode===t.ui.keyCode.SPACE&&t(this).click()})),this._setOption("disabled",r.disabled),this._resetButton()},_determineButtonType:function(){var t,e,i;this.type=this.element.is("[type=checkbox]")?"checkbox":this.element.is("[type=radio]")?"radio":this.element.is("input")?"input":"button","checkbox"===this.type||"radio"===this.type?(t=this.element.parents().last(),e="label[for='"+this.element.attr("id")+"']",this.buttonElement=t.find(e),this.buttonElement.length||(t=t.length?t.siblings():this.element.siblings(),this.buttonElement=t.filter(e),this.buttonElement.length||(this.buttonElement=t.find(e))),this.element.addClass("ui-helper-hidden-accessible"),i=this.element.is(":checked"),i&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",i)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(o+" "+a+" "+r).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(t,e){return this._super(t,e),"disabled"===t?(e?this.element.prop("disabled",!0):this.element.prop("disabled",!1),undefined):(this._resetButton(),undefined)},refresh:function(){var e=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");e!==this.options.disabled&&this._setOption("disabled",e),"radio"===this.type?l(this.element[0]).each(function(){t(this).is(":checked")?t(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):t(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)return this.options.label&&this.element.val(this.options.label),undefined;var e=this.buttonElement.removeClass(r),i=t("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(e.empty()).text(),s=this.options.icons,n=s.primary&&s.secondary,o=[];s.primary||s.secondary?(this.options.text&&o.push("ui-button-text-icon"+(n?"s":s.primary?"-primary":"-secondary")),s.primary&&e.prepend("<span class='ui-button-icon-primary ui-icon "+s.primary+"'></span>"),s.secondary&&e.append("<span class='ui-button-icon-secondary ui-icon "+s.secondary+"'></span>"),this.options.text||(o.push(n?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||e.attr("title",t.trim(i)))):o.push("ui-button-text-only"),e.addClass(o.join(" "))}}),t.widget("ui.buttonset",{version:"1.10.2",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(t,e){"disabled"===t&&this.buttons.button("option",t,e),this._super(t,e)},refresh:function(){var e="rtl"===this.element.css("direction");this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return t(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(e?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(e?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return t(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}})}(jQuery),function(t,e){function i(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.dpDiv=s(t("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function s(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.delegate(i,"mouseout",function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",function(){t.datepicker._isDisabledDatepicker(o.inline?e.parent()[0]:o.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))})}function n(e,i){t.extend(e,i);for(var s in i)null==i[s]&&(e[s]=i[s]);return e}t.extend(t.ui,{datepicker:{version:"1.10.2"}});var o,a="datepicker",r=(new Date).getTime();t.extend(i.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return n(this._defaults,t||{}),this},_attachDatepicker:function(e,i){var s,n,o;s=e.nodeName.toLowerCase(),n="div"===s||"span"===s,e.id||(this.uuid+=1,e.id="dp"+this.uuid),o=this._newInst(t(e),n),o.settings=t.extend({},i||{}),"input"===s?this._connectDatepicker(e,o):n&&this._inlineDatepicker(e,o)},_newInst:function(e,i){var n=e[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:n,input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?s(t("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(e,i){var s=t(e);i.append=t([]),i.trigger=t([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(i),t.data(e,a,i),i.settings.disabled&&this._disableDatepicker(e))},_attachments:function(e,i){var s,n,o,a=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),a&&(i.append=t("<span class='"+this._appendClass+"'>"+a+"</span>"),e[r?"before":"after"](i.append)),e.unbind("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&e.focus(this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),o=this._get(i,"buttonImage"),i.trigger=t(this._get(i,"buttonImageOnly")?t("<img/>").addClass(this._triggerClass).attr({src:o,alt:n,title:n}):t("<button type='button'></button>").addClass(this._triggerClass).html(o?t("<img/>").attr({src:o,alt:n,title:n}):n)),e[r?"before":"after"](i.trigger),i.trigger.click(function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,o=new Date(2009,11,20),a=this._get(t,"dateFormat");a.match(/[DM]/)&&(e=function(t){for(i=0,s=0,n=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,a,i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,o,r){var h,l,c,u,d,p=this._dialogInst;return p||(this.uuid+=1,h="dp"+this.uuid,this._dialogInput=t("<input type='text' id='"+h+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),t("body").append(this._dialogInput),p=this._dialogInst=this._newInst(this._dialogInput,!1),p.settings={},t.data(this._dialogInput[0],a,p)),n(p.settings,o||{}),i=i&&i.constructor===Date?this._formatDate(p,i):i,this._dialogInput.val(i),this._pos=r?r.length?r:[r.pageX,r.pageY]:null,this._pos||(l=document.documentElement.clientWidth,c=document.documentElement.clientHeight,u=document.documentElement.scrollLeft||document.body.scrollLeft,d=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[l/2-100+u,c/2-150+d]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),p.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],a,p),this},_destroyDatepicker:function(e){var i,s=t(e),n=t.data(e,a);s.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),t.removeData(e,a),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty())},_enableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,a);n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!1,o.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,a);n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!0,o.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,a)}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(i,s,o){var a,r,h,l,c=this._getInst(i);return 2===arguments.length&&"string"==typeof s?"defaults"===s?t.extend({},t.datepicker._defaults):c?"all"===s?t.extend({},c.settings):this._get(c,s):null:(a=s||{},"string"==typeof s&&(a={},a[s]=o),c&&(this._curInst===c&&this._hideDatepicker(),r=this._getDateDatepicker(i,!0),h=this._getMinMaxDate(c,"min"),l=this._getMinMaxDate(c,"max"),n(c.settings,a),null!==h&&a.dateFormat!==e&&a.minDate===e&&(c.settings.minDate=this._formatDate(c,h)),null!==l&&a.dateFormat!==e&&a.maxDate===e&&(c.settings.maxDate=this._formatDate(c,l)),"disabled"in a&&(a.disabled?this._disableDatepicker(i):this._enableDatepicker(i)),this._attachments(t(i),c),this._autoSize(c),this._setDate(c,r),this._updateAlternate(c),this._updateDatepicker(c)),e)},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,n,o=t.datepicker._getInst(e.target),a=!0,r=o.dpDiv.is(".ui-datepicker-rtl");if(o._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),a=!1;break;case 13:return n=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",o.dpDiv),n[0]&&t.datepicker._selectDay(e.target,o.selectedMonth,o.selectedYear,n[0]),i=t.datepicker._get(o,"onSelect"),i?(s=t.datepicker._formatDate(o),i.apply(o.input?o.input[0]:null,[s,o])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");
|
9 |
+
break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),a=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),a=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?1:-1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),a=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?-1:1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),a=e.ctrlKey||e.metaKey;break;default:a=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):a=!1;a&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(i){var s,n,o=t.datepicker._getInst(i.target);return t.datepicker._get(o,"constrainInput")?(s=t.datepicker._possibleChars(t.datepicker._get(o,"dateFormat")),n=String.fromCharCode(null==i.charCode?i.keyCode:i.charCode),i.ctrlKey||i.metaKey||" ">n||!s||s.indexOf(n)>-1):e},_doKeyUp:function(e){var i,s=t.datepicker._getInst(e.target);if(s.input.val()!==s.lastVal)try{i=t.datepicker.parseDate(t.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,t.datepicker._getFormatConfig(s)),i&&(t.datepicker._setDateFromField(s),t.datepicker._updateAlternate(s),t.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(e){if(e=e.target||e,"input"!==e.nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),!t.datepicker._isDisabledDatepicker(e)&&t.datepicker._lastInput!==e){var i,s,o,a,r,h,l;i=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==i&&(t.datepicker._curInst.dpDiv.stop(!0,!0),i&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),s=t.datepicker._get(i,"beforeShow"),o=s?s.apply(e,[e,i]):{},o!==!1&&(n(i.settings,o),i.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(i),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),a=!1,t(e).parents().each(function(){return a|="fixed"===t(this).css("position"),!a}),r={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,i.dpDiv.empty(),i.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(i),r=t.datepicker._checkOffset(i,r,a),i.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":a?"fixed":"absolute",display:"none",left:r.left+"px",top:r.top+"px"}),i.inline||(h=t.datepicker._get(i,"showAnim"),l=t.datepicker._get(i,"duration"),i.dpDiv.zIndex(t(e).zIndex()+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[h]?i.dpDiv.show(h,t.datepicker._get(i,"showOptions"),l):i.dpDiv[h||"show"](h?l:null),i.input.is(":visible")&&!i.input.is(":disabled")&&i.input.focus(),t.datepicker._curInst=i))}},_updateDatepicker:function(e){this.maxRows=4,o=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e),e.dpDiv.find("."+this._dayOverClass+" a").mouseover();var i,s=this._getNumberOfMonths(e),n=s[1],a=17;e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&e.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),e.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&e.input[0]!==document.activeElement&&e.input.focus(),e.yearshtml&&(i=e.yearshtml,setTimeout(function(){i===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),i=e.yearshtml=null},0))},_getBorders:function(t){var e=function(t){return{thin:1,medium:2,thick:3}[t]||t};return[parseFloat(e(t.css("border-left-width"))),parseFloat(e(t.css("border-top-width")))]},_checkOffset:function(e,i,s){var n=e.dpDiv.outerWidth(),o=e.dpDiv.outerHeight(),a=e.input?e.input.outerWidth():0,r=e.input?e.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?n-a:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+r?t(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+o>l&&l>o?Math.abs(o+r):0),i},_findPos:function(e){for(var i,s=this._getInst(e),n=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[n?"previousSibling":"nextSibling"];return i=t(e).offset(),[i.left,i.top]},_hideDatepicker:function(e){var i,s,n,o,r=this._curInst;!r||e&&r!==t.data(e,a)||this._datepickerShowing&&(i=this._get(r,"showAnim"),s=this._get(r,"duration"),n=function(){t.datepicker._tidyDialog(r)},t.effects&&(t.effects.effect[i]||t.effects[i])?r.dpDiv.hide(i,t.datepicker._get(r,"showOptions"),s,n):r.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,o=this._get(r,"onClose"),o&&o.apply(r.input?r.input[0]:null,[r.input?r.input.val():"",r]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id!==t.datepicker._mainDivId&&0===i.parents("#"+t.datepicker._mainDivId).length&&!i.hasClass(t.datepicker.markerClassName)&&!i.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||i.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==s)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var n=t(e),o=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(o,i+("M"===s?this._get(o,"showCurrentAtPos"):0),s),this._updateDatepicker(o))},_gotoToday:function(e){var i,s=t(e),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(e,i,s){var n=t(e),o=this._getInst(n[0]);o["selected"+("M"===s?"Month":"Year")]=o["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(o),this._adjustDate(n)},_selectDay:function(e,i,s,n){var o,a=t(e);t(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(a[0])||(o=this._getInst(a[0]),o.selectedDay=o.currentDay=t("a",n).html(),o.selectedMonth=o.currentMonth=i,o.selectedYear=o.currentYear=s,this._selectDate(e,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,n=t(e),o=this._getInst(n[0]);i=null!=i?i:this._formatDate(o),o.input&&o.input.val(i),this._updateAlternate(o),s=this._get(o,"onSelect"),s?s.apply(o.input?o.input[0]:null,[i,o]):o.input&&o.input.trigger("change"),o.inline?this._updateDatepicker(o):(this._hideDatepicker(),this._lastInput=o.input[0],"object"!=typeof o.input[0]&&o.input.focus(),this._lastInput=null)},_updateAlternate:function(e){var i,s,n,o=this._get(e,"altField");o&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),n=this.formatDate(i,s,this._getFormatConfig(e)),t(o).each(function(){t(this).val(n)}))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(i,s,n){if(null==i||null==s)throw"Invalid arguments";if(s="object"==typeof s?""+s:s+"",""===s)return null;var o,a,r,h,l=0,c=(n?n.shortYearCutoff:null)||this._defaults.shortYearCutoff,u="string"!=typeof c?c:(new Date).getFullYear()%100+parseInt(c,10),d=(n?n.dayNamesShort:null)||this._defaults.dayNamesShort,p=(n?n.dayNames:null)||this._defaults.dayNames,f=(n?n.monthNamesShort:null)||this._defaults.monthNamesShort,g=(n?n.monthNames:null)||this._defaults.monthNames,m=-1,v=-1,_=-1,b=-1,y=!1,w=function(t){var e=i.length>o+1&&i.charAt(o+1)===t;return e&&o++,e},k=function(t){var e=w(t),i="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,n=RegExp("^\\d{1,"+i+"}"),o=s.substring(l).match(n);if(!o)throw"Missing number at position "+l;return l+=o[0].length,parseInt(o[0],10)},x=function(i,n,o){var a=-1,r=t.map(w(i)?o:n,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(r,function(t,i){var n=i[1];return s.substr(l,n.length).toLowerCase()===n.toLowerCase()?(a=i[0],l+=n.length,!1):e}),-1!==a)return a+1;throw"Unknown name at position "+l},D=function(){if(s.charAt(l)!==i.charAt(o))throw"Unexpected literal at position "+l;l++};for(o=0;i.length>o;o++)if(y)"'"!==i.charAt(o)||w("'")?D():y=!1;else switch(i.charAt(o)){case"d":_=k("d");break;case"D":x("D",d,p);break;case"o":b=k("o");break;case"m":v=k("m");break;case"M":v=x("M",f,g);break;case"y":m=k("y");break;case"@":h=new Date(k("@")),m=h.getFullYear(),v=h.getMonth()+1,_=h.getDate();break;case"!":h=new Date((k("!")-this._ticksTo1970)/1e4),m=h.getFullYear(),v=h.getMonth()+1,_=h.getDate();break;case"'":w("'")?D():y=!0;break;default:D()}if(s.length>l&&(r=s.substr(l),!/^\s+/.test(r)))throw"Extra/unparsed characters found in date: "+r;if(-1===m?m=(new Date).getFullYear():100>m&&(m+=(new Date).getFullYear()-(new Date).getFullYear()%100+(u>=m?0:-100)),b>-1)for(v=1,_=b;;){if(a=this._getDaysInMonth(m,v-1),a>=_)break;v++,_-=a}if(h=this._daylightSavingAdjust(new Date(m,v-1,_)),h.getFullYear()!==m||h.getMonth()+1!==v||h.getDate()!==_)throw"Invalid date";return h},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(t,e,i){if(!e)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,o=(i?i.dayNames:null)||this._defaults.dayNames,a=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(e){var i=t.length>s+1&&t.charAt(s+1)===e;return i&&s++,i},l=function(t,e,i){var s=""+e;if(h(t))for(;i>s.length;)s="0"+s;return s},c=function(t,e,i,s){return h(t)?s[e]:i[e]},u="",d=!1;if(e)for(s=0;t.length>s;s++)if(d)"'"!==t.charAt(s)||h("'")?u+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":u+=l("d",e.getDate(),2);break;case"D":u+=c("D",e.getDay(),n,o);break;case"o":u+=l("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=l("m",e.getMonth()+1,2);break;case"M":u+=c("M",e.getMonth(),a,r);break;case"y":u+=h("y")?e.getFullYear():(10>e.getYear()%100?"0":"")+e.getYear()%100;break;case"@":u+=e.getTime();break;case"!":u+=1e4*e.getTime()+this._ticksTo1970;break;case"'":h("'")?u+="'":d=!0;break;default:u+=t.charAt(s)}return u},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=t.length>e+1&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;t.length>e;e++)if(s)"'"!==t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,i){return t.settings[i]!==e?t.settings[i]:this._defaults[i]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(r){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var n=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},o=function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,o=n.getFullYear(),a=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":a+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a));break;case"y":case"Y":o+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a))}l=h.exec(i)}return new Date(o,a,r)},a=null==i||""===i?s:"string"==typeof i?o(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return a=a&&"Invalid Date"==""+a?s:a,a&&(a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)),this._daylightSavingAdjust(a)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,a=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=a.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=a.getMonth(),t.drawYear=t.selectedYear=t.currentYear=a.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){window["DP_jQuery_"+r].datepicker._adjustDate(s,-i,"M")},next:function(){window["DP_jQuery_"+r].datepicker._adjustDate(s,+i,"M")},hide:function(){window["DP_jQuery_"+r].datepicker._hideDatepicker()},today:function(){window["DP_jQuery_"+r].datepicker._gotoToday(s)},selectDay:function(){return window["DP_jQuery_"+r].datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return window["DP_jQuery_"+r].datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return window["DP_jQuery_"+r].datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).bind(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,a,r,h,l,c,u,d,p,f,g,m,v,_,b,y,w,k,x,D,C,I,P,T,M,S,z,A,H,N,E,W,O,F,R,j=new Date,L=this._daylightSavingAdjust(new Date(j.getFullYear(),j.getMonth(),j.getDate())),Y=this._get(t,"isRTL"),B=this._get(t,"showButtonPanel"),V=this._get(t,"hideIfNoPrevNext"),K=this._get(t,"navigationAsDateFormat"),U=this._getNumberOfMonths(t),q=this._get(t,"showCurrentAtPos"),Q=this._get(t,"stepMonths"),X=1!==U[0]||1!==U[1],$=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),G=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-q,te=t.drawYear;if(0>Z&&(Z+=12,te--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-U[0]*U[1]+1,J.getDate())),e=G&&G>e?G:e;this._daylightSavingAdjust(new Date(te,Z,1))>e;)Z--,0>Z&&(Z=11,te--);for(t.drawMonth=Z,t.drawYear=te,i=this._get(t,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(te,Z-Q,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,te,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":V?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",n=this._get(t,"nextText"),n=K?this.formatDate(n,this._daylightSavingAdjust(new Date(te,Z+Q,1)),this._getFormatConfig(t)):n,o=this._canAdjustMonth(t,1,te,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>":V?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>",a=this._get(t,"currentText"),r=this._get(t,"gotoCurrent")&&t.currentDay?$:L,a=K?this.formatDate(a,r,this._getFormatConfig(t)):a,h=t.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(t,"closeText")+"</button>",l=B?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(t,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+a+"</button>":"")+(Y?"":h)+"</div>":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,u=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),g=this._get(t,"monthNamesShort"),m=this._get(t,"beforeShowDay"),v=this._get(t,"showOtherMonths"),_=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",k=0;U[0]>k;k++){for(x="",this.maxRows=4,D=0;U[1]>D;D++){if(C=this._daylightSavingAdjust(new Date(te,Z,t.selectedDay)),I=" ui-corner-all",P="",X){if(P+="<div class='ui-datepicker-group",U[1]>1)switch(D){case 0:P+=" ui-datepicker-group-first",I=" ui-corner-"+(Y?"right":"left");break;case U[1]-1:P+=" ui-datepicker-group-last",I=" ui-corner-"+(Y?"left":"right");break;default:P+=" ui-datepicker-group-middle",I=""}P+="'>"}for(P+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+I+"'>"+(/all|left/.test(I)&&0===k?Y?o:s:"")+(/all|right/.test(I)&&0===k?Y?s:o:"")+this._generateMonthYearHeader(t,Z,te,G,J,k>0||D>0,f,g)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",T=u?"<th class='ui-datepicker-week-col'>"+this._get(t,"weekHeader")+"</th>":"",w=0;7>w;w++)M=(w+c)%7,T+="<th"+((w+c+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+d[M]+"'>"+p[M]+"</span></th>";for(P+=T+"</tr></thead><tbody>",S=this._getDaysInMonth(te,Z),te===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,S)),z=(this._getFirstDayOfMonth(te,Z)-c+7)%7,A=Math.ceil((z+S)/7),H=X?this.maxRows>A?this.maxRows:A:A,this.maxRows=H,N=this._daylightSavingAdjust(new Date(te,Z,1-z)),E=0;H>E;E++){for(P+="<tr>",W=u?"<td class='ui-datepicker-week-col'>"+this._get(t,"calculateWeek")(N)+"</td>":"",w=0;7>w;w++)O=m?m.apply(t.input?t.input[0]:null,[N]):[!0,""],F=N.getMonth()!==Z,R=F&&!_||!O[0]||G&&G>N||J&&N>J,W+="<td class='"+((w+c+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(N.getTime()===C.getTime()&&Z===t.selectedMonth&&t._keyEvent||b.getTime()===N.getTime()&&b.getTime()===C.getTime()?" "+this._dayOverClass:"")+(R?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!v?"":" "+O[1]+(N.getTime()===$.getTime()?" "+this._currentClass:"")+(N.getTime()===L.getTime()?" ui-datepicker-today":""))+"'"+(F&&!v||!O[2]?"":" title='"+O[2].replace(/'/g,"'")+"'")+(R?"":" data-handler='selectDay' data-event='click' data-month='"+N.getMonth()+"' data-year='"+N.getFullYear()+"'")+">"+(F&&!v?" ":R?"<span class='ui-state-default'>"+N.getDate()+"</span>":"<a class='ui-state-default"+(N.getTime()===L.getTime()?" ui-state-highlight":"")+(N.getTime()===$.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+"' href='#'>"+N.getDate()+"</a>")+"</td>",N.setDate(N.getDate()+1),N=this._daylightSavingAdjust(N);P+=W+"</tr>"}Z++,Z>11&&(Z=0,te++),P+="</tbody></table>"+(X?"</div>"+(U[0]>0&&D===U[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),x+=P}y+=x}return y+=l,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var h,l,c,u,d,p,f,g,m=this._get(t,"changeMonth"),v=this._get(t,"changeYear"),_=this._get(t,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",y="";if(o||!m)y+="<span class='ui-datepicker-month'>"+a[e]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,y+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",c=0;12>c;c++)(!h||c>=s.getMonth())&&(!l||n.getMonth()>=c)&&(y+="<option value='"+c+"'"+(c===e?" selected='selected'":"")+">"+r[c]+"</option>");y+="</select>"}if(_||(b+=y+(!o&&m&&v?"":" ")),!t.yearshtml)if(t.yearshtml="",o||!v)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(u[0]),g=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,g=n?Math.min(g,n.getFullYear()):g,t.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";g>=f;f++)t.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";t.yearshtml+="</select>",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),_&&(b+=(!o&&m&&v?"":" ")+y),b+="</div>"},_adjustInstDate:function(t,e,i){var s=t.drawYear+("Y"===i?e:0),n=t.drawMonth+("M"===i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),a=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=a.getDate(),t.drawMonth=t.selectedMonth=a.getMonth(),t.drawYear=t.selectedYear=a.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),o=this._getMinMaxDate(t,"max"),a=null,r=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),a=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(a+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||e.getTime()>=n.getTime())&&(!o||e.getTime()<=o.getTime())&&(!a||e.getFullYear()>=a)&&(!r||r>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).mousedown(t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new i,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.10.2",window["DP_jQuery_"+r]=t}(jQuery),function(t){var e={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},i={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};t.widget("ui.dialog",{version:"1.10.2",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var i=t(this).css(e).offset().top;0>i&&t(this).css("top",e.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=e.parent.children().eq(e.index),t.length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog},disable:t.noop,enable:t.noop,close:function(e){var i=this;this._isOpen&&this._trigger("beforeClose",e)!==!1&&(this._isOpen=!1,this._destroyOverlay(),this.opener.filter(":focusable").focus().length||t(this.document[0].activeElement).blur(),this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,e){var i=!!this.uiDialog.nextAll(":visible").insertBefore(this.uiDialog).length;return i&&!e&&this._trigger("focus",t),i},open:function(){var e=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),undefined):(this._isOpen=!0,this.opener=t(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this._show(this.uiDialog,this.options.show,function(){e._focusTabbable(),e._trigger("focus")}),this._trigger("open"),undefined)},_focusTabbable:function(){var t=this.element.find("[autofocus]");t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).focus()},_keepFocus:function(e){function i(){var e=this.document[0].activeElement,i=this.uiDialog[0]===e||t.contains(this.uiDialog[0],e);i||this._focusTabbable()}e.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=t("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),this.close(e),undefined;if(e.keyCode===t.ui.keyCode.TAB){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");e.target!==n[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==s[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(n.focus(1),e.preventDefault()):(s.focus(1),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=t("<button></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(e),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title||t.html(" "),t.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=t("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var e=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(i)||t.isArray(i)&&!i.length?(this.uiDialog.removeClass("ui-dialog-buttons"),undefined):(t.each(i,function(i,s){var n,o;s=t.isFunction(s)?{click:s,text:i}:s,s=t.extend({type:"button"},s),n=s.click,s.click=function(){n.apply(e.element[0],arguments)},o={icons:s.icons,text:s.showText},delete s.icons,delete s.showText,t("<button></button>",s).button(o).appendTo(e.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),undefined)},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){t(this).addClass("ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,e(n))},drag:function(t,s){i._trigger("drag",t,e(s))},stop:function(n,o){s.position=[o.position.left-i.document.scrollLeft(),o.position.top-i.document.scrollTop()],t(this).removeClass("ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,e(o))
|
10 |
+
}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var i=this,s=this.options,n=s.resizable,o=this.uiDialog.css("position"),a="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:a,start:function(s,n){t(this).addClass("ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,e(n))},resize:function(t,s){i._trigger("resize",t,e(s))},stop:function(n,o){s.height=t(this).height(),s.width=t(this).width(),t(this).removeClass("ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,e(o))}}).css("position",o)},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(s){var n=this,o=!1,a={};t.each(s,function(t,s){n._setOption(t,s),t in e&&(o=!0),t in i&&(a[t]=s)}),o&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",a)},_setOption:function(t,e){var i,s,n=this.uiDialog;"dialogClass"===t&&n.removeClass(this.options.dialogClass).addClass(e),"disabled"!==t&&(this._super(t,e),"appendTo"===t&&this.uiDialog.appendTo(this._appendTo()),"buttons"===t&&this._createButtons(),"closeText"===t&&this.uiDialogTitlebarClose.button({label:""+e}),"draggable"===t&&(i=n.is(":data(ui-draggable)"),i&&!e&&n.draggable("destroy"),!i&&e&&this._makeDraggable()),"position"===t&&this._position(),"resizable"===t&&(s=n.is(":data(ui-resizable)"),s&&!e&&n.resizable("destroy"),s&&"string"==typeof e&&n.resizable("option","handles",e),s||e===!1||this._makeResizable()),"title"===t&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("<div>").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return t(e.target).closest(".ui-dialog").length?!0:!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=this,i=this.widgetFullName;t.ui.dialog.overlayInstances||this._delay(function(){t.ui.dialog.overlayInstances&&this.document.bind("focusin.dialog",function(s){e._allowInteraction(s)||(s.preventDefault(),t(".ui-dialog:visible:last .ui-dialog-content").data(i)._focusTabbable())})}),this.overlay=t("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),t.ui.dialog.overlayInstances++}},_destroyOverlay:function(){this.options.modal&&this.overlay&&(t.ui.dialog.overlayInstances--,t.ui.dialog.overlayInstances||this.document.unbind("focusin.dialog"),this.overlay.remove(),this.overlay=null)}}),t.ui.dialog.overlayInstances=0,t.uiBackCompat!==!1&&t.widget("ui.dialog",t.ui.dialog,{_position:function(){var e,i=this.options.position,s=[],n=[0,0];i?(("string"==typeof i||"object"==typeof i&&"0"in i)&&(s=i.split?i.split(" "):[i[0],i[1]],1===s.length&&(s[1]=s[0]),t.each(["left","top"],function(t,e){+s[t]===s[t]&&(n[t]=s[t],s[t]=e)}),i={my:s[0]+(0>n[0]?n[0]:"+"+n[0])+" "+s[1]+(0>n[1]?n[1]:"+"+n[1]),at:s.join(" ")}),i=t.extend({},t.ui.dialog.prototype.options.position,i)):i=t.ui.dialog.prototype.options.position,e=this.uiDialog.is(":visible"),e||this.uiDialog.show(),this.uiDialog.position(i),e||this.uiDialog.hide()}})}(jQuery),function(t){var e=/up|down|vertical/,i=/up|left|vertical|horizontal/;t.effects.effect.blind=function(s,n){var o,a,r,h=t(this),l=["position","top","bottom","left","right","height","width"],c=t.effects.setMode(h,s.mode||"hide"),u=s.direction||"up",d=e.test(u),p=d?"height":"width",f=d?"top":"left",g=i.test(u),m={},v="show"===c;h.parent().is(".ui-effects-wrapper")?t.effects.save(h.parent(),l):t.effects.save(h,l),h.show(),o=t.effects.createWrapper(h).css({overflow:"hidden"}),a=o[p](),r=parseFloat(o.css(f))||0,m[p]=v?a:0,g||(h.css(d?"bottom":"right",0).css(d?"top":"left","auto").css({position:"absolute"}),m[f]=v?r:a+r),v&&(o.css(p,0),g||o.css(f,r+a)),o.animate(m,{duration:s.duration,easing:s.easing,queue:!1,complete:function(){"hide"===c&&h.hide(),t.effects.restore(h,l),t.effects.removeWrapper(h),n()}})}}(jQuery),function(t){t.effects.effect.bounce=function(e,i){var s,n,o,a=t(this),r=["position","top","bottom","left","right","height","width"],h=t.effects.setMode(a,e.mode||"effect"),l="hide"===h,c="show"===h,u=e.direction||"up",d=e.distance,p=e.times||5,f=2*p+(c||l?1:0),g=e.duration/f,m=e.easing,v="up"===u||"down"===u?"top":"left",_="up"===u||"left"===u,b=a.queue(),y=b.length;for((c||l)&&r.push("opacity"),t.effects.save(a,r),a.show(),t.effects.createWrapper(a),d||(d=a["top"===v?"outerHeight":"outerWidth"]()/3),c&&(o={opacity:1},o[v]=0,a.css("opacity",0).css(v,_?2*-d:2*d).animate(o,g,m)),l&&(d/=Math.pow(2,p-1)),o={},o[v]=0,s=0;p>s;s++)n={},n[v]=(_?"-=":"+=")+d,a.animate(n,g,m).animate(o,g,m),d=l?2*d:d/2;l&&(n={opacity:0},n[v]=(_?"-=":"+=")+d,a.animate(n,g,m)),a.queue(function(){l&&a.hide(),t.effects.restore(a,r),t.effects.removeWrapper(a),i()}),y>1&&b.splice.apply(b,[1,0].concat(b.splice(y,f+1))),a.dequeue()}}(jQuery),function(t){t.effects.effect.clip=function(e,i){var s,n,o,a=t(this),r=["position","top","bottom","left","right","height","width"],h=t.effects.setMode(a,e.mode||"hide"),l="show"===h,c=e.direction||"vertical",u="vertical"===c,d=u?"height":"width",p=u?"top":"left",f={};t.effects.save(a,r),a.show(),s=t.effects.createWrapper(a).css({overflow:"hidden"}),n="IMG"===a[0].tagName?s:a,o=n[d](),l&&(n.css(d,0),n.css(p,o/2)),f[d]=l?o:0,f[p]=l?0:o/2,n.animate(f,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){l||a.hide(),t.effects.restore(a,r),t.effects.removeWrapper(a),i()}})}}(jQuery),function(t){t.effects.effect.drop=function(e,i){var s,n=t(this),o=["position","top","bottom","left","right","opacity","height","width"],a=t.effects.setMode(n,e.mode||"hide"),r="show"===a,h=e.direction||"left",l="up"===h||"down"===h?"top":"left",c="up"===h||"left"===h?"pos":"neg",u={opacity:r?1:0};t.effects.save(n,o),n.show(),t.effects.createWrapper(n),s=e.distance||n["top"===l?"outerHeight":"outerWidth"](!0)/2,r&&n.css("opacity",0).css(l,"pos"===c?-s:s),u[l]=(r?"pos"===c?"+=":"-=":"pos"===c?"-=":"+=")+s,n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===a&&n.hide(),t.effects.restore(n,o),t.effects.removeWrapper(n),i()}})}}(jQuery),function(t){t.effects.effect.explode=function(e,i){function s(){b.push(this),b.length===u*d&&n()}function n(){p.css({visibility:"visible"}),t(b).remove(),g||p.hide(),i()}var o,a,r,h,l,c,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=u,p=t(this),f=t.effects.setMode(p,e.mode||"hide"),g="show"===f,m=p.show().css("visibility","hidden").offset(),v=Math.ceil(p.outerWidth()/d),_=Math.ceil(p.outerHeight()/u),b=[];for(o=0;u>o;o++)for(h=m.top+o*_,c=o-(u-1)/2,a=0;d>a;a++)r=m.left+a*v,l=a-(d-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-a*v,top:-o*_}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:_,left:r+(g?l*v:0),top:h+(g?c*_:0),opacity:g?0:1}).animate({left:r+(g?0:l*v),top:h+(g?0:c*_),opacity:g?1:0},e.duration||500,e.easing,s)}}(jQuery),function(t){t.effects.effect.fade=function(e,i){var s=t(this),n=t.effects.setMode(s,e.mode||"toggle");s.animate({opacity:n},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}}(jQuery),function(t){t.effects.effect.fold=function(e,i){var s,n,o=t(this),a=["position","top","bottom","left","right","height","width"],r=t.effects.setMode(o,e.mode||"hide"),h="show"===r,l="hide"===r,c=e.size||15,u=/([0-9]+)%/.exec(c),d=!!e.horizFirst,p=h!==d,f=p?["width","height"]:["height","width"],g=e.duration/2,m={},v={};t.effects.save(o,a),o.show(),s=t.effects.createWrapper(o).css({overflow:"hidden"}),n=p?[s.width(),s.height()]:[s.height(),s.width()],u&&(c=parseInt(u[1],10)/100*n[l?0:1]),h&&s.css(d?{height:0,width:c}:{height:c,width:0}),m[f[0]]=h?n[0]:c,v[f[1]]=h?n[1]:0,s.animate(m,g,e.easing).animate(v,g,e.easing,function(){l&&o.hide(),t.effects.restore(o,a),t.effects.removeWrapper(o),i()})}}(jQuery),function(t){t.effects.effect.highlight=function(e,i){var s=t(this),n=["backgroundImage","backgroundColor","opacity"],o=t.effects.setMode(s,e.mode||"show"),a={backgroundColor:s.css("backgroundColor")};"hide"===o&&(a.opacity=0),t.effects.save(s,n),s.show().css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(a,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===o&&s.hide(),t.effects.restore(s,n),i()}})}}(jQuery),function(t){t.effects.effect.pulsate=function(e,i){var s,n=t(this),o=t.effects.setMode(n,e.mode||"show"),a="show"===o,r="hide"===o,h=a||"hide"===o,l=2*(e.times||5)+(h?1:0),c=e.duration/l,u=0,d=n.queue(),p=d.length;for((a||!n.is(":visible"))&&(n.css("opacity",0).show(),u=1),s=1;l>s;s++)n.animate({opacity:u},c,e.easing),u=1-u;n.animate({opacity:u},c,e.easing),n.queue(function(){r&&n.hide(),i()}),p>1&&d.splice.apply(d,[1,0].concat(d.splice(p,l+1))),n.dequeue()}}(jQuery),function(t){t.effects.effect.puff=function(e,i){var s=t(this),n=t.effects.setMode(s,e.mode||"hide"),o="hide"===n,a=parseInt(e.percent,10)||150,r=a/100,h={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()};t.extend(e,{effect:"scale",queue:!1,fade:!0,mode:n,complete:i,percent:o?a:100,from:o?h:{height:h.height*r,width:h.width*r,outerHeight:h.outerHeight*r,outerWidth:h.outerWidth*r}}),s.effect(e)},t.effects.effect.scale=function(e,i){var s=t(this),n=t.extend(!0,{},e),o=t.effects.setMode(s,e.mode||"effect"),a=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"hide"===o?0:100),r=e.direction||"both",h=e.origin,l={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()},c={y:"horizontal"!==r?a/100:1,x:"vertical"!==r?a/100:1};n.effect="size",n.queue=!1,n.complete=i,"effect"!==o&&(n.origin=h||["middle","center"],n.restore=!0),n.from=e.from||("show"===o?{height:0,width:0,outerHeight:0,outerWidth:0}:l),n.to={height:l.height*c.y,width:l.width*c.x,outerHeight:l.outerHeight*c.y,outerWidth:l.outerWidth*c.x},n.fade&&("show"===o&&(n.from.opacity=0,n.to.opacity=1),"hide"===o&&(n.from.opacity=1,n.to.opacity=0)),s.effect(n)},t.effects.effect.size=function(e,i){var s,n,o,a=t(this),r=["position","top","bottom","left","right","width","height","overflow","opacity"],h=["position","top","bottom","left","right","overflow","opacity"],l=["width","height","overflow"],c=["fontSize"],u=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],d=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=t.effects.setMode(a,e.mode||"effect"),f=e.restore||"effect"!==p,g=e.scale||"both",m=e.origin||["middle","center"],v=a.css("position"),_=f?r:h,b={height:0,width:0,outerHeight:0,outerWidth:0};"show"===p&&a.show(),s={height:a.height(),width:a.width(),outerHeight:a.outerHeight(),outerWidth:a.outerWidth()},"toggle"===e.mode&&"show"===p?(a.from=e.to||b,a.to=e.from||s):(a.from=e.from||("show"===p?b:s),a.to=e.to||("hide"===p?b:s)),o={from:{y:a.from.height/s.height,x:a.from.width/s.width},to:{y:a.to.height/s.height,x:a.to.width/s.width}},("box"===g||"both"===g)&&(o.from.y!==o.to.y&&(_=_.concat(u),a.from=t.effects.setTransition(a,u,o.from.y,a.from),a.to=t.effects.setTransition(a,u,o.to.y,a.to)),o.from.x!==o.to.x&&(_=_.concat(d),a.from=t.effects.setTransition(a,d,o.from.x,a.from),a.to=t.effects.setTransition(a,d,o.to.x,a.to))),("content"===g||"both"===g)&&o.from.y!==o.to.y&&(_=_.concat(c).concat(l),a.from=t.effects.setTransition(a,c,o.from.y,a.from),a.to=t.effects.setTransition(a,c,o.to.y,a.to)),t.effects.save(a,_),a.show(),t.effects.createWrapper(a),a.css("overflow","hidden").css(a.from),m&&(n=t.effects.getBaseline(m,s),a.from.top=(s.outerHeight-a.outerHeight())*n.y,a.from.left=(s.outerWidth-a.outerWidth())*n.x,a.to.top=(s.outerHeight-a.to.outerHeight)*n.y,a.to.left=(s.outerWidth-a.to.outerWidth)*n.x),a.css(a.from),("content"===g||"both"===g)&&(u=u.concat(["marginTop","marginBottom"]).concat(c),d=d.concat(["marginLeft","marginRight"]),l=r.concat(u).concat(d),a.find("*[width]").each(function(){var i=t(this),s={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()};f&&t.effects.save(i,l),i.from={height:s.height*o.from.y,width:s.width*o.from.x,outerHeight:s.outerHeight*o.from.y,outerWidth:s.outerWidth*o.from.x},i.to={height:s.height*o.to.y,width:s.width*o.to.x,outerHeight:s.height*o.to.y,outerWidth:s.width*o.to.x},o.from.y!==o.to.y&&(i.from=t.effects.setTransition(i,u,o.from.y,i.from),i.to=t.effects.setTransition(i,u,o.to.y,i.to)),o.from.x!==o.to.x&&(i.from=t.effects.setTransition(i,d,o.from.x,i.from),i.to=t.effects.setTransition(i,d,o.to.x,i.to)),i.css(i.from),i.animate(i.to,e.duration,e.easing,function(){f&&t.effects.restore(i,l)})})),a.animate(a.to,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){0===a.to.opacity&&a.css("opacity",a.from.opacity),"hide"===p&&a.hide(),t.effects.restore(a,_),f||("static"===v?a.css({position:"relative",top:a.to.top,left:a.to.left}):t.each(["top","left"],function(t,e){a.css(e,function(e,i){var s=parseInt(i,10),n=t?a.to.left:a.to.top;return"auto"===i?n+"px":s+n+"px"})})),t.effects.removeWrapper(a),i()}})}}(jQuery),function(t){t.effects.effect.shake=function(e,i){var s,n=t(this),o=["position","top","bottom","left","right","height","width"],a=t.effects.setMode(n,e.mode||"effect"),r=e.direction||"left",h=e.distance||20,l=e.times||3,c=2*l+1,u=Math.round(e.duration/c),d="up"===r||"down"===r?"top":"left",p="up"===r||"left"===r,f={},g={},m={},v=n.queue(),_=v.length;for(t.effects.save(n,o),n.show(),t.effects.createWrapper(n),f[d]=(p?"-=":"+=")+h,g[d]=(p?"+=":"-=")+2*h,m[d]=(p?"-=":"+=")+2*h,n.animate(f,u,e.easing),s=1;l>s;s++)n.animate(g,u,e.easing).animate(m,u,e.easing);n.animate(g,u,e.easing).animate(f,u/2,e.easing).queue(function(){"hide"===a&&n.hide(),t.effects.restore(n,o),t.effects.removeWrapper(n),i()}),_>1&&v.splice.apply(v,[1,0].concat(v.splice(_,c+1))),n.dequeue()}}(jQuery),function(t){t.effects.effect.slide=function(e,i){var s,n=t(this),o=["position","top","bottom","left","right","width","height"],a=t.effects.setMode(n,e.mode||"show"),r="show"===a,h=e.direction||"left",l="up"===h||"down"===h?"top":"left",c="up"===h||"left"===h,u={};t.effects.save(n,o),n.show(),s=e.distance||n["top"===l?"outerHeight":"outerWidth"](!0),t.effects.createWrapper(n).css({overflow:"hidden"}),r&&n.css(l,c?isNaN(s)?"-"+s:-s:s),u[l]=(r?c?"+=":"-=":c?"-=":"+=")+s,n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===a&&n.hide(),t.effects.restore(n,o),t.effects.removeWrapper(n),i()}})}}(jQuery),function(t){t.effects.effect.transfer=function(e,i){var s=t(this),n=t(e.to),o="fixed"===n.css("position"),a=t("body"),r=o?a.scrollTop():0,h=o?a.scrollLeft():0,l=n.offset(),c={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(e.className).css({top:u.top-r,left:u.left-h,height:s.innerHeight(),width:s.innerWidth(),position:o?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),i()})}}(jQuery),function(t){t.widget("ui.menu",{version:"1.10.2",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}).bind("click"+this.eventNamespace,t.proxy(function(t){this.options.disabled&&t.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item > a":function(t){t.preventDefault()},"click .ui-state-disabled > a":function(t){t.preventDefault()},"click .ui-menu-item:has(a)":function(e){var i=t(e.target).closest(".ui-menu-item");!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.mouseHandled=!0,this.select(e),i.has(".ui-menu").length?this.expand(e):this.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){var i=t(e.currentTarget);i.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(e,i)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.children(".ui-menu-item").eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){t.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){t(e.target).closest(".ui-menu").length||this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var e=t(this);e.data("ui-menu-submenu-carat")&&e.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(e){function i(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var s,n,o,a,r,h=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:h=!1,n=this.previousFilter||"",o=String.fromCharCode(e.keyCode),a=!1,clearTimeout(this.filterTimer),o===n?a=!0:o=n+o,r=RegExp("^"+i(o),"i"),s=this.activeMenu.children(".ui-menu-item").filter(function(){return r.test(t(this).children("a").text())}),s=a&&-1!==s.index(this.active.next())?this.active.nextAll(".ui-menu-item"):s,s.length||(o=String.fromCharCode(e.keyCode),r=RegExp("^"+i(o),"i"),s=this.activeMenu.children(".ui-menu-item").filter(function(){return r.test(t(this).children("a").text())})),s.length?(this.focus(e,s),s.length>1?(this.previousFilter=o,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}h&&e.preventDefault()},_activate:function(t){this.active.is(".ui-state-disabled")||(this.active.children("a[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i=this.options.icons.submenu,s=this.element.find(this.options.menus);s.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),s=e.prev("a"),n=t("<span>").addClass("ui-menu-icon ui-icon "+i).data("ui-menu-submenu-carat",!0);s.attr("aria-haspopup","true").prepend(n),e.attr("aria-labelledby",s.attr("id"))}),e=s.add(this.element),e.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),e.children(":not(.ui-menu-item)").each(function(){var e=t(this);/[^\-\u2014\u2013\s]/.test(e.text())||e.addClass("ui-widget-content ui-menu-divider")}),e.children(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){"icons"===t&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(e.submenu),this._super(t,e)},focus:function(t,e){var i,s;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.height(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this.active.children("a").removeClass("ui-state-focus"),this.active=null,this._trigger("blur",t,{item:this.active}))},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.children(".ui-menu-item")[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.children(".ui-menu-item")[this.active?"last":"first"]())),undefined):(this.next(e),undefined)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.children(".ui-menu-item").first())),undefined):(this.next(e),undefined)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)}})}(jQuery),function(t,e){function i(t,e,i){return[parseFloat(t[0])*(p.test(t[0])?e/100:1),parseFloat(t[1])*(p.test(t[1])?i/100:1)]}function s(e,i){return parseInt(t.css(e,i),10)||0}function n(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}t.ui=t.ui||{};var o,a=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,c=/top|center|bottom/,u=/[\+\-]\d+(\.[\d]+)?%?/,d=/^\w+/,p=/%$/,f=t.fn.position;t.position={scrollbarWidth:function(){if(o!==e)return o;var i,s,n=t("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),a=n.children()[0];return t("body").append(n),i=a.offsetWidth,n.css("overflow","scroll"),s=a.offsetWidth,i===s&&(s=n[0].clientWidth),n.remove(),o=i-s},getScrollInfo:function(e){var i=e.isWindow?"":e.element.css("overflow-x"),s=e.isWindow?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]);return{element:i,isWindow:s,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s?i.width():i.outerWidth(),height:s?i.height():i.outerHeight()}}},t.fn.position=function(e){if(!e||!e.of)return f.apply(this,arguments);e=t.extend({},e);var o,p,g,m,v,_,b=t(e.of),y=t.position.getWithinInfo(e.within),w=t.position.getScrollInfo(y),k=(e.collision||"flip").split(" "),x={};return _=n(b),b[0].preventDefault&&(e.at="left top"),p=_.width,g=_.height,m=_.offset,v=t.extend({},m),t.each(["my","at"],function(){var t,i,s=(e[this]||"").split(" ");1===s.length&&(s=l.test(s[0])?s.concat(["center"]):c.test(s[0])?["center"].concat(s):["center","center"]),s[0]=l.test(s[0])?s[0]:"center",s[1]=c.test(s[1])?s[1]:"center",t=u.exec(s[0]),i=u.exec(s[1]),x[this]=[t?t[0]:0,i?i[0]:0],e[this]=[d.exec(s[0])[0],d.exec(s[1])[0]]}),1===k.length&&(k[1]=k[0]),"right"===e.at[0]?v.left+=p:"center"===e.at[0]&&(v.left+=p/2),"bottom"===e.at[1]?v.top+=g:"center"===e.at[1]&&(v.top+=g/2),o=i(x.at,p,g),v.left+=o[0],v.top+=o[1],this.each(function(){var n,l,c=t(this),u=c.outerWidth(),d=c.outerHeight(),f=s(this,"marginLeft"),_=s(this,"marginTop"),D=u+f+s(this,"marginRight")+w.width,C=d+_+s(this,"marginBottom")+w.height,I=t.extend({},v),P=i(x.my,c.outerWidth(),c.outerHeight());"right"===e.my[0]?I.left-=u:"center"===e.my[0]&&(I.left-=u/2),"bottom"===e.my[1]?I.top-=d:"center"===e.my[1]&&(I.top-=d/2),I.left+=P[0],I.top+=P[1],t.support.offsetFractions||(I.left=h(I.left),I.top=h(I.top)),n={marginLeft:f,marginTop:_},t.each(["left","top"],function(i,s){t.ui.position[k[i]]&&t.ui.position[k[i]][s](I,{targetWidth:p,targetHeight:g,elemWidth:u,elemHeight:d,collisionPosition:n,collisionWidth:D,collisionHeight:C,offset:[o[0]+P[0],o[1]+P[1]],my:e.my,at:e.at,within:y,elem:c})}),e.using&&(l=function(t){var i=m.left-I.left,s=i+p-u,n=m.top-I.top,o=n+g-d,h={target:{element:b,left:m.left,top:m.top,width:p,height:g},element:{element:c,left:I.left,top:I.top,width:u,height:d},horizontal:0>s?"left":i>0?"right":"center",vertical:0>o?"top":n>0?"bottom":"middle"};u>p&&p>r(i+s)&&(h.horizontal="center"),d>g&&g>r(n+o)&&(h.vertical="middle"),h.important=a(r(i),r(s))>a(r(n),r(o))?"horizontal":"vertical",e.using.call(this,t,h)}),c.offset(t.extend(I,{using:l}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,o=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-o-n;e.collisionWidth>o?h>0&&0>=l?(i=t.left+h+e.collisionWidth-o-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+o-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=a(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,o=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-o-n;e.collisionHeight>o?h>0&&0>=l?(i=t.top+h+e.collisionHeight-o-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+o-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=a(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,a=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-a-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-a-o,(0>i||r(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>r(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,a=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-a-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-a-o,t.top+p+f+g>c&&(0>s||r(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-h,t.top+p+f+g>u&&(i>0||u>r(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}},function(){var e,i,s,n,o,a=document.getElementsByTagName("body")[0],r=document.createElement("div");e=document.createElement(a?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},a&&t.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)e.style[o]=s[o];e.appendChild(r),i=a||document.documentElement,i.insertBefore(e,i.firstChild),r.style.cssText="position: absolute; left: 10.7432222px;",n=t(r).offset().left,t.support.offsetFractions=n>10&&11>n,e.innerHTML="",i.removeChild(e)}()}(jQuery),function(t,e){t.widget("ui.progressbar",{version:"1.10.2",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min}),this.valueDiv=t("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this._refreshValue()
|
11 |
+
},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(t){return t===e?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),e)},_constrainedValue:function(t){return t===e&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).toggleClass("ui-corner-right",e===this.options.max).width(i.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}})}(jQuery),function(t){var e=5;t.widget("ui.slider",t.ui.mouse,{version:"1.10.2",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),o="<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",a=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i>e;e++)a.push(o);this.handles=n.add(t(a.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e)})},_createRange:function(){var e=this.options,i="";e.range?(e.range===!0&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}):(this.range=t("<div></div>").appendTo(this.element),i="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(i+("min"===e.range||"max"===e.range?" ui-slider-range-"+e.range:""))):this.range=t([])},_setupEvents:function(){var t=this.handles.add(this.range).filter("a");this._off(t),this._on(t,this._handleEvents),this._hoverable(t),this._focusable(t)},_destroy:function(){this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,o,a,r,h,l,c=this,u=this.options;return u.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-c.values(e));(n>i||n===i&&(e===c._lastChangedValue||c.values(e)===u.min))&&(n=i,o=t(this),a=e)}),r=this._start(e,a),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=a,o.addClass("ui-state-active").focus(),h=o.offset(),l=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:e.pageX-h.left-o.width()/2,top:e.pageY-h.top-o.height()/2-(parseInt(o.css("borderTopWidth"),10)||0)-(parseInt(o.css("borderBottomWidth"),10)||0)+(parseInt(o.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,a,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,i,s,n,o;return"horizontal"===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/e,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),o=this._valueMin()+s*n,this._trimAlignValue(o)},_start:function(t,e){var i={handle:this.handles[e],value:this.value()};return this.options.values&&this.options.values.length&&(i.value=this.values(e),i.values=this.values()),this._trigger("start",t,i)},_slide:function(t,e,i){var s,n,o;this.options.values&&this.options.values.length?(s=this.values(e?0:1),2===this.options.values.length&&this.options.range===!0&&(0===e&&i>s||1===e&&s>i)&&(i=s),i!==this.values(e)&&(n=this.values(),n[e]=i,o=this._trigger("slide",t,{handle:this.handles[e],value:i,values:n}),s=this.values(e?0:1),o!==!1&&this.values(e,i,!0))):i!==this.value()&&(o=this._trigger("slide",t,{handle:this.handles[e],value:i}),o!==!1&&this.value(i))},_stop:function(t,e){var i={handle:this.handles[e],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(e),i.values=this.values()),this._trigger("stop",t,i)},_change:function(t,e){if(!this._keySliding&&!this._mouseSliding){var i={handle:this.handles[e],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(e),i.values=this.values()),this._lastChangedValue=e,this._trigger("change",t,i)}},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0),undefined):this._value()},values:function(e,i){var s,n,o;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),this._change(null,e),undefined;if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(e):this.value();for(s=this.options.values,n=arguments[0],o=0;s.length>o;o+=1)s[o]=this._trimAlignValue(n[o]),this._change(null,o);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch("range"===e&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(n=this.options.values.length),t.Widget.prototype._setOption.apply(this,arguments),e){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=0;n>s;s+=1)this._change(null,s);this._animateOff=!1;break;case"min":case"max":this._animateOff=!0,this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this.options.values&&this.options.values.length){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()>=t)return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)>=e&&(s+=i>0?e:-e),parseFloat(s.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var e,i,s,n,o,a=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,c={};this.options.values&&this.options.values.length?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),c["horizontal"===h.orientation?"left":"bottom"]=i+"%",t(this).stop(1,1)[l?"animate":"css"](c,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:r.animate}))),e=i}):(s=this.value(),n=this._valueMin(),o=this._valueMax(),i=o!==n?100*((s-n)/(o-n)):0,c["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](c,r.animate),"min"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===a&&"horizontal"===this.orientation&&this.range[l?"animate":"css"]({width:100-i+"%"},{queue:!1,duration:r.animate}),"min"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===a&&"vertical"===this.orientation&&this.range[l?"animate":"css"]({height:100-i+"%"},{queue:!1,duration:r.animate}))},_handleEvents:{keydown:function(i){var s,n,o,a,r=t(i.target).data("ui-slider-handle-index");switch(i.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(i.preventDefault(),!this._keySliding&&(this._keySliding=!0,t(i.target).addClass("ui-state-active"),s=this._start(i,r),s===!1))return}switch(a=this.options.step,n=o=this.options.values&&this.options.values.length?this.values(r):this.value(),i.keyCode){case t.ui.keyCode.HOME:o=this._valueMin();break;case t.ui.keyCode.END:o=this._valueMax();break;case t.ui.keyCode.PAGE_UP:o=this._trimAlignValue(n+(this._valueMax()-this._valueMin())/e);break;case t.ui.keyCode.PAGE_DOWN:o=this._trimAlignValue(n-(this._valueMax()-this._valueMin())/e);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(n===this._valueMax())return;o=this._trimAlignValue(n+a);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(n===this._valueMin())return;o=this._trimAlignValue(n-a)}this._slide(i,r,o)},click:function(t){t.preventDefault()},keyup:function(e){var i=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,i),this._change(e,i),t(e.target).removeClass("ui-state-active"))}}})}(jQuery),function(t){function e(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.widget("ui.spinner",{version:"1.10.2",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e={},i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);void 0!==n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t),void 0)},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){var t=this.element[0]===this.document[0].activeElement;t||(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:(this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var t=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=t.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*t.height())&&t.height()>0&&t.height(t.height()),this.options.disabled&&this.disable()},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "+this.options.icons.up+"'>▲</span>"+"</a>"+"<a class='ui-spinner-button ui-spinner-down ui-corner-br'>"+"<span class='ui-icon "+this.options.icons.down+"'>▼</span>"+"</a>"},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return e=null!==s.min?s.min:0,i=t-e,i=Math.round(i/s.step)*s.step,t=e+i,t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){if("culture"===t||"numberFormat"===t){var i=this._parse(this.element.val());return this.options[t]=e,this.element.val(this._format(i)),void 0}("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(e.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(e.down)),this._super(t,e),"disabled"===t&&(e?(this.element.prop("disabled",!0),this.buttons.button("disable")):(this.element.prop("disabled",!1),this.buttons.button("enable")))},_setOptions:e(function(t){this._super(t),this._value(this.element.val())}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},_value:function(t,e){var i;""!==t&&(i=this._parse(t),null!==i&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:e(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:e(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:e(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:e(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?(e(this._value).call(this,t),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}})}(jQuery),function(t,e){function i(){return++n}function s(t){return t.hash.length>1&&decodeURIComponent(t.href.replace(o,""))===decodeURIComponent(location.href.replace(o,""))}var n=0,o=/#.*$/;t.widget("ui.tabs",{version:"1.10.2",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var e=this,i=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",i.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var i=this.options.active,s=this.options.collapsible,n=location.hash.substring(1);return null===i&&(n&&this.tabs.each(function(s,o){return t(o).attr("aria-controls")===n?(i=s,!1):e}),null===i&&(i=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===i||-1===i)&&(i=this.tabs.length?0:!1)),i!==!1&&(i=this.tabs.index(this.tabs.eq(i)),-1===i&&(i=s?!1:0)),!s&&i===!1&&this.anchors.length&&(i=0),i},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(i){var s=t(this.document[0].activeElement).closest("li"),n=this.tabs.index(s),o=!0;if(!this._handlePageNav(i)){switch(i.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:n++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:o=!1,n--;break;case t.ui.keyCode.END:n=this.anchors.length-1;break;case t.ui.keyCode.HOME:n=0;break;case t.ui.keyCode.SPACE:return i.preventDefault(),clearTimeout(this.activating),this._activate(n),e;case t.ui.keyCode.ENTER:return i.preventDefault(),clearTimeout(this.activating),this._activate(n===this.options.active?!1:n),e;default:return}i.preventDefault(),clearTimeout(this.activating),n=this._focusNextTab(n,o),i.ctrlKey||(s.attr("aria-selected","false"),this.tabs.eq(n).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",n)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.focus())},_handlePageNav:function(i){return i.altKey&&i.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):i.altKey&&i.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):e},_findNextTab:function(e,i){function s(){return e>n&&(e=0),0>e&&(e=n),e}for(var n=this.tabs.length-1;-1!==t.inArray(s(),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).focus(),t},_setOption:function(t,i){return"active"===t?(this._activate(i),e):"disabled"===t?(this._setupDisabled(i),e):(this._super(t,i),"collapsible"===t&&(this.element.toggleClass("ui-tabs-collapsible",i),i||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(i),"heightStyle"===t&&this._setupHeightStyle(i),e)},_tabId:function(t){return t.attr("aria-controls")||"ui-tabs-"+i()},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-expanded":"false","aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-expanded":"true","aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist"),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=t(),this.anchors.each(function(i,n){var o,a,r,h=t(n).uniqueId().attr("id"),l=t(n).closest("li"),c=l.attr("aria-controls");s(n)?(o=n.hash,a=e.element.find(e._sanitizeSelector(o))):(r=e._tabId(l),o="#"+r,a=e.element.find(o),a.length||(a=e._createPanel(r),a.insertAfter(e.panels[i-1]||e.tablist)),a.attr("aria-live","polite")),a.length&&(e.panels=e.panels.add(a)),c&&l.data("ui-tabs-aria-controls",c),l.attr({"aria-controls":o.substring(1),"aria-labelledby":h}),a.attr("aria-labelledby",h)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},_getList:function(){return this.element.find("ol,ul").eq(0)},_createPanel:function(e){return t("<div>").attr("id",e).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(e){t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1);for(var i,s=0;i=this.tabs[s];s++)e===!0||-1!==t.inArray(s,e)?t(i).addClass("ui-state-disabled").attr("aria-disabled","true"):t(i).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=e},_setupEvents:function(e){var i={click:function(t){t.preventDefault()}};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),o=n.closest("li"),a=o[0]===s[0],r=a&&i.collapsible,h=r?t():this._getPanelForTab(o),l=s.length?this._getPanelForTab(s):t(),c={oldTab:s,oldPanel:l,newTab:r?t():o,newPanel:h};e.preventDefault(),o.hasClass("ui-state-disabled")||o.hasClass("ui-tabs-loading")||this.running||a&&!i.collapsible||this._trigger("beforeActivate",e,c)===!1||(i.active=r?!1:this.tabs.index(o),this.active=a?t():o,this.xhr&&this.xhr.abort(),l.length||h.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(o),e),this._toggle(e,c))},_toggle:function(e,i){function s(){o.running=!1,o._trigger("activate",e,i)}function n(){i.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),a.length&&o.options.show?o._show(a,o.options.show,s):(a.show(),s())}var o=this,a=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),n()}):(i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),r.hide(),n()),r.attr({"aria-expanded":"false","aria-hidden":"true"}),i.oldTab.attr("aria-selected","false"),a.length&&r.length?i.oldTab.attr("tabIndex",-1):a.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),a.attr({"aria-expanded":"true","aria-hidden":"false"}),i.newTab.attr({"aria-selected":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(t){return"string"==typeof t&&(t=this.anchors.index(this.anchors.filter("[href$='"+t+"']"))),t},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(i){var s=this.options.disabled;s!==!1&&(i===e?s=!1:(i=this._getIndex(i),s=t.isArray(s)?t.map(s,function(t){return t!==i?t:null}):t.map(this.tabs,function(t,e){return e!==i?e:null})),this._setupDisabled(s))},disable:function(i){var s=this.options.disabled;if(s!==!0){if(i===e)s=!0;else{if(i=this._getIndex(i),-1!==t.inArray(i,s))return;s=t.isArray(s)?t.merge([i],s).sort():[i]}this._setupDisabled(s)}},load:function(e,i){e=this._getIndex(e);var n=this,o=this.tabs.eq(e),a=o.find(".ui-tabs-anchor"),r=this._getPanelForTab(o),h={tab:o,panel:r};s(a[0])||(this.xhr=t.ajax(this._ajaxSettings(a,i,h)),this.xhr&&"canceled"!==this.xhr.statusText&&(o.addClass("ui-tabs-loading"),r.attr("aria-busy","true"),this.xhr.success(function(t){setTimeout(function(){r.html(t),n._trigger("load",i,h)},1)}).complete(function(t,e){setTimeout(function(){"abort"===e&&n.panels.stop(!1,!0),o.removeClass("ui-tabs-loading"),r.removeAttr("aria-busy"),t===n.xhr&&delete n.xhr},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href"),beforeSend:function(e,o){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:o},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}})}(jQuery),function(t){function e(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))}function i(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),s=t.trim(s.join(" ")),s?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")}var s=0;t.widget("ui.tooltip",{version:"1.10.2",options:{content:function(){var e=t(this).attr("title")||"";return t("<a>").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable()},_setOption:function(e,i){var s=this;return"disabled"===e?(this[i?"_disable":"_enable"](),this.options[e]=i,void 0):(this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e)}),void 0)},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s[0],e.close(n,!0)}),this.element.find(this.options.items).addBack().each(function(){var e=t(this);e.is("[title]")&&e.data("ui-tooltip-title",e.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))})},open:function(e){var i=this,s=t(e?e.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,o=e?e.type:null;return"string"==typeof s?this._open(e,t,s):(i=s.call(t[0],function(i){t.data("ui-tooltip-open")&&n._delay(function(){e&&(e.type=o),this._open(e,t,i)
|
12 |
+
})}),i&&this._open(e,t,i),void 0)},_open:function(i,s,n){function o(t){l.of=t,a.is(":hidden")||a.position(l)}var a,r,h,l=t.extend({},this.options.position);if(n){if(a=this._find(s),a.length)return a.find(".ui-tooltip-content").html(n),void 0;s.is("[title]")&&(i&&"mouseover"===i.type?s.attr("title",""):s.removeAttr("title")),a=this._tooltip(s),e(s,a.attr("id")),a.find(".ui-tooltip-content").html(n),this.options.track&&i&&/^mouse/.test(i.type)?(this._on(this.document,{mousemove:o}),o(i)):a.position(t.extend({of:s},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.show&&this.options.show.delay&&(h=this.delayedShow=setInterval(function(){a.is(":visible")&&(o(l.of),clearInterval(h))},t.fx.interval)),this._trigger("open",i,{tooltip:a}),r={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var i=t.Event(e);i.currentTarget=s[0],this.close(i,!0)}},remove:function(){this._removeTooltip(a)}},i&&"mouseover"!==i.type||(r.mouseleave="close"),i&&"focusin"!==i.type||(r.focusout="close"),this._on(!0,s,r)}},close:function(e){var s=this,n=t(e?e.currentTarget:this.element),o=this._find(n);this.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&n.attr("title",n.data("ui-tooltip-title")),i(n),o.stop(!0),this._hide(o,this.options.hide,function(){s._removeTooltip(t(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),this.closing=!0,this._trigger("close",e,{tooltip:o}),this.closing=!1)},_tooltip:function(e){var i="ui-tooltip-"+s++,n=t("<div>").attr({id:i,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));return t("<div>").addClass("ui-tooltip-content").appendTo(n),n.appendTo(this.document[0].body),this.tooltips[i]=e,n},_find:function(e){var i=e.data("ui-tooltip-id");return i?t("#"+i):t()},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s[0],e.close(n,!0),t("#"+i).remove(),s.data("ui-tooltip-title")&&(s.attr("title",s.data("ui-tooltip-title")),s.removeData("ui-tooltip-title"))})}})}(jQuery);
|
skin/adminhtml/default/default/sendinblue/js/jquery.multiselect.js
ADDED
@@ -0,0 +1,705 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* jshint forin:true, noarg:true, noempty:true, eqeqeq:true, boss:true, undef:true, curly:true, browser:true, jquery:true */
|
2 |
+
/*
|
3 |
+
* jQuery MultiSelect UI Widget 1.13
|
4 |
+
* Copyright (c) 2012 Eric Hynds
|
5 |
+
*
|
6 |
+
* http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/
|
7 |
+
*
|
8 |
+
* Depends:
|
9 |
+
* - jQuery 1.4.2+
|
10 |
+
* - jQuery UI 1.8 widget factory
|
11 |
+
*
|
12 |
+
* Optional:
|
13 |
+
* - jQuery UI effects
|
14 |
+
* - jQuery UI position utility
|
15 |
+
*
|
16 |
+
* Dual licensed under the MIT and GPL licenses:
|
17 |
+
* http://www.opensource.org/licenses/mit-license.php
|
18 |
+
* http://www.gnu.org/licenses/gpl.html
|
19 |
+
*
|
20 |
+
*/
|
21 |
+
(function($, undefined){
|
22 |
+
|
23 |
+
var multiselectID = 0;
|
24 |
+
|
25 |
+
$.widget("ech.multiselect", {
|
26 |
+
|
27 |
+
// default options
|
28 |
+
options: {
|
29 |
+
header: false,
|
30 |
+
height: 175,
|
31 |
+
minWidth: 225,
|
32 |
+
classes: '',
|
33 |
+
checkAllText: 'Check all',
|
34 |
+
uncheckAllText: 'Uncheck all',
|
35 |
+
noneSelectedText: selectoption,
|
36 |
+
selectedText: '# '+selected,
|
37 |
+
selectedList: 0,
|
38 |
+
show: null,
|
39 |
+
hide: null,
|
40 |
+
autoOpen: false,
|
41 |
+
multiple: true,
|
42 |
+
position: {}
|
43 |
+
},
|
44 |
+
|
45 |
+
_create: function(){
|
46 |
+
var el = this.element.hide(),
|
47 |
+
o = this.options;
|
48 |
+
|
49 |
+
this.speed = $.fx.speeds._default; // default speed for effects
|
50 |
+
this._isOpen = false; // assume no
|
51 |
+
|
52 |
+
var
|
53 |
+
button = (this.button = $('<button type="button"><span class="ui-icon ui-icon-triangle-2-n-s"></span></button>'))
|
54 |
+
.addClass('ui-multiselect ui-widget ui-state-default ui-corner-all')
|
55 |
+
.addClass( o.classes )
|
56 |
+
.attr({ 'title':el.attr('title'), 'aria-haspopup':true, 'tabIndex':el.attr('tabIndex') })
|
57 |
+
.insertAfter( el ),
|
58 |
+
|
59 |
+
buttonlabel = (this.buttonlabel = $('<span />'))
|
60 |
+
.html( o.noneSelectedText )
|
61 |
+
.appendTo( button ),
|
62 |
+
|
63 |
+
menu = (this.menu = $('<div />'))
|
64 |
+
.addClass('ui-multiselect-menu ui-widget ui-widget-content ui-corner-all')
|
65 |
+
.addClass( o.classes )
|
66 |
+
.appendTo( document.body ),
|
67 |
+
|
68 |
+
header = (this.header = $('<div />'))
|
69 |
+
.addClass('ui-widget-header ui-corner-all ui-multiselect-header ui-helper-clearfix')
|
70 |
+
.appendTo( menu ),
|
71 |
+
|
72 |
+
headerLinkContainer = (this.headerLinkContainer = $('<ul />'))
|
73 |
+
.addClass('ui-helper-reset')
|
74 |
+
.html(function(){
|
75 |
+
if( o.header === true ){
|
76 |
+
return '<li><a class="ui-multiselect-all" href="#"><span class="ui-icon ui-icon-check"></span><span>' + o.checkAllText + '</span></a></li><li><a class="ui-multiselect-none" href="#"><span class="ui-icon ui-icon-closethick"></span><span>' + o.uncheckAllText + '</span></a></li>';
|
77 |
+
} else if(typeof o.header === "string"){
|
78 |
+
return '<li>' + o.header + '</li>';
|
79 |
+
} else {
|
80 |
+
return '';
|
81 |
+
}
|
82 |
+
})
|
83 |
+
.append('<li class="ui-multiselect-close"><a href="#" class="ui-multiselect-close"><span class="ui-icon ui-icon-circle-close"></span></a></li>')
|
84 |
+
.appendTo( header ),
|
85 |
+
|
86 |
+
checkboxContainer = (this.checkboxContainer = $('<ul />'))
|
87 |
+
.addClass('ui-multiselect-checkboxes ui-helper-reset')
|
88 |
+
.appendTo( menu );
|
89 |
+
|
90 |
+
// perform event bindings
|
91 |
+
this._bindEvents();
|
92 |
+
|
93 |
+
// build menu
|
94 |
+
this.refresh( true );
|
95 |
+
|
96 |
+
// some addl. logic for single selects
|
97 |
+
if( !o.multiple ){
|
98 |
+
menu.addClass('ui-multiselect-single');
|
99 |
+
}
|
100 |
+
},
|
101 |
+
|
102 |
+
_init: function(){
|
103 |
+
if( this.options.header === false ){
|
104 |
+
this.header.hide();
|
105 |
+
}
|
106 |
+
if( !this.options.multiple ){
|
107 |
+
this.headerLinkContainer.find('.ui-multiselect-all, .ui-multiselect-none').hide();
|
108 |
+
}
|
109 |
+
if( this.options.autoOpen ){
|
110 |
+
this.open();
|
111 |
+
}
|
112 |
+
if( this.element.is(':disabled') ){
|
113 |
+
this.disable();
|
114 |
+
}
|
115 |
+
},
|
116 |
+
|
117 |
+
refresh: function( init ){
|
118 |
+
var el = this.element,
|
119 |
+
o = this.options,
|
120 |
+
menu = this.menu,
|
121 |
+
checkboxContainer = this.checkboxContainer,
|
122 |
+
optgroups = [],
|
123 |
+
html = "",
|
124 |
+
id = el.attr('id') || multiselectID++; // unique ID for the label & option tags
|
125 |
+
|
126 |
+
// build items
|
127 |
+
el.find('option').each(function( i ){
|
128 |
+
var $this = $(this),
|
129 |
+
parent = this.parentNode,
|
130 |
+
title = this.innerHTML,
|
131 |
+
description = this.title,
|
132 |
+
value = this.value,
|
133 |
+
inputID = 'ui-multiselect-' + (this.id || id + '-option-' + i),
|
134 |
+
isDisabled = this.disabled,
|
135 |
+
isSelected = this.selected,
|
136 |
+
labelClasses = [ 'ui-corner-all' ],
|
137 |
+
liClasses = (isDisabled ? 'ui-multiselect-disabled ' : ' ') + this.className,
|
138 |
+
optLabel;
|
139 |
+
|
140 |
+
// is this an optgroup?
|
141 |
+
if( parent.tagName === 'OPTGROUP' ){
|
142 |
+
optLabel = parent.getAttribute( 'label' );
|
143 |
+
|
144 |
+
// has this optgroup been added already?
|
145 |
+
if( $.inArray(optLabel, optgroups) === -1 ){
|
146 |
+
html += '<li class="ui-multiselect-optgroup-label ' + parent.className + '"><a href="#">' + optLabel + '</a></li>';
|
147 |
+
optgroups.push( optLabel );
|
148 |
+
}
|
149 |
+
}
|
150 |
+
|
151 |
+
if( isDisabled ){
|
152 |
+
labelClasses.push( 'ui-state-disabled' );
|
153 |
+
}
|
154 |
+
|
155 |
+
// browsers automatically select the first option
|
156 |
+
// by default with single selects
|
157 |
+
if( isSelected && !o.multiple ){
|
158 |
+
labelClasses.push( 'ui-state-active' );
|
159 |
+
}
|
160 |
+
|
161 |
+
html += '<li class="' + liClasses + '">';
|
162 |
+
|
163 |
+
// create the label
|
164 |
+
html += '<label for="' + inputID + '" title="' + description + '" class="' + labelClasses.join(' ') + '">';
|
165 |
+
html += '<input id="' + inputID + '" name="multiselect_' + id + '" type="' + (o.multiple ? "checkbox" : "radio") + '" value="' + value + '" title="' + title + '"';
|
166 |
+
|
167 |
+
// pre-selected?
|
168 |
+
if( isSelected ){
|
169 |
+
html += ' checked="checked"';
|
170 |
+
html += ' aria-selected="true"';
|
171 |
+
}
|
172 |
+
|
173 |
+
// disabled?
|
174 |
+
if( isDisabled ){
|
175 |
+
html += ' disabled="disabled"';
|
176 |
+
html += ' aria-disabled="true"';
|
177 |
+
}
|
178 |
+
|
179 |
+
// add the title and close everything off
|
180 |
+
html += ' /><span>' + title + '</span></label></li>';
|
181 |
+
});
|
182 |
+
|
183 |
+
// insert into the DOM
|
184 |
+
checkboxContainer.html( html );
|
185 |
+
|
186 |
+
// cache some moar useful elements
|
187 |
+
this.labels = menu.find('label');
|
188 |
+
this.inputs = this.labels.children('input');
|
189 |
+
|
190 |
+
// set widths
|
191 |
+
this._setButtonWidth();
|
192 |
+
this._setMenuWidth();
|
193 |
+
|
194 |
+
// remember default value
|
195 |
+
this.button[0].defaultValue = this.update();
|
196 |
+
|
197 |
+
// broadcast refresh event; useful for widgets
|
198 |
+
if( !init ){
|
199 |
+
this._trigger('refresh');
|
200 |
+
}
|
201 |
+
},
|
202 |
+
|
203 |
+
// updates the button text. call refresh() to rebuild
|
204 |
+
update: function(){
|
205 |
+
var o = this.options,
|
206 |
+
$inputs = this.inputs,
|
207 |
+
$checked = $inputs.filter(':checked'),
|
208 |
+
numChecked = $checked.length,
|
209 |
+
value;
|
210 |
+
|
211 |
+
if( numChecked === 0 ){
|
212 |
+
value = o.noneSelectedText;
|
213 |
+
} else {
|
214 |
+
if($.isFunction( o.selectedText )){
|
215 |
+
value = o.selectedText.call(this, numChecked, $inputs.length, $checked.get());
|
216 |
+
} else if( /\d/.test(o.selectedList) && o.selectedList > 0 && numChecked <= o.selectedList){
|
217 |
+
value = $checked.map(function(){ return $(this).next().html(); }).get().join(', ');
|
218 |
+
} else {
|
219 |
+
value = o.selectedText.replace('#', numChecked).replace('#', $inputs.length);
|
220 |
+
}
|
221 |
+
}
|
222 |
+
|
223 |
+
this.buttonlabel.html( value );
|
224 |
+
return value;
|
225 |
+
},
|
226 |
+
|
227 |
+
// binds events
|
228 |
+
_bindEvents: function(){
|
229 |
+
var self = this, button = this.button;
|
230 |
+
|
231 |
+
function clickHandler(){
|
232 |
+
self[ self._isOpen ? 'close' : 'open' ]();
|
233 |
+
return false;
|
234 |
+
}
|
235 |
+
|
236 |
+
// webkit doesn't like it when you click on the span :(
|
237 |
+
button
|
238 |
+
.find('span')
|
239 |
+
.bind('click.multiselect', clickHandler);
|
240 |
+
|
241 |
+
// button events
|
242 |
+
button.bind({
|
243 |
+
click: clickHandler,
|
244 |
+
keypress: function( e ){
|
245 |
+
switch(e.which){
|
246 |
+
case 27: // esc
|
247 |
+
case 38: // up
|
248 |
+
case 37: // left
|
249 |
+
self.close();
|
250 |
+
break;
|
251 |
+
case 39: // right
|
252 |
+
case 40: // down
|
253 |
+
self.open();
|
254 |
+
break;
|
255 |
+
}
|
256 |
+
},
|
257 |
+
mouseenter: function(){
|
258 |
+
if( !button.hasClass('ui-state-disabled') ){
|
259 |
+
$(this).addClass('ui-state-hover');
|
260 |
+
}
|
261 |
+
},
|
262 |
+
mouseleave: function(){
|
263 |
+
$(this).removeClass('ui-state-hover');
|
264 |
+
},
|
265 |
+
focus: function(){
|
266 |
+
if( !button.hasClass('ui-state-disabled') ){
|
267 |
+
$(this).addClass('ui-state-focus');
|
268 |
+
}
|
269 |
+
},
|
270 |
+
blur: function(){
|
271 |
+
$(this).removeClass('ui-state-focus');
|
272 |
+
}
|
273 |
+
});
|
274 |
+
|
275 |
+
// header links
|
276 |
+
this.header
|
277 |
+
.delegate('a', 'click.multiselect', function( e ){
|
278 |
+
// close link
|
279 |
+
if( $(this).hasClass('ui-multiselect-close') ){
|
280 |
+
self.close();
|
281 |
+
|
282 |
+
// check all / uncheck all
|
283 |
+
} else {
|
284 |
+
self[ $(this).hasClass('ui-multiselect-all') ? 'checkAll' : 'uncheckAll' ]();
|
285 |
+
}
|
286 |
+
|
287 |
+
e.preventDefault();
|
288 |
+
});
|
289 |
+
|
290 |
+
// optgroup label toggle support
|
291 |
+
this.menu
|
292 |
+
.delegate('li.ui-multiselect-optgroup-label a', 'click.multiselect', function( e ){
|
293 |
+
e.preventDefault();
|
294 |
+
|
295 |
+
var $this = $(this),
|
296 |
+
$inputs = $this.parent().nextUntil('li.ui-multiselect-optgroup-label').find('input:visible:not(:disabled)'),
|
297 |
+
nodes = $inputs.get(),
|
298 |
+
label = $this.parent().text();
|
299 |
+
|
300 |
+
// trigger event and bail if the return is false
|
301 |
+
if( self._trigger('beforeoptgrouptoggle', e, { inputs:nodes, label:label }) === false ){
|
302 |
+
return;
|
303 |
+
}
|
304 |
+
|
305 |
+
// toggle inputs
|
306 |
+
self._toggleChecked(
|
307 |
+
$inputs.filter(':checked').length !== $inputs.length,
|
308 |
+
$inputs
|
309 |
+
);
|
310 |
+
|
311 |
+
self._trigger('optgrouptoggle', e, {
|
312 |
+
inputs: nodes,
|
313 |
+
label: label,
|
314 |
+
checked: nodes[0].checked
|
315 |
+
});
|
316 |
+
})
|
317 |
+
.delegate('label', 'mouseenter.multiselect', function(){
|
318 |
+
if( !$(this).hasClass('ui-state-disabled') ){
|
319 |
+
self.labels.removeClass('ui-state-hover');
|
320 |
+
$(this).addClass('ui-state-hover').find('input').focus();
|
321 |
+
}
|
322 |
+
})
|
323 |
+
.delegate('label', 'keydown.multiselect', function( e ){
|
324 |
+
e.preventDefault();
|
325 |
+
|
326 |
+
switch(e.which){
|
327 |
+
case 9: // tab
|
328 |
+
case 27: // esc
|
329 |
+
self.close();
|
330 |
+
break;
|
331 |
+
case 38: // up
|
332 |
+
case 40: // down
|
333 |
+
case 37: // left
|
334 |
+
case 39: // right
|
335 |
+
self._traverse(e.which, this);
|
336 |
+
break;
|
337 |
+
case 13: // enter
|
338 |
+
$(this).find('input')[0].click();
|
339 |
+
break;
|
340 |
+
}
|
341 |
+
})
|
342 |
+
.delegate('input[type="checkbox"], input[type="radio"]', 'click.multiselect', function( e ){
|
343 |
+
var $this = $(this),
|
344 |
+
val = this.value,
|
345 |
+
checked = this.checked,
|
346 |
+
tags = self.element.find('option');
|
347 |
+
|
348 |
+
// bail if this input is disabled or the event is cancelled
|
349 |
+
if( this.disabled || self._trigger('click', e, { value: val, text: this.title, checked: checked }) === false ){
|
350 |
+
e.preventDefault();
|
351 |
+
return;
|
352 |
+
}
|
353 |
+
|
354 |
+
// make sure the input has focus. otherwise, the esc key
|
355 |
+
// won't close the menu after clicking an item.
|
356 |
+
$this.focus();
|
357 |
+
|
358 |
+
// toggle aria state
|
359 |
+
$this.attr('aria-selected', checked);
|
360 |
+
|
361 |
+
// change state on the original option tags
|
362 |
+
tags.each(function(){
|
363 |
+
if( this.value === val ){
|
364 |
+
this.selected = checked;
|
365 |
+
} else if( !self.options.multiple ){
|
366 |
+
this.selected = false;
|
367 |
+
}
|
368 |
+
});
|
369 |
+
|
370 |
+
// some additional single select-specific logic
|
371 |
+
if( !self.options.multiple ){
|
372 |
+
self.labels.removeClass('ui-state-active');
|
373 |
+
$this.closest('label').toggleClass('ui-state-active', checked );
|
374 |
+
|
375 |
+
// close menu
|
376 |
+
self.close();
|
377 |
+
}
|
378 |
+
|
379 |
+
// fire change on the select box
|
380 |
+
self.element.trigger("change");
|
381 |
+
|
382 |
+
// setTimeout is to fix multiselect issue #14 and #47. caused by jQuery issue #3827
|
383 |
+
// http://bugs.jquery.com/ticket/3827
|
384 |
+
setTimeout($.proxy(self.update, self), 10);
|
385 |
+
});
|
386 |
+
|
387 |
+
// close each widget when clicking on any other element/anywhere else on the page
|
388 |
+
$(document).bind('mousedown.multiselect', function( e ){
|
389 |
+
if(self._isOpen && !$.contains(self.menu[0], e.target) && !$.contains(self.button[0], e.target) && e.target !== self.button[0]){
|
390 |
+
self.close();
|
391 |
+
}
|
392 |
+
});
|
393 |
+
|
394 |
+
// deal with form resets. the problem here is that buttons aren't
|
395 |
+
// restored to their defaultValue prop on form reset, and the reset
|
396 |
+
// handler fires before the form is actually reset. delaying it a bit
|
397 |
+
// gives the form inputs time to clear.
|
398 |
+
$(this.element[0].form).bind('reset.multiselect', function(){
|
399 |
+
setTimeout($.proxy(self.refresh, self), 10);
|
400 |
+
});
|
401 |
+
},
|
402 |
+
|
403 |
+
// set button width
|
404 |
+
_setButtonWidth: function(){
|
405 |
+
var width = this.element.outerWidth(),
|
406 |
+
o = this.options;
|
407 |
+
|
408 |
+
if( /\d/.test(o.minWidth) && width < o.minWidth){
|
409 |
+
width = o.minWidth;
|
410 |
+
}
|
411 |
+
|
412 |
+
// set widths
|
413 |
+
this.button.width( width );
|
414 |
+
},
|
415 |
+
|
416 |
+
// set menu width
|
417 |
+
_setMenuWidth: function(){
|
418 |
+
var m = this.menu,
|
419 |
+
width = this.button.outerWidth()-
|
420 |
+
parseInt(m.css('padding-left'),10)-
|
421 |
+
parseInt(m.css('padding-right'),10)-
|
422 |
+
parseInt(m.css('border-right-width'),10)-
|
423 |
+
parseInt(m.css('border-left-width'),10);
|
424 |
+
|
425 |
+
m.width( width || this.button.outerWidth() );
|
426 |
+
},
|
427 |
+
|
428 |
+
// move up or down within the menu
|
429 |
+
_traverse: function( which, start ){
|
430 |
+
var $start = $(start),
|
431 |
+
moveToLast = which === 38 || which === 37,
|
432 |
+
|
433 |
+
// select the first li that isn't an optgroup label / disabled
|
434 |
+
$next = $start.parent()[moveToLast ? 'prevAll' : 'nextAll']('li:not(.ui-multiselect-disabled, .ui-multiselect-optgroup-label)')[ moveToLast ? 'last' : 'first']();
|
435 |
+
|
436 |
+
// if at the first/last element
|
437 |
+
if( !$next.length ){
|
438 |
+
var $container = this.menu.find('ul').last();
|
439 |
+
|
440 |
+
// move to the first/last
|
441 |
+
this.menu.find('label')[ moveToLast ? 'last' : 'first' ]().trigger('mouseover');
|
442 |
+
|
443 |
+
// set scroll position
|
444 |
+
$container.scrollTop( moveToLast ? $container.height() : 0 );
|
445 |
+
|
446 |
+
} else {
|
447 |
+
$next.find('label').trigger('mouseover');
|
448 |
+
}
|
449 |
+
},
|
450 |
+
|
451 |
+
// This is an internal function to toggle the checked property and
|
452 |
+
// other related attributes of a checkbox.
|
453 |
+
//
|
454 |
+
// The context of this function should be a checkbox; do not proxy it.
|
455 |
+
_toggleState: function( prop, flag ){
|
456 |
+
return function(){
|
457 |
+
if( !this.disabled ) {
|
458 |
+
this[ prop ] = flag;
|
459 |
+
}
|
460 |
+
|
461 |
+
if( flag ){
|
462 |
+
this.setAttribute('aria-selected', true);
|
463 |
+
} else {
|
464 |
+
this.removeAttribute('aria-selected');
|
465 |
+
}
|
466 |
+
};
|
467 |
+
},
|
468 |
+
|
469 |
+
_toggleChecked: function( flag, group ){
|
470 |
+
var $inputs = (group && group.length) ? group : this.inputs,
|
471 |
+
self = this;
|
472 |
+
|
473 |
+
// toggle state on inputs
|
474 |
+
$inputs.each(this._toggleState('checked', flag));
|
475 |
+
|
476 |
+
// give the first input focus
|
477 |
+
$inputs.eq(0).focus();
|
478 |
+
|
479 |
+
// update button text
|
480 |
+
this.update();
|
481 |
+
|
482 |
+
// gather an array of the values that actually changed
|
483 |
+
var values = $inputs.map(function(){
|
484 |
+
return this.value;
|
485 |
+
}).get();
|
486 |
+
|
487 |
+
// toggle state on original option tags
|
488 |
+
this.element
|
489 |
+
.find('option')
|
490 |
+
.each(function(){
|
491 |
+
if( !this.disabled && $.inArray(this.value, values) > -1 ){
|
492 |
+
self._toggleState('selected', flag).call( this );
|
493 |
+
}
|
494 |
+
});
|
495 |
+
|
496 |
+
// trigger the change event on the select
|
497 |
+
if( $inputs.length ) {
|
498 |
+
this.element.trigger("change");
|
499 |
+
}
|
500 |
+
},
|
501 |
+
|
502 |
+
_toggleDisabled: function( flag ){
|
503 |
+
this.button
|
504 |
+
.attr({ 'disabled':flag, 'aria-disabled':flag })[ flag ? 'addClass' : 'removeClass' ]('ui-state-disabled');
|
505 |
+
|
506 |
+
var inputs = this.menu.find('input');
|
507 |
+
var key = "ech-multiselect-disabled";
|
508 |
+
|
509 |
+
if(flag) {
|
510 |
+
// remember which elements this widget disabled (not pre-disabled)
|
511 |
+
// elements, so that they can be restored if the widget is re-enabled.
|
512 |
+
inputs = inputs.filter(':enabled')
|
513 |
+
.data(key, true)
|
514 |
+
} else {
|
515 |
+
inputs = inputs.filter(function() {
|
516 |
+
return $.data(this, key) === true;
|
517 |
+
}).removeData(key);
|
518 |
+
}
|
519 |
+
|
520 |
+
inputs
|
521 |
+
.attr({ 'disabled':flag, 'arial-disabled':flag })
|
522 |
+
.parent()[ flag ? 'addClass' : 'removeClass' ]('ui-state-disabled');
|
523 |
+
|
524 |
+
this.element
|
525 |
+
.attr({ 'disabled':flag, 'aria-disabled':flag });
|
526 |
+
},
|
527 |
+
|
528 |
+
// open the menu
|
529 |
+
open: function( e ){
|
530 |
+
var self = this,
|
531 |
+
button = this.button,
|
532 |
+
menu = this.menu,
|
533 |
+
speed = this.speed,
|
534 |
+
o = this.options,
|
535 |
+
args = [];
|
536 |
+
|
537 |
+
// bail if the multiselectopen event returns false, this widget is disabled, or is already open
|
538 |
+
if( this._trigger('beforeopen') === false || button.hasClass('ui-state-disabled') || this._isOpen ){
|
539 |
+
return;
|
540 |
+
}
|
541 |
+
|
542 |
+
var $container = menu.find('ul').last(),
|
543 |
+
effect = o.show,
|
544 |
+
pos = button.offset();
|
545 |
+
|
546 |
+
// figure out opening effects/speeds
|
547 |
+
if( $.isArray(o.show) ){
|
548 |
+
effect = o.show[0];
|
549 |
+
speed = o.show[1] || self.speed;
|
550 |
+
}
|
551 |
+
|
552 |
+
// if there's an effect, assume jQuery UI is in use
|
553 |
+
// build the arguments to pass to show()
|
554 |
+
if( effect ) {
|
555 |
+
args = [ effect, speed ];
|
556 |
+
}
|
557 |
+
|
558 |
+
// set the scroll of the checkbox container
|
559 |
+
$container.scrollTop(0).height(o.height);
|
560 |
+
|
561 |
+
// position and show menu
|
562 |
+
if( $.ui.position && !$.isEmptyObject(o.position) ){
|
563 |
+
o.position.of = o.position.of || button;
|
564 |
+
|
565 |
+
menu
|
566 |
+
.show()
|
567 |
+
.position( o.position )
|
568 |
+
.hide();
|
569 |
+
|
570 |
+
// if position utility is not available...
|
571 |
+
} else {
|
572 |
+
menu.css({
|
573 |
+
top: pos.top + button.outerHeight(),
|
574 |
+
left: pos.left
|
575 |
+
});
|
576 |
+
}
|
577 |
+
|
578 |
+
// show the menu, maybe with a speed/effect combo
|
579 |
+
$.fn.show.apply(menu, args);
|
580 |
+
|
581 |
+
// select the first option
|
582 |
+
// triggering both mouseover and mouseover because 1.4.2+ has a bug where triggering mouseover
|
583 |
+
// will actually trigger mouseenter. the mouseenter trigger is there for when it's eventually fixed
|
584 |
+
this.labels.eq(0).trigger('mouseover').trigger('mouseenter').find('input').trigger('focus');
|
585 |
+
|
586 |
+
button.addClass('ui-state-active');
|
587 |
+
this._isOpen = true;
|
588 |
+
this._trigger('open');
|
589 |
+
},
|
590 |
+
|
591 |
+
// close the menu
|
592 |
+
close: function(){
|
593 |
+
if(this._trigger('beforeclose') === false){
|
594 |
+
return;
|
595 |
+
}
|
596 |
+
|
597 |
+
var o = this.options,
|
598 |
+
effect = o.hide,
|
599 |
+
speed = this.speed,
|
600 |
+
args = [];
|
601 |
+
|
602 |
+
// figure out opening effects/speeds
|
603 |
+
if( $.isArray(o.hide) ){
|
604 |
+
effect = o.hide[0];
|
605 |
+
speed = o.hide[1] || this.speed;
|
606 |
+
}
|
607 |
+
|
608 |
+
if( effect ) {
|
609 |
+
args = [ effect, speed ];
|
610 |
+
}
|
611 |
+
|
612 |
+
$.fn.hide.apply(this.menu, args);
|
613 |
+
this.button.removeClass('ui-state-active').trigger('blur').trigger('mouseleave');
|
614 |
+
this._isOpen = false;
|
615 |
+
this._trigger('close');
|
616 |
+
},
|
617 |
+
|
618 |
+
enable: function(){
|
619 |
+
this._toggleDisabled(false);
|
620 |
+
},
|
621 |
+
|
622 |
+
disable: function(){
|
623 |
+
this._toggleDisabled(true);
|
624 |
+
},
|
625 |
+
|
626 |
+
checkAll: function( e ){
|
627 |
+
this._toggleChecked(true);
|
628 |
+
this._trigger('checkAll');
|
629 |
+
},
|
630 |
+
|
631 |
+
uncheckAll: function(){
|
632 |
+
this._toggleChecked(false);
|
633 |
+
this._trigger('uncheckAll');
|
634 |
+
},
|
635 |
+
|
636 |
+
getChecked: function(){
|
637 |
+
return this.menu.find('input').filter(':checked');
|
638 |
+
},
|
639 |
+
|
640 |
+
destroy: function(){
|
641 |
+
// remove classes + data
|
642 |
+
$.Widget.prototype.destroy.call( this );
|
643 |
+
|
644 |
+
this.button.remove();
|
645 |
+
this.menu.remove();
|
646 |
+
this.element.show();
|
647 |
+
|
648 |
+
return this;
|
649 |
+
},
|
650 |
+
|
651 |
+
isOpen: function(){
|
652 |
+
return this._isOpen;
|
653 |
+
},
|
654 |
+
|
655 |
+
widget: function(){
|
656 |
+
return this.menu;
|
657 |
+
},
|
658 |
+
|
659 |
+
getButton: function(){
|
660 |
+
return this.button;
|
661 |
+
},
|
662 |
+
|
663 |
+
// react to option changes after initialization
|
664 |
+
_setOption: function( key, value ){
|
665 |
+
var menu = this.menu;
|
666 |
+
|
667 |
+
switch(key){
|
668 |
+
case 'header':
|
669 |
+
menu.find('div.ui-multiselect-header')[ value ? 'show' : 'hide' ]();
|
670 |
+
break;
|
671 |
+
case 'checkAllText':
|
672 |
+
menu.find('a.ui-multiselect-all span').eq(-1).text(value);
|
673 |
+
break;
|
674 |
+
case 'uncheckAllText':
|
675 |
+
menu.find('a.ui-multiselect-none span').eq(-1).text(value);
|
676 |
+
break;
|
677 |
+
case 'height':
|
678 |
+
menu.find('ul').last().height( parseInt(value,10) );
|
679 |
+
break;
|
680 |
+
case 'minWidth':
|
681 |
+
this.options[ key ] = parseInt(value,10);
|
682 |
+
this._setButtonWidth();
|
683 |
+
this._setMenuWidth();
|
684 |
+
break;
|
685 |
+
case 'selectedText':
|
686 |
+
case 'selectedList':
|
687 |
+
case 'noneSelectedText':
|
688 |
+
this.options[key] = value; // these all needs to update immediately for the update() call
|
689 |
+
this.update();
|
690 |
+
break;
|
691 |
+
case 'classes':
|
692 |
+
menu.add(this.button).removeClass(this.options.classes).addClass(value);
|
693 |
+
break;
|
694 |
+
case 'multiple':
|
695 |
+
menu.toggleClass('ui-multiselect-single', !value);
|
696 |
+
this.options.multiple = value;
|
697 |
+
this.element[0].multiple = value;
|
698 |
+
this.refresh();
|
699 |
+
}
|
700 |
+
|
701 |
+
$.Widget.prototype._setOption.apply( this, arguments );
|
702 |
+
}
|
703 |
+
});
|
704 |
+
|
705 |
+
})(jQuery);
|
skin/adminhtml/default/default/sendinblue/js/jquery.multiselect.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
(function($,undefined){var multiselectID=0;$.widget("ech.multiselect",{options:{header:false,height:175,minWidth:225,classes:"",checkAllText:"Check all",uncheckAllText:"Uncheck all",noneSelectedText:selectoption,selectedText:"# "+selected,selectedList:0,show:null,hide:null,autoOpen:false,multiple:true,position:{}},_create:function(){var el=this.element.hide(),o=this.options;this.speed=$.fx.speeds._default;this._isOpen=false;var button=(this.button=$('<button type="button"><span class="ui-icon ui-icon-triangle-2-n-s"></span></button>')).addClass("ui-multiselect ui-widget ui-state-default ui-corner-all").addClass(o.classes).attr({title:el.attr("title"),"aria-haspopup":true,tabIndex:el.attr("tabIndex")}).insertAfter(el),buttonlabel=(this.buttonlabel=$("<span />")).html(o.noneSelectedText).appendTo(button),menu=(this.menu=$("<div />")).addClass("ui-multiselect-menu ui-widget ui-widget-content ui-corner-all").addClass(o.classes).appendTo(document.body),header=(this.header=$("<div />")).addClass("ui-widget-header ui-corner-all ui-multiselect-header ui-helper-clearfix").appendTo(menu),headerLinkContainer=(this.headerLinkContainer=$("<ul />")).addClass("ui-helper-reset").html(function(){if(o.header===true){return'<li><a class="ui-multiselect-all" href="#"><span class="ui-icon ui-icon-check"></span><span>'+o.checkAllText+'</span></a></li><li><a class="ui-multiselect-none" href="#"><span class="ui-icon ui-icon-closethick"></span><span>'+o.uncheckAllText+"</span></a></li>";}else{if(typeof o.header==="string"){return"<li>"+o.header+"</li>";}else{return"";}}}).append('<li class="ui-multiselect-close"><a href="#" class="ui-multiselect-close"><span class="ui-icon ui-icon-circle-close"></span></a></li>').appendTo(header),checkboxContainer=(this.checkboxContainer=$("<ul />")).addClass("ui-multiselect-checkboxes ui-helper-reset").appendTo(menu);this._bindEvents();this.refresh(true);if(!o.multiple){menu.addClass("ui-multiselect-single");}},_init:function(){if(this.options.header===false){this.header.hide();}if(!this.options.multiple){this.headerLinkContainer.find(".ui-multiselect-all, .ui-multiselect-none").hide();}if(this.options.autoOpen){this.open();}if(this.element.is(":disabled")){this.disable();}},refresh:function(init){var el=this.element,o=this.options,menu=this.menu,checkboxContainer=this.checkboxContainer,optgroups=[],html="",id=el.attr("id")||multiselectID++;el.find("option").each(function(i){var $this=$(this),parent=this.parentNode,title=this.innerHTML,description=this.title,value=this.value,inputID="ui-multiselect-"+(this.id||id+"-option-"+i),isDisabled=this.disabled,isSelected=this.selected,labelClasses=["ui-corner-all"],liClasses=(isDisabled?"ui-multiselect-disabled ":" ")+this.className,optLabel;if(parent.tagName==="OPTGROUP"){optLabel=parent.getAttribute("label");if($.inArray(optLabel,optgroups)===-1){html+='<li class="ui-multiselect-optgroup-label '+parent.className+'"><a href="#">'+optLabel+"</a></li>";optgroups.push(optLabel);}}if(isDisabled){labelClasses.push("ui-state-disabled");}if(isSelected&&!o.multiple){labelClasses.push("ui-state-active");}html+='<li class="'+liClasses+'">';html+='<label for="'+inputID+'" title="'+description+'" class="'+labelClasses.join(" ")+'">';html+='<input id="'+inputID+'" name="multiselect_'+id+'" type="'+(o.multiple?"checkbox":"radio")+'" value="'+value+'" title="'+title+'"';if(isSelected){html+=' checked="checked"';html+=' aria-selected="true"';}if(isDisabled){html+=' disabled="disabled"';html+=' aria-disabled="true"';}html+=" /><span>"+title+"</span></label></li>";});checkboxContainer.html(html);this.labels=menu.find("label");this.inputs=this.labels.children("input");this._setButtonWidth();this._setMenuWidth();this.button[0].defaultValue=this.update();if(!init){this._trigger("refresh");}},update:function(){var o=this.options,$inputs=this.inputs,$checked=$inputs.filter(":checked"),numChecked=$checked.length,value;if(numChecked===0){value=o.noneSelectedText;}else{if($.isFunction(o.selectedText)){value=o.selectedText.call(this,numChecked,$inputs.length,$checked.get());}else{if(/\d/.test(o.selectedList)&&o.selectedList>0&&numChecked<=o.selectedList){value=$checked.map(function(){return $(this).next().html();}).get().join(", ");}else{value=o.selectedText.replace("#",numChecked).replace("#",$inputs.length);}}}this.buttonlabel.html(value);return value;},_bindEvents:function(){var self=this,button=this.button;function clickHandler(){self[self._isOpen?"close":"open"]();return false;}button.find("span").bind("click.multiselect",clickHandler);button.bind({click:clickHandler,keypress:function(e){switch(e.which){case 27:case 38:case 37:self.close();break;case 39:case 40:self.open();break;}},mouseenter:function(){if(!button.hasClass("ui-state-disabled")){$(this).addClass("ui-state-hover");}},mouseleave:function(){$(this).removeClass("ui-state-hover");},focus:function(){if(!button.hasClass("ui-state-disabled")){$(this).addClass("ui-state-focus");}},blur:function(){$(this).removeClass("ui-state-focus");}});this.header.delegate("a","click.multiselect",function(e){if($(this).hasClass("ui-multiselect-close")){self.close();}else{self[$(this).hasClass("ui-multiselect-all")?"checkAll":"uncheckAll"]();}e.preventDefault();});this.menu.delegate("li.ui-multiselect-optgroup-label a","click.multiselect",function(e){e.preventDefault();var $this=$(this),$inputs=$this.parent().nextUntil("li.ui-multiselect-optgroup-label").find("input:visible:not(:disabled)"),nodes=$inputs.get(),label=$this.parent().text();if(self._trigger("beforeoptgrouptoggle",e,{inputs:nodes,label:label})===false){return;}self._toggleChecked($inputs.filter(":checked").length!==$inputs.length,$inputs);self._trigger("optgrouptoggle",e,{inputs:nodes,label:label,checked:nodes[0].checked});}).delegate("label","mouseenter.multiselect",function(){if(!$(this).hasClass("ui-state-disabled")){self.labels.removeClass("ui-state-hover");$(this).addClass("ui-state-hover").find("input").focus();}}).delegate("label","keydown.multiselect",function(e){e.preventDefault();switch(e.which){case 9:case 27:self.close();break;case 38:case 40:case 37:case 39:self._traverse(e.which,this);break;case 13:$(this).find("input")[0].click();break;}}).delegate('input[type="checkbox"], input[type="radio"]',"click.multiselect",function(e){var $this=$(this),val=this.value,checked=this.checked,tags=self.element.find("option");if(this.disabled||self._trigger("click",e,{value:val,text:this.title,checked:checked})===false){e.preventDefault();return;}$this.focus();$this.attr("aria-selected",checked);tags.each(function(){if(this.value===val){this.selected=checked;}else{if(!self.options.multiple){this.selected=false;}}});if(!self.options.multiple){self.labels.removeClass("ui-state-active");$this.closest("label").toggleClass("ui-state-active",checked);self.close();}self.element.trigger("change");setTimeout($.proxy(self.update,self),10);});$(document).bind("mousedown.multiselect",function(e){if(self._isOpen&&!$.contains(self.menu[0],e.target)&&!$.contains(self.button[0],e.target)&&e.target!==self.button[0]){self.close();}});$(this.element[0].form).bind("reset.multiselect",function(){setTimeout($.proxy(self.refresh,self),10);});},_setButtonWidth:function(){var width=this.element.outerWidth(),o=this.options;if(/\d/.test(o.minWidth)&&width<o.minWidth){width=o.minWidth;}this.button.width(width);},_setMenuWidth:function(){var m=this.menu,width=this.button.outerWidth()-parseInt(m.css("padding-left"),10)-parseInt(m.css("padding-right"),10)-parseInt(m.css("border-right-width"),10)-parseInt(m.css("border-left-width"),10);m.width(width||this.button.outerWidth());},_traverse:function(which,start){var $start=$(start),moveToLast=which===38||which===37,$next=$start.parent()[moveToLast?"prevAll":"nextAll"]("li:not(.ui-multiselect-disabled, .ui-multiselect-optgroup-label)")[moveToLast?"last":"first"]();if(!$next.length){var $container=this.menu.find("ul").last();this.menu.find("label")[moveToLast?"last":"first"]().trigger("mouseover");$container.scrollTop(moveToLast?$container.height():0);}else{$next.find("label").trigger("mouseover");}},_toggleState:function(prop,flag){return function(){if(!this.disabled){this[prop]=flag;}if(flag){this.setAttribute("aria-selected",true);}else{this.removeAttribute("aria-selected");}};},_toggleChecked:function(flag,group){var $inputs=(group&&group.length)?group:this.inputs,self=this;$inputs.each(this._toggleState("checked",flag));$inputs.eq(0).focus();this.update();var values=$inputs.map(function(){return this.value;}).get();this.element.find("option").each(function(){if(!this.disabled&&$.inArray(this.value,values)>-1){self._toggleState("selected",flag).call(this);}});if($inputs.length){this.element.trigger("change");}},_toggleDisabled:function(flag){this.button.attr({disabled:flag,"aria-disabled":flag})[flag?"addClass":"removeClass"]("ui-state-disabled");var inputs=this.menu.find("input");var key="ech-multiselect-disabled";if(flag){inputs=inputs.filter(":enabled").data(key,true);}else{inputs=inputs.filter(function(){return $.data(this,key)===true;}).removeData(key);}inputs.attr({disabled:flag,"arial-disabled":flag}).parent()[flag?"addClass":"removeClass"]("ui-state-disabled");this.element.attr({disabled:flag,"aria-disabled":flag});},open:function(e){var self=this,button=this.button,menu=this.menu,speed=this.speed,o=this.options,args=[];if(this._trigger("beforeopen")===false||button.hasClass("ui-state-disabled")||this._isOpen){return;}var $container=menu.find("ul").last(),effect=o.show,pos=button.offset();if($.isArray(o.show)){effect=o.show[0];speed=o.show[1]||self.speed;}if(effect){args=[effect,speed];}$container.scrollTop(0).height(o.height);if($.ui.position&&!$.isEmptyObject(o.position)){o.position.of=o.position.of||button;menu.show().position(o.position).hide();}else{menu.css({top:pos.top+button.outerHeight(),left:pos.left});}$.fn.show.apply(menu,args);this.labels.eq(0).trigger("mouseover").trigger("mouseenter").find("input").trigger("focus");button.addClass("ui-state-active");this._isOpen=true;this._trigger("open");},close:function(){if(this._trigger("beforeclose")===false){return;}var o=this.options,effect=o.hide,speed=this.speed,args=[];if($.isArray(o.hide)){effect=o.hide[0];speed=o.hide[1]||this.speed;}if(effect){args=[effect,speed];}$.fn.hide.apply(this.menu,args);this.button.removeClass("ui-state-active").trigger("blur").trigger("mouseleave");this._isOpen=false;this._trigger("close");},enable:function(){this._toggleDisabled(false);},disable:function(){this._toggleDisabled(true);},checkAll:function(e){this._toggleChecked(true);this._trigger("checkAll");},uncheckAll:function(){this._toggleChecked(false);this._trigger("uncheckAll");},getChecked:function(){return this.menu.find("input").filter(":checked");},destroy:function(){$.Widget.prototype.destroy.call(this);this.button.remove();this.menu.remove();this.element.show();return this;},isOpen:function(){return this._isOpen;},widget:function(){return this.menu;},getButton:function(){return this.button;},_setOption:function(key,value){var menu=this.menu;switch(key){case"header":menu.find("div.ui-multiselect-header")[value?"show":"hide"]();break;case"checkAllText":menu.find("a.ui-multiselect-all span").eq(-1).text(value);break;case"uncheckAllText":menu.find("a.ui-multiselect-none span").eq(-1).text(value);break;case"height":menu.find("ul").last().height(parseInt(value,10));break;case"minWidth":this.options[key]=parseInt(value,10);this._setButtonWidth();this._setMenuWidth();break;case"selectedText":case"selectedList":case"noneSelectedText":this.options[key]=value;this.update();break;case"classes":menu.add(this.button).removeClass(this.options.classes).addClass(value);break;case"multiple":menu.toggleClass("ui-multiselect-single",!value);this.options.multiple=value;this.element[0].multiple=value;this.refresh();}$.Widget.prototype._setOption.apply(this,arguments);}});})(jQuery);
|
skin/adminhtml/default/default/sendinblue/js/sendinblue.js
ADDED
@@ -0,0 +1,870 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
3 |
+
* @copyright 2013-2014 Sendinblue
|
4 |
+
* URL: https:www.sendinblue.com
|
5 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
6 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
7 |
+
* needs then we can't provide a technical support.
|
8 |
+
*/
|
9 |
+
|
10 |
+
jQuery.noConflict();
|
11 |
+
jQuery(document)
|
12 |
+
.ready(
|
13 |
+
function() {
|
14 |
+
|
15 |
+
|
16 |
+
var apistatuskey = jQuery('#apistatuskey').val();
|
17 |
+
|
18 |
+
jQuery("#select").multiselect();
|
19 |
+
|
20 |
+
jQuery(".sendin_api_status").click(function()
|
21 |
+
{
|
22 |
+
if (apistatuskey == 1 && jQuery(this).val() == 1)
|
23 |
+
{
|
24 |
+
|
25 |
+
jQuery("#sendin_apikey").show();
|
26 |
+
jQuery(".alldiv").show();
|
27 |
+
jQuery(".hidetableblock").show();
|
28 |
+
|
29 |
+
}
|
30 |
+
else{
|
31 |
+
if(jQuery(this).val() == 1)
|
32 |
+
{
|
33 |
+
jQuery("#sendin_apikey").show();
|
34 |
+
}else{
|
35 |
+
jQuery("#sendin_apikey").hide();
|
36 |
+
jQuery(".alldiv").hide();
|
37 |
+
}
|
38 |
+
}
|
39 |
+
|
40 |
+
});
|
41 |
+
function loadData(page) {
|
42 |
+
var ajaxcontentUrl = jQuery("#ajaxcontentUrl").val();
|
43 |
+
jQuery.ajax({
|
44 |
+
type : "POST",
|
45 |
+
async : false,
|
46 |
+
url : ajaxcontentUrl,
|
47 |
+
data : "page=" + page,
|
48 |
+
beforeSend : function() {
|
49 |
+
jQuery('#ajax-busy').show();
|
50 |
+
},
|
51 |
+
success : function(msg) {
|
52 |
+
jQuery('#ajax-busy').hide();
|
53 |
+
jQuery(".midleft").html(msg);
|
54 |
+
jQuery(".midleft").ajaxComplete(
|
55 |
+
function(event, request, settings){
|
56 |
+
|
57 |
+
jQuery(".midleft").html(msg);
|
58 |
+
|
59 |
+
});
|
60 |
+
}
|
61 |
+
});
|
62 |
+
|
63 |
+
|
64 |
+
|
65 |
+
}
|
66 |
+
|
67 |
+
jQuery('.hdtab').click(function(){
|
68 |
+
if(parseInt(jQuery(this).val())) { jQuery('#hidetabselect').css('display','block');}
|
69 |
+
|
70 |
+
});
|
71 |
+
|
72 |
+
|
73 |
+
jQuery('body').on('click',' .pagination li.active',function() {
|
74 |
+
var page = jQuery(this).attr('p');
|
75 |
+
jQuery('#pagenumber').val(page);
|
76 |
+
loadData(page);
|
77 |
+
|
78 |
+
});
|
79 |
+
|
80 |
+
|
81 |
+
jQuery('.toolTip').hover(function () {
|
82 |
+
var title = jQuery(this).attr('title');
|
83 |
+
var offset = jQuery(this).offset();
|
84 |
+
|
85 |
+
jQuery('body').append(
|
86 |
+
'<div id="tipkk" style="top:' + offset.top + 'px; left:' + offset.left + 'px; ">' + title + '</div>');
|
87 |
+
var tipContentHeight = jQuery('#tipkk')
|
88 |
+
.height() + 25;
|
89 |
+
jQuery('#tipkk').css(
|
90 |
+
'top', (offset.top - tipContentHeight) + 'px');
|
91 |
+
|
92 |
+
}, function () {
|
93 |
+
jQuery('#tipkk').remove();
|
94 |
+
});
|
95 |
+
jQuery('#sender_order').mouseover(function () {
|
96 |
+
var val = jQuery(this).val();
|
97 |
+
if(isInteger(val) || val == ''){
|
98 |
+
jQuery("#sender_order").attr('maxlength','17');
|
99 |
+
jQuery('#sender_order_text').text((17 - val.length));
|
100 |
+
|
101 |
+
}
|
102 |
+
else{
|
103 |
+
jQuery("#sender_order").attr('maxlength','11');
|
104 |
+
var str7 = val.length > 11 ? val.substr(1,11) : val;
|
105 |
+
jQuery("#sender_order").val(str7);
|
106 |
+
jQuery('#sender_order_text').text((11 - val.length));
|
107 |
+
|
108 |
+
}
|
109 |
+
});
|
110 |
+
|
111 |
+
jQuery('#sender_order').keyup(function () {
|
112 |
+
var val = jQuery(this).val();
|
113 |
+
if(isInteger(val) || val == ''){
|
114 |
+
jQuery("#sender_order").attr('maxlength','17');
|
115 |
+
jQuery('#sender_order_text').text((17 - val.length));
|
116 |
+
|
117 |
+
}
|
118 |
+
else{
|
119 |
+
jQuery("#sender_order").attr('maxlength','11');
|
120 |
+
var str7 = val.length > 11 ? val.substr(1,11) : val;
|
121 |
+
jQuery("#sender_order").val(str7);
|
122 |
+
jQuery('#sender_order_text').text((11 - val.length));
|
123 |
+
|
124 |
+
}
|
125 |
+
});
|
126 |
+
|
127 |
+
|
128 |
+
|
129 |
+
if(jQuery('#sender_order').val() != '')
|
130 |
+
{
|
131 |
+
var val = jQuery('#sender_order').val();
|
132 |
+
if(isInteger(val)){
|
133 |
+
jQuery("#sender_order").attr('maxlength','17');
|
134 |
+
jQuery('#sender_order_text').text((17 - val.length));
|
135 |
+
|
136 |
+
}
|
137 |
+
else{
|
138 |
+
jQuery("#sender_order").attr('maxlength','11');
|
139 |
+
jQuery('#sender_order_text').text((11 - val.length));
|
140 |
+
|
141 |
+
}
|
142 |
+
}
|
143 |
+
|
144 |
+
jQuery('#sender_order_message').keyup(function () {
|
145 |
+
|
146 |
+
var chars = this.value.length,
|
147 |
+
messages = Math.ceil(chars / 160),
|
148 |
+
remaining = messages * 160 - (chars % (messages * 160) || messages * 160);
|
149 |
+
if(remaining == 0)
|
150 |
+
{
|
151 |
+
remaining = 160.
|
152 |
+
}
|
153 |
+
|
154 |
+
jQuery('#sender_order_message_text').text(remaining);
|
155 |
+
|
156 |
+
jQuery('#sender_order_message_text_count').text(messages);
|
157 |
+
|
158 |
+
});
|
159 |
+
|
160 |
+
if(jQuery('#sender_order_message').val() != '')
|
161 |
+
{
|
162 |
+
var chars = jQuery('#sender_order_message').val().length,
|
163 |
+
messages = Math.ceil(chars / 160),
|
164 |
+
remaining = messages * 160 - (chars % (messages * 160) || messages * 160);
|
165 |
+
|
166 |
+
jQuery('#sender_order_message_text').text(remaining);
|
167 |
+
|
168 |
+
jQuery('#sender_order_message_text_count').text(messages);
|
169 |
+
}
|
170 |
+
|
171 |
+
jQuery('#sender_shipment').mouseover(function () {
|
172 |
+
var val = jQuery(this).val();
|
173 |
+
|
174 |
+
if(isInteger(val) || val == ''){
|
175 |
+
jQuery("#sender_shipment").attr('maxlength','17');
|
176 |
+
jQuery('#sender_shipment_text').text((17 - val.length));
|
177 |
+
|
178 |
+
}
|
179 |
+
else{
|
180 |
+
jQuery("#sender_shipment").attr('maxlength','11');
|
181 |
+
var str7 = val.length > 11 ? val.substr(1,11) : val;
|
182 |
+
jQuery("#sender_shipment").val(str7);
|
183 |
+
jQuery('#sender_shipment_text').text((11 - val.length));
|
184 |
+
|
185 |
+
}
|
186 |
+
});
|
187 |
+
jQuery('#sender_shipment').keyup(function () {
|
188 |
+
var val = jQuery(this).val();
|
189 |
+
|
190 |
+
if(isInteger(val) || val == ''){
|
191 |
+
jQuery("#sender_shipment").attr('maxlength','17');
|
192 |
+
jQuery('#sender_shipment_text').text((17 - val.length));
|
193 |
+
|
194 |
+
}
|
195 |
+
else{
|
196 |
+
jQuery("#sender_shipment").attr('maxlength','11');
|
197 |
+
var str7 = val.length > 11 ? val.substr(1,11) : val;
|
198 |
+
jQuery("#sender_shipment").val(str7);
|
199 |
+
jQuery('#sender_shipment_text').text((11 - val.length));
|
200 |
+
|
201 |
+
}
|
202 |
+
});
|
203 |
+
|
204 |
+
if(jQuery('#sender_shipment').val() != '')
|
205 |
+
{
|
206 |
+
var val = jQuery('#sender_shipment').val();
|
207 |
+
if(isInteger(val)){
|
208 |
+
jQuery("#sender_shipment").attr('maxlength','17');
|
209 |
+
jQuery('#sender_shipment_text').text((17 - val.length));
|
210 |
+
|
211 |
+
}
|
212 |
+
else{
|
213 |
+
jQuery("#sender_shipment").attr('maxlength','11');
|
214 |
+
jQuery('#sender_shipment_text').text((11 - val.length));
|
215 |
+
|
216 |
+
}
|
217 |
+
}
|
218 |
+
|
219 |
+
jQuery('#sender_shipment_message').keyup(function () {
|
220 |
+
|
221 |
+
var chars = this.value.length,
|
222 |
+
messages = Math.ceil(chars / 160),
|
223 |
+
remaining = messages * 160 - (chars % (messages * 160) || messages * 160);
|
224 |
+
if(remaining == 0)
|
225 |
+
{
|
226 |
+
remaining = 160.
|
227 |
+
}
|
228 |
+
jQuery('#sender_shipment_message_text').text(remaining);
|
229 |
+
|
230 |
+
jQuery('#sender_shipment_message_text_count').text(messages);
|
231 |
+
|
232 |
+
});
|
233 |
+
|
234 |
+
if(jQuery('#sender_shipment_message').val() != '')
|
235 |
+
{
|
236 |
+
var chars = jQuery('#sender_shipment_message').val().length,
|
237 |
+
messages = Math.ceil(chars / 160),
|
238 |
+
remaining = messages * 160 - (chars % (messages * 160) || messages * 160);
|
239 |
+
|
240 |
+
jQuery('#sender_shipment_message_text').text(remaining);
|
241 |
+
|
242 |
+
jQuery('#sender_shipment_message_text_count').text(messages);
|
243 |
+
}
|
244 |
+
|
245 |
+
jQuery('#sender_campaign').mouseover(function () {
|
246 |
+
var val = jQuery(this).val();
|
247 |
+
if(isInteger(val) || val == ''){
|
248 |
+
jQuery("#sender_campaign").attr('maxlength','17');
|
249 |
+
jQuery('#sender_campaign_text').text((17 - val.length));
|
250 |
+
|
251 |
+
}
|
252 |
+
else{
|
253 |
+
jQuery("#sender_campaign").attr('maxlength','11');
|
254 |
+
var str7 = val.length > 11 ? val.substr(1,11) : val;
|
255 |
+
jQuery("#sender_campaign").val(str7);
|
256 |
+
jQuery('#sender_campaign_text').text((11 - val.length));
|
257 |
+
|
258 |
+
}
|
259 |
+
});
|
260 |
+
jQuery('#sender_campaign').keyup(function () {
|
261 |
+
var val = jQuery(this).val();
|
262 |
+
|
263 |
+
if(isInteger(val) || val == ''){
|
264 |
+
jQuery("#sender_campaign").attr('maxlength','17');
|
265 |
+
jQuery('#sender_campaign_text').text((17 - val.length));
|
266 |
+
|
267 |
+
}
|
268 |
+
else{
|
269 |
+
jQuery("#sender_campaign").attr('maxlength','11');
|
270 |
+
var str7 = val.length > 11 ? val.substr(1,11) : val;
|
271 |
+
jQuery("#sender_campaign").val(str7);
|
272 |
+
jQuery('#sender_campaign_text').text((11 - val.length));
|
273 |
+
|
274 |
+
}
|
275 |
+
});
|
276 |
+
|
277 |
+
if(jQuery('#sender_campaign').val() != '')
|
278 |
+
{
|
279 |
+
var val = jQuery('#sender_campaign').val();
|
280 |
+
|
281 |
+
if(isInteger(val)){
|
282 |
+
jQuery("#sender_campaign").attr('maxlength','17');
|
283 |
+
jQuery('#sender_campaign_text').text((17 - val.length));
|
284 |
+
}
|
285 |
+
else{
|
286 |
+
jQuery("#sender_campaign").attr('maxlength','11');
|
287 |
+
jQuery('#sender_campaign_text').text((11 - val.length));
|
288 |
+
}
|
289 |
+
}
|
290 |
+
|
291 |
+
jQuery('#sender_campaign_message').keyup(function () {
|
292 |
+
|
293 |
+
var chars = this.value.length,
|
294 |
+
messages = Math.ceil(chars / 160),
|
295 |
+
remaining = messages * 160 - (chars % (messages * 160) || messages * 160);
|
296 |
+
if(remaining == 0)
|
297 |
+
{
|
298 |
+
remaining = 160.
|
299 |
+
}
|
300 |
+
jQuery('#sender_campaign_message_text').text(remaining);
|
301 |
+
jQuery('#sender_campaign_message_text_count').text(messages);
|
302 |
+
|
303 |
+
});
|
304 |
+
|
305 |
+
if(jQuery('#sender_campaign_message').val() != '')
|
306 |
+
{
|
307 |
+
var chars = jQuery('#sender_campaign_message').val().length,
|
308 |
+
messages = Math.ceil(chars / 160),
|
309 |
+
remaining = messages * 160 - (chars % (messages * 160) || messages * 160);
|
310 |
+
|
311 |
+
jQuery('#sender_campaign_message_text').text(remaining);
|
312 |
+
|
313 |
+
jQuery('#sender_campaign_message_text_count').text(messages);
|
314 |
+
}
|
315 |
+
|
316 |
+
jQuery(".sms_order_setting").click(function () {
|
317 |
+
var orderSetting = jQuery(this).val();
|
318 |
+
var orderUrl = jQuery("#order").val();
|
319 |
+
|
320 |
+
jQuery.ajax({
|
321 |
+
type: "POST",
|
322 |
+
async: false,
|
323 |
+
url: orderUrl,
|
324 |
+
data: "orderSetting=" + orderSetting,
|
325 |
+
beforeSend: function () {
|
326 |
+
jQuery('#ajax-busy').show();
|
327 |
+
},
|
328 |
+
success: function (msg) {
|
329 |
+
jQuery('#ajax-busy').hide();
|
330 |
+
if (orderSetting == 1) {
|
331 |
+
jQuery(".hideOrder").show();
|
332 |
+
} else {
|
333 |
+
jQuery(".hideOrder").hide();
|
334 |
+
}
|
335 |
+
}
|
336 |
+
});
|
337 |
+
|
338 |
+
});
|
339 |
+
jQuery(".sms_shiping_setting").click(function () {
|
340 |
+
var shipingSetting = jQuery(this).val();
|
341 |
+
var shipingUrl = jQuery("#shiping").val();
|
342 |
+
|
343 |
+
jQuery.ajax({
|
344 |
+
type: "POST",
|
345 |
+
async: false,
|
346 |
+
url: shipingUrl,
|
347 |
+
data: "shipingSetting=" + shipingSetting,
|
348 |
+
beforeSend: function () {
|
349 |
+
jQuery('#ajax-busy').show();
|
350 |
+
},
|
351 |
+
success: function (msg) {
|
352 |
+
jQuery('#ajax-busy').hide();
|
353 |
+
if (shipingSetting == 1) {
|
354 |
+
jQuery(".hideShiping").show();
|
355 |
+
} else {
|
356 |
+
jQuery(".hideShiping").hide();
|
357 |
+
}
|
358 |
+
}
|
359 |
+
});
|
360 |
+
|
361 |
+
});
|
362 |
+
|
363 |
+
jQuery(".sms_campaign_setting").click(function () {
|
364 |
+
var campaignSetting = jQuery(this).val();
|
365 |
+
var campaignUrl = jQuery("#campaign").val();
|
366 |
+
|
367 |
+
jQuery.ajax({
|
368 |
+
type: "POST",
|
369 |
+
async: false,
|
370 |
+
url: campaignUrl,
|
371 |
+
data: "campaignSetting=" + campaignSetting,
|
372 |
+
beforeSend: function () {
|
373 |
+
jQuery('#ajax-busy').show();
|
374 |
+
},
|
375 |
+
success: function (msg) {
|
376 |
+
jQuery('#ajax-busy').hide();
|
377 |
+
if (campaignSetting == 1) {
|
378 |
+
jQuery(".hideCampaign").show();
|
379 |
+
} else {
|
380 |
+
jQuery(".hideCampaign").hide();
|
381 |
+
}
|
382 |
+
}
|
383 |
+
});
|
384 |
+
|
385 |
+
});
|
386 |
+
|
387 |
+
if (jQuery('input:radio[name=sms_order_setting]:checked').val() == 0)
|
388 |
+
{
|
389 |
+
jQuery('.hideOrder').hide();
|
390 |
+
} else {
|
391 |
+
jQuery('.hideOrder').show();
|
392 |
+
}
|
393 |
+
|
394 |
+
jQuery(".Sendin_Sms_Choice").click(function ()
|
395 |
+
{
|
396 |
+
if (jQuery(this).val() == 1) {
|
397 |
+
jQuery(".multiplechoice").hide();
|
398 |
+
jQuery(".singlechoice").show();
|
399 |
+
} else {
|
400 |
+
jQuery(".multiplechoice").show();
|
401 |
+
jQuery(".singlechoice").hide();
|
402 |
+
}
|
403 |
+
});
|
404 |
+
|
405 |
+
if (jQuery('input:radio[name=Sendin_Sms_Choice]:checked').val() == 0)
|
406 |
+
{
|
407 |
+
jQuery(".multiplechoice").show();
|
408 |
+
jQuery(".singlechoice").hide();
|
409 |
+
} else {
|
410 |
+
jQuery(".singlechoice").show();
|
411 |
+
jQuery(".multiplechoice").hide();
|
412 |
+
}
|
413 |
+
|
414 |
+
jQuery(".sms_shiping_setting").click(function () {
|
415 |
+
if (jQuery(this).val() == 1) {
|
416 |
+
|
417 |
+
jQuery(".hideShiping").show();
|
418 |
+
} else {
|
419 |
+
jQuery(".hideShiping").hide();
|
420 |
+
}
|
421 |
+
});
|
422 |
+
|
423 |
+
|
424 |
+
if (jQuery('input:radio[name=sms_credit]:checked').val() == 0)
|
425 |
+
jQuery(".hideCredit").hide();
|
426 |
+
else
|
427 |
+
jQuery(".hideCredit").show();
|
428 |
+
|
429 |
+
|
430 |
+
jQuery(".sms_credit").click(function (){
|
431 |
+
|
432 |
+
var sms_credit = jQuery(this).val();
|
433 |
+
var creditUrl = jQuery("#credits").val();
|
434 |
+
var type = 'sms_credit';
|
435 |
+
jQuery.ajax({
|
436 |
+
type: "POST",
|
437 |
+
async: false,
|
438 |
+
url: creditUrl,
|
439 |
+
data: "sms_credit=" + sms_credit,
|
440 |
+
beforeSend: function () {
|
441 |
+
jQuery('#ajax-busy').show();
|
442 |
+
},
|
443 |
+
success: function (msg) {
|
444 |
+
jQuery('#ajax-busy').hide();
|
445 |
+
if (sms_credit == 1) {
|
446 |
+
jQuery(".hideCredit").show();
|
447 |
+
} else {
|
448 |
+
jQuery(".hideCredit").hide();
|
449 |
+
}
|
450 |
+
}
|
451 |
+
});
|
452 |
+
|
453 |
+
});
|
454 |
+
|
455 |
+
if (jQuery('input:radio[name=sms_shiping_setting]:checked').val() == 0) {
|
456 |
+
jQuery('.hideShiping').hide();
|
457 |
+
} else {
|
458 |
+
jQuery('.hideShiping').show();
|
459 |
+
}
|
460 |
+
|
461 |
+
jQuery(".sms_campaign_setting").click(function () {
|
462 |
+
if (jQuery(this).val() == 1) {
|
463 |
+
jQuery(".hideCampaign").show();
|
464 |
+
} else {
|
465 |
+
jQuery(".hideCampaign").hide();
|
466 |
+
}
|
467 |
+
});
|
468 |
+
|
469 |
+
if (jQuery('input:radio[name=sms_campaign_setting]:checked').val() == 0) {
|
470 |
+
jQuery('.hideCampaign').hide();
|
471 |
+
} else {
|
472 |
+
jQuery('.hideCampaign').show();
|
473 |
+
}
|
474 |
+
|
475 |
+
jQuery("#selectSmsList").multiselect({
|
476 |
+
header: false,
|
477 |
+
checkall:false
|
478 |
+
});
|
479 |
+
|
480 |
+
jQuery("#tabs li").click(function() {
|
481 |
+
// First remove class "active" from currently active tab
|
482 |
+
jQuery("#tabs li").removeClass('active');
|
483 |
+
|
484 |
+
// Now add class "active" to the selected/clicked tab
|
485 |
+
jQuery(this).addClass("active");
|
486 |
+
|
487 |
+
// Hide all tab content
|
488 |
+
jQuery(".tab_content").hide();
|
489 |
+
|
490 |
+
// Here we get the href value of the selected tab
|
491 |
+
var selected_tab = jQuery(this).find("a").attr("href");
|
492 |
+
|
493 |
+
// Show the selected tab content
|
494 |
+
jQuery(selected_tab).fadeIn();
|
495 |
+
|
496 |
+
// At the end, we add return false so that the click on the link is not executed
|
497 |
+
return false;
|
498 |
+
});
|
499 |
+
|
500 |
+
function isInteger(val) {
|
501 |
+
var numberRegex = /^[+-]?\d+(\.\d+)?([eE][+-]?\d+)?$/;
|
502 |
+
if(numberRegex.test(val)) {
|
503 |
+
return true
|
504 |
+
}
|
505 |
+
return false;
|
506 |
+
}
|
507 |
+
|
508 |
+
|
509 |
+
jQuery('#showUserlist').click(function(){
|
510 |
+
|
511 |
+
if(jQuery('.userDetails').is(':hidden'))
|
512 |
+
{
|
513 |
+
loadData(1);
|
514 |
+
jQuery('#Spantextless').show();
|
515 |
+
jQuery('#Spantextmore').hide();
|
516 |
+
}else
|
517 |
+
{
|
518 |
+
jQuery('#Spantextmore').show();
|
519 |
+
jQuery('#Spantextless').hide();
|
520 |
+
}
|
521 |
+
jQuery('.userDetails').slideToggle();
|
522 |
+
});
|
523 |
+
|
524 |
+
var base_url = getBaseURL();
|
525 |
+
|
526 |
+
jQuery(".Tracking").click(function()
|
527 |
+
{
|
528 |
+
var Tracking = jQuery(this).val();
|
529 |
+
var trackingUrl = jQuery("#trackingUrl").val();
|
530 |
+
jQuery.ajax({
|
531 |
+
type : "POST",
|
532 |
+
async : false,
|
533 |
+
url : trackingUrl,
|
534 |
+
data : "script=" + Tracking,
|
535 |
+
beforeSend : function(){
|
536 |
+
jQuery('#ajax-busy').show();
|
537 |
+
},
|
538 |
+
success : function(msg){
|
539 |
+
jQuery('#ajax-busy').hide();
|
540 |
+
}
|
541 |
+
});
|
542 |
+
});
|
543 |
+
|
544 |
+
|
545 |
+
|
546 |
+
|
547 |
+
jQuery(".smtpStatus").click(function() {
|
548 |
+
|
549 |
+
var smtptest = jQuery(this).val();
|
550 |
+
var smtpUrl = jQuery("#smtpUrl").val();
|
551 |
+
if (smtptest == 0) {
|
552 |
+
jQuery('.smtptest').hide();
|
553 |
+
}
|
554 |
+
if (smtptest == 1) {
|
555 |
+
jQuery('.smtptest').show();
|
556 |
+
}
|
557 |
+
jQuery.ajax({
|
558 |
+
type : "POST",
|
559 |
+
async : false,
|
560 |
+
url : smtpUrl,
|
561 |
+
data : "smtptest=" + smtptest,
|
562 |
+
beforeSend : function() {
|
563 |
+
jQuery('#ajax-busy').show();
|
564 |
+
},
|
565 |
+
success : function(msg) {
|
566 |
+
jQuery('#ajax-busy').hide();
|
567 |
+
}
|
568 |
+
});
|
569 |
+
});
|
570 |
+
|
571 |
+
|
572 |
+
var skin_url = jQuery('#skin_url').val()
|
573 |
+
jQuery('<div id="ajax-busy"/> loading..')
|
574 |
+
.css(
|
575 |
+
{
|
576 |
+
opacity : 0.5,
|
577 |
+
position : 'fixed',
|
578 |
+
top : 0,
|
579 |
+
left : 0,
|
580 |
+
width : '100%',
|
581 |
+
height : jQuery(window).height() + 'px',
|
582 |
+
background : 'white url('+skin_url+'adminhtml/default/default/sendinblue/images/loader.gif) no-repeat center'
|
583 |
+
}).hide().appendTo('body');
|
584 |
+
|
585 |
+
// get site base url
|
586 |
+
function getBaseURL() {
|
587 |
+
var sBase = location.href.substr(0, location.href.lastIndexOf("/") + 1);
|
588 |
+
var sp = sBase.split('/');
|
589 |
+
var lastFolder = sp[ sp.length - 2 ];
|
590 |
+
return sBase.replace(lastFolder+'/', '');
|
591 |
+
}
|
592 |
+
|
593 |
+
|
594 |
+
|
595 |
+
jQuery('body').on('click', '.ajax_contacts_href', function (e) {
|
596 |
+
|
597 |
+
var email = jQuery(this).attr('email');
|
598 |
+
var status = jQuery(this).attr('status');
|
599 |
+
var ajaxUrl = jQuery("#ajaxUrl").val();
|
600 |
+
|
601 |
+
jQuery.ajax({
|
602 |
+
type : "POST",
|
603 |
+
async : false,
|
604 |
+
url : ajaxUrl,
|
605 |
+
data : {"email":email,"newsletter":status},
|
606 |
+
beforeSend : function() {
|
607 |
+
jQuery('#ajax-busy').show();
|
608 |
+
},
|
609 |
+
success : function(msg) {
|
610 |
+
jQuery('#ajax-busy').hide();
|
611 |
+
}
|
612 |
+
});
|
613 |
+
|
614 |
+
var page_no = jQuery('#pagenumber').val();
|
615 |
+
loadData(page_no); // For first time page load
|
616 |
+
|
617 |
+
});
|
618 |
+
|
619 |
+
});
|
620 |
+
|
621 |
+
function testsmssend(sendererr,messageerr,mobileerr) {
|
622 |
+
var sender = jQuery('#sender_order').val();
|
623 |
+
var message =jQuery('#sender_order_message').val();
|
624 |
+
var number = jQuery("#sender_order_number").val();
|
625 |
+
var ajaxOrderSmsUrl = jQuery('#ajaxOrderSmsUrl').val();
|
626 |
+
var smsCampError = jQuery("#smsCampError").val();
|
627 |
+
var smsCampSuccess = jQuery("#smsCampSuccess").val();
|
628 |
+
if(sender == '' || isValid(sender) == false)
|
629 |
+
{
|
630 |
+
alert(sendererr);
|
631 |
+
}
|
632 |
+
else if( message == '')
|
633 |
+
{
|
634 |
+
alert(messageerr);
|
635 |
+
}
|
636 |
+
else if(number == '')
|
637 |
+
{
|
638 |
+
alert(mobileerr);
|
639 |
+
}
|
640 |
+
else {
|
641 |
+
jQuery.ajax({
|
642 |
+
type : "POST",
|
643 |
+
async : false,
|
644 |
+
url : ajaxOrderSmsUrl,
|
645 |
+
data : {"sender":sender,"message":message,"number":number} ,
|
646 |
+
beforeSend : function() {
|
647 |
+
jQuery('#ajax-busy').show();
|
648 |
+
},
|
649 |
+
success : function(msg) {
|
650 |
+
jQuery('#ajax-busy').hide();
|
651 |
+
if(msg.trim() == 'OK')
|
652 |
+
{ alert(smsCampSuccess); }
|
653 |
+
else { alert(smsCampError); }
|
654 |
+
}
|
655 |
+
});}
|
656 |
+
return false;
|
657 |
+
}
|
658 |
+
|
659 |
+
function testShippedSmsSend(sendererr,messageerr,mobileerr) {
|
660 |
+
|
661 |
+
var sender = jQuery('#sender_shipment').val();
|
662 |
+
var message =jQuery('#sender_shipment_message').val();
|
663 |
+
var number = jQuery("#sender_shipment_number").val();
|
664 |
+
var ajaxOrderShippedUrl = jQuery('#ajaxOrderShippedUrl').val();
|
665 |
+
var smsCampError = jQuery("#smsCampError").val();
|
666 |
+
var smsCampSuccess = jQuery("#smsCampSuccess").val();
|
667 |
+
if(sender == '' || isValid(sender) == false)
|
668 |
+
{
|
669 |
+
alert(sendererr);
|
670 |
+
}
|
671 |
+
else if( message == '')
|
672 |
+
{
|
673 |
+
alert(messageerr);
|
674 |
+
}
|
675 |
+
else if(number == '')
|
676 |
+
{
|
677 |
+
alert(mobileerr);
|
678 |
+
}
|
679 |
+
else {
|
680 |
+
jQuery.ajax({
|
681 |
+
type : "POST",
|
682 |
+
async : false,
|
683 |
+
url : ajaxOrderShippedUrl,
|
684 |
+
data : {"sender":sender,"message":message,"number":number} ,
|
685 |
+
beforeSend : function() {
|
686 |
+
jQuery('#ajax-busy').show();
|
687 |
+
},
|
688 |
+
success : function(msg) {
|
689 |
+
jQuery('#ajax-busy').hide();
|
690 |
+
if(msg.trim() == 'OK')
|
691 |
+
{ alert(smsCampSuccess); }
|
692 |
+
else { alert(smsCampError); }
|
693 |
+
}
|
694 |
+
});}
|
695 |
+
return false;
|
696 |
+
}
|
697 |
+
function testCampaignSmsSend(sendererr,messageerr,mobileerr) {
|
698 |
+
|
699 |
+
var sender = jQuery('#sender_campaign').val();
|
700 |
+
var message =jQuery('#sender_campaign_message').val();
|
701 |
+
var number = jQuery("#sender_campaigntest_number").val();
|
702 |
+
var ajaxSmsCampaignUrl = jQuery('#ajaxSmsCampaignUrl').val();
|
703 |
+
var smsCampError = jQuery("#smsCampError").val();
|
704 |
+
var smsCampSuccess = jQuery("#smsCampSuccess").val();
|
705 |
+
|
706 |
+
if(sender == '' || isValid(sender) == false)
|
707 |
+
{
|
708 |
+
alert(sendererr);
|
709 |
+
}
|
710 |
+
else if( message == '')
|
711 |
+
{
|
712 |
+
alert(messageerr);
|
713 |
+
}
|
714 |
+
else if(number == '' || isMobilevalidation(number) == false)
|
715 |
+
{
|
716 |
+
alert(mobileerr);
|
717 |
+
}
|
718 |
+
else {
|
719 |
+
jQuery.ajax({
|
720 |
+
type : "POST",
|
721 |
+
async : false,
|
722 |
+
url : ajaxSmsCampaignUrl,
|
723 |
+
data : {"sender":sender,"message":message,"number":number} ,
|
724 |
+
beforeSend : function() {
|
725 |
+
jQuery('#ajax-busy').show();
|
726 |
+
},
|
727 |
+
success : function(msg) {
|
728 |
+
jQuery('#ajax-busy').hide();
|
729 |
+
if(msg.trim() == 'OK')
|
730 |
+
{ alert(smsCampSuccess); }
|
731 |
+
else { alert(smsCampError); }
|
732 |
+
}
|
733 |
+
});}
|
734 |
+
return false;
|
735 |
+
}
|
736 |
+
|
737 |
+
function senderOrderSaveValid(sendererr,messageerr)
|
738 |
+
{
|
739 |
+
var sender = jQuery('#sender_order').val();
|
740 |
+
var message =jQuery('#sender_order_message').val();
|
741 |
+
if(sender == '' || isValid(sender) == false)
|
742 |
+
{
|
743 |
+
alert(sendererr);
|
744 |
+
return false;
|
745 |
+
}
|
746 |
+
else if( message == '')
|
747 |
+
{
|
748 |
+
alert(messageerr);
|
749 |
+
return false;
|
750 |
+
}
|
751 |
+
}
|
752 |
+
function senderShipmentSaveValid(sendererr,messageerr)
|
753 |
+
{
|
754 |
+
var sender = jQuery('#sender_shipment').val();
|
755 |
+
var message =jQuery('#sender_shipment_message').val();
|
756 |
+
if(sender == '' || isValid(sender) == false)
|
757 |
+
{
|
758 |
+
alert(sendererr);
|
759 |
+
return false;
|
760 |
+
}
|
761 |
+
else if( message == '')
|
762 |
+
{
|
763 |
+
alert(messageerr);
|
764 |
+
return false;
|
765 |
+
}
|
766 |
+
}
|
767 |
+
function senderCampaignSaveValid(sendererr,messageerr,mobileerr)
|
768 |
+
{
|
769 |
+
var sender = jQuery('#sender_campaign').val();
|
770 |
+
var message =jQuery('#sender_campaign_message').val();
|
771 |
+
var number = jQuery("#singlechoice").val();
|
772 |
+
var radiovalue = jQuery("input[name=Sendin_Sms_Choice]:checked").val();
|
773 |
+
if(radiovalue == 1)
|
774 |
+
{
|
775 |
+
if(number == '' || isMobilevalidation(number) == false)
|
776 |
+
{
|
777 |
+
alert(mobileerr);
|
778 |
+
return false;
|
779 |
+
}
|
780 |
+
else if(sender == '' || isValid(sender) == false)
|
781 |
+
{
|
782 |
+
alert(sendererr);
|
783 |
+
return false;
|
784 |
+
}
|
785 |
+
else if(message == '')
|
786 |
+
{
|
787 |
+
alert(messageerr);
|
788 |
+
return false;
|
789 |
+
}
|
790 |
+
}
|
791 |
+
else{
|
792 |
+
if(sender == '' || isValid(sender) == false)
|
793 |
+
{
|
794 |
+
alert(sendererr);
|
795 |
+
return false;
|
796 |
+
}
|
797 |
+
else if(message == '')
|
798 |
+
{
|
799 |
+
alert(messageerr);
|
800 |
+
return false;
|
801 |
+
}
|
802 |
+
}
|
803 |
+
}
|
804 |
+
|
805 |
+
function isMobilevalidation(str)
|
806 |
+
{
|
807 |
+
return /^(?:\+|00)[1-9][0-9]{5,15}$/.test(str);
|
808 |
+
}
|
809 |
+
function isNormalInteger(str)
|
810 |
+
{
|
811 |
+
return /^\+?(0|[1-9]\d*)$/.test(str);
|
812 |
+
}
|
813 |
+
function isValid(str) {
|
814 |
+
var iChars = "~`!#$%^&*+=-[]\\\';,/{}|\":<>?";
|
815 |
+
|
816 |
+
for (var i = 0; i < str.length; i++) {
|
817 |
+
if (iChars.indexOf(str.charAt(i)) != -1) {
|
818 |
+
return false;
|
819 |
+
}
|
820 |
+
}
|
821 |
+
return true;
|
822 |
+
}
|
823 |
+
function RegexEmail(email)
|
824 |
+
{
|
825 |
+
var emailRegexStr = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
|
826 |
+
var isvalid = emailRegexStr.test(email);
|
827 |
+
return isvalid;
|
828 |
+
}
|
829 |
+
function validate(emailerr,limiter)
|
830 |
+
{
|
831 |
+
|
832 |
+
|
833 |
+
if( document.notify_sms_mail_form.sendin_notify_email.value == "" || RegexEmail(document.notify_sms_mail_form.sendin_notify_email.value) == false )
|
834 |
+
{
|
835 |
+
alert(emailerr);
|
836 |
+
document.notify_sms_mail_form.sendin_notify_email.focus() ;
|
837 |
+
return false;
|
838 |
+
}
|
839 |
+
if( document.notify_sms_mail_form.sendin_notify_value.value == "" ||
|
840 |
+
isNormalInteger( document.notify_sms_mail_form.sendin_notify_value.value)== false )
|
841 |
+
{
|
842 |
+
alert(limiter);
|
843 |
+
document.notify_sms_mail_form.sendin_notify_value.focus() ;
|
844 |
+
return false;
|
845 |
+
}
|
846 |
+
|
847 |
+
return( true );
|
848 |
+
}
|
849 |
+
function smtpvalidate(emailerr)
|
850 |
+
{
|
851 |
+
var email = jQuery('#email').val();
|
852 |
+
if(email == "" || RegexEmail(email) == false )
|
853 |
+
{
|
854 |
+
alert(emailerr);
|
855 |
+
jQuery('#email').focus();
|
856 |
+
return false;
|
857 |
+
}
|
858 |
+
}
|
859 |
+
function apikvalidate(apierr)
|
860 |
+
{
|
861 |
+
var sendin_apikey_val = jQuery('#sendin_apikey_val').val();
|
862 |
+
|
863 |
+
if(sendin_apikey_val.trim() == "")
|
864 |
+
{
|
865 |
+
alert(apierr);
|
866 |
+
jQuery('#sendin_apikey_val').focus();
|
867 |
+
return false;
|
868 |
+
}
|
869 |
+
|
870 |
+
}
|
skin/adminhtml/default/default/sendinblue/js/sendinblue.min.js
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* @author Sendinblue plateform <contact@sendinblue.com>
|
3 |
+
* @copyright 2013-2014 Sendinblue
|
4 |
+
* URL: https:www.sendinblue.com
|
5 |
+
* Do not edit or add to this file if you wish to upgrade Sendinblue Magento plugin to newer
|
6 |
+
* versions in the future. If you wish to customize Sendinblue magento plugin for your
|
7 |
+
* needs then we can't provide a technical support.
|
8 |
+
**/
|
9 |
+
|
10 |
+
jQuery.noConflict();jQuery(document).ready(function(){var apistatuskey=jQuery("#apistatuskey").val();jQuery("#select").multiselect();jQuery(".sendin_api_status").click(function(){if(apistatuskey==1&&jQuery(this).val()==1){jQuery("#sendin_apikey").show();jQuery(".alldiv").show();jQuery(".hidetableblock").show();}else{if(jQuery(this).val()==1){jQuery("#sendin_apikey").show();}else{jQuery("#sendin_apikey").hide();jQuery(".alldiv").hide();}}});function loadData(page){var ajaxcontentUrl=jQuery("#ajaxcontentUrl").val();jQuery.ajax({type:"POST",async:false,url:ajaxcontentUrl,data:"page="+page,beforeSend:function(){jQuery("#ajax-busy").show();},success:function(msg){jQuery("#ajax-busy").hide();jQuery(".midleft").html(msg);jQuery(".midleft").ajaxComplete(function(event,request,settings){jQuery(".midleft").html(msg);});}});}jQuery(".hdtab").click(function(){if(parseInt(jQuery(this).val())){jQuery("#hidetabselect").css("display","block");}});jQuery("body").on("click"," .pagination li.active",function(){var page=jQuery(this).attr("p");jQuery("#pagenumber").val(page);loadData(page);});jQuery(".toolTip").hover(function(){var title=jQuery(this).attr("title");var offset=jQuery(this).offset();jQuery("body").append('<div id="tipkk" style="top:'+offset.top+"px; left:"+offset.left+'px; ">'+title+"</div>");var tipContentHeight=jQuery("#tipkk").height()+25;jQuery("#tipkk").css("top",(offset.top-tipContentHeight)+"px");},function(){jQuery("#tipkk").remove();});jQuery("#sender_order").mouseover(function(){var val=jQuery(this).val();if(isInteger(val)||val==""){jQuery("#sender_order").attr("maxlength","17");jQuery("#sender_order_text").text((17-val.length));}else{jQuery("#sender_order").attr("maxlength","11");var str7=val.length>11?val.substr(1,11):val;jQuery("#sender_order").val(str7);jQuery("#sender_order_text").text((11-val.length));}});jQuery("#sender_order").keyup(function(){var val=jQuery(this).val();if(isInteger(val)||val==""){jQuery("#sender_order").attr("maxlength","17");jQuery("#sender_order_text").text((17-val.length));}else{jQuery("#sender_order").attr("maxlength","11");var str7=val.length>11?val.substr(1,11):val;jQuery("#sender_order").val(str7);jQuery("#sender_order_text").text((11-val.length));}});if(jQuery("#sender_order").val()!=""){var val=jQuery("#sender_order").val();if(isInteger(val)){jQuery("#sender_order").attr("maxlength","17");jQuery("#sender_order_text").text((17-val.length));}else{jQuery("#sender_order").attr("maxlength","11");jQuery("#sender_order_text").text((11-val.length));}}jQuery("#sender_order_message").keyup(function(){var chars=this.value.length,messages=Math.ceil(chars/160),remaining=messages*160-(chars%(messages*160)||messages*160);if(remaining==0){remaining=160;}jQuery("#sender_order_message_text").text(remaining);jQuery("#sender_order_message_text_count").text(messages);});if(jQuery("#sender_order_message").val()!=""){var chars=jQuery("#sender_order_message").val().length,messages=Math.ceil(chars/160),remaining=messages*160-(chars%(messages*160)||messages*160);jQuery("#sender_order_message_text").text(remaining);jQuery("#sender_order_message_text_count").text(messages);}jQuery("#sender_shipment").mouseover(function(){var val=jQuery(this).val();if(isInteger(val)||val==""){jQuery("#sender_shipment").attr("maxlength","17");jQuery("#sender_shipment_text").text((17-val.length));}else{jQuery("#sender_shipment").attr("maxlength","11");var str7=val.length>11?val.substr(1,11):val;jQuery("#sender_shipment").val(str7);jQuery("#sender_shipment_text").text((11-val.length));}});jQuery("#sender_shipment").keyup(function(){var val=jQuery(this).val();if(isInteger(val)||val==""){jQuery("#sender_shipment").attr("maxlength","17");jQuery("#sender_shipment_text").text((17-val.length));}else{jQuery("#sender_shipment").attr("maxlength","11");var str7=val.length>11?val.substr(1,11):val;jQuery("#sender_shipment").val(str7);jQuery("#sender_shipment_text").text((11-val.length));}});if(jQuery("#sender_shipment").val()!=""){var val=jQuery("#sender_shipment").val();if(isInteger(val)){jQuery("#sender_shipment").attr("maxlength","17");jQuery("#sender_shipment_text").text((17-val.length));}else{jQuery("#sender_shipment").attr("maxlength","11");jQuery("#sender_shipment_text").text((11-val.length));}}jQuery("#sender_shipment_message").keyup(function(){var chars=this.value.length,messages=Math.ceil(chars/160),remaining=messages*160-(chars%(messages*160)||messages*160);if(remaining==0){remaining=160;}jQuery("#sender_shipment_message_text").text(remaining);jQuery("#sender_shipment_message_text_count").text(messages);});if(jQuery("#sender_shipment_message").val()!=""){var chars=jQuery("#sender_shipment_message").val().length,messages=Math.ceil(chars/160),remaining=messages*160-(chars%(messages*160)||messages*160);jQuery("#sender_shipment_message_text").text(remaining);jQuery("#sender_shipment_message_text_count").text(messages);}jQuery("#sender_campaign").mouseover(function(){var val=jQuery(this).val();if(isInteger(val)||val==""){jQuery("#sender_campaign").attr("maxlength","17");jQuery("#sender_campaign_text").text((17-val.length));}else{jQuery("#sender_campaign").attr("maxlength","11");var str7=val.length>11?val.substr(1,11):val;jQuery("#sender_campaign").val(str7);jQuery("#sender_campaign_text").text((11-val.length));}});jQuery("#sender_campaign").keyup(function(){var val=jQuery(this).val();if(isInteger(val)||val==""){jQuery("#sender_campaign").attr("maxlength","17");jQuery("#sender_campaign_text").text((17-val.length));}else{jQuery("#sender_campaign").attr("maxlength","11");var str7=val.length>11?val.substr(1,11):val;jQuery("#sender_campaign").val(str7);jQuery("#sender_campaign_text").text((11-val.length));}});if(jQuery("#sender_campaign").val()!=""){var val=jQuery("#sender_campaign").val();if(isInteger(val)){jQuery("#sender_campaign").attr("maxlength","17");jQuery("#sender_campaign_text").text((17-val.length));}else{jQuery("#sender_campaign").attr("maxlength","11");jQuery("#sender_campaign_text").text((11-val.length));}}jQuery("#sender_campaign_message").keyup(function(){var chars=this.value.length,messages=Math.ceil(chars/160),remaining=messages*160-(chars%(messages*160)||messages*160);if(remaining==0){remaining=160;}jQuery("#sender_campaign_message_text").text(remaining);jQuery("#sender_campaign_message_text_count").text(messages);});if(jQuery("#sender_campaign_message").val()!=""){var chars=jQuery("#sender_campaign_message").val().length,messages=Math.ceil(chars/160),remaining=messages*160-(chars%(messages*160)||messages*160);jQuery("#sender_campaign_message_text").text(remaining);jQuery("#sender_campaign_message_text_count").text(messages);}jQuery(".sms_order_setting").click(function(){var orderSetting=jQuery(this).val();var orderUrl=jQuery("#order").val();jQuery.ajax({type:"POST",async:false,url:orderUrl,data:"orderSetting="+orderSetting,beforeSend:function(){jQuery("#ajax-busy").show();},success:function(msg){jQuery("#ajax-busy").hide();if(orderSetting==1){jQuery(".hideOrder").show();}else{jQuery(".hideOrder").hide();}}});});jQuery(".sms_shiping_setting").click(function(){var shipingSetting=jQuery(this).val();var shipingUrl=jQuery("#shiping").val();jQuery.ajax({type:"POST",async:false,url:shipingUrl,data:"shipingSetting="+shipingSetting,beforeSend:function(){jQuery("#ajax-busy").show();},success:function(msg){jQuery("#ajax-busy").hide();if(shipingSetting==1){jQuery(".hideShiping").show();}else{jQuery(".hideShiping").hide();}}});});jQuery(".sms_campaign_setting").click(function(){var campaignSetting=jQuery(this).val();var campaignUrl=jQuery("#campaign").val();jQuery.ajax({type:"POST",async:false,url:campaignUrl,data:"campaignSetting="+campaignSetting,beforeSend:function(){jQuery("#ajax-busy").show();},success:function(msg){jQuery("#ajax-busy").hide();if(campaignSetting==1){jQuery(".hideCampaign").show();}else{jQuery(".hideCampaign").hide();}}});});if(jQuery("input:radio[name=sms_order_setting]:checked").val()==0){jQuery(".hideOrder").hide();}else{jQuery(".hideOrder").show();}jQuery(".Sendin_Sms_Choice").click(function(){if(jQuery(this).val()==1){jQuery(".multiplechoice").hide();jQuery(".singlechoice").show();}else{jQuery(".multiplechoice").show();jQuery(".singlechoice").hide();}});if(jQuery("input:radio[name=Sendin_Sms_Choice]:checked").val()==0){jQuery(".multiplechoice").show();jQuery(".singlechoice").hide();}else{jQuery(".singlechoice").show();jQuery(".multiplechoice").hide();}jQuery(".sms_shiping_setting").click(function(){if(jQuery(this).val()==1){jQuery(".hideShiping").show();}else{jQuery(".hideShiping").hide();}});if(jQuery("input:radio[name=sms_credit]:checked").val()==0){jQuery(".hideCredit").hide();}else{jQuery(".hideCredit").show();}jQuery(".sms_credit").click(function(){var sms_credit=jQuery(this).val();var creditUrl=jQuery("#credits").val();var type="sms_credit";jQuery.ajax({type:"POST",async:false,url:creditUrl,data:"sms_credit="+sms_credit,beforeSend:function(){jQuery("#ajax-busy").show();},success:function(msg){jQuery("#ajax-busy").hide();if(sms_credit==1){jQuery(".hideCredit").show();}else{jQuery(".hideCredit").hide();}}});});if(jQuery("input:radio[name=sms_shiping_setting]:checked").val()==0){jQuery(".hideShiping").hide();}else{jQuery(".hideShiping").show();}jQuery(".sms_campaign_setting").click(function(){if(jQuery(this).val()==1){jQuery(".hideCampaign").show();}else{jQuery(".hideCampaign").hide();}});if(jQuery("input:radio[name=sms_campaign_setting]:checked").val()==0){jQuery(".hideCampaign").hide();}else{jQuery(".hideCampaign").show();}jQuery("#selectSmsList").multiselect({header:false,checkall:false});jQuery("#tabs li").click(function(){jQuery("#tabs li").removeClass("active");jQuery(this).addClass("active");jQuery(".tab_content").hide();var selected_tab=jQuery(this).find("a").attr("href");jQuery(selected_tab).fadeIn();return false;});function isInteger(val){var numberRegex=/^[+-]?\d+(\.\d+)?([eE][+-]?\d+)?$/;if(numberRegex.test(val)){return true;}return false;}jQuery("#showUserlist").click(function(){if(jQuery(".userDetails").is(":hidden")){loadData(1);jQuery("#Spantextless").show();jQuery("#Spantextmore").hide();}else{jQuery("#Spantextmore").show();jQuery("#Spantextless").hide();}jQuery(".userDetails").slideToggle();});var base_url=getBaseURL();jQuery(".Tracking").click(function(){var Tracking=jQuery(this).val();var trackingUrl=jQuery("#trackingUrl").val();jQuery.ajax({type:"POST",async:false,url:trackingUrl,data:"script="+Tracking,beforeSend:function(){jQuery("#ajax-busy").show();},success:function(msg){jQuery("#ajax-busy").hide();}});});jQuery(".smtpStatus").click(function(){var smtptest=jQuery(this).val();var smtpUrl=jQuery("#smtpUrl").val();if(smtptest==0){jQuery(".smtptest").hide();}if(smtptest==1){jQuery(".smtptest").show();}jQuery.ajax({type:"POST",async:false,url:smtpUrl,data:"smtptest="+smtptest,beforeSend:function(){jQuery("#ajax-busy").show();},success:function(msg){jQuery("#ajax-busy").hide();}});});var skin_url=jQuery("#skin_url").val();jQuery('<div id="ajax-busy"/> loading..').css({opacity:0.5,position:"fixed",top:0,left:0,width:"100%",height:jQuery(window).height()+"px",background:"white url("+skin_url+"adminhtml/default/default/sendinblue/images/loader.gif) no-repeat center"}).hide().appendTo("body");function getBaseURL(){var sBase=location.href.substr(0,location.href.lastIndexOf("/")+1);var sp=sBase.split("/");var lastFolder=sp[sp.length-2];return sBase.replace(lastFolder+"/","");}jQuery("body").on("click",".ajax_contacts_href",function(e){var email=jQuery(this).attr("email");var status=jQuery(this).attr("status");var ajaxUrl=jQuery("#ajaxUrl").val();jQuery.ajax({type:"POST",async:false,url:ajaxUrl,data:{email:email,newsletter:status},beforeSend:function(){jQuery("#ajax-busy").show();},success:function(msg){jQuery("#ajax-busy").hide();}});var page_no=jQuery("#pagenumber").val();loadData(page_no);});});function testsmssend(sendererr,messageerr,mobileerr){var sender=jQuery("#sender_order").val();var message=jQuery("#sender_order_message").val();var number=jQuery("#sender_order_number").val();var ajaxOrderSmsUrl=jQuery("#ajaxOrderSmsUrl").val();var smsCampError=jQuery("#smsCampError").val();var smsCampSuccess=jQuery("#smsCampSuccess").val();if(sender==""||isValid(sender)==false){alert(sendererr);}else{if(message==""){alert(messageerr);}else{if(number==""){alert(mobileerr);}else{jQuery.ajax({type:"POST",async:false,url:ajaxOrderSmsUrl,data:"sender="+sender+"&message="+message+"&number="+number,beforeSend:function(){jQuery("#ajax-busy").show();},success:function(msg){jQuery("#ajax-busy").hide();if(msg.trim()=="OK"){alert(smsCampSuccess);}else{alert(smsCampError);}}});}}}return false;}function testShippedSmsSend(sendererr,messageerr,mobileerr){var sender=jQuery("#sender_shipment").val();var message=jQuery("#sender_shipment_message").val();var number=jQuery("#sender_shipment_number").val();var ajaxOrderShippedUrl=jQuery("#ajaxOrderShippedUrl").val();var smsCampError=jQuery("#smsCampError").val();var smsCampSuccess=jQuery("#smsCampSuccess").val();if(sender==""||isValid(sender)==false){alert(sendererr);}else{if(message==""){alert(messageerr);}else{if(number==""){alert(mobileerr);}else{jQuery.ajax({type:"POST",async:false,url:ajaxOrderShippedUrl,data:"sender="+sender+"&message="+message+"&number="+number,beforeSend:function(){jQuery("#ajax-busy").show();},success:function(msg){jQuery("#ajax-busy").hide();if(msg.trim()=="OK"){alert(smsCampSuccess);}else{alert(smsCampError);}}});}}}return false;}function testCampaignSmsSend(sendererr,messageerr,mobileerr){var sender=jQuery("#sender_campaign").val();var message=jQuery("#sender_campaign_message").val();var number=jQuery("#sender_campaigntest_number").val();var ajaxSmsCampaignUrl=jQuery("#ajaxSmsCampaignUrl").val();var smsCampError=jQuery("#smsCampError").val();var smsCampSuccess=jQuery("#smsCampSuccess").val();if(sender==""||isValid(sender)==false){alert(sendererr);}else{if(message==""){alert(messageerr);}else{if(number==""||isMobilevalidation(number)==false){alert(mobileerr);}else{jQuery.ajax({type:"POST",async:false,url:ajaxSmsCampaignUrl,data:"sender="+sender+"&message="+message+"&number="+number,beforeSend:function(){jQuery("#ajax-busy").show();},success:function(msg){jQuery("#ajax-busy").hide();if(msg.trim()=="OK"){alert(smsCampSuccess);}else{alert(smsCampError);}}});}}}return false;}function senderOrderSaveValid(sendererr,messageerr){var sender=jQuery("#sender_order").val();var message=jQuery("#sender_order_message").val();if(sender==""||isValid(sender)==false){alert(sendererr);return false;}else{if(message==""){alert(messageerr);return false;}}}function senderShipmentSaveValid(sendererr,messageerr){var sender=jQuery("#sender_shipment").val();var message=jQuery("#sender_shipment_message").val();if(sender==""||isValid(sender)==false){alert(sendererr);return false;}else{if(message==""){alert(messageerr);return false;}}}function senderCampaignSaveValid(sendererr,messageerr,mobileerr){var sender=jQuery("#sender_campaign").val();var message=jQuery("#sender_campaign_message").val();var number=jQuery("#singlechoice").val();var radiovalue=jQuery("input[name=Sendin_Sms_Choice]:checked").val();if(radiovalue==1){if(number==""||isMobilevalidation(number)==false){alert(mobileerr);return false;}else{if(sender==""||isValid(sender)==false){alert(sendererr);return false;}else{if(message==""){alert(messageerr);return false;}}}}else{if(sender==""||isValid(sender)==false){alert(sendererr);return false;}else{if(message==""){alert(messageerr);return false;}}}}function isMobilevalidation(str){return/^(?:\+|00)[1-9][0-9]{5,15}$/.test(str);}function isNormalInteger(str){return/^\+?(0|[1-9]\d*)$/.test(str);}function isValid(str){var iChars="~`!#$%^&*+=-[]\\';,/{}|\":<>?";for(var i=0;i<str.length;i++){if(iChars.indexOf(str.charAt(i))!=-1){return false;}}return true;}function RegexEmail(email){var emailRegexStr=/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;var isvalid=emailRegexStr.test(email);return isvalid;}function validate(emailerr,limiter){if(document.notify_sms_mail_form.sendin_notify_email.value==""||RegexEmail(document.notify_sms_mail_form.sendin_notify_email.value)==false){alert(emailerr);document.notify_sms_mail_form.sendin_notify_email.focus();return false;}if(document.notify_sms_mail_form.sendin_notify_value.value==""||isNormalInteger(document.notify_sms_mail_form.sendin_notify_value.value)==false){alert(limiter);document.notify_sms_mail_form.sendin_notify_value.focus();return false;}return(true);}function smtpvalidate(emailerr){var email=jQuery("#email").val();if(email==""||RegexEmail(email)==false){alert(emailerr);jQuery("#email").focus();return false;}}function apikvalidate(apierr){var sendin_apikey_val=jQuery("#sendin_apikey_val").val();if(sendin_apikey_val.trim()==""){alert(apierr);jQuery("#sendin_apikey_val").focus();return false;}}
|