Version Notes
Stable Module
Download this release
Release Info
| Developer | Dhananjay Goel |
| Extension | Clexchange_Funding |
| Version | 2.0 |
| Comparing to | |
| See all releases | |
Version 2.0
- app/code/community/CLExchange/Clexchangefunding/ApprovalRequired.php +13 -0
- app/code/community/CLExchange/Clexchangefunding/Block/Form/Clxfunding.php +10 -0
- app/code/community/CLExchange/Clexchangefunding/Block/Form/Clxfunding.php~ +11 -0
- app/code/community/CLExchange/Clexchangefunding/CronExpressionList.php +14 -0
- app/code/community/CLExchange/Clexchangefunding/CronExpressionList.php~ +16 -0
- app/code/community/CLExchange/Clexchangefunding/Helper/Data.php +139 -0
- app/code/community/CLExchange/Clexchangefunding/Helper/Data.php~ +140 -0
- app/code/community/CLExchange/Clexchangefunding/IsBestOffer.php +13 -0
- app/code/community/CLExchange/Clexchangefunding/Model/AccountIdV.php +12 -0
- app/code/community/CLExchange/Clexchangefunding/Model/AuthorizationKeyV.php +12 -0
- app/code/community/CLExchange/Clexchangefunding/Model/ClxEmail.php +22 -0
- app/code/community/CLExchange/Clexchangefunding/Model/Clxloanappdtls.php +10 -0
- app/code/community/CLExchange/Clexchangefunding/Model/Clxloanofferdetails.php +10 -0
- app/code/community/CLExchange/Clexchangefunding/Model/CronOrderStatusUpdate.php +334 -0
- app/code/community/CLExchange/Clexchangefunding/Model/Mysql4/Clxloanappdtls.php +9 -0
- app/code/community/CLExchange/Clexchangefunding/Model/Mysql4/Clxloanappdtls/Collection.php +10 -0
- app/code/community/CLExchange/Clexchangefunding/Model/Mysql4/Clxloanofferdetails.php +9 -0
- app/code/community/CLExchange/Clexchangefunding/Model/Mysql4/Clxloanofferdetails/Collection.php +10 -0
- app/code/community/CLExchange/Clexchangefunding/Model/Observer.php +44 -0
- app/code/community/CLExchange/Clexchangefunding/Model/Observer.php~ +48 -0
- app/code/community/CLExchange/Clexchangefunding/Model/PaymentMethodTitle.php +12 -0
- app/code/community/CLExchange/Clexchangefunding/Model/Paymentmethod.php +12 -0
- app/code/community/CLExchange/Clexchangefunding/Model/QueueAuthKeyV.php +12 -0
- app/code/community/CLExchange/Clexchangefunding/Model/QueueEndpointV.php +12 -0
- app/code/community/CLExchange/Clexchangefunding/Model/Resource/Setup.php +4 -0
- app/code/community/CLExchange/Clexchangefunding/TimeFrames.php +17 -0
- app/code/community/CLExchange/Clexchangefunding/controllers/ClxAPIController.php +1070 -0
- app/code/community/CLExchange/Clexchangefunding/controllers/ClxAPIController.php~ +1032 -0
- app/code/community/CLExchange/Clexchangefunding/controllers/PaymentController.php +38 -0
- app/code/community/CLExchange/Clexchangefunding/etc/config.xml +194 -0
- app/code/community/CLExchange/Clexchangefunding/etc/config.xml~ +194 -0
- app/code/community/CLExchange/Clexchangefunding/etc/system.xml +149 -0
- app/code/community/CLExchange/Clexchangefunding/sql/clxfunding_setup/mysql4-install-1.0.0.0.php +70 -0
- app/design/frontend/base/default/layout/clxblock.xml +58 -0
- app/design/frontend/base/default/template/clxfunding/form/aboutCLXFunding.phtml +3 -0
- app/design/frontend/base/default/template/clxfunding/form/clxfunding.phtml +660 -0
- app/design/frontend/base/default/template/clxfunding/form/confirm_user_acceptance.phtml +21 -0
- app/design/frontend/base/default/template/clxfunding/form/custompaymentmethod.phtml~ +118 -0
- app/design/frontend/base/default/template/clxfunding/form/link_Expire.phtml +15 -0
- app/design/frontend/base/default/template/clxfunding/form/loan_offer_response.phtml +79 -0
- app/design/frontend/base/default/template/clxfunding/form/loan_offer_response.phtml~ +75 -0
- app/design/frontend/base/default/template/clxfunding/form/loanapplicationstatus.phtml +45 -0
- app/design/frontend/base/default/template/clxfunding/form/modal_clxfunding.phtml +409 -0
- app/design/frontend/base/default/template/clxfunding/form/modal_clxfunding.phtml~ +398 -0
- app/design/frontend/base/default/template/clxfunding/form/modal_custompaymentmethod.phtml~ +353 -0
- app/design/frontend/base/default/template/clxfunding/form/user_loan_offer_accept.phtml +32 -0
- app/design/frontend/base/default/template/clxfunding/form/user_loan_offer_reject.phtml +15 -0
- app/design/frontend/base/default/template/clxfunding/form/user_loan_offer_status.phtml +34 -0
- app/etc/modules/CLExchange_Clexchangefunding.xml +18 -0
- app/locale/en_US/template/email/CLX/email-template/clx_error.html +39 -0
- app/locale/en_US/template/email/CLX/email-template/clx_loan_approved.html +37 -0
- app/locale/en_US/template/email/CLX/email-template/clx_loan_funded.html +38 -0
- app/locale/en_US/template/email/CLX/email-template/clx_loan_offer.html +108 -0
- app/locale/en_US/template/email/CLX/email-template/clx_loan_offer_reject.html +39 -0
- package.xml +18 -0
- skin/frontend/base/default/css/Clx/bootstrap-datepicker.min.css +8 -0
- skin/frontend/base/default/css/Clx/bootstrap.min.css +6291 -0
- skin/frontend/base/default/css/Clx/clx_custom.css +62 -0
- skin/frontend/base/default/css/Clx/clxloanofferdata.php~ +78 -0
- skin/frontend/base/default/css/Clx/clxloantabledata.php~ +131 -0
- skin/frontend/base/default/css/Clx/cron_status.php~ +114 -0
- skin/frontend/base/default/css/Clx/help.png +0 -0
- skin/frontend/base/default/css/Clx/loading.gif +0 -0
- skin/frontend/base/default/css/Clx/loading11.gif +0 -0
- skin/frontend/base/default/js/Clx/bootbox.min.js +6 -0
- skin/frontend/base/default/js/Clx/bootstrap-datepicker.min.js +8 -0
- skin/frontend/base/default/js/Clx/bootstrap.min.js +11 -0
- skin/frontend/base/default/js/Clx/jquery-1.11.3.min.js +6 -0
- skin/frontend/base/default/js/Clx/jquery-migrate-1.2.1.min.js +2 -0
- skin/frontend/base/default/js/Clx/noConflict.js +1 -0
app/code/community/CLExchange/Clexchangefunding/ApprovalRequired.php
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_ApprovalRequired {
|
| 4 |
+
/* here we can update select field values of Approval Required in admin panel under our CLExchange Payment Module tab */
|
| 5 |
+
|
| 6 |
+
public function toOptionArray() {
|
| 7 |
+
return array(
|
| 8 |
+
array('value' => '1', 'label' => Mage::helper('adminhtml')->__('true')),
|
| 9 |
+
array('value' => '0', 'label' => Mage::helper('adminhtml')->__('false'))
|
| 10 |
+
);
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Block/Form/Clxfunding.php
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_Block_Form_Clxfunding extends Mage_Payment_Block_Form {
|
| 4 |
+
|
| 5 |
+
protected function _construct() {
|
| 6 |
+
parent::_construct();
|
| 7 |
+
$this->setTemplate('clxfunding/form/clxfunding.phtml');
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Block/Form/Clxfunding.php~
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
// app/code/local/Envato/Clexchangefunding/Block/Form/Clexchangefunding.php
|
| 4 |
+
class CLExchange_Clexchangefunding_Block_Form_Clexchangefunding extends Mage_Payment_Block_Form {
|
| 5 |
+
|
| 6 |
+
protected function _construct() {
|
| 7 |
+
parent::_construct();
|
| 8 |
+
$this->setTemplate('clxfunding/form/clxfunding.phtml');
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/CronExpressionList.php
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class CLExchange_Clexchangefunding_CronExpressionList
|
| 3 |
+
{
|
| 4 |
+
/* here we can update select field values of Cron Expression in admin panel under CLExchange Payment Module tab*/
|
| 5 |
+
public function toOptionArray()
|
| 6 |
+
{
|
| 7 |
+
return array(
|
| 8 |
+
array('value' => '*/5 * * * *', 'label'=>Mage::helper('adminhtml')->__('Every 5 minutes')),
|
| 9 |
+
array('value' => '*/10 * * * *', 'label'=>Mage::helper('adminhtml')->__('Every 10 minutes')),
|
| 10 |
+
array('value' => '30 * * * *', 'label'=>Mage::helper('adminhtml')->__('Every 30 minutes')),
|
| 11 |
+
);
|
| 12 |
+
}
|
| 13 |
+
}
|
| 14 |
+
|
app/code/community/CLExchange/Clexchangefunding/CronExpressionList.php~
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class CLExchange_Clexchangefunding_CronExpressionList
|
| 3 |
+
{
|
| 4 |
+
/* here we can update select field values of Cron Expression in admin panel under CLExchange Payment Module tab*/
|
| 5 |
+
public function toOptionArray()
|
| 6 |
+
{
|
| 7 |
+
return array(
|
| 8 |
+
array('value' => '*/5 * * * *', 'label'=>Mage::helper('adminhtml')->__('Every 5 minutes')),
|
| 9 |
+
array('value' => '*/10 * * * *', 'label'=>Mage::helper('adminhtml')->__('Every 10 minutes')),
|
| 10 |
+
array('value' => '30 * * * *', 'label'=>Mage::helper('adminhtml')->__('Every 30 minutes')),
|
| 11 |
+
array('value' => '0 0 */1 * * *', 'label'=>Mage::helper('adminhtml')->__('Every Hours')),
|
| 12 |
+
array('value' => '0 0 */2 * * *', 'label'=>Mage::helper('adminhtml')->__('Every 2 Hours')),
|
| 13 |
+
array('value' => '0 0 */3 * * *', 'label'=>Mage::helper('adminhtml')->__('Every 3 Hours')),
|
| 14 |
+
);
|
| 15 |
+
}
|
| 16 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Helper/Data.php
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_Helper_Data extends Mage_Core_Helper_Abstract {
|
| 4 |
+
|
| 5 |
+
function getPaymentGatewayUrl() {
|
| 6 |
+
return Mage::getUrl('clxfunding/payment/gateway', array('_secure' => false));
|
| 7 |
+
}
|
| 8 |
+
/* Real time loan offer API */
|
| 9 |
+
function mastercurlRequestToClxLoanOfferApi($url, $page, $data, $authorizationField) {
|
| 10 |
+
|
| 11 |
+
$headers = array(
|
| 12 |
+
"POST " . $page . " HTTP/1.1",
|
| 13 |
+
"Host:portal.clexchange.io",
|
| 14 |
+
"Content-type: application/json",
|
| 15 |
+
"Cache-Control: no-cache",
|
| 16 |
+
"Authorization: " . $authorizationField,
|
| 17 |
+
"Content-length: " . strlen(json_encode($data)),
|
| 18 |
+
);
|
| 19 |
+
|
| 20 |
+
$ch = curl_init();
|
| 21 |
+
curl_setopt($ch, CURLOPT_URL, $url); //setup curl url
|
| 22 |
+
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); //setup auth to basic
|
| 23 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
| 24 |
+
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
|
| 25 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); //setup request header
|
| 26 |
+
curl_setopt($ch, CURLOPT_POST, 1); //setup type post
|
| 27 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); //post parameters in json format
|
| 28 |
+
|
| 29 |
+
$info = curl_exec($ch);
|
| 30 |
+
|
| 31 |
+
if (curl_errno($ch)) {
|
| 32 |
+
return array('valid' => FALSE, 'Error' => curl_error($ch));
|
| 33 |
+
} else {
|
| 34 |
+
curl_close($ch);
|
| 35 |
+
return array('valid' => TRUE, 'result' => $info);
|
| 36 |
+
}
|
| 37 |
+
}
|
| 38 |
+
/* Create loan Application API */
|
| 39 |
+
function mastercurlRequestToClxLoanApplicationApi($url, $page, $data, $authorizationField) {
|
| 40 |
+
|
| 41 |
+
$headers = array(
|
| 42 |
+
"POST " . $page . " HTTP/1.1",
|
| 43 |
+
"Host:portal.clexchange.io",
|
| 44 |
+
"Content-type: application/json",
|
| 45 |
+
"Cache-Control: no-cache",
|
| 46 |
+
"Authorization: " . $authorizationField,
|
| 47 |
+
"Content-length: " . strlen(json_encode($data)),
|
| 48 |
+
);
|
| 49 |
+
|
| 50 |
+
$ch = curl_init();
|
| 51 |
+
curl_setopt($ch, CURLOPT_URL, $url);
|
| 52 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
| 53 |
+
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
|
| 54 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
| 55 |
+
curl_setopt($ch, CURLOPT_POST, 1);
|
| 56 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
| 57 |
+
|
| 58 |
+
$info = curl_exec($ch);
|
| 59 |
+
if (curl_errno($ch)) {
|
| 60 |
+
return array('valid' => FALSE, 'Error' => curl_error($ch));
|
| 61 |
+
} else {
|
| 62 |
+
curl_close($ch);
|
| 63 |
+
return array('valid' => TRUE, 'result' => $info);
|
| 64 |
+
}
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
function mastercurlRequestToClxOfferAcceptenceApi($url, $page, $data, $authorizationField) {
|
| 68 |
+
$headers = array(
|
| 69 |
+
"POST " . $page . " HTTP/1.1",
|
| 70 |
+
"Host:portal.clexchange.io",
|
| 71 |
+
"Content-type: application/json",
|
| 72 |
+
"Cache-Control: no-cache",
|
| 73 |
+
"Authorization: " . $authorizationField,
|
| 74 |
+
"Content-length: " . strlen(json_encode($data)),
|
| 75 |
+
);
|
| 76 |
+
|
| 77 |
+
$ch = curl_init();
|
| 78 |
+
curl_setopt($ch, CURLOPT_URL, $url);
|
| 79 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
| 80 |
+
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
|
| 81 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
| 82 |
+
curl_setopt($ch, CURLOPT_POST, 1);
|
| 83 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
| 84 |
+
|
| 85 |
+
$info = curl_exec($ch);
|
| 86 |
+
|
| 87 |
+
if (curl_errno($ch)) {
|
| 88 |
+
return array('valid' => FALSE, 'Error' => curl_error($ch));
|
| 89 |
+
} else {
|
| 90 |
+
curl_close($ch);
|
| 91 |
+
return array('valid' => TRUE, 'result' => $info);
|
| 92 |
+
}
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
function clxQueueingSystem() {
|
| 96 |
+
|
| 97 |
+
$Queue_Authentication_Key = Mage::getStoreConfig('payment/clxfunding/queue_authentication_key');
|
| 98 |
+
$Queue_Endpoint = Mage::getStoreConfig('payment/clxfunding/queue_endpoint');
|
| 99 |
+
if (isset($Queue_Authentication_Key) && !empty($Queue_Authentication_Key) && isset($Queue_Endpoint) && !empty($Queue_Endpoint)) {
|
| 100 |
+
$headers = array(
|
| 101 |
+
"Content-type: application/json",
|
| 102 |
+
"Authorization: OAuth " . $Queue_Authentication_Key
|
| 103 |
+
);
|
| 104 |
+
|
| 105 |
+
$ch = curl_init();
|
| 106 |
+
curl_setopt($ch, CURLOPT_URL, $Queue_Endpoint);
|
| 107 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
| 108 |
+
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
|
| 109 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
| 110 |
+
|
| 111 |
+
$info = curl_exec($ch);
|
| 112 |
+
|
| 113 |
+
if (curl_errno($ch)) {
|
| 114 |
+
return FALSE;
|
| 115 |
+
} else {
|
| 116 |
+
curl_close($ch);
|
| 117 |
+
$reponse_data = json_decode($info);
|
| 118 |
+
if (isset($reponse_data) && !empty($reponse_data)) {
|
| 119 |
+
return $reponse_data;
|
| 120 |
+
} else {
|
| 121 |
+
return FALSE;
|
| 122 |
+
}
|
| 123 |
+
}
|
| 124 |
+
} else {
|
| 125 |
+
Mage::log('Clx Error : Missing queue authentication key or queue endpoint ');
|
| 126 |
+
}
|
| 127 |
+
}
|
| 128 |
+
|
| 129 |
+
function getAge($date1, $date2) {
|
| 130 |
+
$date1 = strtotime($date1);
|
| 131 |
+
$date2 = strtotime($date2);
|
| 132 |
+
$age = 0;
|
| 133 |
+
while ($date2 > $date1 = strtotime('+1 year', $date1)) {
|
| 134 |
+
++$age;
|
| 135 |
+
}
|
| 136 |
+
return $age;
|
| 137 |
+
}
|
| 138 |
+
|
| 139 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Helper/Data.php~
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_Helper_Data extends Mage_Core_Helper_Abstract {
|
| 4 |
+
|
| 5 |
+
function getPaymentGatewayUrl() {
|
| 6 |
+
return Mage::getUrl('clxfunding/payment/gateway', array('_secure' => false));
|
| 7 |
+
}
|
| 8 |
+
/* Real time loan offer API */
|
| 9 |
+
function mastercurlRequestToClxLoanOfferApi($url, $page, $data, $authorizationField) {
|
| 10 |
+
$headers = array(
|
| 11 |
+
"POST " . $page . " HTTP/1.1",
|
| 12 |
+
"Host:portal.clexchange.io",
|
| 13 |
+
"Content-type: application/json",
|
| 14 |
+
"Cache-Control: no-cache",
|
| 15 |
+
"Authorization: " . $authorizationField,
|
| 16 |
+
"Content-length: " . strlen(json_encode($data)),
|
| 17 |
+
);
|
| 18 |
+
|
| 19 |
+
$ch = curl_init();
|
| 20 |
+
curl_setopt($ch, CURLOPT_URL, $url); //setup curl url
|
| 21 |
+
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); //setup auth to basic
|
| 22 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
| 23 |
+
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
|
| 24 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); //setup request header
|
| 25 |
+
curl_setopt($ch, CURLOPT_POST, 1); //setup type post
|
| 26 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); //post parameters in json format
|
| 27 |
+
|
| 28 |
+
$info = curl_exec($ch);
|
| 29 |
+
|
| 30 |
+
if (curl_errno($ch)) {
|
| 31 |
+
return array('valid' => FALSE, 'Error' => curl_error($ch));
|
| 32 |
+
} else {
|
| 33 |
+
curl_close($ch);
|
| 34 |
+
return array('valid' => TRUE, 'result' => $info);
|
| 35 |
+
}
|
| 36 |
+
}
|
| 37 |
+
/* Create loan Application API */
|
| 38 |
+
function mastercurlRequestToClxLoanApplicationApi($url, $page, $data, $authorizationField) {
|
| 39 |
+
$headers = array(
|
| 40 |
+
"POST " . $page . " HTTP/1.1",
|
| 41 |
+
"Host:portal.clexchange.io",
|
| 42 |
+
"Content-type: application/json",
|
| 43 |
+
"Cache-Control: no-cache",
|
| 44 |
+
"Authorization: " . $authorizationField,
|
| 45 |
+
"Content-length: " . strlen(json_encode($data)),
|
| 46 |
+
);
|
| 47 |
+
|
| 48 |
+
$ch = curl_init();
|
| 49 |
+
curl_setopt($ch, CURLOPT_URL, $url);
|
| 50 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
| 51 |
+
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
|
| 52 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
| 53 |
+
curl_setopt($ch, CURLOPT_POST, 1);
|
| 54 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
| 55 |
+
|
| 56 |
+
$info = curl_exec($ch);
|
| 57 |
+
if (curl_errno($ch)) {
|
| 58 |
+
return array('valid' => FALSE, 'Error' => curl_error($ch));
|
| 59 |
+
} else {
|
| 60 |
+
curl_close($ch);
|
| 61 |
+
return array('valid' => TRUE, 'result' => $info);
|
| 62 |
+
}
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
function mastercurlRequestToClxOfferAcceptenceApi($url, $page, $data, $authorizationField) {
|
| 66 |
+
|
| 67 |
+
$headers = array(
|
| 68 |
+
"POST " . $page . " HTTP/1.1",
|
| 69 |
+
"Host:portal.clexchange.io",
|
| 70 |
+
"Content-type: application/json",
|
| 71 |
+
"Cache-Control: no-cache",
|
| 72 |
+
"Authorization: " . $authorizationField,
|
| 73 |
+
"Content-length: " . strlen(json_encode($data)),
|
| 74 |
+
);
|
| 75 |
+
|
| 76 |
+
$ch = curl_init();
|
| 77 |
+
curl_setopt($ch, CURLOPT_URL, $url);
|
| 78 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
| 79 |
+
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
|
| 80 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
| 81 |
+
curl_setopt($ch, CURLOPT_POST, 1);
|
| 82 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
$info = curl_exec($ch);
|
| 86 |
+
|
| 87 |
+
if (curl_errno($ch)) {
|
| 88 |
+
return array('valid' => FALSE, 'Error' => curl_error($ch));
|
| 89 |
+
} else {
|
| 90 |
+
curl_close($ch);
|
| 91 |
+
return array('valid' => TRUE, 'result' => $info);
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
}
|
| 95 |
+
|
| 96 |
+
function clxQueueingSystem() {
|
| 97 |
+
|
| 98 |
+
$Queue_Authentication_Key = Mage::getStoreConfig('payment/clxfunding/queue_authentication_key');
|
| 99 |
+
$Queue_Endpoint = Mage::getStoreConfig('payment/clxfunding/queue_endpoint');
|
| 100 |
+
if (isset($Queue_Authentication_Key) && !empty($Queue_Authentication_Key) && isset($Queue_Endpoint) && !empty($Queue_Endpoint)) {
|
| 101 |
+
$headers = array(
|
| 102 |
+
"Content-type: application/json",
|
| 103 |
+
"Authorization: OAuth " . $Queue_Authentication_Key
|
| 104 |
+
);
|
| 105 |
+
|
| 106 |
+
$ch = curl_init();
|
| 107 |
+
curl_setopt($ch, CURLOPT_URL, $Queue_Endpoint);
|
| 108 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
| 109 |
+
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
|
| 110 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
| 111 |
+
|
| 112 |
+
$info = curl_exec($ch);
|
| 113 |
+
|
| 114 |
+
if (curl_errno($ch)) {
|
| 115 |
+
return FALSE;
|
| 116 |
+
} else {
|
| 117 |
+
curl_close($ch);
|
| 118 |
+
$reponse_data = json_decode($info);
|
| 119 |
+
if (isset($reponse_data) && !empty($reponse_data)) {
|
| 120 |
+
return $reponse_data;
|
| 121 |
+
} else {
|
| 122 |
+
return FALSE;
|
| 123 |
+
}
|
| 124 |
+
}
|
| 125 |
+
} else {
|
| 126 |
+
Mage::log('Clx Error : Missing queue authentication key or queue endpoint ');
|
| 127 |
+
}
|
| 128 |
+
}
|
| 129 |
+
|
| 130 |
+
function getAge($date1, $date2) {
|
| 131 |
+
$date1 = strtotime($date1);
|
| 132 |
+
$date2 = strtotime($date2);
|
| 133 |
+
$age = 0;
|
| 134 |
+
while ($date2 > $date1 = strtotime('+1 year', $date1)) {
|
| 135 |
+
++$age;
|
| 136 |
+
}
|
| 137 |
+
return $age;
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/IsBestOffer.php
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_IsBestOffer {
|
| 4 |
+
/* here we can update select field values of is Best Offer in admin panel under CLExchange Payment Module tab */
|
| 5 |
+
|
| 6 |
+
public function toOptionArray() {
|
| 7 |
+
return array(
|
| 8 |
+
array('value' => '1', 'label' => Mage::helper('adminhtml')->__('true')),
|
| 9 |
+
array('value' => '0', 'label' => Mage::helper('adminhtml')->__('false'))
|
| 10 |
+
);
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Model/AccountIdV.php
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/* This is to restrict merchant to change title of payment method */
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_AccountIdV extends Mage_Core_Model_Config_Data {
|
| 4 |
+
/* save config in admin panel */
|
| 5 |
+
public function save() {
|
| 6 |
+
$accountId = $this->getValue(); //get the value from our config
|
| 7 |
+
if (!isset($accountId) || empty($accountId)) {
|
| 8 |
+
Mage::throwException("CLExchange Payment Module - AccountId is required");
|
| 9 |
+
}
|
| 10 |
+
return parent::save(); //call original save method so whatever happened
|
| 11 |
+
}
|
| 12 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Model/AuthorizationKeyV.php
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/* This is to restrict merchant to change title of payment method */
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_AuthorizationKeyV extends Mage_Core_Model_Config_Data {
|
| 4 |
+
/* save config in admin panel */
|
| 5 |
+
public function save() {
|
| 6 |
+
$authkey_v = $this->getValue(); //get the value from our config
|
| 7 |
+
if (!isset($authkey_v) || empty($authkey_v)) {
|
| 8 |
+
Mage::throwException("CLExchange Payment Module - Authentication Key is required");
|
| 9 |
+
}
|
| 10 |
+
return parent::save(); //call original save method so whatever happened
|
| 11 |
+
}
|
| 12 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Model/ClxEmail.php
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_ClxEmail extends Mage_Core_Model_Email_Template {
|
| 4 |
+
/* send mail function */
|
| 5 |
+
|
| 6 |
+
public function sendEmail($templateId, $email, $name, $subject, $params = array()) {
|
| 7 |
+
/* send mail sender details */
|
| 8 |
+
// ident_sales - sales representative
|
| 9 |
+
// ident_general - Owner
|
| 10 |
+
// $email - customer email
|
| 11 |
+
// $name - customer name
|
| 12 |
+
// $params - pass parameters to template
|
| 13 |
+
$sender = array('name' => Mage::getStoreConfig('trans_email/ident_sales/name'), 'email' => Mage::getStoreConfig('trans_email/ident_sales/email'));
|
| 14 |
+
|
| 15 |
+
$this->setDesignConfig(array('area' => 'frontend', 'store' => $this->getDesignConfig()->getStore()))
|
| 16 |
+
->setTemplateSubject($subject)
|
| 17 |
+
->sendTransactional(
|
| 18 |
+
$templateId, $sender, $email, $name, $params
|
| 19 |
+
);
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Model/Clxloanappdtls.php
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_Clxloanappdtls extends Mage_Core_Model_Abstract {
|
| 4 |
+
|
| 5 |
+
public function _construct() {
|
| 6 |
+
parent::_construct();
|
| 7 |
+
$this->_init('clxfunding/clxloanappdtls');
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Model/Clxloanofferdetails.php
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_Clxloanofferdetails extends Mage_Core_Model_Abstract {
|
| 4 |
+
|
| 5 |
+
public function _construct() {
|
| 6 |
+
parent::_construct();
|
| 7 |
+
$this->_init('clxfunding/clxloanofferdetails');
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Model/CronOrderStatusUpdate.php
ADDED
|
@@ -0,0 +1,334 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_CronOrderStatusUpdate {
|
| 4 |
+
|
| 5 |
+
public function updateClxOrderStatus() {
|
| 6 |
+
$QueueResponse = Mage::helper('clxfunding')->clxQueueingSystem(); //this will call queueing system to get loan application status
|
| 7 |
+
|
| 8 |
+
if(isset($QueueResponse) && $QueueResponse && isset($QueueResponse->messages) && is_array($QueueResponse->messages))
|
| 9 |
+
{
|
| 10 |
+
foreach($QueueResponse->messages as $res)
|
| 11 |
+
{
|
| 12 |
+
$body = json_decode('{'.$res->body.'}');
|
| 13 |
+
if (isset($body->application_status) && isset($body->source_application_Id) && !is_null($body->source_application_Id)) {
|
| 14 |
+
$this->commonFunctionToUpdateStatus($body);
|
| 15 |
+
}
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
public function commonFunctionToUpdateStatus($QueueResponse) {
|
| 21 |
+
$table_prefix = Mage::getConfig()->getTablePrefix();
|
| 22 |
+
$clx_table = $table_prefix . 'clx_loan_application_detail';
|
| 23 |
+
$applicationId = $QueueResponse->source_application_Id;
|
| 24 |
+
$tmpvar = explode('-',$applicationId);
|
| 25 |
+
$applicationId = $tmpvar[0].'-'.ltrim($tmpvar[1], '0');
|
| 26 |
+
$clxOrderStatus = $QueueResponse->application_status;
|
| 27 |
+
if (isset($applicationId) && !empty($applicationId) && isset($clxOrderStatus) && !empty($clxOrderStatus)) {
|
| 28 |
+
$connectionRead = Mage::getSingleton('core/resource')->getConnection('core_read');
|
| 29 |
+
$select = $connectionRead->select()
|
| 30 |
+
->from($clx_table, array('*'))
|
| 31 |
+
->where('application_id=? and status!="FUNDED" and status!="LENDER_REJECTED" and status!="REJECTED" and status!="CUSTOMER_REJECTED" and status!="MERCHANT_REJECTED"', $applicationId);
|
| 32 |
+
$row = $connectionRead->fetchRow($select); //return rows
|
| 33 |
+
if (isset($row) && !empty($row) && is_array($row) && isset($row['clx_loan_application_detail_id'])) {
|
| 34 |
+
if (isset($QueueResponse->loan_offers[0]) && !empty($QueueResponse->loan_offers[0]) && count($QueueResponse->loan_offers[0]) && $row['approvalRequired_flag'] && $row['mail_sent'] != 1 && $row['status'] != 'CUSTOMER_ACCEPTED') {
|
| 35 |
+
if (isset($row['order_id']) && $row['order_id']) {
|
| 36 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($row['order_id']);//This will fetch order details & $row['order_id'] is order number
|
| 37 |
+
if (isset($order) && !empty($order)) {
|
| 38 |
+
if (isset($order['customer_email']) && !empty($order['customer_email']) && isset($order['customer_firstname']) && !empty($order['customer_firstname']) && isset($order['customer_lastname']) && !empty($order['customer_lastname'])) {
|
| 39 |
+
/* save loan offer details */
|
| 40 |
+
$loan_offer_data = array();
|
| 41 |
+
if (isset($QueueResponse->loan_offers[0]->id) && !empty($QueueResponse->loan_offers[0]->id)) {
|
| 42 |
+
$loan_offer_data['offerId'] = $QueueResponse->loan_offers[0]->id;
|
| 43 |
+
}
|
| 44 |
+
if (isset($QueueResponse->loan_offers[0]->loanRate) && !empty($QueueResponse->loan_offers[0]->loanRate)) {
|
| 45 |
+
$loan_offer_data['loanRate'] = $QueueResponse->loan_offers[0]->loanRate;
|
| 46 |
+
}
|
| 47 |
+
if (isset($QueueResponse->loan_offers[0]->loanTerm) && !empty($QueueResponse->loan_offers[0]->loanTerm)) {
|
| 48 |
+
$loan_offer_data['loanTerm'] = $QueueResponse->loan_offers[0]->loanTerm;
|
| 49 |
+
}
|
| 50 |
+
if (isset($QueueResponse->loan_offers[0]->loanAPR) && !empty($QueueResponse->loan_offers[0]->loanAPR)) {
|
| 51 |
+
$loan_offer_data['loanAPR'] = $QueueResponse->loan_offers[0]->loanAPR;
|
| 52 |
+
}
|
| 53 |
+
if (isset($QueueResponse->loan_offers[0]->paymentFrequency) && !empty($QueueResponse->loan_offers[0]->paymentFrequency)) {
|
| 54 |
+
$loan_offer_data['paymentFrequency'] = $QueueResponse->loan_offers[0]->paymentFrequency;
|
| 55 |
+
}
|
| 56 |
+
if (isset($QueueResponse->loan_offers[0]->paymentAmount) && !empty($QueueResponse->loan_offers[0]->paymentAmount)) {
|
| 57 |
+
$loan_offer_data['paymentAmount'] = $QueueResponse->loan_offers[0]->paymentAmount;
|
| 58 |
+
}
|
| 59 |
+
if (isset($QueueResponse->loan_offers[0]->downPayment) && !empty($QueueResponse->loan_offers[0]->downPayment)) {
|
| 60 |
+
$loan_offer_data['downPayment'] = $QueueResponse->loan_offers[0]->downPayment;
|
| 61 |
+
}
|
| 62 |
+
if (isset($QueueResponse->loan_offers[0]->showSelectedOfferUrl) && !empty($QueueResponse->loan_offers[0]->showSelectedOfferUrl)) {
|
| 63 |
+
$loan_offer_data['showSelectedOfferUrl'] = $QueueResponse->loan_offers[0]->showSelectedOfferUrl;
|
| 64 |
+
}
|
| 65 |
+
if (isset($QueueResponse->loan_offers[0]->lenderName) && !empty($QueueResponse->loan_offers[0]->lenderName)) {
|
| 66 |
+
$loan_offer_data['lenderName'] = $QueueResponse->loan_offers[0]->lenderName;
|
| 67 |
+
}
|
| 68 |
+
$loan_offer_data['loan_application_id'] = $row['clx_loan_application_detail_id'];
|
| 69 |
+
if (isset($loan_offer_data) && !empty($loan_offer_data)) {
|
| 70 |
+
$new_model = Mage::getModel('clxfunding/clxloanofferdetails')->setData($loan_offer_data);
|
| 71 |
+
try {
|
| 72 |
+
$new_model->save();
|
| 73 |
+
} catch (Exception $e) {
|
| 74 |
+
Mage::logException($e);
|
| 75 |
+
}
|
| 76 |
+
}
|
| 77 |
+
/* save loan offer details */
|
| 78 |
+
|
| 79 |
+
$e_applicationId = base64_encode(Mage::helper('core')->encrypt($applicationId));
|
| 80 |
+
$e_offerId = base64_encode(Mage::helper('core')->encrypt($QueueResponse->loan_offers[0]->id));
|
| 81 |
+
$templateData = array(
|
| 82 |
+
'firstName' => uc_words(strtolower($order['customer_firstname'])),
|
| 83 |
+
'lastName' => uc_words(strtolower($order['customer_lastname'])),
|
| 84 |
+
'MonthlyPayment' => $QueueResponse->loan_offers[0]->paymentAmount,
|
| 85 |
+
'APR' => $QueueResponse->loan_offers[0]->loanAPR,
|
| 86 |
+
'Terms' => $QueueResponse->loan_offers[0]->loanTerm,
|
| 87 |
+
'orderNumber' => $row['order_id'],
|
| 88 |
+
'offerAcceptRedirectUrl' => Mage::getBaseUrl() . 'clxfunding/ClxAPI/loanOfferAccept/applicationId/' . $e_applicationId . '/loanOfferId/' . $e_offerId,
|
| 89 |
+
'offerRejectRedirectUrl' => Mage::getBaseUrl() . 'clxfunding/ClxAPI/loanOfferReject/applicationId/' . $e_applicationId . '/loanOfferId/' . $e_offerId
|
| 90 |
+
);
|
| 91 |
+
if (isset($QueueResponse->loan_offers[0]->lenderName) && $QueueResponse->loan_offers[0]->lenderName) {
|
| 92 |
+
$templateData['lenderName'] = $QueueResponse->loan_offers[0]->lenderName;
|
| 93 |
+
} else {
|
| 94 |
+
$templateData['lenderName'] = 'Lender';
|
| 95 |
+
}
|
| 96 |
+
if (isset($QueueResponse->loan_offers[0]->ShowSelectedOfferUrl) && $QueueResponse->loan_offers[0]->ShowSelectedOfferUrl) {
|
| 97 |
+
$templateData['MoreDetails'] = '<a href=' . $QueueResponse->loan_offers[0]->ShowSelectedOfferUrl . ' target="_blank">More details</a>';
|
| 98 |
+
} else {
|
| 99 |
+
$templateData['MoreDetails'] = '-';
|
| 100 |
+
}
|
| 101 |
+
if (isset($QueueResponse->loan_offers[0]->loanRate) && !empty($QueueResponse->loan_offers[0]->loanRate)) {
|
| 102 |
+
$templateData['loanRate'] = $QueueResponse->loan_offers[0]->loanRate.'%';
|
| 103 |
+
} else {
|
| 104 |
+
$templateData['loanRate'] = '-';
|
| 105 |
+
}
|
| 106 |
+
|
| 107 |
+
|
| 108 |
+
/* send loan offer mail notification to customer */
|
| 109 |
+
try {
|
| 110 |
+
Mage::getModel('clxfunding/ClxEmail')->sendEmail(
|
| 111 |
+
'clx_loan_offerdetail_email_template', $order['customer_email'], uc_words(strtolower($order['customer_firstname'])) . ' ' . uc_words(strtolower($order['customer_lastname'])), 'Loan Offer Details', $templateData
|
| 112 |
+
);
|
| 113 |
+
|
| 114 |
+
$connectionWrite = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 115 |
+
$connectionWrite->beginTransaction();
|
| 116 |
+
$data = array();
|
| 117 |
+
$data['status'] = $clxOrderStatus;
|
| 118 |
+
$data['update_time'] = date('Y-m-d H:i:s');
|
| 119 |
+
$data['offer_mail_sent_time'] = date('Y-m-d H:i:s');
|
| 120 |
+
$data['prev_offer_mail_sent_time'] = date('Y-m-d H:i:s');
|
| 121 |
+
$data['mail_sent'] = 1;
|
| 122 |
+
$where = $connectionWrite->quoteInto('clx_loan_application_detail_id =?', $row['clx_loan_application_detail_id']);
|
| 123 |
+
$connectionWrite->update($clx_table, $data, $where);
|
| 124 |
+
$connectionWrite->commit();
|
| 125 |
+
} catch (Exception $ex) {
|
| 126 |
+
Mage::logException($ex);
|
| 127 |
+
}
|
| 128 |
+
/* send loan offer mail notification to customer */
|
| 129 |
+
}
|
| 130 |
+
}
|
| 131 |
+
}
|
| 132 |
+
} else /* response without loan offer */ {
|
| 133 |
+
if (isset($row['order_id']) && $row['order_id']) {
|
| 134 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($row['order_id']);
|
| 135 |
+
if (isset($order) && !empty($order)) {
|
| 136 |
+
if ($clxOrderStatus == "FUNDED") {
|
| 137 |
+
$parameters1 = array(
|
| 138 |
+
'applicationID' => $applicationId,
|
| 139 |
+
'orderNumber' => $row['order_id'], //$row['order_id'] is order number
|
| 140 |
+
);
|
| 141 |
+
Mage::getModel('clxfunding/ClxEmail')->sendEmail(
|
| 142 |
+
'clx_loan_funded_email_template', Mage::getStoreConfig('trans_email/ident_sales/email'), Mage::getStoreConfig('trans_email/ident_sales/name'), 'Loan Offer Funded', $parameters1
|
| 143 |
+
);
|
| 144 |
+
}
|
| 145 |
+
if (($clxOrderStatus == "REJECTED") || ($clxOrderStatus == "LENDER_REJECTED")) {
|
| 146 |
+
/* Mail notification to Merchant about loan offer rejection */
|
| 147 |
+
$parameters = array('applicationId' => $applicationId, 'orderNumber' => $row['order_id'], 'customerName' => ucfirst(strtolower($row['firstName'])) . ' ' . ucfirst(strtolower($row['lastName'])));
|
| 148 |
+
Mage::getModel('clxfunding/ClxEmail')->sendEmail(
|
| 149 |
+
'clx_loan_offerreject_email_template', Mage::getStoreConfig('trans_email/ident_sales/email'), Mage::getStoreConfig('trans_email/ident_sales/name'), 'Loan Application Rejected', $parameters
|
| 150 |
+
);
|
| 151 |
+
|
| 152 |
+
/* Order Cancel */
|
| 153 |
+
if (isset($row['order_id']) && !empty($row['order_id'])) {
|
| 154 |
+
$orderModel = Mage::getModel('sales/order');
|
| 155 |
+
$orderModel->loadByIncrementId($row['order_id']);
|
| 156 |
+
if ($orderModel->canCancel()) {
|
| 157 |
+
$orderModel->cancel();
|
| 158 |
+
$orderModel->setStatus('Reason for cancellation : Lender rejected the loan offer');
|
| 159 |
+
$orderModel->save();
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
/* Order Cancel */
|
| 163 |
+
}
|
| 164 |
+
/* update custom table with current application status */
|
| 165 |
+
$connectionWrite = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 166 |
+
$connectionWrite->beginTransaction();
|
| 167 |
+
$data = array();
|
| 168 |
+
$data['status'] = $clxOrderStatus;
|
| 169 |
+
$data['update_time'] = date('Y-m-d H:i:s');
|
| 170 |
+
$where = $connectionWrite->quoteInto('clx_loan_application_detail_id =?', $row['clx_loan_application_detail_id']);
|
| 171 |
+
$connectionWrite->update($clx_table, $data, $where);
|
| 172 |
+
$connectionWrite->commit();
|
| 173 |
+
}
|
| 174 |
+
}
|
| 175 |
+
}
|
| 176 |
+
}
|
| 177 |
+
} else {
|
| 178 |
+
Mage::log("CLX Message : Invalid reponse");
|
| 179 |
+
}
|
| 180 |
+
}
|
| 181 |
+
|
| 182 |
+
/* this function is store loan application details on order save after create loan application or loan offer accept */
|
| 183 |
+
|
| 184 |
+
public function saveLoanApplicationDetails($data) {
|
| 185 |
+
$data['created_time'] = date('Y-m-d H:i:s');
|
| 186 |
+
$data['update_time'] = date('Y-m-d H:i:s');
|
| 187 |
+
$model = Mage::getModel('clxfunding/clxloanappdtls')->setData($data);
|
| 188 |
+
try {
|
| 189 |
+
$model->save();
|
| 190 |
+
if (isset($data['offer_acceptance_flag']) && !empty($data['offer_acceptance_flag']) && $data['offer_acceptance_flag']) {
|
| 191 |
+
$last_insert_id = $model->getId();
|
| 192 |
+
if (isset($last_insert_id) && !empty($last_insert_id)) {
|
| 193 |
+
$loan_offer_details = array();
|
| 194 |
+
$loan_offer_details['loanTerm'] = $data['loanTerms'];
|
| 195 |
+
$loan_offer_details['loanAPR'] = $data['loanAPR'];
|
| 196 |
+
$loan_offer_details['loanRate'] = $data['loanRate'];
|
| 197 |
+
$loan_offer_details['paymentFrequency'] = $data['paymentFrequency'];
|
| 198 |
+
$loan_offer_details['paymentAmount'] = $data['paymentAmount'];
|
| 199 |
+
$loan_offer_details['downPayment'] = $data['downPayment'];
|
| 200 |
+
$loan_offer_details['offerId'] = $data['loanOfferId'];
|
| 201 |
+
$loan_offer_details['showSelectedOfferUrl'] = $data['showSelectedOfferUrl'];
|
| 202 |
+
$loan_offer_details['lenderName'] = $data['lenderName'];
|
| 203 |
+
$loan_offer_details['loan_application_id'] = $last_insert_id;
|
| 204 |
+
|
| 205 |
+
$loan_offer_model = Mage::getModel('clxfunding/clxloanofferdetails')->setData($loan_offer_details);
|
| 206 |
+
try {
|
| 207 |
+
$loan_offer_model->save();
|
| 208 |
+
} catch (Exception $e) {
|
| 209 |
+
Mage::logException($e);
|
| 210 |
+
}
|
| 211 |
+
} else {
|
| 212 |
+
Mage::log('Clx Error : unable to save loan application details');
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
} catch (Exception $e) {
|
| 216 |
+
Mage::logException($e);
|
| 217 |
+
}
|
| 218 |
+
}
|
| 219 |
+
|
| 220 |
+
public function cancelOrderAfterTimeExpire() {
|
| 221 |
+
$table_prefix = Mage::getConfig()->getTablePrefix();
|
| 222 |
+
$clx_table = $table_prefix . 'clx_loan_application_detail';
|
| 223 |
+
$connectionRead = Mage::getSingleton('core/resource')->getConnection('core_read');
|
| 224 |
+
$select = $connectionRead->select()
|
| 225 |
+
->from($clx_table, array('*'))
|
| 226 |
+
->where('approvalRequired_flag=1 and status!="FUNDED" and status!="LENDER_REJECTED" and status!="CUSTOMER_REJECTED" and status!="CUSTOMER_ACCEPTED" and status!="MERCHANT_REJECTED" and status!="REJECTED" and mail_sent=1');
|
| 227 |
+
$row = $connectionRead->fetchAll($select); //return rows
|
| 228 |
+
|
| 229 |
+
if (isset($row) && !empty($row) && is_array($row)) {
|
| 230 |
+
for ($i = 0; $i < count($row); $i++) {
|
| 231 |
+
if (isset($row[$i]['offer_mail_sent_time']) && !is_null($row[$i]['offer_mail_sent_time']) && isset($row[$i]['prev_offer_mail_sent_time']) && !is_null($row[$i]['prev_offer_mail_sent_time']) && isset($row[$i]['approvalRequired_flag']) && isset($row[$i]['status']) && $row[$i]['approvalRequired_flag'] == 1 && $row[$i]['status'] != 'CUSTOMER_REJECTED' && isset($row[$i]['order_id']) && !empty($row[$i]['order_id'])) {
|
| 232 |
+
$timeframe = Mage::getStoreConfig('payment/clxfunding/loan_offer_time_frame');
|
| 233 |
+
$daily_mails_per_day = 1;
|
| 234 |
+
|
| 235 |
+
($daily_mails_per_day > 0) ? $daily_mails_per_day = round($daily_mails_per_day) : $daily_mails_per_day = 1; //Value should not be less than 1
|
| 236 |
+
|
| 237 |
+
$time_frame_in_hours = $timeframe * 24;
|
| 238 |
+
$mail_sent_datetime = $row[$i]['offer_mail_sent_time'];
|
| 239 |
+
$prev_mail_sent_datetime = $row[$i]['prev_offer_mail_sent_time'];
|
| 240 |
+
|
| 241 |
+
$current_datetime = date('Y-m-d H:i:s');
|
| 242 |
+
$m_hours = round((strtotime($current_datetime) - strtotime($mail_sent_datetime)) / 3600, 1);
|
| 243 |
+
$daily_hours = round((strtotime($current_datetime) - strtotime($prev_mail_sent_datetime)) / 3600, 1);
|
| 244 |
+
|
| 245 |
+
|
| 246 |
+
if (isset($m_hours) && isset($time_frame_in_hours) && isset($daily_hours) && $m_hours >= $time_frame_in_hours) {
|
| 247 |
+
$connectionWrite = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 248 |
+
$connectionWrite->beginTransaction();
|
| 249 |
+
$data = array();
|
| 250 |
+
$data['status'] = "MERCHANT_REJECTED";
|
| 251 |
+
$data['update_time'] = date('Y-m-d H:i:s');
|
| 252 |
+
|
| 253 |
+
$orderModel = Mage::getModel('sales/order');
|
| 254 |
+
$orderModel->loadByIncrementId($row[$i]['order_id']);
|
| 255 |
+
if ($orderModel->canCancel()) {
|
| 256 |
+
$orderModel->cancel();
|
| 257 |
+
$orderModel->setStatus('canceled_pendings');
|
| 258 |
+
$orderModel->save();
|
| 259 |
+
}
|
| 260 |
+
$where = $connectionWrite->quoteInto('clx_loan_application_detail_id =?', $row[$i]['clx_loan_application_detail_id']);
|
| 261 |
+
$connectionWrite->update($clx_table, $data, $where);
|
| 262 |
+
$connectionWrite->commit();
|
| 263 |
+
|
| 264 |
+
|
| 265 |
+
$parameters = array('applicationId' => $row[$i]['application_id'], 'orderNumber' => $row[$i]['order_id']);
|
| 266 |
+
Mage::getModel('clxfunding/ClxEmail')->sendEmail(
|
| 267 |
+
'clx_auto_order_cancel_email_template', Mage::getStoreConfig('trans_email/ident_sales/email'), Mage::getStoreConfig('trans_email/ident_sales/name'), 'Clx Auto Order Canceled', $parameters
|
| 268 |
+
);
|
| 269 |
+
} else if (isset($m_hours) && isset($time_frame_in_hours) && isset($daily_hours) && $m_hours < $time_frame_in_hours && $daily_hours >= (24 / $daily_mails_per_day)) {
|
| 270 |
+
$connectionRead = Mage::getSingleton('core/resource')->getConnection('core_read');
|
| 271 |
+
$select = $connectionRead->select()
|
| 272 |
+
->from($table_prefix . 'clx_loan_offer_detail', array('*'))
|
| 273 |
+
->where('loan_application_id=?', $row[$i]['clx_loan_application_detail_id']);
|
| 274 |
+
|
| 275 |
+
$customer_loan_offer_row = $connectionRead->fetchRow($select); //return rows
|
| 276 |
+
|
| 277 |
+
if (isset($customer_loan_offer_row) && !empty($customer_loan_offer_row)) {
|
| 278 |
+
if (isset($customer_loan_offer_row['clx_loan_offer_detail_id'])) {
|
| 279 |
+
$order_h = Mage::getModel('sales/order')->loadByIncrementId($row[$i]['order_id']);
|
| 280 |
+
if (isset($order_h) && !empty($order_h)) {
|
| 281 |
+
$e_applicationId = base64_encode(Mage::helper('core')->encrypt($row[$i]['application_id']));
|
| 282 |
+
$e_offerId = base64_encode(Mage::helper('core')->encrypt($customer_loan_offer_row['offerId']));
|
| 283 |
+
$templateData = array(
|
| 284 |
+
'firstName' => uc_words(strtolower($order_h['customer_firstname'])),
|
| 285 |
+
'lastName' => uc_words(strtolower($order_h['customer_lastname'])),
|
| 286 |
+
'MonthlyPayment' => $customer_loan_offer_row['paymentAmount'],
|
| 287 |
+
'loanRate' => $customer_loan_offer_row['loanRate'],
|
| 288 |
+
'APR' => $customer_loan_offer_row['loanAPR'],
|
| 289 |
+
'Terms' => $customer_loan_offer_row['loanTerm'],
|
| 290 |
+
'orderNumber' => $row[$i]['order_id'],
|
| 291 |
+
'offerAcceptRedirectUrl' => Mage::getBaseUrl() . 'clxfunding/ClxAPI/loanOfferAccept/applicationId/' . $e_applicationId . '/loanOfferId/' . $e_offerId,
|
| 292 |
+
'offerRejectRedirectUrl' => Mage::getBaseUrl() . 'clxfunding/ClxAPI/loanOfferReject/applicationId/' . $e_applicationId . '/loanOfferId/' . $e_offerId
|
| 293 |
+
);
|
| 294 |
+
if (isset($customer_loan_offer_row['lenderName']) && !empty($customer_loan_offer_row['lenderName'])) {
|
| 295 |
+
$templateData['lenderName'] = $customer_loan_offer_row['lenderName'];
|
| 296 |
+
} else {
|
| 297 |
+
$templateData['lenderName'] = 'Lender';
|
| 298 |
+
}
|
| 299 |
+
if (isset($customer_loan_offer_row["ShowSelectedOfferUrl"]) && !empty($customer_loan_offer_row["ShowSelectedOfferUrl"])) {
|
| 300 |
+
$templateData['MoreDetails'] = '<a href=' . $customer_loan_offer_row["ShowSelectedOfferUrl"] . ' target="_blank">More details</a>';
|
| 301 |
+
} else {
|
| 302 |
+
$templateData['MoreDetails'] = '-';
|
| 303 |
+
}
|
| 304 |
+
|
| 305 |
+
try {
|
| 306 |
+
|
| 307 |
+
Mage::getModel('clxfunding/ClxEmail')->sendEmail(
|
| 308 |
+
'clx_loan_offerdetail_email_template', $order_h['customer_email'], uc_words(strtolower($order_h['customer_firstname'])) . ' ' . uc_words(strtolower($order_h['customer_lastname'])), 'Loan Offer Details', $templateData
|
| 309 |
+
);
|
| 310 |
+
|
| 311 |
+
$connectionWrite = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 312 |
+
$connectionWrite->beginTransaction();
|
| 313 |
+
$data = array();
|
| 314 |
+
$data['update_time'] = date('Y-m-d H:i:s');
|
| 315 |
+
$data['prev_offer_mail_sent_time'] = date('Y-m-d H:i:s');
|
| 316 |
+
$data['mail_sent'] = 1;
|
| 317 |
+
$where = $connectionWrite->quoteInto('clx_loan_application_detail_id =?', $row[$i]['clx_loan_application_detail_id']);
|
| 318 |
+
$connectionWrite->update($clx_table, $data, $where);
|
| 319 |
+
$connectionWrite->commit();
|
| 320 |
+
} catch (Exception $ex) {
|
| 321 |
+
Mage::logException($ex);
|
| 322 |
+
}
|
| 323 |
+
}
|
| 324 |
+
}
|
| 325 |
+
}
|
| 326 |
+
} else {
|
| 327 |
+
|
| 328 |
+
}
|
| 329 |
+
}
|
| 330 |
+
}
|
| 331 |
+
}
|
| 332 |
+
}
|
| 333 |
+
|
| 334 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Model/Mysql4/Clxloanappdtls.php
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_Mysql4_Clxloanappdtls extends Mage_Core_Model_Mysql4_Abstract {
|
| 4 |
+
|
| 5 |
+
public function _construct() {
|
| 6 |
+
$this->_init('clxfunding/clxloanappdtls', 'clx_loan_application_detail_id');
|
| 7 |
+
}
|
| 8 |
+
|
| 9 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Model/Mysql4/Clxloanappdtls/Collection.php
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_Mysql4_Clxloanappdtls_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract {
|
| 4 |
+
|
| 5 |
+
public function _construct() {
|
| 6 |
+
//parent::__construct();
|
| 7 |
+
$this->_init('clxfunding/clxloanappdtls');
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Model/Mysql4/Clxloanofferdetails.php
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_Mysql4_Clxloanofferdetails extends Mage_Core_Model_Mysql4_Abstract {
|
| 4 |
+
|
| 5 |
+
public function _construct() {
|
| 6 |
+
$this->_init('clxfunding/clxloanofferdetails', 'clx_loan_offer_detail_id');
|
| 7 |
+
}
|
| 8 |
+
|
| 9 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Model/Mysql4/Clxloanofferdetails/Collection.php
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_Mysql4_Clxloanofferdetails_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract {
|
| 4 |
+
|
| 5 |
+
public function _construct() {
|
| 6 |
+
//parent::__construct();
|
| 7 |
+
$this->_init('clxfunding/clxloanofferdetails');
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Model/Observer.php
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_Observer {
|
| 4 |
+
/* This function to check extension configured with all required information, if not Hide CLXFunding else Show */
|
| 5 |
+
|
| 6 |
+
public function paymentMethodIsActive(Varien_Event_Observer $observer) {
|
| 7 |
+
|
| 8 |
+
/* extension core config data */
|
| 9 |
+
$isExtensionActive = Mage::getStoreConfig('payment/clxfunding/active');
|
| 10 |
+
if(isset($isExtensionActive) && !empty($isExtensionActive) && $isExtensionActive)
|
| 11 |
+
{
|
| 12 |
+
$clx_config_var = new Mage_Core_Model_Config();
|
| 13 |
+
$accountId = Mage::getStoreConfig('payment/clxfunding/account_id'); //Account ID
|
| 14 |
+
$authorizationField = Mage::getStoreConfig('payment/clxfunding/authorization_field'); //Authorization Key
|
| 15 |
+
$queue_authentication_key = Mage::getStoreConfig('payment/clxfunding/queue_authentication_key'); //Queue authentication key
|
| 16 |
+
$queue_endpoint = Mage::getStoreConfig('payment/clxfunding/queue_endpoint'); //queue endpoint
|
| 17 |
+
|
| 18 |
+
// if all required configuration parameters set then only show CLX Funding Button
|
| 19 |
+
if (!(isset($accountId) && !empty($accountId) &&
|
| 20 |
+
isset($authorizationField) && !empty($authorizationField) &&
|
| 21 |
+
isset($queue_authentication_key) && !empty($queue_authentication_key) &&
|
| 22 |
+
isset($queue_endpoint) && !empty($queue_endpoint)
|
| 23 |
+
)) {
|
| 24 |
+
|
| 25 |
+
$clx_config_var->saveConfig('payment/clxfunding/active', "0"); // to disable module (hide CLX Funding radio button)
|
| 26 |
+
}
|
| 27 |
+
}
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
/* following function for getting Queue Response & processing order accordingly */
|
| 31 |
+
|
| 32 |
+
public function checkCron() {
|
| 33 |
+
Mage::getModel('clxfunding/CronOrderStatusUpdate')->updateClxOrderStatus();
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
/* Order cancel if customer not responding to loan offer mail notification */
|
| 37 |
+
|
| 38 |
+
public function timeframeCancelOrder() {
|
| 39 |
+
Mage::getModel('clxfunding/CronOrderStatusUpdate')->cancelOrderAfterTimeExpire();
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
?>
|
app/code/community/CLExchange/Clexchangefunding/Model/Observer.php~
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_Observer {
|
| 4 |
+
/* This function to check extension configured with all required information, if not Hide CLXFunding else Show */
|
| 5 |
+
|
| 6 |
+
public function paymentMethodIsActive(Varien_Event_Observer $observer) {
|
| 7 |
+
|
| 8 |
+
/* extension core config data */
|
| 9 |
+
/*$isEnabled = Mage::helper('core')->isModuleEnabled('CLExchange_Funding');
|
| 10 |
+
if(isset($isEnabled) && !empty($isEnabled) && $isEnabled)
|
| 11 |
+
{*/
|
| 12 |
+
$clx_config_var = new Mage_Core_Model_Config();
|
| 13 |
+
$accountId = Mage::getStoreConfig('payment/clxfunding/account_id'); //Account ID
|
| 14 |
+
$authorizationField = Mage::getStoreConfig('payment/clxfunding/authorization_field'); //Authorization Key
|
| 15 |
+
$isBestOffer = Mage::getStoreConfig('payment/clxfunding/is_Best_Offer'); //isBestOffer
|
| 16 |
+
$queue_authentication_key = Mage::getStoreConfig('payment/clxfunding/queue_authentication_key'); //Queue authentication key
|
| 17 |
+
$queue_endpoint = Mage::getStoreConfig('payment/clxfunding/queue_endpoint'); //queue endpoint
|
| 18 |
+
$cron_schedule = Mage::getStoreConfig('payment/clxfunding/cron_expr'); //cron
|
| 19 |
+
// if all required configuration parameters set then only show CLX Funding Button
|
| 20 |
+
if (!(isset($accountId) && !empty($accountId) &&
|
| 21 |
+
isset($authorizationField) && !empty($authorizationField) &&
|
| 22 |
+
isset($isBestOffer) && !empty($isBestOffer) &&
|
| 23 |
+
isset($queue_authentication_key) && !empty($queue_authentication_key) &&
|
| 24 |
+
isset($queue_endpoint) && !empty($queue_endpoint) &&
|
| 25 |
+
isset($cron_schedule) && !empty($cron_schedule))) {
|
| 26 |
+
|
| 27 |
+
$clx_config_var->saveConfig('payment/clxfunding/active', "0"); // to disable module (hide CLX Funding radio button)
|
| 28 |
+
} else {
|
| 29 |
+
$clx_config_var->saveConfig('payment/clxfunding/active', "1"); // to enable module(show CLX Funding radio button )
|
| 30 |
+
}
|
| 31 |
+
// }
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
/* following function for getting Queue Response & processing order accordingly */
|
| 35 |
+
|
| 36 |
+
public function checkCron() {
|
| 37 |
+
Mage::getModel('clxfunding/CronOrderStatusUpdate')->updateClxOrderStatus();
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
/* Order cancel if customer not responding to loan offer mail notification */
|
| 41 |
+
|
| 42 |
+
public function timeframeCancelOrder() {
|
| 43 |
+
Mage::getModel('clxfunding/CronOrderStatusUpdate')->cancelOrderAfterTimeExpire();
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
?>
|
app/code/community/CLExchange/Clexchangefunding/Model/PaymentMethodTitle.php
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/* This is to restrict merchant to change title of payment method */
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_PaymentMethodTitle extends Mage_Core_Model_Config_Data {
|
| 4 |
+
/* save config in admin panel */
|
| 5 |
+
public function save() {
|
| 6 |
+
$title = $this->getValue(); //get the value from our config
|
| 7 |
+
if (isset($title) && !empty($title) && $title != 'Online Loan') {
|
| 8 |
+
Mage::throwException("CLX Message - Please contact CLExchange to change title");
|
| 9 |
+
}
|
| 10 |
+
return parent::save(); //call original save method so whatever happened
|
| 11 |
+
}
|
| 12 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Model/Paymentmethod.php
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_Paymentmethod extends Mage_Payment_Model_Method_Abstract {
|
| 4 |
+
|
| 5 |
+
protected $_code = 'clxfunding';
|
| 6 |
+
protected $_formBlockType = 'clxfunding/form_clxfunding';
|
| 7 |
+
|
| 8 |
+
public function getOrderPlaceRedirectUrl() {
|
| 9 |
+
return Mage::getUrl('clxfunding/ClxAPI/saveStaus', array('_secure' => false));
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Model/QueueAuthKeyV.php
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/* This is to restrict merchant to change title of payment method */
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_QueueAuthKeyV extends Mage_Core_Model_Config_Data {
|
| 4 |
+
/* save config in admin panel */
|
| 5 |
+
public function save() {
|
| 6 |
+
$qak_v = $this->getValue(); //get the value from our config
|
| 7 |
+
if (!isset($qak_v) || empty($qak_v)) {
|
| 8 |
+
Mage::throwException("CLExchange Payment Module - Queue Authentication Key is required");
|
| 9 |
+
}
|
| 10 |
+
return parent::save(); //call original save method so whatever happened
|
| 11 |
+
}
|
| 12 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Model/QueueEndpointV.php
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/* This is to restrict merchant to change title of payment method */
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_QueueEndpointV extends Mage_Core_Model_Config_Data {
|
| 4 |
+
/* save config in admin panel */
|
| 5 |
+
public function save() {
|
| 6 |
+
$qev = $this->getValue(); //get the value from our config
|
| 7 |
+
if (!isset($qev) || empty($qev)) {
|
| 8 |
+
Mage::throwException("CLExchange Payment Module - Queue Endpoint is required");
|
| 9 |
+
}
|
| 10 |
+
return parent::save(); //call original save method so whatever happened
|
| 11 |
+
}
|
| 12 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/Model/Resource/Setup.php
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_Model_Resource_Setup extends Mage_Core_Model_Resource_Setup {
|
| 4 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/TimeFrames.php
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_TimeFrames {
|
| 4 |
+
/* here we can update select field values of Cron Expression in admin panel under CLExchange Payment Module tab */
|
| 5 |
+
|
| 6 |
+
public function toOptionArray() {
|
| 7 |
+
return array(
|
| 8 |
+
array('value' => '1', 'label' => Mage::helper('adminhtml')->__('24 Hours (1 day)')),
|
| 9 |
+
array('value' => '2', 'label' => Mage::helper('adminhtml')->__('48 Hours (2 days)')),
|
| 10 |
+
array('value' => '3', 'label' => Mage::helper('adminhtml')->__('72 Hours (3 days)')),
|
| 11 |
+
array('value' => '4', 'label' => Mage::helper('adminhtml')->__('96 Hours (4 days)')),
|
| 12 |
+
array('value' => '5', 'label' => Mage::helper('adminhtml')->__('120 Hours (5 days)')),
|
| 13 |
+
array('value' => '6', 'label' => Mage::helper('adminhtml')->__('144 Hours (6 days)'))
|
| 14 |
+
);
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/controllers/ClxAPIController.php
ADDED
|
@@ -0,0 +1,1070 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_ClxAPIController extends Mage_Core_Controller_Front_Action {
|
| 4 |
+
/* function will receive loan application form data on click of next,previous,check eligibility,submit button */
|
| 5 |
+
|
| 6 |
+
public function loanAppProcessingAction() {
|
| 7 |
+
if ($this->getRequest()->isXmlHttpRequest()) {
|
| 8 |
+
$accountId = Mage::getStoreConfig('payment/clxfunding/account_id'); //get configured accountID from core_config_data
|
| 9 |
+
$authorizationField = Mage::getStoreConfig('payment/clxfunding/authorization_field'); //get configured authorization from core_config_data
|
| 10 |
+
$quote = Mage::getModel('checkout/session')->getQuote();
|
| 11 |
+
$quoteData = $quote->getData();
|
| 12 |
+
|
| 13 |
+
$grandTotal = $quoteData['grand_total'];
|
| 14 |
+
|
| 15 |
+
if (isset($accountId) && isset($authorizationField)) {
|
| 16 |
+
$formData = array(
|
| 17 |
+
"firstName" => trim($this->getRequest()->getParam('firstName')),
|
| 18 |
+
"lastName" => trim($this->getRequest()->getParam('lastName')),
|
| 19 |
+
"emailId" => trim($this->getRequest()->getParam('emailId')),
|
| 20 |
+
"birthDate" => trim($this->getRequest()->getParam('birthDate')),
|
| 21 |
+
"street" => trim($this->getRequest()->getParam('street')),
|
| 22 |
+
"city" => trim($this->getRequest()->getParam('city')),
|
| 23 |
+
"country" => trim($this->getRequest()->getParam('country')),
|
| 24 |
+
"state" => trim($this->getRequest()->getParam('state')),
|
| 25 |
+
"zipcode" => trim($this->getRequest()->getParam('zipcode')),
|
| 26 |
+
"loanAmount" => floatval($grandTotal),
|
| 27 |
+
"loanPurpose" => trim($this->getRequest()->getParam('loanPurpose')),
|
| 28 |
+
"loanTerms" => trim($this->getRequest()->getParam('loanTerms')),
|
| 29 |
+
"yearlyIncome" => trim($this->getRequest()->getParam('yearlyIncome')),
|
| 30 |
+
"employmentStatus" => trim($this->getRequest()->getParam('employmentStatus')),
|
| 31 |
+
"selfReportedCreditScore" => trim($this->getRequest()->getParam('selfReportedCreditScore')),
|
| 32 |
+
"mobilePhoneAreaCode" => trim($this->getRequest()->getParam('mobilePhoneAreaCode')),
|
| 33 |
+
"mobileNumber" => trim($this->getRequest()->getParam('mobileNumber')),
|
| 34 |
+
"ssn" => trim($this->getRequest()->getParam('ssn')),
|
| 35 |
+
"employerName" => trim($this->getRequest()->getParam('employerName')),
|
| 36 |
+
"occupation" => trim($this->getRequest()->getParam('occupation')),
|
| 37 |
+
"employmentStartDate" => trim($this->getRequest()->getParam('employmentStartDate')),
|
| 38 |
+
"bankName" => trim($this->getRequest()->getParam('bankName')),
|
| 39 |
+
"firstAccountHolderName" => trim($this->getRequest()->getParam('firstAccountHolderName')),
|
| 40 |
+
"bankAccountType" => trim($this->getRequest()->getParam('bankAccountType')),
|
| 41 |
+
"bankAccountNumber" => trim($this->getRequest()->getParam('bankAccountNumber')),
|
| 42 |
+
"routingNumber" => trim($this->getRequest()->getParam('routingNumber')),
|
| 43 |
+
"accountId" => $accountId,
|
| 44 |
+
"currency" => Mage::app()->getStore()->getCurrentCurrencyCode()
|
| 45 |
+
);
|
| 46 |
+
$clx_button_flag = trim($this->getRequest()->getParam('clx_btn_flag'));
|
| 47 |
+
$validation_error = array();
|
| 48 |
+
/* validators */
|
| 49 |
+
|
| 50 |
+
$name_validator = new Zend_Validate_Alpha(array('allowWhiteSpace' => true)); // only alphabets and space
|
| 51 |
+
$is_digit = new Zend_Validate_Digits();
|
| 52 |
+
$date_validator = new Zend_Validate_Date(); // date yyyy-mm-dd
|
| 53 |
+
$is_decimal = new Zend_Validate_Float(); //
|
| 54 |
+
$string_length_min_max_3 = new Zend_Validate_StringLength(array('max' => 3)); //mobilePhoneAreaCode
|
| 55 |
+
$string_length_min_max_10 = new Zend_Validate_StringLength(array('max' => 10)); //mobileNumber
|
| 56 |
+
$string_length_max_8 = new Zend_Validate_StringLength(array('max' => 8)); //zipcode
|
| 57 |
+
$string_length_max_100 = new Zend_Validate_StringLength(array('max' => 100)); //employerName(100max)
|
| 58 |
+
$string_length_max_255 = new Zend_Validate_StringLength(array('max' => 255)); //bankName(255max)
|
| 59 |
+
$string_length_max_30 = new Zend_Validate_StringLength(array('max' => 30)); //bankAccountNumber(30max)
|
| 60 |
+
$string_length_min_max_9 = new Zend_Validate_StringLength(array('min' => 9, 'max' => 9));
|
| 61 |
+
|
| 62 |
+
//$states_a = array("Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "District Of Columbia", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "American Samoa", "Guam", "Northern Mariana Islands", "Puerto Rico", "United States Minor Outlying", "Islands", "Virgin Islands");
|
| 63 |
+
//$employee_status_a = array(1 => "Self Employed", 2 => "Not Employed", 3 => "Other", 4 => "Employed");
|
| 64 |
+
//$occupation_a = array(1 => "Accountant/CPA", 2 => "Analyst", 3 => "Architect", 4 => "Attorney", 5 => "Biologist", 6 => "Bus Driver", 7 => "Car Dealer", 8 => "Chemist", 9 => "Civil Service", 10 => "Clergy", 11 => "Clerical", 12 => "Computer Programmer", 13 => "Construction", 14 => "Dentist", 16 => "Doctor", 17 => "Engineer - Chemical
", 18 => "Engineer - Electrical
", 19 => "Engineer - Mechanical
", 20 => "Executive
", 21 => "Fireman
", 22 => "Flight Attendant
", 23 => "Food Service
", 24 => "Food Service Management", 25 => "Homemaker
", 26 => "Judge
", 27 => "Laborer
", 28 => "Landscaping
", 29 => "Medical Technician", 30 => "Military Enlisted", 31 => "Military Officer", 32 => "Nurse (LPN)
", 33 => "Nurse (RN)", 34 => "Nurse's Aide
", 35 => "Pharmacist
", 36 => "Pilot - Private/Commercial
", 37 => "Police Officer/Correction Officer", 38 => "Postal Service
", 39 => "Principal
", 40 => "Professional
", 41 => "Professor
", 42 => "Psychologist
", 43 => "Realtor
", 44 => "Religious
", 45 => "Retail Management
", 47 => "Sales - Commission
", 48 => "Sales - Retail
", 49 => "Scientist
", 50 => "Administrative Assistant
", 52 => "Skilled Labor
", 53 => "Social Worker", 54 => "Student
", 61 => "Teacher
", 62 => "Teacher's Aide
", 63 => "Tradesman - Carpenter", 64 => "Tradesman - Electrician", 65 => "Tradesman - Mechanic", 66 => "Tradesman - Plumber", 67 => "Truck Driver", 69 => "Waiter/Waitress", 70 => "Other
", 71 => "Investor");
|
| 65 |
+
//$bankaccounttype_a = array("Savings", "Checking", "Credit");
|
| 66 |
+
//$loanpurpose_a = array(1 => "Debt consolidation", 2 => "Home improvement", 3 => "Business", 6 => "Auto", 7 => "Other", 8 => "Baby & adoption loans", 9 => "Boat", 10 => "Cosmetic procedures", 12 => "Green loans", 13 => "Household Expenses", 14 => "Large purchases", 15 => "Medical/Dental", 16 => "Motorcycle", 17 => "RV", 18 => "Taxes", 19 => "Vacation", 21 => "Special Occasion");
|
| 67 |
+
//$credit_score_a = array(1 => "Excellent Credit (760+)", 2 => "Good Credit (700+)", 3 => "Fair Credit (640+)", 4 => "Poor Credit");
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
$tab1_fields_key_arr = array("firstName", "lastName", "emailId", "birthDate", "mobilePhoneAreaCode", "mobileNumber", "street", "state", "city", "country", "zipcode", "yearlyIncome", "employmentStatus", "employmentStatus", "employerName", "employmentStartDate", "occupation");
|
| 71 |
+
$tab2_fields_key_arr = array("selfReportedCreditScore", "bankName", "firstAccountHolderName", "bankAccountType", "bankAccountNumber", "routingNumber", "ssn");
|
| 72 |
+
$tab3_fields_key_arr = array("loanAmount", "loanPurpose", "loanTerms");
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
|
| 76 |
+
/* Personal Information */
|
| 77 |
+
|
| 78 |
+
/* firstName */
|
| 79 |
+
if (!Zend_Validate::is($formData['firstName'], 'NotEmpty')) {
|
| 80 |
+
$validation_error['firstName'] = "This field is required";
|
| 81 |
+
} else {
|
| 82 |
+
if (!$name_validator->isValid($formData['firstName'])) {
|
| 83 |
+
$validation_error['firstName'] = "First name should be string";
|
| 84 |
+
}
|
| 85 |
+
}
|
| 86 |
+
|
| 87 |
+
/* lastName */
|
| 88 |
+
if (!Zend_Validate::is($formData['lastName'], 'NotEmpty')) {
|
| 89 |
+
$validation_error['lastName'] = "This field is required";
|
| 90 |
+
} else {
|
| 91 |
+
if (!$name_validator->isValid($formData['lastName'])) {
|
| 92 |
+
$validation_error['lastName'] = "Last name should be string";
|
| 93 |
+
}
|
| 94 |
+
}
|
| 95 |
+
|
| 96 |
+
/* emailId */
|
| 97 |
+
if (!Zend_Validate::is($formData['emailId'], 'NotEmpty')) {
|
| 98 |
+
$validation_error['emailId'] = "This field is required";
|
| 99 |
+
} else {
|
| 100 |
+
if (!Zend_Validate::is($formData['emailId'], 'EmailAddress')) {
|
| 101 |
+
$validation_error['emailId'] = "Invalid Email Address";
|
| 102 |
+
}
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
/* birthDate */
|
| 106 |
+
if (!Zend_Validate::is($formData['birthDate'], 'NotEmpty')) {
|
| 107 |
+
$validation_error['birthDate'] = "This field is required";
|
| 108 |
+
} else {
|
| 109 |
+
if (!$date_validator->isValid($formData['birthDate'])) {
|
| 110 |
+
$validation_error['birthDate'] = "Invalid date format";
|
| 111 |
+
}
|
| 112 |
+
$currentDate = date('Y-m-d');
|
| 113 |
+
if (strtotime($currentDate) > strtotime($formData['birthDate'])) {
|
| 114 |
+
$cl_age = Mage::helper('clxfunding')->getAge($formData['birthDate'], $currentDate);
|
| 115 |
+
if ($cl_age < 18) {
|
| 116 |
+
$validation_error['birthDate'] = "Age should be above 18";
|
| 117 |
+
}
|
| 118 |
+
} else {
|
| 119 |
+
$validation_error['birthDate'] = "Invalid birthDate";
|
| 120 |
+
}
|
| 121 |
+
}
|
| 122 |
+
|
| 123 |
+
/* mobilePhoneAreaCode */
|
| 124 |
+
if (!Zend_Validate::is($formData['mobilePhoneAreaCode'], 'NotEmpty')) {
|
| 125 |
+
$validation_error['mobilePhoneAreaCode'] = "This field is required";
|
| 126 |
+
} else {
|
| 127 |
+
if (!$string_length_min_max_3->isValid($formData['mobilePhoneAreaCode'])) {// 3digits only
|
| 128 |
+
$validation_error['mobilePhoneAreaCode'] = "This field should contain 3 digits only";
|
| 129 |
+
}
|
| 130 |
+
}
|
| 131 |
+
/* mobileNumber */
|
| 132 |
+
if (!Zend_Validate::is($formData['mobileNumber'], 'NotEmpty')) {
|
| 133 |
+
$validation_error['mobileNumber'] = "This field is required";
|
| 134 |
+
} else {
|
| 135 |
+
if ($is_digit->isValid($formData['mobileNumber'])) { //digits
|
| 136 |
+
if (!$string_length_min_max_10->isValid($formData['mobileNumber'])) {// 10 digits only
|
| 137 |
+
$validation_error['mobileNumber'] = "This field should contain 10 digits only";
|
| 138 |
+
}
|
| 139 |
+
} else {
|
| 140 |
+
$validation_error['mobileNumber'] = "This field should contain 10 digits only";
|
| 141 |
+
}
|
| 142 |
+
}
|
| 143 |
+
|
| 144 |
+
/* street */
|
| 145 |
+
if (!Zend_Validate::is($formData['street'], 'NotEmpty')) {
|
| 146 |
+
$validation_error['street'] = "This field is required";
|
| 147 |
+
}
|
| 148 |
+
|
| 149 |
+
/* city */
|
| 150 |
+
if (!Zend_Validate::is($formData['city'], 'NotEmpty')) {
|
| 151 |
+
$validation_error['city'] = "This field is required";
|
| 152 |
+
}
|
| 153 |
+
|
| 154 |
+
/* state */
|
| 155 |
+
if (!Zend_Validate::is($formData['state'], 'NotEmpty')) {
|
| 156 |
+
$validation_error['state'] = "This field is required";
|
| 157 |
+
} else {
|
| 158 |
+
/*if (!in_array($formData['state'], $states_a)) {
|
| 159 |
+
$validation_error['state'] = "Not a valid state";
|
| 160 |
+
}*/
|
| 161 |
+
}
|
| 162 |
+
|
| 163 |
+
/* zipcode */
|
| 164 |
+
if (!Zend_Validate::is($formData['zipcode'], 'NotEmpty')) {
|
| 165 |
+
$validation_error['zipcode'] = "This field is required";
|
| 166 |
+
} else {
|
| 167 |
+
if (!$string_length_max_8->isValid($formData['zipcode'])) {// 10 digits only
|
| 168 |
+
$validation_error['zipcode'] = "This field should contain maximum 8 digits";
|
| 169 |
+
}
|
| 170 |
+
}
|
| 171 |
+
/* country */
|
| 172 |
+
if (isset($formData['country'])) {
|
| 173 |
+
if (!Zend_Validate::is($formData['country'], 'NotEmpty')) {
|
| 174 |
+
$validation_error['country'] = "This field is required";
|
| 175 |
+
}
|
| 176 |
+
}
|
| 177 |
+
|
| 178 |
+
/* yearlyIncome */
|
| 179 |
+
if (!Zend_Validate::is($formData['yearlyIncome'], 'NotEmpty')) {
|
| 180 |
+
$validation_error['yearlyIncome'] = "This field is required";
|
| 181 |
+
} else {
|
| 182 |
+
if (!$is_decimal->isValid($formData['yearlyIncome'])) {
|
| 183 |
+
$validation_error['yearlyIncome'] = "This field contain decimal value only";
|
| 184 |
+
}
|
| 185 |
+
}
|
| 186 |
+
|
| 187 |
+
/* employmentStatus */
|
| 188 |
+
if (!Zend_Validate::is($formData['employmentStatus'], 'NotEmpty')) {
|
| 189 |
+
$validation_error['employmentStatus'] = "This field is required";
|
| 190 |
+
}
|
| 191 |
+
/* employerName */
|
| 192 |
+
if (!Zend_Validate::is($formData['employerName'], 'NotEmpty')) {
|
| 193 |
+
$validation_error['employerName'] = "This field is required";
|
| 194 |
+
} else {
|
| 195 |
+
if (!$string_length_max_100->isValid($formData['employerName'])) {// string length <=100
|
| 196 |
+
$validation_error['employerName'] = "String length should be less than 100";
|
| 197 |
+
}
|
| 198 |
+
}
|
| 199 |
+
|
| 200 |
+
/* employmentStartDate */
|
| 201 |
+
if (!Zend_Validate::is($formData['employmentStartDate'], 'NotEmpty')) {
|
| 202 |
+
$validation_error['employmentStartDate'] = "This field is required";
|
| 203 |
+
} else {
|
| 204 |
+
if (!$date_validator->isValid($formData['employmentStartDate'])) {
|
| 205 |
+
$validation_error['employmentStartDate'] = "Invalid date format";
|
| 206 |
+
}
|
| 207 |
+
/*
|
| 208 |
+
if (isset($formData['birthDate']) && (strtotime($formData['employmentStartDate']) > strtotime($formData['birthDate']))) {
|
| 209 |
+
$cl_age = Mage::helper('clxfunding')->getAge($formData['birthDate'], $formData['employmentStartDate']); // child labour 14
|
| 210 |
+
if ($cl_age < 14) {
|
| 211 |
+
$validation_error['employmentStartDate'] = "";
|
| 212 |
+
}
|
| 213 |
+
}*/
|
| 214 |
+
}
|
| 215 |
+
|
| 216 |
+
/* occupation */
|
| 217 |
+
if (!Zend_Validate::is($formData['occupation'], 'NotEmpty')) {
|
| 218 |
+
$validation_error['occupation'] = "This field is required";
|
| 219 |
+
}
|
| 220 |
+
|
| 221 |
+
/* End- Personal Information */
|
| 222 |
+
|
| 223 |
+
/* Bank Details & SSN tab fields */
|
| 224 |
+
|
| 225 |
+
/* selfReportedCreditScore */
|
| 226 |
+
if (!Zend_Validate::is($formData['selfReportedCreditScore'], 'NotEmpty')) {
|
| 227 |
+
$validation_error['selfReportedCreditScore'] = "This field is required";
|
| 228 |
+
}
|
| 229 |
+
/* bankName */
|
| 230 |
+
if (!Zend_Validate::is($formData['bankName'], 'NotEmpty')) {
|
| 231 |
+
$validation_error['bankName'] = "This field is required";
|
| 232 |
+
} else {
|
| 233 |
+
if (!$string_length_max_255->isValid($formData['employerName'])) {// string length <=255
|
| 234 |
+
$validation_error['bankName'] = "String length should be less than 255";
|
| 235 |
+
}
|
| 236 |
+
}
|
| 237 |
+
/* firstAccountHolderName */
|
| 238 |
+
if (!Zend_Validate::is($formData['firstAccountHolderName'], 'NotEmpty')) {
|
| 239 |
+
$validation_error['firstAccountHolderName'] = "This field is required";
|
| 240 |
+
} else {
|
| 241 |
+
if (!$string_length_max_255->isValid($formData['firstAccountHolderName'])) {// string length <=255
|
| 242 |
+
$validation_error['firstAccountHolderName'] = "String length should be less than 255";
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
/* bankAccountType */
|
| 246 |
+
if (!Zend_Validate::is($formData['bankAccountType'], 'NotEmpty')) {
|
| 247 |
+
$validation_error['bankAccountType'] = "This field is required";
|
| 248 |
+
}
|
| 249 |
+
|
| 250 |
+
/* bankAccountNumber */
|
| 251 |
+
if (!Zend_Validate::is($formData['bankAccountNumber'], 'NotEmpty')) {
|
| 252 |
+
$validation_error['bankAccountNumber'] = "This field is required";
|
| 253 |
+
} else {
|
| 254 |
+
if (!$string_length_max_30->isValid($formData['bankAccountNumber'])) {// string length <=255
|
| 255 |
+
$validation_error['bankAccountNumber'] = "Invalid bank account number";
|
| 256 |
+
}
|
| 257 |
+
}
|
| 258 |
+
/* routingNumber */
|
| 259 |
+
if (!Zend_Validate::is($formData['routingNumber'], 'NotEmpty')) {
|
| 260 |
+
$validation_error['routingNumber'] = "This field is required";
|
| 261 |
+
} else {
|
| 262 |
+
if (!$string_length_max_255->isValid($formData['routingNumber'])) {// string length <=255
|
| 263 |
+
$validation_error['routingNumber'] = "Invalid routing number";
|
| 264 |
+
}
|
| 265 |
+
}
|
| 266 |
+
|
| 267 |
+
|
| 268 |
+
/* ssn */
|
| 269 |
+
if (!Zend_Validate::is($formData['ssn'], 'NotEmpty')) {
|
| 270 |
+
$validation_error['ssn'] = "This field is required";
|
| 271 |
+
} else {
|
| 272 |
+
if (!$string_length_min_max_9->isValid($formData['ssn'])) {
|
| 273 |
+
$validation_error['ssn'] = "Please enter a valid 9 digit SSN (for example xxxxxxxxx)";
|
| 274 |
+
}
|
| 275 |
+
if(!$is_digit->isValid($formData['ssn']))
|
| 276 |
+
{
|
| 277 |
+
$validation_error['ssn'] = "Please enter a valid 9 digit SSN (for example xxxxxxxxx)";
|
| 278 |
+
}
|
| 279 |
+
}
|
| 280 |
+
|
| 281 |
+
/* End- Bank Details & SSN tab fields */
|
| 282 |
+
|
| 283 |
+
/* Confirmation & submit tab fields */
|
| 284 |
+
|
| 285 |
+
/* loanAmount */
|
| 286 |
+
if (!Zend_Validate::is($formData['loanAmount'], 'NotEmpty')) {
|
| 287 |
+
$validation_error['loanAmount'] = "This field is required";
|
| 288 |
+
} else {
|
| 289 |
+
if (!$is_decimal->isValid($formData['loanAmount'])) {
|
| 290 |
+
$validation_error['loanAmount'] = "Invalid loan amount";
|
| 291 |
+
}
|
| 292 |
+
}
|
| 293 |
+
|
| 294 |
+
/* loanPurpose */
|
| 295 |
+
if (!Zend_Validate::is($formData['loanPurpose'], 'NotEmpty')) {
|
| 296 |
+
$validation_error['loanPurpose'] = "This field is required";
|
| 297 |
+
}
|
| 298 |
+
|
| 299 |
+
/* loanTerms */
|
| 300 |
+
if (!Zend_Validate::is($formData['loanTerms'], 'NotEmpty')) {
|
| 301 |
+
$validation_error['loanTerms'] = "This field is required";
|
| 302 |
+
} else {
|
| 303 |
+
if (!$is_decimal->isValid($formData['loanTerms'])) {
|
| 304 |
+
$validation_error['loanTerms'] = "This field contain decimal value only";
|
| 305 |
+
}
|
| 306 |
+
}
|
| 307 |
+
|
| 308 |
+
/* End - Confirmation & submit tab fields */
|
| 309 |
+
|
| 310 |
+
/* If form contain validation errors then ajax will respond with error array */
|
| 311 |
+
if (isset($validation_error) && !empty($validation_error) && count($validation_error)) {
|
| 312 |
+
$tab_flag = array();
|
| 313 |
+
for ($i = 1; $i <= 3; $i++) {
|
| 314 |
+
for ($j = 0; $j < count(${"tab" . $i . "_fields_key_arr"}); $j++) {
|
| 315 |
+
if (isset($validation_error[${"tab" . $i . "_fields_key_arr"}[$j]]) && !empty($validation_error[${"tab" . $i . "_fields_key_arr"}[$j]])) {
|
| 316 |
+
array_push($tab_flag, $i);
|
| 317 |
+
break;
|
| 318 |
+
}
|
| 319 |
+
}
|
| 320 |
+
}
|
| 321 |
+
echo json_encode(array('valid' => FALSE, 'error_messages' => $validation_error, 'flag' => 'C', 'tab_flag' => $tab_flag));
|
| 322 |
+
}// else loan application form with no validation error
|
| 323 |
+
else {
|
| 324 |
+
if (isset($clx_button_flag) && !empty($clx_button_flag)) {
|
| 325 |
+
if ($clx_button_flag == 'check_eligibility') {
|
| 326 |
+
echo json_encode(array('valid' => TRUE, 'flag' => '2', 'redirect_url' => Mage::getBaseUrl() . 'clxfunding/ClxAPI/clxApiRequest'));
|
| 327 |
+
} else if ($clx_button_flag == 'loan_apply') {
|
| 328 |
+
echo json_encode(array('valid' => TRUE, 'flag' => '3', 'redirect_url' => Mage::getBaseUrl() . 'clxfunding/ClxAPI/clxApiRequest'));
|
| 329 |
+
} else {
|
| 330 |
+
echo json_encode(array('valid' => TRUE, 'flag' => '1', 'redirect_url' => 'undefined'));
|
| 331 |
+
}
|
| 332 |
+
} else {
|
| 333 |
+
echo json_encode(array('valid' => FALSE));
|
| 334 |
+
}
|
| 335 |
+
}
|
| 336 |
+
} else {
|
| 337 |
+
Mage::log('CLX Error : Merchant not configured with clx funding');
|
| 338 |
+
echo json_encode(array('valid' => FALSE,'flag'=>FALSE));
|
| 339 |
+
}
|
| 340 |
+
}
|
| 341 |
+
}
|
| 342 |
+
|
| 343 |
+
public function clxApiRequestAction() {
|
| 344 |
+
if ($this->getRequest()->isXmlHttpRequest()) {
|
| 345 |
+
$accountId = Mage::getStoreConfig('payment/clxfunding/account_id');
|
| 346 |
+
$authorizationField = Mage::getStoreConfig('payment/clxfunding/authorization_field');
|
| 347 |
+
$isBestOffer = Mage::getStoreConfig('payment/clxfunding/is_Best_Offer');
|
| 348 |
+
$ApprovalRequired = Mage::getStoreConfig('payment/clxfunding/approve_Required');
|
| 349 |
+
|
| 350 |
+
$quote = Mage::getModel('checkout/session')->getQuote();
|
| 351 |
+
$quoteData = $quote->getData();
|
| 352 |
+
$grandTotal = $quoteData['grand_total'];
|
| 353 |
+
|
| 354 |
+
$quoteId = Mage::getSingleton('checkout/session')->getQuoteId();
|
| 355 |
+
$applicationId = "APP-" . $quoteId;
|
| 356 |
+
if (isset($quoteId) && !empty($quoteId) && isset($applicationId) && $applicationId != 'APP-') {
|
| 357 |
+
Mage::getSingleton('checkout/session')->setClxQuoteParam($quoteId);
|
| 358 |
+
Mage::getSingleton('checkout/session')->setClxApplicationIdParam($applicationId);
|
| 359 |
+
}
|
| 360 |
+
|
| 361 |
+
$clx_button_flag = trim($this->getRequest()->getParam('clx_btn_flag'));
|
| 362 |
+
if (isset($accountId) && isset($authorizationField) && isset($applicationId)) {
|
| 363 |
+
/* loan application form data */
|
| 364 |
+
$data = array(
|
| 365 |
+
"firstName" => trim($this->getRequest()->getParam('firstName')),
|
| 366 |
+
"lastName" => trim($this->getRequest()->getParam('lastName')),
|
| 367 |
+
"emailId" => trim($this->getRequest()->getParam('emailId')),
|
| 368 |
+
"birthDate" => trim($this->getRequest()->getParam('birthDate')),
|
| 369 |
+
"street" => trim($this->getRequest()->getParam('street')),
|
| 370 |
+
"city" => trim($this->getRequest()->getParam('city')),
|
| 371 |
+
"country" => trim($this->getRequest()->getParam('country')),
|
| 372 |
+
"state" => trim($this->getRequest()->getParam('state')),
|
| 373 |
+
"zipcode" => trim($this->getRequest()->getParam('zipcode')),
|
| 374 |
+
"loanAmount" => floatval($grandTotal),
|
| 375 |
+
"loanPurpose" => trim($this->getRequest()->getParam('loanPurpose')),
|
| 376 |
+
"loanTerms" => floatval(trim($this->getRequest()->getParam('loanTerms'))),
|
| 377 |
+
"yearlyIncome" => floatval(trim($this->getRequest()->getParam('yearlyIncome'))),
|
| 378 |
+
"employmentStatus" => trim($this->getRequest()->getParam('employmentStatus')),
|
| 379 |
+
"selfReportedCreditScore" => intval(trim($this->getRequest()->getParam('selfReportedCreditScore'))),
|
| 380 |
+
"mobilePhoneAreaCode" => trim($this->getRequest()->getParam('mobilePhoneAreaCode')),
|
| 381 |
+
"mobileNumber" => trim($this->getRequest()->getParam('mobileNumber')),
|
| 382 |
+
"ssn" => trim($this->getRequest()->getParam('ssn')),
|
| 383 |
+
"employerName" => trim($this->getRequest()->getParam('employerName')),
|
| 384 |
+
"occupation" => trim($this->getRequest()->getParam('occupation')),
|
| 385 |
+
"employmentStartDate" => trim($this->getRequest()->getParam('employmentStartDate')),
|
| 386 |
+
"bankName" => trim($this->getRequest()->getParam('bankName')),
|
| 387 |
+
"firstAccountHolderName" => trim($this->getRequest()->getParam('firstAccountHolderName')),
|
| 388 |
+
"bankAccountType" => trim($this->getRequest()->getParam('bankAccountType')),
|
| 389 |
+
"bankAccountNumber" => trim($this->getRequest()->getParam('bankAccountNumber')),
|
| 390 |
+
"routingNumber" => trim($this->getRequest()->getParam('routingNumber')),
|
| 391 |
+
"currency" => Mage::app()->getStore()->getCurrentCurrencyCode()
|
| 392 |
+
);
|
| 393 |
+
|
| 394 |
+
/* to save loan application form data to custom clx table */
|
| 395 |
+
$clx_loan_application_data = $data;
|
| 396 |
+
$clx_loan_application_data['application_id'] = $applicationId;
|
| 397 |
+
$clx_loan_application_data['quote_id'] = $quoteId;
|
| 398 |
+
Mage::getSingleton('checkout/session')->setLoanApplicationDataToSave($clx_loan_application_data);
|
| 399 |
+
/* to save loan application form data to custom clx table */
|
| 400 |
+
|
| 401 |
+
$data['accountId'] = $accountId;
|
| 402 |
+
if (isset($clx_button_flag) && !empty($clx_button_flag)) {
|
| 403 |
+
if ($clx_button_flag == 'check_eligibility') {
|
| 404 |
+
$data['isBestOffer'] = (isset($isBestOffer) && $isBestOffer=="1")?TRUE:FALSE;
|
| 405 |
+
//$data['applicationId'] = $applicationId;
|
| 406 |
+
$url = "http://portal.clexchange.io/api/loan-offers";
|
| 407 |
+
$page = "/api/loan-offers";
|
| 408 |
+
$result = Mage::helper('clxfunding')->mastercurlRequestToClxLoanOfferApi($url, $page, $data, $authorizationField);
|
| 409 |
+
if (isset($result['valid']) && $result['valid']) {
|
| 410 |
+
if (isset($result['result'])) {
|
| 411 |
+
$api_response = json_decode($result['result']);
|
| 412 |
+
if (isset($api_response->application_status) && $api_response->application_status == "REJECTED") {
|
| 413 |
+
if (isset($api_response->errors[0]) && !empty($api_response->errors[0])) {
|
| 414 |
+
if (isset($api_response->errors[0]->errorCode) && !empty($api_response->errors[0]->errorCode) && $api_response->errors[0]->errorCode == 'UNAUTHORIZED') {
|
| 415 |
+
$errorMessage = "Either authorization key is invalid or no account exist for passed accountId";
|
| 416 |
+
if (isset($api_response->errors[0]->errorMessage) && !empty($api_response->errors[0]->errorMessage)) {
|
| 417 |
+
$errorMessage = $api_response->errors[0]->errorMessage;
|
| 418 |
+
}
|
| 419 |
+
try {
|
| 420 |
+
Mage::getModel('clxfunding/ClxEmail')->sendEmail(
|
| 421 |
+
'clx_error_email_template', Mage::getStoreConfig('trans_email/ident_sales/email'), Mage::getStoreConfig('trans_email/ident_sales/name'), 'Clx Error', array('clxError' => $errorMessage)
|
| 422 |
+
);
|
| 423 |
+
} catch (Exception $ex) {
|
| 424 |
+
Mage::logException($ex);
|
| 425 |
+
}
|
| 426 |
+
}
|
| 427 |
+
}
|
| 428 |
+
}
|
| 429 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/loan_offer_response.phtml'));
|
| 430 |
+
$block->setLoanOffers(json_decode($result['result']));
|
| 431 |
+
$myHtml = $block->toHtml();
|
| 432 |
+
echo json_encode(array('valid' => TRUE, 'offer_view' => $myHtml));
|
| 433 |
+
}
|
| 434 |
+
} else {
|
| 435 |
+
Mage::log('CLX Error : Loan offer api has request error ');
|
| 436 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 437 |
+
}
|
| 438 |
+
} else {
|
| 439 |
+
|
| 440 |
+
$url = "http://portal.clexchange.io/api/loan-applications";
|
| 441 |
+
$page = "/api/loan-applications";
|
| 442 |
+
$data['applicationId'] = $applicationId;
|
| 443 |
+
$result = Mage::helper('clxfunding')->mastercurlRequestToClxLoanApplicationApi($url, $page, $data, $authorizationField);
|
| 444 |
+
if (isset($result['valid']) && $result['valid']) {
|
| 445 |
+
if (isset($result['result'])) {
|
| 446 |
+
$api_response = json_decode($result['result']);
|
| 447 |
+
if (isset($api_response->application_status) && $api_response->application_status == "REJECTED") {
|
| 448 |
+
if (isset($api_response->errors[0]) && !empty($api_response->errors[0])) {
|
| 449 |
+
if (isset($api_response->errors[0]->errorCode) && !empty($api_response->errors[0]->errorCode) && $api_response->errors[0]->errorCode == 'UNAUTHORIZED') {
|
| 450 |
+
$errorMessage = "Either authorization key is invalid or no account exist for passed accountId";
|
| 451 |
+
if (isset($api_response->errors[0]->errorMessage) && !empty($api_response->errors[0]->errorMessage)) {
|
| 452 |
+
$errorMessage = $api_response->errors[0]->errorMessage;
|
| 453 |
+
}
|
| 454 |
+
try {
|
| 455 |
+
Mage::getModel('clxfunding/ClxEmail')->sendEmail(
|
| 456 |
+
'clx_error_email_template', Mage::getStoreConfig('trans_email/ident_sales/email'), Mage::getStoreConfig('trans_email/ident_sales/name'), 'Clx Error', array('clxError' => $errorMessage)
|
| 457 |
+
);
|
| 458 |
+
} catch (Exception $ex) {
|
| 459 |
+
Mage::logException($ex);
|
| 460 |
+
}
|
| 461 |
+
}
|
| 462 |
+
}
|
| 463 |
+
}
|
| 464 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/loanapplicationstatus.phtml'));
|
| 465 |
+
$block->setLoanApplication(json_decode($result['result']));
|
| 466 |
+
$block->setApprovalRequired($ApprovalRequired);// Approval Required
|
| 467 |
+
$myHtml = $block->toHtml();
|
| 468 |
+
echo json_encode(array('valid' => TRUE, 'offer_view' => $myHtml));
|
| 469 |
+
}
|
| 470 |
+
} else {
|
| 471 |
+
Mage::log('CLX Error : Loan application api has request error ');
|
| 472 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 473 |
+
}
|
| 474 |
+
}
|
| 475 |
+
}
|
| 476 |
+
}
|
| 477 |
+
else
|
| 478 |
+
{
|
| 479 |
+
echo json_encode(array('valid' => FALSE));
|
| 480 |
+
}
|
| 481 |
+
} else {
|
| 482 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 483 |
+
}
|
| 484 |
+
}
|
| 485 |
+
|
| 486 |
+
public function storeSelectedLoanOfferAction() {
|
| 487 |
+
if ($this->getRequest()->isXmlHttpRequest()) {
|
| 488 |
+
$data = serialize($this->getRequest()->getParams());
|
| 489 |
+
$clx_btn_flag = $this->getRequest()->getParam('clx_btn_flag');
|
| 490 |
+
$loanOfferId = $this->getRequest()->getParam('loanOfferId');
|
| 491 |
+
if (isset($clx_btn_flag) && !empty($clx_btn_flag) && $clx_btn_flag == "check_eligibility" && isset($loanOfferId) && !empty($loanOfferId) && isset($data) && !empty($data)) {
|
| 492 |
+
Mage::getSingleton('checkout/session')->setLoanApplicationData($data);
|
| 493 |
+
Mage::getSingleton('checkout/session')->setLoanOfferFlag(true);
|
| 494 |
+
$check_set = Mage::getSingleton('checkout/session')->getLoanOfferFlag();
|
| 495 |
+
if (isset($check_set)) {
|
| 496 |
+
echo json_encode(array('valid' => TRUE));
|
| 497 |
+
} else {
|
| 498 |
+
echo json_encode(array('valid' => FALSE));
|
| 499 |
+
}
|
| 500 |
+
} else {
|
| 501 |
+
echo json_encode(array('valid' => FALSE));
|
| 502 |
+
}
|
| 503 |
+
} else {
|
| 504 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 505 |
+
}
|
| 506 |
+
}
|
| 507 |
+
|
| 508 |
+
public function setLoanApplicationSessAction() {
|
| 509 |
+
if ($this->getRequest()->isXmlHttpRequest()) {
|
| 510 |
+
|
| 511 |
+
Mage::getSingleton('checkout/session')->setLoanApplicationFlag(true);
|
| 512 |
+
$check_session_set = Mage::getSingleton('checkout/session')->getLoanApplicationFlag();
|
| 513 |
+
if (isset($check_session_set) && $check_session_set) {
|
| 514 |
+
echo json_encode(array('valid' => TRUE));
|
| 515 |
+
} else {
|
| 516 |
+
echo json_encode(array('valid' => FALSE));
|
| 517 |
+
}
|
| 518 |
+
} else {
|
| 519 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 520 |
+
}
|
| 521 |
+
}
|
| 522 |
+
|
| 523 |
+
function saveStausAction() {
|
| 524 |
+
$LoanOfferFlag = Mage::getSingleton('checkout/session')->getLoanOfferFlag(); // session set to track flow of loan offer
|
| 525 |
+
$loanApplicationFlag = Mage::getSingleton('checkout/session')->getLoanApplicationFlag(); // session set to track flow of loan application
|
| 526 |
+
Mage::getSingleton('checkout/session')->unsLoanOfferFlag();
|
| 527 |
+
Mage::getSingleton('checkout/session')->unsLoanApplicationFlag();
|
| 528 |
+
|
| 529 |
+
if (isset($LoanOfferFlag) && $LoanOfferFlag) {
|
| 530 |
+
$quoteId = Mage::getSingleton('checkout/session')->getQuoteId();
|
| 531 |
+
|
| 532 |
+
Mage::getSingleton('checkout/session')->setClxOfferQuoteId($quoteId);
|
| 533 |
+
Mage::getSingleton('checkout/session')->setClxOfferApplicationId("APP-" . $quoteId);
|
| 534 |
+
|
| 535 |
+
Mage::getSingleton('checkout/session')->setLoanOfferConfirmAcceptance(true);
|
| 536 |
+
|
| 537 |
+
$formData = unserialize(Mage::getSingleton('checkout/session')->getLoanApplicationData());
|
| 538 |
+
$temp_var = Mage::getSingleton('checkout/session')->getLoanOfferConfirmAcceptance();
|
| 539 |
+
$accountId = Mage::getStoreConfig('payment/clxfunding/account_id');
|
| 540 |
+
$authorizationField = Mage::getStoreConfig('payment/clxfunding/authorization_field');
|
| 541 |
+
$isBestOffer = Mage::getStoreConfig('payment/clxfunding/is_Best_Offer');
|
| 542 |
+
|
| 543 |
+
$quoteId = Mage::getSingleton('checkout/session')->getQuoteId();
|
| 544 |
+
$applicationId = "APP-" . $quoteId;
|
| 545 |
+
|
| 546 |
+
if (isset($quoteId) && !empty($quoteId) && isset($applicationId) && $applicationId != 'APP-') {
|
| 547 |
+
Mage::getSingleton('checkout/session')->setClxQuoteParam($quoteId);
|
| 548 |
+
Mage::getSingleton('checkout/session')->setClxApplicationIdParam($applicationId);
|
| 549 |
+
$quote = Mage::getModel('checkout/session')->getQuote();
|
| 550 |
+
$quoteData = $quote->getData();
|
| 551 |
+
if (isset($quoteData['grand_total'])) {
|
| 552 |
+
$grandTotal = $quoteData['grand_total'];
|
| 553 |
+
}
|
| 554 |
+
} else {
|
| 555 |
+
$quoteId = Mage::getSingleton('checkout/session')->getClxOfferQuoteId();
|
| 556 |
+
$applicationId = Mage::getSingleton('checkout/session')->getClxOfferApplicationId();
|
| 557 |
+
Mage::getSingleton('checkout/session')->unsClxOfferQuoteId();
|
| 558 |
+
Mage::getSingleton('checkout/session')->unsClxOfferApplicationId();
|
| 559 |
+
Mage::getSingleton('checkout/session')->setClxOfferQuoteId_New($quoteId);
|
| 560 |
+
Mage::getSingleton('checkout/session')->setClxOfferApplicationId_New($applicationId);
|
| 561 |
+
$quote = Mage::getModel('sales/quote')->load($quoteId);
|
| 562 |
+
$quoteData = $quote->getData();
|
| 563 |
+
if (isset($quoteData['grand_total'])) {
|
| 564 |
+
$grandTotal = $quoteData['grand_total'];
|
| 565 |
+
}
|
| 566 |
+
}
|
| 567 |
+
|
| 568 |
+
Mage::getSingleton('checkout/session')->unsLoanOfferConfirmAcceptance();
|
| 569 |
+
Mage::getSingleton('checkout/session')->unsLoanApplicationData();
|
| 570 |
+
|
| 571 |
+
if (isset($temp_var) && $temp_var && isset($formData) && !empty($formData)) {
|
| 572 |
+
$data = array(
|
| 573 |
+
"firstName" => trim($formData['firstName']),
|
| 574 |
+
"lastName" => trim($formData['lastName']),
|
| 575 |
+
"emailId" => trim($formData['emailId']),
|
| 576 |
+
"birthDate" => trim($formData['birthDate']),
|
| 577 |
+
"street" => trim($formData['street']),
|
| 578 |
+
"city" => trim($formData['city']),
|
| 579 |
+
"country" => trim($formData['country']),
|
| 580 |
+
"state" => trim($formData['state']),
|
| 581 |
+
"zipcode" => trim($formData['zipcode']),
|
| 582 |
+
"loanAmount" => floatval($grandTotal),
|
| 583 |
+
"loanPurpose" => trim($formData['loanPurpose']),
|
| 584 |
+
"loanTerms" => floatval(trim($formData['loanTerms'])),
|
| 585 |
+
"yearlyIncome" => floatval(trim($formData['yearlyIncome'])),
|
| 586 |
+
"employmentStatus" => trim($formData['employmentStatus']),
|
| 587 |
+
"selfReportedCreditScore" => intval(trim($formData['selfReportedCreditScore'])),
|
| 588 |
+
"mobilePhoneAreaCode" => trim($formData['mobilePhoneAreaCode']),
|
| 589 |
+
"mobileNumber" => trim($formData['mobileNumber']),
|
| 590 |
+
"ssn" => trim($formData['ssn']),
|
| 591 |
+
"employerName" => trim($formData['employerName']),
|
| 592 |
+
"occupation" => trim($formData['occupation']),
|
| 593 |
+
"employmentStartDate" => trim($formData['employmentStartDate']),
|
| 594 |
+
"bankName" => trim($formData['bankName']),
|
| 595 |
+
"firstAccountHolderName" => trim($formData['firstAccountHolderName']),
|
| 596 |
+
"bankAccountType" => trim($formData['bankAccountType']),
|
| 597 |
+
"bankAccountNumber" => trim($formData['bankAccountNumber']),
|
| 598 |
+
"routingNumber" => trim($formData['routingNumber']),
|
| 599 |
+
"accountId" => $accountId,
|
| 600 |
+
"loanOfferId" => trim($formData['loanOfferId']),
|
| 601 |
+
"currency" => Mage::app()->getStore()->getCurrentCurrencyCode()
|
| 602 |
+
);
|
| 603 |
+
|
| 604 |
+
|
| 605 |
+
$url = "http://portal.clexchange.io/api/loan-offers/" . $data['loanOfferId'] . "/loan-applications";
|
| 606 |
+
$page = "/api/loan-offers/" . $data['loanOfferId'] . "/loan-applications";
|
| 607 |
+
$data['applicationId'] = $applicationId;
|
| 608 |
+
$data['isOfferAccepted'] = true;
|
| 609 |
+
|
| 610 |
+
$formData['application_id'] = $applicationId;
|
| 611 |
+
$formData['quote_id'] = $quoteId;
|
| 612 |
+
Mage::getSingleton('checkout/session')->setLoanApplicationDataToSave($formData);
|
| 613 |
+
|
| 614 |
+
$result = Mage::helper('clxfunding')->mastercurlRequestToClxOfferAcceptenceApi($url, $page, $data, $authorizationField);
|
| 615 |
+
if ($result['valid']) {
|
| 616 |
+
if (isset($result['result'])) {
|
| 617 |
+
$this->loadLayout();
|
| 618 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/user_loan_offer_accept.phtml'));
|
| 619 |
+
$block->setLoanOfferStatus(json_decode($result['result']));
|
| 620 |
+
$this->getLayout()->getBlock('content')->append($block);
|
| 621 |
+
$this->renderLayout();
|
| 622 |
+
}
|
| 623 |
+
}
|
| 624 |
+
} else {
|
| 625 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 626 |
+
}
|
| 627 |
+
|
| 628 |
+
/*
|
| 629 |
+
$this->loadLayout();
|
| 630 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/confirm_user_acceptance.phtml'));
|
| 631 |
+
$this->getLayout()->getBlock('content')->append($block);
|
| 632 |
+
$this->renderLayout();
|
| 633 |
+
*/
|
| 634 |
+
|
| 635 |
+
} else if (isset($loanApplicationFlag) && $loanApplicationFlag) {
|
| 636 |
+
$approve_required = Mage::getStoreConfig('payment/clxfunding/approve_Required'); // user approve required
|
| 637 |
+
$clx_status_track_model = Mage::getModel('clxfunding/CronOrderStatusUpdate'); // load clx status update model
|
| 638 |
+
|
| 639 |
+
$quoteId = Mage::getSingleton('checkout/session')->getQuoteId();
|
| 640 |
+
$applicationId = "APP-" . $quoteId;
|
| 641 |
+
|
| 642 |
+
$clx_quoteid = Mage::getSingleton('checkout/session')->getClxQuoteParam();
|
| 643 |
+
Mage::getSingleton('checkout/session')->unsClxQuoteParam();
|
| 644 |
+
$clx_applicationid = Mage::getSingleton('checkout/session')->getClxApplicationIdParam();
|
| 645 |
+
Mage::getSingleton('checkout/session')->unsClxApplicationIdParam();
|
| 646 |
+
|
| 647 |
+
if (isset($quoteId) && isset($applicationId) && $applicationId != 'APP-' && isset($clx_quoteid) && isset($clx_applicationid) && $quoteId == $clx_quoteid && $applicationId == $clx_applicationid) {
|
| 648 |
+
$order = new Mage_Sales_Model_Order();
|
| 649 |
+
$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
|
| 650 |
+
$order->loadByIncrementId($orderId);
|
| 651 |
+
$order->setState(Mage_Sales_Model_Order::STATE_NEW, true, 'Loan Application Approved.');
|
| 652 |
+
|
| 653 |
+
$customer_email = $order['customer_email'];
|
| 654 |
+
$customer_firstname = $order['customer_firstname'];
|
| 655 |
+
$customer_lastname = $order['customer_lastname'];
|
| 656 |
+
|
| 657 |
+
$loanAppFlag = 0;
|
| 658 |
+
if (isset($approve_required) && $approve_required) {
|
| 659 |
+
$loanAppFlag = 1;
|
| 660 |
+
} else {
|
| 661 |
+
|
| 662 |
+
}
|
| 663 |
+
|
| 664 |
+
try {
|
| 665 |
+
$order->sendNewOrderEmail();
|
| 666 |
+
} catch (Exception $ex) {
|
| 667 |
+
Mage::logException($ex);
|
| 668 |
+
}
|
| 669 |
+
$order->save();
|
| 670 |
+
|
| 671 |
+
$clx_loan_application_data = Mage::getSingleton('checkout/session')->getLoanApplicationDataToSave();
|
| 672 |
+
$clx_loan_application_data['order_id'] = $orderId;
|
| 673 |
+
$clx_loan_application_data['status'] = 'PENDING';
|
| 674 |
+
$clx_loan_application_data['approvalRequired_flag'] = $loanAppFlag;
|
| 675 |
+
$clx_status_track_model->saveLoanApplicationDetails($clx_loan_application_data);
|
| 676 |
+
Mage::getSingleton('checkout/session')->unsLoanApplicationDataToSave();
|
| 677 |
+
|
| 678 |
+
Mage::getSingleton('checkout/session')->unsQuoteId();
|
| 679 |
+
Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/success', array('_secure' => false));
|
| 680 |
+
} else {
|
| 681 |
+
Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/failure', array('_secure' => false));
|
| 682 |
+
}
|
| 683 |
+
} else {
|
| 684 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 685 |
+
}
|
| 686 |
+
}
|
| 687 |
+
|
| 688 |
+
function saveOrderCustomAction() {
|
| 689 |
+
$sess_quoteId = Mage::getSingleton('checkout/session')->getClxOfferQuoteId_New();
|
| 690 |
+
Mage::getSingleton('checkout/session')->unsClxOfferQuoteId_New();
|
| 691 |
+
$sess_applicationId = Mage::getSingleton('checkout/session')->getClxOfferApplicationId_New();
|
| 692 |
+
Mage::getSingleton('checkout/session')->unsClxOfferApplicationId_New();
|
| 693 |
+
|
| 694 |
+
$clx_status_track_model = Mage::getModel('clxfunding/CronOrderStatusUpdate'); // load clx status update model
|
| 695 |
+
|
| 696 |
+
$quoteId = Mage::getSingleton('checkout/session')->getQuoteId();
|
| 697 |
+
$applicationId = "APP-" . $quoteId;
|
| 698 |
+
|
| 699 |
+
$clx_quoteid = Mage::getSingleton('checkout/session')->getClxQuoteParam();
|
| 700 |
+
Mage::getSingleton('checkout/session')->unsClxQuoteParam();
|
| 701 |
+
$clx_applicationid = Mage::getSingleton('checkout/session')->getClxApplicationIdParam();
|
| 702 |
+
Mage::getSingleton('checkout/session')->unsClxApplicationIdParam();
|
| 703 |
+
|
| 704 |
+
$order = new Mage_Sales_Model_Order();
|
| 705 |
+
$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
|
| 706 |
+
$order->loadByIncrementId($orderId);
|
| 707 |
+
$order->setState(Mage_Sales_Model_Order::STATE_NEW, true, 'Loan Application Approved.');
|
| 708 |
+
$customer_email = $order['customer_email'];
|
| 709 |
+
$customer_firstname = $order['customer_firstname'];
|
| 710 |
+
$customer_lastname = $order['customer_lastname'];
|
| 711 |
+
try {
|
| 712 |
+
$order->sendNewOrderEmail();
|
| 713 |
+
} catch (Exception $ex) {
|
| 714 |
+
Mage::logException($ex);
|
| 715 |
+
}
|
| 716 |
+
$order->save();
|
| 717 |
+
|
| 718 |
+
$clx_loan_application_data = Mage::getSingleton('checkout/session')->getLoanApplicationDataToSave();
|
| 719 |
+
$clx_loan_application_data['order_id'] = $orderId;
|
| 720 |
+
$clx_loan_application_data['status'] = 'PENDING';
|
| 721 |
+
$clx_loan_application_data['approvalRequired_flag'] = 0;
|
| 722 |
+
$clx_loan_application_data['offer_acceptance_flag'] = true;
|
| 723 |
+
$clx_status_track_model->saveLoanApplicationDetails($clx_loan_application_data);
|
| 724 |
+
Mage::getSingleton('checkout/session')->unsLoanApplicationDataToSave();
|
| 725 |
+
|
| 726 |
+
if (isset($quoteId) && !empty($quoteId) && isset($applicationId) && $applicationId != 'APP-') {
|
| 727 |
+
Mage::getSingleton('checkout/session')->unsQuoteId();
|
| 728 |
+
Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/success', array('_secure' => false));
|
| 729 |
+
} else if (isset($sess_quoteId) && !empty($sess_quoteId) && isset($sess_applicationId) && $sess_applicationId != 'APP-') {
|
| 730 |
+
Mage::getSingleton('checkout/session')->unsQuoteId();
|
| 731 |
+
Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/success', array('_secure' => false));
|
| 732 |
+
}else if (isset($clx_quoteid) && !empty($clx_quoteid) && isset($clx_applicationid) && $clx_applicationid != 'APP-') {
|
| 733 |
+
Mage::getSingleton('checkout/session')->unsQuoteId();
|
| 734 |
+
Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/success', array('_secure' => false));
|
| 735 |
+
}else {
|
| 736 |
+
Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/failure', array('_secure' => false));
|
| 737 |
+
}
|
| 738 |
+
}
|
| 739 |
+
|
| 740 |
+
function checkLoanOfferAcceptanceStatusAction() {
|
| 741 |
+
$formData = unserialize(Mage::getSingleton('checkout/session')->getLoanApplicationData());
|
| 742 |
+
$temp_var = Mage::getSingleton('checkout/session')->getLoanOfferConfirmAcceptance();
|
| 743 |
+
$accountId = Mage::getStoreConfig('payment/clxfunding/account_id');
|
| 744 |
+
$authorizationField = Mage::getStoreConfig('payment/clxfunding/authorization_field');
|
| 745 |
+
$isBestOffer = Mage::getStoreConfig('payment/clxfunding/is_Best_Offer');
|
| 746 |
+
|
| 747 |
+
$quoteId = Mage::getSingleton('checkout/session')->getQuoteId();
|
| 748 |
+
$applicationId = "APP-" . $quoteId;
|
| 749 |
+
|
| 750 |
+
if (isset($quoteId) && !empty($quoteId) && isset($applicationId) && $applicationId != 'APP-') {
|
| 751 |
+
Mage::getSingleton('checkout/session')->setClxQuoteParam($quoteId);
|
| 752 |
+
Mage::getSingleton('checkout/session')->setClxApplicationIdParam($applicationId);
|
| 753 |
+
$quote = Mage::getModel('checkout/session')->getQuote();
|
| 754 |
+
$quoteData = $quote->getData();
|
| 755 |
+
if (isset($quoteData['grand_total'])) {
|
| 756 |
+
$grandTotal = $quoteData['grand_total'];
|
| 757 |
+
}
|
| 758 |
+
} else {
|
| 759 |
+
$quoteId = Mage::getSingleton('checkout/session')->getClxOfferQuoteId();
|
| 760 |
+
$applicationId = Mage::getSingleton('checkout/session')->getClxOfferApplicationId();
|
| 761 |
+
Mage::getSingleton('checkout/session')->unsClxOfferQuoteId();
|
| 762 |
+
Mage::getSingleton('checkout/session')->unsClxOfferApplicationId();
|
| 763 |
+
Mage::getSingleton('checkout/session')->setClxOfferQuoteId_New($quoteId);
|
| 764 |
+
Mage::getSingleton('checkout/session')->setClxOfferApplicationId_New($applicationId);
|
| 765 |
+
$quote = Mage::getModel('sales/quote')->load($quoteId);
|
| 766 |
+
$quoteData = $quote->getData();
|
| 767 |
+
if (isset($quoteData['grand_total'])) {
|
| 768 |
+
$grandTotal = $quoteData['grand_total'];
|
| 769 |
+
}
|
| 770 |
+
}
|
| 771 |
+
|
| 772 |
+
Mage::getSingleton('checkout/session')->unsLoanOfferConfirmAcceptance();
|
| 773 |
+
Mage::getSingleton('checkout/session')->unsLoanApplicationData();
|
| 774 |
+
|
| 775 |
+
if (isset($temp_var) && $temp_var && isset($formData) && !empty($formData)) {
|
| 776 |
+
$data = array(
|
| 777 |
+
"firstName" => trim($formData['firstName']),
|
| 778 |
+
"lastName" => trim($formData['lastName']),
|
| 779 |
+
"emailId" => trim($formData['emailId']),
|
| 780 |
+
"birthDate" => trim($formData['birthDate']),
|
| 781 |
+
"street" => trim($formData['street']),
|
| 782 |
+
"city" => trim($formData['city']),
|
| 783 |
+
"country" => trim($formData['country']),
|
| 784 |
+
"state" => trim($formData['state']),
|
| 785 |
+
"zipcode" => trim($formData['zipcode']),
|
| 786 |
+
"loanAmount" => floatval($grandTotal),
|
| 787 |
+
"loanPurpose" => trim($formData['loanPurpose']),
|
| 788 |
+
"loanTerms" => floatval(trim($formData['loanTerms'])),
|
| 789 |
+
"yearlyIncome" => floatval(trim($formData['yearlyIncome'])),
|
| 790 |
+
"employmentStatus" => trim($formData['employmentStatus']),
|
| 791 |
+
"selfReportedCreditScore" => intval(trim($formData['selfReportedCreditScore'])),
|
| 792 |
+
"mobilePhoneAreaCode" => trim($formData['mobilePhoneAreaCode']),
|
| 793 |
+
"mobileNumber" => trim($formData['mobileNumber']),
|
| 794 |
+
"ssn" => trim($formData['ssn']),
|
| 795 |
+
"employerName" => trim($formData['employerName']),
|
| 796 |
+
"occupation" => trim($formData['occupation']),
|
| 797 |
+
"employmentStartDate" => trim($formData['employmentStartDate']),
|
| 798 |
+
"bankName" => trim($formData['bankName']),
|
| 799 |
+
"firstAccountHolderName" => trim($formData['firstAccountHolderName']),
|
| 800 |
+
"bankAccountType" => trim($formData['bankAccountType']),
|
| 801 |
+
"bankAccountNumber" => trim($formData['bankAccountNumber']),
|
| 802 |
+
"routingNumber" => trim($formData['routingNumber']),
|
| 803 |
+
"accountId" => $accountId,
|
| 804 |
+
"loanOfferId" => trim($formData['loanOfferId']),
|
| 805 |
+
"currency" => Mage::app()->getStore()->getCurrentCurrencyCode()
|
| 806 |
+
);
|
| 807 |
+
|
| 808 |
+
|
| 809 |
+
$url = "http://portal.clexchange.io/api/loan-offers/" . $data['loanOfferId'] . "/loan-applications";
|
| 810 |
+
$page = "/api/loan-offers/" . $data['loanOfferId'] . "/loan-applications";
|
| 811 |
+
$data['applicationId'] = $applicationId;
|
| 812 |
+
$data['isOfferAccepted'] = true;
|
| 813 |
+
|
| 814 |
+
$formData['application_id'] = $applicationId;
|
| 815 |
+
$formData['quote_id'] = $quoteId;
|
| 816 |
+
Mage::getSingleton('checkout/session')->setLoanApplicationDataToSave($formData);
|
| 817 |
+
|
| 818 |
+
$result = Mage::helper('clxfunding')->mastercurlRequestToClxOfferAcceptenceApi($url, $page, $data, $authorizationField);
|
| 819 |
+
if ($result['valid']) {
|
| 820 |
+
if (isset($result['result'])) {
|
| 821 |
+
/*
|
| 822 |
+
$clxOfferAcceptRes = json_decode($result['result']);
|
| 823 |
+
if ($clxOfferAcceptRes->application_status == "REJECTED")
|
| 824 |
+
{
|
| 825 |
+
$orderModel = Mage::getModel('sales/order');
|
| 826 |
+
$orderModel->loadByIncrementId($row['order_id']);
|
| 827 |
+
if ($orderModel->canCancel()) {
|
| 828 |
+
$orderModel->cancel();
|
| 829 |
+
$orderModel->setStatus('Reason for cancellation : Lender rejected the loan offer');
|
| 830 |
+
$orderModel->save();
|
| 831 |
+
}
|
| 832 |
+
}*/
|
| 833 |
+
$this->loadLayout();
|
| 834 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/user_loan_offer_accept.phtml'));
|
| 835 |
+
$block->setLoanOfferStatus(json_decode($result['result']));
|
| 836 |
+
$this->getLayout()->getBlock('content')->append($block);
|
| 837 |
+
$this->renderLayout();
|
| 838 |
+
}
|
| 839 |
+
}
|
| 840 |
+
} else {
|
| 841 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 842 |
+
}
|
| 843 |
+
}
|
| 844 |
+
|
| 845 |
+
function getLoanApplicationFormAction() {
|
| 846 |
+
$quote = Mage::getModel('checkout/session')->getQuote();
|
| 847 |
+
$quoteData = $quote->getData();
|
| 848 |
+
$billAddress = $quote->getBillingAddress();
|
| 849 |
+
$customer_dtls = $billAddress->getData();
|
| 850 |
+
$street = $billAddress->getStreet(1).' '.$billAddress->getStreet(2);
|
| 851 |
+
|
| 852 |
+
$grandTotal = $quoteData['grand_total'];
|
| 853 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/modal_clxfunding.phtml'));
|
| 854 |
+
$block->setLoanAmmount($grandTotal);
|
| 855 |
+
$block->setCustomerDetails($customer_dtls);
|
| 856 |
+
$block->setStreetAddress($street);
|
| 857 |
+
$myHtml = $block->toHtml();
|
| 858 |
+
echo json_encode(array('valid' => TRUE, 'loan_app_view' => $myHtml));
|
| 859 |
+
}
|
| 860 |
+
|
| 861 |
+
function loanOfferRejectAction() {
|
| 862 |
+
$applicationId = $this->getRequest()->getParam('applicationId');
|
| 863 |
+
$loanOfferId = $this->getRequest()->getParam('loanOfferId');
|
| 864 |
+
if (isset($applicationId) && !empty($applicationId) && isset($loanOfferId) && !empty($loanOfferId)) {
|
| 865 |
+
$applicationId = Mage::helper('core')->decrypt(base64_decode($applicationId));
|
| 866 |
+
$loanOfferId = Mage::helper('core')->decrypt(base64_decode($loanOfferId));
|
| 867 |
+
|
| 868 |
+
$table_prefix = Mage::getConfig()->getTablePrefix();
|
| 869 |
+
$clx_table = $table_prefix . 'clx_loan_application_detail';
|
| 870 |
+
|
| 871 |
+
$connectionRead = Mage::getSingleton('core/resource')->getConnection('core_read');
|
| 872 |
+
$select = $connectionRead->select()
|
| 873 |
+
->from($clx_table, array('*'))
|
| 874 |
+
->where('application_id=? and status!="FUNDED" and status!="LENDER_REJECTED" and status!="CUSTOMER_ACCEPTED" and status!="MERCHANT_REJECTED" and status!="CUSTOMER_REJECTED" and status!="REJECTED"', $applicationId);
|
| 875 |
+
$row = $connectionRead->fetchRow($select); //return rows
|
| 876 |
+
|
| 877 |
+
if (isset($row) && !empty($row) && is_array($row) && isset($row['clx_loan_application_detail_id']) && !empty($row['clx_loan_application_detail_id']) && isset($row['approvalRequired_flag']) && !empty($row['approvalRequired_flag']) && $row['approvalRequired_flag'] == 1) {
|
| 878 |
+
$new_data = $row; //copied to row to remove some key ->value pair from array .
|
| 879 |
+
unset($new_data['clx_loan_application_detail_id'], $new_data['order_id'], $new_data['application_id'], $new_data['quote_id'], $new_data['approvalRequired_flag'], $new_data['status'], $new_data['created_time'], $new_data['update_time']);
|
| 880 |
+
$accountId = Mage::getStoreConfig('payment/clxfunding/account_id');
|
| 881 |
+
$authorizationField = Mage::getStoreConfig('payment/clxfunding/authorization_field');
|
| 882 |
+
$new_data['accountId'] = $accountId;
|
| 883 |
+
$new_data['loanOfferId'] = $loanOfferId;
|
| 884 |
+
$new_data['applicationId'] = $applicationId;
|
| 885 |
+
$new_data['currency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
|
| 886 |
+
$new_data['isOfferAccepted'] = FALSE;
|
| 887 |
+
|
| 888 |
+
$url = "http://portal.clexchange.io/api/loan-offers/" . $new_data['loanOfferId'] . "/loan-applications";
|
| 889 |
+
$page = "/api/loan-offers/" . $new_data['loanOfferId'] . "/loan-applications";
|
| 890 |
+
|
| 891 |
+
$result = Mage::helper('clxfunding')->mastercurlRequestToClxOfferAcceptenceApi($url, $page, $new_data, $authorizationField);
|
| 892 |
+
if (isset($result['result']) && $result['result']) {
|
| 893 |
+
/* Mail notification to Merchant about loan offer rejected by customer */
|
| 894 |
+
$parameters = array('applicationId' => $applicationId, 'orderNumber' => $row['order_id'], 'customerName' => ucfirst(strtolower($row['firstName'])) . ' ' . ucfirst(strtolower($row['lastName'])));
|
| 895 |
+
try {
|
| 896 |
+
Mage::getModel('clxfunding/ClxEmail')->sendEmail(
|
| 897 |
+
'clx_loan_offerreject_email_template', Mage::getStoreConfig('trans_email/ident_sales/email'), Mage::getStoreConfig('trans_email/ident_sales/name'), 'Loan Offer Rejected', $parameters
|
| 898 |
+
);
|
| 899 |
+
} catch (Exception $ex) {
|
| 900 |
+
Mage::logException($ex);
|
| 901 |
+
}
|
| 902 |
+
/* Mail notification to Merchant about loan offer rejected by customer */
|
| 903 |
+
|
| 904 |
+
$table_prefix = Mage::getConfig()->getTablePrefix();
|
| 905 |
+
$clx_table = $table_prefix . 'clx_loan_application_detail';
|
| 906 |
+
|
| 907 |
+
$connectionWrite = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 908 |
+
$connectionWrite->beginTransaction();
|
| 909 |
+
$data = array();
|
| 910 |
+
$data['status'] = "CUSTOMER_REJECTED";
|
| 911 |
+
$data['update_time'] = date('Y-m-d H:i:s');
|
| 912 |
+
$where = $connectionWrite->quoteInto('clx_loan_application_detail_id =?', $row['clx_loan_application_detail_id']);
|
| 913 |
+
$connectionWrite->update($clx_table, $data, $where);
|
| 914 |
+
$connectionWrite->commit();
|
| 915 |
+
|
| 916 |
+
/* Order Cancel */
|
| 917 |
+
if (isset($row['order_id']) && !empty($row['order_id'])) {
|
| 918 |
+
$orderModel = Mage::getModel('sales/order');
|
| 919 |
+
$orderModel->loadByIncrementId($row['order_id']);
|
| 920 |
+
if ($orderModel->canCancel()) {
|
| 921 |
+
$orderModel->cancel();
|
| 922 |
+
$orderModel->setStatus('Reason for cancellation : Customer rejected the loan offer');
|
| 923 |
+
$orderModel->save();
|
| 924 |
+
}
|
| 925 |
+
}
|
| 926 |
+
/* Order Cancel */
|
| 927 |
+
|
| 928 |
+
|
| 929 |
+
|
| 930 |
+
/* Notification on FrontEnd */
|
| 931 |
+
$this->loadLayout();
|
| 932 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/user_loan_offer_reject.phtml'));
|
| 933 |
+
$this->getLayout()->getBlock('content')->append($block);
|
| 934 |
+
$this->renderLayout();
|
| 935 |
+
/* Notification on FrontEnd */
|
| 936 |
+
} else {
|
| 937 |
+
Mage::log('CLX Error : Curl error [loan offer reject]');
|
| 938 |
+
}
|
| 939 |
+
} else {
|
| 940 |
+
$this->loadLayout();
|
| 941 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/link_Expire.phtml'));
|
| 942 |
+
$this->getLayout()->getBlock('content')->append($block);
|
| 943 |
+
$this->renderLayout();
|
| 944 |
+
//Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 945 |
+
}
|
| 946 |
+
} else {
|
| 947 |
+
$this->getResponse()->setHeader('HTTP/1.1', '404 Not Found');
|
| 948 |
+
$this->getResponse()->setHeader('Status', '404 File not found');
|
| 949 |
+
$this->_forward('defaultNoRoute');
|
| 950 |
+
}
|
| 951 |
+
}
|
| 952 |
+
|
| 953 |
+
function loanOfferAcceptAction() {
|
| 954 |
+
$applicationId = $this->getRequest()->getParam('applicationId');
|
| 955 |
+
$loanOfferId = $this->getRequest()->getParam('loanOfferId');
|
| 956 |
+
if (isset($applicationId) && !empty($applicationId) && isset($loanOfferId) && !empty($loanOfferId)) {
|
| 957 |
+
|
| 958 |
+
$applicationId = Mage::helper('core')->decrypt(base64_decode($applicationId));
|
| 959 |
+
$loanOfferId = Mage::helper('core')->decrypt(base64_decode($loanOfferId));
|
| 960 |
+
|
| 961 |
+
$table_prefix = Mage::getConfig()->getTablePrefix();
|
| 962 |
+
$clx_table = $table_prefix . 'clx_loan_application_detail';
|
| 963 |
+
|
| 964 |
+
$connectionRead = Mage::getSingleton('core/resource')->getConnection('core_read');
|
| 965 |
+
$select = $connectionRead->select()
|
| 966 |
+
->from($clx_table, array('*'))
|
| 967 |
+
->where('application_id=? and status!="FUNDED" and status!="LENDER_REJECTED" and status!="CUSTOMER_ACCEPTED" and status!="REJECTED" and status!="MERCHANT_REJECTED" and status!="CUSTOMER_REJECTED"', $applicationId);
|
| 968 |
+
$row = $connectionRead->fetchRow($select); //return rows
|
| 969 |
+
if (isset($row) && !empty($row) && is_array($row) && isset($row['clx_loan_application_detail_id']) && !empty($row['clx_loan_application_detail_id']) && isset($row['approvalRequired_flag']) && !empty($row['approvalRequired_flag']) && $row['approvalRequired_flag'] == 1) {
|
| 970 |
+
$new_data = $row; //copy row to remove some key ->value pair from array .
|
| 971 |
+
unset($new_data['clx_loan_application_detail_id'], $new_data['order_id'], $new_data['application_id'], $new_data['quote_id'], $new_data['approvalRequired_flag'], $new_data['status'], $new_data['created_time'], $new_data['update_time']);
|
| 972 |
+
$accountId = Mage::getStoreConfig('payment/clxfunding/account_id');
|
| 973 |
+
$authorizationField = Mage::getStoreConfig('payment/clxfunding/authorization_field');
|
| 974 |
+
$new_data['accountId'] = $accountId;
|
| 975 |
+
$new_data['loanOfferId'] = $loanOfferId;
|
| 976 |
+
$new_data['applicationId'] = $applicationId;
|
| 977 |
+
$new_data['currency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
|
| 978 |
+
|
| 979 |
+
$new_data['isOfferAccepted'] = TRUE;
|
| 980 |
+
|
| 981 |
+
$url = "http://portal.clexchange.io/api/loan-offers/" . $new_data['loanOfferId'] . "/loan-applications";
|
| 982 |
+
$page = "/api/loan-offers/" . $new_data['loanOfferId'] . "/loan-applications";
|
| 983 |
+
|
| 984 |
+
$result = Mage::helper('clxfunding')->mastercurlRequestToClxOfferAcceptenceApi($url, $page, $new_data, $authorizationField);
|
| 985 |
+
if (isset($result['result']) && $result['result']) {
|
| 986 |
+
$clxOfferAcceptRes = json_decode($result['result']);
|
| 987 |
+
if ($clxOfferAcceptRes->application_status == "ACCEPTED") {
|
| 988 |
+
$connectionWrite = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 989 |
+
$connectionWrite->beginTransaction();
|
| 990 |
+
$data = array();
|
| 991 |
+
$data['status'] = "CUSTOMER_ACCEPTED";
|
| 992 |
+
$data['update_time'] = date('Y-m-d H:i:s');
|
| 993 |
+
$where = $connectionWrite->quoteInto('clx_loan_application_detail_id =?', $row['clx_loan_application_detail_id']);
|
| 994 |
+
$connectionWrite->update($clx_table, $data, $where);
|
| 995 |
+
$connectionWrite->commit();
|
| 996 |
+
} else if ($clxOfferAcceptRes->application_status == "REJECTED") {
|
| 997 |
+
$connectionWrite = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 998 |
+
$connectionWrite->beginTransaction();
|
| 999 |
+
|
| 1000 |
+
$data = array();
|
| 1001 |
+
$data['status'] = "REJECTED";
|
| 1002 |
+
$data['update_time'] = date('Y-m-d H:i:s');
|
| 1003 |
+
|
| 1004 |
+
$orderModel = Mage::getModel('sales/order');
|
| 1005 |
+
$orderModel->loadByIncrementId($row['order_id']);
|
| 1006 |
+
if ($orderModel->canCancel()) {
|
| 1007 |
+
$orderModel->cancel();
|
| 1008 |
+
$orderModel->setStatus('Reason for cancellation : Lender rejected the loan offer');
|
| 1009 |
+
$orderModel->save();
|
| 1010 |
+
}
|
| 1011 |
+
$where = $connectionWrite->quoteInto('clx_loan_application_detail_id =?', $row['clx_loan_application_detail_id']);
|
| 1012 |
+
$connectionWrite->update($clx_table, $data, $where);
|
| 1013 |
+
$connectionWrite->commit();
|
| 1014 |
+
|
| 1015 |
+
/* loan offer reject on accept by lender */
|
| 1016 |
+
|
| 1017 |
+
|
| 1018 |
+
/* loan offer reject on accept by lender */
|
| 1019 |
+
} else {
|
| 1020 |
+
|
| 1021 |
+
}
|
| 1022 |
+
$this->loadLayout();
|
| 1023 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/user_loan_offer_status.phtml'));
|
| 1024 |
+
$block->setLoanOfferStatus(json_decode($result['result']));
|
| 1025 |
+
$this->getLayout()->getBlock('content')->append($block);
|
| 1026 |
+
$this->renderLayout();
|
| 1027 |
+
} else {
|
| 1028 |
+
Mage::log('CLX Error : Curl error [loan offer accept]');
|
| 1029 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 1030 |
+
}
|
| 1031 |
+
} else {
|
| 1032 |
+
$this->loadLayout();
|
| 1033 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/link_Expire.phtml'));
|
| 1034 |
+
$this->getLayout()->getBlock('content')->append($block);
|
| 1035 |
+
$this->renderLayout();
|
| 1036 |
+
//Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 1037 |
+
}
|
| 1038 |
+
} else {
|
| 1039 |
+
$this->getResponse()->setHeader('HTTP/1.1', '404 Not Found');
|
| 1040 |
+
$this->getResponse()->setHeader('Status', '404 File not found');
|
| 1041 |
+
$this->_forward('defaultNoRoute');
|
| 1042 |
+
}
|
| 1043 |
+
}
|
| 1044 |
+
|
| 1045 |
+
public function aboutCLXFundingAction() {
|
| 1046 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/aboutCLXFunding.phtml'));
|
| 1047 |
+
echo $block->toHtml();
|
| 1048 |
+
}
|
| 1049 |
+
|
| 1050 |
+
public function QueueResAction() {
|
| 1051 |
+
$Queue_Authentication_Key = Mage::getStoreConfig('payment/clxfunding/queue_authentication_key');
|
| 1052 |
+
$Queue_Endpoint = Mage::getStoreConfig('payment/clxfunding/queue_endpoint');
|
| 1053 |
+
if (isset($Queue_Authentication_Key) && !empty($Queue_Authentication_Key) && isset($Queue_Endpoint) && !empty($Queue_Endpoint)) {
|
| 1054 |
+
|
| 1055 |
+
$headers = array(
|
| 1056 |
+
"Content-type: application/json",
|
| 1057 |
+
"Authorization: OAuth " . $Queue_Authentication_Key
|
| 1058 |
+
);
|
| 1059 |
+
|
| 1060 |
+
$ch = curl_init();
|
| 1061 |
+
curl_setopt($ch, CURLOPT_URL, $Queue_Endpoint);
|
| 1062 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
| 1063 |
+
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
|
| 1064 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
| 1065 |
+
|
| 1066 |
+
echo $info = curl_exec($ch);
|
| 1067 |
+
}
|
| 1068 |
+
}
|
| 1069 |
+
|
| 1070 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/controllers/ClxAPIController.php~
ADDED
|
@@ -0,0 +1,1032 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class CLExchange_Clexchangefunding_ClxAPIController extends Mage_Core_Controller_Front_Action {
|
| 4 |
+
/* function will receive loan application form data on click of next,previous,check eligibility,submit button */
|
| 5 |
+
|
| 6 |
+
public function loanAppProcessingAction() {
|
| 7 |
+
if ($this->getRequest()->isXmlHttpRequest()) {
|
| 8 |
+
$accountId = Mage::getStoreConfig('payment/clxfunding/account_id'); //get configured accountID from core_config_data
|
| 9 |
+
$authorizationField = Mage::getStoreConfig('payment/clxfunding/authorization_field'); //get configured authorization from core_config_data
|
| 10 |
+
$quote = Mage::getModel('checkout/session')->getQuote();
|
| 11 |
+
$quoteData = $quote->getData();
|
| 12 |
+
|
| 13 |
+
$grandTotal = $quoteData['grand_total'];
|
| 14 |
+
|
| 15 |
+
if (isset($accountId) && isset($authorizationField)) {
|
| 16 |
+
$formData = array(
|
| 17 |
+
"firstName" => trim($this->getRequest()->getParam('firstName')),
|
| 18 |
+
"lastName" => trim($this->getRequest()->getParam('lastName')),
|
| 19 |
+
"emailId" => trim($this->getRequest()->getParam('emailId')),
|
| 20 |
+
"birthDate" => trim($this->getRequest()->getParam('birthDate')),
|
| 21 |
+
"street" => trim($this->getRequest()->getParam('street')),
|
| 22 |
+
"city" => trim($this->getRequest()->getParam('city')),
|
| 23 |
+
"state" => trim($this->getRequest()->getParam('state')),
|
| 24 |
+
"zipcode" => trim($this->getRequest()->getParam('zipcode')),
|
| 25 |
+
"loanAmount" => floatval($grandTotal),
|
| 26 |
+
"loanPurpose" => trim($this->getRequest()->getParam('loanPurpose')),
|
| 27 |
+
"loanTerms" => trim($this->getRequest()->getParam('loanTerms')),
|
| 28 |
+
"yearlyIncome" => trim($this->getRequest()->getParam('yearlyIncome')),
|
| 29 |
+
"employmentStatus" => trim($this->getRequest()->getParam('employmentStatus')),
|
| 30 |
+
"selfReportedCreditScore" => trim($this->getRequest()->getParam('selfReportedCreditScore')),
|
| 31 |
+
"mobilePhoneAreaCode" => trim($this->getRequest()->getParam('mobilePhoneAreaCode')),
|
| 32 |
+
"mobileNumber" => trim($this->getRequest()->getParam('mobileNumber')),
|
| 33 |
+
"ssn" => trim($this->getRequest()->getParam('ssn')),
|
| 34 |
+
"employerName" => trim($this->getRequest()->getParam('employerName')),
|
| 35 |
+
"occupation" => trim($this->getRequest()->getParam('occupation')),
|
| 36 |
+
"employmentStartDate" => trim($this->getRequest()->getParam('employmentStartDate')),
|
| 37 |
+
"bankName" => trim($this->getRequest()->getParam('bankName')),
|
| 38 |
+
"firstAccountHolderName" => trim($this->getRequest()->getParam('firstAccountHolderName')),
|
| 39 |
+
"bankAccountType" => trim($this->getRequest()->getParam('bankAccountType')),
|
| 40 |
+
"bankAccountNumber" => trim($this->getRequest()->getParam('bankAccountNumber')),
|
| 41 |
+
"routingNumber" => trim($this->getRequest()->getParam('routingNumber')),
|
| 42 |
+
"accountId" => $accountId,
|
| 43 |
+
"currency" => Mage::app()->getStore()->getCurrentCurrencyCode()
|
| 44 |
+
);
|
| 45 |
+
$clx_button_flag = trim($this->getRequest()->getParam('clx_btn_flag'));
|
| 46 |
+
$validation_error = array();
|
| 47 |
+
/* validators */
|
| 48 |
+
|
| 49 |
+
$name_validator = new Zend_Validate_Alpha(array('allowWhiteSpace' => true)); // only alphabets and space
|
| 50 |
+
$is_digit = new Zend_Validate_Digits();
|
| 51 |
+
$date_validator = new Zend_Validate_Date(); // date yyyy-mm-dd
|
| 52 |
+
$is_decimal = new Zend_Validate_Float(); //
|
| 53 |
+
$string_length_min_max_3 = new Zend_Validate_StringLength(array('max' => 3)); //mobilePhoneAreaCode
|
| 54 |
+
$string_length_min_max_10 = new Zend_Validate_StringLength(array('max' => 10)); //mobileNumber
|
| 55 |
+
$string_length_max_8 = new Zend_Validate_StringLength(array('max' => 8)); //zipcode
|
| 56 |
+
$string_length_max_100 = new Zend_Validate_StringLength(array('max' => 100)); //employerName(100max)
|
| 57 |
+
$string_length_max_255 = new Zend_Validate_StringLength(array('max' => 255)); //bankName(255max)
|
| 58 |
+
$string_length_max_30 = new Zend_Validate_StringLength(array('max' => 30)); //bankAccountNumber(30max)
|
| 59 |
+
$string_length_min_max_9 = new Zend_Validate_StringLength(array('min' => 9, 'max' => 9)); //bankAccountNumber(30max)
|
| 60 |
+
|
| 61 |
+
$states_a = array("Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "District Of Columbia", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "American Samoa", "Guam", "Northern Mariana Islands", "Puerto Rico", "United States Minor Outlying", "Islands", "Virgin Islands");
|
| 62 |
+
$employee_status_a = array(1 => "Self Employed", 2 => "Not Employed", 3 => "Other", 4 => "Employed");
|
| 63 |
+
$occupation_a = array(1 => "Accountant/CPA", 2 => "Analyst", 3 => "Architect", 4 => "Attorney", 5 => "Biologist", 6 => "Bus Driver", 7 => "Car Dealer", 8 => "Chemist", 9 => "Civil Service", 10 => "Clergy", 11 => "Clerical", 12 => "Computer Programmer", 13 => "Construction", 14 => "Dentist", 16 => "Doctor", 17 => "Engineer - Chemical
", 18 => "Engineer - Electrical
", 19 => "Engineer - Mechanical
", 20 => "Executive
", 21 => "Fireman
", 22 => "Flight Attendant
", 23 => "Food Service
", 24 => "Food Service Management", 25 => "Homemaker
", 26 => "Judge
", 27 => "Laborer
", 28 => "Landscaping
", 29 => "Medical Technician", 30 => "Military Enlisted", 31 => "Military Officer", 32 => "Nurse (LPN)
", 33 => "Nurse (RN)", 34 => "Nurse's Aide
", 35 => "Pharmacist
", 36 => "Pilot - Private/Commercial
", 37 => "Police Officer/Correction Officer", 38 => "Postal Service
", 39 => "Principal
", 40 => "Professional
", 41 => "Professor
", 42 => "Psychologist
", 43 => "Realtor
", 44 => "Religious
", 45 => "Retail Management
", 47 => "Sales - Commission
", 48 => "Sales - Retail
", 49 => "Scientist
", 50 => "Administrative Assistant
", 52 => "Skilled Labor
", 53 => "Social Worker", 54 => "Student
", 61 => "Teacher
", 62 => "Teacher's Aide
", 63 => "Tradesman - Carpenter", 64 => "Tradesman - Electrician", 65 => "Tradesman - Mechanic", 66 => "Tradesman - Plumber", 67 => "Truck Driver", 69 => "Waiter/Waitress", 70 => "Other
", 71 => "Investor");
|
| 64 |
+
$bankaccounttype_a = array("Savings", "Checking", "Credit");
|
| 65 |
+
$loanpurpose_a = array(1 => "Debt consolidation", 2 => "Home improvement", 3 => "Business", 6 => "Auto", 7 => "Other", 8 => "Baby & adoption loans", 9 => "Boat", 10 => "Cosmetic procedures", 12 => "Green loans", 13 => "Household Expenses", 14 => "Large purchases", 15 => "Medical/Dental", 16 => "Motorcycle", 17 => "RV", 18 => "Taxes", 19 => "Vacation", 21 => "Special Occasion");
|
| 66 |
+
$credit_score_a = array(1 => "Excellent Credit (760+)", 2 => "Good Credit (700+)", 3 => "Fair Credit (640+)", 4 => "Poor Credit");
|
| 67 |
+
|
| 68 |
+
|
| 69 |
+
$tab1_fields_key_arr = array("firstName", "lastName", "emailId", "birthDate", "mobilePhoneAreaCode", "mobileNumber", "street", "state", "city", "country", "zipcode", "yearlyIncome", "employmentStatus", "employmentStatus", "employerName", "employmentStartDate", "occupation");
|
| 70 |
+
$tab2_fields_key_arr = array("selfReportedCreditScore", "bankName", "firstAccountHolderName", "bankAccountType", "bankAccountNumber", "routingNumber", "ssn");
|
| 71 |
+
$tab3_fields_key_arr = array("loanAmount", "loanPurpose", "loanTerms");
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
/* Personal Information */
|
| 76 |
+
|
| 77 |
+
/* firstName */
|
| 78 |
+
if (!Zend_Validate::is($formData['firstName'], 'NotEmpty')) {
|
| 79 |
+
$validation_error['firstName'] = "This field is required";
|
| 80 |
+
} else {
|
| 81 |
+
if (!$name_validator->isValid($formData['firstName'])) {
|
| 82 |
+
$validation_error['firstName'] = "First name should be string";
|
| 83 |
+
}
|
| 84 |
+
}
|
| 85 |
+
|
| 86 |
+
/* lastName */
|
| 87 |
+
if (!Zend_Validate::is($formData['lastName'], 'NotEmpty')) {
|
| 88 |
+
$validation_error['lastName'] = "This field is required";
|
| 89 |
+
} else {
|
| 90 |
+
if (!$name_validator->isValid($formData['lastName'])) {
|
| 91 |
+
$validation_error['lastName'] = "Last name should be string";
|
| 92 |
+
}
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
/* emailId */
|
| 96 |
+
if (!Zend_Validate::is($formData['emailId'], 'NotEmpty')) {
|
| 97 |
+
$validation_error['emailId'] = "This field is required";
|
| 98 |
+
} else {
|
| 99 |
+
if (!Zend_Validate::is($formData['emailId'], 'EmailAddress')) {
|
| 100 |
+
$validation_error['emailId'] = "Invalid Email Address";
|
| 101 |
+
}
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
/* birthDate */
|
| 105 |
+
if (!Zend_Validate::is($formData['birthDate'], 'NotEmpty')) {
|
| 106 |
+
$validation_error['birthDate'] = "This field is required";
|
| 107 |
+
} else {
|
| 108 |
+
if (!$date_validator->isValid($formData['birthDate'])) {
|
| 109 |
+
$validation_error['birthDate'] = "Invalid date format";
|
| 110 |
+
}
|
| 111 |
+
$currentDate = date('Y-m-d');
|
| 112 |
+
if (strtotime($currentDate) > strtotime($formData['birthDate'])) {
|
| 113 |
+
$cl_age = Mage::helper('clxfunding')->getAge($formData['birthDate'], $currentDate);
|
| 114 |
+
if ($cl_age < 18) {
|
| 115 |
+
$validation_error['birthDate'] = "Age should be above 18";
|
| 116 |
+
}
|
| 117 |
+
} else {
|
| 118 |
+
$validation_error['birthDate'] = "Invalid birthDate";
|
| 119 |
+
}
|
| 120 |
+
}
|
| 121 |
+
|
| 122 |
+
/* mobilePhoneAreaCode */
|
| 123 |
+
if (!Zend_Validate::is($formData['mobilePhoneAreaCode'], 'NotEmpty')) {
|
| 124 |
+
$validation_error['mobilePhoneAreaCode'] = "This field is required";
|
| 125 |
+
} else {
|
| 126 |
+
if (!$string_length_min_max_3->isValid($formData['mobilePhoneAreaCode'])) {// 3digits only
|
| 127 |
+
$validation_error['mobilePhoneAreaCode'] = "This field should contain 3 digits only";
|
| 128 |
+
}
|
| 129 |
+
}
|
| 130 |
+
/* mobileNumber */
|
| 131 |
+
if (!Zend_Validate::is($formData['mobileNumber'], 'NotEmpty')) {
|
| 132 |
+
$validation_error['mobileNumber'] = "This field is required";
|
| 133 |
+
} else {
|
| 134 |
+
if ($is_digit->isValid($formData['mobileNumber'])) { //digits
|
| 135 |
+
if (!$string_length_min_max_10->isValid($formData['mobileNumber'])) {// 10 digits only
|
| 136 |
+
$validation_error['mobileNumber'] = "This field should contain 10 digits only";
|
| 137 |
+
}
|
| 138 |
+
} else {
|
| 139 |
+
$validation_error['mobileNumber'] = "This field should contain 10 digits only";
|
| 140 |
+
}
|
| 141 |
+
}
|
| 142 |
+
|
| 143 |
+
/* street */
|
| 144 |
+
if (!Zend_Validate::is($formData['street'], 'NotEmpty')) {
|
| 145 |
+
$validation_error['street'] = "This field is required";
|
| 146 |
+
}
|
| 147 |
+
|
| 148 |
+
/* city */
|
| 149 |
+
if (!Zend_Validate::is($formData['city'], 'NotEmpty')) {
|
| 150 |
+
$validation_error['city'] = "This field is required";
|
| 151 |
+
}
|
| 152 |
+
|
| 153 |
+
/* state */
|
| 154 |
+
if (!Zend_Validate::is($formData['state'], 'NotEmpty')) {
|
| 155 |
+
$validation_error['state'] = "This field is required";
|
| 156 |
+
} else {
|
| 157 |
+
if (!in_array($formData['state'], $states_a)) {
|
| 158 |
+
$validation_error['state'] = "Not a valid state";
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
|
| 162 |
+
/* zipcode */
|
| 163 |
+
if (!Zend_Validate::is($formData['zipcode'], 'NotEmpty')) {
|
| 164 |
+
$validation_error['zipcode'] = "This field is required";
|
| 165 |
+
} else {
|
| 166 |
+
if (!$string_length_max_8->isValid($formData['zipcode'])) {// 10 digits only
|
| 167 |
+
$validation_error['zipcode'] = "This field should contain maximum 8 digits";
|
| 168 |
+
}
|
| 169 |
+
}
|
| 170 |
+
/* country */
|
| 171 |
+
if (isset($formData['country'])) {
|
| 172 |
+
if (!Zend_Validate::is($formData['country'], 'NotEmpty')) {
|
| 173 |
+
$validation_error['country'] = "This field is required";
|
| 174 |
+
}
|
| 175 |
+
}
|
| 176 |
+
|
| 177 |
+
/* yearlyIncome */
|
| 178 |
+
if (!Zend_Validate::is($formData['yearlyIncome'], 'NotEmpty')) {
|
| 179 |
+
$validation_error['yearlyIncome'] = "This field is required";
|
| 180 |
+
} else {
|
| 181 |
+
if (!$is_decimal->isValid($formData['yearlyIncome'])) {
|
| 182 |
+
$validation_error['yearlyIncome'] = "This field contain decimal value only";
|
| 183 |
+
}
|
| 184 |
+
}
|
| 185 |
+
|
| 186 |
+
/* employmentStatus */
|
| 187 |
+
if (!Zend_Validate::is($formData['employmentStatus'], 'NotEmpty')) {
|
| 188 |
+
$validation_error['employmentStatus'] = "This field is required";
|
| 189 |
+
} else {
|
| 190 |
+
if (!array_key_exists($formData['employmentStatus'], $employee_status_a))//
|
| 191 |
+
if (!in_array($formData['employmentStatus'], $employee_status_a)) {
|
| 192 |
+
$validation_error['employmentStatus'] = "Invalid employee status";
|
| 193 |
+
}
|
| 194 |
+
}
|
| 195 |
+
/* employerName */
|
| 196 |
+
if (!Zend_Validate::is($formData['employerName'], 'NotEmpty')) {
|
| 197 |
+
$validation_error['employerName'] = "This field is required";
|
| 198 |
+
} else {
|
| 199 |
+
if (!$string_length_max_100->isValid($formData['employerName'])) {// string length <=100
|
| 200 |
+
$validation_error['employerName'] = "String length should be less than 100";
|
| 201 |
+
}
|
| 202 |
+
}
|
| 203 |
+
|
| 204 |
+
/* employmentStartDate */
|
| 205 |
+
if (!Zend_Validate::is($formData['employmentStartDate'], 'NotEmpty')) {
|
| 206 |
+
$validation_error['employmentStartDate'] = "This field is required";
|
| 207 |
+
} else {
|
| 208 |
+
if (!$date_validator->isValid($formData['employmentStartDate'])) {
|
| 209 |
+
$validation_error['employmentStartDate'] = "Invalid date format";
|
| 210 |
+
}
|
| 211 |
+
if (isset($formData['birthDate']) && (strtotime($formData['employmentStartDate']) > strtotime($formData['birthDate']))) {
|
| 212 |
+
$cl_age = Mage::helper('clxfunding')->getAge($formData['birthDate'], $formData['employmentStartDate']); // child labour 14
|
| 213 |
+
if ($cl_age < 14) {
|
| 214 |
+
$validation_error['employmentStartDate'] = "Invalid Employment Date";
|
| 215 |
+
}
|
| 216 |
+
}
|
| 217 |
+
}
|
| 218 |
+
|
| 219 |
+
/* occupation */
|
| 220 |
+
if (!Zend_Validate::is($formData['occupation'], 'NotEmpty')) {
|
| 221 |
+
$validation_error['occupation'] = "This field is required";
|
| 222 |
+
} else {
|
| 223 |
+
if (!in_array($formData['occupation'], $occupation_a)) {
|
| 224 |
+
$validation_error['occupation'] = "Invalid occupation";
|
| 225 |
+
}
|
| 226 |
+
}
|
| 227 |
+
|
| 228 |
+
/* End- Personal Information */
|
| 229 |
+
|
| 230 |
+
/* Bank Details & SSN tab fields */
|
| 231 |
+
|
| 232 |
+
/* selfReportedCreditScore */
|
| 233 |
+
if (!Zend_Validate::is($formData['selfReportedCreditScore'], 'NotEmpty')) {
|
| 234 |
+
$validation_error['selfReportedCreditScore'] = "This field is required";
|
| 235 |
+
} else {
|
| 236 |
+
if (!array_key_exists($formData['selfReportedCreditScore'], $credit_score_a)) {
|
| 237 |
+
$validation_error['selfReportedCreditScore'] = "Invalid self reported credit score";
|
| 238 |
+
}
|
| 239 |
+
}
|
| 240 |
+
/* bankName */
|
| 241 |
+
if (!Zend_Validate::is($formData['bankName'], 'NotEmpty')) {
|
| 242 |
+
$validation_error['bankName'] = "This field is required";
|
| 243 |
+
} else {
|
| 244 |
+
if (!$string_length_max_255->isValid($formData['employerName'])) {// string length <=255
|
| 245 |
+
$validation_error['bankName'] = "String length should be less than 255";
|
| 246 |
+
}
|
| 247 |
+
}
|
| 248 |
+
/* firstAccountHolderName */
|
| 249 |
+
if (!Zend_Validate::is($formData['firstAccountHolderName'], 'NotEmpty')) {
|
| 250 |
+
$validation_error['firstAccountHolderName'] = "This field is required";
|
| 251 |
+
} else {
|
| 252 |
+
if (!$string_length_max_255->isValid($formData['firstAccountHolderName'])) {// string length <=255
|
| 253 |
+
$validation_error['firstAccountHolderName'] = "String length should be less than 255";
|
| 254 |
+
}
|
| 255 |
+
}
|
| 256 |
+
/* bankAccountType */
|
| 257 |
+
if (!Zend_Validate::is($formData['bankAccountType'], 'NotEmpty')) {
|
| 258 |
+
$validation_error['bankAccountType'] = "This field is required";
|
| 259 |
+
} else {
|
| 260 |
+
//if(!in_array($formData['bankAccountType'],$bankaccounttype_a)) // case sensitive in_array
|
| 261 |
+
if (!in_array(strtolower($formData['bankAccountType']), array_map('strtolower', $bankaccounttype_a))) {//case insensitive in_array
|
| 262 |
+
$validation_error['bankAccountType'] = "Invalid bank account type";
|
| 263 |
+
}
|
| 264 |
+
}
|
| 265 |
+
|
| 266 |
+
/* bankAccountNumber */
|
| 267 |
+
if (!Zend_Validate::is($formData['bankAccountNumber'], 'NotEmpty')) {
|
| 268 |
+
$validation_error['bankAccountNumber'] = "This field is required";
|
| 269 |
+
} else {
|
| 270 |
+
if (!$string_length_max_30->isValid($formData['bankAccountNumber'])) {// string length <=255
|
| 271 |
+
$validation_error['bankAccountNumber'] = "Invalid bank account number";
|
| 272 |
+
}
|
| 273 |
+
}
|
| 274 |
+
/* routingNumber */
|
| 275 |
+
if (!Zend_Validate::is($formData['routingNumber'], 'NotEmpty')) {
|
| 276 |
+
$validation_error['routingNumber'] = "This field is required";
|
| 277 |
+
} else {
|
| 278 |
+
if (!$string_length_max_255->isValid($formData['routingNumber'])) {// string length <=255
|
| 279 |
+
$validation_error['routingNumber'] = "Invalid routing number";
|
| 280 |
+
}
|
| 281 |
+
}
|
| 282 |
+
|
| 283 |
+
|
| 284 |
+
/* ssn */
|
| 285 |
+
if (!Zend_Validate::is($formData['ssn'], 'NotEmpty')) {
|
| 286 |
+
$validation_error['ssn'] = "This field is required";
|
| 287 |
+
} else {
|
| 288 |
+
if (!$string_length_min_max_9->isValid($formData['ssn'])) {
|
| 289 |
+
$validation_error['ssn'] = "Invalid ssn";
|
| 290 |
+
}
|
| 291 |
+
}
|
| 292 |
+
|
| 293 |
+
/* End- Bank Details & SSN tab fields */
|
| 294 |
+
|
| 295 |
+
/* Confirmation & submit tab fields */
|
| 296 |
+
|
| 297 |
+
/* loanAmount */
|
| 298 |
+
if (!Zend_Validate::is($formData['loanAmount'], 'NotEmpty')) {
|
| 299 |
+
$validation_error['loanAmount'] = "This field is required";
|
| 300 |
+
} else {
|
| 301 |
+
if (!$is_decimal->isValid($formData['loanAmount'])) {
|
| 302 |
+
$validation_error['loanAmount'] = "Invalid loan amount";
|
| 303 |
+
}
|
| 304 |
+
}
|
| 305 |
+
|
| 306 |
+
/* loanPurpose */
|
| 307 |
+
if (!Zend_Validate::is($formData['loanPurpose'], 'NotEmpty')) {
|
| 308 |
+
$validation_error['loanPurpose'] = "This field is required";
|
| 309 |
+
} else {
|
| 310 |
+
if (!in_array($formData['loanPurpose'], $loanpurpose_a)) { //case sensitive in_array
|
| 311 |
+
$validation_error['loanPurpose'] = "Invalid loan purpose";
|
| 312 |
+
}
|
| 313 |
+
}
|
| 314 |
+
|
| 315 |
+
/* loanTerms */
|
| 316 |
+
if (!Zend_Validate::is($formData['loanTerms'], 'NotEmpty')) {
|
| 317 |
+
$validation_error['loanTerms'] = "This field is required";
|
| 318 |
+
} else {
|
| 319 |
+
if (!$is_decimal->isValid($formData['loanTerms'])) {
|
| 320 |
+
$validation_error['loanTerms'] = "This field contain decimal value only";
|
| 321 |
+
}
|
| 322 |
+
}
|
| 323 |
+
|
| 324 |
+
/* End - Confirmation & submit tab fields */
|
| 325 |
+
|
| 326 |
+
/* If form contain validation errors then ajax will respond with error array */
|
| 327 |
+
if (isset($validation_error) && !empty($validation_error) && count($validation_error)) {
|
| 328 |
+
$tab_flag = array();
|
| 329 |
+
for ($i = 1; $i <= 3; $i++) {
|
| 330 |
+
for ($j = 0; $j < count(${"tab" . $i . "_fields_key_arr"}); $j++) {
|
| 331 |
+
if (isset($validation_error[${"tab" . $i . "_fields_key_arr"}[$j]]) && !empty($validation_error[${"tab" . $i . "_fields_key_arr"}[$j]])) {
|
| 332 |
+
array_push($tab_flag, $i);
|
| 333 |
+
break;
|
| 334 |
+
}
|
| 335 |
+
}
|
| 336 |
+
}
|
| 337 |
+
echo json_encode(array('valid' => FALSE, 'error_messages' => $validation_error, 'flag' => 'C', 'tab_flag' => $tab_flag));
|
| 338 |
+
}// else loan application form with no validation error
|
| 339 |
+
else {
|
| 340 |
+
if (isset($clx_button_flag) && !empty($clx_button_flag)) {
|
| 341 |
+
if ($clx_button_flag == 'check_eligibility') {
|
| 342 |
+
echo json_encode(array('valid' => TRUE, 'flag' => '2', 'redirect_url' => Mage::getBaseUrl() . 'clxfunding/ClxAPI/clxApiRequest'));
|
| 343 |
+
} else if ($clx_button_flag == 'loan_apply') {
|
| 344 |
+
echo json_encode(array('valid' => TRUE, 'flag' => '3', 'redirect_url' => Mage::getBaseUrl() . 'clxfunding/ClxAPI/clxApiRequest'));
|
| 345 |
+
} else {
|
| 346 |
+
echo json_encode(array('valid' => TRUE, 'flag' => '1', 'redirect_url' => 'undefined'));
|
| 347 |
+
}
|
| 348 |
+
} else {
|
| 349 |
+
echo json_encode(array('valid' => FALSE));
|
| 350 |
+
}
|
| 351 |
+
}
|
| 352 |
+
} else {
|
| 353 |
+
Mage::log('CLX Error : Merchant not configured with clx funding');
|
| 354 |
+
echo json_encode(array('valid' => FALSE,'flag'=>FALSE));
|
| 355 |
+
}
|
| 356 |
+
}
|
| 357 |
+
}
|
| 358 |
+
|
| 359 |
+
public function clxApiRequestAction() {
|
| 360 |
+
if ($this->getRequest()->isXmlHttpRequest()) {
|
| 361 |
+
$accountId = Mage::getStoreConfig('payment/clxfunding/account_id');
|
| 362 |
+
$authorizationField = Mage::getStoreConfig('payment/clxfunding/authorization_field');
|
| 363 |
+
$isBestOffer = Mage::getStoreConfig('payment/clxfunding/is_Best_Offer');
|
| 364 |
+
|
| 365 |
+
$quote = Mage::getModel('checkout/session')->getQuote();
|
| 366 |
+
$quoteData = $quote->getData();
|
| 367 |
+
$grandTotal = $quoteData['grand_total'];
|
| 368 |
+
|
| 369 |
+
$quoteId = Mage::getSingleton('checkout/session')->getQuoteId();
|
| 370 |
+
$applicationId = "APP-" . $quoteId;
|
| 371 |
+
if (isset($quoteId) && !empty($quoteId) && isset($applicationId) && $applicationId != 'APP-') {
|
| 372 |
+
Mage::getSingleton('checkout/session')->setClxQuoteParam($quoteId);
|
| 373 |
+
Mage::getSingleton('checkout/session')->setClxApplicationIdParam($applicationId);
|
| 374 |
+
}
|
| 375 |
+
|
| 376 |
+
$clx_button_flag = trim($this->getRequest()->getParam('clx_btn_flag'));
|
| 377 |
+
if (isset($accountId) && isset($authorizationField) && isset($applicationId)) {
|
| 378 |
+
/* loan application form data */
|
| 379 |
+
$data = array(
|
| 380 |
+
"firstName" => trim($this->getRequest()->getParam('firstName')),
|
| 381 |
+
"lastName" => trim($this->getRequest()->getParam('lastName')),
|
| 382 |
+
"emailId" => trim($this->getRequest()->getParam('emailId')),
|
| 383 |
+
"birthDate" => trim($this->getRequest()->getParam('birthDate')),
|
| 384 |
+
"street" => trim($this->getRequest()->getParam('street')),
|
| 385 |
+
"city" => trim($this->getRequest()->getParam('city')),
|
| 386 |
+
"state" => trim($this->getRequest()->getParam('state')),
|
| 387 |
+
"zipcode" => trim($this->getRequest()->getParam('zipcode')),
|
| 388 |
+
"loanAmount" => floatval($grandTotal),
|
| 389 |
+
"loanPurpose" => trim($this->getRequest()->getParam('loanPurpose')),
|
| 390 |
+
"loanTerms" => floatval(trim($this->getRequest()->getParam('loanTerms'))),
|
| 391 |
+
"yearlyIncome" => floatval(trim($this->getRequest()->getParam('yearlyIncome'))),
|
| 392 |
+
"employmentStatus" => trim($this->getRequest()->getParam('employmentStatus')),
|
| 393 |
+
"selfReportedCreditScore" => intval(trim($this->getRequest()->getParam('selfReportedCreditScore'))),
|
| 394 |
+
"mobilePhoneAreaCode" => trim($this->getRequest()->getParam('mobilePhoneAreaCode')),
|
| 395 |
+
"mobileNumber" => trim($this->getRequest()->getParam('mobileNumber')),
|
| 396 |
+
"ssn" => trim($this->getRequest()->getParam('ssn')),
|
| 397 |
+
"employerName" => trim($this->getRequest()->getParam('employerName')),
|
| 398 |
+
"occupation" => trim($this->getRequest()->getParam('occupation')),
|
| 399 |
+
"employmentStartDate" => trim($this->getRequest()->getParam('employmentStartDate')),
|
| 400 |
+
"bankName" => trim($this->getRequest()->getParam('bankName')),
|
| 401 |
+
"firstAccountHolderName" => trim($this->getRequest()->getParam('firstAccountHolderName')),
|
| 402 |
+
"bankAccountType" => trim($this->getRequest()->getParam('bankAccountType')),
|
| 403 |
+
"bankAccountNumber" => trim($this->getRequest()->getParam('bankAccountNumber')),
|
| 404 |
+
"routingNumber" => trim($this->getRequest()->getParam('routingNumber')),
|
| 405 |
+
"currency" => Mage::app()->getStore()->getCurrentCurrencyCode()
|
| 406 |
+
);
|
| 407 |
+
|
| 408 |
+
/* to save loan application form data to custom clx table */
|
| 409 |
+
$clx_loan_application_data = $data;
|
| 410 |
+
$clx_loan_application_data['application_id'] = $applicationId;
|
| 411 |
+
$clx_loan_application_data['quote_id'] = $quoteId;
|
| 412 |
+
Mage::getSingleton('checkout/session')->setLoanApplicationDataToSave($clx_loan_application_data);
|
| 413 |
+
/* to save loan application form data to custom clx table */
|
| 414 |
+
|
| 415 |
+
$data['accountId'] = $accountId;
|
| 416 |
+
if (isset($clx_button_flag) && !empty($clx_button_flag)) {
|
| 417 |
+
if ($clx_button_flag == 'check_eligibility') {
|
| 418 |
+
$data['isBestOffer'] = (isset($isBestOffer) && $isBestOffer=="1")?TRUE:FALSE;
|
| 419 |
+
//$data['applicationId'] = $applicationId;
|
| 420 |
+
$url = "http://portal.clexchange.io/api/loan-offers";
|
| 421 |
+
$page = "/api/loan-offers";
|
| 422 |
+
$result = Mage::helper('clxfunding')->mastercurlRequestToClxLoanOfferApi($url, $page, $data, $authorizationField);
|
| 423 |
+
if (isset($result['valid']) && $result['valid']) {
|
| 424 |
+
if (isset($result['result'])) {
|
| 425 |
+
$api_response = json_decode($result['result']);
|
| 426 |
+
if (isset($api_response->application_status) && $api_response->application_status == "REJECTED") {
|
| 427 |
+
if (isset($api_response->errors[0]) && !empty($api_response->errors[0])) {
|
| 428 |
+
if (isset($api_response->errors[0]->errorCode) && !empty($api_response->errors[0]->errorCode) && $api_response->errors[0]->errorCode == 'UNAUTHORIZED') {
|
| 429 |
+
$errorMessage = "Either authorization key is invalid or no account exist for passed accountId";
|
| 430 |
+
if (isset($api_response->errors[0]->errorMessage) && !empty($api_response->errors[0]->errorMessage)) {
|
| 431 |
+
$errorMessage = $api_response->errors[0]->errorMessage;
|
| 432 |
+
}
|
| 433 |
+
try {
|
| 434 |
+
Mage::getModel('clxfunding/ClxEmail')->sendEmail(
|
| 435 |
+
'clx_error_email_template', Mage::getStoreConfig('trans_email/ident_sales/email'), Mage::getStoreConfig('trans_email/ident_sales/name'), 'Clx Error', array('clxError' => $errorMessage)
|
| 436 |
+
);
|
| 437 |
+
} catch (Exception $ex) {
|
| 438 |
+
Mage::logException($ex);
|
| 439 |
+
}
|
| 440 |
+
}
|
| 441 |
+
}
|
| 442 |
+
}
|
| 443 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/loan_offer_response.phtml'));
|
| 444 |
+
$block->setLoanOffers(json_decode($result['result']));
|
| 445 |
+
$block->setLoanPurpose($data['loanPurpose']);
|
| 446 |
+
$myHtml = $block->toHtml();
|
| 447 |
+
echo json_encode(array('valid' => TRUE, 'offer_view' => $myHtml));
|
| 448 |
+
}
|
| 449 |
+
} else {
|
| 450 |
+
Mage::log('CLX Error : Loan offer api has request error ');
|
| 451 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 452 |
+
}
|
| 453 |
+
} else {
|
| 454 |
+
|
| 455 |
+
$url = "http://portal.clexchange.io/api/loan-applications";
|
| 456 |
+
$page = "/api/loan-applications";
|
| 457 |
+
$data['applicationId'] = $applicationId;
|
| 458 |
+
$result = Mage::helper('clxfunding')->mastercurlRequestToClxLoanApplicationApi($url, $page, $data, $authorizationField);
|
| 459 |
+
if (isset($result['valid']) && $result['valid']) {
|
| 460 |
+
if (isset($result['result'])) {
|
| 461 |
+
$api_response = json_decode($result['result']);
|
| 462 |
+
if (isset($api_response->application_status) && $api_response->application_status == "REJECTED") {
|
| 463 |
+
if (isset($api_response->errors[0]) && !empty($api_response->errors[0])) {
|
| 464 |
+
if (isset($api_response->errors[0]->errorCode) && !empty($api_response->errors[0]->errorCode) && $api_response->errors[0]->errorCode == 'UNAUTHORIZED') {
|
| 465 |
+
$errorMessage = "Either authorization key is invalid or no account exist for passed accountId";
|
| 466 |
+
if (isset($api_response->errors[0]->errorMessage) && !empty($api_response->errors[0]->errorMessage)) {
|
| 467 |
+
$errorMessage = $api_response->errors[0]->errorMessage;
|
| 468 |
+
}
|
| 469 |
+
try {
|
| 470 |
+
Mage::getModel('clxfunding/ClxEmail')->sendEmail(
|
| 471 |
+
'clx_error_email_template', Mage::getStoreConfig('trans_email/ident_sales/email'), Mage::getStoreConfig('trans_email/ident_sales/name'), 'Clx Error', array('clxError' => $errorMessage)
|
| 472 |
+
);
|
| 473 |
+
} catch (Exception $ex) {
|
| 474 |
+
Mage::logException($ex);
|
| 475 |
+
}
|
| 476 |
+
}
|
| 477 |
+
}
|
| 478 |
+
}
|
| 479 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/loanapplicationstatus.phtml'));
|
| 480 |
+
$block->setLoanApplication(json_decode($result['result']));
|
| 481 |
+
$block->setLoanApplicationPurpose($data['loanPurpose']);
|
| 482 |
+
$myHtml = $block->toHtml();
|
| 483 |
+
echo json_encode(array('valid' => TRUE, 'offer_view' => $myHtml));
|
| 484 |
+
}
|
| 485 |
+
} else {
|
| 486 |
+
Mage::log('CLX Error : Loan application api has request error ');
|
| 487 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 488 |
+
}
|
| 489 |
+
}
|
| 490 |
+
}
|
| 491 |
+
}
|
| 492 |
+
else
|
| 493 |
+
{
|
| 494 |
+
echo json_encode(array('valid' => FALSE));
|
| 495 |
+
}
|
| 496 |
+
} else {
|
| 497 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 498 |
+
}
|
| 499 |
+
}
|
| 500 |
+
|
| 501 |
+
public function storeSelectedLoanOfferAction() {
|
| 502 |
+
if ($this->getRequest()->isXmlHttpRequest()) {
|
| 503 |
+
$data = serialize($this->getRequest()->getParams());
|
| 504 |
+
$clx_btn_flag = $this->getRequest()->getParam('clx_btn_flag');
|
| 505 |
+
$loanOfferId = $this->getRequest()->getParam('loanOfferId');
|
| 506 |
+
if (isset($clx_btn_flag) && !empty($clx_btn_flag) && $clx_btn_flag == "check_eligibility" && isset($loanOfferId) && !empty($loanOfferId) && isset($data) && !empty($data)) {
|
| 507 |
+
Mage::getSingleton('checkout/session')->setLoanApplicationData($data);
|
| 508 |
+
Mage::getSingleton('checkout/session')->setLoanOfferFlag(true);
|
| 509 |
+
$check_set = Mage::getSingleton('checkout/session')->getLoanOfferFlag();
|
| 510 |
+
if (isset($check_set)) {
|
| 511 |
+
echo json_encode(array('valid' => TRUE));
|
| 512 |
+
} else {
|
| 513 |
+
echo json_encode(array('valid' => FALSE));
|
| 514 |
+
}
|
| 515 |
+
} else {
|
| 516 |
+
echo json_encode(array('valid' => FALSE));
|
| 517 |
+
}
|
| 518 |
+
} else {
|
| 519 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 520 |
+
}
|
| 521 |
+
}
|
| 522 |
+
|
| 523 |
+
public function setLoanApplicationSessAction() {
|
| 524 |
+
if ($this->getRequest()->isXmlHttpRequest()) {
|
| 525 |
+
|
| 526 |
+
Mage::getSingleton('checkout/session')->setLoanApplicationFlag(true);
|
| 527 |
+
$check_session_set = Mage::getSingleton('checkout/session')->getLoanApplicationFlag();
|
| 528 |
+
if (isset($check_session_set) && $check_session_set) {
|
| 529 |
+
echo json_encode(array('valid' => TRUE));
|
| 530 |
+
} else {
|
| 531 |
+
echo json_encode(array('valid' => FALSE));
|
| 532 |
+
}
|
| 533 |
+
} else {
|
| 534 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 535 |
+
}
|
| 536 |
+
}
|
| 537 |
+
|
| 538 |
+
function saveStausAction() {
|
| 539 |
+
$LoanOfferFlag = Mage::getSingleton('checkout/session')->getLoanOfferFlag(); // session set to track flow of loan offer
|
| 540 |
+
$loanApplicationFlag = Mage::getSingleton('checkout/session')->getLoanApplicationFlag(); // session set to track flow of loan application
|
| 541 |
+
Mage::getSingleton('checkout/session')->unsLoanOfferFlag();
|
| 542 |
+
Mage::getSingleton('checkout/session')->unsLoanApplicationFlag();
|
| 543 |
+
|
| 544 |
+
if (isset($LoanOfferFlag) && $LoanOfferFlag) {
|
| 545 |
+
$quoteId = Mage::getSingleton('checkout/session')->getQuoteId();
|
| 546 |
+
|
| 547 |
+
Mage::getSingleton('checkout/session')->setClxOfferQuoteId($quoteId);
|
| 548 |
+
Mage::getSingleton('checkout/session')->setClxOfferApplicationId("APP-" . $quoteId);
|
| 549 |
+
|
| 550 |
+
Mage::getSingleton('checkout/session')->setLoanOfferConfirmAcceptance(true);
|
| 551 |
+
$this->loadLayout();
|
| 552 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/confirm_user_acceptance.phtml'));
|
| 553 |
+
$this->getLayout()->getBlock('content')->append($block);
|
| 554 |
+
$this->renderLayout();
|
| 555 |
+
} else if (isset($loanApplicationFlag) && $loanApplicationFlag) {
|
| 556 |
+
$approve_required = Mage::getStoreConfig('payment/clxfunding/approve_Required'); // user approve required
|
| 557 |
+
$clx_status_track_model = Mage::getModel('clxfunding/CronOrderStatusUpdate'); // load clx status update model
|
| 558 |
+
|
| 559 |
+
$quoteId = Mage::getSingleton('checkout/session')->getQuoteId();
|
| 560 |
+
$applicationId = "APP-" . $quoteId;
|
| 561 |
+
|
| 562 |
+
$clx_quoteid = Mage::getSingleton('checkout/session')->getClxQuoteParam();
|
| 563 |
+
Mage::getSingleton('checkout/session')->unsClxQuoteParam();
|
| 564 |
+
$clx_applicationid = Mage::getSingleton('checkout/session')->getClxApplicationIdParam();
|
| 565 |
+
Mage::getSingleton('checkout/session')->unsClxApplicationIdParam();
|
| 566 |
+
|
| 567 |
+
if (isset($quoteId) && isset($applicationId) && $applicationId != 'APP-' && isset($clx_quoteid) && isset($clx_applicationid) && $quoteId == $clx_quoteid && $applicationId == $clx_applicationid) {
|
| 568 |
+
$order = new Mage_Sales_Model_Order();
|
| 569 |
+
$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
|
| 570 |
+
$order->loadByIncrementId($orderId);
|
| 571 |
+
$order->setState(Mage_Sales_Model_Order::STATE_NEW, true, 'Loan Application Approved.');
|
| 572 |
+
|
| 573 |
+
$customer_email = $order['customer_email'];
|
| 574 |
+
$customer_firstname = $order['customer_firstname'];
|
| 575 |
+
$customer_lastname = $order['customer_lastname'];
|
| 576 |
+
|
| 577 |
+
$loanAppFlag = 0;
|
| 578 |
+
if (isset($approve_required) && $approve_required) {
|
| 579 |
+
$loanAppFlag = 1;
|
| 580 |
+
} else {
|
| 581 |
+
// Mail notification - to - customer
|
| 582 |
+
/* try
|
| 583 |
+
{
|
| 584 |
+
Mage::getModel('clxfunding/ClxEmail')->sendEmail(
|
| 585 |
+
'clx_loan_approve_email_template',
|
| 586 |
+
$customer_email,
|
| 587 |
+
uc_words(strtolower($customer_firstname)).' '.uc_words(strtolower($customer_lastname)),
|
| 588 |
+
'Loan offer confirmation',
|
| 589 |
+
array('firstName' => uc_words(strtolower($customer_firstname)), 'lastName' => uc_words(strtolower($customer_lastname)))
|
| 590 |
+
);
|
| 591 |
+
}catch (Exception $ex) {
|
| 592 |
+
Mage::logException($ex);
|
| 593 |
+
} */
|
| 594 |
+
}
|
| 595 |
+
|
| 596 |
+
try {
|
| 597 |
+
$order->sendNewOrderEmail();
|
| 598 |
+
} catch (Exception $ex) {
|
| 599 |
+
Mage::logException($ex);
|
| 600 |
+
}
|
| 601 |
+
$order->save();
|
| 602 |
+
|
| 603 |
+
$clx_loan_application_data = Mage::getSingleton('checkout/session')->getLoanApplicationDataToSave();
|
| 604 |
+
$clx_loan_application_data['order_id'] = $orderId;
|
| 605 |
+
$clx_loan_application_data['status'] = 'PENDING';
|
| 606 |
+
$clx_loan_application_data['approvalRequired_flag'] = $loanAppFlag;
|
| 607 |
+
$clx_status_track_model->saveLoanApplicationDetails($clx_loan_application_data);
|
| 608 |
+
Mage::getSingleton('checkout/session')->unsLoanApplicationDataToSave();
|
| 609 |
+
|
| 610 |
+
Mage::getSingleton('checkout/session')->unsQuoteId();
|
| 611 |
+
Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/success', array('_secure' => false));
|
| 612 |
+
} else {
|
| 613 |
+
Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/failure', array('_secure' => false));
|
| 614 |
+
}
|
| 615 |
+
} else {
|
| 616 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 617 |
+
}
|
| 618 |
+
}
|
| 619 |
+
|
| 620 |
+
function saveOrderCustomAction() {
|
| 621 |
+
$sess_quoteId = Mage::getSingleton('checkout/session')->getClxOfferQuoteId_New();
|
| 622 |
+
Mage::getSingleton('checkout/session')->unsClxOfferQuoteId_New();
|
| 623 |
+
$sess_applicationId = Mage::getSingleton('checkout/session')->getClxOfferApplicationId_New();
|
| 624 |
+
Mage::getSingleton('checkout/session')->unsClxOfferApplicationId_New();
|
| 625 |
+
|
| 626 |
+
$clx_status_track_model = Mage::getModel('clxfunding/CronOrderStatusUpdate'); // load clx status update model
|
| 627 |
+
|
| 628 |
+
$quoteId = Mage::getSingleton('checkout/session')->getQuoteId();
|
| 629 |
+
$applicationId = "APP-" . $quoteId;
|
| 630 |
+
|
| 631 |
+
$clx_quoteid = Mage::getSingleton('checkout/session')->getClxQuoteParam();
|
| 632 |
+
Mage::getSingleton('checkout/session')->unsClxQuoteParam();
|
| 633 |
+
$clx_applicationid = Mage::getSingleton('checkout/session')->getClxApplicationIdParam();
|
| 634 |
+
Mage::getSingleton('checkout/session')->unsClxApplicationIdParam();
|
| 635 |
+
|
| 636 |
+
$order = new Mage_Sales_Model_Order();
|
| 637 |
+
$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
|
| 638 |
+
$order->loadByIncrementId($orderId);
|
| 639 |
+
$order->setState(Mage_Sales_Model_Order::STATE_NEW, true, 'Loan Application Approved.');
|
| 640 |
+
$customer_email = $order['customer_email'];
|
| 641 |
+
$customer_firstname = $order['customer_firstname'];
|
| 642 |
+
$customer_lastname = $order['customer_lastname'];
|
| 643 |
+
try {
|
| 644 |
+
$order->sendNewOrderEmail();
|
| 645 |
+
} catch (Exception $ex) {
|
| 646 |
+
Mage::logException($ex);
|
| 647 |
+
}
|
| 648 |
+
$order->save();
|
| 649 |
+
|
| 650 |
+
$clx_loan_application_data = Mage::getSingleton('checkout/session')->getLoanApplicationDataToSave();
|
| 651 |
+
$clx_loan_application_data['order_id'] = $orderId;
|
| 652 |
+
$clx_loan_application_data['status'] = 'PENDING';
|
| 653 |
+
$clx_loan_application_data['approvalRequired_flag'] = 0;
|
| 654 |
+
$clx_loan_application_data['offer_acceptance_flag'] = true;
|
| 655 |
+
$clx_status_track_model->saveLoanApplicationDetails($clx_loan_application_data);
|
| 656 |
+
Mage::getSingleton('checkout/session')->unsLoanApplicationDataToSave();
|
| 657 |
+
|
| 658 |
+
if (isset($quoteId) && !empty($quoteId) && isset($applicationId) && $applicationId != 'APP-') {
|
| 659 |
+
if (isset($clx_quoteid) && isset($clx_applicationid) && $quoteId == $clx_quoteid && $applicationId == $clx_applicationid) {
|
| 660 |
+
if (isset($customer_email) && !empty($customer_email) && isset($customer_firstname) && !empty($customer_firstname) && isset($customer_lastname) && !empty($customer_lastname)) {
|
| 661 |
+
// Mail notification - to - customer
|
| 662 |
+
/*
|
| 663 |
+
try
|
| 664 |
+
{
|
| 665 |
+
Mage::getModel('clxfunding/ClxEmail')->sendEmail(
|
| 666 |
+
'clx_loan_approve_email_template',
|
| 667 |
+
$customer_email,
|
| 668 |
+
uc_words(strtolower($customer_firstname)).' '.uc_words(strtolower($customer_lastname)),
|
| 669 |
+
'Loan offer confirmation',
|
| 670 |
+
array('firstName' => uc_words(strtolower($customer_firstname)), 'lastName' => uc_words(strtolower($customer_lastname)))
|
| 671 |
+
);
|
| 672 |
+
}catch (Exception $ex) {
|
| 673 |
+
Mage::logException($ex);
|
| 674 |
+
} */
|
| 675 |
+
}
|
| 676 |
+
Mage::getSingleton('checkout/session')->unsQuoteId();
|
| 677 |
+
Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/success', array('_secure' => false));
|
| 678 |
+
} else {
|
| 679 |
+
Mage::log('Clx Funding Error Message: current quote id not matches with the quote id that you sent with applicationId');
|
| 680 |
+
}
|
| 681 |
+
} else if (isset($sess_quoteId) && !empty($sess_quoteId) && isset($sess_applicationId) && $sess_applicationId != 'APP-') {
|
| 682 |
+
if (isset($clx_quoteid) && isset($clx_applicationid) && $sess_quoteId == $clx_quoteid && $sess_applicationId == $clx_applicationid) {
|
| 683 |
+
if (isset($customer_email) && !empty($customer_email) && isset($customer_firstname) && !empty($customer_firstname) && isset($customer_lastname) && !empty($customer_lastname)) {
|
| 684 |
+
// Mail notification - to - customer
|
| 685 |
+
/* try
|
| 686 |
+
{
|
| 687 |
+
Mage::getModel('clxfunding/ClxEmail')->sendEmail(
|
| 688 |
+
'clx_loan_approve_email_template',
|
| 689 |
+
$customer_email,
|
| 690 |
+
uc_words(strtolower($customer_firstname)).' '.uc_words(strtolower($customer_lastname)),
|
| 691 |
+
'Loan offer confirmation accepted',
|
| 692 |
+
array('firstName' => uc_words(strtolower($customer_firstname)), 'lastName' => uc_words(strtolower($customer_lastname)))
|
| 693 |
+
);
|
| 694 |
+
}catch (Exception $ex) {
|
| 695 |
+
Mage::logException($ex);
|
| 696 |
+
} */
|
| 697 |
+
}
|
| 698 |
+
|
| 699 |
+
Mage::getSingleton('checkout/session')->unsQuoteId();
|
| 700 |
+
Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/success', array('_secure' => false));
|
| 701 |
+
} else {
|
| 702 |
+
Mage::log('Clx Funding Error Message: current quote id not matches with the quote id that you sent with applicationId');
|
| 703 |
+
}
|
| 704 |
+
} else {
|
| 705 |
+
Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/failure', array('_secure' => false));
|
| 706 |
+
}
|
| 707 |
+
}
|
| 708 |
+
|
| 709 |
+
function checkLoanOfferAcceptanceStatusAction() {
|
| 710 |
+
$formData = unserialize(Mage::getSingleton('checkout/session')->getLoanApplicationData());
|
| 711 |
+
$temp_var = Mage::getSingleton('checkout/session')->getLoanOfferConfirmAcceptance();
|
| 712 |
+
$accountId = Mage::getStoreConfig('payment/clxfunding/account_id');
|
| 713 |
+
$authorizationField = Mage::getStoreConfig('payment/clxfunding/authorization_field');
|
| 714 |
+
$isBestOffer = Mage::getStoreConfig('payment/clxfunding/is_Best_Offer');
|
| 715 |
+
|
| 716 |
+
$quoteId = Mage::getSingleton('checkout/session')->getQuoteId();
|
| 717 |
+
$applicationId = "APP-" . $quoteId;
|
| 718 |
+
|
| 719 |
+
if (isset($quoteId) && !empty($quoteId) && isset($applicationId) && $applicationId != 'APP-') {
|
| 720 |
+
Mage::getSingleton('checkout/session')->setClxQuoteParam($quoteId);
|
| 721 |
+
Mage::getSingleton('checkout/session')->setClxApplicationIdParam($applicationId);
|
| 722 |
+
$quote = Mage::getModel('checkout/session')->getQuote();
|
| 723 |
+
$quoteData = $quote->getData();
|
| 724 |
+
if (isset($quoteData['grand_total'])) {
|
| 725 |
+
$grandTotal = $quoteData['grand_total'];
|
| 726 |
+
}
|
| 727 |
+
} else {
|
| 728 |
+
$quoteId = Mage::getSingleton('checkout/session')->getClxOfferQuoteId();
|
| 729 |
+
$applicationId = Mage::getSingleton('checkout/session')->getClxOfferApplicationId();
|
| 730 |
+
Mage::getSingleton('checkout/session')->unsClxOfferQuoteId();
|
| 731 |
+
Mage::getSingleton('checkout/session')->unsClxOfferApplicationId();
|
| 732 |
+
Mage::getSingleton('checkout/session')->setClxOfferQuoteId_New($quoteId);
|
| 733 |
+
Mage::getSingleton('checkout/session')->setClxOfferApplicationId_New($applicationId);
|
| 734 |
+
$quote = Mage::getModel('sales/quote')->load($quoteId);
|
| 735 |
+
$quoteData = $quote->getData();
|
| 736 |
+
if (isset($quoteData['grand_total'])) {
|
| 737 |
+
$grandTotal = $quoteData['grand_total'];
|
| 738 |
+
}
|
| 739 |
+
}
|
| 740 |
+
|
| 741 |
+
Mage::getSingleton('checkout/session')->unsLoanOfferConfirmAcceptance();
|
| 742 |
+
Mage::getSingleton('checkout/session')->unsLoanApplicationData();
|
| 743 |
+
|
| 744 |
+
if (isset($temp_var) && $temp_var && isset($formData) && !empty($formData)) {
|
| 745 |
+
$data = array(
|
| 746 |
+
"firstName" => trim($formData['firstName']),
|
| 747 |
+
"lastName" => trim($formData['lastName']),
|
| 748 |
+
"emailId" => trim($formData['emailId']),
|
| 749 |
+
"birthDate" => trim($formData['birthDate']),
|
| 750 |
+
"street" => trim($formData['street']),
|
| 751 |
+
"city" => trim($formData['city']),
|
| 752 |
+
"state" => trim($formData['state']),
|
| 753 |
+
"zipcode" => trim($formData['zipcode']),
|
| 754 |
+
"loanAmount" => floatval($grandTotal),
|
| 755 |
+
"loanPurpose" => trim($formData['loanPurpose']),
|
| 756 |
+
"loanTerms" => floatval(trim($formData['loanTerms'])),
|
| 757 |
+
"yearlyIncome" => floatval(trim($formData['yearlyIncome'])),
|
| 758 |
+
"employmentStatus" => trim($formData['employmentStatus']),
|
| 759 |
+
"selfReportedCreditScore" => intval(trim($formData['selfReportedCreditScore'])),
|
| 760 |
+
"mobilePhoneAreaCode" => trim($formData['mobilePhoneAreaCode']),
|
| 761 |
+
"mobileNumber" => trim($formData['mobileNumber']),
|
| 762 |
+
"ssn" => trim($formData['ssn']),
|
| 763 |
+
"employerName" => trim($formData['employerName']),
|
| 764 |
+
"occupation" => trim($formData['occupation']),
|
| 765 |
+
"employmentStartDate" => trim($formData['employmentStartDate']),
|
| 766 |
+
"bankName" => trim($formData['bankName']),
|
| 767 |
+
"firstAccountHolderName" => trim($formData['firstAccountHolderName']),
|
| 768 |
+
"bankAccountType" => trim($formData['bankAccountType']),
|
| 769 |
+
"bankAccountNumber" => trim($formData['bankAccountNumber']),
|
| 770 |
+
"routingNumber" => trim($formData['routingNumber']),
|
| 771 |
+
"accountId" => $accountId,
|
| 772 |
+
"loanOfferId" => trim($formData['loanOfferId']),
|
| 773 |
+
"currency" => Mage::app()->getStore()->getCurrentCurrencyCode()
|
| 774 |
+
);
|
| 775 |
+
|
| 776 |
+
|
| 777 |
+
$url = "http://portal.clexchange.io/api/loan-offers/" . $data['loanOfferId'] . "/loan-applications";
|
| 778 |
+
$page = "/api/loan-offers/" . $data['loanOfferId'] . "/loan-applications";
|
| 779 |
+
$data['applicationId'] = $applicationId;
|
| 780 |
+
$data['isOfferAccepted'] = true;
|
| 781 |
+
|
| 782 |
+
$formData['application_id'] = $applicationId;
|
| 783 |
+
$formData['quote_id'] = $quoteId;
|
| 784 |
+
Mage::getSingleton('checkout/session')->setLoanApplicationDataToSave($formData);
|
| 785 |
+
|
| 786 |
+
$result = Mage::helper('clxfunding')->mastercurlRequestToClxOfferAcceptenceApi($url, $page, $data, $authorizationField);
|
| 787 |
+
if ($result['valid']) {
|
| 788 |
+
if (isset($result['result'])) {
|
| 789 |
+
/*
|
| 790 |
+
$clxOfferAcceptRes = json_decode($result['result']);
|
| 791 |
+
if ($clxOfferAcceptRes->application_status == "REJECTED")
|
| 792 |
+
{
|
| 793 |
+
$orderModel = Mage::getModel('sales/order');
|
| 794 |
+
$orderModel->loadByIncrementId($row['order_id']);
|
| 795 |
+
if ($orderModel->canCancel()) {
|
| 796 |
+
$orderModel->cancel();
|
| 797 |
+
$orderModel->setStatus('Reason for cancellation : Lender rejected the loan offer');
|
| 798 |
+
$orderModel->save();
|
| 799 |
+
}
|
| 800 |
+
}*/
|
| 801 |
+
$this->loadLayout();
|
| 802 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/user_loan_offer_accept.phtml'));
|
| 803 |
+
$block->setLoanOfferStatus(json_decode($result['result']));
|
| 804 |
+
$this->getLayout()->getBlock('content')->append($block);
|
| 805 |
+
$this->renderLayout();
|
| 806 |
+
}
|
| 807 |
+
}
|
| 808 |
+
} else {
|
| 809 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 810 |
+
}
|
| 811 |
+
}
|
| 812 |
+
|
| 813 |
+
function getLoanApplicationFormAction() {
|
| 814 |
+
$quote = Mage::getModel('checkout/session')->getQuote();
|
| 815 |
+
$quoteData = $quote->getData();
|
| 816 |
+
$grandTotal = $quoteData['grand_total'];
|
| 817 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/modal_clxfunding.phtml'));
|
| 818 |
+
$block->setLoanAmmount($grandTotal);
|
| 819 |
+
$myHtml = $block->toHtml();
|
| 820 |
+
echo json_encode(array('valid' => TRUE, 'loan_app_view' => $myHtml));
|
| 821 |
+
}
|
| 822 |
+
|
| 823 |
+
function loanOfferRejectAction() {
|
| 824 |
+
$applicationId = $this->getRequest()->getParam('applicationId');
|
| 825 |
+
$loanOfferId = $this->getRequest()->getParam('loanOfferId');
|
| 826 |
+
if (isset($applicationId) && !empty($applicationId) && isset($loanOfferId) && !empty($loanOfferId)) {
|
| 827 |
+
$applicationId = Mage::helper('core')->decrypt(base64_decode($applicationId));
|
| 828 |
+
$loanOfferId = Mage::helper('core')->decrypt(base64_decode($loanOfferId));
|
| 829 |
+
|
| 830 |
+
$table_prefix = Mage::getConfig()->getTablePrefix();
|
| 831 |
+
$clx_table = $table_prefix . 'clx_loan_application_detail';
|
| 832 |
+
|
| 833 |
+
$connectionRead = Mage::getSingleton('core/resource')->getConnection('core_read');
|
| 834 |
+
$select = $connectionRead->select()
|
| 835 |
+
->from($clx_table, array('*'))
|
| 836 |
+
->where('application_id=? and status!="FUNDED" and status!="LENDER_REJECTED" and status!="CUSTOMER_ACCEPTED" and status!="MERCHANT_REJECTED" and status!="CUSTOMER_REJECTED" and status!="REJECTED"', $applicationId);
|
| 837 |
+
$row = $connectionRead->fetchRow($select); //return rows
|
| 838 |
+
|
| 839 |
+
if (isset($row) && !empty($row) && is_array($row) && isset($row['clx_loan_application_detail_id']) && !empty($row['clx_loan_application_detail_id']) && isset($row['approvalRequired_flag']) && !empty($row['approvalRequired_flag']) && $row['approvalRequired_flag'] == 1) {
|
| 840 |
+
$new_data = $row; //copy row to remove some key ->value pair from array .
|
| 841 |
+
unset($new_data['clx_loan_application_detail_id'], $new_data['order_id'], $new_data['application_id'], $new_data['quote_id'], $new_data['approvalRequired_flag'], $new_data['status'], $new_data['created_time'], $new_data['update_time']);
|
| 842 |
+
$accountId = Mage::getStoreConfig('payment/clxfunding/account_id');
|
| 843 |
+
$authorizationField = Mage::getStoreConfig('payment/clxfunding/authorization_field');
|
| 844 |
+
$new_data['accountId'] = $accountId;
|
| 845 |
+
$new_data['loanOfferId'] = $loanOfferId;
|
| 846 |
+
$new_data['applicationId'] = $applicationId;
|
| 847 |
+
$new_data['currency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
|
| 848 |
+
$new_data['isOfferAccepted'] = FALSE;
|
| 849 |
+
|
| 850 |
+
$url = "http://portal.clexchange.io/api/loan-offers/" . $new_data['loanOfferId'] . "/loan-applications";
|
| 851 |
+
$page = "/api/loan-offers/" . $new_data['loanOfferId'] . "/loan-applications";
|
| 852 |
+
|
| 853 |
+
$result = Mage::helper('clxfunding')->mastercurlRequestToClxOfferAcceptenceApi($url, $page, $new_data, $authorizationField);
|
| 854 |
+
if (isset($result['result']) && $result['result']) {
|
| 855 |
+
/* Mail notification to Merchant about loan offer rejected by customer */
|
| 856 |
+
$parameters = array('applicationId' => $applicationId, 'orderNumber' => $row['order_id'], 'customerName' => ucfirst(strtolower($row['firstName'])) . ' ' . ucfirst(strtolower($row['lastName'])));
|
| 857 |
+
try {
|
| 858 |
+
Mage::getModel('clxfunding/ClxEmail')->sendEmail(
|
| 859 |
+
'clx_loan_offerreject_email_template', Mage::getStoreConfig('trans_email/ident_sales/email'), Mage::getStoreConfig('trans_email/ident_sales/name'), 'Loan Offer Rejected', $parameters
|
| 860 |
+
);
|
| 861 |
+
} catch (Exception $ex) {
|
| 862 |
+
Mage::logException($ex);
|
| 863 |
+
}
|
| 864 |
+
/* Mail notification to Merchant about loan offer rejected by customer */
|
| 865 |
+
|
| 866 |
+
$table_prefix = Mage::getConfig()->getTablePrefix();
|
| 867 |
+
$clx_table = $table_prefix . 'clx_loan_application_detail';
|
| 868 |
+
|
| 869 |
+
$connectionWrite = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 870 |
+
$connectionWrite->beginTransaction();
|
| 871 |
+
$data = array();
|
| 872 |
+
$data['status'] = "CUSTOMER_REJECTED";
|
| 873 |
+
$data['update_time'] = date('Y-m-d H:i:s');
|
| 874 |
+
$where = $connectionWrite->quoteInto('clx_loan_application_detail_id =?', $row['clx_loan_application_detail_id']);
|
| 875 |
+
$connectionWrite->update($clx_table, $data, $where);
|
| 876 |
+
$connectionWrite->commit();
|
| 877 |
+
|
| 878 |
+
/* Order Cancel */
|
| 879 |
+
if (isset($row['order_id']) && !empty($row['order_id'])) {
|
| 880 |
+
$orderModel = Mage::getModel('sales/order');
|
| 881 |
+
$orderModel->loadByIncrementId($row['order_id']);
|
| 882 |
+
if ($orderModel->canCancel()) {
|
| 883 |
+
$orderModel->cancel();
|
| 884 |
+
$orderModel->setStatus('Reason for cancellation : Customer rejected the loan offer');
|
| 885 |
+
$orderModel->save();
|
| 886 |
+
}
|
| 887 |
+
}
|
| 888 |
+
/* Order Cancel */
|
| 889 |
+
|
| 890 |
+
|
| 891 |
+
|
| 892 |
+
/* Notification on FrontEnd */
|
| 893 |
+
$this->loadLayout();
|
| 894 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/user_loan_offer_reject.phtml'));
|
| 895 |
+
$this->getLayout()->getBlock('content')->append($block);
|
| 896 |
+
$this->renderLayout();
|
| 897 |
+
/* Notification on FrontEnd */
|
| 898 |
+
} else {
|
| 899 |
+
Mage::log('CLX Error : Curl error [loan offer reject]');
|
| 900 |
+
}
|
| 901 |
+
} else {
|
| 902 |
+
$this->loadLayout();
|
| 903 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/link_Expire.phtml'));
|
| 904 |
+
$this->getLayout()->getBlock('content')->append($block);
|
| 905 |
+
$this->renderLayout();
|
| 906 |
+
//Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 907 |
+
}
|
| 908 |
+
} else {
|
| 909 |
+
$this->getResponse()->setHeader('HTTP/1.1', '404 Not Found');
|
| 910 |
+
$this->getResponse()->setHeader('Status', '404 File not found');
|
| 911 |
+
$this->_forward('defaultNoRoute');
|
| 912 |
+
}
|
| 913 |
+
}
|
| 914 |
+
|
| 915 |
+
function loanOfferAcceptAction() {
|
| 916 |
+
$applicationId = $this->getRequest()->getParam('applicationId');
|
| 917 |
+
$loanOfferId = $this->getRequest()->getParam('loanOfferId');
|
| 918 |
+
if (isset($applicationId) && !empty($applicationId) && isset($loanOfferId) && !empty($loanOfferId)) {
|
| 919 |
+
|
| 920 |
+
$applicationId = Mage::helper('core')->decrypt(base64_decode($applicationId));
|
| 921 |
+
$loanOfferId = Mage::helper('core')->decrypt(base64_decode($loanOfferId));
|
| 922 |
+
|
| 923 |
+
$table_prefix = Mage::getConfig()->getTablePrefix();
|
| 924 |
+
$clx_table = $table_prefix . 'clx_loan_application_detail';
|
| 925 |
+
|
| 926 |
+
$connectionRead = Mage::getSingleton('core/resource')->getConnection('core_read');
|
| 927 |
+
$select = $connectionRead->select()
|
| 928 |
+
->from($clx_table, array('*'))
|
| 929 |
+
->where('application_id=? and status!="FUNDED" and status!="LENDER_REJECTED" and status!="CUSTOMER_ACCEPTED" and status!="REJECTED" and status!="MERCHANT_REJECTED" and status!="CUSTOMER_REJECTED"', $applicationId);
|
| 930 |
+
$row = $connectionRead->fetchRow($select); //return rows
|
| 931 |
+
if (isset($row) && !empty($row) && is_array($row) && isset($row['clx_loan_application_detail_id']) && !empty($row['clx_loan_application_detail_id']) && isset($row['approvalRequired_flag']) && !empty($row['approvalRequired_flag']) && $row['approvalRequired_flag'] == 1) {
|
| 932 |
+
$new_data = $row; //copy row to remove some key ->value pair from array .
|
| 933 |
+
unset($new_data['clx_loan_application_detail_id'], $new_data['order_id'], $new_data['application_id'], $new_data['quote_id'], $new_data['approvalRequired_flag'], $new_data['status'], $new_data['created_time'], $new_data['update_time']);
|
| 934 |
+
$accountId = Mage::getStoreConfig('payment/clxfunding/account_id');
|
| 935 |
+
$authorizationField = Mage::getStoreConfig('payment/clxfunding/authorization_field');
|
| 936 |
+
$new_data['accountId'] = $accountId;
|
| 937 |
+
$new_data['loanOfferId'] = $loanOfferId;
|
| 938 |
+
$new_data['applicationId'] = $applicationId;
|
| 939 |
+
$new_data['currency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
|
| 940 |
+
|
| 941 |
+
$new_data['isOfferAccepted'] = TRUE;
|
| 942 |
+
|
| 943 |
+
$url = "http://portal.clexchange.io/api/loan-offers/" . $new_data['loanOfferId'] . "/loan-applications";
|
| 944 |
+
$page = "/api/loan-offers/" . $new_data['loanOfferId'] . "/loan-applications";
|
| 945 |
+
|
| 946 |
+
$result = Mage::helper('clxfunding')->mastercurlRequestToClxOfferAcceptenceApi($url, $page, $new_data, $authorizationField);
|
| 947 |
+
if (isset($result['result']) && $result['result']) {
|
| 948 |
+
$clxOfferAcceptRes = json_decode($result['result']);
|
| 949 |
+
if ($clxOfferAcceptRes->application_status == "ACCEPTED") {
|
| 950 |
+
$connectionWrite = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 951 |
+
$connectionWrite->beginTransaction();
|
| 952 |
+
$data = array();
|
| 953 |
+
$data['status'] = "CUSTOMER_ACCEPTED";
|
| 954 |
+
$data['update_time'] = date('Y-m-d H:i:s');
|
| 955 |
+
$where = $connectionWrite->quoteInto('clx_loan_application_detail_id =?', $row['clx_loan_application_detail_id']);
|
| 956 |
+
$connectionWrite->update($clx_table, $data, $where);
|
| 957 |
+
$connectionWrite->commit();
|
| 958 |
+
} else if ($clxOfferAcceptRes->application_status == "REJECTED") {
|
| 959 |
+
$connectionWrite = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 960 |
+
$connectionWrite->beginTransaction();
|
| 961 |
+
|
| 962 |
+
$data = array();
|
| 963 |
+
$data['status'] = "REJECTED";
|
| 964 |
+
$data['update_time'] = date('Y-m-d H:i:s');
|
| 965 |
+
|
| 966 |
+
$orderModel = Mage::getModel('sales/order');
|
| 967 |
+
$orderModel->loadByIncrementId($row['order_id']);
|
| 968 |
+
if ($orderModel->canCancel()) {
|
| 969 |
+
$orderModel->cancel();
|
| 970 |
+
$orderModel->setStatus('Reason for cancellation : Lender rejected the loan offer');
|
| 971 |
+
$orderModel->save();
|
| 972 |
+
}
|
| 973 |
+
$where = $connectionWrite->quoteInto('clx_loan_application_detail_id =?', $row['clx_loan_application_detail_id']);
|
| 974 |
+
$connectionWrite->update($clx_table, $data, $where);
|
| 975 |
+
$connectionWrite->commit();
|
| 976 |
+
|
| 977 |
+
/* loan offer reject on accept by lender */
|
| 978 |
+
|
| 979 |
+
|
| 980 |
+
/* loan offer reject on accept by lender */
|
| 981 |
+
} else {
|
| 982 |
+
|
| 983 |
+
}
|
| 984 |
+
$this->loadLayout();
|
| 985 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/user_loan_offer_status.phtml'));
|
| 986 |
+
$block->setLoanOfferStatus(json_decode($result['result']));
|
| 987 |
+
$this->getLayout()->getBlock('content')->append($block);
|
| 988 |
+
$this->renderLayout();
|
| 989 |
+
} else {
|
| 990 |
+
Mage::log('CLX Error : Curl error [loan offer accept]');
|
| 991 |
+
Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 992 |
+
}
|
| 993 |
+
} else {
|
| 994 |
+
$this->loadLayout();
|
| 995 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/link_Expire.phtml'));
|
| 996 |
+
$this->getLayout()->getBlock('content')->append($block);
|
| 997 |
+
$this->renderLayout();
|
| 998 |
+
//Mage_Core_Controller_Varien_Action::_redirectUrl(Mage::getBaseUrl());
|
| 999 |
+
}
|
| 1000 |
+
} else {
|
| 1001 |
+
$this->getResponse()->setHeader('HTTP/1.1', '404 Not Found');
|
| 1002 |
+
$this->getResponse()->setHeader('Status', '404 File not found');
|
| 1003 |
+
$this->_forward('defaultNoRoute');
|
| 1004 |
+
}
|
| 1005 |
+
}
|
| 1006 |
+
|
| 1007 |
+
public function aboutCLXFundingAction() {
|
| 1008 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/form/aboutCLXFunding.phtml'));
|
| 1009 |
+
echo $block->toHtml();
|
| 1010 |
+
}
|
| 1011 |
+
|
| 1012 |
+
public function QueueResAction() {
|
| 1013 |
+
$Queue_Authentication_Key = Mage::getStoreConfig('payment/clxfunding/queue_authentication_key');
|
| 1014 |
+
$Queue_Endpoint = Mage::getStoreConfig('payment/clxfunding/queue_endpoint');
|
| 1015 |
+
if (isset($Queue_Authentication_Key) && !empty($Queue_Authentication_Key) && isset($Queue_Endpoint) && !empty($Queue_Endpoint)) {
|
| 1016 |
+
|
| 1017 |
+
$headers = array(
|
| 1018 |
+
"Content-type: application/json",
|
| 1019 |
+
"Authorization: OAuth " . $Queue_Authentication_Key
|
| 1020 |
+
);
|
| 1021 |
+
|
| 1022 |
+
$ch = curl_init();
|
| 1023 |
+
curl_setopt($ch, CURLOPT_URL, $Queue_Endpoint);
|
| 1024 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
| 1025 |
+
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
|
| 1026 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
| 1027 |
+
|
| 1028 |
+
echo $info = curl_exec($ch);
|
| 1029 |
+
}
|
| 1030 |
+
}
|
| 1031 |
+
|
| 1032 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/controllers/PaymentController.php
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
// app/code/local/Envato/Clexchangefunding/controllers/PaymentController.php
|
| 4 |
+
class CLExchange_Clexchangefunding_PaymentController extends Mage_Core_Controller_Front_Action {
|
| 5 |
+
|
| 6 |
+
public function gatewayAction() {
|
| 7 |
+
if ($this->getRequest()->get("orderId")) {
|
| 8 |
+
$arr_querystring = array(
|
| 9 |
+
'flag' => 1,
|
| 10 |
+
'orderId' => $this->getRequest()->get("orderId")
|
| 11 |
+
);
|
| 12 |
+
|
| 13 |
+
Mage_Core_Controller_Varien_Action::_redirect('clxfunding/payment/response', array('_secure' => false, '_query' => $arr_querystring));
|
| 14 |
+
}
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
public function redirectAction() {
|
| 18 |
+
$this->loadLayout();
|
| 19 |
+
$block = $this->getLayout()->createBlock('Mage_Core_Block_Template', 'clxfunding', array('template' => 'clxfunding/redirect.phtml'));
|
| 20 |
+
$this->getLayout()->getBlock('content')->append($block);
|
| 21 |
+
$this->renderLayout();
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
public function responseAction() {
|
| 25 |
+
if ($this->getRequest()->get("flag") == "1" && $this->getRequest()->get("orderId")) {
|
| 26 |
+
$orderId = $this->getRequest()->get("orderId");
|
| 27 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
|
| 28 |
+
$order->setState(Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW, true, 'Payment Success.');
|
| 29 |
+
$order->save();
|
| 30 |
+
|
| 31 |
+
Mage::getSingleton('checkout/session')->unsQuoteId();
|
| 32 |
+
Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/success', array('_secure' => false));
|
| 33 |
+
} else {
|
| 34 |
+
Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/error', array('_secure' => false));
|
| 35 |
+
}
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
}
|
app/code/community/CLExchange/Clexchangefunding/etc/config.xml
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<!--
|
| 3 |
+
To change this license header, choose License Headers in Project Properties.
|
| 4 |
+
To change this template file, choose Tools | Templates
|
| 5 |
+
and open the template in the editor.
|
| 6 |
+
-->
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
<config>
|
| 10 |
+
<modules>
|
| 11 |
+
<CLExchange_Clexchangefunding>
|
| 12 |
+
<version>1.0.0.0</version>
|
| 13 |
+
</CLExchange_Clexchangefunding>
|
| 14 |
+
</modules>
|
| 15 |
+
<frontend>
|
| 16 |
+
<routers>
|
| 17 |
+
<clxfunding>
|
| 18 |
+
<use>standard</use>
|
| 19 |
+
<args>
|
| 20 |
+
<module>CLExchange_Clexchangefunding</module>
|
| 21 |
+
<frontName>clxfunding</frontName>
|
| 22 |
+
</args>
|
| 23 |
+
</clxfunding>
|
| 24 |
+
</routers>
|
| 25 |
+
<events>
|
| 26 |
+
<payment_method_is_active>
|
| 27 |
+
<observers>
|
| 28 |
+
<clxfunding_payment_method_is_active>
|
| 29 |
+
<type>singleton</type>
|
| 30 |
+
<class>clxfunding/observer</class>
|
| 31 |
+
<method>paymentMethodIsActive</method>
|
| 32 |
+
</clxfunding_payment_method_is_active>
|
| 33 |
+
</observers>
|
| 34 |
+
</payment_method_is_active>
|
| 35 |
+
</events>
|
| 36 |
+
<layout>
|
| 37 |
+
<updates>
|
| 38 |
+
<clx_custom module="CLExchange_Clexchangefunding">
|
| 39 |
+
<file>clxblock.xml</file>
|
| 40 |
+
</clx_custom>
|
| 41 |
+
</updates>
|
| 42 |
+
</layout>
|
| 43 |
+
</frontend>
|
| 44 |
+
<global>
|
| 45 |
+
<models>
|
| 46 |
+
<clxfunding>
|
| 47 |
+
<class>CLExchange_Clexchangefunding_Model</class>
|
| 48 |
+
<resourceModel>clxfunding_mysql4</resourceModel>
|
| 49 |
+
</clxfunding>
|
| 50 |
+
<clxfunding_mysql4>
|
| 51 |
+
<class>CLExchange_Clexchangefunding_Model_Mysql4</class>
|
| 52 |
+
<entities>
|
| 53 |
+
<clxloanappdtls>
|
| 54 |
+
<table>clx_loan_application_detail</table>
|
| 55 |
+
</clxloanappdtls>
|
| 56 |
+
<clxloanofferdetails>
|
| 57 |
+
<table>clx_loan_offer_detail</table>
|
| 58 |
+
</clxloanofferdetails>
|
| 59 |
+
</entities>
|
| 60 |
+
</clxfunding_mysql4>
|
| 61 |
+
</models>
|
| 62 |
+
<resources>
|
| 63 |
+
<clxfunding_setup>
|
| 64 |
+
<setup>
|
| 65 |
+
<module>CLExchange_Clexchangefunding</module>
|
| 66 |
+
<class>CLExchange_Clexchangefunding_Model_Resource_Setup</class>
|
| 67 |
+
</setup>
|
| 68 |
+
<connection>
|
| 69 |
+
<use>core_setup</use>
|
| 70 |
+
</connection>
|
| 71 |
+
</clxfunding_setup>
|
| 72 |
+
<clxfunding_write>
|
| 73 |
+
<connection>
|
| 74 |
+
<use>core_write</use>
|
| 75 |
+
</connection>
|
| 76 |
+
</clxfunding_write>
|
| 77 |
+
<clxfunding_read>
|
| 78 |
+
<connection>
|
| 79 |
+
<use>core_read</use>
|
| 80 |
+
</connection>
|
| 81 |
+
</clxfunding_read>
|
| 82 |
+
</resources>
|
| 83 |
+
|
| 84 |
+
<!--fieldsets>
|
| 85 |
+
<sales_convert_quote_payment>
|
| 86 |
+
<custom_field_one>
|
| 87 |
+
<to_order_payment>*</to_order_payment>
|
| 88 |
+
</custom_field_one>
|
| 89 |
+
<custom_field_two>
|
| 90 |
+
<to_order_payment>*</to_order_payment>
|
| 91 |
+
</custom_field_two>
|
| 92 |
+
</sales_convert_quote_payment>
|
| 93 |
+
</fieldsets-->
|
| 94 |
+
|
| 95 |
+
<helpers>
|
| 96 |
+
<clxfunding>
|
| 97 |
+
<class>CLExchange_Clexchangefunding_Helper</class>
|
| 98 |
+
</clxfunding>
|
| 99 |
+
</helpers>
|
| 100 |
+
|
| 101 |
+
<blocks>
|
| 102 |
+
<clxfunding>
|
| 103 |
+
<class>CLExchange_Clexchangefunding_Block</class>
|
| 104 |
+
</clxfunding>
|
| 105 |
+
</blocks>
|
| 106 |
+
|
| 107 |
+
<events>
|
| 108 |
+
<checkout_onepage_index>
|
| 109 |
+
<observers>
|
| 110 |
+
<clxfunding>
|
| 111 |
+
<type>singleton</type>
|
| 112 |
+
<class>clxfunding/observer</class>
|
| 113 |
+
<method>paymentMethodIsActive</method>
|
| 114 |
+
</clxfunding>
|
| 115 |
+
</observers>
|
| 116 |
+
</checkout_onepage_index>
|
| 117 |
+
</events>
|
| 118 |
+
|
| 119 |
+
<template>
|
| 120 |
+
<email>
|
| 121 |
+
<clx_loan_approve_email_template>
|
| 122 |
+
<label>Clx Loan Approve Template</label>
|
| 123 |
+
<file>CLX/email-template/clx_loan_approved.html</file>
|
| 124 |
+
<type>html</type>
|
| 125 |
+
</clx_loan_approve_email_template>
|
| 126 |
+
<clx_loan_funded_email_template>
|
| 127 |
+
<label>Clx Loan Funded Template</label>
|
| 128 |
+
<file>CLX/email-template/clx_loan_funded.html</file>
|
| 129 |
+
<type>html</type>
|
| 130 |
+
</clx_loan_funded_email_template>
|
| 131 |
+
<clx_loan_offerdetail_email_template>
|
| 132 |
+
<label>Clx Loan Offer Template</label>
|
| 133 |
+
<file>CLX/email-template/clx_loan_offer.html</file>
|
| 134 |
+
<type>html</type>
|
| 135 |
+
</clx_loan_offerdetail_email_template>
|
| 136 |
+
<clx_loan_offerreject_email_template>
|
| 137 |
+
<label>Clx Loan Offer Reject Template</label>
|
| 138 |
+
<file>CLX/email-template/clx_loan_offer_reject.html</file>
|
| 139 |
+
<type>html</type>
|
| 140 |
+
</clx_loan_offerreject_email_template>
|
| 141 |
+
<clx_loan_offer_details_email_template>
|
| 142 |
+
<label>Clx Loan Offer Details Template</label>
|
| 143 |
+
<file>CLX/email-template/clx_loan_offer_details.html</file>
|
| 144 |
+
<type>html</type>
|
| 145 |
+
</clx_loan_offer_details_email_template>
|
| 146 |
+
<clx_error_email_template>
|
| 147 |
+
<label>Clx Error Details Template</label>
|
| 148 |
+
<file>CLX/email-template/clx_error.html</file>
|
| 149 |
+
<type>html</type>
|
| 150 |
+
</clx_error_email_template>
|
| 151 |
+
<clx_auto_order_cancel_email_template>
|
| 152 |
+
<label>Clx Auto Order Cancel Template</label>
|
| 153 |
+
<file>CLX/email-template/clx_auto_order_cancel.html</file>
|
| 154 |
+
<type>html</type>
|
| 155 |
+
</clx_auto_order_cancel_email_template>
|
| 156 |
+
</email>
|
| 157 |
+
</template>
|
| 158 |
+
|
| 159 |
+
</global>
|
| 160 |
+
<crontab>
|
| 161 |
+
<jobs>
|
| 162 |
+
<clxfunding_setStatus>
|
| 163 |
+
<schedule>
|
| 164 |
+
<!--<cron_expr>*/5 * * * *</cron_expr>-->
|
| 165 |
+
<config_path>payment/clxfunding/cron_expr</config_path>
|
| 166 |
+
</schedule>
|
| 167 |
+
<run>
|
| 168 |
+
<model>clxfunding/Observer::checkCron</model>
|
| 169 |
+
</run>
|
| 170 |
+
</clxfunding_setStatus>
|
| 171 |
+
<clxfunding_timeframe>
|
| 172 |
+
<schedule>
|
| 173 |
+
<cron_expr>0 * * * *</cron_expr>
|
| 174 |
+
</schedule>
|
| 175 |
+
<run>
|
| 176 |
+
<model>clxfunding/Observer::timeframeCancelOrder</model>
|
| 177 |
+
</run>
|
| 178 |
+
</clxfunding_timeframe>
|
| 179 |
+
</jobs>
|
| 180 |
+
</crontab>
|
| 181 |
+
<default>
|
| 182 |
+
<payment>
|
| 183 |
+
<clxfunding>
|
| 184 |
+
<active>0</active>
|
| 185 |
+
<model>clxfunding/paymentmethod</model>
|
| 186 |
+
<order_status>pending</order_status>
|
| 187 |
+
<title>CLX Funding</title>
|
| 188 |
+
<allowspecific>0</allowspecific>
|
| 189 |
+
<payment_action>sale</payment_action>
|
| 190 |
+
<sort_order>3</sort_order>
|
| 191 |
+
</clxfunding>
|
| 192 |
+
</payment>
|
| 193 |
+
</default>
|
| 194 |
+
</config>
|
app/code/community/CLExchange/Clexchangefunding/etc/config.xml~
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<!--
|
| 3 |
+
To change this license header, choose License Headers in Project Properties.
|
| 4 |
+
To change this template file, choose Tools | Templates
|
| 5 |
+
and open the template in the editor.
|
| 6 |
+
-->
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
<config>
|
| 10 |
+
<modules>
|
| 11 |
+
<CLExchange_Clexchangefunding>
|
| 12 |
+
<version>1.0.0.0</version>
|
| 13 |
+
</CLExchange_Clexchangefunding>
|
| 14 |
+
</modules>
|
| 15 |
+
<frontend>
|
| 16 |
+
<routers>
|
| 17 |
+
<clexchangefunding>
|
| 18 |
+
<use>standard</use>
|
| 19 |
+
<args>
|
| 20 |
+
<module>CLExchange_Clexchangefunding</module>
|
| 21 |
+
<frontName>clexchangefunding</frontName>
|
| 22 |
+
</args>
|
| 23 |
+
</clexchangefunding>
|
| 24 |
+
</routers>
|
| 25 |
+
<events>
|
| 26 |
+
<payment_method_is_active>
|
| 27 |
+
<observers>
|
| 28 |
+
<clexchangefunding_payment_method_is_active>
|
| 29 |
+
<type>singleton</type>
|
| 30 |
+
<class>clexchangefunding/observer</class>
|
| 31 |
+
<method>paymentMethodIsActive</method>
|
| 32 |
+
</clexchangefunding_payment_method_is_active>
|
| 33 |
+
</observers>
|
| 34 |
+
</payment_method_is_active>
|
| 35 |
+
</events>
|
| 36 |
+
<layout>
|
| 37 |
+
<updates>
|
| 38 |
+
<clx_custom module="CLExchange_Clexchangefunding">
|
| 39 |
+
<file>clxblock.xml</file>
|
| 40 |
+
</clx_custom>
|
| 41 |
+
</updates>
|
| 42 |
+
</layout>
|
| 43 |
+
</frontend>
|
| 44 |
+
<global>
|
| 45 |
+
<models>
|
| 46 |
+
<clexchangefunding>
|
| 47 |
+
<class>CLExchange_Clexchangefunding_Model</class>
|
| 48 |
+
<resourceModel>clexchangefunding_mysql4</resourceModel>
|
| 49 |
+
</clexchangefunding>
|
| 50 |
+
<clexchangefunding_mysql4>
|
| 51 |
+
<class>CLExchange_Clexchangefunding_Model_Mysql4</class>
|
| 52 |
+
<entities>
|
| 53 |
+
<clxloanapplicationdetails>
|
| 54 |
+
<table>clx_loan_application_detail</table>
|
| 55 |
+
</clxloanapplicationdetails>
|
| 56 |
+
<clxloanofferdetails>
|
| 57 |
+
<table>clx_loan_offer_detail</table>
|
| 58 |
+
</clxloanofferdetails>
|
| 59 |
+
</entities>
|
| 60 |
+
</clexchangefunding_mysql4>
|
| 61 |
+
</models>
|
| 62 |
+
<resources>
|
| 63 |
+
<clexchangefunding_setup>
|
| 64 |
+
<setup>
|
| 65 |
+
<module>CLExchange_Clexchangefunding</module>
|
| 66 |
+
<class>CLExchange_Clexchangefunding_Model_Resource_Setup</class>
|
| 67 |
+
</setup>
|
| 68 |
+
<connection>
|
| 69 |
+
<use>core_setup</use>
|
| 70 |
+
</connection>
|
| 71 |
+
</clexchangefunding_setup>
|
| 72 |
+
<clexchangefunding_write>
|
| 73 |
+
<connection>
|
| 74 |
+
<use>core_write</use>
|
| 75 |
+
</connection>
|
| 76 |
+
</clexchangefunding_write>
|
| 77 |
+
<clexchangefunding_read>
|
| 78 |
+
<connection>
|
| 79 |
+
<use>core_read</use>
|
| 80 |
+
</connection>
|
| 81 |
+
</clexchangefunding_read>
|
| 82 |
+
</resources>
|
| 83 |
+
|
| 84 |
+
<!--fieldsets>
|
| 85 |
+
<sales_convert_quote_payment>
|
| 86 |
+
<custom_field_one>
|
| 87 |
+
<to_order_payment>*</to_order_payment>
|
| 88 |
+
</custom_field_one>
|
| 89 |
+
<custom_field_two>
|
| 90 |
+
<to_order_payment>*</to_order_payment>
|
| 91 |
+
</custom_field_two>
|
| 92 |
+
</sales_convert_quote_payment>
|
| 93 |
+
</fieldsets-->
|
| 94 |
+
|
| 95 |
+
<helpers>
|
| 96 |
+
<clexchangefunding>
|
| 97 |
+
<class>CLExchange_Clexchangefunding_Helper</class>
|
| 98 |
+
</clexchangefunding>
|
| 99 |
+
</helpers>
|
| 100 |
+
|
| 101 |
+
<blocks>
|
| 102 |
+
<clexchangefunding>
|
| 103 |
+
<class>CLExchange_Clexchangefunding_Block</class>
|
| 104 |
+
</clexchangefunding>
|
| 105 |
+
</blocks>
|
| 106 |
+
|
| 107 |
+
<events>
|
| 108 |
+
<checkout_onepage_index>
|
| 109 |
+
<observers>
|
| 110 |
+
<clexchangefunding>
|
| 111 |
+
<type>singleton</type>
|
| 112 |
+
<class>clexchangefunding/observer</class>
|
| 113 |
+
<method>paymentMethodIsActive</method>
|
| 114 |
+
</clexchangefunding>
|
| 115 |
+
</observers>
|
| 116 |
+
</checkout_onepage_index>
|
| 117 |
+
</events>
|
| 118 |
+
|
| 119 |
+
<template>
|
| 120 |
+
<email>
|
| 121 |
+
<clx_loan_approve_email_template>
|
| 122 |
+
<label>Clx Loan Approve Template</label>
|
| 123 |
+
<file>CLX/email-template/clx_loan_approved.html</file>
|
| 124 |
+
<type>html</type>
|
| 125 |
+
</clx_loan_approve_email_template>
|
| 126 |
+
<clx_loan_funded_email_template>
|
| 127 |
+
<label>Clx Loan Funded Template</label>
|
| 128 |
+
<file>CLX/email-template/clx_loan_funded.html</file>
|
| 129 |
+
<type>html</type>
|
| 130 |
+
</clx_loan_funded_email_template>
|
| 131 |
+
<clx_loan_offerdetail_email_template>
|
| 132 |
+
<label>Clx Loan Offer Template</label>
|
| 133 |
+
<file>CLX/email-template/clx_loan_offer.html</file>
|
| 134 |
+
<type>html</type>
|
| 135 |
+
</clx_loan_offerdetail_email_template>
|
| 136 |
+
<clx_loan_offerreject_email_template>
|
| 137 |
+
<label>Clx Loan Offer Reject Template</label>
|
| 138 |
+
<file>CLX/email-template/clx_loan_offer_reject.html</file>
|
| 139 |
+
<type>html</type>
|
| 140 |
+
</clx_loan_offerreject_email_template>
|
| 141 |
+
<clx_loan_offer_details_email_template>
|
| 142 |
+
<label>Clx Loan Offer Details Template</label>
|
| 143 |
+
<file>CLX/email-template/clx_loan_offer_details.html</file>
|
| 144 |
+
<type>html</type>
|
| 145 |
+
</clx_loan_offer_details_email_template>
|
| 146 |
+
<clx_error_email_template>
|
| 147 |
+
<label>Clx Error Details Template</label>
|
| 148 |
+
<file>CLX/email-template/clx_error.html</file>
|
| 149 |
+
<type>html</type>
|
| 150 |
+
</clx_error_email_template>
|
| 151 |
+
<clx_auto_order_cancel_email_template>
|
| 152 |
+
<label>Clx Auto Order Cancel Template</label>
|
| 153 |
+
<file>CLX/email-template/clx_auto_order_cancel.html</file>
|
| 154 |
+
<type>html</type>
|
| 155 |
+
</clx_auto_order_cancel_email_template>
|
| 156 |
+
</email>
|
| 157 |
+
</template>
|
| 158 |
+
|
| 159 |
+
</global>
|
| 160 |
+
<crontab>
|
| 161 |
+
<jobs>
|
| 162 |
+
<clexchangefunding_setStatus>
|
| 163 |
+
<schedule>
|
| 164 |
+
<!--<cron_expr>*/5 * * * *</cron_expr>-->
|
| 165 |
+
<config_path>payment/clexchangefunding/cron_expr</config_path>
|
| 166 |
+
</schedule>
|
| 167 |
+
<run>
|
| 168 |
+
<model>clexchangefunding/Observer::checkCron</model>
|
| 169 |
+
</run>
|
| 170 |
+
</clexchangefunding_setStatus>
|
| 171 |
+
<clexchangefunding_timeframe>
|
| 172 |
+
<schedule>
|
| 173 |
+
<cron_expr>30 * * * *</cron_expr>
|
| 174 |
+
</schedule>
|
| 175 |
+
<run>
|
| 176 |
+
<model>clexchangefunding/Observer::timeframeCancelOrder</model>
|
| 177 |
+
</run>
|
| 178 |
+
</clexchangefunding_timeframe>
|
| 179 |
+
</jobs>
|
| 180 |
+
</crontab>
|
| 181 |
+
<default>
|
| 182 |
+
<payment>
|
| 183 |
+
<clexchangefunding>
|
| 184 |
+
<active>1</active>
|
| 185 |
+
<model>clexchangefunding/paymentmethod</model>
|
| 186 |
+
<order_status>pending</order_status>
|
| 187 |
+
<title>CLX Funding</title>
|
| 188 |
+
<allowspecific>0</allowspecific>
|
| 189 |
+
<payment_action>sale</payment_action>
|
| 190 |
+
<sort_order>3</sort_order>
|
| 191 |
+
</clexchangefunding>
|
| 192 |
+
</payment>
|
| 193 |
+
</default>
|
| 194 |
+
</config>
|
app/code/community/CLExchange/Clexchangefunding/etc/system.xml
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<!--
|
| 3 |
+
To change this license header, choose License Headers in Project Properties.
|
| 4 |
+
To change this template file, choose Tools | Templates
|
| 5 |
+
and open the template in the editor.
|
| 6 |
+
-->
|
| 7 |
+
|
| 8 |
+
<config>
|
| 9 |
+
<sections>
|
| 10 |
+
<payment>
|
| 11 |
+
<groups>
|
| 12 |
+
<clxfunding translate="label" module="clxfunding">
|
| 13 |
+
<label>CLExchange Payment Module</label>
|
| 14 |
+
<sort_order>1000</sort_order>
|
| 15 |
+
<show_in_default>1</show_in_default>
|
| 16 |
+
<show_in_website>1</show_in_website>
|
| 17 |
+
<show_in_store>0</show_in_store>
|
| 18 |
+
<fields>
|
| 19 |
+
<title translate="label">
|
| 20 |
+
<backend_model>clxfunding/PaymentMethodTitle</backend_model>
|
| 21 |
+
<label>Title</label>
|
| 22 |
+
<frontend_type>text</frontend_type>
|
| 23 |
+
<show_in_default>1</show_in_default>
|
| 24 |
+
<show_in_website>1</show_in_website>
|
| 25 |
+
<show_in_store>0</show_in_store>
|
| 26 |
+
<sort_order>1</sort_order>
|
| 27 |
+
</title>
|
| 28 |
+
<active translate="label">
|
| 29 |
+
<label>Enabled</label>
|
| 30 |
+
<frontend_type>select</frontend_type>
|
| 31 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 32 |
+
<show_in_default>1</show_in_default>
|
| 33 |
+
<show_in_website>1</show_in_website>
|
| 34 |
+
<show_in_store>0</show_in_store>
|
| 35 |
+
<sort_order>2</sort_order>
|
| 36 |
+
</active>
|
| 37 |
+
<sort_order translate="label">
|
| 38 |
+
<label>Sort order</label>
|
| 39 |
+
<frontend_type>text</frontend_type>
|
| 40 |
+
<sort_order>3</sort_order>
|
| 41 |
+
<show_in_default>1</show_in_default>
|
| 42 |
+
<show_in_website>1</show_in_website>
|
| 43 |
+
<show_in_store>0</show_in_store>
|
| 44 |
+
</sort_order>
|
| 45 |
+
<account_id translate="label">
|
| 46 |
+
<label>Account Id</label>
|
| 47 |
+
<backend_model>clxfunding/AccountIdV</backend_model>
|
| 48 |
+
<comment>Merchant Authentication</comment>
|
| 49 |
+
<frontend_type>text</frontend_type>
|
| 50 |
+
<sort_order>4</sort_order>
|
| 51 |
+
<show_in_default>1</show_in_default>
|
| 52 |
+
<show_in_website>1</show_in_website>
|
| 53 |
+
<show_in_store>0</show_in_store>
|
| 54 |
+
</account_id>
|
| 55 |
+
<authorization_field translate="label">
|
| 56 |
+
<label>Authorization Key</label>
|
| 57 |
+
<backend_model>clxfunding/AuthorizationKeyV</backend_model>
|
| 58 |
+
<comment>Merchant Authentication</comment>
|
| 59 |
+
<frontend_type>text</frontend_type>
|
| 60 |
+
<sort_order>5</sort_order>
|
| 61 |
+
<show_in_default>1</show_in_default>
|
| 62 |
+
<show_in_website>1</show_in_website>
|
| 63 |
+
<show_in_store>0</show_in_store>
|
| 64 |
+
</authorization_field>
|
| 65 |
+
<is_Best_Offer translate="label">
|
| 66 |
+
<label>is Best Offer</label>
|
| 67 |
+
<comment>Check the best available offer</comment>
|
| 68 |
+
<frontend_type>select</frontend_type>
|
| 69 |
+
<source_model>CLExchange_Clexchangefunding_IsBestOffer</source_model>
|
| 70 |
+
<sort_order>6</sort_order>
|
| 71 |
+
<show_in_default>1</show_in_default>
|
| 72 |
+
<show_in_website>1</show_in_website>
|
| 73 |
+
<show_in_store>0</show_in_store>
|
| 74 |
+
</is_Best_Offer>
|
| 75 |
+
<approve_Required translate="label">
|
| 76 |
+
<label>Approval Required</label>
|
| 77 |
+
<comment>Take approval of loan offer from borrower</comment>
|
| 78 |
+
<frontend_type>select</frontend_type>
|
| 79 |
+
<source_model>CLExchange_Clexchangefunding_ApprovalRequired</source_model>
|
| 80 |
+
<sort_order>7</sort_order>
|
| 81 |
+
<show_in_default>1</show_in_default>
|
| 82 |
+
<show_in_website>1</show_in_website>
|
| 83 |
+
<show_in_store>0</show_in_store>
|
| 84 |
+
</approve_Required>
|
| 85 |
+
<queue_authentication_key translate="label">
|
| 86 |
+
<label>Queue Authentication Key</label>
|
| 87 |
+
<backend_model>clxfunding/QueueAuthKeyV</backend_model>
|
| 88 |
+
<comment>Required parameter in API calls to Queue, for tracking applications status</comment>
|
| 89 |
+
<frontend_type>text</frontend_type>
|
| 90 |
+
<sort_order>8</sort_order>
|
| 91 |
+
<show_in_default>1</show_in_default>
|
| 92 |
+
<show_in_website>1</show_in_website>
|
| 93 |
+
<show_in_store>0</show_in_store>
|
| 94 |
+
</queue_authentication_key>
|
| 95 |
+
<queue_endpoint translate="label">
|
| 96 |
+
<label>Queue Endpoint</label>
|
| 97 |
+
<backend_model>clxfunding/QueueEndpointV</backend_model>
|
| 98 |
+
<comment>Required parameter in API calls to Queue, for tracking applications status</comment>
|
| 99 |
+
<frontend_type>text</frontend_type>
|
| 100 |
+
<sort_order>9</sort_order>
|
| 101 |
+
<show_in_default>1</show_in_default>
|
| 102 |
+
<show_in_website>1</show_in_website>
|
| 103 |
+
<show_in_store>0</show_in_store>
|
| 104 |
+
</queue_endpoint>
|
| 105 |
+
<cron_expr translate="label" module="clxfunding">
|
| 106 |
+
<label>Cron Expression</label>
|
| 107 |
+
<comment>Make cron calls to Queue system at regular intervals</comment>
|
| 108 |
+
<frontend_type>select</frontend_type>
|
| 109 |
+
<source_model>CLExchange_Clexchangefunding_CronExpressionList</source_model>
|
| 110 |
+
<sort_order>10</sort_order>
|
| 111 |
+
<show_in_default>1</show_in_default>
|
| 112 |
+
<show_in_website>1</show_in_website>
|
| 113 |
+
<show_in_store>0</show_in_store>
|
| 114 |
+
</cron_expr>
|
| 115 |
+
<show_loan_offer translate="label" module="clxfunding">
|
| 116 |
+
<label>Show Loan Offer</label>
|
| 117 |
+
<comment>Allow user to check for the available loan offers or not</comment>
|
| 118 |
+
<frontend_type>select</frontend_type>
|
| 119 |
+
<source_model>CLExchange_Clexchangefunding_ApprovalRequired</source_model>
|
| 120 |
+
<sort_order>11</sort_order>
|
| 121 |
+
<show_in_default>1</show_in_default>
|
| 122 |
+
<show_in_website>1</show_in_website>
|
| 123 |
+
<show_in_store>0</show_in_store>
|
| 124 |
+
</show_loan_offer>
|
| 125 |
+
<loan_offer_time_frame translate="label" module="clxfunding">
|
| 126 |
+
<label>Time Frame (In Hours)</label>
|
| 127 |
+
<comment>Define the time period, a borrower has to accept the loan offer</comment>
|
| 128 |
+
<frontend_type>select</frontend_type>
|
| 129 |
+
<source_model>CLExchange_Clexchangefunding_TimeFrames</source_model>
|
| 130 |
+
<sort_order>12</sort_order>
|
| 131 |
+
<show_in_default>1</show_in_default>
|
| 132 |
+
<show_in_website>1</show_in_website>
|
| 133 |
+
<show_in_store>0</show_in_store>
|
| 134 |
+
</loan_offer_time_frame>
|
| 135 |
+
<!--mail_notification_interval translate="label" module="clxfunding">
|
| 136 |
+
<label>Daily Mail Notification</label>
|
| 137 |
+
<comment>Loan offer mail notification/notifications per day</comment>
|
| 138 |
+
<frontend_type>text</frontend_type>
|
| 139 |
+
<sort_order>13</sort_order>
|
| 140 |
+
<show_in_default>1</show_in_default>
|
| 141 |
+
<show_in_website>1</show_in_website>
|
| 142 |
+
<show_in_store>0</show_in_store>
|
| 143 |
+
</mail_notification_interval-->
|
| 144 |
+
</fields>
|
| 145 |
+
</clxfunding>
|
| 146 |
+
</groups>
|
| 147 |
+
</payment>
|
| 148 |
+
</sections>
|
| 149 |
+
</config>
|
app/code/community/CLExchange/Clexchangefunding/sql/clxfunding_setup/mysql4-install-1.0.0.0.php
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
// following code snipet will create table `clx_loan_application_detail` and `clx_loan_offer_detail`
|
| 3 |
+
$installer = $this;
|
| 4 |
+
|
| 5 |
+
$installer->startSetup();
|
| 6 |
+
|
| 7 |
+
$installer->run("
|
| 8 |
+
|
| 9 |
+
-- DROP TABLE IF EXISTS {$this->getTable('clx_loan_offer_detail')};DROP TABLE IF EXISTS {$this->getTable('clx_loan_application_detail')};
|
| 10 |
+
CREATE TABLE {$this->getTable('clx_loan_application_detail')} (
|
| 11 |
+
`clx_loan_application_detail_id` int(11) unsigned NOT NULL auto_increment,
|
| 12 |
+
`application_id` varchar(255) NOT NULL COMMENT 'Application ID',
|
| 13 |
+
`quote_id` varchar(255) NOT NULL COMMENT 'Quote ID',
|
| 14 |
+
`order_id` varchar(255) NOT NULL COMMENT 'Order Number',
|
| 15 |
+
`status` varchar(255) NOT NULL COMMENT 'Clx Status',
|
| 16 |
+
`approvalRequired_flag` boolean NOT NULL default false COMMENT 'Loan Application Flag',
|
| 17 |
+
`mail_sent` boolean NOT NULL default false COMMENT 'Loan Offer Mail Sent',
|
| 18 |
+
`offer_mail_sent_time` datetime NULL COMMENT 'Loan Offer Mail Sent Date',
|
| 19 |
+
`prev_offer_mail_sent_time` datetime NULL COMMENT 'Previous Loan Offer Mail Sent Date',
|
| 20 |
+
`firstName` varchar(255) NOT NULL COMMENT 'Borrowers First Name',
|
| 21 |
+
`lastName` varchar(255) NOT NULL COMMENT 'Borrowers Last Name',
|
| 22 |
+
`emailId` varchar(255) NOT NULL COMMENT 'Borrowers Email Id',
|
| 23 |
+
`birthDate` date NOT NULL COMMENT 'Borrowers Birth Date',
|
| 24 |
+
`mobilePhoneAreaCode` varchar(3) NOT NULL,
|
| 25 |
+
`mobileNumber` varchar(10) NOT NULL,
|
| 26 |
+
`street` varchar(255) NOT NULL,
|
| 27 |
+
`city` varchar(255) NOT NULL,
|
| 28 |
+
`state` varchar(255) NOT NULL,
|
| 29 |
+
`zipcode` varchar(8) NOT NULL,
|
| 30 |
+
`country` varchar(255) NOT NULL,
|
| 31 |
+
`yearlyIncome` DECIMAL NOT NULL COMMENT 'Borrowers yearly income',
|
| 32 |
+
`employmentStatus` varchar(30) NOT NULL,
|
| 33 |
+
`employmentName` varchar(100) NOT NULL,
|
| 34 |
+
`loanTerms` DOUBLE NOT NULL COMMENT 'loan terms in months',
|
| 35 |
+
`employmentStartDate` date NOT NULL,
|
| 36 |
+
`occupation` varchar(100) NOT NULL,
|
| 37 |
+
`bankName` varchar(255) NOT NULL,
|
| 38 |
+
`firstAccountHolderName` varchar(255) NOT NULL,
|
| 39 |
+
`bankAccountType` varchar(100) NOT NULL,
|
| 40 |
+
`bankAccountNumber` varchar(30) NOT NULL,
|
| 41 |
+
`routingNumber` varchar(255) NOT NULL,
|
| 42 |
+
`loanAmount` DECIMAL NOT NULL,
|
| 43 |
+
`loanPurpose` varchar(255) NOT NULL,
|
| 44 |
+
`ssn` varchar(15) NOT NULL,
|
| 45 |
+
`selfReportedCreditScore` int(11) NOT NULL,
|
| 46 |
+
`created_time` datetime NULL,
|
| 47 |
+
`update_time` datetime NULL,
|
| 48 |
+
PRIMARY KEY (`clx_loan_application_detail_id`)
|
| 49 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
| 50 |
+
|
| 51 |
+
-- DROP TABLE IF EXISTS {$this->getTable('clx_loan_offer_detail')};
|
| 52 |
+
CREATE TABLE {$this->getTable('clx_loan_offer_detail')} (
|
| 53 |
+
`clx_loan_offer_detail_id` int(11) unsigned NOT NULL auto_increment,
|
| 54 |
+
`loan_application_id` int(11) unsigned NOT NULL COMMENT 'clx_loan_application_detail_id',
|
| 55 |
+
`loanTerm` DECIMAL NOT NULL COMMENT 'Loan Terms',
|
| 56 |
+
`loanAPR` DECIMAL NOT NULL COMMENT 'Loan APR',
|
| 57 |
+
`loanRate` DECIMAL NOT NULL COMMENT 'Loan Rate',
|
| 58 |
+
`paymentFrequency` DECIMAL NOT NULL COMMENT 'Payment Frequency',
|
| 59 |
+
`paymentAmount` DECIMAL NOT NULL COMMENT 'Payment Amount',
|
| 60 |
+
`downPayment` DECIMAL NOT NULL COMMENT 'Down Payment',
|
| 61 |
+
`offerId` varchar(255) NOT NULL COMMENT 'Loan Offer Id',
|
| 62 |
+
`showSelectedOfferUrl` varchar(255) NOT NULL COMMENT 'Show Selected Offer Url',
|
| 63 |
+
`lenderName` varchar(100) NULL COMMENT 'Lender Name',
|
| 64 |
+
PRIMARY KEY (`clx_loan_offer_detail_id`),
|
| 65 |
+
KEY `FK_NEW` (`loan_application_id`),
|
| 66 |
+
CONSTRAINT `FK_NEW` FOREIGN KEY (`loan_application_id`) REFERENCES `{$installer->getTable('clx_loan_application_detail')}` (`clx_loan_application_detail_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
| 67 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
| 68 |
+
|
| 69 |
+
");
|
| 70 |
+
$installer->endSetup();
|
app/design/frontend/base/default/layout/clxblock.xml
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<layout version="0.1.0">
|
| 3 |
+
<!--default>
|
| 4 |
+
<reference name="head">
|
| 5 |
+
<action method="addItem">
|
| 6 |
+
<type>skin_css</type>
|
| 7 |
+
<name>css/Clx/clx_custom.css</name>
|
| 8 |
+
</action>
|
| 9 |
+
</reference>
|
| 10 |
+
</default-->
|
| 11 |
+
<checkout_onepage_index>
|
| 12 |
+
<!--reference name="footer">
|
| 13 |
+
<block type="core/template" template="clxfunding/form/modal_clxfunding.phtml">
|
| 14 |
+
</block>
|
| 15 |
+
</reference-->
|
| 16 |
+
<reference name="head">
|
| 17 |
+
<action method="addItem">
|
| 18 |
+
<type>skin_js</type>
|
| 19 |
+
<name>js/Clx/jquery-1.11.3.min.js</name>
|
| 20 |
+
</action>
|
| 21 |
+
<action method="addItem">
|
| 22 |
+
<type>skin_js</type>
|
| 23 |
+
<name>js/Clx/noConflict.js</name>
|
| 24 |
+
</action>
|
| 25 |
+
<action method="addItem">
|
| 26 |
+
<type>skin_js</type>
|
| 27 |
+
<name>js/Clx/bootstrap.min.js</name>
|
| 28 |
+
</action>
|
| 29 |
+
<action method="addItem">
|
| 30 |
+
<type>skin_js</type>
|
| 31 |
+
<name>js/Clx/bootbox.min.js</name>
|
| 32 |
+
</action>
|
| 33 |
+
<action method="addItem">
|
| 34 |
+
<type>skin_js</type>
|
| 35 |
+
<name>js/Clx/bootstrap-datepicker.min.js</name>
|
| 36 |
+
</action>
|
| 37 |
+
<!--action method="addJs">
|
| 38 |
+
<script>CLX/Clexchangefunding/bootstrap.min.js</script>
|
| 39 |
+
</action-->
|
| 40 |
+
<!--action method="addJs">
|
| 41 |
+
<script>CLX/Clexchangefunding/clx.custom.js</script>
|
| 42 |
+
</action-->
|
| 43 |
+
|
| 44 |
+
<action method="addItem">
|
| 45 |
+
<type>skin_css</type>
|
| 46 |
+
<name>css/Clx/bootstrap.min.css</name>
|
| 47 |
+
</action>
|
| 48 |
+
<action method="addItem">
|
| 49 |
+
<type>skin_css</type>
|
| 50 |
+
<name>css/Clx/bootstrap-datepicker.min.css</name>
|
| 51 |
+
</action>
|
| 52 |
+
<action method="addItem">
|
| 53 |
+
<type>skin_css</type>
|
| 54 |
+
<name>css/Clx/clx_custom.css</name>
|
| 55 |
+
</action>
|
| 56 |
+
</reference>
|
| 57 |
+
</checkout_onepage_index>
|
| 58 |
+
</layout>
|
app/design/frontend/base/default/template/clxfunding/form/aboutCLXFunding.phtml
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<p>This option quickly and securely pairs users unique attributes with lenders’ established qualifications, providing them a higher chance of obtaining an online loan.</p>
|
| 2 |
+
<p>All you need to do is fill this loan application and submit it. The application would be verified and responded immediately. If the application is approved, it goes in an under-writing process, where the bidding process starts between different lenders. Once the bidding is finished, the winner bidder would fund your order.</p>
|
| 3 |
+
<p>You can even check for the available loan offers of different lenders by clicking on the Check Eligibility button.</p>
|
app/design/frontend/base/default/template/clxfunding/form/clxfunding.phtml
ADDED
|
@@ -0,0 +1,660 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$show_loan_offer_flag = Mage::getStoreConfig('payment/clxfunding/show_loan_offer');
|
| 3 |
+
?>
|
| 4 |
+
<script>
|
| 5 |
+
jQuery(document).ready(function (jQuery) {
|
| 6 |
+
jQuery(document).on('focus', '#birthDate', function (event) {
|
| 7 |
+
var cur_input = jQuery(this);
|
| 8 |
+
jQuery(this).datepicker({
|
| 9 |
+
autoclose: true,
|
| 10 |
+
format: "yyyy-mm-dd",
|
| 11 |
+
endDate: new Date()
|
| 12 |
+
}).on('hide', function (e) {
|
| 13 |
+
e.preventDefault();
|
| 14 |
+
jQuery(cur_input).removeAttr('style');
|
| 15 |
+
}).on('changeDate',function(e){
|
| 16 |
+
jQuery('#employmentStartDate').val('');
|
| 17 |
+
jQuery('#employmentStartDate').datepicker({
|
| 18 |
+
autoclose: true,
|
| 19 |
+
format: "yyyy-mm-dd",
|
| 20 |
+
endDate: new Date(),
|
| 21 |
+
startDate: e.date
|
| 22 |
+
});
|
| 23 |
+
});
|
| 24 |
+
});
|
| 25 |
+
jQuery(document).on('focus', '#employmentStartDate', function (event) {
|
| 26 |
+
var cur_input = jQuery(this);
|
| 27 |
+
jQuery(this).datepicker({
|
| 28 |
+
autoclose: true,
|
| 29 |
+
format: "yyyy-mm-dd",
|
| 30 |
+
endDate: new Date(),
|
| 31 |
+
startDate:new Date(jQuery('#employmentStartDate').val())
|
| 32 |
+
}).on('hide', function (e) {
|
| 33 |
+
e.preventDefault();
|
| 34 |
+
jQuery(cur_input).removeAttr('style');
|
| 35 |
+
});
|
| 36 |
+
});
|
| 37 |
+
var t;
|
| 38 |
+
jQuery(document).on(
|
| 39 |
+
'DOMMouseScroll mousewheel scroll',
|
| 40 |
+
'#clxLoanApplicationModal',
|
| 41 |
+
function () {
|
| 42 |
+
window.clearTimeout(t);
|
| 43 |
+
t = window.setTimeout(function () {
|
| 44 |
+
jQuery('#birthDate').datepicker('place');
|
| 45 |
+
jQuery('#employmentStartDate').datepicker('place');
|
| 46 |
+
}, 10);
|
| 47 |
+
jQuery('#birthDate').datepicker({
|
| 48 |
+
autoclose: true,
|
| 49 |
+
format: "yyyy-mm-dd",
|
| 50 |
+
endDate: new Date()
|
| 51 |
+
}).on('hide', function (e) {
|
| 52 |
+
e.preventDefault();
|
| 53 |
+
jQuery('#birthDate').removeAttr('style');
|
| 54 |
+
});
|
| 55 |
+
jQuery('#employmentStartDate').datepicker({
|
| 56 |
+
autoclose: true,
|
| 57 |
+
format: "yyyy-mm-dd",
|
| 58 |
+
endDate: new Date()
|
| 59 |
+
}).on('hide', function (e) {
|
| 60 |
+
e.preventDefault();
|
| 61 |
+
jQuery('#employmentStartDate').removeAttr('style');
|
| 62 |
+
});
|
| 63 |
+
}
|
| 64 |
+
);
|
| 65 |
+
jQuery("#clxLoanApplicationModal").on("show", function () {
|
| 66 |
+
jQuery("body").addClass("modal-open");
|
| 67 |
+
}).on("hidden", function () {
|
| 68 |
+
jQuery("body").removeClass("modal-open")
|
| 69 |
+
});
|
| 70 |
+
//CLX Funding radio button click
|
| 71 |
+
jQuery('#p_method_clxfunding').prop('checked', false); //radio button unchecked until application accepted
|
| 72 |
+
jQuery('<a href="javascript:void(0);" class="clx_info" title="About CLX Funding"><img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN); ?>frontend/base/default/css/Clx/help.png"/></a>').insertAfter(jQuery('#p_method_clxfunding').next('label'));
|
| 73 |
+
jQuery('#p_method_clxfunding').click(function (event) {
|
| 74 |
+
event.preventDefault();
|
| 75 |
+
event.stopImmediatePropagation();
|
| 76 |
+
jQuery(document).find('#loading_div').remove();
|
| 77 |
+
jQuery('<div id="loading_div"></div>').insertAfter(jQuery(this).next('label'));
|
| 78 |
+
jQuery('#loading_div').show();
|
| 79 |
+
jQuery(this).prop('disabled', 'disabled'); // double click problem
|
| 80 |
+
jQuery(document).find('#clxLoanApplicationModal').remove();// remove Modal if instance exist
|
| 81 |
+
jQuery(this).prop('checked', false); //not checking radio button until loan application form submited
|
| 82 |
+
/* fetch loan application form & show in popup */
|
| 83 |
+
jQuery.ajax({
|
| 84 |
+
url: "<?php echo(Mage::getBaseUrl() . 'clxfunding/ClxAPI/getLoanApplicationForm'); ?>", // path to controller function ClxAPIController.php
|
| 85 |
+
dataType: 'json',
|
| 86 |
+
success: function (response)
|
| 87 |
+
{
|
| 88 |
+
if (response.valid)
|
| 89 |
+
{
|
| 90 |
+
jQuery(document).find('#loading_div').remove();
|
| 91 |
+
jQuery(document).find('#clxLoanApplicationModal').remove();
|
| 92 |
+
var loanAppForm = response.loan_app_view;
|
| 93 |
+
jQuery(loanAppForm).find('#loading_div').hide();
|
| 94 |
+
jQuery(loanAppForm).modal({backdrop: 'static', keyboard: false}); // show modal
|
| 95 |
+
jQuery('body').css({"padding-right": "0px", "overflow": "scroll"});
|
| 96 |
+
}
|
| 97 |
+
else
|
| 98 |
+
{
|
| 99 |
+
jQuery(document).find('#loading_div').remove();
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
beforeSend: function () {
|
| 103 |
+
jQuery('#loading_div').show();
|
| 104 |
+
},
|
| 105 |
+
complete: function () {
|
| 106 |
+
jQuery(document).find('#loading_div').hide();
|
| 107 |
+
jQuery('#p_method_clxfunding').prop('disabled', false); // avoid double click call
|
| 108 |
+
}
|
| 109 |
+
});
|
| 110 |
+
/* end */
|
| 111 |
+
});
|
| 112 |
+
|
| 113 |
+
jQuery(document).on('click', '.clx_info', function (event) {
|
| 114 |
+
event.preventDefault();
|
| 115 |
+
event.stopImmediatePropagation();
|
| 116 |
+
var current_element = jQuery(this);
|
| 117 |
+
jQuery(current_element).addClass('not-active');
|
| 118 |
+
jQuery.ajax({
|
| 119 |
+
url: "<?php echo(Mage::getBaseUrl() . 'clxfunding/ClxAPI/aboutCLXFunding'); ?>",
|
| 120 |
+
type: 'post',
|
| 121 |
+
success: function (res)
|
| 122 |
+
{
|
| 123 |
+
bootbox.dialog({
|
| 124 |
+
message: res,
|
| 125 |
+
title: "About Online Loan",
|
| 126 |
+
className:'textAlign_c',
|
| 127 |
+
});
|
| 128 |
+
},
|
| 129 |
+
complete: function ()
|
| 130 |
+
{
|
| 131 |
+
jQuery(current_element).removeClass('not-active');
|
| 132 |
+
}
|
| 133 |
+
});
|
| 134 |
+
});
|
| 135 |
+
/* modal form tabs */
|
| 136 |
+
jQuery(document).on('click', "#clxLoanApplicationModal .nav-tabs a", function (event) {
|
| 137 |
+
event.preventDefault();
|
| 138 |
+
event.stopImmediatePropagation();
|
| 139 |
+
if (jQuery(this).closest('li').hasClass('disabled')) {
|
| 140 |
+
return false;
|
| 141 |
+
}
|
| 142 |
+
else
|
| 143 |
+
{
|
| 144 |
+
jQuery('#clxLoanApplicationModal .nav-tabs a').each(function () {
|
| 145 |
+
jQuery(this).css('display', 'block');
|
| 146 |
+
});
|
| 147 |
+
|
| 148 |
+
jQuery('#clxLoanApplicationModal .nav-tabs li').removeClass('active');
|
| 149 |
+
jQuery(this).parent('li').addClass('active');
|
| 150 |
+
|
| 151 |
+
var id = jQuery(this).attr('href');
|
| 152 |
+
jQuery('#clxLoanApplicationModal #clx-loanform .tab-pane').removeClass('active in');
|
| 153 |
+
jQuery(id).addClass('active in');
|
| 154 |
+
var current_li = jQuery(this).parent().index();
|
| 155 |
+
if (current_li == 2) // loan application (confirmation & submit) tab add button prev,check eligibility,submit
|
| 156 |
+
{
|
| 157 |
+
<?php
|
| 158 |
+
if ($show_loan_offer_flag) {
|
| 159 |
+
?>
|
| 160 |
+
jQuery('#clxLoanApplicationModal').find('.modal-footer').html('<a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="1" data-btn="prev">Previous</a><a href="javascript:void(0);" class="btn btn-default clx_check_eligibility_btn">Check Eligibility</a><a href="javascript:void(0);" class="btn btn-primary clx_loan_application_submit_btn">Create Loan Application</a>');
|
| 161 |
+
<?php
|
| 162 |
+
} else {
|
| 163 |
+
?>
|
| 164 |
+
jQuery('#clxLoanApplicationModal').find('.modal-footer').html('<a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="1" data-btn="prev">Previous</a><a href="javascript:void(0);" class="btn btn-primary clx_loan_application_submit_btn">Create Loan Application</a>');
|
| 165 |
+
<?php } ?>
|
| 166 |
+
}
|
| 167 |
+
else
|
| 168 |
+
{
|
| 169 |
+
if (current_li == 1)// loan application (Bank Details & SSN) tab add button next,prev
|
| 170 |
+
{
|
| 171 |
+
jQuery('#clxLoanApplicationModal').find('.modal-footer').html('<a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="0" data-btn="prev">Previous</a><a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="2" data-btn="next">Next</a>');
|
| 172 |
+
}
|
| 173 |
+
else // loan application (Personal Information) tab add button next
|
| 174 |
+
{
|
| 175 |
+
jQuery('#clxLoanApplicationModal').find('.modal-footer').html('<a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="1" data-btn="next">Next</a>');
|
| 176 |
+
}
|
| 177 |
+
}
|
| 178 |
+
}
|
| 179 |
+
});
|
| 180 |
+
/* end */
|
| 181 |
+
/* common event handle next & prev steps*/
|
| 182 |
+
jQuery(document).on('click', '.clx_common_next_prev_btn', function (event) {
|
| 183 |
+
event.preventDefault();
|
| 184 |
+
event.stopImmediatePropagation();
|
| 185 |
+
|
| 186 |
+
var temp_id = jQuery('#clxLoanApplicationModal ul.nav-tabs li.active a').attr('href');
|
| 187 |
+
var current_form_id = jQuery(temp_id).find('form').attr('id');
|
| 188 |
+
var currentFormValidate = new VarienForm(current_form_id, true);
|
| 189 |
+
var ssn = jQuery('#'+current_form_id).find('#ssn').val();
|
| 190 |
+
Validation.add('custom-ssn','Please enter a valid 9 digit SSN (for example xxxxxxxxx)',function(ssn){
|
| 191 |
+
if(ssn.match(/^\d{9}$/))
|
| 192 |
+
{
|
| 193 |
+
return true;
|
| 194 |
+
}
|
| 195 |
+
return false;
|
| 196 |
+
});
|
| 197 |
+
Validation.add('custom-dob','Age should be above 18',function(birthDate){
|
| 198 |
+
var dateold = new Date(birthDate);
|
| 199 |
+
var datenew = new Date();
|
| 200 |
+
var age = dateDiff(dateold, datenew);
|
| 201 |
+
if(age>=18)
|
| 202 |
+
{
|
| 203 |
+
return true;
|
| 204 |
+
}
|
| 205 |
+
return false;
|
| 206 |
+
});
|
| 207 |
+
|
| 208 |
+
if (currentFormValidate.validator.validate() || jQuery(this).data('btn') == 'prev') {
|
| 209 |
+
jQuery('.nav-tabs li').removeClass('active');
|
| 210 |
+
var tab_index = jQuery(this).data('tab');
|
| 211 |
+
if (tab_index == 1)// loan application (Bank Details & SSN) tab add button next,prev
|
| 212 |
+
{
|
| 213 |
+
jQuery('#clxLoanApplicationModal').find('#selfReportedCreditScore').focus();
|
| 214 |
+
jQuery('#clxLoanApplicationModal').find('.modal-footer').html('<a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="0" data-btn="prev">Previous</a><a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="2" data-btn="next">Next</a>');
|
| 215 |
+
}
|
| 216 |
+
else if (tab_index == 2)// loan application (confirmation & submit) tab add button prev,check eligibility,submit
|
| 217 |
+
{
|
| 218 |
+
jQuery('#clxLoanApplicationModal').find('#loanPurpose').focus();
|
| 219 |
+
<?php
|
| 220 |
+
if ($show_loan_offer_flag) {
|
| 221 |
+
?>
|
| 222 |
+
jQuery('#clxLoanApplicationModal').find('.modal-footer').html('<a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="1" data-btn="prev">Previous</a><a href="javascript:void(0);" class="btn btn-default clx_check_eligibility_btn">Check Eligibility</a><a href="javascript:void(0);" class="btn btn-primary clx_loan_application_submit_btn">Create Loan Application</a>');
|
| 223 |
+
<?php
|
| 224 |
+
} else {
|
| 225 |
+
?>
|
| 226 |
+
jQuery('#clxLoanApplicationModal').find('.modal-footer').html('<a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="1" data-btn="prev">Previous</a><a href="javascript:void(0);" class="btn btn-primary clx_loan_application_submit_btn">Create Loan Application</a>');
|
| 227 |
+
<?php } ?>
|
| 228 |
+
}
|
| 229 |
+
else// loan application (Personal Information) tab add button next
|
| 230 |
+
{
|
| 231 |
+
jQuery('#clxLoanApplicationModal').find('#firstName').focus();
|
| 232 |
+
jQuery('#clxLoanApplicationModal').find('.modal-footer').html('<a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="1" data-btn="next">Next</a>');
|
| 233 |
+
}
|
| 234 |
+
var next_li = jQuery('.nav-tabs li').eq(tab_index);
|
| 235 |
+
jQuery(next_li).addClass('active');
|
| 236 |
+
jQuery(next_li).removeClass('disabled');
|
| 237 |
+
jQuery(next_li).find('a').data('toggle', 'tab');
|
| 238 |
+
var id = jQuery(next_li).find('a').attr('href');
|
| 239 |
+
jQuery('#clx-loanform .tab-pane').removeClass('active in');
|
| 240 |
+
jQuery(id).addClass('active in');
|
| 241 |
+
}
|
| 242 |
+
else
|
| 243 |
+
{
|
| 244 |
+
return false;
|
| 245 |
+
}
|
| 246 |
+
|
| 247 |
+
});
|
| 248 |
+
/* end */
|
| 249 |
+
/*jQuery('.nav-tabs a').on('shown.bs.tab', function (event) {
|
| 250 |
+
var x = jQuery(event.target).text(); // active tab
|
| 251 |
+
var y = jQuery(event.relatedTarget).text(); // previous tab
|
| 252 |
+
jQuery(".act span").text(x);
|
| 253 |
+
jQuery(".prev span").text(y);
|
| 254 |
+
});*/
|
| 255 |
+
/* loan application form submit */
|
| 256 |
+
|
| 257 |
+
jQuery(document).on('click', '.clx_loan_offer_accept', function (event) {
|
| 258 |
+
event.preventDefault();
|
| 259 |
+
event.stopImmediatePropagation();
|
| 260 |
+
|
| 261 |
+
var current_element = jQuery(this);
|
| 262 |
+
jQuery(current_element).addClass('disabled');
|
| 263 |
+
jQuery('#loanApplicationForm').hide();
|
| 264 |
+
var serializeData = jQuery('#personal_information_form1,#bankdetails_and_ssn_form2,#confirmation_and_submit_form3').serializeArray();
|
| 265 |
+
var selected_loan_offer = jQuery('.clx_loan_offer_select:checked');
|
| 266 |
+
serializeData.push({name: 'loanOfferId', value: jQuery(selected_loan_offer).val()});
|
| 267 |
+
serializeData.push({name: 'paymentAmount', value: jQuery(selected_loan_offer).data('paymentamount')});
|
| 268 |
+
serializeData.push({name: 'loanTerm', value: jQuery(selected_loan_offer).data('loanterm')});
|
| 269 |
+
serializeData.push({name: 'loanAPR', value: jQuery(selected_loan_offer).data('loanapr')});
|
| 270 |
+
serializeData.push({name: 'loanRate', value: jQuery(selected_loan_offer).data('loanrate')});
|
| 271 |
+
serializeData.push({name: 'showSelectedOfferUrl', value: jQuery(selected_loan_offer).data('showselectedofferurl')});
|
| 272 |
+
serializeData.push({name: 'lenderName', value: jQuery(selected_loan_offer).data('lendername')});
|
| 273 |
+
serializeData.push({name: 'paymentFrequency', value: jQuery(selected_loan_offer).data('paymentfrequency')});
|
| 274 |
+
serializeData.push({name: 'downPayment', value: jQuery(selected_loan_offer).data('downpayment')});
|
| 275 |
+
<?php /*
|
| 276 |
+
var current_tr = jQuery('.clx_loan_offer_select:checked').closest('tr').clone(true);
|
| 277 |
+
jQuery(current_tr).find('td').first().remove();
|
| 278 |
+
jQuery(current_tr).find('td').last().remove();
|
| 279 |
+
*/?>
|
| 280 |
+
jQuery.ajax({
|
| 281 |
+
url: "<?php echo(Mage::getBaseUrl() . 'clxfunding/ClxAPI/storeSelectedLoanOffer'); ?>",
|
| 282 |
+
data: serializeData,
|
| 283 |
+
type: 'post',
|
| 284 |
+
dataType: 'json',
|
| 285 |
+
success: function (res)
|
| 286 |
+
{
|
| 287 |
+
jQuery(current_element).removeClass('disabled');
|
| 288 |
+
if (res.valid)
|
| 289 |
+
{
|
| 290 |
+
jQuery(document).find('#p_method_clxfunding').prop('checked', 'checked');
|
| 291 |
+
jQuery(document).find('#clxLoanApplicationModal').remove();
|
| 292 |
+
jQuery(document).find('#loanApplicationForm').remove();
|
| 293 |
+
payment.save(); // proceed to next step
|
| 294 |
+
}
|
| 295 |
+
else
|
| 296 |
+
{
|
| 297 |
+
jQuery(document).find('#p_method_clxfunding').prop('checked', false);
|
| 298 |
+
jQuery(document).find('#clxLoanApplicationModal').remove();
|
| 299 |
+
jQuery(document).find('#loanApplicationForm').remove();
|
| 300 |
+
}
|
| 301 |
+
}
|
| 302 |
+
});
|
| 303 |
+
<?php /*
|
| 304 |
+
var custom_table = '<table class="table table-bordered"><caption><h5>Offer selected by you </h5></caption><thead><tr><th>Monthly Payment</th><th>Terms</th><th>APR(%)</th><th>Loan Rate(%)</th></tr></thead><tbody><tr>' + jQuery(current_tr).html() + '</tr></tbody></table>';
|
| 305 |
+
bootbox.dialog({
|
| 306 |
+
message: custom_table,
|
| 307 |
+
title: "Confirmation",
|
| 308 |
+
className:'textAlign_c',
|
| 309 |
+
buttons: {
|
| 310 |
+
success: {
|
| 311 |
+
label: "Yes",
|
| 312 |
+
className: "btn-success",
|
| 313 |
+
callback: function () {
|
| 314 |
+
jQuery.ajax({
|
| 315 |
+
url: "<?php echo(Mage::getBaseUrl() . 'clxfunding/ClxAPI/storeSelectedLoanOffer'); ?>",
|
| 316 |
+
data: serializeData,
|
| 317 |
+
type: 'post',
|
| 318 |
+
dataType: 'json',
|
| 319 |
+
success: function (res)
|
| 320 |
+
{
|
| 321 |
+
jQuery(current_element).removeClass('disabled');
|
| 322 |
+
if (res.valid)
|
| 323 |
+
{
|
| 324 |
+
jQuery(document).find('#p_method_clxfunding').prop('checked', 'checked');
|
| 325 |
+
jQuery(document).find('#clxLoanApplicationModal').remove();
|
| 326 |
+
jQuery(document).find('#loanApplicationForm').remove();
|
| 327 |
+
payment.save(); // proceed to next step
|
| 328 |
+
}
|
| 329 |
+
else
|
| 330 |
+
{
|
| 331 |
+
jQuery(document).find('#p_method_clxfunding').prop('checked', false);
|
| 332 |
+
jQuery(document).find('#clxLoanApplicationModal').remove();
|
| 333 |
+
jQuery(document).find('#loanApplicationForm').remove();
|
| 334 |
+
}
|
| 335 |
+
}
|
| 336 |
+
});
|
| 337 |
+
}
|
| 338 |
+
},
|
| 339 |
+
danger: {
|
| 340 |
+
label: "No",
|
| 341 |
+
className: "btn-danger",
|
| 342 |
+
callback: function () {
|
| 343 |
+
jQuery(current_element).removeClass('disabled');
|
| 344 |
+
jQuery('#loanApplicationForm').show();
|
| 345 |
+
}
|
| 346 |
+
}
|
| 347 |
+
}
|
| 348 |
+
});*/?>
|
| 349 |
+
});
|
| 350 |
+
jQuery(document).on('click', '.clx_loan_offer_back', function (event) {
|
| 351 |
+
event.preventDefault();
|
| 352 |
+
event.stopImmediatePropagation();
|
| 353 |
+
|
| 354 |
+
jQuery(this).closest('.modal').remove();
|
| 355 |
+
jQuery(document).find('#clxLoanApplicationModal').show();
|
| 356 |
+
});
|
| 357 |
+
/* continue button after loan application accepted by clx*/
|
| 358 |
+
jQuery(document).on('click', '.clx_funding_continue', function (event) {
|
| 359 |
+
event.preventDefault();
|
| 360 |
+
event.stopImmediatePropagation();
|
| 361 |
+
|
| 362 |
+
jQuery.ajax({
|
| 363 |
+
url: "<?php echo(Mage::getBaseUrl() . 'clxfunding/ClxAPI/setLoanApplicationSess'); ?>",
|
| 364 |
+
dataType: 'json',
|
| 365 |
+
success: function (res)
|
| 366 |
+
{
|
| 367 |
+
if (res.valid)
|
| 368 |
+
{
|
| 369 |
+
jQuery(document).find('#p_method_clxfunding').prop('checked', 'checked');
|
| 370 |
+
jQuery(this).closest('.modal').remove();
|
| 371 |
+
jQuery(document).find('#clxLoanApplicationModal').modal('hide');
|
| 372 |
+
payment.save(); // proceed to next step
|
| 373 |
+
}
|
| 374 |
+
}
|
| 375 |
+
});
|
| 376 |
+
|
| 377 |
+
});
|
| 378 |
+
jQuery(document).on('click', '.clx_funding_return', function (event) {
|
| 379 |
+
event.preventDefault();
|
| 380 |
+
event.stopImmediatePropagation();
|
| 381 |
+
|
| 382 |
+
jQuery(this).closest('.modal').remove();
|
| 383 |
+
jQuery(document).find('#clxLoanApplicationModal').remove();
|
| 384 |
+
jQuery(document).find('#loanApplicationForm').remove();
|
| 385 |
+
jQuery(document).find('#loanApplicationStatus').remove();
|
| 386 |
+
jQuery(document).find('#loading_div').remove();
|
| 387 |
+
|
| 388 |
+
});
|
| 389 |
+
/* form submit on button click check eligibility,submit button click*/
|
| 390 |
+
jQuery(document).on('click', '.clx_check_eligibility_btn,.clx_loan_application_submit_btn', function (event) {
|
| 391 |
+
event.preventDefault();
|
| 392 |
+
event.stopImmediatePropagation();
|
| 393 |
+
|
| 394 |
+
jQuery('#loading_div').show();
|
| 395 |
+
var btn_flag = jQuery(this);
|
| 396 |
+
jQuery(btn_flag).addClass('disabled');
|
| 397 |
+
if (jQuery(this).hasClass('clx_modal_form_submit_btn'))//next button
|
| 398 |
+
{
|
| 399 |
+
jQuery("#clxLoanApplicationModal").find('#clx_btn_flag').val('next');
|
| 400 |
+
}
|
| 401 |
+
else if (jQuery(this).hasClass('clx_check_eligibility_btn'))
|
| 402 |
+
{
|
| 403 |
+
jQuery("#clxLoanApplicationModal").find('#clx_btn_flag').val('check_eligibility');
|
| 404 |
+
}
|
| 405 |
+
else
|
| 406 |
+
{
|
| 407 |
+
jQuery("#clxLoanApplicationModal").find('#clx_btn_flag').val('loan_apply');
|
| 408 |
+
}
|
| 409 |
+
|
| 410 |
+
loan_application_form_submit(btn_flag);
|
| 411 |
+
});
|
| 412 |
+
/* loan form close event - uncheck radio button*/
|
| 413 |
+
jQuery('body').delegate('.clx_modal_form_close', 'click', function () {
|
| 414 |
+
jQuery('#p_method_clxfunding').prop('checked', false);
|
| 415 |
+
|
| 416 |
+
});
|
| 417 |
+
/* end */
|
| 418 |
+
});
|
| 419 |
+
function loan_application_form_submit(btn_flag)
|
| 420 |
+
{
|
| 421 |
+
var url = jQuery('#clxLoanApplicationModal').find('#loan_application_redirect_url').val();
|
| 422 |
+
|
| 423 |
+
var form1 = new VarienForm('personal_information_form1', true);
|
| 424 |
+
var form2 = new VarienForm('bankdetails_and_ssn_form2', true);
|
| 425 |
+
var form3 = new VarienForm('confirmation_and_submit_form3', true);
|
| 426 |
+
|
| 427 |
+
if (form1.validator.validate() && form2.validator.validate() && form3.validator.validate()) {
|
| 428 |
+
jQuery.ajax({
|
| 429 |
+
url: url,
|
| 430 |
+
data: jQuery('#personal_information_form1,#bankdetails_and_ssn_form2,#confirmation_and_submit_form3').serialize(),
|
| 431 |
+
type: 'post',
|
| 432 |
+
dataType: 'json',
|
| 433 |
+
success: function (response)
|
| 434 |
+
{
|
| 435 |
+
jQuery('#loading_div').hide();
|
| 436 |
+
jQuery(btn_flag).removeClass('disabled');
|
| 437 |
+
//response.flag possible values - C.next btn validation,2.check eligibility,3.submit button
|
| 438 |
+
if (response.flag)
|
| 439 |
+
{
|
| 440 |
+
if (response.flag == 'C')
|
| 441 |
+
{
|
| 442 |
+
if (response.valid)
|
| 443 |
+
{
|
| 444 |
+
jQuery('#clxLoanApplicationModal .nav-tabs li a').removeClass('custom-clx-error');
|
| 445 |
+
jQuery('#personal_information_form1,#bankdetails_and_ssn_form2,#confirmation_and_submit_form3').find('.input-text').each(function () {
|
| 446 |
+
var cur_node = jQuery(this);
|
| 447 |
+
jQuery(cur_node).removeClass('validation-passed');
|
| 448 |
+
jQuery(cur_node).closest('div').find('.validation-advice').remove();
|
| 449 |
+
});
|
| 450 |
+
}
|
| 451 |
+
else
|
| 452 |
+
{
|
| 453 |
+
var err_arr = response.error_messages;
|
| 454 |
+
var err_tab_flag_arr = response.tab_flag;
|
| 455 |
+
jQuery('#personal_information_form1,#bankdetails_and_ssn_form2,#confirmation_and_submit_form3').find('.input-text').each(function () {
|
| 456 |
+
|
| 457 |
+
var cur_node = jQuery(this);
|
| 458 |
+
if (jQuery(this).attr('name') in err_arr) // add server side validation
|
| 459 |
+
{
|
| 460 |
+
jQuery(cur_node).removeClass('validation-passed');
|
| 461 |
+
jQuery(cur_node).addClass('validation-failed');
|
| 462 |
+
jQuery(cur_node).closest('div').find('.validation-advice').remove();
|
| 463 |
+
jQuery('<div class="validation-advice" style="">' + err_arr[jQuery(this).attr('name')] + '</div>').insertAfter(jQuery(cur_node));
|
| 464 |
+
}
|
| 465 |
+
else
|
| 466 |
+
{
|
| 467 |
+
jQuery(cur_node).removeClass('validation-passed');
|
| 468 |
+
jQuery(cur_node).closest('div').find('.validation-advice').remove();
|
| 469 |
+
}
|
| 470 |
+
});
|
| 471 |
+
var t_flag = 0;
|
| 472 |
+
jQuery('#clxLoanApplicationModal .nav-tabs li a').removeClass('custom-clx-error');
|
| 473 |
+
jQuery.each(err_tab_flag_arr, function (i, val) {
|
| 474 |
+
jQuery('#clxLoanApplicationModal .nav-tabs li').eq(val - 1).find('a').addClass('custom-clx-error');
|
| 475 |
+
if (val == 1)
|
| 476 |
+
{
|
| 477 |
+
t_flag = 1;
|
| 478 |
+
}
|
| 479 |
+
if (val == 2)
|
| 480 |
+
{
|
| 481 |
+
if (t_flag != 1)
|
| 482 |
+
t_flag = 2;
|
| 483 |
+
}
|
| 484 |
+
if (val == 3)
|
| 485 |
+
{
|
| 486 |
+
if (t_flag != 1 && t_flag != 2)
|
| 487 |
+
t_flag = 3;
|
| 488 |
+
}
|
| 489 |
+
});
|
| 490 |
+
jQuery('.nav-tabs li').removeClass('active');
|
| 491 |
+
var tab_index = t_flag - 1;
|
| 492 |
+
if (tab_index == 1)// loan application (Bank Details & SSN) tab add button next,prev
|
| 493 |
+
{
|
| 494 |
+
jQuery('#clxLoanApplicationModal').find('.modal-footer').html('<a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="0" data-btn="prev">Previous</a><a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="2" data-btn="next">Next</a>');
|
| 495 |
+
}
|
| 496 |
+
else if (tab_index == 2)// loan application (confirmation & submit) tab add button prev,check eligibility,submit
|
| 497 |
+
{
|
| 498 |
+
<?php
|
| 499 |
+
if ($show_loan_offer_flag) {
|
| 500 |
+
?>
|
| 501 |
+
jQuery('#clxLoanApplicationModal').find('.modal-footer').html('<a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="1" data-btn="prev">Previous</a><a href="javascript:void(0);" class="btn btn-default clx_check_eligibility_btn">Check Eligibility</a><a href="javascript:void(0);" class="btn btn-primary clx_loan_application_submit_btn">Create Loan Application</a>');
|
| 502 |
+
<?php
|
| 503 |
+
} else {
|
| 504 |
+
?>
|
| 505 |
+
jQuery('#clxLoanApplicationModal').find('.modal-footer').html('<a href="javascript:void(0);" class="btn btn-primary clx_common_next_prev_btn" data-tab="1" data-btn="prev">Previous</a><a href="javascript:void(0);" class="btn btn-default clx_loan_application_submit_btn">Create Loan Application</a>');
|
| 506 |
+
<?php } ?>
|
| 507 |
+
}
|
| 508 |
+
else// loan application (Personal Information) tab add button next
|
| 509 |
+
{
|
| 510 |
+
jQuery('#clxLoanApplicationModal').find('.modal-footer').html('<a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="1" data-btn="next">Next</a>');
|
| 511 |
+
}
|
| 512 |
+
var cur_li = jQuery('.nav-tabs li').eq(tab_index);
|
| 513 |
+
jQuery(cur_li).addClass('active');
|
| 514 |
+
jQuery(cur_li).removeClass('disabled');
|
| 515 |
+
jQuery(cur_li).find('a').data('toggle', 'tab');
|
| 516 |
+
var id = jQuery(cur_li).find('a').attr('href');
|
| 517 |
+
jQuery('#clx-loanform .tab-pane').removeClass('active in');
|
| 518 |
+
jQuery(id).addClass('active in');
|
| 519 |
+
}
|
| 520 |
+
}
|
| 521 |
+
else if (response.flag == 2)
|
| 522 |
+
{
|
| 523 |
+
jQuery('#clxLoanApplicationModal .nav-tabs li a').removeClass('custom-clx-error');
|
| 524 |
+
jQuery('#personal_information_form1,#bankdetails_and_ssn_form2,#confirmation_and_submit_form3').find('.input-text').each(function () {
|
| 525 |
+
var cur_node = jQuery(this);
|
| 526 |
+
jQuery(cur_node).removeClass('validation-passed');
|
| 527 |
+
jQuery(cur_node).closest('div').find('.validation-advice').remove();
|
| 528 |
+
});
|
| 529 |
+
/* call loan offer api */
|
| 530 |
+
if (response.redirect_url != '') // response.redirect_url - path to controller function
|
| 531 |
+
{
|
| 532 |
+
jQuery.ajax({
|
| 533 |
+
url: response.redirect_url,
|
| 534 |
+
data: jQuery('#personal_information_form1,#bankdetails_and_ssn_form2,#confirmation_and_submit_form3').serialize(),
|
| 535 |
+
type: 'post',
|
| 536 |
+
dataType: 'json',
|
| 537 |
+
success: function (ret_data)
|
| 538 |
+
{
|
| 539 |
+
if (ret_data.valid)
|
| 540 |
+
{
|
| 541 |
+
if (jQuery('#clxLoanApplicationModal').length)
|
| 542 |
+
{
|
| 543 |
+
jQuery('#clxLoanApplicationModal').hide();
|
| 544 |
+
}
|
| 545 |
+
if (jQuery('#loanApplicationForm').length)
|
| 546 |
+
{
|
| 547 |
+
jQuery('#loanApplicationForm').hide();
|
| 548 |
+
}
|
| 549 |
+
var offerView = ret_data.offer_view;
|
| 550 |
+
jQuery(offerView).modal({backdrop: 'static', keyboard: false});
|
| 551 |
+
}
|
| 552 |
+
else
|
| 553 |
+
{
|
| 554 |
+
bootbox.dialog({
|
| 555 |
+
message: "We are sorry to inform you that your loan application cannot be processed further.",
|
| 556 |
+
title: "Notification",
|
| 557 |
+
className:'textAlign_c',
|
| 558 |
+
});
|
| 559 |
+
}
|
| 560 |
+
},
|
| 561 |
+
beforeSend: function () {
|
| 562 |
+
jQuery('#loading_div').show();
|
| 563 |
+
},
|
| 564 |
+
complete: function () {
|
| 565 |
+
jQuery('#loading_div').hide();
|
| 566 |
+
}
|
| 567 |
+
});
|
| 568 |
+
}
|
| 569 |
+
}
|
| 570 |
+
else if (response.flag == 3)//
|
| 571 |
+
{
|
| 572 |
+
jQuery('#clxLoanApplicationModal .nav-tabs li a').removeClass('custom-clx-error');
|
| 573 |
+
jQuery('#personal_information_form1,#bankdetails_and_ssn_form2,#confirmation_and_submit_form3').find('.input-text').each(function () {
|
| 574 |
+
var cur_node = jQuery(this);
|
| 575 |
+
jQuery(cur_node).removeClass('validation-passed');
|
| 576 |
+
jQuery(cur_node).closest('div').find('.validation-advice').remove();
|
| 577 |
+
});
|
| 578 |
+
/* call loan application api */
|
| 579 |
+
if (response.redirect_url != '')
|
| 580 |
+
{
|
| 581 |
+
jQuery.ajax({
|
| 582 |
+
url: response.redirect_url, // response.redirect_url - path to controller function
|
| 583 |
+
data: jQuery('#personal_information_form1,#bankdetails_and_ssn_form2,#confirmation_and_submit_form3').serialize(),
|
| 584 |
+
type: 'post',
|
| 585 |
+
dataType: 'json',
|
| 586 |
+
success: function (ret_data)
|
| 587 |
+
{
|
| 588 |
+
if (ret_data.valid)
|
| 589 |
+
{
|
| 590 |
+
if (jQuery('#clxLoanApplicationModal').length)
|
| 591 |
+
{
|
| 592 |
+
jQuery('#clxLoanApplicationModal').hide();
|
| 593 |
+
}
|
| 594 |
+
if (jQuery('#loanApplicationForm').length)
|
| 595 |
+
{
|
| 596 |
+
jQuery('#loanApplicationForm').hide();
|
| 597 |
+
}
|
| 598 |
+
var offerView = ret_data.offer_view;
|
| 599 |
+
jQuery(offerView).modal({backdrop: 'static', keyboard: false});
|
| 600 |
+
}
|
| 601 |
+
else
|
| 602 |
+
{
|
| 603 |
+
bootbox.dialog({
|
| 604 |
+
message: "We are sorry to inform you that your loan application cannot be processed further.",
|
| 605 |
+
title: "Notification",
|
| 606 |
+
className:'textAlign_c',
|
| 607 |
+
});
|
| 608 |
+
}
|
| 609 |
+
},
|
| 610 |
+
beforeSend: function () {
|
| 611 |
+
jQuery('#loading_div').show();
|
| 612 |
+
},
|
| 613 |
+
complete: function () {
|
| 614 |
+
jQuery('#loading_div').hide();
|
| 615 |
+
}
|
| 616 |
+
});
|
| 617 |
+
}
|
| 618 |
+
}
|
| 619 |
+
}
|
| 620 |
+
else
|
| 621 |
+
{
|
| 622 |
+
if(!response.valid && !response.flag)
|
| 623 |
+
{
|
| 624 |
+
bootbox.dialog({
|
| 625 |
+
message: "We are sorry to inform you that your loan application cannot be processed further.",
|
| 626 |
+
title: "Notification",
|
| 627 |
+
className:'textAlign_c',
|
| 628 |
+
});
|
| 629 |
+
}
|
| 630 |
+
}
|
| 631 |
+
}
|
| 632 |
+
|
| 633 |
+
});
|
| 634 |
+
}
|
| 635 |
+
else {
|
| 636 |
+
jQuery('#loading_div').hide();
|
| 637 |
+
jQuery(btn_flag).removeClass('disabled');
|
| 638 |
+
}
|
| 639 |
+
}
|
| 640 |
+
function dateDiff(dateold, datenew)
|
| 641 |
+
{
|
| 642 |
+
var ynew = datenew.getFullYear();
|
| 643 |
+
var mnew = datenew.getMonth();
|
| 644 |
+
var dnew = datenew.getDate();
|
| 645 |
+
var yold = dateold.getFullYear();
|
| 646 |
+
var mold = dateold.getMonth();
|
| 647 |
+
var dold = dateold.getDate();
|
| 648 |
+
var diff = ynew - yold;
|
| 649 |
+
if(mold > mnew) diff--;
|
| 650 |
+
else
|
| 651 |
+
{
|
| 652 |
+
if(mold == mnew)
|
| 653 |
+
{
|
| 654 |
+
if(dold > dnew) diff--;
|
| 655 |
+
}
|
| 656 |
+
}
|
| 657 |
+
return diff;
|
| 658 |
+
}
|
| 659 |
+
</script>
|
| 660 |
+
|
app/design/frontend/base/default/template/clxfunding/form/confirm_user_acceptance.phtml
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<div class="">
|
| 2 |
+
<div class="">
|
| 3 |
+
<form name="loan_offer_acceptance" id="loan_offer_acceptance" method="post" action="<?php echo Mage::getBaseUrl() . 'clxfunding/ClxAPI/checkLoanOfferAcceptanceStatus'; ?>">
|
| 4 |
+
<div class="" style="width:80%">
|
| 5 |
+
<div class="page-title">
|
| 6 |
+
</div>
|
| 7 |
+
<h5 class="sub-title">Thank you for choosing Online Loan</h5>
|
| 8 |
+
<p>Please confirm your acceptance of the selected loan offer.</p>
|
| 9 |
+
<div class="buttons-set border-top-none">
|
| 10 |
+
<button type="button" class="button align-left" title="Continue Shopping" onclick="redirectURL()"><span><span>I Reject</span></span></button>
|
| 11 |
+
<button type="submit" class="button align-left" id="Confirm_Acceptance_Submit" title="Confirm Acceptance"><span><span>I Accept</span></span></button>
|
| 12 |
+
</div>
|
| 13 |
+
</div>
|
| 14 |
+
</form>
|
| 15 |
+
</div>
|
| 16 |
+
</div>
|
| 17 |
+
<script>
|
| 18 |
+
function redirectURL() {
|
| 19 |
+
window.location.href = "<?php echo Mage::getBaseUrl().'customer/account'; ?>";
|
| 20 |
+
}
|
| 21 |
+
</script>
|
app/design/frontend/base/default/template/clxfunding/form/custompaymentmethod.phtml~
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/*
|
| 3 |
+
<div class="form-list" id="payment_form_<?php echo $this->getMethodCode();?>" style="display:block;">
|
| 4 |
+
<div>
|
| 5 |
+
<label><?php echo $this->__('Custom Field One') ?>*</label>
|
| 6 |
+
<span>
|
| 7 |
+
<input type="text" title="<?php echo $this->__('Custom Field One') ?>" name="payment[custom_field_one]" value="<?php echo $this->htmlEscape($this->getInfoData('custom_field_one')) ?>" />
|
| 8 |
+
</span>
|
| 9 |
+
</div>
|
| 10 |
+
<div>
|
| 11 |
+
<label><?php echo $this->__('Custom Field Two') ?>*</label>
|
| 12 |
+
<span>
|
| 13 |
+
<input type="text" title="<?php echo $this->__('Custom Field Two') ?>" name="payment[custom_field_two]" value="<?php echo $this->htmlEscape($this->getInfoData('custom_field_two')) ?>" />
|
| 14 |
+
</span>
|
| 15 |
+
</div>
|
| 16 |
+
</div>
|
| 17 |
+
<div>
|
| 18 |
+
<?php echo $this->getMethod()->getConfigData('message'); ?>
|
| 19 |
+
</div>
|
| 20 |
+
*/?>
|
| 21 |
+
<script type="text/javascript">
|
| 22 |
+
//< ![CDATA[
|
| 23 |
+
var customForm = new VarienForm('my-clxloan-form', true);
|
| 24 |
+
//]]>
|
| 25 |
+
</script>
|
| 26 |
+
<script>
|
| 27 |
+
jQuery(document).ready(function(jQuery) {
|
| 28 |
+
|
| 29 |
+
jQuery('#p_method_custompaymentmethod').click(function() {
|
| 30 |
+
jQuery(this).prop('checked',false);
|
| 31 |
+
jQuery('#myModal').modal({backdrop: 'static', keyboard: false});
|
| 32 |
+
jQuery('#myModal').find('#my-clxloan-form')[0].reset();
|
| 33 |
+
jQuery('#myModal').find('#my-clxloan-form').find('.input-text').not('select,input[type="submit"]').val('');
|
| 34 |
+
jQuery('#myModal').find('#my-clxloan-form').find('.input-text').each(function(){
|
| 35 |
+
jQuery(this).removeClass('validation-failed');
|
| 36 |
+
jQuery(this).next('.validation-advice').remove();
|
| 37 |
+
});
|
| 38 |
+
jQuery('#myModal').find('.nav-tabs li').first().trigger('click');
|
| 39 |
+
//jQuery('#myModal').modal('show');
|
| 40 |
+
jQuery('#myModal').find('.input-text').removeAttr('disabled');
|
| 41 |
+
});
|
| 42 |
+
jQuery(".nav-tabs a").click(function(e) {
|
| 43 |
+
e.preventDefault();
|
| 44 |
+
// jQuery(this).tab('show');
|
| 45 |
+
|
| 46 |
+
jQuery('.nav-tabs li').removeClass('active');
|
| 47 |
+
jQuery(this).parent('li').addClass('active');
|
| 48 |
+
|
| 49 |
+
var id = jQuery(this).attr('href');
|
| 50 |
+
jQuery('#clx-loanform .tab-pane').removeClass('active in');
|
| 51 |
+
jQuery(id).addClass('active in');
|
| 52 |
+
});
|
| 53 |
+
jQuery('.nav-tabs a').on('shown.bs.tab', function(event) {
|
| 54 |
+
var x = jQuery(event.target).text(); // active tab
|
| 55 |
+
var y = jQuery(event.relatedTarget).text(); // previous tab
|
| 56 |
+
jQuery(".act span").text(x);
|
| 57 |
+
jQuery(".prev span").text(y);
|
| 58 |
+
});
|
| 59 |
+
jQuery(document).on('submit','#my-clxloan-form',function(event){
|
| 60 |
+
event.preventDefault();
|
| 61 |
+
var url = jQuery(this).data('action');
|
| 62 |
+
jQuery.ajax({
|
| 63 |
+
url:url,
|
| 64 |
+
data:jQuery(this).serialize(),
|
| 65 |
+
type:'post',
|
| 66 |
+
dataType:'json',
|
| 67 |
+
success:function(response)
|
| 68 |
+
{
|
| 69 |
+
if(response.valid)
|
| 70 |
+
{
|
| 71 |
+
jQuery('#my-clxloan-form').find('.input-text').each(function(){
|
| 72 |
+
var cur_node = jQuery(this);
|
| 73 |
+
jQuery(cur_node).removeClass('validation-passed');
|
| 74 |
+
if(jQuery(cur_node).next().hasClass('validation-advice'))
|
| 75 |
+
{
|
| 76 |
+
jQuery(cur_node).next().remove();
|
| 77 |
+
}
|
| 78 |
+
});
|
| 79 |
+
}
|
| 80 |
+
else
|
| 81 |
+
{
|
| 82 |
+
var err_arr = response.error_messages;
|
| 83 |
+
jQuery('#my-clxloan-form').find('.input-text').each(function(){
|
| 84 |
+
|
| 85 |
+
var cur_node = jQuery(this);
|
| 86 |
+
if(jQuery(this).attr('name') in err_arr)
|
| 87 |
+
{
|
| 88 |
+
jQuery(cur_node).removeClass('validation-passed');
|
| 89 |
+
jQuery(cur_node).addClass('validation-failed');
|
| 90 |
+
if(jQuery(cur_node).next().hasClass('validation-advice'))
|
| 91 |
+
{
|
| 92 |
+
jQuery(cur_node).next().remove();
|
| 93 |
+
}
|
| 94 |
+
jQuery('<div class="validation-advice" style="">'+err_arr[jQuery(this).attr('name')]+'</div>').insertAfter(jQuery(cur_node));
|
| 95 |
+
}
|
| 96 |
+
else
|
| 97 |
+
{
|
| 98 |
+
jQuery(cur_node).removeClass('validation-passed');
|
| 99 |
+
if(jQuery(cur_node).next().hasClass('validation-advice'))
|
| 100 |
+
{
|
| 101 |
+
jQuery(cur_node).next().remove();
|
| 102 |
+
}
|
| 103 |
+
}
|
| 104 |
+
});
|
| 105 |
+
}
|
| 106 |
+
}
|
| 107 |
+
});
|
| 108 |
+
});
|
| 109 |
+
/*jQuery('body').delegate('.submitss','click',function(){
|
| 110 |
+
jQuery(this).closest('form').attr('action');
|
| 111 |
+
alert(jQuery('#my-clxloan-form').attr('action'));
|
| 112 |
+
});*/
|
| 113 |
+
jQuery('body').delegate('.clx_modal_form_close','click',function(){
|
| 114 |
+
jQuery('#p_method_custompaymentmethod').prop('checked', false);
|
| 115 |
+
});
|
| 116 |
+
|
| 117 |
+
});
|
| 118 |
+
</script>
|
app/design/frontend/base/default/template/clxfunding/form/link_Expire.phtml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<div class="">
|
| 2 |
+
<div class="">
|
| 3 |
+
<div class="" style="width:80%">
|
| 4 |
+
<p>This link does not exist more. This may occur due to either you have confirmed your acceptance already or you haven't given your response within the given time-frame.</p>
|
| 5 |
+
<div class="buttons-set border-top-none">
|
| 6 |
+
<button class="button align-left" onclick="redirectURL()" title="My Account"><span><span>My Account</span></span></button>
|
| 7 |
+
</div>
|
| 8 |
+
</div>
|
| 9 |
+
</div>
|
| 10 |
+
</div>
|
| 11 |
+
<script>
|
| 12 |
+
function redirectURL() {
|
| 13 |
+
window.location.href = "<?php echo Mage::getBaseUrl().'customer/account'; ?>";
|
| 14 |
+
}
|
| 15 |
+
</script>
|
app/design/frontend/base/default/template/clxfunding/form/loan_offer_response.phtml
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php $data = $this->getLoanOffers(); ?>
|
| 2 |
+
<div id="loanApplicationForm" class="modal fade" role="dialog">
|
| 3 |
+
<div class="modal-dialog">
|
| 4 |
+
<!-- Modal content-->
|
| 5 |
+
<div class="modal-content">
|
| 6 |
+
<div class="modal-header">
|
| 7 |
+
<?php if (isset($data->application_status) && $data->application_status == "ACCEPTED" && isset($data->loan_offers) && is_array($data->loan_offers) && !empty($data->loan_offers) && count($data->loan_offers)) { ?>
|
| 8 |
+
<center><h4 class="modal-title">Your Pre-Approved Loan Offers</h4></center>
|
| 9 |
+
<?php } else { ?>
|
| 10 |
+
<center><h4 class="modal-title">Application Response</h4></center>
|
| 11 |
+
<?php } ?>
|
| 12 |
+
</div>
|
| 13 |
+
<div class="modal-body">
|
| 14 |
+
<?php
|
| 15 |
+
if (isset($data->application_status) && $data->application_status == "ACCEPTED") {
|
| 16 |
+
if (isset($data->loan_offers) && is_array($data->loan_offers) && !empty($data->loan_offers) && count($data->loan_offers)) {
|
| 17 |
+
?>
|
| 18 |
+
<div class="table-responsive">
|
| 19 |
+
<table class="table table-hover">
|
| 20 |
+
<thead>
|
| 21 |
+
<tr>
|
| 22 |
+
<th>#</th>
|
| 23 |
+
<th>Monthly Payment($)</th>
|
| 24 |
+
<th>Terms(Months)</th>
|
| 25 |
+
<th>APR(%)</th>
|
| 26 |
+
<th>Interest Rate(%)</th>
|
| 27 |
+
<?php if(count($data->loan_offers) && isset($data->loan_offers[0]->showSelectedOfferUrl)){
|
| 28 |
+
echo "<th>More Details</th>";
|
| 29 |
+
}?>
|
| 30 |
+
</tr>
|
| 31 |
+
</thead>
|
| 32 |
+
<tbody>
|
| 33 |
+
<?php
|
| 34 |
+
for ($i = 0; $i < count($data->loan_offers); $i++) {
|
| 35 |
+
?>
|
| 36 |
+
<tr>
|
| 37 |
+
<td><input type="radio" name="clx_loan_offer_select" data-downPayment="<?php echo(isset($data->loan_offers[$i]->downPayment) ? $data->loan_offers[$i]->downPayment : ''); ?>" data-paymentFrequency="<?php echo(isset($data->loan_offers[$i]->paymentFrequency) ? $data->loan_offers[$i]->paymentFrequency : ''); ?>" data-offerId="<?php echo(isset($data->loan_offers[$i]->id) ? $data->loan_offers[$i]->id : ''); ?>" data-lenderName="<?php echo(isset($data->loan_offers[$i]->lenderName) ? $data->loan_offers[$i]->lenderName : ''); ?>" data-showSelectedOfferUrl="<?php echo(isset($data->loan_offers[$i]->showSelectedOfferUrl) ? $data->loan_offers[$i]->showSelectedOfferUrl : 'javascript:void(0)'); ?>" data-loanRate="<?php echo(isset($data->loan_offers[$i]->loanRate) ? $data->loan_offers[$i]->loanRate : ''); ?>" data-loanAPR="<?php echo(isset($data->loan_offers[$i]->loanAPR) ? $data->loan_offers[$i]->loanAPR : ''); ?>" data-loanTerm="<?php echo(isset($data->loan_offers[$i]->loanTerm) ? $data->loan_offers[$i]->loanTerm : ''); ?>" data-paymentAmount="<?php echo(isset($data->loan_offers[$i]->paymentAmount) ? $data->loan_offers[$i]->paymentAmount : ''); ?>" class="clx_loan_offer_select" <?php echo((isset($i) && $i == 0) ? "checked='checked'" : ""); ?> value="<?php echo($data->loan_offers[$i]->id); ?>"/></td>
|
| 38 |
+
<td><?php echo('$' . (isset($data->loan_offers[$i]->paymentAmount) ? $data->loan_offers[$i]->paymentAmount : '')); ?></td>
|
| 39 |
+
<td><?php echo(isset($data->loan_offers[$i]->loanTerm) ? $data->loan_offers[$i]->loanTerm : ''); ?></td>
|
| 40 |
+
<td><?php echo((isset($data->loan_offers[$i]->loanAPR) ? $data->loan_offers[$i]->loanAPR : '') . "%"); ?></td>
|
| 41 |
+
<td><?php echo((isset($data->loan_offers[$i]->loanRate) ? $data->loan_offers[$i]->loanRate."%": '-')); ?></td>
|
| 42 |
+
<?php if(isset($data->loan_offers[$i]->showSelectedOfferUrl)){
|
| 43 |
+
echo "<td><a href='".$data->loan_offers[$i]->showSelectedOfferUrl."' target='_blank'>More Details</a></td>";
|
| 44 |
+
}?>
|
| 45 |
+
</tr>
|
| 46 |
+
<?php }
|
| 47 |
+
?>
|
| 48 |
+
</tbody>
|
| 49 |
+
</table>
|
| 50 |
+
</div>
|
| 51 |
+
<?php } else { ?>
|
| 52 |
+
<p>No loan offers available.<p>
|
| 53 |
+
<?php }
|
| 54 |
+
} else {
|
| 55 |
+
?>
|
| 56 |
+
<p>We are sorry to inform you that your loan application cannot be processed further.<p>
|
| 57 |
+
<?php } ?>
|
| 58 |
+
|
| 59 |
+
</div>
|
| 60 |
+
<div class="modal-footer">
|
| 61 |
+
<?php
|
| 62 |
+
if (isset($data->application_status) && $data->application_status == "ACCEPTED") {
|
| 63 |
+
if (isset($data->loan_offers) && is_array($data->loan_offers) && !empty($data->loan_offers) && count($data->loan_offers)) {
|
| 64 |
+
?>
|
| 65 |
+
<a href="javascript:void(0);" class="btn btn-default clx_loan_offer_back">Back</a>
|
| 66 |
+
<a href="javascript:void(0);" class="btn btn-success clx_loan_offer_accept">Accept</a>
|
| 67 |
+
<a href="javascript:void(0);" class="btn btn-primary clx_loan_application_submit_btn">Create Loan Application</a>
|
| 68 |
+
<?php } else { ?>
|
| 69 |
+
<a href="javascript:void(0);" class="btn btn-default clx_loan_offer_back">Close</a>
|
| 70 |
+
<?php }
|
| 71 |
+
} else {
|
| 72 |
+
?>
|
| 73 |
+
<a href="javascript:void(0);" class="btn btn-default clx_funding_return">Close</a>
|
| 74 |
+
<?php } ?>
|
| 75 |
+
</div>
|
| 76 |
+
</div>
|
| 77 |
+
|
| 78 |
+
</div>
|
| 79 |
+
</div>
|
app/design/frontend/base/default/template/clxfunding/form/loan_offer_response.phtml~
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php $data = $this->getLoanOffers();
|
| 2 |
+
$loanpurpose = $this->getLoanPurpose(); ?>
|
| 3 |
+
<div id="loanApplicationForm" class="modal fade" role="dialog">
|
| 4 |
+
<div class="modal-dialog">
|
| 5 |
+
<!-- Modal content-->
|
| 6 |
+
<div class="modal-content">
|
| 7 |
+
<div class="modal-header">
|
| 8 |
+
<?php if (isset($data->application_status) && $data->application_status == "ACCEPTED" && isset($data->loan_offers) && is_array($data->loan_offers) && !empty($data->loan_offers) && count($data->loan_offers) && isset($loanpurpose) && !empty($loanpurpose)) { ?>
|
| 9 |
+
<center><h4 class="modal-title">Your Pre-Approved Loan Offers</h4></center>
|
| 10 |
+
<?php } else { ?>
|
| 11 |
+
<center><h4 class="modal-title">Application Response</h4></center>
|
| 12 |
+
<?php } ?>
|
| 13 |
+
</div>
|
| 14 |
+
<div class="modal-body">
|
| 15 |
+
<?php
|
| 16 |
+
if (isset($data->application_status) && $data->application_status == "ACCEPTED" && isset($loanpurpose) && !empty($loanpurpose)) {
|
| 17 |
+
if (isset($data->loan_offers) && is_array($data->loan_offers) && !empty($data->loan_offers) && count($data->loan_offers)) {
|
| 18 |
+
?>
|
| 19 |
+
<div class="table-responsive">
|
| 20 |
+
<table class="table table-hover">
|
| 21 |
+
<caption style="text-align: center"><h5><?php echo($loanpurpose); ?></h5></caption>
|
| 22 |
+
<thead>
|
| 23 |
+
<tr>
|
| 24 |
+
<th>#</th>
|
| 25 |
+
<th>Monthly Payment($)</th>
|
| 26 |
+
<th>Term(Years)</th>
|
| 27 |
+
<th>APR(%)</th>
|
| 28 |
+
<th>Interest Rate(%)</th>
|
| 29 |
+
<th>More Details</th>
|
| 30 |
+
</tr>
|
| 31 |
+
</thead>
|
| 32 |
+
<tbody>
|
| 33 |
+
<?php
|
| 34 |
+
for ($i = 0; $i < count($data->loan_offers); $i++) {
|
| 35 |
+
?>
|
| 36 |
+
<tr>
|
| 37 |
+
<td><input type="radio" name="clx_loan_offer_select" data-downPayment="<?php echo(isset($data->loan_offers[$i]->downPayment) ? $data->loan_offers[$i]->downPayment : ''); ?>" data-paymentFrequency="<?php echo(isset($data->loan_offers[$i]->paymentFrequency) ? $data->loan_offers[$i]->paymentFrequency : ''); ?>" data-offerId="<?php echo(isset($data->loan_offers[$i]->id) ? $data->loan_offers[$i]->id : ''); ?>" data-lenderName="<?php echo(isset($data->loan_offers[$i]->lenderName) ? $data->loan_offers[$i]->lenderName : ''); ?>" data-showSelectedOfferUrl="<?php echo(isset($data->loan_offers[$i]->showSelectedOfferUrl) ? $data->loan_offers[$i]->showSelectedOfferUrl : 'javascript:void(0)'); ?>" data-loanRate="<?php echo(isset($data->loan_offers[$i]->loanRate) ? $data->loan_offers[$i]->loanRate * 100 : ''); ?>" data-loanAPR="<?php echo(isset($data->loan_offers[$i]->loanAPR) ? $data->loan_offers[$i]->loanAPR * 100 : ''); ?>" data-loanTerm="<?php echo(isset($data->loan_offers[$i]->loanTerm) ? $data->loan_offers[$i]->loanTerm : ''); ?>" data-paymentAmount="<?php echo(isset($data->loan_offers[$i]->paymentAmount) ? $data->loan_offers[$i]->paymentAmount : ''); ?>" class="clx_loan_offer_select" <?php echo((isset($i) && $i == 0) ? "checked='checked'" : ""); ?> value="<?php echo($data->loan_offers[$i]->id); ?>"/></td>
|
| 38 |
+
<td><?php echo('$' . (isset($data->loan_offers[$i]->paymentAmount) ? $data->loan_offers[$i]->paymentAmount : '')); ?></td>
|
| 39 |
+
<td><?php echo(isset($data->loan_offers[$i]->loanTerm) ? $data->loan_offers[$i]->loanTerm : ''); ?></td>
|
| 40 |
+
<td><?php echo((isset($data->loan_offers[$i]->loanAPR) ? $data->loan_offers[$i]->loanAPR * 100 : '') . "%"); ?></td>
|
| 41 |
+
<td><?php echo((isset($data->loan_offers[$i]->loanRate) ? $data->loan_offers[$i]->loanRate * 100 : '') . "%"); ?></td>
|
| 42 |
+
<td><a href="<?php echo(isset($data->loan_offers[$i]->showSelectedOfferUrl) ? $data->loan_offers[$i]->showSelectedOfferUrl : 'javascript:void(0)'); ?>" target="_blank">More Details</a></td>
|
| 43 |
+
</tr>
|
| 44 |
+
<?php }
|
| 45 |
+
?>
|
| 46 |
+
</tbody>
|
| 47 |
+
</table>
|
| 48 |
+
</div>
|
| 49 |
+
<?php } else { ?>
|
| 50 |
+
<p>No loan offers available.<p>
|
| 51 |
+
<?php }
|
| 52 |
+
} else { ?>
|
| 53 |
+
<p>We are sorry to inform you that your loan application cannot be processed further.<p>
|
| 54 |
+
<?php } ?>
|
| 55 |
+
|
| 56 |
+
</div>
|
| 57 |
+
<div class="modal-footer">
|
| 58 |
+
<?php
|
| 59 |
+
if (isset($data->application_status) && $data->application_status == "ACCEPTED" && isset($loanpurpose) && !empty($loanpurpose)) {
|
| 60 |
+
if (isset($data->loan_offers) && is_array($data->loan_offers) && !empty($data->loan_offers) && count($data->loan_offers)) {
|
| 61 |
+
?>
|
| 62 |
+
<a href="javascript:void(0);" class="btn btn-default clx_loan_offer_back">Back</a>
|
| 63 |
+
<a href="javascript:void(0);" class="btn btn-success clx_loan_offer_accept">Accept</a>
|
| 64 |
+
<a href="javascript:void(0);" class="btn btn-primary clx_loan_application_submit_btn">Create Loan Application</a>
|
| 65 |
+
<?php } else { ?>
|
| 66 |
+
<a href="javascript:void(0);" class="btn btn-default clx_loan_offer_back">Close</a>
|
| 67 |
+
<?php }
|
| 68 |
+
} else { ?>
|
| 69 |
+
<a href="javascript:void(0);" class="btn btn-default clx_funding_return">Close</a>
|
| 70 |
+
<?php } ?>
|
| 71 |
+
</div>
|
| 72 |
+
</div>
|
| 73 |
+
|
| 74 |
+
</div>
|
| 75 |
+
</div>
|
app/design/frontend/base/default/template/clxfunding/form/loanapplicationstatus.phtml
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<div id="loanApplicationStatus" class="modal fade" role="dialog">
|
| 2 |
+
<div class="modal-dialog">
|
| 3 |
+
|
| 4 |
+
<!-- Modal content-->
|
| 5 |
+
<div class="modal-content">
|
| 6 |
+
<div class="modal-header">
|
| 7 |
+
<center><h4 class="modal-title">Loan Application Status</h4></center>
|
| 8 |
+
</div>
|
| 9 |
+
<div class="modal-body">
|
| 10 |
+
<div>
|
| 11 |
+
<?php
|
| 12 |
+
$data = $this->getLoanApplication();
|
| 13 |
+
$ApprovalRequired = $this->getApprovalRequired();
|
| 14 |
+
if (isset($data->application_status)) {
|
| 15 |
+
if ($data->application_status == 'ACCEPTED') {
|
| 16 |
+
if(isset($ApprovalRequired) && $ApprovalRequired){
|
| 17 |
+
echo "<p>Thank you for purchasing the product using the 'Online Loan' payment option. You will receive a mail notification detailing about the loan offer within the next 1 hours.</p>";
|
| 18 |
+
}
|
| 19 |
+
else{
|
| 20 |
+
echo "<p>Your application has been preliminarily approved and it will be processed within 24 hours.</p>";
|
| 21 |
+
}
|
| 22 |
+
}
|
| 23 |
+
if ($data->application_status == 'REJECTED') {
|
| 24 |
+
?>
|
| 25 |
+
<p>We are sorry to inform you that your loan application cannot be processed further.</p>
|
| 26 |
+
<?php }
|
| 27 |
+
} else {
|
| 28 |
+
?>
|
| 29 |
+
<p>We are sorry to inform you that your loan application cannot be processed further.</p>
|
| 30 |
+
<?php } ?>
|
| 31 |
+
</div>
|
| 32 |
+
</div>
|
| 33 |
+
<div class="modal-footer">
|
| 34 |
+
<?php if (isset($data->application_status) && $data->application_status == 'ACCEPTED') {
|
| 35 |
+
?>
|
| 36 |
+
<a href="javascript:void(0);" class="btn btn-success clx_funding_continue" data-dismiss="modal">Continue</a>
|
| 37 |
+
<?php } else {
|
| 38 |
+
?>
|
| 39 |
+
<a href="javascript:void(0);" class="btn btn-primary clx_funding_return" data-dismiss="modal">Ok</a>
|
| 40 |
+
<?php } ?>
|
| 41 |
+
</div>
|
| 42 |
+
</div>
|
| 43 |
+
|
| 44 |
+
</div>
|
| 45 |
+
</div>
|
app/design/frontend/base/default/template/clxfunding/form/modal_clxfunding.phtml
ADDED
|
@@ -0,0 +1,409 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php $customer_data = $this->getCustomerDetails();$street = $this->getStreetAddress();?>
|
| 2 |
+
<div id="loading_div"></div>
|
| 3 |
+
<div id="clxLoanApplicationModal" class="modal fade" role="dialog">
|
| 4 |
+
<div class="modal-dialog">
|
| 5 |
+
<input type="hidden" id="loan_application_redirect_url" value="<?php echo Mage::getBaseUrl() . 'clxfunding/ClxAPI/loanAppProcessing'; ?>"/>
|
| 6 |
+
<!--Modal content-->
|
| 7 |
+
<div class="modal-content">
|
| 8 |
+
<div class="modal-header">
|
| 9 |
+
<a href="javascript:void(0);" class="btn btn-default clx_modal_form_css clx_modal_form_close clx_modal_close" data-dismiss="modal">x</a>
|
| 10 |
+
<center><h5 class="modal-title">CLEXCHANGE LOAN APPLICATION</h5></center>
|
| 11 |
+
</div>
|
| 12 |
+
<div class="modal-body">
|
| 13 |
+
<div class="fieldset">
|
| 14 |
+
<ul class="nav nav-tabs">
|
| 15 |
+
<li class="active"><a data-toggle="tab" style="display:block !important;" href="#home">Personal Information</a></li>
|
| 16 |
+
<li class="disabled"><a href="#menu2">Bank Details & SSN</a></li>
|
| 17 |
+
<li class="disabled"><a href="#menu3">Confirmation & Submit</a></li>
|
| 18 |
+
</ul>
|
| 19 |
+
<ul id="clx-loanform" class="form-list tab-content">
|
| 20 |
+
<p class="required">* Required Fields</p><br/>
|
| 21 |
+
<div id="home" class="tab-pane fade in active">
|
| 22 |
+
<form action="javascript:void(0)" id="personal_information_form1" role="form" autocomplete="off">
|
| 23 |
+
<input type="hidden" id="clx_btn_flag" name="clx_btn_flag" value=""/>
|
| 24 |
+
<li>
|
| 25 |
+
<div class="row">
|
| 26 |
+
<div class="col-md-6">
|
| 27 |
+
<label for="firstName" class="required"><em>*</em>First Name:</label>
|
| 28 |
+
<div class="input-box custom_width">
|
| 29 |
+
<input type="text" autocapitalize="on" autocorrect="off" spellcheck="false" class="input-text required-entry validate-no-html-tags validate-alpha-spac" id="firstName" name="firstName" value="<?php echo(isset($customer_data['firstname'])?$customer_data['firstname']:'');?>">
|
| 30 |
+
</div>
|
| 31 |
+
</div>
|
| 32 |
+
<div class="col-md-6">
|
| 33 |
+
<label for="lastName" class="required"><em>*</em>Last Name:</label>
|
| 34 |
+
<div class="input-box custom_width">
|
| 35 |
+
<input type="text" autocapitalize="on" autocorrect="off" spellcheck="false" class="input-text required-entry validate-no-html-tags validate-alpha-spac" id="lastName" name="lastName" value="<?php echo(isset($customer_data['lastname'])?$customer_data['lastname']:'');?>">
|
| 36 |
+
</div>
|
| 37 |
+
</div>
|
| 38 |
+
</div>
|
| 39 |
+
</li>
|
| 40 |
+
<li>
|
| 41 |
+
<div class="row">
|
| 42 |
+
<div class="col-md-6">
|
| 43 |
+
<label for="emailId" class="required"><em>*</em>Email Address:</label>
|
| 44 |
+
<div class="input-box custom_width">
|
| 45 |
+
<input type="email" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry validate-email validate-no-html-tags" id="emailId" name="emailId" value="<?php echo(isset($customer_data['email'])?$customer_data['email']:'');?>">
|
| 46 |
+
</div>
|
| 47 |
+
</div>
|
| 48 |
+
<div class="col-md-6">
|
| 49 |
+
<label for="birthDate" class="required"><em>*</em>Date of birth:</label>
|
| 50 |
+
<div class="input-box custom_width">
|
| 51 |
+
<input type="text" autocorrect="off" spellcheck="false" class="input-text required-entry validate-date validate-no-html-tags custom-dob" id="birthDate" name="birthDate" readonly="readonly" value="">
|
| 52 |
+
</div>
|
| 53 |
+
</div>
|
| 54 |
+
</div>
|
| 55 |
+
</li>
|
| 56 |
+
<li>
|
| 57 |
+
<div class="row">
|
| 58 |
+
<div class="col-md-6">
|
| 59 |
+
<label for="street" class="required"><em>*</em>Street:</label>
|
| 60 |
+
<div class="input-box custom_width">
|
| 61 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry validate-no-html-tags" id="street" name="street" value="<?php echo(isset($street)?$street:'');?>">
|
| 62 |
+
</div>
|
| 63 |
+
</div>
|
| 64 |
+
<div class="col-md-6">
|
| 65 |
+
<label for="mobilePhoneAreaCode" class="required"><em>*</em>Mobile phone area code:</label>
|
| 66 |
+
<div class="input-box custom_width">
|
| 67 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry validate-length maximum-length-3 validate-no-html-tags" id="mobilePhoneAreaCode" name="mobilePhoneAreaCode" value="">
|
| 68 |
+
</div>
|
| 69 |
+
</div>
|
| 70 |
+
</div>
|
| 71 |
+
</li>
|
| 72 |
+
<li>
|
| 73 |
+
<div class="row">
|
| 74 |
+
<div class="col-md-6">
|
| 75 |
+
<label for="mobileNumber" class="required"><em>*</em>Mobile number:</label>
|
| 76 |
+
<div class="input-box custom_width">
|
| 77 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry validate-number validate-length validate-no-html-tags maximum-length-10" id="mobileNumber" name="mobileNumber" value="<?php echo(isset($customer_data['telephone'])?$customer_data['telephone']:'');?>">
|
| 78 |
+
</div>
|
| 79 |
+
</div>
|
| 80 |
+
<div class="col-md-6">
|
| 81 |
+
<label for="city" class="required"><em>*</em>City:</label>
|
| 82 |
+
<div class="input-box custom_width">
|
| 83 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry validate-alpha-spac validate-no-html-tags" id="city" name="city" value="<?php echo(isset($customer_data['city'])?$customer_data['city']:'');?>">
|
| 84 |
+
</div>
|
| 85 |
+
</div>
|
| 86 |
+
</div>
|
| 87 |
+
</li>
|
| 88 |
+
<li>
|
| 89 |
+
<div class="row">
|
| 90 |
+
<div class="col-md-6">
|
| 91 |
+
<label for="state" class="required"><em>*</em>State:</label>
|
| 92 |
+
<div class="input-box custom_width">
|
| 93 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry validate-alpha-spac validate-no-html-tags" id="state" name="state" value="<?php echo(isset($customer_data['region'])?$customer_data['region']:'');?>">
|
| 94 |
+
</div>
|
| 95 |
+
<?php /*
|
| 96 |
+
<div class="input-box custom_width">
|
| 97 |
+
<select class="input-text select_input_f validate-select validate-no-html-tags" id="state" name="state">
|
| 98 |
+
<option value="">Please select state</option>
|
| 99 |
+
<option value="Alabama">Alabama</option>
|
| 100 |
+
<option value="Alaska">Alaska</option>
|
| 101 |
+
<option value="Arizona">Arizona</option>
|
| 102 |
+
<option value="Arkansas">Arkansas</option>
|
| 103 |
+
<option value="California">California</option>
|
| 104 |
+
<option value="Colorado">Colorado</option>
|
| 105 |
+
<option value="Connecticut">Connecticut</option>
|
| 106 |
+
<option value="Delaware">Delaware</option>
|
| 107 |
+
<option value="District Of Columbia">District Of Columbia</option>
|
| 108 |
+
<option value="Florida">Florida</option>
|
| 109 |
+
<option value="Georgia">Georgia</option>
|
| 110 |
+
<option value="Hawaii">Hawaii</option>
|
| 111 |
+
<option value="Idaho">Idaho</option>
|
| 112 |
+
<option value="Illinois">Illinois</option>
|
| 113 |
+
<option value="Indiana">Indiana</option>
|
| 114 |
+
<option value="Iowa">Iowa</option>
|
| 115 |
+
<option value="Kansas">Kansas</option>
|
| 116 |
+
<option value="Kentucky">Kentucky</option>
|
| 117 |
+
<option value="Louisiana">Louisiana</option>
|
| 118 |
+
<option value="Maine">Maine</option>
|
| 119 |
+
<option value="Maryland">Maryland</option>
|
| 120 |
+
<option value="Massachusetts">Massachusetts</option>
|
| 121 |
+
<option value="Michigan">Michigan</option>
|
| 122 |
+
<option value="Minnesota">Minnesota</option>
|
| 123 |
+
<option value="Mississippi">Mississippi</option>
|
| 124 |
+
<option value="Missouri">Missouri</option>
|
| 125 |
+
<option value="Montana">Montana</option>
|
| 126 |
+
<option value="Nebraska">Nebraska</option>
|
| 127 |
+
<option value="Nevada">Nevada</option>
|
| 128 |
+
<option value="New Hampshire">New Hampshire</option>
|
| 129 |
+
<option value="New Jersey">New Jersey</option>
|
| 130 |
+
<option value="New Mexico">New Mexico</option>
|
| 131 |
+
<option value="New York">New York</option>
|
| 132 |
+
<option value="North Carolina">North Carolina</option>
|
| 133 |
+
<option value="North Dakota">North Dakota</option>
|
| 134 |
+
<option value="Ohio">Ohio</option>
|
| 135 |
+
<option value="Oklahoma">Oklahoma</option>
|
| 136 |
+
<option value="Oregon">Oregon</option>
|
| 137 |
+
<option value="Pennsylvania">Pennsylvania</option>
|
| 138 |
+
<option value="Rhode Island">Rhode Island</option>
|
| 139 |
+
<option value="South Carolina">South Carolina</option>
|
| 140 |
+
<option value="South Dakota">South Dakota</option>
|
| 141 |
+
<option value="Tennessee">Tennessee</option>
|
| 142 |
+
<option value="Texas">Texas</option>
|
| 143 |
+
<option value="Utah">Utah</option>
|
| 144 |
+
<option value="Vermont">Vermont</option>
|
| 145 |
+
<option value="Virginia">Virginia</option>
|
| 146 |
+
<option value="Washington">Washington</option>
|
| 147 |
+
<option value="West Virginia">West Virginia</option>
|
| 148 |
+
<option value="Wisconsin">Wisconsin</option>
|
| 149 |
+
<option value="Wyoming">Wyoming</option>
|
| 150 |
+
<option value="American Samoa">American Samoa</option>
|
| 151 |
+
<option value="Guam">Guam</option>
|
| 152 |
+
<option value="Northern Mariana Islands">Northern Mariana Islands</option>
|
| 153 |
+
<option value="Puerto Rico">Puerto Rico</option>
|
| 154 |
+
<option value="United States Minor Outlying Islands">United States Minor Outlying Islands</option>
|
| 155 |
+
<option value="Virgin Islands">Virgin Islands</option>
|
| 156 |
+
</select>
|
| 157 |
+
</div>
|
| 158 |
+
*/ ?>
|
| 159 |
+
</div>
|
| 160 |
+
<div class="col-md-6">
|
| 161 |
+
<label for="zipcode" class="required"><em>*</em>Zipcode:</label>
|
| 162 |
+
<div class="input-box custom_width">
|
| 163 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-zip validate-length maximum-length-10" id="zipcode" name="zipcode" value="<?php echo(isset($customer_data['postcode'])?$customer_data['postcode']:'');?>">
|
| 164 |
+
</div>
|
| 165 |
+
</div>
|
| 166 |
+
</div>
|
| 167 |
+
</li>
|
| 168 |
+
<li>
|
| 169 |
+
<div class="row">
|
| 170 |
+
<div class="col-md-6">
|
| 171 |
+
<label for="country" class="required"><em>*</em>Country:</label>
|
| 172 |
+
<div class="input-box custom_width">
|
| 173 |
+
<?php if(isset($customer_data['country_id'])){$countryName = Mage::getModel('directory/country')->load($customer_data['country_id'])->getName();}?>
|
| 174 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-alpha-spac" id="country" name="country" value="<?php echo(isset($countryName)?$countryName:'');?>">
|
| 175 |
+
</div>
|
| 176 |
+
</div>
|
| 177 |
+
<div class="col-md-6">
|
| 178 |
+
<label for="yearlyIncome" class="required"><em>*</em>Yearly Income(<?php echo(Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol()); ?>):</label>
|
| 179 |
+
<div class="input-box custom_width">
|
| 180 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-number" id="yearlyIncome" name="yearlyIncome" value="">
|
| 181 |
+
</div>
|
| 182 |
+
</div>
|
| 183 |
+
</div>
|
| 184 |
+
</li>
|
| 185 |
+
<li>
|
| 186 |
+
<div class="row">
|
| 187 |
+
<div class="col-md-6">
|
| 188 |
+
<label for="employmentStatus" class="required"><em>*</em>Employment status:</label>
|
| 189 |
+
<div class="input-box custom_width">
|
| 190 |
+
<select class="input-text select_input_f validate-select validate-no-html-tags" id="employmentStatus" name="employmentStatus">
|
| 191 |
+
<option value="">Please select employment status</option>
|
| 192 |
+
<option value="Self Employed">Self Employed</option>
|
| 193 |
+
<option value="Not Employed">Not Employed</option>
|
| 194 |
+
<option value="Other">Other</option>
|
| 195 |
+
<option value="Employed">Employed</option>
|
| 196 |
+
</select>
|
| 197 |
+
</div>
|
| 198 |
+
</div>
|
| 199 |
+
<div class="col-md-6">
|
| 200 |
+
<label for="occupation" class="required"><em>*</em>Occupation:</label>
|
| 201 |
+
<div class="input-box custom_width">
|
| 202 |
+
<select class="input-text select_input_f validate-select validate-no-html-tags" id="occupation" name="occupation">
|
| 203 |
+
<option value="">Please select occupation</option>
|
| 204 |
+
<option value="Accountant/CPA">Accountant/CPA</option>
|
| 205 |
+
<option value="Analyst">Analyst</option>
|
| 206 |
+
<option value="Architect">Architect</option>
|
| 207 |
+
<option value="Attorney">Attorney</option>
|
| 208 |
+
<option value="Biologist">Biologist</option>
|
| 209 |
+
<option value="Bus Driver">Bus Driver</option>
|
| 210 |
+
<option value="Car Dealer">Car Dealer</option>
|
| 211 |
+
<option value="Chemist">Chemist</option>
|
| 212 |
+
<option value="Civil Service">Civil Service</option>
|
| 213 |
+
<option value="Clergy">Clergy</option>
|
| 214 |
+
<option value="Clerical">Clerical</option>
|
| 215 |
+
<option value="Computer Programmer">Computer Programmer</option>
|
| 216 |
+
<option value="Construction">Construction</option>
|
| 217 |
+
<option value="Dentist">Dentist</option>
|
| 218 |
+
<option value="Doctor">Doctor</option>
|
| 219 |
+
<option value="Engineer- Chemical">Engineer- Chemical</option>
|
| 220 |
+
<option value="Engineer- Electrical">Engineer- Electrical</option>
|
| 221 |
+
<option value="Engineer- Mechanical">Engineer- Mechanical</option>
|
| 222 |
+
<option value="Executive">Executive</option>
|
| 223 |
+
<option value="Fireman">Fireman</option>
|
| 224 |
+
<option value="Flight Attendant">Flight Attendant</option>
|
| 225 |
+
<option value="Food Service">Food Service</option>
|
| 226 |
+
<option value="Food Service Management">Food Service Management</option>
|
| 227 |
+
<option value="Homemaker">Homemaker</option>
|
| 228 |
+
<option value="Judge">Judge</option>
|
| 229 |
+
<option value="Laborer">Laborer</option>
|
| 230 |
+
<option value="Landscaping">Landscaping</option>
|
| 231 |
+
<option value="Medical Technician">Medical Technician</option>
|
| 232 |
+
<option value="Military Enlisted">Military Enlisted</option>
|
| 233 |
+
<option value="Military Officer">Military Officer</option>
|
| 234 |
+
<option value="Nurse (LPN)">Nurse (LPN)</option>
|
| 235 |
+
<option value="Nurse (RN)">Nurse (RN)</option>
|
| 236 |
+
<option value="Nurse's Aide">Nurse's Aide</option>
|
| 237 |
+
<option value="Pharmacist">Pharmacist</option>
|
| 238 |
+
<option value="Pilot- Private/Commercial">Pilot- Private/Commercial</option>
|
| 239 |
+
<option value="Police- Officer/Correction officer">Police- Officer/Correction officer</option>
|
| 240 |
+
<option value="Postal Service">Postal Service</option>
|
| 241 |
+
<option value="Principal">Principal</option>
|
| 242 |
+
<option value="Professional">Professional</option>
|
| 243 |
+
<option value="Professor">Professor</option>
|
| 244 |
+
<option value="Psychologist">Psychologist</option>
|
| 245 |
+
<option value="Realtor">Realtor</option>
|
| 246 |
+
<option value="Religious">Religious</option>
|
| 247 |
+
<option value="Retail Management">Retail Management</option>
|
| 248 |
+
<option value="Sales- Commission">Sales- Commission</option>
|
| 249 |
+
<option value="Sales- Retails">Sales- Retails</option>
|
| 250 |
+
<option value="Scientist">Scientist</option>
|
| 251 |
+
<option value="Administrative Assistant">Administrative Assistant</option>
|
| 252 |
+
<option value="Skilled Labor">Skilled Labor</option>
|
| 253 |
+
<option value="Social Worker">Social Worker</option>
|
| 254 |
+
<option value="Student">Student</option>
|
| 255 |
+
<option value="Teacher">Teacher</option>
|
| 256 |
+
<option value="Teacher's Aide">Teacher's Aide</option>
|
| 257 |
+
<option value="Tradesman- Carpenter">Tradesman- Carpenter</option>
|
| 258 |
+
<option value="Tradesman- Electrician">Tradesman- Electrician</option>
|
| 259 |
+
<option value="Tradesman- Mechanic">Tradesman- Mechanic</option>
|
| 260 |
+
<option value="Tradesman- Plumber">Tradesman- Plumber</option>
|
| 261 |
+
<option value="Truck Driver">Truck Driver</option>
|
| 262 |
+
<option value="Waiter/Waitress">Waiter/Waitress</option>
|
| 263 |
+
<option value="Other">Other</option>
|
| 264 |
+
<option value="Investor">Investor</option>
|
| 265 |
+
</select>
|
| 266 |
+
</div>
|
| 267 |
+
</div>
|
| 268 |
+
</div>
|
| 269 |
+
</li>
|
| 270 |
+
<li>
|
| 271 |
+
<div class="row">
|
| 272 |
+
<div class="col-md-6">
|
| 273 |
+
<label for="employerName" class="required"><em>*</em>Employer name:</label>
|
| 274 |
+
<div class="input-box custom_width">
|
| 275 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-alpha-spac" id="employerName" name="employerName" value="">
|
| 276 |
+
</div>
|
| 277 |
+
</div>
|
| 278 |
+
<div class="col-md-6">
|
| 279 |
+
<label for="employmentStartDate" class="required"><em>*</em>Employment start date:</label>
|
| 280 |
+
<div class="input-box custom_width">
|
| 281 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-date" id="employmentStartDate" name="employmentStartDate" readonly="readonly" value="">
|
| 282 |
+
</div>
|
| 283 |
+
</div>
|
| 284 |
+
</div>
|
| 285 |
+
</li>
|
| 286 |
+
</form>
|
| 287 |
+
</div>
|
| 288 |
+
<div id="menu2" class="tab-pane fade">
|
| 289 |
+
<form action="javascript:void(0)" id="bankdetails_and_ssn_form2" role="form" autocomplete="off">
|
| 290 |
+
<li>
|
| 291 |
+
<label for="selfReportedCreditScore" class="required"><em>*</em>Self reported credit score:</label>
|
| 292 |
+
<div class="input-box">
|
| 293 |
+
<select class="input-text select_input_f validate-select validate-no-html-tags" id="selfReportedCreditScore" name="selfReportedCreditScore">
|
| 294 |
+
<option value="">Please select self Reported Credit score</option>
|
| 295 |
+
<option value="1">Excellent Credit (760+)</option>
|
| 296 |
+
<option value="2">Good Credit (700+) </option>
|
| 297 |
+
<option value="3">Fair Credit (640+) </option>
|
| 298 |
+
<option value="4">Poor Credit</option>
|
| 299 |
+
</select>
|
| 300 |
+
</div>
|
| 301 |
+
</li>
|
| 302 |
+
<li>
|
| 303 |
+
<label for="bankName" class="required"><em>*</em>Bank name:</label>
|
| 304 |
+
<div class="input-box">
|
| 305 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-length maximum-length-255" id="bankName" name="bankName" value="">
|
| 306 |
+
</div>
|
| 307 |
+
</li>
|
| 308 |
+
<li>
|
| 309 |
+
<label for="firstAccountHolderName" class="required"><em>*</em>First account holder name:</label>
|
| 310 |
+
<div class="input-box">
|
| 311 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-alpha-spac validate-length maximum-length-255" id="firstAccountHolderName" name="firstAccountHolderName" value="">
|
| 312 |
+
</div>
|
| 313 |
+
</li>
|
| 314 |
+
<li>
|
| 315 |
+
<label for="bankAccountType" class="required"><em>*</em>Bank account type:</label>
|
| 316 |
+
<div class="input-box">
|
| 317 |
+
<select class="input-text select_input_f validate-select validate-no-html-tags" id="bankAccountType" name="bankAccountType">
|
| 318 |
+
<option value="">Please select bank account type</option>
|
| 319 |
+
<option value="Savings">Savings</option>
|
| 320 |
+
<option value="Checking">Checking</option>
|
| 321 |
+
<option value="Credit">Credit</option>
|
| 322 |
+
</select>
|
| 323 |
+
</div>
|
| 324 |
+
</li>
|
| 325 |
+
<li>
|
| 326 |
+
<label for="bankAccountNumber" class="required"><em>*</em>Bank account number:</label>
|
| 327 |
+
<div class="input-box">
|
| 328 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-number validate-length maximum-length-30" id="bankAccountNumber" name="bankAccountNumber" value="">
|
| 329 |
+
</div>
|
| 330 |
+
</li>
|
| 331 |
+
<li>
|
| 332 |
+
<label for="routingNumber" class="required"><em>*</em>Routing number:</label>
|
| 333 |
+
<div class="input-box">
|
| 334 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-length maximum-length-255" id="routingNumber" name="routingNumber" value="">
|
| 335 |
+
</div>
|
| 336 |
+
</li>
|
| 337 |
+
<li>
|
| 338 |
+
<label for="ssn" class="required"><em>*</em>Social Security Number:</label>
|
| 339 |
+
<div class="input-box">
|
| 340 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text custom-ssn required-entry validate-number" id="ssn" name="ssn" value="">
|
| 341 |
+
</div>
|
| 342 |
+
</li>
|
| 343 |
+
</form>
|
| 344 |
+
</div>
|
| 345 |
+
<div id="menu3" class="tab-pane fade">
|
| 346 |
+
<form action="javascript:void(0)" id="confirmation_and_submit_form3" role="form" autocomplete="off">
|
| 347 |
+
<li>
|
| 348 |
+
<label for="loanAmount" class="required"><em>*</em>Loan amount:(<?php echo(Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol()); ?>)</label>
|
| 349 |
+
<div class="input-box">
|
| 350 |
+
<?php $grand_total = $this->getLoanAmmount(); ?>
|
| 351 |
+
<input type="text" autocapitalize="off" readonly="readonly" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-number" id="loanAmount" name="loanAmount" value="<?php echo(isset($grand_total) ? $grand_total : ''); ?>">
|
| 352 |
+
</div>
|
| 353 |
+
</li>
|
| 354 |
+
<?php
|
| 355 |
+
echo "<input type='hidden' name='loanPurpose' value='Other'/>";
|
| 356 |
+
/*
|
| 357 |
+
<li>
|
| 358 |
+
<label for="loanPurpose" class="required"><em>*</em>Loan purpose:</label>
|
| 359 |
+
<div class="input-box">
|
| 360 |
+
<select class="input-text select_input_f validate-select validate-no-html-tags" id="loanPurpose" name="loanPurpose">
|
| 361 |
+
<option value="">Please select loan purpose</option>
|
| 362 |
+
<option value="Debt consolidation">Debt consolidation</option>
|
| 363 |
+
<option value="Home improvement">Home improvement</option>
|
| 364 |
+
<option value="Business">Business</option>
|
| 365 |
+
<option value="Auto">Auto</option>
|
| 366 |
+
<option value="Other">Other</option>
|
| 367 |
+
<option value="Baby & adoption loans">Baby & adoption loans</option>
|
| 368 |
+
<option value="Boat">Boat</option>
|
| 369 |
+
<option value="Cosmetic procedures">Cosmetic procedures</option>
|
| 370 |
+
<option value="Green loans">Green loans</option>
|
| 371 |
+
<option value="Household expenses">Household expenses</option>
|
| 372 |
+
<option value="Large purchases">Large purchases</option>
|
| 373 |
+
<option value="Medical/Dental">Medical/Dental</option>
|
| 374 |
+
<option value="Motorcycle">Motorcycle</option>
|
| 375 |
+
<option value="RV">RV</option>
|
| 376 |
+
<option value="Taxes">Taxes</option>
|
| 377 |
+
<option value="Vacation">Vacation</option>
|
| 378 |
+
<option value="Special Occasion">Special Occasion</option>
|
| 379 |
+
</select>
|
| 380 |
+
</div>
|
| 381 |
+
</li>
|
| 382 |
+
*/ ?>
|
| 383 |
+
<li>
|
| 384 |
+
<label for="loanTerms" class="required"><em>*</em>Loan terms (In months):</label>
|
| 385 |
+
<div class="input-box">
|
| 386 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-digits" id="loanTerms" name="loanTerms" value="">
|
| 387 |
+
</div>
|
| 388 |
+
</li>
|
| 389 |
+
</form>
|
| 390 |
+
</div>
|
| 391 |
+
</ul>
|
| 392 |
+
</div>
|
| 393 |
+
</div>
|
| 394 |
+
<div class="modal-footer">
|
| 395 |
+
<a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="1">Next</a>
|
| 396 |
+
</div>
|
| 397 |
+
</div>
|
| 398 |
+
<!--</form>-->
|
| 399 |
+
</div>
|
| 400 |
+
</div>
|
| 401 |
+
<script type="text/javascript">
|
| 402 |
+
jQuery(document).ready(function () {
|
| 403 |
+
Validation.add('validate-alpha-spac', 'Allowed only alphabets', function (v) {
|
| 404 |
+
return Validation.get('IsEmpty').test(v) || /^[a-zA-Z ]+$/.test(v)
|
| 405 |
+
});
|
| 406 |
+
});
|
| 407 |
+
</script>
|
| 408 |
+
|
| 409 |
+
|
app/design/frontend/base/default/template/clxfunding/form/modal_clxfunding.phtml~
ADDED
|
@@ -0,0 +1,398 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<div id="loading_div"></div>
|
| 2 |
+
<div id="clxLoanApplicationModal" class="modal fade" role="dialog">
|
| 3 |
+
<div class="modal-dialog">
|
| 4 |
+
<input type="hidden" id="loan_application_redirect_url" value="<?php echo Mage::getBaseUrl() . 'clxfunding/ClxAPI/loanAppProcessing'; ?>"/>
|
| 5 |
+
<!--Modal content-->
|
| 6 |
+
<div class="modal-content">
|
| 7 |
+
<div class="modal-header">
|
| 8 |
+
<a href="javascript:void(0);" class="btn btn-default clx_modal_form_css clx_modal_form_close clx_modal_close" data-dismiss="modal">x</a>
|
| 9 |
+
<center><h5 class="modal-title">CLEXCHANGE LOAN APPLICATION</h5></center>
|
| 10 |
+
</div>
|
| 11 |
+
<div class="modal-body">
|
| 12 |
+
<div class="fieldset">
|
| 13 |
+
<ul class="nav nav-tabs">
|
| 14 |
+
<li class="active"><a data-toggle="tab" style="display:block !important;" href="#home">Personal Information</a></li>
|
| 15 |
+
<li class="disabled"><a href="#menu2">Bank Details & SSN</a></li>
|
| 16 |
+
<li class="disabled"><a href="#menu3">Confirmation & Submit</a></li>
|
| 17 |
+
</ul>
|
| 18 |
+
<ul id="clx-loanform" class="form-list tab-content">
|
| 19 |
+
<p class="required">* Required Fields</p><br/>
|
| 20 |
+
<div id="home" class="tab-pane fade in active">
|
| 21 |
+
<form action="javascript:void(0)" id="personal_information_form1" role="form">
|
| 22 |
+
<input type="hidden" id="clx_btn_flag" name="clx_btn_flag" value=""/>
|
| 23 |
+
<li>
|
| 24 |
+
<div class="row">
|
| 25 |
+
<div class="col-md-6">
|
| 26 |
+
<label for="login-email" class="required"><em>*</em>First Name:</label>
|
| 27 |
+
<div class="input-box custom_width">
|
| 28 |
+
<input type="text" autocapitalize="on" autocorrect="off" spellcheck="false" class="input-text required-entry validate-no-html-tags validate-alpha-spac" id="firstName" name="firstName" value="">
|
| 29 |
+
</div>
|
| 30 |
+
</div>
|
| 31 |
+
<div class="col-md-6">
|
| 32 |
+
<label for="login-email" class="required"><em>*</em>Last Name:</label>
|
| 33 |
+
<div class="input-box custom_width">
|
| 34 |
+
<input type="text" autocapitalize="on" autocorrect="off" spellcheck="false" class="input-text required-entry validate-no-html-tags validate-alpha-spac" id="lastName" name="lastName" value="">
|
| 35 |
+
</div>
|
| 36 |
+
</div>
|
| 37 |
+
</div>
|
| 38 |
+
</li>
|
| 39 |
+
<li>
|
| 40 |
+
<div class="row">
|
| 41 |
+
<div class="col-md-6">
|
| 42 |
+
<label for="login-email" class="required"><em>*</em>Email Address:</label>
|
| 43 |
+
<div class="input-box custom_width">
|
| 44 |
+
<input type="email" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry validate-email validate-no-html-tags" id="emailId" name="emailId" value="">
|
| 45 |
+
</div>
|
| 46 |
+
</div>
|
| 47 |
+
<div class="col-md-6">
|
| 48 |
+
<label for="login-email" class="required"><em>*</em>Date of birth:</label>
|
| 49 |
+
<div class="input-box custom_width">
|
| 50 |
+
<input type="text" autocorrect="off" spellcheck="false" class="input-text required-entry validate-date validate-no-html-tags" id="birthDate" name="birthDate" value="">
|
| 51 |
+
</div>
|
| 52 |
+
</div>
|
| 53 |
+
</div>
|
| 54 |
+
</li>
|
| 55 |
+
<li>
|
| 56 |
+
<div class="row">
|
| 57 |
+
<div class="col-md-6">
|
| 58 |
+
<label for="login-email" class="required"><em>*</em>Street:</label>
|
| 59 |
+
<div class="input-box custom_width">
|
| 60 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry validate-street validate-no-html-tags" id="street" name="street" value="">
|
| 61 |
+
</div>
|
| 62 |
+
</div>
|
| 63 |
+
<div class="col-md-6">
|
| 64 |
+
<label for="login-email" class="required"><em>*</em>Mobile phone area code:</label>
|
| 65 |
+
<div class="input-box custom_width">
|
| 66 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry validate-length maximum-length-3 minimum-length-3 validate-no-html-tags" id="mobilePhoneAreaCode" name="mobilePhoneAreaCode" value="">
|
| 67 |
+
</div>
|
| 68 |
+
</div>
|
| 69 |
+
</div>
|
| 70 |
+
</li>
|
| 71 |
+
<li>
|
| 72 |
+
<div class="row">
|
| 73 |
+
<div class="col-md-6">
|
| 74 |
+
<label for="login-email" class="required"><em>*</em>Mobile number:</label>
|
| 75 |
+
<div class="input-box custom_width">
|
| 76 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry validate-number validate-length maximum-length-10 validate-no-html-tags" id="mobileNumber" name="mobileNumber" value="">
|
| 77 |
+
</div>
|
| 78 |
+
</div>
|
| 79 |
+
<div class="col-md-6">
|
| 80 |
+
<label for="login-email" class="required"><em>*</em>City:</label>
|
| 81 |
+
<div class="input-box custom_width">
|
| 82 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry validate-alpha-spac validate-no-html-tags" id="city" name="city" value="">
|
| 83 |
+
</div>
|
| 84 |
+
</div>
|
| 85 |
+
</div>
|
| 86 |
+
</li>
|
| 87 |
+
<li>
|
| 88 |
+
<div class="row">
|
| 89 |
+
<div class="col-md-6">
|
| 90 |
+
<label for="login-email" class="required"><em>*</em>State:</label>
|
| 91 |
+
<div class="input-box custom_width">
|
| 92 |
+
<select class="input-text select_input_f validate-select validate-no-html-tags" id="state" name="state">
|
| 93 |
+
<option value="">Please select state</option>
|
| 94 |
+
<option value="Alabama">Alabama</option>
|
| 95 |
+
<option value="Alaska">Alaska</option>
|
| 96 |
+
<option value="Arizona">Arizona</option>
|
| 97 |
+
<option value="Arkansas">Arkansas</option>
|
| 98 |
+
<option value="California">California</option>
|
| 99 |
+
<option value="Colorado">Colorado</option>
|
| 100 |
+
<option value="Connecticut">Connecticut</option>
|
| 101 |
+
<option value="Delaware">Delaware</option>
|
| 102 |
+
<option value="District Of Columbia">District Of Columbia</option>
|
| 103 |
+
<option value="Florida">Florida</option>
|
| 104 |
+
<option value="Georgia">Georgia</option>
|
| 105 |
+
<option value="Hawaii">Hawaii</option>
|
| 106 |
+
<option value="Idaho">Idaho</option>
|
| 107 |
+
<option value="Illinois">Illinois</option>
|
| 108 |
+
<option value="Indiana">Indiana</option>
|
| 109 |
+
<option value="Iowa">Iowa</option>
|
| 110 |
+
<option value="Kansas">Kansas</option>
|
| 111 |
+
<option value="Kentucky">Kentucky</option>
|
| 112 |
+
<option value="Louisiana">Louisiana</option>
|
| 113 |
+
<option value="Maine">Maine</option>
|
| 114 |
+
<option value="Maryland">Maryland</option>
|
| 115 |
+
<option value="Massachusetts">Massachusetts</option>
|
| 116 |
+
<option value="Michigan">Michigan</option>
|
| 117 |
+
<option value="Minnesota">Minnesota</option>
|
| 118 |
+
<option value="Mississippi">Mississippi</option>
|
| 119 |
+
<option value="Missouri">Missouri</option>
|
| 120 |
+
<option value="Montana">Montana</option>
|
| 121 |
+
<option value="Nebraska">Nebraska</option>
|
| 122 |
+
<option value="Nevada">Nevada</option>
|
| 123 |
+
<option value="New Hampshire">New Hampshire</option>
|
| 124 |
+
<option value="New Jersey">New Jersey</option>
|
| 125 |
+
<option value="New Mexico">New Mexico</option>
|
| 126 |
+
<option value="New York">New York</option>
|
| 127 |
+
<option value="North Carolina">North Carolina</option>
|
| 128 |
+
<option value="North Dakota">North Dakota</option>
|
| 129 |
+
<option value="Ohio">Ohio</option>
|
| 130 |
+
<option value="Oklahoma">Oklahoma</option>
|
| 131 |
+
<option value="Oregon">Oregon</option>
|
| 132 |
+
<option value="Pennsylvania">Pennsylvania</option>
|
| 133 |
+
<option value="Rhode Island">Rhode Island</option>
|
| 134 |
+
<option value="South Carolina">South Carolina</option>
|
| 135 |
+
<option value="South Dakota">South Dakota</option>
|
| 136 |
+
<option value="Tennessee">Tennessee</option>
|
| 137 |
+
<option value="Texas">Texas</option>
|
| 138 |
+
<option value="Utah">Utah</option>
|
| 139 |
+
<option value="Vermont">Vermont</option>
|
| 140 |
+
<option value="Virginia">Virginia</option>
|
| 141 |
+
<option value="Washington">Washington</option>
|
| 142 |
+
<option value="West Virginia">West Virginia</option>
|
| 143 |
+
<option value="Wisconsin">Wisconsin</option>
|
| 144 |
+
<option value="Wyoming">Wyoming</option>
|
| 145 |
+
<option value="American Samoa">American Samoa</option>
|
| 146 |
+
<option value="Guam">Guam</option>
|
| 147 |
+
<option value="Northern Mariana Islands">Northern Mariana Islands</option>
|
| 148 |
+
<option value="Puerto Rico">Puerto Rico</option>
|
| 149 |
+
<option value="United States Minor Outlying Islands">United States Minor Outlying Islands</option>
|
| 150 |
+
<option value="Virgin Islands">Virgin Islands</option>
|
| 151 |
+
</select>
|
| 152 |
+
</div>
|
| 153 |
+
</div>
|
| 154 |
+
<div class="col-md-6">
|
| 155 |
+
<label for="login-email" class="required"><em>*</em>Zipcode:</label>
|
| 156 |
+
<div class="input-box custom_width">
|
| 157 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-zip validate-length maximum-length-10" id="zipcode" name="zipcode" value="">
|
| 158 |
+
</div>
|
| 159 |
+
</div>
|
| 160 |
+
</div>
|
| 161 |
+
</li>
|
| 162 |
+
<li>
|
| 163 |
+
<div class="row">
|
| 164 |
+
<div class="col-md-6">
|
| 165 |
+
<label for="login-email" class="required"><em>*</em>Country:</label>
|
| 166 |
+
<div class="input-box custom_width">
|
| 167 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-alpha-spac" id="country" name="country" value="">
|
| 168 |
+
</div>
|
| 169 |
+
</div>
|
| 170 |
+
<div class="col-md-6">
|
| 171 |
+
<label for="login-email" class="required"><em>*</em>Yearly Income(<?php echo(Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol()); ?>):</label>
|
| 172 |
+
<div class="input-box custom_width">
|
| 173 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-number" id="yearlyIncome" name="yearlyIncome" value="">
|
| 174 |
+
</div>
|
| 175 |
+
</div>
|
| 176 |
+
</div>
|
| 177 |
+
</li>
|
| 178 |
+
<li>
|
| 179 |
+
<div class="row">
|
| 180 |
+
<div class="col-md-6">
|
| 181 |
+
<label for="login-email" class="required"><em>*</em>Employment status:</label>
|
| 182 |
+
<div class="input-box custom_width">
|
| 183 |
+
<select class="input-text select_input_f validate-select validate-no-html-tags" id="employmentStatus" name="employmentStatus">
|
| 184 |
+
<option value="">Please select employment status</option>
|
| 185 |
+
<option value="Self Employed">Self Employed</option>
|
| 186 |
+
<option value="Not Employed">Not Employed</option>
|
| 187 |
+
<option value="Other">Other</option>
|
| 188 |
+
<option value="Employed">Employed</option>
|
| 189 |
+
</select>
|
| 190 |
+
</div>
|
| 191 |
+
</div>
|
| 192 |
+
<div class="col-md-6">
|
| 193 |
+
<label for="login-email" class="required"><em>*</em>Occupation:</label>
|
| 194 |
+
<div class="input-box custom_width">
|
| 195 |
+
<select class="input-text select_input_f validate-select validate-no-html-tags" id="occupation" name="occupation">
|
| 196 |
+
<option value="">Please select occupation</option>
|
| 197 |
+
<option value="Accountant/CPA">Accountant/CPA</option>
|
| 198 |
+
<option value="Analyst">Analyst</option>
|
| 199 |
+
<option value="Architect">Architect</option>
|
| 200 |
+
<option value="Attorney">Attorney</option>
|
| 201 |
+
<option value="Biologist">Biologist</option>
|
| 202 |
+
<option value="Bus Driver">Bus Driver</option>
|
| 203 |
+
<option value="Car Dealer">Car Dealer</option>
|
| 204 |
+
<option value="Chemist">Chemist</option>
|
| 205 |
+
<option value="Civil Service">Civil Service</option>
|
| 206 |
+
<option value="Clergy">Clergy</option>
|
| 207 |
+
<option value="Clerical">Clerical</option>
|
| 208 |
+
<option value="Computer Programmer">Computer Programmer</option>
|
| 209 |
+
<option value="Construction">Construction</option>
|
| 210 |
+
<option value="Dentist">Dentist</option>
|
| 211 |
+
<option value="Doctor">Doctor</option>
|
| 212 |
+
<option value="Engineer- Chemical">Engineer- Chemical</option>
|
| 213 |
+
<option value="Engineer- Electrical">Engineer- Electrical</option>
|
| 214 |
+
<option value="Engineer- Mechanical">Engineer- Mechanical</option>
|
| 215 |
+
<option value="Executive">Executive</option>
|
| 216 |
+
<option value="Fireman">Fireman</option>
|
| 217 |
+
<option value="Flight Attendant">Flight Attendant</option>
|
| 218 |
+
<option value="Food Service">Food Service</option>
|
| 219 |
+
<option value="Food Service Management">Food Service Management</option>
|
| 220 |
+
<option value="Homemaker">Homemaker</option>
|
| 221 |
+
<option value="Judge">Judge</option>
|
| 222 |
+
<option value="Laborer">Laborer</option>
|
| 223 |
+
<option value="Landscaping">Landscaping</option>
|
| 224 |
+
<option value="Medical Technician">Medical Technician</option>
|
| 225 |
+
<option value="Military Enlisted">Military Enlisted</option>
|
| 226 |
+
<option value="Military Officer">Military Officer</option>
|
| 227 |
+
<option value="Nurse (LPN)">Nurse (LPN)</option>
|
| 228 |
+
<option value="Nurse (RN)">Nurse (RN)</option>
|
| 229 |
+
<option value="Nurse's Aide">Nurse's Aide</option>
|
| 230 |
+
<option value="Pharmacist">Pharmacist</option>
|
| 231 |
+
<option value="Pilot- Private/Commercial">Pilot- Private/Commercial</option>
|
| 232 |
+
<option value="Police- Officer/Correction officer">Police- Officer/Correction officer</option>
|
| 233 |
+
<option value="Postal Service">Postal Service</option>
|
| 234 |
+
<option value="Principal">Principal</option>
|
| 235 |
+
<option value="Professional">Professional</option>
|
| 236 |
+
<option value="Professor">Professor</option>
|
| 237 |
+
<option value="Psychologist">Psychologist</option>
|
| 238 |
+
<option value="Realtor">Realtor</option>
|
| 239 |
+
<option value="Religious">Religious</option>
|
| 240 |
+
<option value="Retail Management">Retail Management</option>
|
| 241 |
+
<option value="Sales- Commission">Sales- Commission</option>
|
| 242 |
+
<option value="Sales- Retails">Sales- Retails</option>
|
| 243 |
+
<option value="Scientist">Scientist</option>
|
| 244 |
+
<option value="Administrative Assistant">Administrative Assistant</option>
|
| 245 |
+
<option value="Skilled Labor">Skilled Labor</option>
|
| 246 |
+
<option value="Social Worker">Social Worker</option>
|
| 247 |
+
<option value="Student">Student</option>
|
| 248 |
+
<option value="Teacher">Teacher</option>
|
| 249 |
+
<option value="Teacher's Aide">Teacher's Aide</option>
|
| 250 |
+
<option value="Tradesman- Carpenter">Tradesman- Carpenter</option>
|
| 251 |
+
<option value="Tradesman- Electrician">Tradesman- Electrician</option>
|
| 252 |
+
<option value="Tradesman- Mechanic">Tradesman- Mechanic</option>
|
| 253 |
+
<option value="Tradesman- Plumber">Tradesman- Plumber</option>
|
| 254 |
+
<option value="Truck Driver">Truck Driver</option>
|
| 255 |
+
<option value="Waiter/Waitress">Waiter/Waitress</option>
|
| 256 |
+
<option value="Other">Other</option>
|
| 257 |
+
<option value="Investor">Investor</option>
|
| 258 |
+
</select>
|
| 259 |
+
</div>
|
| 260 |
+
</div>
|
| 261 |
+
</div>
|
| 262 |
+
</li>
|
| 263 |
+
<li>
|
| 264 |
+
<div class="row">
|
| 265 |
+
<div class="col-md-6">
|
| 266 |
+
<label for="login-email" class="required"><em>*</em>Employer name:</label>
|
| 267 |
+
<div class="input-box custom_width">
|
| 268 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-alpha-spac" id="employerName" name="employerName" value="">
|
| 269 |
+
</div>
|
| 270 |
+
</div>
|
| 271 |
+
<div class="col-md-6">
|
| 272 |
+
<label for="login-email" class="required"><em>*</em>Employment start date:</label>
|
| 273 |
+
<div class="input-box custom_width">
|
| 274 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-date" id="employmentStartDate" name="employmentStartDate" value="">
|
| 275 |
+
</div>
|
| 276 |
+
</div>
|
| 277 |
+
</div>
|
| 278 |
+
</li>
|
| 279 |
+
</form>
|
| 280 |
+
</div>
|
| 281 |
+
<div id="menu2" class="tab-pane fade">
|
| 282 |
+
<form action="javascript:void(0)" id="bankdetails_and_ssn_form2" role="form">
|
| 283 |
+
<li>
|
| 284 |
+
<label for="login-email" class="required"><em>*</em>Self reported credit score:</label>
|
| 285 |
+
<div class="input-box">
|
| 286 |
+
<select class="input-text select_input_f validate-select validate-no-html-tags" id="selfReportedCreditScore" name="selfReportedCreditScore">
|
| 287 |
+
<option value="">Please select self Reported Credit score</option>
|
| 288 |
+
<option value="1">Excellent Credit (760+)</option>
|
| 289 |
+
<option value="2">Good Credit (700+) </option>
|
| 290 |
+
<option value="3">Fair Credit (640+) </option>
|
| 291 |
+
<option value="4">Poor Credit</option>
|
| 292 |
+
</select>
|
| 293 |
+
</div>
|
| 294 |
+
</li>
|
| 295 |
+
<li>
|
| 296 |
+
<label for="bankName" class="required"><em>*</em>Bank name:</label>
|
| 297 |
+
<div class="input-box">
|
| 298 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-length maximum-length-255" id="bankName" name="bankName" value="">
|
| 299 |
+
</div>
|
| 300 |
+
</li>
|
| 301 |
+
<li>
|
| 302 |
+
<label for="firstAccountHolderName" class="required"><em>*</em>First account holder name:</label>
|
| 303 |
+
<div class="input-box">
|
| 304 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-alpha-spac validate-length maximum-length-255" id="firstAccountHolderName" name="firstAccountHolderName" value="">
|
| 305 |
+
</div>
|
| 306 |
+
</li>
|
| 307 |
+
<li>
|
| 308 |
+
<label for="bankAccountType" class="required"><em>*</em>Bank account type:</label>
|
| 309 |
+
<div class="input-box">
|
| 310 |
+
<select class="input-text select_input_f validate-select validate-no-html-tags" id="bankAccountType" name="bankAccountType">
|
| 311 |
+
<option value="">Please select bank account type</option>
|
| 312 |
+
<option value="Savings">Savings</option>
|
| 313 |
+
<option value="Checking">Checking</option>
|
| 314 |
+
<option value="Credit">Credit</option>
|
| 315 |
+
</select>
|
| 316 |
+
</div>
|
| 317 |
+
</li>
|
| 318 |
+
<li>
|
| 319 |
+
<label for="bankAccountNumber" class="required"><em>*</em>Bank account number:</label>
|
| 320 |
+
<div class="input-box">
|
| 321 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-number validate-length maximum-length-30" id="bankAccountNumber" name="bankAccountNumber" value="">
|
| 322 |
+
</div>
|
| 323 |
+
</li>
|
| 324 |
+
<li>
|
| 325 |
+
<label for="routingNumber" class="required"><em>*</em>Routing number:</label>
|
| 326 |
+
<div class="input-box">
|
| 327 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-length maximum-length-255" id="routingNumber" name="routingNumber" value="">
|
| 328 |
+
</div>
|
| 329 |
+
</li>
|
| 330 |
+
<li>
|
| 331 |
+
<label for="ssn" class="required"><em>*</em>ssn:</label>
|
| 332 |
+
<div class="input-box">
|
| 333 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-ssn" id="ssn" name="ssn" value="">
|
| 334 |
+
</div>
|
| 335 |
+
</li>
|
| 336 |
+
</form>
|
| 337 |
+
</div>
|
| 338 |
+
<div id="menu3" class="tab-pane fade">
|
| 339 |
+
<form action="javascript:void(0)" id="confirmation_and_submit_form3" role="form">
|
| 340 |
+
<li>
|
| 341 |
+
<label for="loanAmount" class="required"><em>*</em>Loan amount:(<?php echo(Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol()); ?>)</label>
|
| 342 |
+
<div class="input-box">
|
| 343 |
+
<?php $grand_total = $this->getLoanAmmount(); ?>
|
| 344 |
+
<input type="text" autocapitalize="off" readonly="readonly" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-number" id="loanAmount" name="loanAmount" value="<?php echo(isset($grand_total) ? $grand_total : ''); ?>">
|
| 345 |
+
</div>
|
| 346 |
+
</li>
|
| 347 |
+
<li>
|
| 348 |
+
<label for="loanPurpose" class="required"><em>*</em>Loan purpose:</label>
|
| 349 |
+
<div class="input-box">
|
| 350 |
+
<select class="input-text select_input_f validate-select validate-no-html-tags" id="loanPurpose" name="loanPurpose">
|
| 351 |
+
<option value="">Please select loan purpose</option>
|
| 352 |
+
<option value="Debt consolidation">Debt consolidation</option>
|
| 353 |
+
<option value="Home improvement">Home improvement</option>
|
| 354 |
+
<option value="Business">Business</option>
|
| 355 |
+
<option value="Auto">Auto</option>
|
| 356 |
+
<option value="Other">Other</option>
|
| 357 |
+
<option value="Baby & adoption loans">Baby & adoption loans</option>
|
| 358 |
+
<option value="Boat">Boat</option>
|
| 359 |
+
<option value="Cosmetic procedures">Cosmetic procedures</option>
|
| 360 |
+
<option value="Green loans">Green loans</option>
|
| 361 |
+
<option value="Household expenses">Household expenses</option>
|
| 362 |
+
<option value="Large purchases">Large purchases</option>
|
| 363 |
+
<option value="Medical/Dental">Medical/Dental</option>
|
| 364 |
+
<option value="Motorcycle">Motorcycle</option>
|
| 365 |
+
<option value="RV">RV</option>
|
| 366 |
+
<option value="Taxes">Taxes</option>
|
| 367 |
+
<option value="Vacation">Vacation</option>
|
| 368 |
+
<option value="Special Occasion">Special Occasion</option>
|
| 369 |
+
</select>
|
| 370 |
+
</div>
|
| 371 |
+
</li>
|
| 372 |
+
<li>
|
| 373 |
+
<label for="loanTerms" class="required"><em>*</em>Loan terms (In months):</label>
|
| 374 |
+
<div class="input-box">
|
| 375 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="validate-no-html-tags input-text required-entry validate-digits" id="loanTerms" name="loanTerms" value="">
|
| 376 |
+
</div>
|
| 377 |
+
</li>
|
| 378 |
+
</form>
|
| 379 |
+
</div>
|
| 380 |
+
</ul>
|
| 381 |
+
</div>
|
| 382 |
+
</div>
|
| 383 |
+
<div class="modal-footer">
|
| 384 |
+
<a href="javascript:void(0);" class="btn btn-default clx_common_next_prev_btn" data-tab="1">Next</a>
|
| 385 |
+
</div>
|
| 386 |
+
</div>
|
| 387 |
+
<!--</form>-->
|
| 388 |
+
</div>
|
| 389 |
+
</div>
|
| 390 |
+
<script type="text/javascript">
|
| 391 |
+
jQuery(document).ready(function () {
|
| 392 |
+
Validation.add('validate-alpha-spac', 'Allowed only alphabets', function (v) {
|
| 393 |
+
return Validation.get('IsEmpty').test(v) || /^[a-zA-Z ]+$/.test(v)
|
| 394 |
+
});
|
| 395 |
+
});
|
| 396 |
+
</script>
|
| 397 |
+
|
| 398 |
+
|
app/design/frontend/base/default/template/clxfunding/form/modal_custompaymentmethod.phtml~
ADDED
|
@@ -0,0 +1,353 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!-- Modal -->
|
| 2 |
+
<div id="myModal" class="modal fade" role="dialog">
|
| 3 |
+
<div class="modal-dialog">
|
| 4 |
+
<form role="form" id="my-clxloan-form" action="javascript:void(0);" data-action="<?php echo Mage::getBaseUrl().'custompaymentmethod/ClxAPI/loanAppProcessing';?>">
|
| 5 |
+
<!--Modal content-->
|
| 6 |
+
<div class="modal-content">
|
| 7 |
+
<div class="modal-header">
|
| 8 |
+
<a href="javascript:void(0);" class="clx_modal_form_close" data-dismiss="modal">x</a>
|
| 9 |
+
<center><h4 class="modal-title">LOAN APPLICATION</h4></center>
|
| 10 |
+
|
| 11 |
+
</div>
|
| 12 |
+
<div class="modal-body">
|
| 13 |
+
|
| 14 |
+
<div class="fieldset">
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
<ul class="nav nav-tabs">
|
| 18 |
+
<li class="active"><a data-toggle="tab" style="display:block !important;" href="#home">General info1</a></li>
|
| 19 |
+
<li><a data-toggle="tab" href="#menu1">General info2</a></li>
|
| 20 |
+
<li><a data-toggle="tab" href="#menu2">Verification</a></li>
|
| 21 |
+
<li><a data-toggle="tab" href="#menu3">Loan information</a></li>
|
| 22 |
+
</ul>
|
| 23 |
+
<ul id="clx-loanform" class="form-list tab-content">
|
| 24 |
+
<p class="required">* Required Fields</p><br>
|
| 25 |
+
<div id="home" class="tab-pane fade in active"><br>
|
| 26 |
+
<li>
|
| 27 |
+
<label for="login-email" class="required"><em>*</em>First Name:</label>
|
| 28 |
+
<div class="input-box">
|
| 29 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry" id="firstName" name="firstName" value="">
|
| 30 |
+
</div>
|
| 31 |
+
</li>
|
| 32 |
+
<li>
|
| 33 |
+
<label for="login-email" class="required"><em>*</em>Last Name:</label>
|
| 34 |
+
<div class="input-box">
|
| 35 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry" id="lastName" name="lastName" value="">
|
| 36 |
+
</div>
|
| 37 |
+
</li>
|
| 38 |
+
<li>
|
| 39 |
+
<label for="login-email" class="required"><em>*</em>Email Address:</label>
|
| 40 |
+
<div class="input-box">
|
| 41 |
+
<input type="email" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry validate-email" id="emailId" name="emailId" value="">
|
| 42 |
+
</div>
|
| 43 |
+
</li>
|
| 44 |
+
<li>
|
| 45 |
+
<label for="login-email" class="required"><em>*</em>Date of birth:</label>
|
| 46 |
+
<div class="input-box">
|
| 47 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry" id="birthDate" name="birthDate" value="">
|
| 48 |
+
</div>
|
| 49 |
+
</li>
|
| 50 |
+
<li>
|
| 51 |
+
<label for="login-email" class="required"><em>*</em>Street:</label>
|
| 52 |
+
<div class="input-box">
|
| 53 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry" id="street" name="street" value="">
|
| 54 |
+
</div>
|
| 55 |
+
</li>
|
| 56 |
+
<li>
|
| 57 |
+
<label for="login-email" class="required"><em>*</em>Mobile phone area code:</label>
|
| 58 |
+
<div class="input-box">
|
| 59 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry" id="mobilePhoneAreaCode" name="mobilePhoneAreaCode" value="">
|
| 60 |
+
</div>
|
| 61 |
+
</li>
|
| 62 |
+
<li>
|
| 63 |
+
<label for="login-email" class="required"><em>*</em>Mobile number:</label>
|
| 64 |
+
<div class="input-box">
|
| 65 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry" id="mobileNumber" name="mobileNumber" value="">
|
| 66 |
+
</div>
|
| 67 |
+
</li>
|
| 68 |
+
|
| 69 |
+
<li>
|
| 70 |
+
<label for="login-email" class="required"><em>*</em>City:</label>
|
| 71 |
+
<div class="input-box">
|
| 72 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry" id="city" name="city" value="">
|
| 73 |
+
</div>
|
| 74 |
+
</li>
|
| 75 |
+
</div>
|
| 76 |
+
<div id="menu1" class="tab-pane fade">
|
| 77 |
+
<li>
|
| 78 |
+
<label for="login-email" class="required"><em>*</em>State:</label>
|
| 79 |
+
<div class="input-box">
|
| 80 |
+
<select class="input-text" id="state" name="state">
|
| 81 |
+
<option>Alabama</option>
|
| 82 |
+
<option>Alaska</option>
|
| 83 |
+
<option>Arizona</option>
|
| 84 |
+
<option>Arkansas</option>
|
| 85 |
+
<option>California</option>
|
| 86 |
+
<option>Colorado</option>
|
| 87 |
+
<option>Connecticut</option>
|
| 88 |
+
<option>Delaware</option>
|
| 89 |
+
<option>District Of Columbia</option>
|
| 90 |
+
<option>Florida</option>
|
| 91 |
+
<option>Georgia</option>
|
| 92 |
+
<option>Hawaii</option>
|
| 93 |
+
<option>Idaho</option>
|
| 94 |
+
<option>Illinois</option>
|
| 95 |
+
<option>Indiana</option>
|
| 96 |
+
<option>Iowa</option>
|
| 97 |
+
<option>Kansas</option>
|
| 98 |
+
<option>Kentucky</option>
|
| 99 |
+
<option>Louisiana</option>
|
| 100 |
+
<option>Maine</option>
|
| 101 |
+
<option>Maryland</option>
|
| 102 |
+
<option>Massachusetts</option>
|
| 103 |
+
<option>Michigan</option>
|
| 104 |
+
<option>Minnesota</option>
|
| 105 |
+
<option>Mississippi</option>
|
| 106 |
+
<option>Missouri</option>
|
| 107 |
+
<option>Montana</option>
|
| 108 |
+
<option>Nebraska</option>
|
| 109 |
+
<option>Nevada</option>
|
| 110 |
+
<option>New Hampshire</option>
|
| 111 |
+
<option>New Jersey</option>
|
| 112 |
+
<option>New Mexico</option>
|
| 113 |
+
<option>New York</option>
|
| 114 |
+
<option>North Carolina</option>
|
| 115 |
+
<option>North Dakota</option>
|
| 116 |
+
<option>Ohio</option>
|
| 117 |
+
<option>Oklahoma</option>
|
| 118 |
+
<option>Oregon</option>
|
| 119 |
+
<option>Pennsylvania</option>
|
| 120 |
+
<option>Rhode Island</option>
|
| 121 |
+
<option>South Carolina</option>
|
| 122 |
+
<option>South Dakota</option>
|
| 123 |
+
<option>Tennessee</option>
|
| 124 |
+
<option>Texas</option>
|
| 125 |
+
<option>Utah</option>
|
| 126 |
+
<option>Vermont</option>
|
| 127 |
+
<option>Virginia</option>
|
| 128 |
+
<option>Washington</option>
|
| 129 |
+
<option>West Virginia</option>
|
| 130 |
+
<option>Wisconsin</option>
|
| 131 |
+
<option>Wyoming</option>
|
| 132 |
+
<option>American Samoa</option>
|
| 133 |
+
<option>Guam</option>
|
| 134 |
+
<option>Northern Mariana Islands</option>
|
| 135 |
+
<option>Puerto Rico</option>
|
| 136 |
+
<option>United States Minor Outlying</option>
|
| 137 |
+
<option>Islands</option>
|
| 138 |
+
<option>Virgin Islands</option>
|
| 139 |
+
</select>
|
| 140 |
+
</div>
|
| 141 |
+
</li>
|
| 142 |
+
<li>
|
| 143 |
+
<label for="login-email" class="required"><em>*</em>Zipcode:</label>
|
| 144 |
+
<div class="input-box">
|
| 145 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry" id="zipcode" name="zipcode" value="">
|
| 146 |
+
</div>
|
| 147 |
+
</li>
|
| 148 |
+
<li>
|
| 149 |
+
<label for="login-email" class="required"><em>*</em>Country:</label>
|
| 150 |
+
<div class="input-box">
|
| 151 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry" id="country" name="country" value="">
|
| 152 |
+
</div>
|
| 153 |
+
</li>
|
| 154 |
+
<li>
|
| 155 |
+
<label for="login-email" class="required"><em>*</em>Yearly income:</label>
|
| 156 |
+
<div class="input-box">
|
| 157 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry" id="yearlyIncome" name="yearlyIncome" value="">
|
| 158 |
+
</div>
|
| 159 |
+
</li>
|
| 160 |
+
<li>
|
| 161 |
+
<label for="login-email" class="required"><em>*</em>Employment status:</label>
|
| 162 |
+
<div class="input-box">
|
| 163 |
+
<select class="input-text" id="employmentStatus" name="employmentStatus">
|
| 164 |
+
<option>Self Employed</option>
|
| 165 |
+
<option>Not Employed</option>
|
| 166 |
+
<option>Other</option>
|
| 167 |
+
<option>Employed</option>
|
| 168 |
+
</select>
|
| 169 |
+
</div>
|
| 170 |
+
</li>
|
| 171 |
+
<li>
|
| 172 |
+
<label for="login-email" class="required"><em>*</em>Occupation:</label>
|
| 173 |
+
<div class="input-box">
|
| 174 |
+
<select class="input-text" id="occupation" name="occupation">
|
| 175 |
+
<option>Accountant/CPA</option>
|
| 176 |
+
<option>Analyst</option>
|
| 177 |
+
<option>Architect</option>
|
| 178 |
+
<option>Attorney</option>
|
| 179 |
+
<option>Biologist</option>
|
| 180 |
+
<option>Bus Driver</option>
|
| 181 |
+
<option>Car Dealer</option>
|
| 182 |
+
<option>Chemist</option>
|
| 183 |
+
<option>Civil Service</option>
|
| 184 |
+
<option>Clergy</option>
|
| 185 |
+
<option>Clerical</option>
|
| 186 |
+
<option>Computer Programmer</option>
|
| 187 |
+
<option>Construction</option>
|
| 188 |
+
<option>Dentist</option>
|
| 189 |
+
<option>Doctor</option>
|
| 190 |
+
<option>Engineer- Chemical</option>
|
| 191 |
+
<option>Engineer- Electrical</option>
|
| 192 |
+
<option>Engineer- Mechanical</option>
|
| 193 |
+
<option>Executive</option>
|
| 194 |
+
<option>Fireman</option>
|
| 195 |
+
<option>Flight Attendant</option>
|
| 196 |
+
<option>Food Service</option>
|
| 197 |
+
<option>Food Service Management</option>
|
| 198 |
+
<option>Homemaker</option>
|
| 199 |
+
<option>Judge</option>
|
| 200 |
+
<option>Laborer</option>
|
| 201 |
+
<option>Landscaping</option>
|
| 202 |
+
<option>Medical Technician</option>
|
| 203 |
+
<option>Military Enlisted</option>
|
| 204 |
+
<option>Military Officer</option>
|
| 205 |
+
<option>Nurse (LPN)</option>
|
| 206 |
+
<option>Nurse (RN)</option>
|
| 207 |
+
<option>Nurse's Aide</option>
|
| 208 |
+
<option>Pharmacist</option>
|
| 209 |
+
<option>Pilot- Private/Commercial</option>
|
| 210 |
+
<option>Police- Officer/Correction officer</option>
|
| 211 |
+
<option>Postal Service</option>
|
| 212 |
+
<option>Principal</option>
|
| 213 |
+
<option>Professional</option>
|
| 214 |
+
<option>Professor</option>
|
| 215 |
+
<option>Psychologist</option>
|
| 216 |
+
<option>Realtor</option>
|
| 217 |
+
<option>Religious</option>
|
| 218 |
+
<option>Retail Management</option>
|
| 219 |
+
<option>Sales- Commission</option>
|
| 220 |
+
<option>Sales- Retails</option>
|
| 221 |
+
<option>Scientist</option>
|
| 222 |
+
<option>Administrative Assistant</option>
|
| 223 |
+
<option>Skilled Labor</option>
|
| 224 |
+
<option>Social Worker</option>
|
| 225 |
+
<option>Student</option>
|
| 226 |
+
<option>Teacher</option>
|
| 227 |
+
<option>Teacher's Aide</option>
|
| 228 |
+
<option>Tradesman- Carpenter</option>
|
| 229 |
+
<option>Tradesman- Electrician</option>
|
| 230 |
+
<option>Tradesman- Mechanic</option>
|
| 231 |
+
<option>Tradesman- Plumber</option>
|
| 232 |
+
<option>Truck Driver</option>
|
| 233 |
+
<option>Waiter/Waitress</option>
|
| 234 |
+
<option>Other</option>
|
| 235 |
+
<option>Investor</option>
|
| 236 |
+
</select>
|
| 237 |
+
</div>
|
| 238 |
+
</li>
|
| 239 |
+
<li>
|
| 240 |
+
<label for="login-email" class="required"><em>*</em>Employer name:</label>
|
| 241 |
+
<div class="input-box">
|
| 242 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry" id="employerName" name="employerName" value="">
|
| 243 |
+
</div>
|
| 244 |
+
</li>
|
| 245 |
+
|
| 246 |
+
<li>
|
| 247 |
+
<label for="login-email" class="required"><em>*</em>Employment start date:</label>
|
| 248 |
+
<div class="input-box">
|
| 249 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry " id="employmentStartDate" name="employmentStartDate" value="">
|
| 250 |
+
</div>
|
| 251 |
+
</li>
|
| 252 |
+
<li>
|
| 253 |
+
<label for="login-email" class="required"><em>*</em>Self reported credit score:</label>
|
| 254 |
+
<div class="input-box">
|
| 255 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry " id="selfReportedCreditScore" name="selfReportedCreditScore" value="">
|
| 256 |
+
</div>
|
| 257 |
+
</li>
|
| 258 |
+
</div>
|
| 259 |
+
<div id="menu2" class="tab-pane fade">
|
| 260 |
+
<li>
|
| 261 |
+
<label for="bankName" class="required"><em>*</em>Bank name:</label>
|
| 262 |
+
<div class="input-box">
|
| 263 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry " id="bankName" name="bankName" value="">
|
| 264 |
+
</div>
|
| 265 |
+
</li>
|
| 266 |
+
<li>
|
| 267 |
+
<label for="firstAccountHolderName" class="required"><em>*</em>First account holder name:</label>
|
| 268 |
+
<div class="input-box">
|
| 269 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry " id="firstAccountHolderName" name="firstAccountHolderName" value="">
|
| 270 |
+
</div>
|
| 271 |
+
</li>
|
| 272 |
+
<li>
|
| 273 |
+
<label for="bankAccountType" class="required"><em>*</em>Bank account type:</label>
|
| 274 |
+
<div class="input-box">
|
| 275 |
+
<select class="input-text" id="bankAccountType" name="bankAccountType">
|
| 276 |
+
<option>Savings</option>
|
| 277 |
+
<option>Checking</option>
|
| 278 |
+
<option>Credit</option>
|
| 279 |
+
</select>
|
| 280 |
+
</div>
|
| 281 |
+
</li>
|
| 282 |
+
<li>
|
| 283 |
+
<label for="bankAccountNumber" class="required"><em>*</em>Bank account number:</label>
|
| 284 |
+
<div class="input-box">
|
| 285 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry " id="bankAccountNumber" name="bankAccountNumber" value="">
|
| 286 |
+
</div>
|
| 287 |
+
</li>
|
| 288 |
+
<li>
|
| 289 |
+
<label for="routingNumber" class="required"><em>*</em>Routing number:</label>
|
| 290 |
+
<div class="input-box">
|
| 291 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry " id="routingNumber" name="routingNumber" value="">
|
| 292 |
+
</div>
|
| 293 |
+
</li>
|
| 294 |
+
<li>
|
| 295 |
+
<label for="ssn" class="required"><em>*</em>ssn:</label>
|
| 296 |
+
<div class="input-box">
|
| 297 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry " id="ssn" name="ssn" value="">
|
| 298 |
+
</div>
|
| 299 |
+
</li>
|
| 300 |
+
|
| 301 |
+
</div>
|
| 302 |
+
<div id="menu3" class="tab-pane fade">
|
| 303 |
+
<li>
|
| 304 |
+
<label for="loanAmount" class="required"><em>*</em>Loan amount:</label>
|
| 305 |
+
<div class="input-box">
|
| 306 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry " id="loanAmount" name="loanAmount" value="">
|
| 307 |
+
</div>
|
| 308 |
+
</li>
|
| 309 |
+
<li>
|
| 310 |
+
<label for="loanPurpose" class="required"><em>*</em>Loan purpose:</label>
|
| 311 |
+
<div class="input-box">
|
| 312 |
+
<select class="input-text" id="loanPurpose" name="loanPurpose">
|
| 313 |
+
<option>Debt consolidation</option>
|
| 314 |
+
<option>Home improvement</option>
|
| 315 |
+
<option>Business</option>
|
| 316 |
+
<option>Auto</option>
|
| 317 |
+
<option>Other</option>
|
| 318 |
+
<option>Baby & adoption loans</option>
|
| 319 |
+
<option>Boat</option>
|
| 320 |
+
<option>Cosmetic procedures</option>
|
| 321 |
+
<option>Green loans</option>
|
| 322 |
+
<option>Household expenses</option>
|
| 323 |
+
<option>Large purchases</option>
|
| 324 |
+
<option>Medical/Dental</option>
|
| 325 |
+
<option>Motorcycle</option>
|
| 326 |
+
<option>RV</option>
|
| 327 |
+
<option>Taxes</option>
|
| 328 |
+
<option>Vacation</option>
|
| 329 |
+
<option>Special Occasion</option>
|
| 330 |
+
</select>
|
| 331 |
+
</div>
|
| 332 |
+
</li>
|
| 333 |
+
<li>
|
| 334 |
+
<label for="loanTerms" class="required"><em>*</em>Loan terms:</label>
|
| 335 |
+
<div class="input-box">
|
| 336 |
+
<input type="text" autocapitalize="off" autocorrect="off" spellcheck="false" class="input-text required-entry" id="loanTerms" name="loanTerms" value="">
|
| 337 |
+
</div>
|
| 338 |
+
</li>
|
| 339 |
+
</div>
|
| 340 |
+
</ul>
|
| 341 |
+
</div>
|
| 342 |
+
</div>
|
| 343 |
+
<div class="modal-footer">
|
| 344 |
+
<input type="submit" name="submit" class="input-text submitss btn btn-default" value="Apply loan">
|
| 345 |
+
<a href="javascript:void(0);" class="btn btn-default clx_modal_form_close" data-dismiss="modal">Close</a>
|
| 346 |
+
</div>
|
| 347 |
+
</div>
|
| 348 |
+
</form>
|
| 349 |
+
</div>
|
| 350 |
+
</div>
|
| 351 |
+
|
| 352 |
+
|
| 353 |
+
<!--<script>jQuery.noConflict()</script>-->
|
app/design/frontend/base/default/template/clxfunding/form/user_loan_offer_accept.phtml
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$data = $this->getLoanOfferStatus();
|
| 3 |
+
?>
|
| 4 |
+
<div class="">
|
| 5 |
+
<div class="" style="width:80%">
|
| 6 |
+
<?php if (isset($data) && !empty($data)) {
|
| 7 |
+
if (isset($data->application_status) && $data->application_status == "ACCEPTED") {
|
| 8 |
+
?>
|
| 9 |
+
<form name="loan_offer_acceptance_res" id="loan_offer_acceptance_res" method="post" action="<?php echo Mage::getBaseUrl() . 'clxfunding/ClxAPI/saveOrderCustom'; ?>">
|
| 10 |
+
<div class="">
|
| 11 |
+
<p>Your application has been preliminarily approved and it will be processed within 24 hours.</p>
|
| 12 |
+
<div class="buttons-set border-top-none">
|
| 13 |
+
<button type="submit" class="button align-left" id="Confirm_Acceptance_Continue" title="Continue"><span><span>Continue to save order</span></span></button>
|
| 14 |
+
</div>
|
| 15 |
+
</div>
|
| 16 |
+
</form>
|
| 17 |
+
<?php } else { ?>
|
| 18 |
+
<div class="">
|
| 19 |
+
<p>We are sorry to inform you that your loan application cannot be processed further.</p>
|
| 20 |
+
<div class="buttons-set border-top-none">
|
| 21 |
+
<button type="button" class="button align-left" title="My Account" onclick="redirectURL()"><span><span>My Account</span></span></button>
|
| 22 |
+
</div>
|
| 23 |
+
</div>
|
| 24 |
+
<?php }
|
| 25 |
+
} ?>
|
| 26 |
+
</div>
|
| 27 |
+
</div>
|
| 28 |
+
<script>
|
| 29 |
+
function redirectURL() {
|
| 30 |
+
window.location.href = "<?php echo Mage::getBaseUrl().'customer/account'; ?>";
|
| 31 |
+
}
|
| 32 |
+
</script>
|
app/design/frontend/base/default/template/clxfunding/form/user_loan_offer_reject.phtml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<div class="">
|
| 2 |
+
<div class="">
|
| 3 |
+
<div class="" style="width:80%">
|
| 4 |
+
<p>Your order has been canceled.Thank you for choosing <strong>Online Loan</strong>.</p>
|
| 5 |
+
<div class="buttons-set border-top-none">
|
| 6 |
+
<button class="button align-left" onclick="redirectURL()" title="My Account"><span><span>My Account</span></span></button>
|
| 7 |
+
</div>
|
| 8 |
+
</div>
|
| 9 |
+
</div>
|
| 10 |
+
</div>
|
| 11 |
+
<script>
|
| 12 |
+
function redirectURL() {
|
| 13 |
+
window.location.href = "<?php echo Mage::getBaseUrl().'customer/account'; ?>";
|
| 14 |
+
}
|
| 15 |
+
</script>
|
app/design/frontend/base/default/template/clxfunding/form/user_loan_offer_status.phtml
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$data = $this->getLoanOfferStatus();
|
| 3 |
+
?>
|
| 4 |
+
<div class="">
|
| 5 |
+
<div class="" style="width:80%">
|
| 6 |
+
<?php if (isset($data) && !empty($data)) {
|
| 7 |
+
if (isset($data->application_status) && $data->application_status == "ACCEPTED") {
|
| 8 |
+
?>
|
| 9 |
+
<div class="">
|
| 10 |
+
<p>Your application has been preliminarily approved and it will be processed within 24 hours.</p>
|
| 11 |
+
<div class="buttons-set border-top-none">
|
| 12 |
+
<button class="button align-left" onclick="redirectURL()" title="My Account"><span><span>My Account</span></span></button>
|
| 13 |
+
</div>
|
| 14 |
+
</div>
|
| 15 |
+
<?php } else { ?>
|
| 16 |
+
<div class="">
|
| 17 |
+
<p>We are sorry to inform you that your loan application cannot be processed further.</p>
|
| 18 |
+
<div class="buttons-set border-top-none">
|
| 19 |
+
<button class="button align-left" onclick="redirectURL()" title="My Account"><span><span>My Account</span></span></button>
|
| 20 |
+
</div>
|
| 21 |
+
</div>
|
| 22 |
+
<?php }
|
| 23 |
+
} else { ?>
|
| 24 |
+
<div class="buttons-set border-top-none">
|
| 25 |
+
<button class="button align-left" onclick="redirectURL()" title="My Account"><span><span>My Account</span></span></button>
|
| 26 |
+
</div>
|
| 27 |
+
<?php } ?>
|
| 28 |
+
</div>
|
| 29 |
+
</div>
|
| 30 |
+
<script>
|
| 31 |
+
function redirectURL() {
|
| 32 |
+
window.location.href = "<?php echo Mage::getBaseUrl().'customer/account'; ?>";
|
| 33 |
+
}
|
| 34 |
+
</script>
|
app/etc/modules/CLExchange_Clexchangefunding.xml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<!--
|
| 3 |
+
To change this license header, choose License Headers in Project Properties.
|
| 4 |
+
To change this template file, choose Tools | Templates
|
| 5 |
+
and open the template in the editor.
|
| 6 |
+
-->
|
| 7 |
+
|
| 8 |
+
<config>
|
| 9 |
+
<modules>
|
| 10 |
+
<CLExchange_Clexchangefunding>
|
| 11 |
+
<active>true</active>
|
| 12 |
+
<codePool>community</codePool>
|
| 13 |
+
<depends>
|
| 14 |
+
<Mage_Payment />
|
| 15 |
+
</depends>
|
| 16 |
+
</CLExchange_Clexchangefunding>
|
| 17 |
+
</modules>
|
| 18 |
+
</config>
|
app/locale/en_US/template/email/CLX/email-template/clx_error.html
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
| 2 |
+
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
| 3 |
+
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
| 4 |
+
<tr>
|
| 5 |
+
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
| 6 |
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
|
| 7 |
+
<!-- [ header starts here] -->
|
| 8 |
+
<tr>
|
| 9 |
+
<td valign="top"><a href="{{store url=""}}"><img src="{{var logo_url}}" alt="{{var logo_alt}}" style="margin-bottom:10px;" border="0"/></a></td>
|
| 10 |
+
</tr>
|
| 11 |
+
<tr>
|
| 12 |
+
<td>
|
| 13 |
+
<table cellpadding="0" cellspacing="0" border="0" align="center" width="100%">
|
| 14 |
+
<tr>
|
| 15 |
+
<td align="center" style="margin: 0; padding: 0;padding: 35px 0">
|
| 16 |
+
<table cellpadding="0" cellspacing="0" border="0" align="center" width="650">
|
| 17 |
+
<tr>
|
| 18 |
+
<td width="620" valign="top" align="left" bgcolor="#ffffff"style="font-family: Georgia, serif; background: #fff;">
|
| 19 |
+
<p><strong>Dear Merchant,</strong></p>
|
| 20 |
+
<br/><p>Loan applications of customer were rejected due to following configuration error:</p><br/>
|
| 21 |
+
<p><strong>"{{var clxError}}"</strong></p><br/>
|
| 22 |
+
<p>Please check CLExchange configuration in admin panel or Please contact CLExchange</p>
|
| 23 |
+
</td>
|
| 24 |
+
</tr>
|
| 25 |
+
</table><!-- body -->
|
| 26 |
+
</td>
|
| 27 |
+
</tr>
|
| 28 |
+
</table>
|
| 29 |
+
</td>
|
| 30 |
+
</tr>
|
| 31 |
+
<tr>
|
| 32 |
+
<td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;"><center><p style="font-size:12px; margin:0;">Thank you, <strong>{{var store.getFrontendName()}}</strong></p></center></td>
|
| 33 |
+
</tr>
|
| 34 |
+
</table>
|
| 35 |
+
</td>
|
| 36 |
+
</tr>
|
| 37 |
+
</table>
|
| 38 |
+
</div>
|
| 39 |
+
</body>
|
app/locale/en_US/template/email/CLX/email-template/clx_loan_approved.html
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
| 2 |
+
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
| 3 |
+
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
| 4 |
+
<tr>
|
| 5 |
+
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
| 6 |
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
|
| 7 |
+
<!-- [ header starts here] -->
|
| 8 |
+
<tr>
|
| 9 |
+
<td valign="top"><a href="{{store url=""}}"><img src="{{var logo_url}}" alt="{{var logo_alt}}" style="margin-bottom:10px;" border="0"/></a></td>
|
| 10 |
+
</tr>
|
| 11 |
+
<tr>
|
| 12 |
+
<td>
|
| 13 |
+
<table cellpadding="0" cellspacing="0" border="0" align="center" width="100%">
|
| 14 |
+
<tr>
|
| 15 |
+
<td align="center" style="margin: 0; padding: 0;padding: 35px 0">
|
| 16 |
+
<table cellpadding="0" cellspacing="0" border="0" align="center" width="650">
|
| 17 |
+
<tr>
|
| 18 |
+
<td width="620" valign="top" align="left" bgcolor="#ffffff"style="font-family: Georgia, serif; background: #fff;">
|
| 19 |
+
<p><strong>Dear {{var firstName}} {{var lastName}},</strong></p>
|
| 20 |
+
<p>Your application has been received, and you are preliminary approved.It will take up to 1 hour for your application to be processed and the merchant will be notified to deliver your goods.</p>
|
| 21 |
+
</td>
|
| 22 |
+
</tr>
|
| 23 |
+
</table><!-- body -->
|
| 24 |
+
</td>
|
| 25 |
+
</tr>
|
| 26 |
+
</table>
|
| 27 |
+
</td>
|
| 28 |
+
</tr>
|
| 29 |
+
<tr>
|
| 30 |
+
<td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;"><center><p style="font-size:12px; margin:0;">Thank you, <strong>{{var store.getFrontendName()}}</strong></p></center></td>
|
| 31 |
+
</tr>
|
| 32 |
+
</table>
|
| 33 |
+
</td>
|
| 34 |
+
</tr>
|
| 35 |
+
</table>
|
| 36 |
+
</div>
|
| 37 |
+
</body>
|
app/locale/en_US/template/email/CLX/email-template/clx_loan_funded.html
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
| 2 |
+
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
| 3 |
+
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
| 4 |
+
<tr>
|
| 5 |
+
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
| 6 |
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
|
| 7 |
+
<!-- [ header starts here] -->
|
| 8 |
+
<tr>
|
| 9 |
+
<td valign="top"><a href="{{store url=""}}"><img src="{{var logo_url}}" alt="{{var logo_alt}}" style="margin-bottom:10px;" border="0"/></a></td>
|
| 10 |
+
</tr>
|
| 11 |
+
<tr>
|
| 12 |
+
<td>
|
| 13 |
+
<table cellpadding="0" cellspacing="0" border="0" align="center" width="100%">
|
| 14 |
+
<tr>
|
| 15 |
+
<td align="center" style="margin: 0; padding: 0;padding: 35px 0">
|
| 16 |
+
<table cellpadding="0" cellspacing="0" border="0" align="center" width="650">
|
| 17 |
+
<tr>
|
| 18 |
+
<td width="620" valign="top" align="left" bgcolor="#ffffff"style="font-family: Georgia, serif; background: #fff;">
|
| 19 |
+
<p><strong>Dear Merchant,</strong></p>
|
| 20 |
+
<br/>
|
| 21 |
+
<p>The application <strong>{{var applicationID}}</strong> for the order number <strong>{{var orderNumber}}</strong> has been funded by lender</p>
|
| 22 |
+
</td>
|
| 23 |
+
</tr>
|
| 24 |
+
</table><!-- body -->
|
| 25 |
+
</td>
|
| 26 |
+
</tr>
|
| 27 |
+
</table>
|
| 28 |
+
</td>
|
| 29 |
+
</tr>
|
| 30 |
+
<tr>
|
| 31 |
+
<td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;"><center><p style="font-size:12px; margin:0;">Thank you, <strong>{{var store.getFrontendName()}}</strong></p></center></td>
|
| 32 |
+
</tr>
|
| 33 |
+
</table>
|
| 34 |
+
</td>
|
| 35 |
+
</tr>
|
| 36 |
+
</table>
|
| 37 |
+
</div>
|
| 38 |
+
</body>
|
app/locale/en_US/template/email/CLX/email-template/clx_loan_offer.html
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<head>
|
| 2 |
+
<style type="text/css">
|
| 3 |
+
table.table-style-two {
|
| 4 |
+
font-family: verdana, arial, sans-serif;
|
| 5 |
+
font-size: 14px;
|
| 6 |
+
color: #333333;
|
| 7 |
+
border-width: 1px;
|
| 8 |
+
border-color: #3A3A3A;
|
| 9 |
+
border-collapse: collapse;
|
| 10 |
+
}
|
| 11 |
+
table.table-style-two th {
|
| 12 |
+
border-width: 1px;
|
| 13 |
+
padding: 8px;
|
| 14 |
+
border-style: solid;
|
| 15 |
+
border-color: #517994;
|
| 16 |
+
background-color: #B2CFD8;
|
| 17 |
+
}
|
| 18 |
+
table.table-style-two tr:hover td {
|
| 19 |
+
background-color: #DFEBF1;
|
| 20 |
+
}
|
| 21 |
+
table.table-style-two td {
|
| 22 |
+
border-width: 1px;
|
| 23 |
+
padding: 8px;
|
| 24 |
+
border-style: solid;
|
| 25 |
+
border-color: #517994;
|
| 26 |
+
background-color: #ffffff;
|
| 27 |
+
}
|
| 28 |
+
.clx_link:link, .clx_link:visited {
|
| 29 |
+
display: block;
|
| 30 |
+
width: 6em;
|
| 31 |
+
padding: 0.2em;
|
| 32 |
+
line-height: 1.4;
|
| 33 |
+
background-color: #94B8E9;
|
| 34 |
+
border: 1px solid black;
|
| 35 |
+
color: #000;
|
| 36 |
+
text-decoration: none;
|
| 37 |
+
text-align: center;
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
.clx_link:hover {
|
| 41 |
+
background-color: #369;
|
| 42 |
+
color: #fff;
|
| 43 |
+
}
|
| 44 |
+
</style>
|
| 45 |
+
</head>
|
| 46 |
+
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
| 47 |
+
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
| 48 |
+
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
| 49 |
+
<tr>
|
| 50 |
+
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
| 51 |
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
|
| 52 |
+
<!-- [ header starts here] -->
|
| 53 |
+
<tr>
|
| 54 |
+
<td valign="top"><a href="{{store url=""}}"><img src="{{var logo_url}}" alt="{{var logo_alt}}" style="margin-bottom:10px;" border="0"/></a></td>
|
| 55 |
+
</tr>
|
| 56 |
+
<tr>
|
| 57 |
+
<td>
|
| 58 |
+
<table cellpadding="0" cellspacing="0" border="0" align="center" width="650">
|
| 59 |
+
<tr>
|
| 60 |
+
<td width="620" valign="top" align="left" bgcolor="#ffffff"style="font-family: Georgia, serif; background: #fff;">
|
| 61 |
+
<table cellpadding="0" cellspacing="0" border="0" width="620" class="content">
|
| 62 |
+
<tr>
|
| 63 |
+
<td valign="top" align="center">
|
| 64 |
+
<div style="text-align:left">
|
| 65 |
+
<p><strong>Dear Customer,</strong></p><br/>
|
| 66 |
+
<p>This mail is in reference with order number <strong>{{var orderNumber}}</strong>.Following is the loan offered by the <strong>{{var lenderName}}</strong></p>
|
| 67 |
+
<br/>
|
| 68 |
+
</div>
|
| 69 |
+
<table class="table-style-two">
|
| 70 |
+
<thead>
|
| 71 |
+
<tr>
|
| 72 |
+
<th>Monthly Payment($)</th>
|
| 73 |
+
<th>Term(Months)</th>
|
| 74 |
+
<th>APR(%)</th>
|
| 75 |
+
<th>Loan Rate(%)</th>
|
| 76 |
+
</tr>
|
| 77 |
+
</thead>
|
| 78 |
+
<tbody>
|
| 79 |
+
<tr>
|
| 80 |
+
<td>${{var MonthlyPayment}}</td>
|
| 81 |
+
<td>{{var Terms}}</td>
|
| 82 |
+
<td>{{var APR}}%</td>
|
| 83 |
+
<td>{{var loanRate}}</td>
|
| 84 |
+
</tr>
|
| 85 |
+
</tbody>
|
| 86 |
+
<tfoot>
|
| 87 |
+
<tr>
|
| 88 |
+
<td colspan="5"><a style="float:left;margin-left:5px" class="clx_link" href="{{var offerAcceptRedirectUrl}}">Accept</a><a style="float:left;margin-left:5px" class="clx_link" href="{{var offerRejectRedirectUrl}}">Reject</a></td>
|
| 89 |
+
</tr>
|
| 90 |
+
</tfoot>
|
| 91 |
+
</table>
|
| 92 |
+
</td>
|
| 93 |
+
</tr>
|
| 94 |
+
</table>
|
| 95 |
+
</td>
|
| 96 |
+
</tr>
|
| 97 |
+
</table><!-- body -->
|
| 98 |
+
</td>
|
| 99 |
+
</tr>
|
| 100 |
+
<tr>
|
| 101 |
+
<td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;"><center><p style="font-size:12px; margin:0;">Thank you, <strong>{{var store.getFrontendName()}}</strong></p></center></td>
|
| 102 |
+
</tr>
|
| 103 |
+
</table>
|
| 104 |
+
</td>
|
| 105 |
+
</tr>
|
| 106 |
+
</table>
|
| 107 |
+
</div>
|
| 108 |
+
</body>
|
app/locale/en_US/template/email/CLX/email-template/clx_loan_offer_reject.html
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
| 2 |
+
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
| 3 |
+
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
| 4 |
+
<tr>
|
| 5 |
+
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
| 6 |
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
|
| 7 |
+
<!-- [ header starts here] -->
|
| 8 |
+
<tr>
|
| 9 |
+
<td valign="top"><a href="{{store url=""}}"><img src="{{var logo_url}}" alt="{{var logo_alt}}" style="margin-bottom:10px;" border="0"/></a></td>
|
| 10 |
+
</tr>
|
| 11 |
+
<tr>
|
| 12 |
+
<td>
|
| 13 |
+
<table cellpadding="0" cellspacing="0" border="0" align="center" width="100%">
|
| 14 |
+
<tr>
|
| 15 |
+
<td align="center" style="margin: 0; padding: 0;padding: 35px 0">
|
| 16 |
+
<table cellpadding="0" cellspacing="0" border="0" align="center" width="650">
|
| 17 |
+
<tr>
|
| 18 |
+
<td width="620" valign="top" align="left" bgcolor="#ffffff"style="font-family: Georgia, serif; background: #fff;">
|
| 19 |
+
<p><strong>Dear Merchant,</strong></p>
|
| 20 |
+
<br/>
|
| 21 |
+
<p>The loan offer with application id <strong>{{var applicationId}}</strong> for order number <strong>{{var orderNumber}}</strong> proposed to the customer <strong>{{var customerName}}</strong> has been rejected</p>
|
| 22 |
+
</td>
|
| 23 |
+
</tr>
|
| 24 |
+
</table><!-- body -->
|
| 25 |
+
</td>
|
| 26 |
+
</tr>
|
| 27 |
+
</table>
|
| 28 |
+
</td>
|
| 29 |
+
</tr>
|
| 30 |
+
<tr>
|
| 31 |
+
<td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;"><center><p style="font-size:12px; margin:0;">Thank you, <strong>{{var store.getFrontendName()}}</strong></p></center></td>
|
| 32 |
+
</tr>
|
| 33 |
+
</table>
|
| 34 |
+
</td>
|
| 35 |
+
</tr>
|
| 36 |
+
</table>
|
| 37 |
+
</div>
|
| 38 |
+
</body>
|
| 39 |
+
|
package.xml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<package>
|
| 3 |
+
<name>Clexchange_Funding</name>
|
| 4 |
+
<version>1.0.0.0</version>
|
| 5 |
+
<stability>stable</stability>
|
| 6 |
+
<license>Open Software License (OSL)</license>
|
| 7 |
+
<channel>community</channel>
|
| 8 |
+
<extends/>
|
| 9 |
+
<summary>CLX Funding allows users to submit an online loan application to lenders from the checkout page itself</summary>
|
| 10 |
+
<description>CLX Funding provides a way for online retailers to sell goods as part of the loan experience, but submitting application to CL exchange so that lenders can bid on them. It is basically an online marketplace that enables people to borrow money from the lenders without the involvement of banks or credit card companies. By cutting out the middle men and bypassing many of the traditional banking costs, it is able to provide multiple loan offers at different rates for borrowers</description>
|
| 11 |
+
<notes>Stable Module</notes>
|
| 12 |
+
<authors><author><name>Dhananjay Goel</name><user>agsdhananjay</user><email>dhananjay.goel@agstechnologies.com</email></author></authors>
|
| 13 |
+
<date>2015-12-03</date>
|
| 14 |
+
<time>07:37:18</time>
|
| 15 |
+
<contents><target name="magecommunity"><dir name="."><dir name="CLExchange"><dir name="Clexchangefunding"><file name="ApprovalRequired.php" hash="96688bf7b67f8c0742ab9bad39cedeb9"/><dir name="Block"><dir name="Form"><file name="Clxfunding.php" hash="081527c555695d5ef6c431f7f6c12c95"/><file name="Clxfunding.php~" hash="a20584db3e9f4b099a7144d12a2b8ef3"/></dir></dir><file name="CronExpressionList.php" hash="d60ce922145f3ae36946fb439933de84"/><file name="CronExpressionList.php~" hash="517b5955d0b9a57f981774a24cc85f21"/><dir name="Helper"><file name="Data.php" hash="f3de7be5f6112b1bdccf39296da819f7"/><file name="Data.php~" hash="a730a72d6b337f5ef6f7ff871e5eda01"/></dir><file name="IsBestOffer.php" hash="96d8ff73ade5a8982181d61471f76140"/><dir name="Model"><file name="AccountIdV.php" hash="fce6f3dafa1e2cea6cf124864d9fc782"/><file name="AuthorizationKeyV.php" hash="cc385bd818815d084fdc33adca0274b7"/><file name="ClxEmail.php" hash="b9fce4e10ba99984dd59fb748c327e0e"/><file name="Clxloanappdtls.php" hash="d131567dcf509e63989e7d5739699c35"/><file name="Clxloanofferdetails.php" hash="673d4de3b8aaa9d0409a8a8a3a2b5060"/><file name="CronOrderStatusUpdate.php" hash="c0ffc89deeadfee459f9e009a37a411d"/><dir name="Mysql4"><dir name="Clxloanappdtls"><file name="Collection.php" hash="9d3b2d78188b257fb9022057c17ac948"/></dir><file name="Clxloanappdtls.php" hash="10402960edc7dc8e6b248bc60e3fc589"/><dir name="Clxloanofferdetails"><file name="Collection.php" hash="518d07728d6296b14512fc5cc5a8b37e"/></dir><file name="Clxloanofferdetails.php" hash="4f94744cc78e809eb718d55bee297455"/></dir><file name="Observer.php" hash="f9de34cdae961c9e6b9d763430977056"/><file name="Observer.php~" hash="fe6c42be3c15b14f36c5b7d9e8003dbd"/><file name="PaymentMethodTitle.php" hash="9fd8ce6214e2e6a7dba330f6913dda0b"/><file name="Paymentmethod.php" hash="036b7356644228046ab8ec880f7f2fe5"/><file name="QueueAuthKeyV.php" hash="bdb91ab2589bd0a025f2ca0fe051f420"/><file name="QueueEndpointV.php" hash="80f1dc2c25dea674a6208a411921a82f"/><dir name="Resource"><file name="Setup.php" hash="891431034dc2144ccf9ed0f89b81a93a"/></dir></dir><file name="TimeFrames.php" hash="c6003d6e6639431fe3a96b057aa84c21"/><dir name="controllers"><file name="ClxAPIController.php" hash="a845844c6fa315b885b39b27bf670dd1"/><file name="ClxAPIController.php~" hash="b0e4e7bfe1c10cd756c647713fc878d6"/><file name="PaymentController.php" hash="7bfa38bd5d5e4e92aafe3f2a20073f76"/></dir><dir name="etc"><file name="config.xml" hash="3394d2b161f0c6c8e0ac4bcb8441cd8c"/><file name="config.xml~" hash="2fb2c5db0f6eeb0ceb1df3a88d41e4e8"/><file name="system.xml" hash="a6c50f131ac6faf145e29666b1de961b"/></dir><dir name="sql"><dir name="clxfunding_setup"><file name="mysql4-install-1.0.0.0.php" hash="ed180b5d726026a8aa4464bbe6f9e40c"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="."><dir name="modules"><file name="CLExchange_Clexchangefunding.xml" hash="baacaefedc8b344c94325fb0707ac4fa"/></dir></dir></target><target name="magedesign"><dir name="."><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="clxblock.xml" hash="33d1ee86efa9a2ca1a69cd0a1193f036"/></dir><dir name="template"><dir name="clxfunding"><dir name="form"><file name="aboutCLXFunding.phtml" hash="d770c8fb641e9d80318893735b63a07e"/><file name="clxfunding.phtml" hash="63074651223b2e3999fcd5da94151322"/><file name="confirm_user_acceptance.phtml" hash="ac94290aef0ec7b0ad0fd1c0eda1ea82"/><file name="custompaymentmethod.phtml~" hash="eb341bef92ad331d87cc04826a3c6d80"/><file name="link_Expire.phtml" hash="dc348778a35a160616661e5f57eecc2a"/><file name="loan_offer_response.phtml" hash="c9a62e6b568f72907bf6ff40b15a4aec"/><file name="loan_offer_response.phtml~" hash="fb3bd4c15f59244d1581744b75433b07"/><file name="loanapplicationstatus.phtml" hash="3f28370fe0adcbbcdf0a3934e7027ba8"/><file name="modal_clxfunding.phtml" hash="7b982715958f7f9b7da2b7905ed476c2"/><file name="modal_clxfunding.phtml~" hash="83cb30ea1c0f9ab50ddf8d02f75a45c8"/><file name="modal_custompaymentmethod.phtml~" hash="3bd861132e0dc8e856d87aa90d0c504d"/><file name="user_loan_offer_accept.phtml" hash="082ef7c1c33fe01966d562237efe056f"/><file name="user_loan_offer_reject.phtml" hash="f3e265bf67ab7f46b7d88fed85e526f0"/><file name="user_loan_offer_status.phtml" hash="f95386d992f0581c2c9dc2f4c3e4470b"/></dir></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="."><dir name="en_US"><dir name="template"><dir name="email"><dir name="CLX"><dir name="email-template"><file name="clx_error.html" hash="00e79d990018928d6744e2674a5f8f96"/><file name="clx_loan_approved.html" hash="c1c65d26dc7d8ffe3202b84d563d8ca1"/><file name="clx_loan_funded.html" hash="6b79fecb27ee174eb371260ed49bfbb1"/><file name="clx_loan_offer.html" hash="5bcc0e69296527e5c72fcd008f4d06dd"/><file name="clx_loan_offer_reject.html" hash="5ef3d5cda7e3854a2d8c4297f122127b"/></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="."><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="Clx"><file name="bootstrap-datepicker.min.css" hash="cd2c0b0211d190705a331aec86e9b58b"/><file name="bootstrap.min.css" hash="f5be102f57c28817dfd7cb45c2e348cc"/><file name="clx_custom.css" hash="98e74ca9d4dc37207ba7dd5009b95f02"/><file name="clxloanofferdata.php~" hash="2b9a4570344187bb80e7e4d3aacf5bae"/><file name="clxloantabledata.php~" hash="04fd656486dda8e8edd0118f2c284997"/><file name="cron_status.php~" hash="9475575fe75cd8ae8e944e88485bd325"/><file name="help.png" hash="8d624cc7c85c82d94af8c733bbbfe70c"/><file name="loading.gif" hash="b93b075c32e850e533118e9da3ab908f"/><file name="loading11.gif" hash="76a38d8ef9d1c3b220ad82562e199b40"/></dir></dir><dir name="js"><dir name="Clx"><file name="bootbox.min.js" hash="05d23d3920015845ca00414081fd0ec6"/><file name="bootstrap-datepicker.min.js" hash="8162cad799165edbecd075126bc9ba9a"/><file name="bootstrap.min.js" hash="1e111f47ca44c667c9db657ef90e08bf"/><file name="jquery-1.11.3.min.js" hash="e73e73f10b0074aeb269444ce5e3f9b6"/><file name="jquery-migrate-1.2.1.min.js" hash="d73215496d38ffbaf7136ced76910a96"/><file name="noConflict.js" hash="7be7463c1b83b4ab8daad25a2da121ed"/></dir></dir></dir></dir></dir></dir></target></contents>
|
| 16 |
+
<compatible/>
|
| 17 |
+
<dependencies><required><php><min>5.3.0</min><max>5.6.0</max></php></required></dependencies>
|
| 18 |
+
</package>
|
skin/frontend/base/default/css/Clx/bootstrap-datepicker.min.css
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*!
|
| 2 |
+
* Datepicker for Bootstrap v1.4.0 (https://github.com/eternicode/bootstrap-datepicker)
|
| 3 |
+
*
|
| 4 |
+
* Copyright 2012 Stefan Petre
|
| 5 |
+
* Improvements by Andrew Rowls
|
| 6 |
+
* Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
|
| 7 |
+
*/
|
| 8 |
+
.datepicker{padding:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker.datepicker-rtl{direction:rtl}.datepicker.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-top:before{top:-7px}.datepicker-dropdown.datepicker-orient-top:after{top:-6px}.datepicker-dropdown.datepicker-orient-bottom:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-bottom:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker>div{display:none}.datepicker.days .datepicker-days,.datepicker.months .datepicker-months,.datepicker.years .datepicker-years{display:block}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker td,.datepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day:hover,.datepicker table tr td.day.focused{background:#eee;cursor:pointer}.datepicker table tr td.old,.datepicker table tr td.new{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.today,.datepicker table tr td.today:hover,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover{background-color:#fde19a;background-image:-moz-linear-gradient(top,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(top,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(top,#fdd49a,#fdf59a);background-image:-o-linear-gradient(top,#fdd49a,#fdf59a);background-image:linear-gradient(top,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#000}.datepicker table tr td.today:hover,.datepicker table tr td.today:hover:hover,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today:active,.datepicker table tr td.today:hover:active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today[disabled],.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today.disabled:hover[disabled]{background-color:#fdf59a}.datepicker table tr td.today:active,.datepicker table tr td.today:hover:active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:hover.active{background-color:#fbf069 \9}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range:hover,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover{background:#eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover{background-color:#f3d17a;background-image:-moz-linear-gradient(top,#f3c17a,#f3e97a);background-image:-ms-linear-gradient(top,#f3c17a,#f3e97a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f3c17a),to(#f3e97a));background-image:-webkit-linear-gradient(top,#f3c17a,#f3e97a);background-image:-o-linear-gradient(top,#f3c17a,#f3e97a);background-image:linear-gradient(top,#f3c17a,#f3e97a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);border-color:#f3e97a #f3e97a #edde34;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover:hover,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today[disabled],.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today.disabled:hover[disabled]{background-color:#f3e97a}.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:hover.active{background-color:#efe24b \9}.datepicker table tr td.selected,.datepicker table tr td.selected:hover,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover{background-color:#9e9e9e;background-image:-moz-linear-gradient(top,#b3b3b3,gray);background-image:-ms-linear-gradient(top,#b3b3b3,gray);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3b3b3),to(gray));background-image:-webkit-linear-gradient(top,#b3b3b3,gray);background-image:-o-linear-gradient(top,#b3b3b3,gray);background-image:linear-gradient(top,#b3b3b3,gray);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);border-color:gray #808080 #595959;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover:hover,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected[disabled],.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected.disabled:hover[disabled]{background-color:gray}.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:hover.active{background-color:#666 \9}.datepicker table tr td.active,.datepicker table tr td.active:hover,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover{background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-ms-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(top,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active:hover,.datepicker table tr td.active:hover:hover,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active:active,.datepicker table tr td.active:hover:active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active[disabled],.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active.disabled:hover[disabled]{background-color:#04c}.datepicker table tr td.active:active,.datepicker table tr td.active:hover:active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:hover.active{background-color:#039 \9}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active:hover,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover{background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-ms-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(top,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover:hover,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active[disabled],.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active.disabled:hover[disabled]{background-color:#04c}.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:hover.active{background-color:#039 \9}.datepicker table tr td span.old,.datepicker table tr td span.new{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker thead tr:first-child th,.datepicker tfoot tr th{cursor:pointer}.datepicker thead tr:first-child th:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.datepicker thead tr:first-child .cw{cursor:default;background-color:transparent}.input-append.date .add-on,.input-prepend.date .add-on{cursor:pointer}.input-append.date .add-on i,.input-prepend.date .add-on i{margin-top:3px}.input-daterange input{text-align:center}.input-daterange input:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-daterange input:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-daterange .add-on{display:inline-block;width:auto;min-width:16px;height:18px;padding:4px 5px;font-weight:400;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc;margin-left:-5px;margin-right:-5px}
|
skin/frontend/base/default/css/Clx/bootstrap.min.css
ADDED
|
@@ -0,0 +1,6291 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*!
|
| 2 |
+
* Bootstrap v3.2.0 (http://getbootstrap.com)
|
| 3 |
+
* Copyright 2011-2014 Twitter, Inc.
|
| 4 |
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
| 5 |
+
*/
|
| 6 |
+
/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
|
| 7 |
+
|
| 8 |
+
html {
|
| 9 |
+
font-family: sans-serif;
|
| 10 |
+
-webkit-text-size-adjust: 100%;
|
| 11 |
+
-ms-text-size-adjust: 100%
|
| 12 |
+
}
|
| 13 |
+
body {
|
| 14 |
+
margin: 0
|
| 15 |
+
}
|
| 16 |
+
article,
|
| 17 |
+
aside,
|
| 18 |
+
details,
|
| 19 |
+
figcaption,
|
| 20 |
+
figure,
|
| 21 |
+
footer,
|
| 22 |
+
header,
|
| 23 |
+
hgroup,
|
| 24 |
+
main,
|
| 25 |
+
nav,
|
| 26 |
+
section,
|
| 27 |
+
summary {
|
| 28 |
+
display: block
|
| 29 |
+
}
|
| 30 |
+
audio,
|
| 31 |
+
canvas,
|
| 32 |
+
progress,
|
| 33 |
+
video {
|
| 34 |
+
display: inline-block;
|
| 35 |
+
vertical-align: baseline
|
| 36 |
+
}
|
| 37 |
+
audio:not([controls]) {
|
| 38 |
+
display: none;
|
| 39 |
+
height: 0
|
| 40 |
+
}
|
| 41 |
+
[hidden],
|
| 42 |
+
template {
|
| 43 |
+
display: none
|
| 44 |
+
}
|
| 45 |
+
a {
|
| 46 |
+
background: 0 0
|
| 47 |
+
}
|
| 48 |
+
a:active,
|
| 49 |
+
a:hover {
|
| 50 |
+
outline: 0
|
| 51 |
+
}
|
| 52 |
+
abbr[title] {
|
| 53 |
+
border-bottom: 1px dotted
|
| 54 |
+
}
|
| 55 |
+
b,
|
| 56 |
+
strong {
|
| 57 |
+
font-weight: 700
|
| 58 |
+
}
|
| 59 |
+
dfn {
|
| 60 |
+
font-style: italic
|
| 61 |
+
}
|
| 62 |
+
h1 {
|
| 63 |
+
margin: .67em 0;
|
| 64 |
+
font-size: 2em
|
| 65 |
+
}
|
| 66 |
+
mark {
|
| 67 |
+
color: #000;
|
| 68 |
+
background: #ff0
|
| 69 |
+
}
|
| 70 |
+
small {
|
| 71 |
+
font-size: 80%
|
| 72 |
+
}
|
| 73 |
+
sub,
|
| 74 |
+
sup {
|
| 75 |
+
position: relative;
|
| 76 |
+
font-size: 75%;
|
| 77 |
+
line-height: 0;
|
| 78 |
+
vertical-align: baseline
|
| 79 |
+
}
|
| 80 |
+
sup {
|
| 81 |
+
top: -.5em
|
| 82 |
+
}
|
| 83 |
+
sub {
|
| 84 |
+
bottom: -.25em
|
| 85 |
+
}
|
| 86 |
+
img {
|
| 87 |
+
border: 0
|
| 88 |
+
}
|
| 89 |
+
svg:not(:root) {
|
| 90 |
+
overflow: hidden
|
| 91 |
+
}
|
| 92 |
+
figure {
|
| 93 |
+
margin: 1em 40px
|
| 94 |
+
}
|
| 95 |
+
hr {
|
| 96 |
+
height: 0;
|
| 97 |
+
-webkit-box-sizing: content-box;
|
| 98 |
+
-moz-box-sizing: content-box;
|
| 99 |
+
box-sizing: content-box
|
| 100 |
+
}
|
| 101 |
+
pre {
|
| 102 |
+
overflow: auto
|
| 103 |
+
}
|
| 104 |
+
code,
|
| 105 |
+
kbd,
|
| 106 |
+
pre,
|
| 107 |
+
samp {
|
| 108 |
+
font-family: monospace, monospace;
|
| 109 |
+
font-size: 1em
|
| 110 |
+
}
|
| 111 |
+
button,
|
| 112 |
+
input,
|
| 113 |
+
optgroup,
|
| 114 |
+
select,
|
| 115 |
+
textarea {
|
| 116 |
+
margin: 0;
|
| 117 |
+
font: inherit;
|
| 118 |
+
color: inherit
|
| 119 |
+
}
|
| 120 |
+
button {
|
| 121 |
+
overflow: visible
|
| 122 |
+
}
|
| 123 |
+
button,
|
| 124 |
+
select {
|
| 125 |
+
text-transform: none
|
| 126 |
+
}
|
| 127 |
+
button,
|
| 128 |
+
html input[type=button],
|
| 129 |
+
input[type=reset],
|
| 130 |
+
input[type=submit] {
|
| 131 |
+
-webkit-appearance: button;
|
| 132 |
+
cursor: pointer
|
| 133 |
+
}
|
| 134 |
+
button[disabled],
|
| 135 |
+
html input[disabled] {
|
| 136 |
+
cursor: default
|
| 137 |
+
}
|
| 138 |
+
button::-moz-focus-inner,
|
| 139 |
+
input::-moz-focus-inner {
|
| 140 |
+
padding: 0;
|
| 141 |
+
border: 0
|
| 142 |
+
}
|
| 143 |
+
input {
|
| 144 |
+
line-height: normal
|
| 145 |
+
}
|
| 146 |
+
input[type=checkbox],
|
| 147 |
+
input[type=radio] {
|
| 148 |
+
-webkit-box-sizing: border-box;
|
| 149 |
+
-moz-box-sizing: border-box;
|
| 150 |
+
box-sizing: border-box;
|
| 151 |
+
padding: 0
|
| 152 |
+
}
|
| 153 |
+
input[type=number]::-webkit-inner-spin-button,
|
| 154 |
+
input[type=number]::-webkit-outer-spin-button {
|
| 155 |
+
height: auto
|
| 156 |
+
}
|
| 157 |
+
input[type=search] {
|
| 158 |
+
-webkit-box-sizing: content-box;
|
| 159 |
+
-moz-box-sizing: content-box;
|
| 160 |
+
box-sizing: content-box;
|
| 161 |
+
-webkit-appearance: textfield
|
| 162 |
+
}
|
| 163 |
+
input[type=search]::-webkit-search-cancel-button,
|
| 164 |
+
input[type=search]::-webkit-search-decoration {
|
| 165 |
+
-webkit-appearance: none
|
| 166 |
+
}
|
| 167 |
+
fieldset {
|
| 168 |
+
padding: .35em .625em .75em;
|
| 169 |
+
margin: 0 2px;
|
| 170 |
+
border: 1px solid silver
|
| 171 |
+
}
|
| 172 |
+
legend {
|
| 173 |
+
padding: 0;
|
| 174 |
+
border: 0
|
| 175 |
+
}
|
| 176 |
+
textarea {
|
| 177 |
+
overflow: auto
|
| 178 |
+
}
|
| 179 |
+
optgroup {
|
| 180 |
+
font-weight: 700
|
| 181 |
+
}
|
| 182 |
+
table {
|
| 183 |
+
border-spacing: 0;
|
| 184 |
+
border-collapse: collapse
|
| 185 |
+
}
|
| 186 |
+
td,
|
| 187 |
+
th {
|
| 188 |
+
padding: 0
|
| 189 |
+
}
|
| 190 |
+
@media print {
|
| 191 |
+
* {
|
| 192 |
+
color: #000!important;
|
| 193 |
+
text-shadow: none!important;
|
| 194 |
+
background: transparent!important;
|
| 195 |
+
-webkit-box-shadow: none!important;
|
| 196 |
+
box-shadow: none!important
|
| 197 |
+
}
|
| 198 |
+
a,
|
| 199 |
+
a:visited {
|
| 200 |
+
text-decoration: underline
|
| 201 |
+
}
|
| 202 |
+
a[href]:after {
|
| 203 |
+
content: " (" attr(href) ")"
|
| 204 |
+
}
|
| 205 |
+
abbr[title]:after {
|
| 206 |
+
content: " (" attr(title) ")"
|
| 207 |
+
}
|
| 208 |
+
a[href^="javascript:"]:after,
|
| 209 |
+
a[href^="#"]:after {
|
| 210 |
+
content: ""
|
| 211 |
+
}
|
| 212 |
+
pre,
|
| 213 |
+
blockquote {
|
| 214 |
+
border: 1px solid #999;
|
| 215 |
+
page-break-inside: avoid
|
| 216 |
+
}
|
| 217 |
+
thead {
|
| 218 |
+
display: table-header-group
|
| 219 |
+
}
|
| 220 |
+
tr,
|
| 221 |
+
img {
|
| 222 |
+
page-break-inside: avoid
|
| 223 |
+
}
|
| 224 |
+
img {
|
| 225 |
+
max-width: 100%!important
|
| 226 |
+
}
|
| 227 |
+
p,
|
| 228 |
+
h2,
|
| 229 |
+
h3 {
|
| 230 |
+
orphans: 3;
|
| 231 |
+
widows: 3
|
| 232 |
+
}
|
| 233 |
+
h2,
|
| 234 |
+
h3 {
|
| 235 |
+
page-break-after: avoid
|
| 236 |
+
}
|
| 237 |
+
select {
|
| 238 |
+
background: #fff!important
|
| 239 |
+
}
|
| 240 |
+
.navbar {
|
| 241 |
+
display: none
|
| 242 |
+
}
|
| 243 |
+
.table td,
|
| 244 |
+
.table th {
|
| 245 |
+
background-color: #fff!important
|
| 246 |
+
}
|
| 247 |
+
.btn>.caret,
|
| 248 |
+
.dropup>.btn>.caret {
|
| 249 |
+
border-top-color: #000!important
|
| 250 |
+
}
|
| 251 |
+
.label {
|
| 252 |
+
border: 1px solid #000
|
| 253 |
+
}
|
| 254 |
+
.table {
|
| 255 |
+
border-collapse: collapse!important
|
| 256 |
+
}
|
| 257 |
+
.table-bordered th,
|
| 258 |
+
.table-bordered td {
|
| 259 |
+
border: 1px solid #ddd!important
|
| 260 |
+
}
|
| 261 |
+
}
|
| 262 |
+
@font-face {
|
| 263 |
+
font-family: 'Glyphicons Halflings';
|
| 264 |
+
src: url(../css/glyphicons-halflings-regular.eot);
|
| 265 |
+
src: url(../css/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'), url(../css/glyphicons-halflings-regular.woff) format('woff'), url(../css/glyphicons-halflings-regular.ttf) format('truetype'), url(../css/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')
|
| 266 |
+
}
|
| 267 |
+
.glyphicon {
|
| 268 |
+
position: relative;
|
| 269 |
+
top: 1px;
|
| 270 |
+
display: inline-block;
|
| 271 |
+
font-family: 'Glyphicons Halflings';
|
| 272 |
+
font-style: normal;
|
| 273 |
+
font-weight: 400;
|
| 274 |
+
line-height: 1;
|
| 275 |
+
-webkit-font-smoothing: antialiased;
|
| 276 |
+
-moz-osx-font-smoothing: grayscale
|
| 277 |
+
}
|
| 278 |
+
.glyphicon-asterisk:before {
|
| 279 |
+
content: "\2a"
|
| 280 |
+
}
|
| 281 |
+
.glyphicon-plus:before {
|
| 282 |
+
content: "\2b"
|
| 283 |
+
}
|
| 284 |
+
.glyphicon-euro:before {
|
| 285 |
+
content: "\20ac"
|
| 286 |
+
}
|
| 287 |
+
.glyphicon-minus:before {
|
| 288 |
+
content: "\2212"
|
| 289 |
+
}
|
| 290 |
+
.glyphicon-cloud:before {
|
| 291 |
+
content: "\2601"
|
| 292 |
+
}
|
| 293 |
+
.glyphicon-envelope:before {
|
| 294 |
+
content: "\2709"
|
| 295 |
+
}
|
| 296 |
+
.glyphicon-pencil:before {
|
| 297 |
+
content: "\270f"
|
| 298 |
+
}
|
| 299 |
+
.glyphicon-glass:before {
|
| 300 |
+
content: "\e001"
|
| 301 |
+
}
|
| 302 |
+
.glyphicon-music:before {
|
| 303 |
+
content: "\e002"
|
| 304 |
+
}
|
| 305 |
+
.glyphicon-search:before {
|
| 306 |
+
content: "\e003"
|
| 307 |
+
}
|
| 308 |
+
.glyphicon-heart:before {
|
| 309 |
+
content: "\e005"
|
| 310 |
+
}
|
| 311 |
+
.glyphicon-star:before {
|
| 312 |
+
content: "\e006"
|
| 313 |
+
}
|
| 314 |
+
.glyphicon-star-empty:before {
|
| 315 |
+
content: "\e007"
|
| 316 |
+
}
|
| 317 |
+
.glyphicon-user:before {
|
| 318 |
+
content: "\e008"
|
| 319 |
+
}
|
| 320 |
+
.glyphicon-film:before {
|
| 321 |
+
content: "\e009"
|
| 322 |
+
}
|
| 323 |
+
.glyphicon-th-large:before {
|
| 324 |
+
content: "\e010"
|
| 325 |
+
}
|
| 326 |
+
.glyphicon-th:before {
|
| 327 |
+
content: "\e011"
|
| 328 |
+
}
|
| 329 |
+
.glyphicon-th-list:before {
|
| 330 |
+
content: "\e012"
|
| 331 |
+
}
|
| 332 |
+
.glyphicon-ok:before {
|
| 333 |
+
content: "\e013"
|
| 334 |
+
}
|
| 335 |
+
.glyphicon-remove:before {
|
| 336 |
+
content: "\e014"
|
| 337 |
+
}
|
| 338 |
+
.glyphicon-zoom-in:before {
|
| 339 |
+
content: "\e015"
|
| 340 |
+
}
|
| 341 |
+
.glyphicon-zoom-out:before {
|
| 342 |
+
content: "\e016"
|
| 343 |
+
}
|
| 344 |
+
.glyphicon-off:before {
|
| 345 |
+
content: "\e017"
|
| 346 |
+
}
|
| 347 |
+
.glyphicon-signal:before {
|
| 348 |
+
content: "\e018"
|
| 349 |
+
}
|
| 350 |
+
.glyphicon-cog:before {
|
| 351 |
+
content: "\e019"
|
| 352 |
+
}
|
| 353 |
+
.glyphicon-trash:before {
|
| 354 |
+
content: "\e020"
|
| 355 |
+
}
|
| 356 |
+
.glyphicon-home:before {
|
| 357 |
+
content: "\e021"
|
| 358 |
+
}
|
| 359 |
+
.glyphicon-file:before {
|
| 360 |
+
content: "\e022"
|
| 361 |
+
}
|
| 362 |
+
.glyphicon-time:before {
|
| 363 |
+
content: "\e023"
|
| 364 |
+
}
|
| 365 |
+
.glyphicon-road:before {
|
| 366 |
+
content: "\e024"
|
| 367 |
+
}
|
| 368 |
+
.glyphicon-download-alt:before {
|
| 369 |
+
content: "\e025"
|
| 370 |
+
}
|
| 371 |
+
.glyphicon-download:before {
|
| 372 |
+
content: "\e026"
|
| 373 |
+
}
|
| 374 |
+
.glyphicon-upload:before {
|
| 375 |
+
content: "\e027"
|
| 376 |
+
}
|
| 377 |
+
.glyphicon-inbox:before {
|
| 378 |
+
content: "\e028"
|
| 379 |
+
}
|
| 380 |
+
.glyphicon-play-circle:before {
|
| 381 |
+
content: "\e029"
|
| 382 |
+
}
|
| 383 |
+
.glyphicon-repeat:before {
|
| 384 |
+
content: "\e030"
|
| 385 |
+
}
|
| 386 |
+
.glyphicon-refresh:before {
|
| 387 |
+
content: "\e031"
|
| 388 |
+
}
|
| 389 |
+
.glyphicon-list-alt:before {
|
| 390 |
+
content: "\e032"
|
| 391 |
+
}
|
| 392 |
+
.glyphicon-lock:before {
|
| 393 |
+
content: "\e033"
|
| 394 |
+
}
|
| 395 |
+
.glyphicon-flag:before {
|
| 396 |
+
content: "\e034"
|
| 397 |
+
}
|
| 398 |
+
.glyphicon-headphones:before {
|
| 399 |
+
content: "\e035"
|
| 400 |
+
}
|
| 401 |
+
.glyphicon-volume-off:before {
|
| 402 |
+
content: "\e036"
|
| 403 |
+
}
|
| 404 |
+
.glyphicon-volume-down:before {
|
| 405 |
+
content: "\e037"
|
| 406 |
+
}
|
| 407 |
+
.glyphicon-volume-up:before {
|
| 408 |
+
content: "\e038"
|
| 409 |
+
}
|
| 410 |
+
.glyphicon-qrcode:before {
|
| 411 |
+
content: "\e039"
|
| 412 |
+
}
|
| 413 |
+
.glyphicon-barcode:before {
|
| 414 |
+
content: "\e040"
|
| 415 |
+
}
|
| 416 |
+
.glyphicon-tag:before {
|
| 417 |
+
content: "\e041"
|
| 418 |
+
}
|
| 419 |
+
.glyphicon-tags:before {
|
| 420 |
+
content: "\e042"
|
| 421 |
+
}
|
| 422 |
+
.glyphicon-book:before {
|
| 423 |
+
content: "\e043"
|
| 424 |
+
}
|
| 425 |
+
.glyphicon-bookmark:before {
|
| 426 |
+
content: "\e044"
|
| 427 |
+
}
|
| 428 |
+
.glyphicon-print:before {
|
| 429 |
+
content: "\e045"
|
| 430 |
+
}
|
| 431 |
+
.glyphicon-camera:before {
|
| 432 |
+
content: "\e046"
|
| 433 |
+
}
|
| 434 |
+
.glyphicon-font:before {
|
| 435 |
+
content: "\e047"
|
| 436 |
+
}
|
| 437 |
+
.glyphicon-bold:before {
|
| 438 |
+
content: "\e048"
|
| 439 |
+
}
|
| 440 |
+
.glyphicon-italic:before {
|
| 441 |
+
content: "\e049"
|
| 442 |
+
}
|
| 443 |
+
.glyphicon-text-height:before {
|
| 444 |
+
content: "\e050"
|
| 445 |
+
}
|
| 446 |
+
.glyphicon-text-width:before {
|
| 447 |
+
content: "\e051"
|
| 448 |
+
}
|
| 449 |
+
.glyphicon-align-left:before {
|
| 450 |
+
content: "\e052"
|
| 451 |
+
}
|
| 452 |
+
.glyphicon-align-center:before {
|
| 453 |
+
content: "\e053"
|
| 454 |
+
}
|
| 455 |
+
.glyphicon-align-right:before {
|
| 456 |
+
content: "\e054"
|
| 457 |
+
}
|
| 458 |
+
.glyphicon-align-justify:before {
|
| 459 |
+
content: "\e055"
|
| 460 |
+
}
|
| 461 |
+
.glyphicon-list:before {
|
| 462 |
+
content: "\e056"
|
| 463 |
+
}
|
| 464 |
+
.glyphicon-indent-left:before {
|
| 465 |
+
content: "\e057"
|
| 466 |
+
}
|
| 467 |
+
.glyphicon-indent-right:before {
|
| 468 |
+
content: "\e058"
|
| 469 |
+
}
|
| 470 |
+
.glyphicon-facetime-video:before {
|
| 471 |
+
content: "\e059"
|
| 472 |
+
}
|
| 473 |
+
.glyphicon-picture:before {
|
| 474 |
+
content: "\e060"
|
| 475 |
+
}
|
| 476 |
+
.glyphicon-map-marker:before {
|
| 477 |
+
content: "\e062"
|
| 478 |
+
}
|
| 479 |
+
.glyphicon-adjust:before {
|
| 480 |
+
content: "\e063"
|
| 481 |
+
}
|
| 482 |
+
.glyphicon-tint:before {
|
| 483 |
+
content: "\e064"
|
| 484 |
+
}
|
| 485 |
+
.glyphicon-edit:before {
|
| 486 |
+
content: "\e065"
|
| 487 |
+
}
|
| 488 |
+
.glyphicon-share:before {
|
| 489 |
+
content: "\e066"
|
| 490 |
+
}
|
| 491 |
+
.glyphicon-check:before {
|
| 492 |
+
content: "\e067"
|
| 493 |
+
}
|
| 494 |
+
.glyphicon-move:before {
|
| 495 |
+
content: "\e068"
|
| 496 |
+
}
|
| 497 |
+
.glyphicon-step-backward:before {
|
| 498 |
+
content: "\e069"
|
| 499 |
+
}
|
| 500 |
+
.glyphicon-fast-backward:before {
|
| 501 |
+
content: "\e070"
|
| 502 |
+
}
|
| 503 |
+
.glyphicon-backward:before {
|
| 504 |
+
content: "\e071"
|
| 505 |
+
}
|
| 506 |
+
.glyphicon-play:before {
|
| 507 |
+
content: "\e072"
|
| 508 |
+
}
|
| 509 |
+
.glyphicon-pause:before {
|
| 510 |
+
content: "\e073"
|
| 511 |
+
}
|
| 512 |
+
.glyphicon-stop:before {
|
| 513 |
+
content: "\e074"
|
| 514 |
+
}
|
| 515 |
+
.glyphicon-forward:before {
|
| 516 |
+
content: "\e075"
|
| 517 |
+
}
|
| 518 |
+
.glyphicon-fast-forward:before {
|
| 519 |
+
content: "\e076"
|
| 520 |
+
}
|
| 521 |
+
.glyphicon-step-forward:before {
|
| 522 |
+
content: "\e077"
|
| 523 |
+
}
|
| 524 |
+
.glyphicon-eject:before {
|
| 525 |
+
content: "\e078"
|
| 526 |
+
}
|
| 527 |
+
.glyphicon-chevron-left:before {
|
| 528 |
+
content: "\e079"
|
| 529 |
+
}
|
| 530 |
+
.glyphicon-chevron-right:before {
|
| 531 |
+
content: "\e080"
|
| 532 |
+
}
|
| 533 |
+
.glyphicon-plus-sign:before {
|
| 534 |
+
content: "\e081"
|
| 535 |
+
}
|
| 536 |
+
.glyphicon-minus-sign:before {
|
| 537 |
+
content: "\e082"
|
| 538 |
+
}
|
| 539 |
+
.glyphicon-remove-sign:before {
|
| 540 |
+
content: "\e083"
|
| 541 |
+
}
|
| 542 |
+
.glyphicon-ok-sign:before {
|
| 543 |
+
content: "\e084"
|
| 544 |
+
}
|
| 545 |
+
.glyphicon-question-sign:before {
|
| 546 |
+
content: "\e085"
|
| 547 |
+
}
|
| 548 |
+
.glyphicon-info-sign:before {
|
| 549 |
+
content: "\e086"
|
| 550 |
+
}
|
| 551 |
+
.glyphicon-screenshot:before {
|
| 552 |
+
content: "\e087"
|
| 553 |
+
}
|
| 554 |
+
.glyphicon-remove-circle:before {
|
| 555 |
+
content: "\e088"
|
| 556 |
+
}
|
| 557 |
+
.glyphicon-ok-circle:before {
|
| 558 |
+
content: "\e089"
|
| 559 |
+
}
|
| 560 |
+
.glyphicon-ban-circle:before {
|
| 561 |
+
content: "\e090"
|
| 562 |
+
}
|
| 563 |
+
.glyphicon-arrow-left:before {
|
| 564 |
+
content: "\e091"
|
| 565 |
+
}
|
| 566 |
+
.glyphicon-arrow-right:before {
|
| 567 |
+
content: "\e092"
|
| 568 |
+
}
|
| 569 |
+
.glyphicon-arrow-up:before {
|
| 570 |
+
content: "\e093"
|
| 571 |
+
}
|
| 572 |
+
.glyphicon-arrow-down:before {
|
| 573 |
+
content: "\e094"
|
| 574 |
+
}
|
| 575 |
+
.glyphicon-share-alt:before {
|
| 576 |
+
content: "\e095"
|
| 577 |
+
}
|
| 578 |
+
.glyphicon-resize-full:before {
|
| 579 |
+
content: "\e096"
|
| 580 |
+
}
|
| 581 |
+
.glyphicon-resize-small:before {
|
| 582 |
+
content: "\e097"
|
| 583 |
+
}
|
| 584 |
+
.glyphicon-exclamation-sign:before {
|
| 585 |
+
content: "\e101"
|
| 586 |
+
}
|
| 587 |
+
.glyphicon-gift:before {
|
| 588 |
+
content: "\e102"
|
| 589 |
+
}
|
| 590 |
+
.glyphicon-leaf:before {
|
| 591 |
+
content: "\e103"
|
| 592 |
+
}
|
| 593 |
+
.glyphicon-fire:before {
|
| 594 |
+
content: "\e104"
|
| 595 |
+
}
|
| 596 |
+
.glyphicon-eye-open:before {
|
| 597 |
+
content: "\e105"
|
| 598 |
+
}
|
| 599 |
+
.glyphicon-eye-close:before {
|
| 600 |
+
content: "\e106"
|
| 601 |
+
}
|
| 602 |
+
.glyphicon-warning-sign:before {
|
| 603 |
+
content: "\e107"
|
| 604 |
+
}
|
| 605 |
+
.glyphicon-plane:before {
|
| 606 |
+
content: "\e108"
|
| 607 |
+
}
|
| 608 |
+
.glyphicon-calendar:before {
|
| 609 |
+
content: "\e109"
|
| 610 |
+
}
|
| 611 |
+
.glyphicon-random:before {
|
| 612 |
+
content: "\e110"
|
| 613 |
+
}
|
| 614 |
+
.glyphicon-comment:before {
|
| 615 |
+
content: "\e111"
|
| 616 |
+
}
|
| 617 |
+
.glyphicon-magnet:before {
|
| 618 |
+
content: "\e112"
|
| 619 |
+
}
|
| 620 |
+
.glyphicon-chevron-up:before {
|
| 621 |
+
content: "\e113"
|
| 622 |
+
}
|
| 623 |
+
.glyphicon-chevron-down:before {
|
| 624 |
+
content: "\e114"
|
| 625 |
+
}
|
| 626 |
+
.glyphicon-retweet:before {
|
| 627 |
+
content: "\e115"
|
| 628 |
+
}
|
| 629 |
+
.glyphicon-shopping-cart:before {
|
| 630 |
+
content: "\e116"
|
| 631 |
+
}
|
| 632 |
+
.glyphicon-folder-close:before {
|
| 633 |
+
content: "\e117"
|
| 634 |
+
}
|
| 635 |
+
.glyphicon-folder-open:before {
|
| 636 |
+
content: "\e118"
|
| 637 |
+
}
|
| 638 |
+
.glyphicon-resize-vertical:before {
|
| 639 |
+
content: "\e119"
|
| 640 |
+
}
|
| 641 |
+
.glyphicon-resize-horizontal:before {
|
| 642 |
+
content: "\e120"
|
| 643 |
+
}
|
| 644 |
+
.glyphicon-hdd:before {
|
| 645 |
+
content: "\e121"
|
| 646 |
+
}
|
| 647 |
+
.glyphicon-bullhorn:before {
|
| 648 |
+
content: "\e122"
|
| 649 |
+
}
|
| 650 |
+
.glyphicon-bell:before {
|
| 651 |
+
content: "\e123"
|
| 652 |
+
}
|
| 653 |
+
.glyphicon-certificate:before {
|
| 654 |
+
content: "\e124"
|
| 655 |
+
}
|
| 656 |
+
.glyphicon-thumbs-up:before {
|
| 657 |
+
content: "\e125"
|
| 658 |
+
}
|
| 659 |
+
.glyphicon-thumbs-down:before {
|
| 660 |
+
content: "\e126"
|
| 661 |
+
}
|
| 662 |
+
.glyphicon-hand-right:before {
|
| 663 |
+
content: "\e127"
|
| 664 |
+
}
|
| 665 |
+
.glyphicon-hand-left:before {
|
| 666 |
+
content: "\e128"
|
| 667 |
+
}
|
| 668 |
+
.glyphicon-hand-up:before {
|
| 669 |
+
content: "\e129"
|
| 670 |
+
}
|
| 671 |
+
.glyphicon-hand-down:before {
|
| 672 |
+
content: "\e130"
|
| 673 |
+
}
|
| 674 |
+
.glyphicon-circle-arrow-right:before {
|
| 675 |
+
content: "\e131"
|
| 676 |
+
}
|
| 677 |
+
.glyphicon-circle-arrow-left:before {
|
| 678 |
+
content: "\e132"
|
| 679 |
+
}
|
| 680 |
+
.glyphicon-circle-arrow-up:before {
|
| 681 |
+
content: "\e133"
|
| 682 |
+
}
|
| 683 |
+
.glyphicon-circle-arrow-down:before {
|
| 684 |
+
content: "\e134"
|
| 685 |
+
}
|
| 686 |
+
.glyphicon-globe:before {
|
| 687 |
+
content: "\e135"
|
| 688 |
+
}
|
| 689 |
+
.glyphicon-wrench:before {
|
| 690 |
+
content: "\e136"
|
| 691 |
+
}
|
| 692 |
+
.glyphicon-tasks:before {
|
| 693 |
+
content: "\e137"
|
| 694 |
+
}
|
| 695 |
+
.glyphicon-filter:before {
|
| 696 |
+
content: "\e138"
|
| 697 |
+
}
|
| 698 |
+
.glyphicon-briefcase:before {
|
| 699 |
+
content: "\e139"
|
| 700 |
+
}
|
| 701 |
+
.glyphicon-fullscreen:before {
|
| 702 |
+
content: "\e140"
|
| 703 |
+
}
|
| 704 |
+
.glyphicon-dashboard:before {
|
| 705 |
+
content: "\e141"
|
| 706 |
+
}
|
| 707 |
+
.glyphicon-paperclip:before {
|
| 708 |
+
content: "\e142"
|
| 709 |
+
}
|
| 710 |
+
.glyphicon-heart-empty:before {
|
| 711 |
+
content: "\e143"
|
| 712 |
+
}
|
| 713 |
+
.glyphicon-link:before {
|
| 714 |
+
content: "\e144"
|
| 715 |
+
}
|
| 716 |
+
.glyphicon-phone:before {
|
| 717 |
+
content: "\e145"
|
| 718 |
+
}
|
| 719 |
+
.glyphicon-pushpin:before {
|
| 720 |
+
content: "\e146"
|
| 721 |
+
}
|
| 722 |
+
.glyphicon-usd:before {
|
| 723 |
+
content: "\e148"
|
| 724 |
+
}
|
| 725 |
+
.glyphicon-gbp:before {
|
| 726 |
+
content: "\e149"
|
| 727 |
+
}
|
| 728 |
+
.glyphicon-sort:before {
|
| 729 |
+
content: "\e150"
|
| 730 |
+
}
|
| 731 |
+
.glyphicon-sort-by-alphabet:before {
|
| 732 |
+
content: "\e151"
|
| 733 |
+
}
|
| 734 |
+
.glyphicon-sort-by-alphabet-alt:before {
|
| 735 |
+
content: "\e152"
|
| 736 |
+
}
|
| 737 |
+
.glyphicon-sort-by-order:before {
|
| 738 |
+
content: "\e153"
|
| 739 |
+
}
|
| 740 |
+
.glyphicon-sort-by-order-alt:before {
|
| 741 |
+
content: "\e154"
|
| 742 |
+
}
|
| 743 |
+
.glyphicon-sort-by-attributes:before {
|
| 744 |
+
content: "\e155"
|
| 745 |
+
}
|
| 746 |
+
.glyphicon-sort-by-attributes-alt:before {
|
| 747 |
+
content: "\e156"
|
| 748 |
+
}
|
| 749 |
+
.glyphicon-unchecked:before {
|
| 750 |
+
content: "\e157"
|
| 751 |
+
}
|
| 752 |
+
.glyphicon-expand:before {
|
| 753 |
+
content: "\e158"
|
| 754 |
+
}
|
| 755 |
+
.glyphicon-collapse-down:before {
|
| 756 |
+
content: "\e159"
|
| 757 |
+
}
|
| 758 |
+
.glyphicon-collapse-up:before {
|
| 759 |
+
content: "\e160"
|
| 760 |
+
}
|
| 761 |
+
.glyphicon-log-in:before {
|
| 762 |
+
content: "\e161"
|
| 763 |
+
}
|
| 764 |
+
.glyphicon-flash:before {
|
| 765 |
+
content: "\e162"
|
| 766 |
+
}
|
| 767 |
+
.glyphicon-log-out:before {
|
| 768 |
+
content: "\e163"
|
| 769 |
+
}
|
| 770 |
+
.glyphicon-new-window:before {
|
| 771 |
+
content: "\e164"
|
| 772 |
+
}
|
| 773 |
+
.glyphicon-record:before {
|
| 774 |
+
content: "\e165"
|
| 775 |
+
}
|
| 776 |
+
.glyphicon-save:before {
|
| 777 |
+
content: "\e166"
|
| 778 |
+
}
|
| 779 |
+
.glyphicon-open:before {
|
| 780 |
+
content: "\e167"
|
| 781 |
+
}
|
| 782 |
+
.glyphicon-saved:before {
|
| 783 |
+
content: "\e168"
|
| 784 |
+
}
|
| 785 |
+
.glyphicon-import:before {
|
| 786 |
+
content: "\e169"
|
| 787 |
+
}
|
| 788 |
+
.glyphicon-export:before {
|
| 789 |
+
content: "\e170"
|
| 790 |
+
}
|
| 791 |
+
.glyphicon-send:before {
|
| 792 |
+
content: "\e171"
|
| 793 |
+
}
|
| 794 |
+
.glyphicon-floppy-disk:before {
|
| 795 |
+
content: "\e172"
|
| 796 |
+
}
|
| 797 |
+
.glyphicon-floppy-saved:before {
|
| 798 |
+
content: "\e173"
|
| 799 |
+
}
|
| 800 |
+
.glyphicon-floppy-remove:before {
|
| 801 |
+
content: "\e174"
|
| 802 |
+
}
|
| 803 |
+
.glyphicon-floppy-save:before {
|
| 804 |
+
content: "\e175"
|
| 805 |
+
}
|
| 806 |
+
.glyphicon-floppy-open:before {
|
| 807 |
+
content: "\e176"
|
| 808 |
+
}
|
| 809 |
+
.glyphicon-credit-card:before {
|
| 810 |
+
content: "\e177"
|
| 811 |
+
}
|
| 812 |
+
.glyphicon-transfer:before {
|
| 813 |
+
content: "\e178"
|
| 814 |
+
}
|
| 815 |
+
.glyphicon-cutlery:before {
|
| 816 |
+
content: "\e179"
|
| 817 |
+
}
|
| 818 |
+
.glyphicon-header:before {
|
| 819 |
+
content: "\e180"
|
| 820 |
+
}
|
| 821 |
+
.glyphicon-compressed:before {
|
| 822 |
+
content: "\e181"
|
| 823 |
+
}
|
| 824 |
+
.glyphicon-earphone:before {
|
| 825 |
+
content: "\e182"
|
| 826 |
+
}
|
| 827 |
+
.glyphicon-phone-alt:before {
|
| 828 |
+
content: "\e183"
|
| 829 |
+
}
|
| 830 |
+
.glyphicon-tower:before {
|
| 831 |
+
content: "\e184"
|
| 832 |
+
}
|
| 833 |
+
.glyphicon-stats:before {
|
| 834 |
+
content: "\e185"
|
| 835 |
+
}
|
| 836 |
+
.glyphicon-sd-video:before {
|
| 837 |
+
content: "\e186"
|
| 838 |
+
}
|
| 839 |
+
.glyphicon-hd-video:before {
|
| 840 |
+
content: "\e187"
|
| 841 |
+
}
|
| 842 |
+
.glyphicon-subtitles:before {
|
| 843 |
+
content: "\e188"
|
| 844 |
+
}
|
| 845 |
+
.glyphicon-sound-stereo:before {
|
| 846 |
+
content: "\e189"
|
| 847 |
+
}
|
| 848 |
+
.glyphicon-sound-dolby:before {
|
| 849 |
+
content: "\e190"
|
| 850 |
+
}
|
| 851 |
+
.glyphicon-sound-5-1:before {
|
| 852 |
+
content: "\e191"
|
| 853 |
+
}
|
| 854 |
+
.glyphicon-sound-6-1:before {
|
| 855 |
+
content: "\e192"
|
| 856 |
+
}
|
| 857 |
+
.glyphicon-sound-7-1:before {
|
| 858 |
+
content: "\e193"
|
| 859 |
+
}
|
| 860 |
+
.glyphicon-copyright-mark:before {
|
| 861 |
+
content: "\e194"
|
| 862 |
+
}
|
| 863 |
+
.glyphicon-registration-mark:before {
|
| 864 |
+
content: "\e195"
|
| 865 |
+
}
|
| 866 |
+
.glyphicon-cloud-download:before {
|
| 867 |
+
content: "\e197"
|
| 868 |
+
}
|
| 869 |
+
.glyphicon-cloud-upload:before {
|
| 870 |
+
content: "\e198"
|
| 871 |
+
}
|
| 872 |
+
.glyphicon-tree-conifer:before {
|
| 873 |
+
content: "\e199"
|
| 874 |
+
}
|
| 875 |
+
.glyphicon-tree-deciduous:before {
|
| 876 |
+
content: "\e200"
|
| 877 |
+
}
|
| 878 |
+
* {
|
| 879 |
+
-webkit-box-sizing: border-box;
|
| 880 |
+
-moz-box-sizing: border-box;
|
| 881 |
+
box-sizing: border-box
|
| 882 |
+
}
|
| 883 |
+
:before,
|
| 884 |
+
:after {
|
| 885 |
+
-webkit-box-sizing: border-box;
|
| 886 |
+
-moz-box-sizing: border-box;
|
| 887 |
+
box-sizing: border-box
|
| 888 |
+
}
|
| 889 |
+
html {
|
| 890 |
+
font-size: 10px;
|
| 891 |
+
-webkit-tap-highlight-color: rgba(0, 0, 0, 0)
|
| 892 |
+
}
|
| 893 |
+
body {
|
| 894 |
+
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
| 895 |
+
font-size: 14px;
|
| 896 |
+
line-height: 1.42857143;
|
| 897 |
+
color: #333;
|
| 898 |
+
background-color: #fff
|
| 899 |
+
}
|
| 900 |
+
input,
|
| 901 |
+
button,
|
| 902 |
+
select,
|
| 903 |
+
textarea {
|
| 904 |
+
font-family: inherit;
|
| 905 |
+
font-size: inherit;
|
| 906 |
+
line-height: inherit
|
| 907 |
+
}
|
| 908 |
+
a {
|
| 909 |
+
color: #428bca;
|
| 910 |
+
text-decoration: none
|
| 911 |
+
}
|
| 912 |
+
a:hover,
|
| 913 |
+
a:focus {
|
| 914 |
+
color: #2a6496;
|
| 915 |
+
text-decoration: underline
|
| 916 |
+
}
|
| 917 |
+
a:focus {
|
| 918 |
+
outline: thin dotted;
|
| 919 |
+
outline: 5px auto -webkit-focus-ring-color;
|
| 920 |
+
outline-offset: -2px
|
| 921 |
+
}
|
| 922 |
+
figure {
|
| 923 |
+
margin: 0
|
| 924 |
+
}
|
| 925 |
+
img {
|
| 926 |
+
vertical-align: middle
|
| 927 |
+
}
|
| 928 |
+
.img-responsive,
|
| 929 |
+
.thumbnail>img,
|
| 930 |
+
.thumbnail a>img,
|
| 931 |
+
.carousel-inner>.item>img,
|
| 932 |
+
.carousel-inner>.item>a>img {
|
| 933 |
+
display: block;
|
| 934 |
+
width: 100% \9;
|
| 935 |
+
max-width: 100%;
|
| 936 |
+
height: auto
|
| 937 |
+
}
|
| 938 |
+
.img-rounded {
|
| 939 |
+
border-radius: 6px
|
| 940 |
+
}
|
| 941 |
+
.img-thumbnail {
|
| 942 |
+
display: inline-block;
|
| 943 |
+
width: 100% \9;
|
| 944 |
+
max-width: 100%;
|
| 945 |
+
height: auto;
|
| 946 |
+
padding: 4px;
|
| 947 |
+
line-height: 1.42857143;
|
| 948 |
+
background-color: #fff;
|
| 949 |
+
border: 1px solid #ddd;
|
| 950 |
+
border-radius: 4px;
|
| 951 |
+
-webkit-transition: all .2s ease-in-out;
|
| 952 |
+
-o-transition: all .2s ease-in-out;
|
| 953 |
+
transition: all .2s ease-in-out
|
| 954 |
+
}
|
| 955 |
+
.img-circle {
|
| 956 |
+
border-radius: 50%
|
| 957 |
+
}
|
| 958 |
+
hr {
|
| 959 |
+
margin-top: 20px;
|
| 960 |
+
margin-bottom: 20px;
|
| 961 |
+
border: 0;
|
| 962 |
+
border-top: 1px solid #eee
|
| 963 |
+
}
|
| 964 |
+
.sr-only {
|
| 965 |
+
position: absolute;
|
| 966 |
+
width: 1px;
|
| 967 |
+
height: 1px;
|
| 968 |
+
padding: 0;
|
| 969 |
+
margin: -1px;
|
| 970 |
+
overflow: hidden;
|
| 971 |
+
clip: rect(0, 0, 0, 0);
|
| 972 |
+
border: 0
|
| 973 |
+
}
|
| 974 |
+
.sr-only-focusable:active,
|
| 975 |
+
.sr-only-focusable:focus {
|
| 976 |
+
position: static;
|
| 977 |
+
width: auto;
|
| 978 |
+
height: auto;
|
| 979 |
+
margin: 0;
|
| 980 |
+
overflow: visible;
|
| 981 |
+
clip: auto
|
| 982 |
+
}
|
| 983 |
+
h1,
|
| 984 |
+
h2,
|
| 985 |
+
h3,
|
| 986 |
+
h4,
|
| 987 |
+
h5,
|
| 988 |
+
h6,
|
| 989 |
+
.h1,
|
| 990 |
+
.h2,
|
| 991 |
+
.h3,
|
| 992 |
+
.h4,
|
| 993 |
+
.h5,
|
| 994 |
+
.h6 {
|
| 995 |
+
font-family: inherit;
|
| 996 |
+
font-weight: 500;
|
| 997 |
+
line-height: 1.1;
|
| 998 |
+
color: inherit
|
| 999 |
+
}
|
| 1000 |
+
h1 small,
|
| 1001 |
+
h2 small,
|
| 1002 |
+
h3 small,
|
| 1003 |
+
h4 small,
|
| 1004 |
+
h5 small,
|
| 1005 |
+
h6 small,
|
| 1006 |
+
.h1 small,
|
| 1007 |
+
.h2 small,
|
| 1008 |
+
.h3 small,
|
| 1009 |
+
.h4 small,
|
| 1010 |
+
.h5 small,
|
| 1011 |
+
.h6 small,
|
| 1012 |
+
h1 .small,
|
| 1013 |
+
h2 .small,
|
| 1014 |
+
h3 .small,
|
| 1015 |
+
h4 .small,
|
| 1016 |
+
h5 .small,
|
| 1017 |
+
h6 .small,
|
| 1018 |
+
.h1 .small,
|
| 1019 |
+
.h2 .small,
|
| 1020 |
+
.h3 .small,
|
| 1021 |
+
.h4 .small,
|
| 1022 |
+
.h5 .small,
|
| 1023 |
+
.h6 .small {
|
| 1024 |
+
font-weight: 400;
|
| 1025 |
+
line-height: 1;
|
| 1026 |
+
color: #777
|
| 1027 |
+
}
|
| 1028 |
+
h1,
|
| 1029 |
+
.h1,
|
| 1030 |
+
h2,
|
| 1031 |
+
.h2,
|
| 1032 |
+
h3,
|
| 1033 |
+
.h3 {
|
| 1034 |
+
margin-top: 20px;
|
| 1035 |
+
margin-bottom: 10px
|
| 1036 |
+
}
|
| 1037 |
+
h1 small,
|
| 1038 |
+
.h1 small,
|
| 1039 |
+
h2 small,
|
| 1040 |
+
.h2 small,
|
| 1041 |
+
h3 small,
|
| 1042 |
+
.h3 small,
|
| 1043 |
+
h1 .small,
|
| 1044 |
+
.h1 .small,
|
| 1045 |
+
h2 .small,
|
| 1046 |
+
.h2 .small,
|
| 1047 |
+
h3 .small,
|
| 1048 |
+
.h3 .small {
|
| 1049 |
+
font-size: 65%
|
| 1050 |
+
}
|
| 1051 |
+
h4,
|
| 1052 |
+
.h4,
|
| 1053 |
+
h5,
|
| 1054 |
+
.h5,
|
| 1055 |
+
h6,
|
| 1056 |
+
.h6 {
|
| 1057 |
+
margin-top: 10px;
|
| 1058 |
+
margin-bottom: 10px
|
| 1059 |
+
}
|
| 1060 |
+
h4 small,
|
| 1061 |
+
.h4 small,
|
| 1062 |
+
h5 small,
|
| 1063 |
+
.h5 small,
|
| 1064 |
+
h6 small,
|
| 1065 |
+
.h6 small,
|
| 1066 |
+
h4 .small,
|
| 1067 |
+
.h4 .small,
|
| 1068 |
+
h5 .small,
|
| 1069 |
+
.h5 .small,
|
| 1070 |
+
h6 .small,
|
| 1071 |
+
.h6 .small {
|
| 1072 |
+
font-size: 75%
|
| 1073 |
+
}
|
| 1074 |
+
h1,
|
| 1075 |
+
.h1 {
|
| 1076 |
+
font-size: 36px
|
| 1077 |
+
}
|
| 1078 |
+
h2,
|
| 1079 |
+
.h2 {
|
| 1080 |
+
font-size: 30px
|
| 1081 |
+
}
|
| 1082 |
+
h3,
|
| 1083 |
+
.h3 {
|
| 1084 |
+
font-size: 24px
|
| 1085 |
+
}
|
| 1086 |
+
h4,
|
| 1087 |
+
.h4 {
|
| 1088 |
+
font-size: 18px
|
| 1089 |
+
}
|
| 1090 |
+
h5,
|
| 1091 |
+
.h5 {
|
| 1092 |
+
font-size: 14px
|
| 1093 |
+
}
|
| 1094 |
+
h6,
|
| 1095 |
+
.h6 {
|
| 1096 |
+
font-size: 12px
|
| 1097 |
+
}
|
| 1098 |
+
p {
|
| 1099 |
+
margin: 0 0 10px
|
| 1100 |
+
}
|
| 1101 |
+
.lead {
|
| 1102 |
+
margin-bottom: 20px;
|
| 1103 |
+
font-size: 16px;
|
| 1104 |
+
font-weight: 300;
|
| 1105 |
+
line-height: 1.4
|
| 1106 |
+
}
|
| 1107 |
+
@media (min-width: 768px) {
|
| 1108 |
+
.lead {
|
| 1109 |
+
font-size: 21px
|
| 1110 |
+
}
|
| 1111 |
+
}
|
| 1112 |
+
small,
|
| 1113 |
+
.small {
|
| 1114 |
+
font-size: 85%
|
| 1115 |
+
}
|
| 1116 |
+
cite {
|
| 1117 |
+
font-style: normal
|
| 1118 |
+
}
|
| 1119 |
+
mark,
|
| 1120 |
+
.mark {
|
| 1121 |
+
padding: .2em;
|
| 1122 |
+
background-color: #fcf8e3
|
| 1123 |
+
}
|
| 1124 |
+
.text-left {
|
| 1125 |
+
text-align: left
|
| 1126 |
+
}
|
| 1127 |
+
.text-right {
|
| 1128 |
+
text-align: right
|
| 1129 |
+
}
|
| 1130 |
+
.text-center {
|
| 1131 |
+
text-align: center
|
| 1132 |
+
}
|
| 1133 |
+
.text-justify {
|
| 1134 |
+
text-align: justify
|
| 1135 |
+
}
|
| 1136 |
+
.text-nowrap {
|
| 1137 |
+
white-space: nowrap
|
| 1138 |
+
}
|
| 1139 |
+
.text-lowercase {
|
| 1140 |
+
text-transform: lowercase
|
| 1141 |
+
}
|
| 1142 |
+
.text-uppercase {
|
| 1143 |
+
text-transform: uppercase
|
| 1144 |
+
}
|
| 1145 |
+
.text-capitalize {
|
| 1146 |
+
text-transform: capitalize
|
| 1147 |
+
}
|
| 1148 |
+
.text-muted {
|
| 1149 |
+
color: #777
|
| 1150 |
+
}
|
| 1151 |
+
.text-primary {
|
| 1152 |
+
color: #428bca
|
| 1153 |
+
}
|
| 1154 |
+
a.text-primary:hover {
|
| 1155 |
+
color: #3071a9
|
| 1156 |
+
}
|
| 1157 |
+
.text-success {
|
| 1158 |
+
color: #3c763d
|
| 1159 |
+
}
|
| 1160 |
+
a.text-success:hover {
|
| 1161 |
+
color: #2b542c
|
| 1162 |
+
}
|
| 1163 |
+
.text-info {
|
| 1164 |
+
color: #31708f
|
| 1165 |
+
}
|
| 1166 |
+
a.text-info:hover {
|
| 1167 |
+
color: #245269
|
| 1168 |
+
}
|
| 1169 |
+
.text-warning {
|
| 1170 |
+
color: #8a6d3b
|
| 1171 |
+
}
|
| 1172 |
+
a.text-warning:hover {
|
| 1173 |
+
color: #66512c
|
| 1174 |
+
}
|
| 1175 |
+
.text-danger {
|
| 1176 |
+
color: #a94442
|
| 1177 |
+
}
|
| 1178 |
+
a.text-danger:hover {
|
| 1179 |
+
color: #843534
|
| 1180 |
+
}
|
| 1181 |
+
.bg-primary {
|
| 1182 |
+
color: #fff;
|
| 1183 |
+
background-color: #428bca
|
| 1184 |
+
}
|
| 1185 |
+
a.bg-primary:hover {
|
| 1186 |
+
background-color: #3071a9
|
| 1187 |
+
}
|
| 1188 |
+
.bg-success {
|
| 1189 |
+
background-color: #dff0d8
|
| 1190 |
+
}
|
| 1191 |
+
a.bg-success:hover {
|
| 1192 |
+
background-color: #c1e2b3
|
| 1193 |
+
}
|
| 1194 |
+
.bg-info {
|
| 1195 |
+
background-color: #d9edf7
|
| 1196 |
+
}
|
| 1197 |
+
a.bg-info:hover {
|
| 1198 |
+
background-color: #afd9ee
|
| 1199 |
+
}
|
| 1200 |
+
.bg-warning {
|
| 1201 |
+
background-color: #fcf8e3
|
| 1202 |
+
}
|
| 1203 |
+
a.bg-warning:hover {
|
| 1204 |
+
background-color: #f7ecb5
|
| 1205 |
+
}
|
| 1206 |
+
.bg-danger {
|
| 1207 |
+
background-color: #f2dede
|
| 1208 |
+
}
|
| 1209 |
+
a.bg-danger:hover {
|
| 1210 |
+
background-color: #e4b9b9
|
| 1211 |
+
}
|
| 1212 |
+
.page-header {
|
| 1213 |
+
padding-bottom: 9px;
|
| 1214 |
+
margin: 40px 0 20px;
|
| 1215 |
+
border-bottom: 1px solid #eee
|
| 1216 |
+
}
|
| 1217 |
+
ul,
|
| 1218 |
+
ol {
|
| 1219 |
+
margin-top: 0;
|
| 1220 |
+
margin-bottom: 10px
|
| 1221 |
+
}
|
| 1222 |
+
ul ul,
|
| 1223 |
+
ol ul,
|
| 1224 |
+
ul ol,
|
| 1225 |
+
ol ol {
|
| 1226 |
+
margin-bottom: 0
|
| 1227 |
+
}
|
| 1228 |
+
.list-unstyled {
|
| 1229 |
+
padding-left: 0;
|
| 1230 |
+
list-style: none
|
| 1231 |
+
}
|
| 1232 |
+
.list-inline {
|
| 1233 |
+
padding-left: 0;
|
| 1234 |
+
margin-left: -5px;
|
| 1235 |
+
list-style: none
|
| 1236 |
+
}
|
| 1237 |
+
.list-inline>li {
|
| 1238 |
+
display: inline-block;
|
| 1239 |
+
padding-right: 5px;
|
| 1240 |
+
padding-left: 5px
|
| 1241 |
+
}
|
| 1242 |
+
dl {
|
| 1243 |
+
margin-top: 0;
|
| 1244 |
+
margin-bottom: 20px
|
| 1245 |
+
}
|
| 1246 |
+
dt,
|
| 1247 |
+
dd {
|
| 1248 |
+
line-height: 1.42857143
|
| 1249 |
+
}
|
| 1250 |
+
dt {
|
| 1251 |
+
font-weight: 700
|
| 1252 |
+
}
|
| 1253 |
+
dd {
|
| 1254 |
+
margin-left: 0
|
| 1255 |
+
}
|
| 1256 |
+
@media (min-width: 768px) {
|
| 1257 |
+
.dl-horizontal dt {
|
| 1258 |
+
float: left;
|
| 1259 |
+
width: 160px;
|
| 1260 |
+
overflow: hidden;
|
| 1261 |
+
clear: left;
|
| 1262 |
+
text-align: right;
|
| 1263 |
+
text-overflow: ellipsis;
|
| 1264 |
+
white-space: nowrap
|
| 1265 |
+
}
|
| 1266 |
+
.dl-horizontal dd {
|
| 1267 |
+
margin-left: 180px
|
| 1268 |
+
}
|
| 1269 |
+
}
|
| 1270 |
+
abbr[title],
|
| 1271 |
+
abbr[data-original-title] {
|
| 1272 |
+
cursor: help;
|
| 1273 |
+
border-bottom: 1px dotted #777
|
| 1274 |
+
}
|
| 1275 |
+
.initialism {
|
| 1276 |
+
font-size: 90%;
|
| 1277 |
+
text-transform: uppercase
|
| 1278 |
+
}
|
| 1279 |
+
blockquote {
|
| 1280 |
+
padding: 10px 20px;
|
| 1281 |
+
margin: 0 0 20px;
|
| 1282 |
+
font-size: 17.5px;
|
| 1283 |
+
border-left: 5px solid #eee
|
| 1284 |
+
}
|
| 1285 |
+
blockquote p:last-child,
|
| 1286 |
+
blockquote ul:last-child,
|
| 1287 |
+
blockquote ol:last-child {
|
| 1288 |
+
margin-bottom: 0
|
| 1289 |
+
}
|
| 1290 |
+
blockquote footer,
|
| 1291 |
+
blockquote small,
|
| 1292 |
+
blockquote .small {
|
| 1293 |
+
display: block;
|
| 1294 |
+
font-size: 80%;
|
| 1295 |
+
line-height: 1.42857143;
|
| 1296 |
+
color: #777
|
| 1297 |
+
}
|
| 1298 |
+
blockquote footer:before,
|
| 1299 |
+
blockquote small:before,
|
| 1300 |
+
blockquote .small:before {
|
| 1301 |
+
content: '\2014 \00A0'
|
| 1302 |
+
}
|
| 1303 |
+
.blockquote-reverse,
|
| 1304 |
+
blockquote.pull-right {
|
| 1305 |
+
padding-right: 15px;
|
| 1306 |
+
padding-left: 0;
|
| 1307 |
+
text-align: right;
|
| 1308 |
+
border-right: 5px solid #eee;
|
| 1309 |
+
border-left: 0
|
| 1310 |
+
}
|
| 1311 |
+
.blockquote-reverse footer:before,
|
| 1312 |
+
blockquote.pull-right footer:before,
|
| 1313 |
+
.blockquote-reverse small:before,
|
| 1314 |
+
blockquote.pull-right small:before,
|
| 1315 |
+
.blockquote-reverse .small:before,
|
| 1316 |
+
blockquote.pull-right .small:before {
|
| 1317 |
+
content: ''
|
| 1318 |
+
}
|
| 1319 |
+
.blockquote-reverse footer:after,
|
| 1320 |
+
blockquote.pull-right footer:after,
|
| 1321 |
+
.blockquote-reverse small:after,
|
| 1322 |
+
blockquote.pull-right small:after,
|
| 1323 |
+
.blockquote-reverse .small:after,
|
| 1324 |
+
blockquote.pull-right .small:after {
|
| 1325 |
+
content: '\00A0 \2014'
|
| 1326 |
+
}
|
| 1327 |
+
blockquote:before,
|
| 1328 |
+
blockquote:after {
|
| 1329 |
+
content: ""
|
| 1330 |
+
}
|
| 1331 |
+
address {
|
| 1332 |
+
margin-bottom: 20px;
|
| 1333 |
+
font-style: normal;
|
| 1334 |
+
line-height: 1.42857143
|
| 1335 |
+
}
|
| 1336 |
+
code,
|
| 1337 |
+
kbd,
|
| 1338 |
+
pre,
|
| 1339 |
+
samp {
|
| 1340 |
+
font-family: Menlo, Monaco, Consolas, "Courier New", monospace
|
| 1341 |
+
}
|
| 1342 |
+
code {
|
| 1343 |
+
padding: 2px 4px;
|
| 1344 |
+
font-size: 90%;
|
| 1345 |
+
color: #c7254e;
|
| 1346 |
+
background-color: #f9f2f4;
|
| 1347 |
+
border-radius: 4px
|
| 1348 |
+
}
|
| 1349 |
+
kbd {
|
| 1350 |
+
padding: 2px 4px;
|
| 1351 |
+
font-size: 90%;
|
| 1352 |
+
color: #fff;
|
| 1353 |
+
background-color: #333;
|
| 1354 |
+
border-radius: 3px;
|
| 1355 |
+
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
|
| 1356 |
+
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25)
|
| 1357 |
+
}
|
| 1358 |
+
kbd kbd {
|
| 1359 |
+
padding: 0;
|
| 1360 |
+
font-size: 100%;
|
| 1361 |
+
-webkit-box-shadow: none;
|
| 1362 |
+
box-shadow: none
|
| 1363 |
+
}
|
| 1364 |
+
pre {
|
| 1365 |
+
display: block;
|
| 1366 |
+
padding: 9.5px;
|
| 1367 |
+
margin: 0 0 10px;
|
| 1368 |
+
font-size: 13px;
|
| 1369 |
+
line-height: 1.42857143;
|
| 1370 |
+
color: #333;
|
| 1371 |
+
word-break: break-all;
|
| 1372 |
+
word-wrap: break-word;
|
| 1373 |
+
background-color: #f5f5f5;
|
| 1374 |
+
border: 1px solid #ccc;
|
| 1375 |
+
border-radius: 4px
|
| 1376 |
+
}
|
| 1377 |
+
pre code {
|
| 1378 |
+
padding: 0;
|
| 1379 |
+
font-size: inherit;
|
| 1380 |
+
color: inherit;
|
| 1381 |
+
white-space: pre-wrap;
|
| 1382 |
+
background-color: transparent;
|
| 1383 |
+
border-radius: 0
|
| 1384 |
+
}
|
| 1385 |
+
.pre-scrollable {
|
| 1386 |
+
max-height: 340px;
|
| 1387 |
+
overflow-y: scroll
|
| 1388 |
+
}
|
| 1389 |
+
.container {
|
| 1390 |
+
padding-right: 15px;
|
| 1391 |
+
padding-left: 15px;
|
| 1392 |
+
margin-right: auto;
|
| 1393 |
+
margin-left: auto
|
| 1394 |
+
}
|
| 1395 |
+
@media (min-width: 768px) {
|
| 1396 |
+
.container {
|
| 1397 |
+
width: 750px
|
| 1398 |
+
}
|
| 1399 |
+
}
|
| 1400 |
+
@media (min-width: 992px) {
|
| 1401 |
+
.container {
|
| 1402 |
+
width: 970px
|
| 1403 |
+
}
|
| 1404 |
+
}
|
| 1405 |
+
@media (min-width: 1200px) {
|
| 1406 |
+
.container {
|
| 1407 |
+
width: 1170px
|
| 1408 |
+
}
|
| 1409 |
+
}
|
| 1410 |
+
.container-fluid {
|
| 1411 |
+
padding-right: 15px;
|
| 1412 |
+
padding-left: 15px;
|
| 1413 |
+
margin-right: auto;
|
| 1414 |
+
margin-left: auto
|
| 1415 |
+
}
|
| 1416 |
+
.row {
|
| 1417 |
+
margin-right: -15px;
|
| 1418 |
+
margin-left: -15px
|
| 1419 |
+
}
|
| 1420 |
+
.col-xs-1,
|
| 1421 |
+
.col-sm-1,
|
| 1422 |
+
.col-md-1,
|
| 1423 |
+
.col-lg-1,
|
| 1424 |
+
.col-xs-2,
|
| 1425 |
+
.col-sm-2,
|
| 1426 |
+
.col-md-2,
|
| 1427 |
+
.col-lg-2,
|
| 1428 |
+
.col-xs-3,
|
| 1429 |
+
.col-sm-3,
|
| 1430 |
+
.col-md-3,
|
| 1431 |
+
.col-lg-3,
|
| 1432 |
+
.col-xs-4,
|
| 1433 |
+
.col-sm-4,
|
| 1434 |
+
.col-md-4,
|
| 1435 |
+
.col-lg-4,
|
| 1436 |
+
.col-xs-5,
|
| 1437 |
+
.col-sm-5,
|
| 1438 |
+
.col-md-5,
|
| 1439 |
+
.col-lg-5,
|
| 1440 |
+
.col-xs-6,
|
| 1441 |
+
.col-sm-6,
|
| 1442 |
+
.col-md-6,
|
| 1443 |
+
.col-lg-6,
|
| 1444 |
+
.col-xs-7,
|
| 1445 |
+
.col-sm-7,
|
| 1446 |
+
.col-md-7,
|
| 1447 |
+
.col-lg-7,
|
| 1448 |
+
.col-xs-8,
|
| 1449 |
+
.col-sm-8,
|
| 1450 |
+
.col-md-8,
|
| 1451 |
+
.col-lg-8,
|
| 1452 |
+
.col-xs-9,
|
| 1453 |
+
.col-sm-9,
|
| 1454 |
+
.col-md-9,
|
| 1455 |
+
.col-lg-9,
|
| 1456 |
+
.col-xs-10,
|
| 1457 |
+
.col-sm-10,
|
| 1458 |
+
.col-md-10,
|
| 1459 |
+
.col-lg-10,
|
| 1460 |
+
.col-xs-11,
|
| 1461 |
+
.col-sm-11,
|
| 1462 |
+
.col-md-11,
|
| 1463 |
+
.col-lg-11,
|
| 1464 |
+
.col-xs-12,
|
| 1465 |
+
.col-sm-12,
|
| 1466 |
+
.col-md-12,
|
| 1467 |
+
.col-lg-12 {
|
| 1468 |
+
position: relative;
|
| 1469 |
+
min-height: 1px;
|
| 1470 |
+
padding-right: 15px;
|
| 1471 |
+
padding-left: 15px
|
| 1472 |
+
}
|
| 1473 |
+
.col-xs-1,
|
| 1474 |
+
.col-xs-2,
|
| 1475 |
+
.col-xs-3,
|
| 1476 |
+
.col-xs-4,
|
| 1477 |
+
.col-xs-5,
|
| 1478 |
+
.col-xs-6,
|
| 1479 |
+
.col-xs-7,
|
| 1480 |
+
.col-xs-8,
|
| 1481 |
+
.col-xs-9,
|
| 1482 |
+
.col-xs-10,
|
| 1483 |
+
.col-xs-11,
|
| 1484 |
+
.col-xs-12 {
|
| 1485 |
+
float: left
|
| 1486 |
+
}
|
| 1487 |
+
.col-xs-12 {
|
| 1488 |
+
width: 100%
|
| 1489 |
+
}
|
| 1490 |
+
.col-xs-11 {
|
| 1491 |
+
width: 91.66666667%
|
| 1492 |
+
}
|
| 1493 |
+
.col-xs-10 {
|
| 1494 |
+
width: 83.33333333%
|
| 1495 |
+
}
|
| 1496 |
+
.col-xs-9 {
|
| 1497 |
+
width: 75%
|
| 1498 |
+
}
|
| 1499 |
+
.col-xs-8 {
|
| 1500 |
+
width: 66.66666667%
|
| 1501 |
+
}
|
| 1502 |
+
.col-xs-7 {
|
| 1503 |
+
width: 58.33333333%
|
| 1504 |
+
}
|
| 1505 |
+
.col-xs-6 {
|
| 1506 |
+
width: 50%
|
| 1507 |
+
}
|
| 1508 |
+
.col-xs-5 {
|
| 1509 |
+
width: 41.66666667%
|
| 1510 |
+
}
|
| 1511 |
+
.col-xs-4 {
|
| 1512 |
+
width: 33.33333333%
|
| 1513 |
+
}
|
| 1514 |
+
.col-xs-3 {
|
| 1515 |
+
width: 25%
|
| 1516 |
+
}
|
| 1517 |
+
.col-xs-2 {
|
| 1518 |
+
width: 16.66666667%
|
| 1519 |
+
}
|
| 1520 |
+
.col-xs-1 {
|
| 1521 |
+
width: 8.33333333%
|
| 1522 |
+
}
|
| 1523 |
+
.col-xs-pull-12 {
|
| 1524 |
+
right: 100%
|
| 1525 |
+
}
|
| 1526 |
+
.col-xs-pull-11 {
|
| 1527 |
+
right: 91.66666667%
|
| 1528 |
+
}
|
| 1529 |
+
.col-xs-pull-10 {
|
| 1530 |
+
right: 83.33333333%
|
| 1531 |
+
}
|
| 1532 |
+
.col-xs-pull-9 {
|
| 1533 |
+
right: 75%
|
| 1534 |
+
}
|
| 1535 |
+
.col-xs-pull-8 {
|
| 1536 |
+
right: 66.66666667%
|
| 1537 |
+
}
|
| 1538 |
+
.col-xs-pull-7 {
|
| 1539 |
+
right: 58.33333333%
|
| 1540 |
+
}
|
| 1541 |
+
.col-xs-pull-6 {
|
| 1542 |
+
right: 50%
|
| 1543 |
+
}
|
| 1544 |
+
.col-xs-pull-5 {
|
| 1545 |
+
right: 41.66666667%
|
| 1546 |
+
}
|
| 1547 |
+
.col-xs-pull-4 {
|
| 1548 |
+
right: 33.33333333%
|
| 1549 |
+
}
|
| 1550 |
+
.col-xs-pull-3 {
|
| 1551 |
+
right: 25%
|
| 1552 |
+
}
|
| 1553 |
+
.col-xs-pull-2 {
|
| 1554 |
+
right: 16.66666667%
|
| 1555 |
+
}
|
| 1556 |
+
.col-xs-pull-1 {
|
| 1557 |
+
right: 8.33333333%
|
| 1558 |
+
}
|
| 1559 |
+
.col-xs-pull-0 {
|
| 1560 |
+
right: auto
|
| 1561 |
+
}
|
| 1562 |
+
.col-xs-push-12 {
|
| 1563 |
+
left: 100%
|
| 1564 |
+
}
|
| 1565 |
+
.col-xs-push-11 {
|
| 1566 |
+
left: 91.66666667%
|
| 1567 |
+
}
|
| 1568 |
+
.col-xs-push-10 {
|
| 1569 |
+
left: 83.33333333%
|
| 1570 |
+
}
|
| 1571 |
+
.col-xs-push-9 {
|
| 1572 |
+
left: 75%
|
| 1573 |
+
}
|
| 1574 |
+
.col-xs-push-8 {
|
| 1575 |
+
left: 66.66666667%
|
| 1576 |
+
}
|
| 1577 |
+
.col-xs-push-7 {
|
| 1578 |
+
left: 58.33333333%
|
| 1579 |
+
}
|
| 1580 |
+
.col-xs-push-6 {
|
| 1581 |
+
left: 50%
|
| 1582 |
+
}
|
| 1583 |
+
.col-xs-push-5 {
|
| 1584 |
+
left: 41.66666667%
|
| 1585 |
+
}
|
| 1586 |
+
.col-xs-push-4 {
|
| 1587 |
+
left: 33.33333333%
|
| 1588 |
+
}
|
| 1589 |
+
.col-xs-push-3 {
|
| 1590 |
+
left: 25%
|
| 1591 |
+
}
|
| 1592 |
+
.col-xs-push-2 {
|
| 1593 |
+
left: 16.66666667%
|
| 1594 |
+
}
|
| 1595 |
+
.col-xs-push-1 {
|
| 1596 |
+
left: 8.33333333%
|
| 1597 |
+
}
|
| 1598 |
+
.col-xs-push-0 {
|
| 1599 |
+
left: auto
|
| 1600 |
+
}
|
| 1601 |
+
.col-xs-offset-12 {
|
| 1602 |
+
margin-left: 100%
|
| 1603 |
+
}
|
| 1604 |
+
.col-xs-offset-11 {
|
| 1605 |
+
margin-left: 91.66666667%
|
| 1606 |
+
}
|
| 1607 |
+
.col-xs-offset-10 {
|
| 1608 |
+
margin-left: 83.33333333%
|
| 1609 |
+
}
|
| 1610 |
+
.col-xs-offset-9 {
|
| 1611 |
+
margin-left: 75%
|
| 1612 |
+
}
|
| 1613 |
+
.col-xs-offset-8 {
|
| 1614 |
+
margin-left: 66.66666667%
|
| 1615 |
+
}
|
| 1616 |
+
.col-xs-offset-7 {
|
| 1617 |
+
margin-left: 58.33333333%
|
| 1618 |
+
}
|
| 1619 |
+
.col-xs-offset-6 {
|
| 1620 |
+
margin-left: 50%
|
| 1621 |
+
}
|
| 1622 |
+
.col-xs-offset-5 {
|
| 1623 |
+
margin-left: 41.66666667%
|
| 1624 |
+
}
|
| 1625 |
+
.col-xs-offset-4 {
|
| 1626 |
+
margin-left: 33.33333333%
|
| 1627 |
+
}
|
| 1628 |
+
.col-xs-offset-3 {
|
| 1629 |
+
margin-left: 25%
|
| 1630 |
+
}
|
| 1631 |
+
.col-xs-offset-2 {
|
| 1632 |
+
margin-left: 16.66666667%
|
| 1633 |
+
}
|
| 1634 |
+
.col-xs-offset-1 {
|
| 1635 |
+
margin-left: 8.33333333%
|
| 1636 |
+
}
|
| 1637 |
+
.col-xs-offset-0 {
|
| 1638 |
+
margin-left: 0
|
| 1639 |
+
}
|
| 1640 |
+
@media (min-width: 768px) {
|
| 1641 |
+
.col-sm-1,
|
| 1642 |
+
.col-sm-2,
|
| 1643 |
+
.col-sm-3,
|
| 1644 |
+
.col-sm-4,
|
| 1645 |
+
.col-sm-5,
|
| 1646 |
+
.col-sm-6,
|
| 1647 |
+
.col-sm-7,
|
| 1648 |
+
.col-sm-8,
|
| 1649 |
+
.col-sm-9,
|
| 1650 |
+
.col-sm-10,
|
| 1651 |
+
.col-sm-11,
|
| 1652 |
+
.col-sm-12 {
|
| 1653 |
+
float: left
|
| 1654 |
+
}
|
| 1655 |
+
.col-sm-12 {
|
| 1656 |
+
width: 100%
|
| 1657 |
+
}
|
| 1658 |
+
.col-sm-11 {
|
| 1659 |
+
width: 91.66666667%
|
| 1660 |
+
}
|
| 1661 |
+
.col-sm-10 {
|
| 1662 |
+
width: 83.33333333%
|
| 1663 |
+
}
|
| 1664 |
+
.col-sm-9 {
|
| 1665 |
+
width: 75%
|
| 1666 |
+
}
|
| 1667 |
+
.col-sm-8 {
|
| 1668 |
+
width: 66.66666667%
|
| 1669 |
+
}
|
| 1670 |
+
.col-sm-7 {
|
| 1671 |
+
width: 58.33333333%
|
| 1672 |
+
}
|
| 1673 |
+
.col-sm-6 {
|
| 1674 |
+
width: 50%
|
| 1675 |
+
}
|
| 1676 |
+
.col-sm-5 {
|
| 1677 |
+
width: 41.66666667%
|
| 1678 |
+
}
|
| 1679 |
+
.col-sm-4 {
|
| 1680 |
+
width: 33.33333333%
|
| 1681 |
+
}
|
| 1682 |
+
.col-sm-3 {
|
| 1683 |
+
width: 25%
|
| 1684 |
+
}
|
| 1685 |
+
.col-sm-2 {
|
| 1686 |
+
width: 16.66666667%
|
| 1687 |
+
}
|
| 1688 |
+
.col-sm-1 {
|
| 1689 |
+
width: 8.33333333%
|
| 1690 |
+
}
|
| 1691 |
+
.col-sm-pull-12 {
|
| 1692 |
+
right: 100%
|
| 1693 |
+
}
|
| 1694 |
+
.col-sm-pull-11 {
|
| 1695 |
+
right: 91.66666667%
|
| 1696 |
+
}
|
| 1697 |
+
.col-sm-pull-10 {
|
| 1698 |
+
right: 83.33333333%
|
| 1699 |
+
}
|
| 1700 |
+
.col-sm-pull-9 {
|
| 1701 |
+
right: 75%
|
| 1702 |
+
}
|
| 1703 |
+
.col-sm-pull-8 {
|
| 1704 |
+
right: 66.66666667%
|
| 1705 |
+
}
|
| 1706 |
+
.col-sm-pull-7 {
|
| 1707 |
+
right: 58.33333333%
|
| 1708 |
+
}
|
| 1709 |
+
.col-sm-pull-6 {
|
| 1710 |
+
right: 50%
|
| 1711 |
+
}
|
| 1712 |
+
.col-sm-pull-5 {
|
| 1713 |
+
right: 41.66666667%
|
| 1714 |
+
}
|
| 1715 |
+
.col-sm-pull-4 {
|
| 1716 |
+
right: 33.33333333%
|
| 1717 |
+
}
|
| 1718 |
+
.col-sm-pull-3 {
|
| 1719 |
+
right: 25%
|
| 1720 |
+
}
|
| 1721 |
+
.col-sm-pull-2 {
|
| 1722 |
+
right: 16.66666667%
|
| 1723 |
+
}
|
| 1724 |
+
.col-sm-pull-1 {
|
| 1725 |
+
right: 8.33333333%
|
| 1726 |
+
}
|
| 1727 |
+
.col-sm-pull-0 {
|
| 1728 |
+
right: auto
|
| 1729 |
+
}
|
| 1730 |
+
.col-sm-push-12 {
|
| 1731 |
+
left: 100%
|
| 1732 |
+
}
|
| 1733 |
+
.col-sm-push-11 {
|
| 1734 |
+
left: 91.66666667%
|
| 1735 |
+
}
|
| 1736 |
+
.col-sm-push-10 {
|
| 1737 |
+
left: 83.33333333%
|
| 1738 |
+
}
|
| 1739 |
+
.col-sm-push-9 {
|
| 1740 |
+
left: 75%
|
| 1741 |
+
}
|
| 1742 |
+
.col-sm-push-8 {
|
| 1743 |
+
left: 66.66666667%
|
| 1744 |
+
}
|
| 1745 |
+
.col-sm-push-7 {
|
| 1746 |
+
left: 58.33333333%
|
| 1747 |
+
}
|
| 1748 |
+
.col-sm-push-6 {
|
| 1749 |
+
left: 50%
|
| 1750 |
+
}
|
| 1751 |
+
.col-sm-push-5 {
|
| 1752 |
+
left: 41.66666667%
|
| 1753 |
+
}
|
| 1754 |
+
.col-sm-push-4 {
|
| 1755 |
+
left: 33.33333333%
|
| 1756 |
+
}
|
| 1757 |
+
.col-sm-push-3 {
|
| 1758 |
+
left: 25%
|
| 1759 |
+
}
|
| 1760 |
+
.col-sm-push-2 {
|
| 1761 |
+
left: 16.66666667%
|
| 1762 |
+
}
|
| 1763 |
+
.col-sm-push-1 {
|
| 1764 |
+
left: 8.33333333%
|
| 1765 |
+
}
|
| 1766 |
+
.col-sm-push-0 {
|
| 1767 |
+
left: auto
|
| 1768 |
+
}
|
| 1769 |
+
.col-sm-offset-12 {
|
| 1770 |
+
margin-left: 100%
|
| 1771 |
+
}
|
| 1772 |
+
.col-sm-offset-11 {
|
| 1773 |
+
margin-left: 91.66666667%
|
| 1774 |
+
}
|
| 1775 |
+
.col-sm-offset-10 {
|
| 1776 |
+
margin-left: 83.33333333%
|
| 1777 |
+
}
|
| 1778 |
+
.col-sm-offset-9 {
|
| 1779 |
+
margin-left: 75%
|
| 1780 |
+
}
|
| 1781 |
+
.col-sm-offset-8 {
|
| 1782 |
+
margin-left: 66.66666667%
|
| 1783 |
+
}
|
| 1784 |
+
.col-sm-offset-7 {
|
| 1785 |
+
margin-left: 58.33333333%
|
| 1786 |
+
}
|
| 1787 |
+
.col-sm-offset-6 {
|
| 1788 |
+
margin-left: 50%
|
| 1789 |
+
}
|
| 1790 |
+
.col-sm-offset-5 {
|
| 1791 |
+
margin-left: 41.66666667%
|
| 1792 |
+
}
|
| 1793 |
+
.col-sm-offset-4 {
|
| 1794 |
+
margin-left: 33.33333333%
|
| 1795 |
+
}
|
| 1796 |
+
.col-sm-offset-3 {
|
| 1797 |
+
margin-left: 25%
|
| 1798 |
+
}
|
| 1799 |
+
.col-sm-offset-2 {
|
| 1800 |
+
margin-left: 16.66666667%
|
| 1801 |
+
}
|
| 1802 |
+
.col-sm-offset-1 {
|
| 1803 |
+
margin-left: 8.33333333%
|
| 1804 |
+
}
|
| 1805 |
+
.col-sm-offset-0 {
|
| 1806 |
+
margin-left: 0
|
| 1807 |
+
}
|
| 1808 |
+
}
|
| 1809 |
+
@media (min-width: 992px) {
|
| 1810 |
+
.col-md-1,
|
| 1811 |
+
.col-md-2,
|
| 1812 |
+
.col-md-3,
|
| 1813 |
+
.col-md-4,
|
| 1814 |
+
.col-md-5,
|
| 1815 |
+
.col-md-6,
|
| 1816 |
+
.col-md-7,
|
| 1817 |
+
.col-md-8,
|
| 1818 |
+
.col-md-9,
|
| 1819 |
+
.col-md-10,
|
| 1820 |
+
.col-md-11,
|
| 1821 |
+
.col-md-12 {
|
| 1822 |
+
float: left
|
| 1823 |
+
}
|
| 1824 |
+
.col-md-12 {
|
| 1825 |
+
width: 100%
|
| 1826 |
+
}
|
| 1827 |
+
.col-md-11 {
|
| 1828 |
+
width: 91.66666667%
|
| 1829 |
+
}
|
| 1830 |
+
.col-md-10 {
|
| 1831 |
+
width: 83.33333333%
|
| 1832 |
+
}
|
| 1833 |
+
.col-md-9 {
|
| 1834 |
+
width: 75%
|
| 1835 |
+
}
|
| 1836 |
+
.col-md-8 {
|
| 1837 |
+
width: 66.66666667%
|
| 1838 |
+
}
|
| 1839 |
+
.col-md-7 {
|
| 1840 |
+
width: 58.33333333%
|
| 1841 |
+
}
|
| 1842 |
+
.col-md-6 {
|
| 1843 |
+
width: 50%
|
| 1844 |
+
}
|
| 1845 |
+
.col-md-5 {
|
| 1846 |
+
width: 41.66666667%
|
| 1847 |
+
}
|
| 1848 |
+
.col-md-4 {
|
| 1849 |
+
width: 33.33333333%
|
| 1850 |
+
}
|
| 1851 |
+
.col-md-3 {
|
| 1852 |
+
width: 25%
|
| 1853 |
+
}
|
| 1854 |
+
.col-md-2 {
|
| 1855 |
+
width: 16.66666667%
|
| 1856 |
+
}
|
| 1857 |
+
.col-md-1 {
|
| 1858 |
+
width: 8.33333333%
|
| 1859 |
+
}
|
| 1860 |
+
.col-md-pull-12 {
|
| 1861 |
+
right: 100%
|
| 1862 |
+
}
|
| 1863 |
+
.col-md-pull-11 {
|
| 1864 |
+
right: 91.66666667%
|
| 1865 |
+
}
|
| 1866 |
+
.col-md-pull-10 {
|
| 1867 |
+
right: 83.33333333%
|
| 1868 |
+
}
|
| 1869 |
+
.col-md-pull-9 {
|
| 1870 |
+
right: 75%
|
| 1871 |
+
}
|
| 1872 |
+
.col-md-pull-8 {
|
| 1873 |
+
right: 66.66666667%
|
| 1874 |
+
}
|
| 1875 |
+
.col-md-pull-7 {
|
| 1876 |
+
right: 58.33333333%
|
| 1877 |
+
}
|
| 1878 |
+
.col-md-pull-6 {
|
| 1879 |
+
right: 50%
|
| 1880 |
+
}
|
| 1881 |
+
.col-md-pull-5 {
|
| 1882 |
+
right: 41.66666667%
|
| 1883 |
+
}
|
| 1884 |
+
.col-md-pull-4 {
|
| 1885 |
+
right: 33.33333333%
|
| 1886 |
+
}
|
| 1887 |
+
.col-md-pull-3 {
|
| 1888 |
+
right: 25%
|
| 1889 |
+
}
|
| 1890 |
+
.col-md-pull-2 {
|
| 1891 |
+
right: 16.66666667%
|
| 1892 |
+
}
|
| 1893 |
+
.col-md-pull-1 {
|
| 1894 |
+
right: 8.33333333%
|
| 1895 |
+
}
|
| 1896 |
+
.col-md-pull-0 {
|
| 1897 |
+
right: auto
|
| 1898 |
+
}
|
| 1899 |
+
.col-md-push-12 {
|
| 1900 |
+
left: 100%
|
| 1901 |
+
}
|
| 1902 |
+
.col-md-push-11 {
|
| 1903 |
+
left: 91.66666667%
|
| 1904 |
+
}
|
| 1905 |
+
.col-md-push-10 {
|
| 1906 |
+
left: 83.33333333%
|
| 1907 |
+
}
|
| 1908 |
+
.col-md-push-9 {
|
| 1909 |
+
left: 75%
|
| 1910 |
+
}
|
| 1911 |
+
.col-md-push-8 {
|
| 1912 |
+
left: 66.66666667%
|
| 1913 |
+
}
|
| 1914 |
+
.col-md-push-7 {
|
| 1915 |
+
left: 58.33333333%
|
| 1916 |
+
}
|
| 1917 |
+
.col-md-push-6 {
|
| 1918 |
+
left: 50%
|
| 1919 |
+
}
|
| 1920 |
+
.col-md-push-5 {
|
| 1921 |
+
left: 41.66666667%
|
| 1922 |
+
}
|
| 1923 |
+
.col-md-push-4 {
|
| 1924 |
+
left: 33.33333333%
|
| 1925 |
+
}
|
| 1926 |
+
.col-md-push-3 {
|
| 1927 |
+
left: 25%
|
| 1928 |
+
}
|
| 1929 |
+
.col-md-push-2 {
|
| 1930 |
+
left: 16.66666667%
|
| 1931 |
+
}
|
| 1932 |
+
.col-md-push-1 {
|
| 1933 |
+
left: 8.33333333%
|
| 1934 |
+
}
|
| 1935 |
+
.col-md-push-0 {
|
| 1936 |
+
left: auto
|
| 1937 |
+
}
|
| 1938 |
+
.col-md-offset-12 {
|
| 1939 |
+
margin-left: 100%
|
| 1940 |
+
}
|
| 1941 |
+
.col-md-offset-11 {
|
| 1942 |
+
margin-left: 91.66666667%
|
| 1943 |
+
}
|
| 1944 |
+
.col-md-offset-10 {
|
| 1945 |
+
margin-left: 83.33333333%
|
| 1946 |
+
}
|
| 1947 |
+
.col-md-offset-9 {
|
| 1948 |
+
margin-left: 75%
|
| 1949 |
+
}
|
| 1950 |
+
.col-md-offset-8 {
|
| 1951 |
+
margin-left: 66.66666667%
|
| 1952 |
+
}
|
| 1953 |
+
.col-md-offset-7 {
|
| 1954 |
+
margin-left: 58.33333333%
|
| 1955 |
+
}
|
| 1956 |
+
.col-md-offset-6 {
|
| 1957 |
+
margin-left: 50%
|
| 1958 |
+
}
|
| 1959 |
+
.col-md-offset-5 {
|
| 1960 |
+
margin-left: 41.66666667%
|
| 1961 |
+
}
|
| 1962 |
+
.col-md-offset-4 {
|
| 1963 |
+
margin-left: 33.33333333%
|
| 1964 |
+
}
|
| 1965 |
+
.col-md-offset-3 {
|
| 1966 |
+
margin-left: 25%
|
| 1967 |
+
}
|
| 1968 |
+
.col-md-offset-2 {
|
| 1969 |
+
margin-left: 16.66666667%
|
| 1970 |
+
}
|
| 1971 |
+
.col-md-offset-1 {
|
| 1972 |
+
margin-left: 8.33333333%
|
| 1973 |
+
}
|
| 1974 |
+
.col-md-offset-0 {
|
| 1975 |
+
margin-left: 0
|
| 1976 |
+
}
|
| 1977 |
+
}
|
| 1978 |
+
@media (min-width: 1200px) {
|
| 1979 |
+
.col-lg-1,
|
| 1980 |
+
.col-lg-2,
|
| 1981 |
+
.col-lg-3,
|
| 1982 |
+
.col-lg-4,
|
| 1983 |
+
.col-lg-5,
|
| 1984 |
+
.col-lg-6,
|
| 1985 |
+
.col-lg-7,
|
| 1986 |
+
.col-lg-8,
|
| 1987 |
+
.col-lg-9,
|
| 1988 |
+
.col-lg-10,
|
| 1989 |
+
.col-lg-11,
|
| 1990 |
+
.col-lg-12 {
|
| 1991 |
+
float: left
|
| 1992 |
+
}
|
| 1993 |
+
.col-lg-12 {
|
| 1994 |
+
width: 100%
|
| 1995 |
+
}
|
| 1996 |
+
.col-lg-11 {
|
| 1997 |
+
width: 91.66666667%
|
| 1998 |
+
}
|
| 1999 |
+
.col-lg-10 {
|
| 2000 |
+
width: 83.33333333%
|
| 2001 |
+
}
|
| 2002 |
+
.col-lg-9 {
|
| 2003 |
+
width: 75%
|
| 2004 |
+
}
|
| 2005 |
+
.col-lg-8 {
|
| 2006 |
+
width: 66.66666667%
|
| 2007 |
+
}
|
| 2008 |
+
.col-lg-7 {
|
| 2009 |
+
width: 58.33333333%
|
| 2010 |
+
}
|
| 2011 |
+
.col-lg-6 {
|
| 2012 |
+
width: 50%
|
| 2013 |
+
}
|
| 2014 |
+
.col-lg-5 {
|
| 2015 |
+
width: 41.66666667%
|
| 2016 |
+
}
|
| 2017 |
+
.col-lg-4 {
|
| 2018 |
+
width: 33.33333333%
|
| 2019 |
+
}
|
| 2020 |
+
.col-lg-3 {
|
| 2021 |
+
width: 25%
|
| 2022 |
+
}
|
| 2023 |
+
.col-lg-2 {
|
| 2024 |
+
width: 16.66666667%
|
| 2025 |
+
}
|
| 2026 |
+
.col-lg-1 {
|
| 2027 |
+
width: 8.33333333%
|
| 2028 |
+
}
|
| 2029 |
+
.col-lg-pull-12 {
|
| 2030 |
+
right: 100%
|
| 2031 |
+
}
|
| 2032 |
+
.col-lg-pull-11 {
|
| 2033 |
+
right: 91.66666667%
|
| 2034 |
+
}
|
| 2035 |
+
.col-lg-pull-10 {
|
| 2036 |
+
right: 83.33333333%
|
| 2037 |
+
}
|
| 2038 |
+
.col-lg-pull-9 {
|
| 2039 |
+
right: 75%
|
| 2040 |
+
}
|
| 2041 |
+
.col-lg-pull-8 {
|
| 2042 |
+
right: 66.66666667%
|
| 2043 |
+
}
|
| 2044 |
+
.col-lg-pull-7 {
|
| 2045 |
+
right: 58.33333333%
|
| 2046 |
+
}
|
| 2047 |
+
.col-lg-pull-6 {
|
| 2048 |
+
right: 50%
|
| 2049 |
+
}
|
| 2050 |
+
.col-lg-pull-5 {
|
| 2051 |
+
right: 41.66666667%
|
| 2052 |
+
}
|
| 2053 |
+
.col-lg-pull-4 {
|
| 2054 |
+
right: 33.33333333%
|
| 2055 |
+
}
|
| 2056 |
+
.col-lg-pull-3 {
|
| 2057 |
+
right: 25%
|
| 2058 |
+
}
|
| 2059 |
+
.col-lg-pull-2 {
|
| 2060 |
+
right: 16.66666667%
|
| 2061 |
+
}
|
| 2062 |
+
.col-lg-pull-1 {
|
| 2063 |
+
right: 8.33333333%
|
| 2064 |
+
}
|
| 2065 |
+
.col-lg-pull-0 {
|
| 2066 |
+
right: auto
|
| 2067 |
+
}
|
| 2068 |
+
.col-lg-push-12 {
|
| 2069 |
+
left: 100%
|
| 2070 |
+
}
|
| 2071 |
+
.col-lg-push-11 {
|
| 2072 |
+
left: 91.66666667%
|
| 2073 |
+
}
|
| 2074 |
+
.col-lg-push-10 {
|
| 2075 |
+
left: 83.33333333%
|
| 2076 |
+
}
|
| 2077 |
+
.col-lg-push-9 {
|
| 2078 |
+
left: 75%
|
| 2079 |
+
}
|
| 2080 |
+
.col-lg-push-8 {
|
| 2081 |
+
left: 66.66666667%
|
| 2082 |
+
}
|
| 2083 |
+
.col-lg-push-7 {
|
| 2084 |
+
left: 58.33333333%
|
| 2085 |
+
}
|
| 2086 |
+
.col-lg-push-6 {
|
| 2087 |
+
left: 50%
|
| 2088 |
+
}
|
| 2089 |
+
.col-lg-push-5 {
|
| 2090 |
+
left: 41.66666667%
|
| 2091 |
+
}
|
| 2092 |
+
.col-lg-push-4 {
|
| 2093 |
+
left: 33.33333333%
|
| 2094 |
+
}
|
| 2095 |
+
.col-lg-push-3 {
|
| 2096 |
+
left: 25%
|
| 2097 |
+
}
|
| 2098 |
+
.col-lg-push-2 {
|
| 2099 |
+
left: 16.66666667%
|
| 2100 |
+
}
|
| 2101 |
+
.col-lg-push-1 {
|
| 2102 |
+
left: 8.33333333%
|
| 2103 |
+
}
|
| 2104 |
+
.col-lg-push-0 {
|
| 2105 |
+
left: auto
|
| 2106 |
+
}
|
| 2107 |
+
.col-lg-offset-12 {
|
| 2108 |
+
margin-left: 100%
|
| 2109 |
+
}
|
| 2110 |
+
.col-lg-offset-11 {
|
| 2111 |
+
margin-left: 91.66666667%
|
| 2112 |
+
}
|
| 2113 |
+
.col-lg-offset-10 {
|
| 2114 |
+
margin-left: 83.33333333%
|
| 2115 |
+
}
|
| 2116 |
+
.col-lg-offset-9 {
|
| 2117 |
+
margin-left: 75%
|
| 2118 |
+
}
|
| 2119 |
+
.col-lg-offset-8 {
|
| 2120 |
+
margin-left: 66.66666667%
|
| 2121 |
+
}
|
| 2122 |
+
.col-lg-offset-7 {
|
| 2123 |
+
margin-left: 58.33333333%
|
| 2124 |
+
}
|
| 2125 |
+
.col-lg-offset-6 {
|
| 2126 |
+
margin-left: 50%
|
| 2127 |
+
}
|
| 2128 |
+
.col-lg-offset-5 {
|
| 2129 |
+
margin-left: 41.66666667%
|
| 2130 |
+
}
|
| 2131 |
+
.col-lg-offset-4 {
|
| 2132 |
+
margin-left: 33.33333333%
|
| 2133 |
+
}
|
| 2134 |
+
.col-lg-offset-3 {
|
| 2135 |
+
margin-left: 25%
|
| 2136 |
+
}
|
| 2137 |
+
.col-lg-offset-2 {
|
| 2138 |
+
margin-left: 16.66666667%
|
| 2139 |
+
}
|
| 2140 |
+
.col-lg-offset-1 {
|
| 2141 |
+
margin-left: 8.33333333%
|
| 2142 |
+
}
|
| 2143 |
+
.col-lg-offset-0 {
|
| 2144 |
+
margin-left: 0
|
| 2145 |
+
}
|
| 2146 |
+
}
|
| 2147 |
+
table {
|
| 2148 |
+
background-color: transparent
|
| 2149 |
+
}
|
| 2150 |
+
th {
|
| 2151 |
+
text-align: left
|
| 2152 |
+
}
|
| 2153 |
+
.table {
|
| 2154 |
+
width: 100%;
|
| 2155 |
+
max-width: 100%;
|
| 2156 |
+
margin-bottom: 20px
|
| 2157 |
+
}
|
| 2158 |
+
.table>thead>tr>th,
|
| 2159 |
+
.table>tbody>tr>th,
|
| 2160 |
+
.table>tfoot>tr>th,
|
| 2161 |
+
.table>thead>tr>td,
|
| 2162 |
+
.table>tbody>tr>td,
|
| 2163 |
+
.table>tfoot>tr>td {
|
| 2164 |
+
padding: 8px;
|
| 2165 |
+
line-height: 1.42857143;
|
| 2166 |
+
vertical-align: top;
|
| 2167 |
+
border-top: 1px solid #ddd
|
| 2168 |
+
}
|
| 2169 |
+
.table>thead>tr>th {
|
| 2170 |
+
vertical-align: bottom;
|
| 2171 |
+
border-bottom: 2px solid #ddd
|
| 2172 |
+
}
|
| 2173 |
+
.table>caption+thead>tr:first-child>th,
|
| 2174 |
+
.table>colgroup+thead>tr:first-child>th,
|
| 2175 |
+
.table>thead:first-child>tr:first-child>th,
|
| 2176 |
+
.table>caption+thead>tr:first-child>td,
|
| 2177 |
+
.table>colgroup+thead>tr:first-child>td,
|
| 2178 |
+
.table>thead:first-child>tr:first-child>td {
|
| 2179 |
+
border-top: 0
|
| 2180 |
+
}
|
| 2181 |
+
.table>tbody+tbody {
|
| 2182 |
+
border-top: 2px solid #ddd
|
| 2183 |
+
}
|
| 2184 |
+
.table .table {
|
| 2185 |
+
background-color: #fff
|
| 2186 |
+
}
|
| 2187 |
+
.table-condensed>thead>tr>th,
|
| 2188 |
+
.table-condensed>tbody>tr>th,
|
| 2189 |
+
.table-condensed>tfoot>tr>th,
|
| 2190 |
+
.table-condensed>thead>tr>td,
|
| 2191 |
+
.table-condensed>tbody>tr>td,
|
| 2192 |
+
.table-condensed>tfoot>tr>td {
|
| 2193 |
+
padding: 5px
|
| 2194 |
+
}
|
| 2195 |
+
.table-bordered {
|
| 2196 |
+
border: 1px solid #ddd
|
| 2197 |
+
}
|
| 2198 |
+
.table-bordered>thead>tr>th,
|
| 2199 |
+
.table-bordered>tbody>tr>th,
|
| 2200 |
+
.table-bordered>tfoot>tr>th,
|
| 2201 |
+
.table-bordered>thead>tr>td,
|
| 2202 |
+
.table-bordered>tbody>tr>td,
|
| 2203 |
+
.table-bordered>tfoot>tr>td {
|
| 2204 |
+
border: 1px solid #ddd
|
| 2205 |
+
}
|
| 2206 |
+
.table-bordered>thead>tr>th,
|
| 2207 |
+
.table-bordered>thead>tr>td {
|
| 2208 |
+
border-bottom-width: 2px
|
| 2209 |
+
}
|
| 2210 |
+
.table-striped>tbody>tr:nth-child(odd)>td,
|
| 2211 |
+
.table-striped>tbody>tr:nth-child(odd)>th {
|
| 2212 |
+
background-color: #f9f9f9
|
| 2213 |
+
}
|
| 2214 |
+
.table-hover>tbody>tr:hover>td,
|
| 2215 |
+
.table-hover>tbody>tr:hover>th {
|
| 2216 |
+
background-color: #f5f5f5
|
| 2217 |
+
}
|
| 2218 |
+
table col[class*=col-] {
|
| 2219 |
+
position: static;
|
| 2220 |
+
display: table-column;
|
| 2221 |
+
float: none
|
| 2222 |
+
}
|
| 2223 |
+
table td[class*=col-],
|
| 2224 |
+
table th[class*=col-] {
|
| 2225 |
+
position: static;
|
| 2226 |
+
display: table-cell;
|
| 2227 |
+
float: none
|
| 2228 |
+
}
|
| 2229 |
+
.table>thead>tr>td.active,
|
| 2230 |
+
.table>tbody>tr>td.active,
|
| 2231 |
+
.table>tfoot>tr>td.active,
|
| 2232 |
+
.table>thead>tr>th.active,
|
| 2233 |
+
.table>tbody>tr>th.active,
|
| 2234 |
+
.table>tfoot>tr>th.active,
|
| 2235 |
+
.table>thead>tr.active>td,
|
| 2236 |
+
.table>tbody>tr.active>td,
|
| 2237 |
+
.table>tfoot>tr.active>td,
|
| 2238 |
+
.table>thead>tr.active>th,
|
| 2239 |
+
.table>tbody>tr.active>th,
|
| 2240 |
+
.table>tfoot>tr.active>th {
|
| 2241 |
+
background-color: #f5f5f5
|
| 2242 |
+
}
|
| 2243 |
+
.table-hover>tbody>tr>td.active:hover,
|
| 2244 |
+
.table-hover>tbody>tr>th.active:hover,
|
| 2245 |
+
.table-hover>tbody>tr.active:hover>td,
|
| 2246 |
+
.table-hover>tbody>tr:hover>.active,
|
| 2247 |
+
.table-hover>tbody>tr.active:hover>th {
|
| 2248 |
+
background-color: #e8e8e8
|
| 2249 |
+
}
|
| 2250 |
+
.table>thead>tr>td.success,
|
| 2251 |
+
.table>tbody>tr>td.success,
|
| 2252 |
+
.table>tfoot>tr>td.success,
|
| 2253 |
+
.table>thead>tr>th.success,
|
| 2254 |
+
.table>tbody>tr>th.success,
|
| 2255 |
+
.table>tfoot>tr>th.success,
|
| 2256 |
+
.table>thead>tr.success>td,
|
| 2257 |
+
.table>tbody>tr.success>td,
|
| 2258 |
+
.table>tfoot>tr.success>td,
|
| 2259 |
+
.table>thead>tr.success>th,
|
| 2260 |
+
.table>tbody>tr.success>th,
|
| 2261 |
+
.table>tfoot>tr.success>th {
|
| 2262 |
+
background-color: #dff0d8
|
| 2263 |
+
}
|
| 2264 |
+
.table-hover>tbody>tr>td.success:hover,
|
| 2265 |
+
.table-hover>tbody>tr>th.success:hover,
|
| 2266 |
+
.table-hover>tbody>tr.success:hover>td,
|
| 2267 |
+
.table-hover>tbody>tr:hover>.success,
|
| 2268 |
+
.table-hover>tbody>tr.success:hover>th {
|
| 2269 |
+
background-color: #d0e9c6
|
| 2270 |
+
}
|
| 2271 |
+
.table>thead>tr>td.info,
|
| 2272 |
+
.table>tbody>tr>td.info,
|
| 2273 |
+
.table>tfoot>tr>td.info,
|
| 2274 |
+
.table>thead>tr>th.info,
|
| 2275 |
+
.table>tbody>tr>th.info,
|
| 2276 |
+
.table>tfoot>tr>th.info,
|
| 2277 |
+
.table>thead>tr.info>td,
|
| 2278 |
+
.table>tbody>tr.info>td,
|
| 2279 |
+
.table>tfoot>tr.info>td,
|
| 2280 |
+
.table>thead>tr.info>th,
|
| 2281 |
+
.table>tbody>tr.info>th,
|
| 2282 |
+
.table>tfoot>tr.info>th {
|
| 2283 |
+
background-color: #d9edf7
|
| 2284 |
+
}
|
| 2285 |
+
.table-hover>tbody>tr>td.info:hover,
|
| 2286 |
+
.table-hover>tbody>tr>th.info:hover,
|
| 2287 |
+
.table-hover>tbody>tr.info:hover>td,
|
| 2288 |
+
.table-hover>tbody>tr:hover>.info,
|
| 2289 |
+
.table-hover>tbody>tr.info:hover>th {
|
| 2290 |
+
background-color: #c4e3f3
|
| 2291 |
+
}
|
| 2292 |
+
.table>thead>tr>td.warning,
|
| 2293 |
+
.table>tbody>tr>td.warning,
|
| 2294 |
+
.table>tfoot>tr>td.warning,
|
| 2295 |
+
.table>thead>tr>th.warning,
|
| 2296 |
+
.table>tbody>tr>th.warning,
|
| 2297 |
+
.table>tfoot>tr>th.warning,
|
| 2298 |
+
.table>thead>tr.warning>td,
|
| 2299 |
+
.table>tbody>tr.warning>td,
|
| 2300 |
+
.table>tfoot>tr.warning>td,
|
| 2301 |
+
.table>thead>tr.warning>th,
|
| 2302 |
+
.table>tbody>tr.warning>th,
|
| 2303 |
+
.table>tfoot>tr.warning>th {
|
| 2304 |
+
background-color: #fcf8e3
|
| 2305 |
+
}
|
| 2306 |
+
.table-hover>tbody>tr>td.warning:hover,
|
| 2307 |
+
.table-hover>tbody>tr>th.warning:hover,
|
| 2308 |
+
.table-hover>tbody>tr.warning:hover>td,
|
| 2309 |
+
.table-hover>tbody>tr:hover>.warning,
|
| 2310 |
+
.table-hover>tbody>tr.warning:hover>th {
|
| 2311 |
+
background-color: #faf2cc
|
| 2312 |
+
}
|
| 2313 |
+
.table>thead>tr>td.danger,
|
| 2314 |
+
.table>tbody>tr>td.danger,
|
| 2315 |
+
.table>tfoot>tr>td.danger,
|
| 2316 |
+
.table>thead>tr>th.danger,
|
| 2317 |
+
.table>tbody>tr>th.danger,
|
| 2318 |
+
.table>tfoot>tr>th.danger,
|
| 2319 |
+
.table>thead>tr.danger>td,
|
| 2320 |
+
.table>tbody>tr.danger>td,
|
| 2321 |
+
.table>tfoot>tr.danger>td,
|
| 2322 |
+
.table>thead>tr.danger>th,
|
| 2323 |
+
.table>tbody>tr.danger>th,
|
| 2324 |
+
.table>tfoot>tr.danger>th {
|
| 2325 |
+
background-color: #f2dede
|
| 2326 |
+
}
|
| 2327 |
+
.table-hover>tbody>tr>td.danger:hover,
|
| 2328 |
+
.table-hover>tbody>tr>th.danger:hover,
|
| 2329 |
+
.table-hover>tbody>tr.danger:hover>td,
|
| 2330 |
+
.table-hover>tbody>tr:hover>.danger,
|
| 2331 |
+
.table-hover>tbody>tr.danger:hover>th {
|
| 2332 |
+
background-color: #ebcccc
|
| 2333 |
+
}
|
| 2334 |
+
@media screen and (max-width: 767px) {
|
| 2335 |
+
.table-responsive {
|
| 2336 |
+
width: 100%;
|
| 2337 |
+
margin-bottom: 15px;
|
| 2338 |
+
overflow-x: auto;
|
| 2339 |
+
overflow-y: hidden;
|
| 2340 |
+
-webkit-overflow-scrolling: touch;
|
| 2341 |
+
-ms-overflow-style: -ms-autohiding-scrollbar;
|
| 2342 |
+
border: 1px solid #ddd
|
| 2343 |
+
}
|
| 2344 |
+
.table-responsive>.table {
|
| 2345 |
+
margin-bottom: 0
|
| 2346 |
+
}
|
| 2347 |
+
.table-responsive>.table>thead>tr>th,
|
| 2348 |
+
.table-responsive>.table>tbody>tr>th,
|
| 2349 |
+
.table-responsive>.table>tfoot>tr>th,
|
| 2350 |
+
.table-responsive>.table>thead>tr>td,
|
| 2351 |
+
.table-responsive>.table>tbody>tr>td,
|
| 2352 |
+
.table-responsive>.table>tfoot>tr>td {
|
| 2353 |
+
white-space: nowrap
|
| 2354 |
+
}
|
| 2355 |
+
.table-responsive>.table-bordered {
|
| 2356 |
+
border: 0
|
| 2357 |
+
}
|
| 2358 |
+
.table-responsive>.table-bordered>thead>tr>th:first-child,
|
| 2359 |
+
.table-responsive>.table-bordered>tbody>tr>th:first-child,
|
| 2360 |
+
.table-responsive>.table-bordered>tfoot>tr>th:first-child,
|
| 2361 |
+
.table-responsive>.table-bordered>thead>tr>td:first-child,
|
| 2362 |
+
.table-responsive>.table-bordered>tbody>tr>td:first-child,
|
| 2363 |
+
.table-responsive>.table-bordered>tfoot>tr>td:first-child {
|
| 2364 |
+
border-left: 0
|
| 2365 |
+
}
|
| 2366 |
+
.table-responsive>.table-bordered>thead>tr>th:last-child,
|
| 2367 |
+
.table-responsive>.table-bordered>tbody>tr>th:last-child,
|
| 2368 |
+
.table-responsive>.table-bordered>tfoot>tr>th:last-child,
|
| 2369 |
+
.table-responsive>.table-bordered>thead>tr>td:last-child,
|
| 2370 |
+
.table-responsive>.table-bordered>tbody>tr>td:last-child,
|
| 2371 |
+
.table-responsive>.table-bordered>tfoot>tr>td:last-child {
|
| 2372 |
+
border-right: 0
|
| 2373 |
+
}
|
| 2374 |
+
.table-responsive>.table-bordered>tbody>tr:last-child>th,
|
| 2375 |
+
.table-responsive>.table-bordered>tfoot>tr:last-child>th,
|
| 2376 |
+
.table-responsive>.table-bordered>tbody>tr:last-child>td,
|
| 2377 |
+
.table-responsive>.table-bordered>tfoot>tr:last-child>td {
|
| 2378 |
+
border-bottom: 0
|
| 2379 |
+
}
|
| 2380 |
+
}
|
| 2381 |
+
fieldset {
|
| 2382 |
+
min-width: 0;
|
| 2383 |
+
padding: 0;
|
| 2384 |
+
margin: 0;
|
| 2385 |
+
border: 0
|
| 2386 |
+
}
|
| 2387 |
+
legend {
|
| 2388 |
+
display: block;
|
| 2389 |
+
width: 100%;
|
| 2390 |
+
padding: 0;
|
| 2391 |
+
margin-bottom: 20px;
|
| 2392 |
+
font-size: 21px;
|
| 2393 |
+
line-height: inherit;
|
| 2394 |
+
color: #333;
|
| 2395 |
+
border: 0;
|
| 2396 |
+
border-bottom: 1px solid #e5e5e5
|
| 2397 |
+
}
|
| 2398 |
+
label {
|
| 2399 |
+
display: inline-block;
|
| 2400 |
+
max-width: 100%;
|
| 2401 |
+
margin-bottom: 5px;
|
| 2402 |
+
font-weight: 700
|
| 2403 |
+
}
|
| 2404 |
+
input[type=search] {
|
| 2405 |
+
-webkit-box-sizing: border-box;
|
| 2406 |
+
-moz-box-sizing: border-box;
|
| 2407 |
+
box-sizing: border-box
|
| 2408 |
+
}
|
| 2409 |
+
input[type=radio],
|
| 2410 |
+
input[type=checkbox] {
|
| 2411 |
+
margin: 4px 0 0;
|
| 2412 |
+
margin-top: 1px \9;
|
| 2413 |
+
line-height: normal
|
| 2414 |
+
}
|
| 2415 |
+
input[type=file] {
|
| 2416 |
+
display: block
|
| 2417 |
+
}
|
| 2418 |
+
input[type=range] {
|
| 2419 |
+
display: block;
|
| 2420 |
+
width: 100%
|
| 2421 |
+
}
|
| 2422 |
+
select[multiple],
|
| 2423 |
+
select[size] {
|
| 2424 |
+
height: auto
|
| 2425 |
+
}
|
| 2426 |
+
input[type=file]:focus,
|
| 2427 |
+
input[type=radio]:focus,
|
| 2428 |
+
input[type=checkbox]:focus {
|
| 2429 |
+
outline: thin dotted;
|
| 2430 |
+
outline: 5px auto -webkit-focus-ring-color;
|
| 2431 |
+
outline-offset: -2px
|
| 2432 |
+
}
|
| 2433 |
+
output {
|
| 2434 |
+
display: block;
|
| 2435 |
+
padding-top: 7px;
|
| 2436 |
+
font-size: 14px;
|
| 2437 |
+
line-height: 1.42857143;
|
| 2438 |
+
color: #555
|
| 2439 |
+
}
|
| 2440 |
+
.form-control {
|
| 2441 |
+
display: block;
|
| 2442 |
+
width: 100%;
|
| 2443 |
+
height: 34px;
|
| 2444 |
+
padding: 6px 12px;
|
| 2445 |
+
font-size: 14px;
|
| 2446 |
+
line-height: 1.42857143;
|
| 2447 |
+
color: #555;
|
| 2448 |
+
background-color: #fff;
|
| 2449 |
+
background-image: none;
|
| 2450 |
+
border: 1px solid #ccc;
|
| 2451 |
+
border-radius: 4px;
|
| 2452 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
| 2453 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
| 2454 |
+
-webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
|
| 2455 |
+
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
| 2456 |
+
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s
|
| 2457 |
+
}
|
| 2458 |
+
.form-control:focus {
|
| 2459 |
+
border-color: #66afe9;
|
| 2460 |
+
outline: 0;
|
| 2461 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
|
| 2462 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6)
|
| 2463 |
+
}
|
| 2464 |
+
.form-control::-moz-placeholder {
|
| 2465 |
+
color: #777;
|
| 2466 |
+
opacity: 1
|
| 2467 |
+
}
|
| 2468 |
+
.form-control:-ms-input-placeholder {
|
| 2469 |
+
color: #777
|
| 2470 |
+
}
|
| 2471 |
+
.form-control::-webkit-input-placeholder {
|
| 2472 |
+
color: #777
|
| 2473 |
+
}
|
| 2474 |
+
.form-control[disabled],
|
| 2475 |
+
.form-control[readonly],
|
| 2476 |
+
fieldset[disabled] .form-control {
|
| 2477 |
+
cursor: not-allowed;
|
| 2478 |
+
background-color: #eee;
|
| 2479 |
+
opacity: 1
|
| 2480 |
+
}
|
| 2481 |
+
textarea.form-control {
|
| 2482 |
+
height: auto
|
| 2483 |
+
}
|
| 2484 |
+
input[type=search] {
|
| 2485 |
+
-webkit-appearance: none
|
| 2486 |
+
}
|
| 2487 |
+
input[type=date],
|
| 2488 |
+
input[type=time],
|
| 2489 |
+
input[type=datetime-local],
|
| 2490 |
+
input[type=month] {
|
| 2491 |
+
line-height: 34px;
|
| 2492 |
+
line-height: 1.42857143 \0
|
| 2493 |
+
}
|
| 2494 |
+
input[type=date].input-sm,
|
| 2495 |
+
input[type=time].input-sm,
|
| 2496 |
+
input[type=datetime-local].input-sm,
|
| 2497 |
+
input[type=month].input-sm {
|
| 2498 |
+
line-height: 30px
|
| 2499 |
+
}
|
| 2500 |
+
input[type=date].input-lg,
|
| 2501 |
+
input[type=time].input-lg,
|
| 2502 |
+
input[type=datetime-local].input-lg,
|
| 2503 |
+
input[type=month].input-lg {
|
| 2504 |
+
line-height: 46px
|
| 2505 |
+
}
|
| 2506 |
+
.form-group {
|
| 2507 |
+
margin-bottom: 15px
|
| 2508 |
+
}
|
| 2509 |
+
.radio,
|
| 2510 |
+
.checkbox {
|
| 2511 |
+
position: relative;
|
| 2512 |
+
display: block;
|
| 2513 |
+
min-height: 20px;
|
| 2514 |
+
margin-top: 10px;
|
| 2515 |
+
margin-bottom: 10px
|
| 2516 |
+
}
|
| 2517 |
+
.radio label,
|
| 2518 |
+
.checkbox label {
|
| 2519 |
+
padding-left: 20px;
|
| 2520 |
+
margin-bottom: 0;
|
| 2521 |
+
font-weight: 400;
|
| 2522 |
+
cursor: pointer
|
| 2523 |
+
}
|
| 2524 |
+
.radio input[type=radio],
|
| 2525 |
+
.radio-inline input[type=radio],
|
| 2526 |
+
.checkbox input[type=checkbox],
|
| 2527 |
+
.checkbox-inline input[type=checkbox] {
|
| 2528 |
+
position: absolute;
|
| 2529 |
+
margin-top: 4px \9;
|
| 2530 |
+
margin-left: -20px
|
| 2531 |
+
}
|
| 2532 |
+
.radio+.radio,
|
| 2533 |
+
.checkbox+.checkbox {
|
| 2534 |
+
margin-top: -5px
|
| 2535 |
+
}
|
| 2536 |
+
.radio-inline,
|
| 2537 |
+
.checkbox-inline {
|
| 2538 |
+
display: inline-block;
|
| 2539 |
+
padding-left: 20px;
|
| 2540 |
+
margin-bottom: 0;
|
| 2541 |
+
font-weight: 400;
|
| 2542 |
+
vertical-align: middle;
|
| 2543 |
+
cursor: pointer
|
| 2544 |
+
}
|
| 2545 |
+
.radio-inline+.radio-inline,
|
| 2546 |
+
.checkbox-inline+.checkbox-inline {
|
| 2547 |
+
margin-top: 0;
|
| 2548 |
+
margin-left: 10px
|
| 2549 |
+
}
|
| 2550 |
+
input[type=radio][disabled],
|
| 2551 |
+
input[type=checkbox][disabled],
|
| 2552 |
+
input[type=radio].disabled,
|
| 2553 |
+
input[type=checkbox].disabled,
|
| 2554 |
+
fieldset[disabled] input[type=radio],
|
| 2555 |
+
fieldset[disabled] input[type=checkbox] {
|
| 2556 |
+
cursor: not-allowed
|
| 2557 |
+
}
|
| 2558 |
+
.radio-inline.disabled,
|
| 2559 |
+
.checkbox-inline.disabled,
|
| 2560 |
+
fieldset[disabled] .radio-inline,
|
| 2561 |
+
fieldset[disabled] .checkbox-inline {
|
| 2562 |
+
cursor: not-allowed
|
| 2563 |
+
}
|
| 2564 |
+
.radio.disabled label,
|
| 2565 |
+
.checkbox.disabled label,
|
| 2566 |
+
fieldset[disabled] .radio label,
|
| 2567 |
+
fieldset[disabled] .checkbox label {
|
| 2568 |
+
cursor: not-allowed
|
| 2569 |
+
}
|
| 2570 |
+
.form-control-static {
|
| 2571 |
+
padding-top: 7px;
|
| 2572 |
+
padding-bottom: 7px;
|
| 2573 |
+
margin-bottom: 0
|
| 2574 |
+
}
|
| 2575 |
+
.form-control-static.input-lg,
|
| 2576 |
+
.form-control-static.input-sm {
|
| 2577 |
+
padding-right: 0;
|
| 2578 |
+
padding-left: 0
|
| 2579 |
+
}
|
| 2580 |
+
.input-sm,
|
| 2581 |
+
.form-horizontal .form-group-sm .form-control {
|
| 2582 |
+
height: 30px;
|
| 2583 |
+
padding: 5px 10px;
|
| 2584 |
+
font-size: 12px;
|
| 2585 |
+
line-height: 1.5;
|
| 2586 |
+
border-radius: 3px
|
| 2587 |
+
}
|
| 2588 |
+
select.input-sm {
|
| 2589 |
+
height: 30px;
|
| 2590 |
+
line-height: 30px
|
| 2591 |
+
}
|
| 2592 |
+
textarea.input-sm,
|
| 2593 |
+
select[multiple].input-sm {
|
| 2594 |
+
height: auto
|
| 2595 |
+
}
|
| 2596 |
+
.input-lg,
|
| 2597 |
+
.form-horizontal .form-group-lg .form-control {
|
| 2598 |
+
height: 46px;
|
| 2599 |
+
padding: 10px 16px;
|
| 2600 |
+
font-size: 18px;
|
| 2601 |
+
line-height: 1.33;
|
| 2602 |
+
border-radius: 6px
|
| 2603 |
+
}
|
| 2604 |
+
select.input-lg {
|
| 2605 |
+
height: 46px;
|
| 2606 |
+
line-height: 46px
|
| 2607 |
+
}
|
| 2608 |
+
textarea.input-lg,
|
| 2609 |
+
select[multiple].input-lg {
|
| 2610 |
+
height: auto
|
| 2611 |
+
}
|
| 2612 |
+
.has-feedback {
|
| 2613 |
+
position: relative
|
| 2614 |
+
}
|
| 2615 |
+
.has-feedback .form-control {
|
| 2616 |
+
padding-right: 42.5px
|
| 2617 |
+
}
|
| 2618 |
+
.form-control-feedback {
|
| 2619 |
+
position: absolute;
|
| 2620 |
+
top: 25px;
|
| 2621 |
+
right: 0;
|
| 2622 |
+
z-index: 2;
|
| 2623 |
+
display: block;
|
| 2624 |
+
width: 34px;
|
| 2625 |
+
height: 34px;
|
| 2626 |
+
line-height: 34px;
|
| 2627 |
+
text-align: center
|
| 2628 |
+
}
|
| 2629 |
+
.input-lg+.form-control-feedback {
|
| 2630 |
+
width: 46px;
|
| 2631 |
+
height: 46px;
|
| 2632 |
+
line-height: 46px
|
| 2633 |
+
}
|
| 2634 |
+
.input-sm+.form-control-feedback {
|
| 2635 |
+
width: 30px;
|
| 2636 |
+
height: 30px;
|
| 2637 |
+
line-height: 30px
|
| 2638 |
+
}
|
| 2639 |
+
.has-success .help-block,
|
| 2640 |
+
.has-success .control-label,
|
| 2641 |
+
.has-success .radio,
|
| 2642 |
+
.has-success .checkbox,
|
| 2643 |
+
.has-success .radio-inline,
|
| 2644 |
+
.has-success .checkbox-inline {
|
| 2645 |
+
color: #3c763d
|
| 2646 |
+
}
|
| 2647 |
+
.has-success .form-control {
|
| 2648 |
+
border-color: #3c763d;
|
| 2649 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
| 2650 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075)
|
| 2651 |
+
}
|
| 2652 |
+
.has-success .form-control:focus {
|
| 2653 |
+
border-color: #2b542c;
|
| 2654 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
|
| 2655 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168
|
| 2656 |
+
}
|
| 2657 |
+
.has-success .input-group-addon {
|
| 2658 |
+
color: #3c763d;
|
| 2659 |
+
background-color: #dff0d8;
|
| 2660 |
+
border-color: #3c763d
|
| 2661 |
+
}
|
| 2662 |
+
.has-success .form-control-feedback {
|
| 2663 |
+
color: #3c763d
|
| 2664 |
+
}
|
| 2665 |
+
.has-warning .help-block,
|
| 2666 |
+
.has-warning .control-label,
|
| 2667 |
+
.has-warning .radio,
|
| 2668 |
+
.has-warning .checkbox,
|
| 2669 |
+
.has-warning .radio-inline,
|
| 2670 |
+
.has-warning .checkbox-inline {
|
| 2671 |
+
color: #8a6d3b
|
| 2672 |
+
}
|
| 2673 |
+
.has-warning .form-control {
|
| 2674 |
+
border-color: #8a6d3b;
|
| 2675 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
| 2676 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075)
|
| 2677 |
+
}
|
| 2678 |
+
.has-warning .form-control:focus {
|
| 2679 |
+
border-color: #66512c;
|
| 2680 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
|
| 2681 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b
|
| 2682 |
+
}
|
| 2683 |
+
.has-warning .input-group-addon {
|
| 2684 |
+
color: #8a6d3b;
|
| 2685 |
+
background-color: #fcf8e3;
|
| 2686 |
+
border-color: #8a6d3b
|
| 2687 |
+
}
|
| 2688 |
+
.has-warning .form-control-feedback {
|
| 2689 |
+
color: #8a6d3b
|
| 2690 |
+
}
|
| 2691 |
+
.has-error .help-block,
|
| 2692 |
+
.has-error .control-label,
|
| 2693 |
+
.has-error .radio,
|
| 2694 |
+
.has-error .checkbox,
|
| 2695 |
+
.has-error .radio-inline,
|
| 2696 |
+
.has-error .checkbox-inline {
|
| 2697 |
+
color: #a94442
|
| 2698 |
+
}
|
| 2699 |
+
.has-error .form-control {
|
| 2700 |
+
border-color: #a94442;
|
| 2701 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
| 2702 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075)
|
| 2703 |
+
}
|
| 2704 |
+
.has-error .form-control:focus {
|
| 2705 |
+
border-color: #843534;
|
| 2706 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
|
| 2707 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483
|
| 2708 |
+
}
|
| 2709 |
+
.has-error .input-group-addon {
|
| 2710 |
+
color: #a94442;
|
| 2711 |
+
background-color: #f2dede;
|
| 2712 |
+
border-color: #a94442
|
| 2713 |
+
}
|
| 2714 |
+
.has-error .form-control-feedback {
|
| 2715 |
+
color: #a94442
|
| 2716 |
+
}
|
| 2717 |
+
.has-feedback label.sr-only~.form-control-feedback {
|
| 2718 |
+
top: 0
|
| 2719 |
+
}
|
| 2720 |
+
.help-block {
|
| 2721 |
+
display: block;
|
| 2722 |
+
margin-top: 5px;
|
| 2723 |
+
margin-bottom: 10px;
|
| 2724 |
+
color: #737373
|
| 2725 |
+
}
|
| 2726 |
+
@media (min-width: 768px) {
|
| 2727 |
+
.form-inline .form-group {
|
| 2728 |
+
display: inline-block;
|
| 2729 |
+
margin-bottom: 0;
|
| 2730 |
+
vertical-align: middle
|
| 2731 |
+
}
|
| 2732 |
+
.form-inline .form-control {
|
| 2733 |
+
display: inline-block;
|
| 2734 |
+
width: auto;
|
| 2735 |
+
vertical-align: middle
|
| 2736 |
+
}
|
| 2737 |
+
.form-inline .input-group {
|
| 2738 |
+
display: inline-table;
|
| 2739 |
+
vertical-align: middle
|
| 2740 |
+
}
|
| 2741 |
+
.form-inline .input-group .input-group-addon,
|
| 2742 |
+
.form-inline .input-group .input-group-btn,
|
| 2743 |
+
.form-inline .input-group .form-control {
|
| 2744 |
+
width: auto
|
| 2745 |
+
}
|
| 2746 |
+
.form-inline .input-group>.form-control {
|
| 2747 |
+
width: 100%
|
| 2748 |
+
}
|
| 2749 |
+
.form-inline .control-label {
|
| 2750 |
+
margin-bottom: 0;
|
| 2751 |
+
vertical-align: middle
|
| 2752 |
+
}
|
| 2753 |
+
.form-inline .radio,
|
| 2754 |
+
.form-inline .checkbox {
|
| 2755 |
+
display: inline-block;
|
| 2756 |
+
margin-top: 0;
|
| 2757 |
+
margin-bottom: 0;
|
| 2758 |
+
vertical-align: middle
|
| 2759 |
+
}
|
| 2760 |
+
.form-inline .radio label,
|
| 2761 |
+
.form-inline .checkbox label {
|
| 2762 |
+
padding-left: 0
|
| 2763 |
+
}
|
| 2764 |
+
.form-inline .radio input[type=radio],
|
| 2765 |
+
.form-inline .checkbox input[type=checkbox] {
|
| 2766 |
+
position: relative;
|
| 2767 |
+
margin-left: 0
|
| 2768 |
+
}
|
| 2769 |
+
.form-inline .has-feedback .form-control-feedback {
|
| 2770 |
+
top: 0
|
| 2771 |
+
}
|
| 2772 |
+
}
|
| 2773 |
+
.form-horizontal .radio,
|
| 2774 |
+
.form-horizontal .checkbox,
|
| 2775 |
+
.form-horizontal .radio-inline,
|
| 2776 |
+
.form-horizontal .checkbox-inline {
|
| 2777 |
+
padding-top: 7px;
|
| 2778 |
+
margin-top: 0;
|
| 2779 |
+
margin-bottom: 0
|
| 2780 |
+
}
|
| 2781 |
+
.form-horizontal .radio,
|
| 2782 |
+
.form-horizontal .checkbox {
|
| 2783 |
+
min-height: 27px
|
| 2784 |
+
}
|
| 2785 |
+
.form-horizontal .form-group {
|
| 2786 |
+
margin-right: -15px;
|
| 2787 |
+
margin-left: -15px
|
| 2788 |
+
}
|
| 2789 |
+
@media (min-width: 768px) {
|
| 2790 |
+
.form-horizontal .control-label {
|
| 2791 |
+
padding-top: 7px;
|
| 2792 |
+
margin-bottom: 0;
|
| 2793 |
+
text-align: right
|
| 2794 |
+
}
|
| 2795 |
+
}
|
| 2796 |
+
.form-horizontal .has-feedback .form-control-feedback {
|
| 2797 |
+
top: 0;
|
| 2798 |
+
right: 15px
|
| 2799 |
+
}
|
| 2800 |
+
@media (min-width: 768px) {
|
| 2801 |
+
.form-horizontal .form-group-lg .control-label {
|
| 2802 |
+
padding-top: 14.3px
|
| 2803 |
+
}
|
| 2804 |
+
}
|
| 2805 |
+
@media (min-width: 768px) {
|
| 2806 |
+
.form-horizontal .form-group-sm .control-label {
|
| 2807 |
+
padding-top: 6px
|
| 2808 |
+
}
|
| 2809 |
+
}
|
| 2810 |
+
.btn {
|
| 2811 |
+
display: inline-block;
|
| 2812 |
+
padding: 6px 12px;
|
| 2813 |
+
margin-bottom: 0;
|
| 2814 |
+
font-size: 14px;
|
| 2815 |
+
font-weight: 400;
|
| 2816 |
+
line-height: 1.42857143;
|
| 2817 |
+
text-align: center;
|
| 2818 |
+
white-space: nowrap;
|
| 2819 |
+
vertical-align: middle;
|
| 2820 |
+
cursor: pointer;
|
| 2821 |
+
-webkit-user-select: none;
|
| 2822 |
+
-moz-user-select: none;
|
| 2823 |
+
-ms-user-select: none;
|
| 2824 |
+
user-select: none;
|
| 2825 |
+
background-image: none;
|
| 2826 |
+
border: 1px solid transparent;
|
| 2827 |
+
border-radius: 4px
|
| 2828 |
+
}
|
| 2829 |
+
.btn:focus,
|
| 2830 |
+
.btn:active:focus,
|
| 2831 |
+
.btn.active:focus {
|
| 2832 |
+
outline: thin dotted;
|
| 2833 |
+
outline: 5px auto -webkit-focus-ring-color;
|
| 2834 |
+
outline-offset: -2px
|
| 2835 |
+
}
|
| 2836 |
+
.btn:hover,
|
| 2837 |
+
.btn:focus {
|
| 2838 |
+
color: #333;
|
| 2839 |
+
text-decoration: none
|
| 2840 |
+
}
|
| 2841 |
+
.btn:active,
|
| 2842 |
+
.btn.active {
|
| 2843 |
+
background-image: none;
|
| 2844 |
+
outline: 0;
|
| 2845 |
+
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
|
| 2846 |
+
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125)
|
| 2847 |
+
}
|
| 2848 |
+
.btn.disabled,
|
| 2849 |
+
.btn[disabled],
|
| 2850 |
+
fieldset[disabled] .btn {
|
| 2851 |
+
pointer-events: none;
|
| 2852 |
+
cursor: not-allowed;
|
| 2853 |
+
filter: alpha(opacity=65);
|
| 2854 |
+
-webkit-box-shadow: none;
|
| 2855 |
+
box-shadow: none;
|
| 2856 |
+
opacity: .65
|
| 2857 |
+
}
|
| 2858 |
+
.btn-default {
|
| 2859 |
+
color: #333;
|
| 2860 |
+
background-color: #fff;
|
| 2861 |
+
border-color: #ccc
|
| 2862 |
+
}
|
| 2863 |
+
.btn-default:hover,
|
| 2864 |
+
.btn-default:focus,
|
| 2865 |
+
.btn-default:active,
|
| 2866 |
+
.btn-default.active,
|
| 2867 |
+
.open>.dropdown-toggle.btn-default {
|
| 2868 |
+
color: #333;
|
| 2869 |
+
background-color: #e6e6e6;
|
| 2870 |
+
border-color: #adadad
|
| 2871 |
+
}
|
| 2872 |
+
.btn-default:active,
|
| 2873 |
+
.btn-default.active,
|
| 2874 |
+
.open>.dropdown-toggle.btn-default {
|
| 2875 |
+
background-image: none
|
| 2876 |
+
}
|
| 2877 |
+
.btn-default.disabled,
|
| 2878 |
+
.btn-default[disabled],
|
| 2879 |
+
fieldset[disabled] .btn-default,
|
| 2880 |
+
.btn-default.disabled:hover,
|
| 2881 |
+
.btn-default[disabled]:hover,
|
| 2882 |
+
fieldset[disabled] .btn-default:hover,
|
| 2883 |
+
.btn-default.disabled:focus,
|
| 2884 |
+
.btn-default[disabled]:focus,
|
| 2885 |
+
fieldset[disabled] .btn-default:focus,
|
| 2886 |
+
.btn-default.disabled:active,
|
| 2887 |
+
.btn-default[disabled]:active,
|
| 2888 |
+
fieldset[disabled] .btn-default:active,
|
| 2889 |
+
.btn-default.disabled.active,
|
| 2890 |
+
.btn-default[disabled].active,
|
| 2891 |
+
fieldset[disabled] .btn-default.active {
|
| 2892 |
+
background-color: #fff;
|
| 2893 |
+
border-color: #ccc
|
| 2894 |
+
}
|
| 2895 |
+
.btn-default .badge {
|
| 2896 |
+
color: #fff;
|
| 2897 |
+
background-color: #333
|
| 2898 |
+
}
|
| 2899 |
+
.btn-primary {
|
| 2900 |
+
color: #fff;
|
| 2901 |
+
background-color: #428bca;
|
| 2902 |
+
border-color: #357ebd
|
| 2903 |
+
}
|
| 2904 |
+
.btn-primary:hover,
|
| 2905 |
+
.btn-primary:focus,
|
| 2906 |
+
.btn-primary:active,
|
| 2907 |
+
.btn-primary.active,
|
| 2908 |
+
.open>.dropdown-toggle.btn-primary {
|
| 2909 |
+
color: #fff;
|
| 2910 |
+
background-color: #3071a9;
|
| 2911 |
+
border-color: #285e8e
|
| 2912 |
+
}
|
| 2913 |
+
.btn-primary:active,
|
| 2914 |
+
.btn-primary.active,
|
| 2915 |
+
.open>.dropdown-toggle.btn-primary {
|
| 2916 |
+
background-image: none
|
| 2917 |
+
}
|
| 2918 |
+
.btn-primary.disabled,
|
| 2919 |
+
.btn-primary[disabled],
|
| 2920 |
+
fieldset[disabled] .btn-primary,
|
| 2921 |
+
.btn-primary.disabled:hover,
|
| 2922 |
+
.btn-primary[disabled]:hover,
|
| 2923 |
+
fieldset[disabled] .btn-primary:hover,
|
| 2924 |
+
.btn-primary.disabled:focus,
|
| 2925 |
+
.btn-primary[disabled]:focus,
|
| 2926 |
+
fieldset[disabled] .btn-primary:focus,
|
| 2927 |
+
.btn-primary.disabled:active,
|
| 2928 |
+
.btn-primary[disabled]:active,
|
| 2929 |
+
fieldset[disabled] .btn-primary:active,
|
| 2930 |
+
.btn-primary.disabled.active,
|
| 2931 |
+
.btn-primary[disabled].active,
|
| 2932 |
+
fieldset[disabled] .btn-primary.active {
|
| 2933 |
+
background-color: #428bca;
|
| 2934 |
+
border-color: #357ebd
|
| 2935 |
+
}
|
| 2936 |
+
.btn-primary .badge {
|
| 2937 |
+
color: #428bca;
|
| 2938 |
+
background-color: #fff
|
| 2939 |
+
}
|
| 2940 |
+
.btn-success {
|
| 2941 |
+
color: #fff;
|
| 2942 |
+
background-color: #5cb85c;
|
| 2943 |
+
border-color: #4cae4c
|
| 2944 |
+
}
|
| 2945 |
+
.btn-success:hover,
|
| 2946 |
+
.btn-success:focus,
|
| 2947 |
+
.btn-success:active,
|
| 2948 |
+
.btn-success.active,
|
| 2949 |
+
.open>.dropdown-toggle.btn-success {
|
| 2950 |
+
color: #fff;
|
| 2951 |
+
background-color: #449d44;
|
| 2952 |
+
border-color: #398439
|
| 2953 |
+
}
|
| 2954 |
+
.btn-success:active,
|
| 2955 |
+
.btn-success.active,
|
| 2956 |
+
.open>.dropdown-toggle.btn-success {
|
| 2957 |
+
background-image: none
|
| 2958 |
+
}
|
| 2959 |
+
.btn-success.disabled,
|
| 2960 |
+
.btn-success[disabled],
|
| 2961 |
+
fieldset[disabled] .btn-success,
|
| 2962 |
+
.btn-success.disabled:hover,
|
| 2963 |
+
.btn-success[disabled]:hover,
|
| 2964 |
+
fieldset[disabled] .btn-success:hover,
|
| 2965 |
+
.btn-success.disabled:focus,
|
| 2966 |
+
.btn-success[disabled]:focus,
|
| 2967 |
+
fieldset[disabled] .btn-success:focus,
|
| 2968 |
+
.btn-success.disabled:active,
|
| 2969 |
+
.btn-success[disabled]:active,
|
| 2970 |
+
fieldset[disabled] .btn-success:active,
|
| 2971 |
+
.btn-success.disabled.active,
|
| 2972 |
+
.btn-success[disabled].active,
|
| 2973 |
+
fieldset[disabled] .btn-success.active {
|
| 2974 |
+
background-color: #5cb85c;
|
| 2975 |
+
border-color: #4cae4c
|
| 2976 |
+
}
|
| 2977 |
+
.btn-success .badge {
|
| 2978 |
+
color: #5cb85c;
|
| 2979 |
+
background-color: #fff
|
| 2980 |
+
}
|
| 2981 |
+
.btn-info {
|
| 2982 |
+
color: #fff;
|
| 2983 |
+
background-color: #5bc0de;
|
| 2984 |
+
border-color: #46b8da
|
| 2985 |
+
}
|
| 2986 |
+
.btn-info:hover,
|
| 2987 |
+
.btn-info:focus,
|
| 2988 |
+
.btn-info:active,
|
| 2989 |
+
.btn-info.active,
|
| 2990 |
+
.open>.dropdown-toggle.btn-info {
|
| 2991 |
+
color: #fff;
|
| 2992 |
+
background-color: #31b0d5;
|
| 2993 |
+
border-color: #269abc
|
| 2994 |
+
}
|
| 2995 |
+
.btn-info:active,
|
| 2996 |
+
.btn-info.active,
|
| 2997 |
+
.open>.dropdown-toggle.btn-info {
|
| 2998 |
+
background-image: none
|
| 2999 |
+
}
|
| 3000 |
+
.btn-info.disabled,
|
| 3001 |
+
.btn-info[disabled],
|
| 3002 |
+
fieldset[disabled] .btn-info,
|
| 3003 |
+
.btn-info.disabled:hover,
|
| 3004 |
+
.btn-info[disabled]:hover,
|
| 3005 |
+
fieldset[disabled] .btn-info:hover,
|
| 3006 |
+
.btn-info.disabled:focus,
|
| 3007 |
+
.btn-info[disabled]:focus,
|
| 3008 |
+
fieldset[disabled] .btn-info:focus,
|
| 3009 |
+
.btn-info.disabled:active,
|
| 3010 |
+
.btn-info[disabled]:active,
|
| 3011 |
+
fieldset[disabled] .btn-info:active,
|
| 3012 |
+
.btn-info.disabled.active,
|
| 3013 |
+
.btn-info[disabled].active,
|
| 3014 |
+
fieldset[disabled] .btn-info.active {
|
| 3015 |
+
background-color: #5bc0de;
|
| 3016 |
+
border-color: #46b8da
|
| 3017 |
+
}
|
| 3018 |
+
.btn-info .badge {
|
| 3019 |
+
color: #5bc0de;
|
| 3020 |
+
background-color: #fff
|
| 3021 |
+
}
|
| 3022 |
+
.btn-warning {
|
| 3023 |
+
color: #fff;
|
| 3024 |
+
background-color: #f0ad4e;
|
| 3025 |
+
border-color: #eea236
|
| 3026 |
+
}
|
| 3027 |
+
.btn-warning:hover,
|
| 3028 |
+
.btn-warning:focus,
|
| 3029 |
+
.btn-warning:active,
|
| 3030 |
+
.btn-warning.active,
|
| 3031 |
+
.open>.dropdown-toggle.btn-warning {
|
| 3032 |
+
color: #fff;
|
| 3033 |
+
background-color: #ec971f;
|
| 3034 |
+
border-color: #d58512
|
| 3035 |
+
}
|
| 3036 |
+
.btn-warning:active,
|
| 3037 |
+
.btn-warning.active,
|
| 3038 |
+
.open>.dropdown-toggle.btn-warning {
|
| 3039 |
+
background-image: none
|
| 3040 |
+
}
|
| 3041 |
+
.btn-warning.disabled,
|
| 3042 |
+
.btn-warning[disabled],
|
| 3043 |
+
fieldset[disabled] .btn-warning,
|
| 3044 |
+
.btn-warning.disabled:hover,
|
| 3045 |
+
.btn-warning[disabled]:hover,
|
| 3046 |
+
fieldset[disabled] .btn-warning:hover,
|
| 3047 |
+
.btn-warning.disabled:focus,
|
| 3048 |
+
.btn-warning[disabled]:focus,
|
| 3049 |
+
fieldset[disabled] .btn-warning:focus,
|
| 3050 |
+
.btn-warning.disabled:active,
|
| 3051 |
+
.btn-warning[disabled]:active,
|
| 3052 |
+
fieldset[disabled] .btn-warning:active,
|
| 3053 |
+
.btn-warning.disabled.active,
|
| 3054 |
+
.btn-warning[disabled].active,
|
| 3055 |
+
fieldset[disabled] .btn-warning.active {
|
| 3056 |
+
background-color: #f0ad4e;
|
| 3057 |
+
border-color: #eea236
|
| 3058 |
+
}
|
| 3059 |
+
.btn-warning .badge {
|
| 3060 |
+
color: #f0ad4e;
|
| 3061 |
+
background-color: #fff
|
| 3062 |
+
}
|
| 3063 |
+
.btn-danger {
|
| 3064 |
+
color: #fff;
|
| 3065 |
+
background-color: #d9534f;
|
| 3066 |
+
border-color: #d43f3a
|
| 3067 |
+
}
|
| 3068 |
+
.btn-danger:hover,
|
| 3069 |
+
.btn-danger:focus,
|
| 3070 |
+
.btn-danger:active,
|
| 3071 |
+
.btn-danger.active,
|
| 3072 |
+
.open>.dropdown-toggle.btn-danger {
|
| 3073 |
+
color: #fff;
|
| 3074 |
+
background-color: #c9302c;
|
| 3075 |
+
border-color: #ac2925
|
| 3076 |
+
}
|
| 3077 |
+
.btn-danger:active,
|
| 3078 |
+
.btn-danger.active,
|
| 3079 |
+
.open>.dropdown-toggle.btn-danger {
|
| 3080 |
+
background-image: none
|
| 3081 |
+
}
|
| 3082 |
+
.btn-danger.disabled,
|
| 3083 |
+
.btn-danger[disabled],
|
| 3084 |
+
fieldset[disabled] .btn-danger,
|
| 3085 |
+
.btn-danger.disabled:hover,
|
| 3086 |
+
.btn-danger[disabled]:hover,
|
| 3087 |
+
fieldset[disabled] .btn-danger:hover,
|
| 3088 |
+
.btn-danger.disabled:focus,
|
| 3089 |
+
.btn-danger[disabled]:focus,
|
| 3090 |
+
fieldset[disabled] .btn-danger:focus,
|
| 3091 |
+
.btn-danger.disabled:active,
|
| 3092 |
+
.btn-danger[disabled]:active,
|
| 3093 |
+
fieldset[disabled] .btn-danger:active,
|
| 3094 |
+
.btn-danger.disabled.active,
|
| 3095 |
+
.btn-danger[disabled].active,
|
| 3096 |
+
fieldset[disabled] .btn-danger.active {
|
| 3097 |
+
background-color: #d9534f;
|
| 3098 |
+
border-color: #d43f3a
|
| 3099 |
+
}
|
| 3100 |
+
.btn-danger .badge {
|
| 3101 |
+
color: #d9534f;
|
| 3102 |
+
background-color: #fff
|
| 3103 |
+
}
|
| 3104 |
+
.btn-link {
|
| 3105 |
+
font-weight: 400;
|
| 3106 |
+
color: #428bca;
|
| 3107 |
+
cursor: pointer;
|
| 3108 |
+
border-radius: 0
|
| 3109 |
+
}
|
| 3110 |
+
.btn-link,
|
| 3111 |
+
.btn-link:active,
|
| 3112 |
+
.btn-link[disabled],
|
| 3113 |
+
fieldset[disabled] .btn-link {
|
| 3114 |
+
background-color: transparent;
|
| 3115 |
+
-webkit-box-shadow: none;
|
| 3116 |
+
box-shadow: none
|
| 3117 |
+
}
|
| 3118 |
+
.btn-link,
|
| 3119 |
+
.btn-link:hover,
|
| 3120 |
+
.btn-link:focus,
|
| 3121 |
+
.btn-link:active {
|
| 3122 |
+
border-color: transparent
|
| 3123 |
+
}
|
| 3124 |
+
.btn-link:hover,
|
| 3125 |
+
.btn-link:focus {
|
| 3126 |
+
color: #2a6496;
|
| 3127 |
+
text-decoration: underline;
|
| 3128 |
+
background-color: transparent
|
| 3129 |
+
}
|
| 3130 |
+
.btn-link[disabled]:hover,
|
| 3131 |
+
fieldset[disabled] .btn-link:hover,
|
| 3132 |
+
.btn-link[disabled]:focus,
|
| 3133 |
+
fieldset[disabled] .btn-link:focus {
|
| 3134 |
+
color: #777;
|
| 3135 |
+
text-decoration: none
|
| 3136 |
+
}
|
| 3137 |
+
.btn-lg,
|
| 3138 |
+
.btn-group-lg>.btn {
|
| 3139 |
+
padding: 10px 16px;
|
| 3140 |
+
font-size: 18px;
|
| 3141 |
+
line-height: 1.33;
|
| 3142 |
+
border-radius: 6px
|
| 3143 |
+
}
|
| 3144 |
+
.btn-sm,
|
| 3145 |
+
.btn-group-sm>.btn {
|
| 3146 |
+
padding: 5px 10px;
|
| 3147 |
+
font-size: 12px;
|
| 3148 |
+
line-height: 1.5;
|
| 3149 |
+
border-radius: 3px
|
| 3150 |
+
}
|
| 3151 |
+
.btn-xs,
|
| 3152 |
+
.btn-group-xs>.btn {
|
| 3153 |
+
padding: 1px 5px;
|
| 3154 |
+
font-size: 12px;
|
| 3155 |
+
line-height: 1.5;
|
| 3156 |
+
border-radius: 3px
|
| 3157 |
+
}
|
| 3158 |
+
.btn-block {
|
| 3159 |
+
display: block;
|
| 3160 |
+
width: 100%
|
| 3161 |
+
}
|
| 3162 |
+
.btn-block+.btn-block {
|
| 3163 |
+
margin-top: 5px
|
| 3164 |
+
}
|
| 3165 |
+
input[type=submit].btn-block,
|
| 3166 |
+
input[type=reset].btn-block,
|
| 3167 |
+
input[type=button].btn-block {
|
| 3168 |
+
width: 100%
|
| 3169 |
+
}
|
| 3170 |
+
.fade {
|
| 3171 |
+
opacity: 0;
|
| 3172 |
+
-webkit-transition: opacity .15s linear;
|
| 3173 |
+
-o-transition: opacity .15s linear;
|
| 3174 |
+
transition: opacity .15s linear
|
| 3175 |
+
}
|
| 3176 |
+
.fade.in {
|
| 3177 |
+
opacity: 1
|
| 3178 |
+
}
|
| 3179 |
+
.collapse {
|
| 3180 |
+
display: none
|
| 3181 |
+
}
|
| 3182 |
+
.collapse.in {
|
| 3183 |
+
display: block
|
| 3184 |
+
}
|
| 3185 |
+
tr.collapse.in {
|
| 3186 |
+
display: table-row
|
| 3187 |
+
}
|
| 3188 |
+
tbody.collapse.in {
|
| 3189 |
+
display: table-row-group
|
| 3190 |
+
}
|
| 3191 |
+
.collapsing {
|
| 3192 |
+
position: relative;
|
| 3193 |
+
height: 0;
|
| 3194 |
+
overflow: hidden;
|
| 3195 |
+
-webkit-transition: height .35s ease;
|
| 3196 |
+
-o-transition: height .35s ease;
|
| 3197 |
+
transition: height .35s ease
|
| 3198 |
+
}
|
| 3199 |
+
.caret {
|
| 3200 |
+
display: inline-block;
|
| 3201 |
+
width: 0;
|
| 3202 |
+
height: 0;
|
| 3203 |
+
margin-left: 2px;
|
| 3204 |
+
vertical-align: middle;
|
| 3205 |
+
border-top: 4px solid;
|
| 3206 |
+
border-right: 4px solid transparent;
|
| 3207 |
+
border-left: 4px solid transparent
|
| 3208 |
+
}
|
| 3209 |
+
.dropdown {
|
| 3210 |
+
position: relative
|
| 3211 |
+
}
|
| 3212 |
+
.dropdown-toggle:focus {
|
| 3213 |
+
outline: 0
|
| 3214 |
+
}
|
| 3215 |
+
.dropdown-menu {
|
| 3216 |
+
position: absolute;
|
| 3217 |
+
top: 100%;
|
| 3218 |
+
left: 0;
|
| 3219 |
+
z-index: 1000;
|
| 3220 |
+
display: none;
|
| 3221 |
+
float: left;
|
| 3222 |
+
min-width: 160px;
|
| 3223 |
+
padding: 5px 0;
|
| 3224 |
+
margin: 2px 0 0;
|
| 3225 |
+
font-size: 14px;
|
| 3226 |
+
text-align: left;
|
| 3227 |
+
list-style: none;
|
| 3228 |
+
background-color: #fff;
|
| 3229 |
+
-webkit-background-clip: padding-box;
|
| 3230 |
+
background-clip: padding-box;
|
| 3231 |
+
border: 1px solid #ccc;
|
| 3232 |
+
border: 1px solid rgba(0, 0, 0, .15);
|
| 3233 |
+
border-radius: 4px;
|
| 3234 |
+
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
|
| 3235 |
+
box-shadow: 0 6px 12px rgba(0, 0, 0, .175)
|
| 3236 |
+
}
|
| 3237 |
+
.dropdown-menu.pull-right {
|
| 3238 |
+
right: 0;
|
| 3239 |
+
left: auto
|
| 3240 |
+
}
|
| 3241 |
+
.dropdown-menu .divider {
|
| 3242 |
+
height: 1px;
|
| 3243 |
+
margin: 9px 0;
|
| 3244 |
+
overflow: hidden;
|
| 3245 |
+
background-color: #e5e5e5
|
| 3246 |
+
}
|
| 3247 |
+
.dropdown-menu>li>a {
|
| 3248 |
+
display: block;
|
| 3249 |
+
padding: 3px 20px;
|
| 3250 |
+
clear: both;
|
| 3251 |
+
font-weight: 400;
|
| 3252 |
+
line-height: 1.42857143;
|
| 3253 |
+
color: #333;
|
| 3254 |
+
white-space: nowrap
|
| 3255 |
+
}
|
| 3256 |
+
.dropdown-menu>li>a:hover,
|
| 3257 |
+
.dropdown-menu>li>a:focus {
|
| 3258 |
+
color: #262626;
|
| 3259 |
+
text-decoration: none;
|
| 3260 |
+
background-color: #f5f5f5
|
| 3261 |
+
}
|
| 3262 |
+
.dropdown-menu>.active>a,
|
| 3263 |
+
.dropdown-menu>.active>a:hover,
|
| 3264 |
+
.dropdown-menu>.active>a:focus {
|
| 3265 |
+
color: #fff;
|
| 3266 |
+
text-decoration: none;
|
| 3267 |
+
background-color: #428bca;
|
| 3268 |
+
outline: 0
|
| 3269 |
+
}
|
| 3270 |
+
.dropdown-menu>.disabled>a,
|
| 3271 |
+
.dropdown-menu>.disabled>a:hover,
|
| 3272 |
+
.dropdown-menu>.disabled>a:focus {
|
| 3273 |
+
color: #777
|
| 3274 |
+
}
|
| 3275 |
+
.dropdown-menu>.disabled>a:hover,
|
| 3276 |
+
.dropdown-menu>.disabled>a:focus {
|
| 3277 |
+
text-decoration: none;
|
| 3278 |
+
cursor: not-allowed;
|
| 3279 |
+
background-color: transparent;
|
| 3280 |
+
background-image: none;
|
| 3281 |
+
filter: progid: DXImageTransform.Microsoft.gradient(enabled=false)
|
| 3282 |
+
}
|
| 3283 |
+
.open>.dropdown-menu {
|
| 3284 |
+
display: block
|
| 3285 |
+
}
|
| 3286 |
+
.open>a {
|
| 3287 |
+
outline: 0
|
| 3288 |
+
}
|
| 3289 |
+
.dropdown-menu-right {
|
| 3290 |
+
right: 0;
|
| 3291 |
+
left: auto
|
| 3292 |
+
}
|
| 3293 |
+
.dropdown-menu-left {
|
| 3294 |
+
right: auto;
|
| 3295 |
+
left: 0
|
| 3296 |
+
}
|
| 3297 |
+
.dropdown-header {
|
| 3298 |
+
display: block;
|
| 3299 |
+
padding: 3px 20px;
|
| 3300 |
+
font-size: 12px;
|
| 3301 |
+
line-height: 1.42857143;
|
| 3302 |
+
color: #777;
|
| 3303 |
+
white-space: nowrap
|
| 3304 |
+
}
|
| 3305 |
+
.dropdown-backdrop {
|
| 3306 |
+
position: fixed;
|
| 3307 |
+
top: 0;
|
| 3308 |
+
right: 0;
|
| 3309 |
+
bottom: 0;
|
| 3310 |
+
left: 0;
|
| 3311 |
+
z-index: 990
|
| 3312 |
+
}
|
| 3313 |
+
.pull-right>.dropdown-menu {
|
| 3314 |
+
right: 0;
|
| 3315 |
+
left: auto
|
| 3316 |
+
}
|
| 3317 |
+
.dropup .caret,
|
| 3318 |
+
.navbar-fixed-bottom .dropdown .caret {
|
| 3319 |
+
content: "";
|
| 3320 |
+
border-top: 0;
|
| 3321 |
+
border-bottom: 4px solid
|
| 3322 |
+
}
|
| 3323 |
+
.dropup .dropdown-menu,
|
| 3324 |
+
.navbar-fixed-bottom .dropdown .dropdown-menu {
|
| 3325 |
+
top: auto;
|
| 3326 |
+
bottom: 100%;
|
| 3327 |
+
margin-bottom: 1px
|
| 3328 |
+
}
|
| 3329 |
+
@media (min-width: 768px) {
|
| 3330 |
+
.navbar-right .dropdown-menu {
|
| 3331 |
+
right: 0;
|
| 3332 |
+
left: auto
|
| 3333 |
+
}
|
| 3334 |
+
.navbar-right .dropdown-menu-left {
|
| 3335 |
+
right: auto;
|
| 3336 |
+
left: 0
|
| 3337 |
+
}
|
| 3338 |
+
}
|
| 3339 |
+
.btn-group,
|
| 3340 |
+
.btn-group-vertical {
|
| 3341 |
+
position: relative;
|
| 3342 |
+
display: inline-block;
|
| 3343 |
+
vertical-align: middle
|
| 3344 |
+
}
|
| 3345 |
+
.btn-group>.btn,
|
| 3346 |
+
.btn-group-vertical>.btn {
|
| 3347 |
+
position: relative;
|
| 3348 |
+
float: left
|
| 3349 |
+
}
|
| 3350 |
+
.btn-group>.btn:hover,
|
| 3351 |
+
.btn-group-vertical>.btn:hover,
|
| 3352 |
+
.btn-group>.btn:focus,
|
| 3353 |
+
.btn-group-vertical>.btn:focus,
|
| 3354 |
+
.btn-group>.btn:active,
|
| 3355 |
+
.btn-group-vertical>.btn:active,
|
| 3356 |
+
.btn-group>.btn.active,
|
| 3357 |
+
.btn-group-vertical>.btn.active {
|
| 3358 |
+
z-index: 2
|
| 3359 |
+
}
|
| 3360 |
+
.btn-group>.btn:focus,
|
| 3361 |
+
.btn-group-vertical>.btn:focus {
|
| 3362 |
+
outline: 0
|
| 3363 |
+
}
|
| 3364 |
+
.btn-group .btn+.btn,
|
| 3365 |
+
.btn-group .btn+.btn-group,
|
| 3366 |
+
.btn-group .btn-group+.btn,
|
| 3367 |
+
.btn-group .btn-group+.btn-group {
|
| 3368 |
+
margin-left: -1px
|
| 3369 |
+
}
|
| 3370 |
+
.btn-toolbar {
|
| 3371 |
+
margin-left: -5px
|
| 3372 |
+
}
|
| 3373 |
+
.btn-toolbar .btn-group,
|
| 3374 |
+
.btn-toolbar .input-group {
|
| 3375 |
+
float: left
|
| 3376 |
+
}
|
| 3377 |
+
.btn-toolbar>.btn,
|
| 3378 |
+
.btn-toolbar>.btn-group,
|
| 3379 |
+
.btn-toolbar>.input-group {
|
| 3380 |
+
margin-left: 5px
|
| 3381 |
+
}
|
| 3382 |
+
.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
|
| 3383 |
+
border-radius: 0
|
| 3384 |
+
}
|
| 3385 |
+
.btn-group>.btn:first-child {
|
| 3386 |
+
margin-left: 0
|
| 3387 |
+
}
|
| 3388 |
+
.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle) {
|
| 3389 |
+
border-top-right-radius: 0;
|
| 3390 |
+
border-bottom-right-radius: 0
|
| 3391 |
+
}
|
| 3392 |
+
.btn-group>.btn:last-child:not(:first-child),
|
| 3393 |
+
.btn-group>.dropdown-toggle:not(:first-child) {
|
| 3394 |
+
border-top-left-radius: 0;
|
| 3395 |
+
border-bottom-left-radius: 0
|
| 3396 |
+
}
|
| 3397 |
+
.btn-group>.btn-group {
|
| 3398 |
+
float: left
|
| 3399 |
+
}
|
| 3400 |
+
.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn {
|
| 3401 |
+
border-radius: 0
|
| 3402 |
+
}
|
| 3403 |
+
.btn-group>.btn-group:first-child>.btn:last-child,
|
| 3404 |
+
.btn-group>.btn-group:first-child>.dropdown-toggle {
|
| 3405 |
+
border-top-right-radius: 0;
|
| 3406 |
+
border-bottom-right-radius: 0
|
| 3407 |
+
}
|
| 3408 |
+
.btn-group>.btn-group:last-child>.btn:first-child {
|
| 3409 |
+
border-top-left-radius: 0;
|
| 3410 |
+
border-bottom-left-radius: 0
|
| 3411 |
+
}
|
| 3412 |
+
.btn-group .dropdown-toggle:active,
|
| 3413 |
+
.btn-group.open .dropdown-toggle {
|
| 3414 |
+
outline: 0
|
| 3415 |
+
}
|
| 3416 |
+
.btn-group>.btn+.dropdown-toggle {
|
| 3417 |
+
padding-right: 8px;
|
| 3418 |
+
padding-left: 8px
|
| 3419 |
+
}
|
| 3420 |
+
.btn-group>.btn-lg+.dropdown-toggle {
|
| 3421 |
+
padding-right: 12px;
|
| 3422 |
+
padding-left: 12px
|
| 3423 |
+
}
|
| 3424 |
+
.btn-group.open .dropdown-toggle {
|
| 3425 |
+
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
|
| 3426 |
+
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125)
|
| 3427 |
+
}
|
| 3428 |
+
.btn-group.open .dropdown-toggle.btn-link {
|
| 3429 |
+
-webkit-box-shadow: none;
|
| 3430 |
+
box-shadow: none
|
| 3431 |
+
}
|
| 3432 |
+
.btn .caret {
|
| 3433 |
+
margin-left: 0
|
| 3434 |
+
}
|
| 3435 |
+
.btn-lg .caret {
|
| 3436 |
+
border-width: 5px 5px 0;
|
| 3437 |
+
border-bottom-width: 0
|
| 3438 |
+
}
|
| 3439 |
+
.dropup .btn-lg .caret {
|
| 3440 |
+
border-width: 0 5px 5px
|
| 3441 |
+
}
|
| 3442 |
+
.btn-group-vertical>.btn,
|
| 3443 |
+
.btn-group-vertical>.btn-group,
|
| 3444 |
+
.btn-group-vertical>.btn-group>.btn {
|
| 3445 |
+
display: block;
|
| 3446 |
+
float: none;
|
| 3447 |
+
width: 100%;
|
| 3448 |
+
max-width: 100%
|
| 3449 |
+
}
|
| 3450 |
+
.btn-group-vertical>.btn-group>.btn {
|
| 3451 |
+
float: none
|
| 3452 |
+
}
|
| 3453 |
+
.btn-group-vertical>.btn+.btn,
|
| 3454 |
+
.btn-group-vertical>.btn+.btn-group,
|
| 3455 |
+
.btn-group-vertical>.btn-group+.btn,
|
| 3456 |
+
.btn-group-vertical>.btn-group+.btn-group {
|
| 3457 |
+
margin-top: -1px;
|
| 3458 |
+
margin-left: 0
|
| 3459 |
+
}
|
| 3460 |
+
.btn-group-vertical>.btn:not(:first-child):not(:last-child) {
|
| 3461 |
+
border-radius: 0
|
| 3462 |
+
}
|
| 3463 |
+
.btn-group-vertical>.btn:first-child:not(:last-child) {
|
| 3464 |
+
border-top-right-radius: 4px;
|
| 3465 |
+
border-bottom-right-radius: 0;
|
| 3466 |
+
border-bottom-left-radius: 0
|
| 3467 |
+
}
|
| 3468 |
+
.btn-group-vertical>.btn:last-child:not(:first-child) {
|
| 3469 |
+
border-top-left-radius: 0;
|
| 3470 |
+
border-top-right-radius: 0;
|
| 3471 |
+
border-bottom-left-radius: 4px
|
| 3472 |
+
}
|
| 3473 |
+
.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn {
|
| 3474 |
+
border-radius: 0
|
| 3475 |
+
}
|
| 3476 |
+
.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,
|
| 3477 |
+
.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle {
|
| 3478 |
+
border-bottom-right-radius: 0;
|
| 3479 |
+
border-bottom-left-radius: 0
|
| 3480 |
+
}
|
| 3481 |
+
.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child {
|
| 3482 |
+
border-top-left-radius: 0;
|
| 3483 |
+
border-top-right-radius: 0
|
| 3484 |
+
}
|
| 3485 |
+
.btn-group-justified {
|
| 3486 |
+
display: table;
|
| 3487 |
+
width: 100%;
|
| 3488 |
+
table-layout: fixed;
|
| 3489 |
+
border-collapse: separate
|
| 3490 |
+
}
|
| 3491 |
+
.btn-group-justified>.btn,
|
| 3492 |
+
.btn-group-justified>.btn-group {
|
| 3493 |
+
display: table-cell;
|
| 3494 |
+
float: none;
|
| 3495 |
+
width: 1%
|
| 3496 |
+
}
|
| 3497 |
+
.btn-group-justified>.btn-group .btn {
|
| 3498 |
+
width: 100%
|
| 3499 |
+
}
|
| 3500 |
+
.btn-group-justified>.btn-group .dropdown-menu {
|
| 3501 |
+
left: auto
|
| 3502 |
+
}
|
| 3503 |
+
[data-toggle=buttons]>.btn>input[type=radio],
|
| 3504 |
+
[data-toggle=buttons]>.btn>input[type=checkbox] {
|
| 3505 |
+
position: absolute;
|
| 3506 |
+
z-index: -1;
|
| 3507 |
+
filter: alpha(opacity=0);
|
| 3508 |
+
opacity: 0
|
| 3509 |
+
}
|
| 3510 |
+
.input-group {
|
| 3511 |
+
position: relative;
|
| 3512 |
+
display: table;
|
| 3513 |
+
border-collapse: separate
|
| 3514 |
+
}
|
| 3515 |
+
.input-group[class*=col-] {
|
| 3516 |
+
float: none;
|
| 3517 |
+
padding-right: 0;
|
| 3518 |
+
padding-left: 0
|
| 3519 |
+
}
|
| 3520 |
+
.input-group .form-control {
|
| 3521 |
+
position: relative;
|
| 3522 |
+
z-index: 2;
|
| 3523 |
+
float: left;
|
| 3524 |
+
width: 100%;
|
| 3525 |
+
margin-bottom: 0
|
| 3526 |
+
}
|
| 3527 |
+
.input-group-lg>.form-control,
|
| 3528 |
+
.input-group-lg>.input-group-addon,
|
| 3529 |
+
.input-group-lg>.input-group-btn>.btn {
|
| 3530 |
+
height: 46px;
|
| 3531 |
+
padding: 10px 16px;
|
| 3532 |
+
font-size: 18px;
|
| 3533 |
+
line-height: 1.33;
|
| 3534 |
+
border-radius: 6px
|
| 3535 |
+
}
|
| 3536 |
+
select.input-group-lg>.form-control,
|
| 3537 |
+
select.input-group-lg>.input-group-addon,
|
| 3538 |
+
select.input-group-lg>.input-group-btn>.btn {
|
| 3539 |
+
height: 46px;
|
| 3540 |
+
line-height: 46px
|
| 3541 |
+
}
|
| 3542 |
+
textarea.input-group-lg>.form-control,
|
| 3543 |
+
textarea.input-group-lg>.input-group-addon,
|
| 3544 |
+
textarea.input-group-lg>.input-group-btn>.btn,
|
| 3545 |
+
select[multiple].input-group-lg>.form-control,
|
| 3546 |
+
select[multiple].input-group-lg>.input-group-addon,
|
| 3547 |
+
select[multiple].input-group-lg>.input-group-btn>.btn {
|
| 3548 |
+
height: auto
|
| 3549 |
+
}
|
| 3550 |
+
.input-group-sm>.form-control,
|
| 3551 |
+
.input-group-sm>.input-group-addon,
|
| 3552 |
+
.input-group-sm>.input-group-btn>.btn {
|
| 3553 |
+
height: 30px;
|
| 3554 |
+
padding: 5px 10px;
|
| 3555 |
+
font-size: 12px;
|
| 3556 |
+
line-height: 1.5;
|
| 3557 |
+
border-radius: 3px
|
| 3558 |
+
}
|
| 3559 |
+
select.input-group-sm>.form-control,
|
| 3560 |
+
select.input-group-sm>.input-group-addon,
|
| 3561 |
+
select.input-group-sm>.input-group-btn>.btn {
|
| 3562 |
+
height: 30px;
|
| 3563 |
+
line-height: 30px
|
| 3564 |
+
}
|
| 3565 |
+
textarea.input-group-sm>.form-control,
|
| 3566 |
+
textarea.input-group-sm>.input-group-addon,
|
| 3567 |
+
textarea.input-group-sm>.input-group-btn>.btn,
|
| 3568 |
+
select[multiple].input-group-sm>.form-control,
|
| 3569 |
+
select[multiple].input-group-sm>.input-group-addon,
|
| 3570 |
+
select[multiple].input-group-sm>.input-group-btn>.btn {
|
| 3571 |
+
height: auto
|
| 3572 |
+
}
|
| 3573 |
+
.input-group-addon,
|
| 3574 |
+
.input-group-btn,
|
| 3575 |
+
.input-group .form-control {
|
| 3576 |
+
display: table-cell
|
| 3577 |
+
}
|
| 3578 |
+
.input-group-addon:not(:first-child):not(:last-child),
|
| 3579 |
+
.input-group-btn:not(:first-child):not(:last-child),
|
| 3580 |
+
.input-group .form-control:not(:first-child):not(:last-child) {
|
| 3581 |
+
border-radius: 0
|
| 3582 |
+
}
|
| 3583 |
+
.input-group-addon,
|
| 3584 |
+
.input-group-btn {
|
| 3585 |
+
width: 1%;
|
| 3586 |
+
white-space: nowrap;
|
| 3587 |
+
vertical-align: middle
|
| 3588 |
+
}
|
| 3589 |
+
.input-group-addon {
|
| 3590 |
+
padding: 6px 12px;
|
| 3591 |
+
font-size: 14px;
|
| 3592 |
+
font-weight: 400;
|
| 3593 |
+
line-height: 1;
|
| 3594 |
+
color: #555;
|
| 3595 |
+
text-align: center;
|
| 3596 |
+
background-color: #eee;
|
| 3597 |
+
border: 1px solid #ccc;
|
| 3598 |
+
border-radius: 4px
|
| 3599 |
+
}
|
| 3600 |
+
.input-group-addon.input-sm {
|
| 3601 |
+
padding: 5px 10px;
|
| 3602 |
+
font-size: 12px;
|
| 3603 |
+
border-radius: 3px
|
| 3604 |
+
}
|
| 3605 |
+
.input-group-addon.input-lg {
|
| 3606 |
+
padding: 10px 16px;
|
| 3607 |
+
font-size: 18px;
|
| 3608 |
+
border-radius: 6px
|
| 3609 |
+
}
|
| 3610 |
+
.input-group-addon input[type=radio],
|
| 3611 |
+
.input-group-addon input[type=checkbox] {
|
| 3612 |
+
margin-top: 0
|
| 3613 |
+
}
|
| 3614 |
+
.input-group .form-control:first-child,
|
| 3615 |
+
.input-group-addon:first-child,
|
| 3616 |
+
.input-group-btn:first-child>.btn,
|
| 3617 |
+
.input-group-btn:first-child>.btn-group>.btn,
|
| 3618 |
+
.input-group-btn:first-child>.dropdown-toggle,
|
| 3619 |
+
.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),
|
| 3620 |
+
.input-group-btn:last-child>.btn-group:not(:last-child)>.btn {
|
| 3621 |
+
border-top-right-radius: 0;
|
| 3622 |
+
border-bottom-right-radius: 0
|
| 3623 |
+
}
|
| 3624 |
+
.input-group-addon:first-child {
|
| 3625 |
+
border-right: 0
|
| 3626 |
+
}
|
| 3627 |
+
.input-group .form-control:last-child,
|
| 3628 |
+
.input-group-addon:last-child,
|
| 3629 |
+
.input-group-btn:last-child>.btn,
|
| 3630 |
+
.input-group-btn:last-child>.btn-group>.btn,
|
| 3631 |
+
.input-group-btn:last-child>.dropdown-toggle,
|
| 3632 |
+
.input-group-btn:first-child>.btn:not(:first-child),
|
| 3633 |
+
.input-group-btn:first-child>.btn-group:not(:first-child)>.btn {
|
| 3634 |
+
border-top-left-radius: 0;
|
| 3635 |
+
border-bottom-left-radius: 0
|
| 3636 |
+
}
|
| 3637 |
+
.input-group-addon:last-child {
|
| 3638 |
+
border-left: 0
|
| 3639 |
+
}
|
| 3640 |
+
.input-group-btn {
|
| 3641 |
+
position: relative;
|
| 3642 |
+
font-size: 0;
|
| 3643 |
+
white-space: nowrap
|
| 3644 |
+
}
|
| 3645 |
+
.input-group-btn>.btn {
|
| 3646 |
+
position: relative
|
| 3647 |
+
}
|
| 3648 |
+
.input-group-btn>.btn+.btn {
|
| 3649 |
+
margin-left: -1px
|
| 3650 |
+
}
|
| 3651 |
+
.input-group-btn>.btn:hover,
|
| 3652 |
+
.input-group-btn>.btn:focus,
|
| 3653 |
+
.input-group-btn>.btn:active {
|
| 3654 |
+
z-index: 2
|
| 3655 |
+
}
|
| 3656 |
+
.input-group-btn:first-child>.btn,
|
| 3657 |
+
.input-group-btn:first-child>.btn-group {
|
| 3658 |
+
margin-right: -1px
|
| 3659 |
+
}
|
| 3660 |
+
.input-group-btn:last-child>.btn,
|
| 3661 |
+
.input-group-btn:last-child>.btn-group {
|
| 3662 |
+
margin-left: -1px
|
| 3663 |
+
}
|
| 3664 |
+
.nav {
|
| 3665 |
+
padding-left: 0;
|
| 3666 |
+
margin-bottom: 0;
|
| 3667 |
+
list-style: none
|
| 3668 |
+
}
|
| 3669 |
+
.nav>li {
|
| 3670 |
+
position: relative;
|
| 3671 |
+
display: block
|
| 3672 |
+
}
|
| 3673 |
+
.nav>li>a {
|
| 3674 |
+
position: relative;
|
| 3675 |
+
display: block;
|
| 3676 |
+
padding: 10px 15px
|
| 3677 |
+
}
|
| 3678 |
+
.nav>li>a:hover,
|
| 3679 |
+
.nav>li>a:focus {
|
| 3680 |
+
text-decoration: none;
|
| 3681 |
+
background-color: #eee
|
| 3682 |
+
}
|
| 3683 |
+
.nav>li.disabled>a {
|
| 3684 |
+
color: #777
|
| 3685 |
+
}
|
| 3686 |
+
.nav>li.disabled>a:hover,
|
| 3687 |
+
.nav>li.disabled>a:focus {
|
| 3688 |
+
color: #777;
|
| 3689 |
+
text-decoration: none;
|
| 3690 |
+
cursor: not-allowed;
|
| 3691 |
+
background-color: transparent
|
| 3692 |
+
}
|
| 3693 |
+
.nav .open>a,
|
| 3694 |
+
.nav .open>a:hover,
|
| 3695 |
+
.nav .open>a:focus {
|
| 3696 |
+
background-color: #eee;
|
| 3697 |
+
border-color: #428bca
|
| 3698 |
+
}
|
| 3699 |
+
.nav .nav-divider {
|
| 3700 |
+
height: 1px;
|
| 3701 |
+
margin: 9px 0;
|
| 3702 |
+
overflow: hidden;
|
| 3703 |
+
background-color: #e5e5e5
|
| 3704 |
+
}
|
| 3705 |
+
.nav>li>a>img {
|
| 3706 |
+
max-width: none
|
| 3707 |
+
}
|
| 3708 |
+
.nav-tabs {
|
| 3709 |
+
border-bottom: 1px solid #ddd
|
| 3710 |
+
}
|
| 3711 |
+
.nav-tabs>li {
|
| 3712 |
+
float: left;
|
| 3713 |
+
margin-bottom: -1px
|
| 3714 |
+
}
|
| 3715 |
+
.nav-tabs>li>a {
|
| 3716 |
+
margin-right: 2px;
|
| 3717 |
+
line-height: 1.42857143;
|
| 3718 |
+
border: 1px solid transparent;
|
| 3719 |
+
border-radius: 4px 4px 0 0
|
| 3720 |
+
}
|
| 3721 |
+
.nav-tabs>li>a:hover {
|
| 3722 |
+
border-color: #eee #eee #ddd
|
| 3723 |
+
}
|
| 3724 |
+
.nav-tabs>li.active>a,
|
| 3725 |
+
.nav-tabs>li.active>a:hover,
|
| 3726 |
+
.nav-tabs>li.active>a:focus {
|
| 3727 |
+
color: #555;
|
| 3728 |
+
cursor: default;
|
| 3729 |
+
background-color: #fff;
|
| 3730 |
+
border: 1px solid #ddd;
|
| 3731 |
+
border-bottom-color: transparent
|
| 3732 |
+
}
|
| 3733 |
+
.nav-tabs.nav-justified {
|
| 3734 |
+
width: 100%;
|
| 3735 |
+
border-bottom: 0
|
| 3736 |
+
}
|
| 3737 |
+
.nav-tabs.nav-justified>li {
|
| 3738 |
+
float: none
|
| 3739 |
+
}
|
| 3740 |
+
.nav-tabs.nav-justified>li>a {
|
| 3741 |
+
margin-bottom: 5px;
|
| 3742 |
+
text-align: center
|
| 3743 |
+
}
|
| 3744 |
+
.nav-tabs.nav-justified>.dropdown .dropdown-menu {
|
| 3745 |
+
top: auto;
|
| 3746 |
+
left: auto
|
| 3747 |
+
}
|
| 3748 |
+
@media (min-width: 768px) {
|
| 3749 |
+
.nav-tabs.nav-justified>li {
|
| 3750 |
+
display: table-cell;
|
| 3751 |
+
width: 1%
|
| 3752 |
+
}
|
| 3753 |
+
.nav-tabs.nav-justified>li>a {
|
| 3754 |
+
margin-bottom: 0
|
| 3755 |
+
}
|
| 3756 |
+
}
|
| 3757 |
+
.nav-tabs.nav-justified>li>a {
|
| 3758 |
+
margin-right: 0;
|
| 3759 |
+
border-radius: 4px
|
| 3760 |
+
}
|
| 3761 |
+
.nav-tabs.nav-justified>.active>a,
|
| 3762 |
+
.nav-tabs.nav-justified>.active>a:hover,
|
| 3763 |
+
.nav-tabs.nav-justified>.active>a:focus {
|
| 3764 |
+
border: 1px solid #ddd
|
| 3765 |
+
}
|
| 3766 |
+
@media (min-width: 768px) {
|
| 3767 |
+
.nav-tabs.nav-justified>li>a {
|
| 3768 |
+
border-bottom: 1px solid #ddd;
|
| 3769 |
+
border-radius: 4px 4px 0 0
|
| 3770 |
+
}
|
| 3771 |
+
.nav-tabs.nav-justified>.active>a,
|
| 3772 |
+
.nav-tabs.nav-justified>.active>a:hover,
|
| 3773 |
+
.nav-tabs.nav-justified>.active>a:focus {
|
| 3774 |
+
border-bottom-color: #fff
|
| 3775 |
+
}
|
| 3776 |
+
}
|
| 3777 |
+
.nav-pills>li {
|
| 3778 |
+
float: left
|
| 3779 |
+
}
|
| 3780 |
+
.nav-pills>li>a {
|
| 3781 |
+
border-radius: 4px
|
| 3782 |
+
}
|
| 3783 |
+
.nav-pills>li+li {
|
| 3784 |
+
margin-left: 2px
|
| 3785 |
+
}
|
| 3786 |
+
.nav-pills>li.active>a,
|
| 3787 |
+
.nav-pills>li.active>a:hover,
|
| 3788 |
+
.nav-pills>li.active>a:focus {
|
| 3789 |
+
color: #fff;
|
| 3790 |
+
background-color: #428bca
|
| 3791 |
+
}
|
| 3792 |
+
.nav-stacked>li {
|
| 3793 |
+
float: none
|
| 3794 |
+
}
|
| 3795 |
+
.nav-stacked>li+li {
|
| 3796 |
+
margin-top: 2px;
|
| 3797 |
+
margin-left: 0
|
| 3798 |
+
}
|
| 3799 |
+
.nav-justified {
|
| 3800 |
+
width: 100%
|
| 3801 |
+
}
|
| 3802 |
+
.nav-justified>li {
|
| 3803 |
+
float: none
|
| 3804 |
+
}
|
| 3805 |
+
.nav-justified>li>a {
|
| 3806 |
+
margin-bottom: 5px;
|
| 3807 |
+
text-align: center
|
| 3808 |
+
}
|
| 3809 |
+
.nav-justified>.dropdown .dropdown-menu {
|
| 3810 |
+
top: auto;
|
| 3811 |
+
left: auto
|
| 3812 |
+
}
|
| 3813 |
+
@media (min-width: 768px) {
|
| 3814 |
+
.nav-justified>li {
|
| 3815 |
+
display: table-cell;
|
| 3816 |
+
width: 1%
|
| 3817 |
+
}
|
| 3818 |
+
.nav-justified>li>a {
|
| 3819 |
+
margin-bottom: 0
|
| 3820 |
+
}
|
| 3821 |
+
}
|
| 3822 |
+
.nav-tabs-justified {
|
| 3823 |
+
border-bottom: 0
|
| 3824 |
+
}
|
| 3825 |
+
.nav-tabs-justified>li>a {
|
| 3826 |
+
margin-right: 0;
|
| 3827 |
+
border-radius: 4px
|
| 3828 |
+
}
|
| 3829 |
+
.nav-tabs-justified>.active>a,
|
| 3830 |
+
.nav-tabs-justified>.active>a:hover,
|
| 3831 |
+
.nav-tabs-justified>.active>a:focus {
|
| 3832 |
+
border: 1px solid #ddd
|
| 3833 |
+
}
|
| 3834 |
+
@media (min-width: 768px) {
|
| 3835 |
+
.nav-tabs-justified>li>a {
|
| 3836 |
+
border-bottom: 1px solid #ddd;
|
| 3837 |
+
border-radius: 4px 4px 0 0
|
| 3838 |
+
}
|
| 3839 |
+
.nav-tabs-justified>.active>a,
|
| 3840 |
+
.nav-tabs-justified>.active>a:hover,
|
| 3841 |
+
.nav-tabs-justified>.active>a:focus {
|
| 3842 |
+
border-bottom-color: #fff
|
| 3843 |
+
}
|
| 3844 |
+
}
|
| 3845 |
+
.tab-content>.tab-pane {
|
| 3846 |
+
display: none
|
| 3847 |
+
}
|
| 3848 |
+
.tab-content>.active {
|
| 3849 |
+
display: block
|
| 3850 |
+
}
|
| 3851 |
+
.nav-tabs .dropdown-menu {
|
| 3852 |
+
margin-top: -1px;
|
| 3853 |
+
border-top-left-radius: 0;
|
| 3854 |
+
border-top-right-radius: 0
|
| 3855 |
+
}
|
| 3856 |
+
.navbar {
|
| 3857 |
+
position: relative;
|
| 3858 |
+
min-height: 50px;
|
| 3859 |
+
margin-bottom: 20px;
|
| 3860 |
+
border: 1px solid transparent
|
| 3861 |
+
}
|
| 3862 |
+
@media (min-width: 768px) {
|
| 3863 |
+
.navbar {
|
| 3864 |
+
border-radius: 4px
|
| 3865 |
+
}
|
| 3866 |
+
}
|
| 3867 |
+
@media (min-width: 768px) {
|
| 3868 |
+
.navbar-header {
|
| 3869 |
+
float: left
|
| 3870 |
+
}
|
| 3871 |
+
}
|
| 3872 |
+
.navbar-collapse {
|
| 3873 |
+
padding-right: 15px;
|
| 3874 |
+
padding-left: 15px;
|
| 3875 |
+
overflow-x: visible;
|
| 3876 |
+
-webkit-overflow-scrolling: touch;
|
| 3877 |
+
border-top: 1px solid transparent;
|
| 3878 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
|
| 3879 |
+
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1)
|
| 3880 |
+
}
|
| 3881 |
+
.navbar-collapse.in {
|
| 3882 |
+
overflow-y: auto
|
| 3883 |
+
}
|
| 3884 |
+
@media (min-width: 768px) {
|
| 3885 |
+
.navbar-collapse {
|
| 3886 |
+
width: auto;
|
| 3887 |
+
border-top: 0;
|
| 3888 |
+
-webkit-box-shadow: none;
|
| 3889 |
+
box-shadow: none
|
| 3890 |
+
}
|
| 3891 |
+
.navbar-collapse.collapse {
|
| 3892 |
+
display: block!important;
|
| 3893 |
+
height: auto!important;
|
| 3894 |
+
padding-bottom: 0;
|
| 3895 |
+
overflow: visible!important
|
| 3896 |
+
}
|
| 3897 |
+
.navbar-collapse.in {
|
| 3898 |
+
overflow-y: visible
|
| 3899 |
+
}
|
| 3900 |
+
.navbar-fixed-top .navbar-collapse,
|
| 3901 |
+
.navbar-static-top .navbar-collapse,
|
| 3902 |
+
.navbar-fixed-bottom .navbar-collapse {
|
| 3903 |
+
padding-right: 0;
|
| 3904 |
+
padding-left: 0
|
| 3905 |
+
}
|
| 3906 |
+
}
|
| 3907 |
+
.navbar-fixed-top .navbar-collapse,
|
| 3908 |
+
.navbar-fixed-bottom .navbar-collapse {
|
| 3909 |
+
max-height: 340px
|
| 3910 |
+
}
|
| 3911 |
+
@media (max-width: 480px) and (orientation: landscape) {
|
| 3912 |
+
.navbar-fixed-top .navbar-collapse,
|
| 3913 |
+
.navbar-fixed-bottom .navbar-collapse {
|
| 3914 |
+
max-height: 200px
|
| 3915 |
+
}
|
| 3916 |
+
}
|
| 3917 |
+
.container>.navbar-header,
|
| 3918 |
+
.container-fluid>.navbar-header,
|
| 3919 |
+
.container>.navbar-collapse,
|
| 3920 |
+
.container-fluid>.navbar-collapse {
|
| 3921 |
+
margin-right: -15px;
|
| 3922 |
+
margin-left: -15px
|
| 3923 |
+
}
|
| 3924 |
+
@media (min-width: 768px) {
|
| 3925 |
+
.container>.navbar-header,
|
| 3926 |
+
.container-fluid>.navbar-header,
|
| 3927 |
+
.container>.navbar-collapse,
|
| 3928 |
+
.container-fluid>.navbar-collapse {
|
| 3929 |
+
margin-right: 0;
|
| 3930 |
+
margin-left: 0
|
| 3931 |
+
}
|
| 3932 |
+
}
|
| 3933 |
+
.navbar-static-top {
|
| 3934 |
+
z-index: 1000;
|
| 3935 |
+
border-width: 0 0 1px
|
| 3936 |
+
}
|
| 3937 |
+
@media (min-width: 768px) {
|
| 3938 |
+
.navbar-static-top {
|
| 3939 |
+
border-radius: 0
|
| 3940 |
+
}
|
| 3941 |
+
}
|
| 3942 |
+
.navbar-fixed-top,
|
| 3943 |
+
.navbar-fixed-bottom {
|
| 3944 |
+
position: fixed;
|
| 3945 |
+
right: 0;
|
| 3946 |
+
left: 0;
|
| 3947 |
+
z-index: 1030;
|
| 3948 |
+
-webkit-transform: translate3d(0, 0, 0);
|
| 3949 |
+
-o-transform: translate3d(0, 0, 0);
|
| 3950 |
+
transform: translate3d(0, 0, 0)
|
| 3951 |
+
}
|
| 3952 |
+
@media (min-width: 768px) {
|
| 3953 |
+
.navbar-fixed-top,
|
| 3954 |
+
.navbar-fixed-bottom {
|
| 3955 |
+
border-radius: 0
|
| 3956 |
+
}
|
| 3957 |
+
}
|
| 3958 |
+
.navbar-fixed-top {
|
| 3959 |
+
top: 0;
|
| 3960 |
+
border-width: 0 0 1px
|
| 3961 |
+
}
|
| 3962 |
+
.navbar-fixed-bottom {
|
| 3963 |
+
bottom: 0;
|
| 3964 |
+
margin-bottom: 0;
|
| 3965 |
+
border-width: 1px 0 0
|
| 3966 |
+
}
|
| 3967 |
+
.navbar-brand {
|
| 3968 |
+
float: left;
|
| 3969 |
+
height: 50px;
|
| 3970 |
+
padding: 15px 15px;
|
| 3971 |
+
font-size: 18px;
|
| 3972 |
+
line-height: 20px
|
| 3973 |
+
}
|
| 3974 |
+
.navbar-brand:hover,
|
| 3975 |
+
.navbar-brand:focus {
|
| 3976 |
+
text-decoration: none
|
| 3977 |
+
}
|
| 3978 |
+
@media (min-width: 768px) {
|
| 3979 |
+
.navbar>.container .navbar-brand,
|
| 3980 |
+
.navbar>.container-fluid .navbar-brand {
|
| 3981 |
+
margin-left: -15px
|
| 3982 |
+
}
|
| 3983 |
+
}
|
| 3984 |
+
.navbar-toggle {
|
| 3985 |
+
position: relative;
|
| 3986 |
+
float: right;
|
| 3987 |
+
padding: 9px 10px;
|
| 3988 |
+
margin-top: 8px;
|
| 3989 |
+
margin-right: 15px;
|
| 3990 |
+
margin-bottom: 8px;
|
| 3991 |
+
background-color: transparent;
|
| 3992 |
+
background-image: none;
|
| 3993 |
+
border: 1px solid transparent;
|
| 3994 |
+
border-radius: 4px
|
| 3995 |
+
}
|
| 3996 |
+
.navbar-toggle:focus {
|
| 3997 |
+
outline: 0
|
| 3998 |
+
}
|
| 3999 |
+
.navbar-toggle .icon-bar {
|
| 4000 |
+
display: block;
|
| 4001 |
+
width: 22px;
|
| 4002 |
+
height: 2px;
|
| 4003 |
+
border-radius: 1px
|
| 4004 |
+
}
|
| 4005 |
+
.navbar-toggle .icon-bar+.icon-bar {
|
| 4006 |
+
margin-top: 4px
|
| 4007 |
+
}
|
| 4008 |
+
@media (min-width: 768px) {
|
| 4009 |
+
.navbar-toggle {
|
| 4010 |
+
display: none
|
| 4011 |
+
}
|
| 4012 |
+
}
|
| 4013 |
+
.navbar-nav {
|
| 4014 |
+
margin: 7.5px -15px
|
| 4015 |
+
}
|
| 4016 |
+
.navbar-nav>li>a {
|
| 4017 |
+
padding-top: 10px;
|
| 4018 |
+
padding-bottom: 10px;
|
| 4019 |
+
line-height: 20px
|
| 4020 |
+
}
|
| 4021 |
+
@media (max-width: 767px) {
|
| 4022 |
+
.navbar-nav .open .dropdown-menu {
|
| 4023 |
+
position: static;
|
| 4024 |
+
float: none;
|
| 4025 |
+
width: auto;
|
| 4026 |
+
margin-top: 0;
|
| 4027 |
+
background-color: transparent;
|
| 4028 |
+
border: 0;
|
| 4029 |
+
-webkit-box-shadow: none;
|
| 4030 |
+
box-shadow: none
|
| 4031 |
+
}
|
| 4032 |
+
.navbar-nav .open .dropdown-menu>li>a,
|
| 4033 |
+
.navbar-nav .open .dropdown-menu .dropdown-header {
|
| 4034 |
+
padding: 5px 15px 5px 25px
|
| 4035 |
+
}
|
| 4036 |
+
.navbar-nav .open .dropdown-menu>li>a {
|
| 4037 |
+
line-height: 20px
|
| 4038 |
+
}
|
| 4039 |
+
.navbar-nav .open .dropdown-menu>li>a:hover,
|
| 4040 |
+
.navbar-nav .open .dropdown-menu>li>a:focus {
|
| 4041 |
+
background-image: none
|
| 4042 |
+
}
|
| 4043 |
+
}
|
| 4044 |
+
@media (min-width: 768px) {
|
| 4045 |
+
.navbar-nav {
|
| 4046 |
+
float: left;
|
| 4047 |
+
margin: 0
|
| 4048 |
+
}
|
| 4049 |
+
.navbar-nav>li {
|
| 4050 |
+
float: left
|
| 4051 |
+
}
|
| 4052 |
+
.navbar-nav>li>a {
|
| 4053 |
+
padding-top: 15px;
|
| 4054 |
+
padding-bottom: 15px
|
| 4055 |
+
}
|
| 4056 |
+
.navbar-nav.navbar-right:last-child {
|
| 4057 |
+
margin-right: -15px
|
| 4058 |
+
}
|
| 4059 |
+
}
|
| 4060 |
+
@media (min-width: 768px) {
|
| 4061 |
+
.navbar-left {
|
| 4062 |
+
float: left!important
|
| 4063 |
+
}
|
| 4064 |
+
.navbar-right {
|
| 4065 |
+
float: right!important
|
| 4066 |
+
}
|
| 4067 |
+
}
|
| 4068 |
+
.navbar-form {
|
| 4069 |
+
padding: 10px 15px;
|
| 4070 |
+
margin-top: 8px;
|
| 4071 |
+
margin-right: -15px;
|
| 4072 |
+
margin-bottom: 8px;
|
| 4073 |
+
margin-left: -15px;
|
| 4074 |
+
border-top: 1px solid transparent;
|
| 4075 |
+
border-bottom: 1px solid transparent;
|
| 4076 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
|
| 4077 |
+
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1)
|
| 4078 |
+
}
|
| 4079 |
+
@media (min-width: 768px) {
|
| 4080 |
+
.navbar-form .form-group {
|
| 4081 |
+
display: inline-block;
|
| 4082 |
+
margin-bottom: 0;
|
| 4083 |
+
vertical-align: middle
|
| 4084 |
+
}
|
| 4085 |
+
.navbar-form .form-control {
|
| 4086 |
+
display: inline-block;
|
| 4087 |
+
width: auto;
|
| 4088 |
+
vertical-align: middle
|
| 4089 |
+
}
|
| 4090 |
+
.navbar-form .input-group {
|
| 4091 |
+
display: inline-table;
|
| 4092 |
+
vertical-align: middle
|
| 4093 |
+
}
|
| 4094 |
+
.navbar-form .input-group .input-group-addon,
|
| 4095 |
+
.navbar-form .input-group .input-group-btn,
|
| 4096 |
+
.navbar-form .input-group .form-control {
|
| 4097 |
+
width: auto
|
| 4098 |
+
}
|
| 4099 |
+
.navbar-form .input-group>.form-control {
|
| 4100 |
+
width: 100%
|
| 4101 |
+
}
|
| 4102 |
+
.navbar-form .control-label {
|
| 4103 |
+
margin-bottom: 0;
|
| 4104 |
+
vertical-align: middle
|
| 4105 |
+
}
|
| 4106 |
+
.navbar-form .radio,
|
| 4107 |
+
.navbar-form .checkbox {
|
| 4108 |
+
display: inline-block;
|
| 4109 |
+
margin-top: 0;
|
| 4110 |
+
margin-bottom: 0;
|
| 4111 |
+
vertical-align: middle
|
| 4112 |
+
}
|
| 4113 |
+
.navbar-form .radio label,
|
| 4114 |
+
.navbar-form .checkbox label {
|
| 4115 |
+
padding-left: 0
|
| 4116 |
+
}
|
| 4117 |
+
.navbar-form .radio input[type=radio],
|
| 4118 |
+
.navbar-form .checkbox input[type=checkbox] {
|
| 4119 |
+
position: relative;
|
| 4120 |
+
margin-left: 0
|
| 4121 |
+
}
|
| 4122 |
+
.navbar-form .has-feedback .form-control-feedback {
|
| 4123 |
+
top: 0
|
| 4124 |
+
}
|
| 4125 |
+
}
|
| 4126 |
+
@media (max-width: 767px) {
|
| 4127 |
+
.navbar-form .form-group {
|
| 4128 |
+
margin-bottom: 5px
|
| 4129 |
+
}
|
| 4130 |
+
}
|
| 4131 |
+
@media (min-width: 768px) {
|
| 4132 |
+
.navbar-form {
|
| 4133 |
+
width: auto;
|
| 4134 |
+
padding-top: 0;
|
| 4135 |
+
padding-bottom: 0;
|
| 4136 |
+
margin-right: 0;
|
| 4137 |
+
margin-left: 0;
|
| 4138 |
+
border: 0;
|
| 4139 |
+
-webkit-box-shadow: none;
|
| 4140 |
+
box-shadow: none
|
| 4141 |
+
}
|
| 4142 |
+
.navbar-form.navbar-right:last-child {
|
| 4143 |
+
margin-right: -15px
|
| 4144 |
+
}
|
| 4145 |
+
}
|
| 4146 |
+
.navbar-nav>li>.dropdown-menu {
|
| 4147 |
+
margin-top: 0;
|
| 4148 |
+
border-top-left-radius: 0;
|
| 4149 |
+
border-top-right-radius: 0
|
| 4150 |
+
}
|
| 4151 |
+
.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu {
|
| 4152 |
+
border-bottom-right-radius: 0;
|
| 4153 |
+
border-bottom-left-radius: 0
|
| 4154 |
+
}
|
| 4155 |
+
.navbar-btn {
|
| 4156 |
+
margin-top: 8px;
|
| 4157 |
+
margin-bottom: 8px
|
| 4158 |
+
}
|
| 4159 |
+
.navbar-btn.btn-sm {
|
| 4160 |
+
margin-top: 10px;
|
| 4161 |
+
margin-bottom: 10px
|
| 4162 |
+
}
|
| 4163 |
+
.navbar-btn.btn-xs {
|
| 4164 |
+
margin-top: 14px;
|
| 4165 |
+
margin-bottom: 14px
|
| 4166 |
+
}
|
| 4167 |
+
.navbar-text {
|
| 4168 |
+
margin-top: 15px;
|
| 4169 |
+
margin-bottom: 15px
|
| 4170 |
+
}
|
| 4171 |
+
@media (min-width: 768px) {
|
| 4172 |
+
.navbar-text {
|
| 4173 |
+
float: left;
|
| 4174 |
+
margin-right: 15px;
|
| 4175 |
+
margin-left: 15px
|
| 4176 |
+
}
|
| 4177 |
+
.navbar-text.navbar-right:last-child {
|
| 4178 |
+
margin-right: 0
|
| 4179 |
+
}
|
| 4180 |
+
}
|
| 4181 |
+
.navbar-default {
|
| 4182 |
+
background-color: #f8f8f8;
|
| 4183 |
+
border-color: #e7e7e7
|
| 4184 |
+
}
|
| 4185 |
+
.navbar-default .navbar-brand {
|
| 4186 |
+
color: #777
|
| 4187 |
+
}
|
| 4188 |
+
.navbar-default .navbar-brand:hover,
|
| 4189 |
+
.navbar-default .navbar-brand:focus {
|
| 4190 |
+
color: #5e5e5e;
|
| 4191 |
+
background-color: transparent
|
| 4192 |
+
}
|
| 4193 |
+
.navbar-default .navbar-text {
|
| 4194 |
+
color: #777
|
| 4195 |
+
}
|
| 4196 |
+
.navbar-default .navbar-nav>li>a {
|
| 4197 |
+
color: #777
|
| 4198 |
+
}
|
| 4199 |
+
.navbar-default .navbar-nav>li>a:hover,
|
| 4200 |
+
.navbar-default .navbar-nav>li>a:focus {
|
| 4201 |
+
color: #333;
|
| 4202 |
+
background-color: transparent
|
| 4203 |
+
}
|
| 4204 |
+
.navbar-default .navbar-nav>.active>a,
|
| 4205 |
+
.navbar-default .navbar-nav>.active>a:hover,
|
| 4206 |
+
.navbar-default .navbar-nav>.active>a:focus {
|
| 4207 |
+
color: #555;
|
| 4208 |
+
background-color: #e7e7e7
|
| 4209 |
+
}
|
| 4210 |
+
.navbar-default .navbar-nav>.disabled>a,
|
| 4211 |
+
.navbar-default .navbar-nav>.disabled>a:hover,
|
| 4212 |
+
.navbar-default .navbar-nav>.disabled>a:focus {
|
| 4213 |
+
color: #ccc;
|
| 4214 |
+
background-color: transparent
|
| 4215 |
+
}
|
| 4216 |
+
.navbar-default .navbar-toggle {
|
| 4217 |
+
border-color: #ddd
|
| 4218 |
+
}
|
| 4219 |
+
.navbar-default .navbar-toggle:hover,
|
| 4220 |
+
.navbar-default .navbar-toggle:focus {
|
| 4221 |
+
background-color: #ddd
|
| 4222 |
+
}
|
| 4223 |
+
.navbar-default .navbar-toggle .icon-bar {
|
| 4224 |
+
background-color: #888
|
| 4225 |
+
}
|
| 4226 |
+
.navbar-default .navbar-collapse,
|
| 4227 |
+
.navbar-default .navbar-form {
|
| 4228 |
+
border-color: #e7e7e7
|
| 4229 |
+
}
|
| 4230 |
+
.navbar-default .navbar-nav>.open>a,
|
| 4231 |
+
.navbar-default .navbar-nav>.open>a:hover,
|
| 4232 |
+
.navbar-default .navbar-nav>.open>a:focus {
|
| 4233 |
+
color: #555;
|
| 4234 |
+
background-color: #e7e7e7
|
| 4235 |
+
}
|
| 4236 |
+
@media (max-width: 767px) {
|
| 4237 |
+
.navbar-default .navbar-nav .open .dropdown-menu>li>a {
|
| 4238 |
+
color: #777
|
| 4239 |
+
}
|
| 4240 |
+
.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,
|
| 4241 |
+
.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus {
|
| 4242 |
+
color: #333;
|
| 4243 |
+
background-color: transparent
|
| 4244 |
+
}
|
| 4245 |
+
.navbar-default .navbar-nav .open .dropdown-menu>.active>a,
|
| 4246 |
+
.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,
|
| 4247 |
+
.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus {
|
| 4248 |
+
color: #555;
|
| 4249 |
+
background-color: #e7e7e7
|
| 4250 |
+
}
|
| 4251 |
+
.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,
|
| 4252 |
+
.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,
|
| 4253 |
+
.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus {
|
| 4254 |
+
color: #ccc;
|
| 4255 |
+
background-color: transparent
|
| 4256 |
+
}
|
| 4257 |
+
}
|
| 4258 |
+
.navbar-default .navbar-link {
|
| 4259 |
+
color: #777
|
| 4260 |
+
}
|
| 4261 |
+
.navbar-default .navbar-link:hover {
|
| 4262 |
+
color: #333
|
| 4263 |
+
}
|
| 4264 |
+
.navbar-default .btn-link {
|
| 4265 |
+
color: #777
|
| 4266 |
+
}
|
| 4267 |
+
.navbar-default .btn-link:hover,
|
| 4268 |
+
.navbar-default .btn-link:focus {
|
| 4269 |
+
color: #333
|
| 4270 |
+
}
|
| 4271 |
+
.navbar-default .btn-link[disabled]:hover,
|
| 4272 |
+
fieldset[disabled] .navbar-default .btn-link:hover,
|
| 4273 |
+
.navbar-default .btn-link[disabled]:focus,
|
| 4274 |
+
fieldset[disabled] .navbar-default .btn-link:focus {
|
| 4275 |
+
color: #ccc
|
| 4276 |
+
}
|
| 4277 |
+
.navbar-inverse {
|
| 4278 |
+
background-color: #222;
|
| 4279 |
+
border-color: #080808
|
| 4280 |
+
}
|
| 4281 |
+
.navbar-inverse .navbar-brand {
|
| 4282 |
+
color: #777
|
| 4283 |
+
}
|
| 4284 |
+
.navbar-inverse .navbar-brand:hover,
|
| 4285 |
+
.navbar-inverse .navbar-brand:focus {
|
| 4286 |
+
color: #fff;
|
| 4287 |
+
background-color: transparent
|
| 4288 |
+
}
|
| 4289 |
+
.navbar-inverse .navbar-text {
|
| 4290 |
+
color: #777
|
| 4291 |
+
}
|
| 4292 |
+
.navbar-inverse .navbar-nav>li>a {
|
| 4293 |
+
color: #777
|
| 4294 |
+
}
|
| 4295 |
+
.navbar-inverse .navbar-nav>li>a:hover,
|
| 4296 |
+
.navbar-inverse .navbar-nav>li>a:focus {
|
| 4297 |
+
color: #fff;
|
| 4298 |
+
background-color: transparent
|
| 4299 |
+
}
|
| 4300 |
+
.navbar-inverse .navbar-nav>.active>a,
|
| 4301 |
+
.navbar-inverse .navbar-nav>.active>a:hover,
|
| 4302 |
+
.navbar-inverse .navbar-nav>.active>a:focus {
|
| 4303 |
+
color: #fff;
|
| 4304 |
+
background-color: #080808
|
| 4305 |
+
}
|
| 4306 |
+
.navbar-inverse .navbar-nav>.disabled>a,
|
| 4307 |
+
.navbar-inverse .navbar-nav>.disabled>a:hover,
|
| 4308 |
+
.navbar-inverse .navbar-nav>.disabled>a:focus {
|
| 4309 |
+
color: #444;
|
| 4310 |
+
background-color: transparent
|
| 4311 |
+
}
|
| 4312 |
+
.navbar-inverse .navbar-toggle {
|
| 4313 |
+
border-color: #333
|
| 4314 |
+
}
|
| 4315 |
+
.navbar-inverse .navbar-toggle:hover,
|
| 4316 |
+
.navbar-inverse .navbar-toggle:focus {
|
| 4317 |
+
background-color: #333
|
| 4318 |
+
}
|
| 4319 |
+
.navbar-inverse .navbar-toggle .icon-bar {
|
| 4320 |
+
background-color: #fff
|
| 4321 |
+
}
|
| 4322 |
+
.navbar-inverse .navbar-collapse,
|
| 4323 |
+
.navbar-inverse .navbar-form {
|
| 4324 |
+
border-color: #101010
|
| 4325 |
+
}
|
| 4326 |
+
.navbar-inverse .navbar-nav>.open>a,
|
| 4327 |
+
.navbar-inverse .navbar-nav>.open>a:hover,
|
| 4328 |
+
.navbar-inverse .navbar-nav>.open>a:focus {
|
| 4329 |
+
color: #fff;
|
| 4330 |
+
background-color: #080808
|
| 4331 |
+
}
|
| 4332 |
+
@media (max-width: 767px) {
|
| 4333 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header {
|
| 4334 |
+
border-color: #080808
|
| 4335 |
+
}
|
| 4336 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu .divider {
|
| 4337 |
+
background-color: #080808
|
| 4338 |
+
}
|
| 4339 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>li>a {
|
| 4340 |
+
color: #777
|
| 4341 |
+
}
|
| 4342 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,
|
| 4343 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus {
|
| 4344 |
+
color: #fff;
|
| 4345 |
+
background-color: transparent
|
| 4346 |
+
}
|
| 4347 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,
|
| 4348 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,
|
| 4349 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus {
|
| 4350 |
+
color: #fff;
|
| 4351 |
+
background-color: #080808
|
| 4352 |
+
}
|
| 4353 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,
|
| 4354 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,
|
| 4355 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus {
|
| 4356 |
+
color: #444;
|
| 4357 |
+
background-color: transparent
|
| 4358 |
+
}
|
| 4359 |
+
}
|
| 4360 |
+
.navbar-inverse .navbar-link {
|
| 4361 |
+
color: #777
|
| 4362 |
+
}
|
| 4363 |
+
.navbar-inverse .navbar-link:hover {
|
| 4364 |
+
color: #fff
|
| 4365 |
+
}
|
| 4366 |
+
.navbar-inverse .btn-link {
|
| 4367 |
+
color: #777
|
| 4368 |
+
}
|
| 4369 |
+
.navbar-inverse .btn-link:hover,
|
| 4370 |
+
.navbar-inverse .btn-link:focus {
|
| 4371 |
+
color: #fff
|
| 4372 |
+
}
|
| 4373 |
+
.navbar-inverse .btn-link[disabled]:hover,
|
| 4374 |
+
fieldset[disabled] .navbar-inverse .btn-link:hover,
|
| 4375 |
+
.navbar-inverse .btn-link[disabled]:focus,
|
| 4376 |
+
fieldset[disabled] .navbar-inverse .btn-link:focus {
|
| 4377 |
+
color: #444
|
| 4378 |
+
}
|
| 4379 |
+
.breadcrumb {
|
| 4380 |
+
padding: 8px 15px;
|
| 4381 |
+
margin-bottom: 20px;
|
| 4382 |
+
list-style: none;
|
| 4383 |
+
background-color: #f5f5f5;
|
| 4384 |
+
border-radius: 4px
|
| 4385 |
+
}
|
| 4386 |
+
.breadcrumb>li {
|
| 4387 |
+
display: inline-block
|
| 4388 |
+
}
|
| 4389 |
+
.breadcrumb>li+li:before {
|
| 4390 |
+
padding: 0 5px;
|
| 4391 |
+
color: #ccc;
|
| 4392 |
+
content: "/\00a0"
|
| 4393 |
+
}
|
| 4394 |
+
.breadcrumb>.active {
|
| 4395 |
+
color: #777
|
| 4396 |
+
}
|
| 4397 |
+
.pagination {
|
| 4398 |
+
display: inline-block;
|
| 4399 |
+
padding-left: 0;
|
| 4400 |
+
margin: 20px 0;
|
| 4401 |
+
border-radius: 4px
|
| 4402 |
+
}
|
| 4403 |
+
.pagination>li {
|
| 4404 |
+
display: inline
|
| 4405 |
+
}
|
| 4406 |
+
.pagination>li>a,
|
| 4407 |
+
.pagination>li>span {
|
| 4408 |
+
position: relative;
|
| 4409 |
+
float: left;
|
| 4410 |
+
padding: 6px 12px;
|
| 4411 |
+
margin-left: -1px;
|
| 4412 |
+
line-height: 1.42857143;
|
| 4413 |
+
color: #428bca;
|
| 4414 |
+
text-decoration: none;
|
| 4415 |
+
background-color: #fff;
|
| 4416 |
+
border: 1px solid #ddd
|
| 4417 |
+
}
|
| 4418 |
+
.pagination>li:first-child>a,
|
| 4419 |
+
.pagination>li:first-child>span {
|
| 4420 |
+
margin-left: 0;
|
| 4421 |
+
border-top-left-radius: 4px;
|
| 4422 |
+
border-bottom-left-radius: 4px
|
| 4423 |
+
}
|
| 4424 |
+
.pagination>li:last-child>a,
|
| 4425 |
+
.pagination>li:last-child>span {
|
| 4426 |
+
border-top-right-radius: 4px;
|
| 4427 |
+
border-bottom-right-radius: 4px
|
| 4428 |
+
}
|
| 4429 |
+
.pagination>li>a:hover,
|
| 4430 |
+
.pagination>li>span:hover,
|
| 4431 |
+
.pagination>li>a:focus,
|
| 4432 |
+
.pagination>li>span:focus {
|
| 4433 |
+
color: #2a6496;
|
| 4434 |
+
background-color: #eee;
|
| 4435 |
+
border-color: #ddd
|
| 4436 |
+
}
|
| 4437 |
+
.pagination>.active>a,
|
| 4438 |
+
.pagination>.active>span,
|
| 4439 |
+
.pagination>.active>a:hover,
|
| 4440 |
+
.pagination>.active>span:hover,
|
| 4441 |
+
.pagination>.active>a:focus,
|
| 4442 |
+
.pagination>.active>span:focus {
|
| 4443 |
+
z-index: 2;
|
| 4444 |
+
color: #fff;
|
| 4445 |
+
cursor: default;
|
| 4446 |
+
background-color: #428bca;
|
| 4447 |
+
border-color: #428bca
|
| 4448 |
+
}
|
| 4449 |
+
.pagination>.disabled>span,
|
| 4450 |
+
.pagination>.disabled>span:hover,
|
| 4451 |
+
.pagination>.disabled>span:focus,
|
| 4452 |
+
.pagination>.disabled>a,
|
| 4453 |
+
.pagination>.disabled>a:hover,
|
| 4454 |
+
.pagination>.disabled>a:focus {
|
| 4455 |
+
color: #777;
|
| 4456 |
+
cursor: not-allowed;
|
| 4457 |
+
background-color: #fff;
|
| 4458 |
+
border-color: #ddd
|
| 4459 |
+
}
|
| 4460 |
+
.pagination-lg>li>a,
|
| 4461 |
+
.pagination-lg>li>span {
|
| 4462 |
+
padding: 10px 16px;
|
| 4463 |
+
font-size: 18px
|
| 4464 |
+
}
|
| 4465 |
+
.pagination-lg>li:first-child>a,
|
| 4466 |
+
.pagination-lg>li:first-child>span {
|
| 4467 |
+
border-top-left-radius: 6px;
|
| 4468 |
+
border-bottom-left-radius: 6px
|
| 4469 |
+
}
|
| 4470 |
+
.pagination-lg>li:last-child>a,
|
| 4471 |
+
.pagination-lg>li:last-child>span {
|
| 4472 |
+
border-top-right-radius: 6px;
|
| 4473 |
+
border-bottom-right-radius: 6px
|
| 4474 |
+
}
|
| 4475 |
+
.pagination-sm>li>a,
|
| 4476 |
+
.pagination-sm>li>span {
|
| 4477 |
+
padding: 5px 10px;
|
| 4478 |
+
font-size: 12px
|
| 4479 |
+
}
|
| 4480 |
+
.pagination-sm>li:first-child>a,
|
| 4481 |
+
.pagination-sm>li:first-child>span {
|
| 4482 |
+
border-top-left-radius: 3px;
|
| 4483 |
+
border-bottom-left-radius: 3px
|
| 4484 |
+
}
|
| 4485 |
+
.pagination-sm>li:last-child>a,
|
| 4486 |
+
.pagination-sm>li:last-child>span {
|
| 4487 |
+
border-top-right-radius: 3px;
|
| 4488 |
+
border-bottom-right-radius: 3px
|
| 4489 |
+
}
|
| 4490 |
+
.pager {
|
| 4491 |
+
padding-left: 0;
|
| 4492 |
+
margin: 20px 0;
|
| 4493 |
+
text-align: center;
|
| 4494 |
+
list-style: none
|
| 4495 |
+
}
|
| 4496 |
+
.pager li {
|
| 4497 |
+
display: inline
|
| 4498 |
+
}
|
| 4499 |
+
.pager li>a,
|
| 4500 |
+
.pager li>span {
|
| 4501 |
+
display: inline-block;
|
| 4502 |
+
padding: 5px 14px;
|
| 4503 |
+
background-color: #fff;
|
| 4504 |
+
border: 1px solid #ddd;
|
| 4505 |
+
border-radius: 15px
|
| 4506 |
+
}
|
| 4507 |
+
.pager li>a:hover,
|
| 4508 |
+
.pager li>a:focus {
|
| 4509 |
+
text-decoration: none;
|
| 4510 |
+
background-color: #eee
|
| 4511 |
+
}
|
| 4512 |
+
.pager .next>a,
|
| 4513 |
+
.pager .next>span {
|
| 4514 |
+
float: right
|
| 4515 |
+
}
|
| 4516 |
+
.pager .previous>a,
|
| 4517 |
+
.pager .previous>span {
|
| 4518 |
+
float: left
|
| 4519 |
+
}
|
| 4520 |
+
.pager .disabled>a,
|
| 4521 |
+
.pager .disabled>a:hover,
|
| 4522 |
+
.pager .disabled>a:focus,
|
| 4523 |
+
.pager .disabled>span {
|
| 4524 |
+
color: #777;
|
| 4525 |
+
cursor: not-allowed;
|
| 4526 |
+
background-color: #fff
|
| 4527 |
+
}
|
| 4528 |
+
.label {
|
| 4529 |
+
display: inline;
|
| 4530 |
+
padding: .2em .6em .3em;
|
| 4531 |
+
font-size: 75%;
|
| 4532 |
+
font-weight: 700;
|
| 4533 |
+
line-height: 1;
|
| 4534 |
+
color: #fff;
|
| 4535 |
+
text-align: center;
|
| 4536 |
+
white-space: nowrap;
|
| 4537 |
+
vertical-align: baseline;
|
| 4538 |
+
border-radius: .25em
|
| 4539 |
+
}
|
| 4540 |
+
a.label:hover,
|
| 4541 |
+
a.label:focus {
|
| 4542 |
+
color: #fff;
|
| 4543 |
+
text-decoration: none;
|
| 4544 |
+
cursor: pointer
|
| 4545 |
+
}
|
| 4546 |
+
.label:empty {
|
| 4547 |
+
display: none
|
| 4548 |
+
}
|
| 4549 |
+
.btn .label {
|
| 4550 |
+
position: relative;
|
| 4551 |
+
top: -1px
|
| 4552 |
+
}
|
| 4553 |
+
.label-default {
|
| 4554 |
+
background-color: #777
|
| 4555 |
+
}
|
| 4556 |
+
.label-default[href]:hover,
|
| 4557 |
+
.label-default[href]:focus {
|
| 4558 |
+
background-color: #5e5e5e
|
| 4559 |
+
}
|
| 4560 |
+
.label-primary {
|
| 4561 |
+
background-color: #428bca
|
| 4562 |
+
}
|
| 4563 |
+
.label-primary[href]:hover,
|
| 4564 |
+
.label-primary[href]:focus {
|
| 4565 |
+
background-color: #3071a9
|
| 4566 |
+
}
|
| 4567 |
+
.label-success {
|
| 4568 |
+
background-color: #5cb85c
|
| 4569 |
+
}
|
| 4570 |
+
.label-success[href]:hover,
|
| 4571 |
+
.label-success[href]:focus {
|
| 4572 |
+
background-color: #449d44
|
| 4573 |
+
}
|
| 4574 |
+
.label-info {
|
| 4575 |
+
background-color: #5bc0de
|
| 4576 |
+
}
|
| 4577 |
+
.label-info[href]:hover,
|
| 4578 |
+
.label-info[href]:focus {
|
| 4579 |
+
background-color: #31b0d5
|
| 4580 |
+
}
|
| 4581 |
+
.label-warning {
|
| 4582 |
+
background-color: #f0ad4e
|
| 4583 |
+
}
|
| 4584 |
+
.label-warning[href]:hover,
|
| 4585 |
+
.label-warning[href]:focus {
|
| 4586 |
+
background-color: #ec971f
|
| 4587 |
+
}
|
| 4588 |
+
.label-danger {
|
| 4589 |
+
background-color: #d9534f
|
| 4590 |
+
}
|
| 4591 |
+
.label-danger[href]:hover,
|
| 4592 |
+
.label-danger[href]:focus {
|
| 4593 |
+
background-color: #c9302c
|
| 4594 |
+
}
|
| 4595 |
+
.badge {
|
| 4596 |
+
display: inline-block;
|
| 4597 |
+
min-width: 10px;
|
| 4598 |
+
padding: 3px 7px;
|
| 4599 |
+
font-size: 12px;
|
| 4600 |
+
font-weight: 700;
|
| 4601 |
+
line-height: 1;
|
| 4602 |
+
color: #fff;
|
| 4603 |
+
text-align: center;
|
| 4604 |
+
white-space: nowrap;
|
| 4605 |
+
vertical-align: baseline;
|
| 4606 |
+
background-color: #777;
|
| 4607 |
+
border-radius: 10px
|
| 4608 |
+
}
|
| 4609 |
+
.badge:empty {
|
| 4610 |
+
display: none
|
| 4611 |
+
}
|
| 4612 |
+
.btn .badge {
|
| 4613 |
+
position: relative;
|
| 4614 |
+
top: -1px
|
| 4615 |
+
}
|
| 4616 |
+
.btn-xs .badge {
|
| 4617 |
+
top: 0;
|
| 4618 |
+
padding: 1px 5px
|
| 4619 |
+
}
|
| 4620 |
+
a.badge:hover,
|
| 4621 |
+
a.badge:focus {
|
| 4622 |
+
color: #fff;
|
| 4623 |
+
text-decoration: none;
|
| 4624 |
+
cursor: pointer
|
| 4625 |
+
}
|
| 4626 |
+
a.list-group-item.active>.badge,
|
| 4627 |
+
.nav-pills>.active>a>.badge {
|
| 4628 |
+
color: #428bca;
|
| 4629 |
+
background-color: #fff
|
| 4630 |
+
}
|
| 4631 |
+
.nav-pills>li>a>.badge {
|
| 4632 |
+
margin-left: 3px
|
| 4633 |
+
}
|
| 4634 |
+
.jumbotron {
|
| 4635 |
+
padding: 30px;
|
| 4636 |
+
margin-bottom: 30px;
|
| 4637 |
+
color: inherit;
|
| 4638 |
+
background-color: #eee
|
| 4639 |
+
}
|
| 4640 |
+
.jumbotron h1,
|
| 4641 |
+
.jumbotron .h1 {
|
| 4642 |
+
color: inherit
|
| 4643 |
+
}
|
| 4644 |
+
.jumbotron p {
|
| 4645 |
+
margin-bottom: 15px;
|
| 4646 |
+
font-size: 21px;
|
| 4647 |
+
font-weight: 200
|
| 4648 |
+
}
|
| 4649 |
+
.jumbotron>hr {
|
| 4650 |
+
border-top-color: #d5d5d5
|
| 4651 |
+
}
|
| 4652 |
+
.container .jumbotron {
|
| 4653 |
+
border-radius: 6px
|
| 4654 |
+
}
|
| 4655 |
+
.jumbotron .container {
|
| 4656 |
+
max-width: 100%
|
| 4657 |
+
}
|
| 4658 |
+
@media screen and (min-width: 768px) {
|
| 4659 |
+
.jumbotron {
|
| 4660 |
+
padding-top: 48px;
|
| 4661 |
+
padding-bottom: 48px
|
| 4662 |
+
}
|
| 4663 |
+
.container .jumbotron {
|
| 4664 |
+
padding-right: 60px;
|
| 4665 |
+
padding-left: 60px
|
| 4666 |
+
}
|
| 4667 |
+
.jumbotron h1,
|
| 4668 |
+
.jumbotron .h1 {
|
| 4669 |
+
font-size: 63px
|
| 4670 |
+
}
|
| 4671 |
+
}
|
| 4672 |
+
.thumbnail {
|
| 4673 |
+
display: block;
|
| 4674 |
+
padding: 4px;
|
| 4675 |
+
margin-bottom: 20px;
|
| 4676 |
+
line-height: 1.42857143;
|
| 4677 |
+
background-color: #fff;
|
| 4678 |
+
border: 1px solid #ddd;
|
| 4679 |
+
border-radius: 4px;
|
| 4680 |
+
-webkit-transition: all .2s ease-in-out;
|
| 4681 |
+
-o-transition: all .2s ease-in-out;
|
| 4682 |
+
transition: all .2s ease-in-out
|
| 4683 |
+
}
|
| 4684 |
+
.thumbnail>img,
|
| 4685 |
+
.thumbnail a>img {
|
| 4686 |
+
margin-right: auto;
|
| 4687 |
+
margin-left: auto
|
| 4688 |
+
}
|
| 4689 |
+
a.thumbnail:hover,
|
| 4690 |
+
a.thumbnail:focus,
|
| 4691 |
+
a.thumbnail.active {
|
| 4692 |
+
border-color: #428bca
|
| 4693 |
+
}
|
| 4694 |
+
.thumbnail .caption {
|
| 4695 |
+
padding: 9px;
|
| 4696 |
+
color: #333
|
| 4697 |
+
}
|
| 4698 |
+
.alert {
|
| 4699 |
+
padding: 15px;
|
| 4700 |
+
margin-bottom: 20px;
|
| 4701 |
+
border: 1px solid transparent;
|
| 4702 |
+
border-radius: 4px
|
| 4703 |
+
}
|
| 4704 |
+
.alert h4 {
|
| 4705 |
+
margin-top: 0;
|
| 4706 |
+
color: inherit
|
| 4707 |
+
}
|
| 4708 |
+
.alert .alert-link {
|
| 4709 |
+
font-weight: 700
|
| 4710 |
+
}
|
| 4711 |
+
.alert>p,
|
| 4712 |
+
.alert>ul {
|
| 4713 |
+
margin-bottom: 0
|
| 4714 |
+
}
|
| 4715 |
+
.alert>p+p {
|
| 4716 |
+
margin-top: 5px
|
| 4717 |
+
}
|
| 4718 |
+
.alert-dismissable,
|
| 4719 |
+
.alert-dismissible {
|
| 4720 |
+
padding-right: 35px
|
| 4721 |
+
}
|
| 4722 |
+
.alert-dismissable .close,
|
| 4723 |
+
.alert-dismissible .close {
|
| 4724 |
+
position: relative;
|
| 4725 |
+
top: -2px;
|
| 4726 |
+
right: -21px;
|
| 4727 |
+
color: inherit
|
| 4728 |
+
}
|
| 4729 |
+
.alert-success {
|
| 4730 |
+
color: #3c763d;
|
| 4731 |
+
background-color: #dff0d8;
|
| 4732 |
+
border-color: #d6e9c6
|
| 4733 |
+
}
|
| 4734 |
+
.alert-success hr {
|
| 4735 |
+
border-top-color: #c9e2b3
|
| 4736 |
+
}
|
| 4737 |
+
.alert-success .alert-link {
|
| 4738 |
+
color: #2b542c
|
| 4739 |
+
}
|
| 4740 |
+
.alert-info {
|
| 4741 |
+
color: #31708f;
|
| 4742 |
+
background-color: #d9edf7;
|
| 4743 |
+
border-color: #bce8f1
|
| 4744 |
+
}
|
| 4745 |
+
.alert-info hr {
|
| 4746 |
+
border-top-color: #a6e1ec
|
| 4747 |
+
}
|
| 4748 |
+
.alert-info .alert-link {
|
| 4749 |
+
color: #245269
|
| 4750 |
+
}
|
| 4751 |
+
.alert-warning {
|
| 4752 |
+
color: #8a6d3b;
|
| 4753 |
+
background-color: #fcf8e3;
|
| 4754 |
+
border-color: #faebcc
|
| 4755 |
+
}
|
| 4756 |
+
.alert-warning hr {
|
| 4757 |
+
border-top-color: #f7e1b5
|
| 4758 |
+
}
|
| 4759 |
+
.alert-warning .alert-link {
|
| 4760 |
+
color: #66512c
|
| 4761 |
+
}
|
| 4762 |
+
.alert-danger {
|
| 4763 |
+
color: #a94442;
|
| 4764 |
+
background-color: #f2dede;
|
| 4765 |
+
border-color: #ebccd1
|
| 4766 |
+
}
|
| 4767 |
+
.alert-danger hr {
|
| 4768 |
+
border-top-color: #e4b9c0
|
| 4769 |
+
}
|
| 4770 |
+
.alert-danger .alert-link {
|
| 4771 |
+
color: #843534
|
| 4772 |
+
}
|
| 4773 |
+
@-webkit-keyframes progress-bar-stripes {
|
| 4774 |
+
from {
|
| 4775 |
+
background-position: 40px 0
|
| 4776 |
+
}
|
| 4777 |
+
to {
|
| 4778 |
+
background-position: 0 0
|
| 4779 |
+
}
|
| 4780 |
+
}
|
| 4781 |
+
@-o-keyframes progress-bar-stripes {
|
| 4782 |
+
from {
|
| 4783 |
+
background-position: 40px 0
|
| 4784 |
+
}
|
| 4785 |
+
to {
|
| 4786 |
+
background-position: 0 0
|
| 4787 |
+
}
|
| 4788 |
+
}
|
| 4789 |
+
@keyframes progress-bar-stripes {
|
| 4790 |
+
from {
|
| 4791 |
+
background-position: 40px 0
|
| 4792 |
+
}
|
| 4793 |
+
to {
|
| 4794 |
+
background-position: 0 0
|
| 4795 |
+
}
|
| 4796 |
+
}
|
| 4797 |
+
.progress {
|
| 4798 |
+
height: 20px;
|
| 4799 |
+
margin-bottom: 20px;
|
| 4800 |
+
overflow: hidden;
|
| 4801 |
+
background-color: #f5f5f5;
|
| 4802 |
+
border-radius: 4px;
|
| 4803 |
+
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
|
| 4804 |
+
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1)
|
| 4805 |
+
}
|
| 4806 |
+
.progress-bar {
|
| 4807 |
+
float: left;
|
| 4808 |
+
width: 0;
|
| 4809 |
+
height: 100%;
|
| 4810 |
+
font-size: 12px;
|
| 4811 |
+
line-height: 20px;
|
| 4812 |
+
color: #fff;
|
| 4813 |
+
text-align: center;
|
| 4814 |
+
background-color: #428bca;
|
| 4815 |
+
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
|
| 4816 |
+
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
|
| 4817 |
+
-webkit-transition: width .6s ease;
|
| 4818 |
+
-o-transition: width .6s ease;
|
| 4819 |
+
transition: width .6s ease
|
| 4820 |
+
}
|
| 4821 |
+
.progress-striped .progress-bar,
|
| 4822 |
+
.progress-bar-striped {
|
| 4823 |
+
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
| 4824 |
+
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
| 4825 |
+
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
| 4826 |
+
-webkit-background-size: 40px 40px;
|
| 4827 |
+
background-size: 40px 40px
|
| 4828 |
+
}
|
| 4829 |
+
.progress.active .progress-bar,
|
| 4830 |
+
.progress-bar.active {
|
| 4831 |
+
-webkit-animation: progress-bar-stripes 2s linear infinite;
|
| 4832 |
+
-o-animation: progress-bar-stripes 2s linear infinite;
|
| 4833 |
+
animation: progress-bar-stripes 2s linear infinite
|
| 4834 |
+
}
|
| 4835 |
+
.progress-bar[aria-valuenow="1"],
|
| 4836 |
+
.progress-bar[aria-valuenow="2"] {
|
| 4837 |
+
min-width: 30px
|
| 4838 |
+
}
|
| 4839 |
+
.progress-bar[aria-valuenow="0"] {
|
| 4840 |
+
min-width: 30px;
|
| 4841 |
+
color: #777;
|
| 4842 |
+
background-color: transparent;
|
| 4843 |
+
background-image: none;
|
| 4844 |
+
-webkit-box-shadow: none;
|
| 4845 |
+
box-shadow: none
|
| 4846 |
+
}
|
| 4847 |
+
.progress-bar-success {
|
| 4848 |
+
background-color: #5cb85c
|
| 4849 |
+
}
|
| 4850 |
+
.progress-striped .progress-bar-success {
|
| 4851 |
+
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
| 4852 |
+
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
| 4853 |
+
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent)
|
| 4854 |
+
}
|
| 4855 |
+
.progress-bar-info {
|
| 4856 |
+
background-color: #5bc0de
|
| 4857 |
+
}
|
| 4858 |
+
.progress-striped .progress-bar-info {
|
| 4859 |
+
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
| 4860 |
+
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
| 4861 |
+
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent)
|
| 4862 |
+
}
|
| 4863 |
+
.progress-bar-warning {
|
| 4864 |
+
background-color: #f0ad4e
|
| 4865 |
+
}
|
| 4866 |
+
.progress-striped .progress-bar-warning {
|
| 4867 |
+
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
| 4868 |
+
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
| 4869 |
+
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent)
|
| 4870 |
+
}
|
| 4871 |
+
.progress-bar-danger {
|
| 4872 |
+
background-color: #d9534f
|
| 4873 |
+
}
|
| 4874 |
+
.progress-striped .progress-bar-danger {
|
| 4875 |
+
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
| 4876 |
+
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
| 4877 |
+
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent)
|
| 4878 |
+
}
|
| 4879 |
+
.media,
|
| 4880 |
+
.media-body {
|
| 4881 |
+
overflow: hidden;
|
| 4882 |
+
zoom: 1
|
| 4883 |
+
}
|
| 4884 |
+
.media,
|
| 4885 |
+
.media .media {
|
| 4886 |
+
margin-top: 15px
|
| 4887 |
+
}
|
| 4888 |
+
.media:first-child {
|
| 4889 |
+
margin-top: 0
|
| 4890 |
+
}
|
| 4891 |
+
.media-object {
|
| 4892 |
+
display: block
|
| 4893 |
+
}
|
| 4894 |
+
.media-heading {
|
| 4895 |
+
margin: 0 0 5px
|
| 4896 |
+
}
|
| 4897 |
+
.media>.pull-left {
|
| 4898 |
+
margin-right: 10px
|
| 4899 |
+
}
|
| 4900 |
+
.media>.pull-right {
|
| 4901 |
+
margin-left: 10px
|
| 4902 |
+
}
|
| 4903 |
+
.media-list {
|
| 4904 |
+
padding-left: 0;
|
| 4905 |
+
list-style: none
|
| 4906 |
+
}
|
| 4907 |
+
.list-group {
|
| 4908 |
+
padding-left: 0;
|
| 4909 |
+
margin-bottom: 20px
|
| 4910 |
+
}
|
| 4911 |
+
.list-group-item {
|
| 4912 |
+
position: relative;
|
| 4913 |
+
display: block;
|
| 4914 |
+
padding: 10px 15px;
|
| 4915 |
+
margin-bottom: -1px;
|
| 4916 |
+
background-color: #fff;
|
| 4917 |
+
border: 1px solid #ddd
|
| 4918 |
+
}
|
| 4919 |
+
.list-group-item:first-child {
|
| 4920 |
+
border-top-left-radius: 4px;
|
| 4921 |
+
border-top-right-radius: 4px
|
| 4922 |
+
}
|
| 4923 |
+
.list-group-item:last-child {
|
| 4924 |
+
margin-bottom: 0;
|
| 4925 |
+
border-bottom-right-radius: 4px;
|
| 4926 |
+
border-bottom-left-radius: 4px
|
| 4927 |
+
}
|
| 4928 |
+
.list-group-item>.badge {
|
| 4929 |
+
float: right
|
| 4930 |
+
}
|
| 4931 |
+
.list-group-item>.badge+.badge {
|
| 4932 |
+
margin-right: 5px
|
| 4933 |
+
}
|
| 4934 |
+
a.list-group-item {
|
| 4935 |
+
color: #555
|
| 4936 |
+
}
|
| 4937 |
+
a.list-group-item .list-group-item-heading {
|
| 4938 |
+
color: #333
|
| 4939 |
+
}
|
| 4940 |
+
a.list-group-item:hover,
|
| 4941 |
+
a.list-group-item:focus {
|
| 4942 |
+
color: #555;
|
| 4943 |
+
text-decoration: none;
|
| 4944 |
+
background-color: #f5f5f5
|
| 4945 |
+
}
|
| 4946 |
+
.list-group-item.disabled,
|
| 4947 |
+
.list-group-item.disabled:hover,
|
| 4948 |
+
.list-group-item.disabled:focus {
|
| 4949 |
+
color: #777;
|
| 4950 |
+
background-color: #eee
|
| 4951 |
+
}
|
| 4952 |
+
.list-group-item.disabled .list-group-item-heading,
|
| 4953 |
+
.list-group-item.disabled:hover .list-group-item-heading,
|
| 4954 |
+
.list-group-item.disabled:focus .list-group-item-heading {
|
| 4955 |
+
color: inherit
|
| 4956 |
+
}
|
| 4957 |
+
.list-group-item.disabled .list-group-item-text,
|
| 4958 |
+
.list-group-item.disabled:hover .list-group-item-text,
|
| 4959 |
+
.list-group-item.disabled:focus .list-group-item-text {
|
| 4960 |
+
color: #777
|
| 4961 |
+
}
|
| 4962 |
+
.list-group-item.active,
|
| 4963 |
+
.list-group-item.active:hover,
|
| 4964 |
+
.list-group-item.active:focus {
|
| 4965 |
+
z-index: 2;
|
| 4966 |
+
color: #fff;
|
| 4967 |
+
background-color: #428bca;
|
| 4968 |
+
border-color: #428bca
|
| 4969 |
+
}
|
| 4970 |
+
.list-group-item.active .list-group-item-heading,
|
| 4971 |
+
.list-group-item.active:hover .list-group-item-heading,
|
| 4972 |
+
.list-group-item.active:focus .list-group-item-heading,
|
| 4973 |
+
.list-group-item.active .list-group-item-heading>small,
|
| 4974 |
+
.list-group-item.active:hover .list-group-item-heading>small,
|
| 4975 |
+
.list-group-item.active:focus .list-group-item-heading>small,
|
| 4976 |
+
.list-group-item.active .list-group-item-heading>.small,
|
| 4977 |
+
.list-group-item.active:hover .list-group-item-heading>.small,
|
| 4978 |
+
.list-group-item.active:focus .list-group-item-heading>.small {
|
| 4979 |
+
color: inherit
|
| 4980 |
+
}
|
| 4981 |
+
.list-group-item.active .list-group-item-text,
|
| 4982 |
+
.list-group-item.active:hover .list-group-item-text,
|
| 4983 |
+
.list-group-item.active:focus .list-group-item-text {
|
| 4984 |
+
color: #e1edf7
|
| 4985 |
+
}
|
| 4986 |
+
.list-group-item-success {
|
| 4987 |
+
color: #3c763d;
|
| 4988 |
+
background-color: #dff0d8
|
| 4989 |
+
}
|
| 4990 |
+
a.list-group-item-success {
|
| 4991 |
+
color: #3c763d
|
| 4992 |
+
}
|
| 4993 |
+
a.list-group-item-success .list-group-item-heading {
|
| 4994 |
+
color: inherit
|
| 4995 |
+
}
|
| 4996 |
+
a.list-group-item-success:hover,
|
| 4997 |
+
a.list-group-item-success:focus {
|
| 4998 |
+
color: #3c763d;
|
| 4999 |
+
background-color: #d0e9c6
|
| 5000 |
+
}
|
| 5001 |
+
a.list-group-item-success.active,
|
| 5002 |
+
a.list-group-item-success.active:hover,
|
| 5003 |
+
a.list-group-item-success.active:focus {
|
| 5004 |
+
color: #fff;
|
| 5005 |
+
background-color: #3c763d;
|
| 5006 |
+
border-color: #3c763d
|
| 5007 |
+
}
|
| 5008 |
+
.list-group-item-info {
|
| 5009 |
+
color: #31708f;
|
| 5010 |
+
background-color: #d9edf7
|
| 5011 |
+
}
|
| 5012 |
+
a.list-group-item-info {
|
| 5013 |
+
color: #31708f
|
| 5014 |
+
}
|
| 5015 |
+
a.list-group-item-info .list-group-item-heading {
|
| 5016 |
+
color: inherit
|
| 5017 |
+
}
|
| 5018 |
+
a.list-group-item-info:hover,
|
| 5019 |
+
a.list-group-item-info:focus {
|
| 5020 |
+
color: #31708f;
|
| 5021 |
+
background-color: #c4e3f3
|
| 5022 |
+
}
|
| 5023 |
+
a.list-group-item-info.active,
|
| 5024 |
+
a.list-group-item-info.active:hover,
|
| 5025 |
+
a.list-group-item-info.active:focus {
|
| 5026 |
+
color: #fff;
|
| 5027 |
+
background-color: #31708f;
|
| 5028 |
+
border-color: #31708f
|
| 5029 |
+
}
|
| 5030 |
+
.list-group-item-warning {
|
| 5031 |
+
color: #8a6d3b;
|
| 5032 |
+
background-color: #fcf8e3
|
| 5033 |
+
}
|
| 5034 |
+
a.list-group-item-warning {
|
| 5035 |
+
color: #8a6d3b
|
| 5036 |
+
}
|
| 5037 |
+
a.list-group-item-warning .list-group-item-heading {
|
| 5038 |
+
color: inherit
|
| 5039 |
+
}
|
| 5040 |
+
a.list-group-item-warning:hover,
|
| 5041 |
+
a.list-group-item-warning:focus {
|
| 5042 |
+
color: #8a6d3b;
|
| 5043 |
+
background-color: #faf2cc
|
| 5044 |
+
}
|
| 5045 |
+
a.list-group-item-warning.active,
|
| 5046 |
+
a.list-group-item-warning.active:hover,
|
| 5047 |
+
a.list-group-item-warning.active:focus {
|
| 5048 |
+
color: #fff;
|
| 5049 |
+
background-color: #8a6d3b;
|
| 5050 |
+
border-color: #8a6d3b
|
| 5051 |
+
}
|
| 5052 |
+
.list-group-item-danger {
|
| 5053 |
+
color: #a94442;
|
| 5054 |
+
background-color: #f2dede
|
| 5055 |
+
}
|
| 5056 |
+
a.list-group-item-danger {
|
| 5057 |
+
color: #a94442
|
| 5058 |
+
}
|
| 5059 |
+
a.list-group-item-danger .list-group-item-heading {
|
| 5060 |
+
color: inherit
|
| 5061 |
+
}
|
| 5062 |
+
a.list-group-item-danger:hover,
|
| 5063 |
+
a.list-group-item-danger:focus {
|
| 5064 |
+
color: #a94442;
|
| 5065 |
+
background-color: #ebcccc
|
| 5066 |
+
}
|
| 5067 |
+
a.list-group-item-danger.active,
|
| 5068 |
+
a.list-group-item-danger.active:hover,
|
| 5069 |
+
a.list-group-item-danger.active:focus {
|
| 5070 |
+
color: #fff;
|
| 5071 |
+
background-color: #a94442;
|
| 5072 |
+
border-color: #a94442
|
| 5073 |
+
}
|
| 5074 |
+
.list-group-item-heading {
|
| 5075 |
+
margin-top: 0;
|
| 5076 |
+
margin-bottom: 5px
|
| 5077 |
+
}
|
| 5078 |
+
.list-group-item-text {
|
| 5079 |
+
margin-bottom: 0;
|
| 5080 |
+
line-height: 1.3
|
| 5081 |
+
}
|
| 5082 |
+
.panel {
|
| 5083 |
+
margin-bottom: 20px;
|
| 5084 |
+
background-color: #fff;
|
| 5085 |
+
border: 1px solid transparent;
|
| 5086 |
+
border-radius: 4px;
|
| 5087 |
+
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
|
| 5088 |
+
box-shadow: 0 1px 1px rgba(0, 0, 0, .05)
|
| 5089 |
+
}
|
| 5090 |
+
.panel-body {
|
| 5091 |
+
padding: 15px
|
| 5092 |
+
}
|
| 5093 |
+
.panel-heading {
|
| 5094 |
+
padding: 10px 15px;
|
| 5095 |
+
border-bottom: 1px solid transparent;
|
| 5096 |
+
border-top-left-radius: 3px;
|
| 5097 |
+
border-top-right-radius: 3px
|
| 5098 |
+
}
|
| 5099 |
+
.panel-heading>.dropdown .dropdown-toggle {
|
| 5100 |
+
color: inherit
|
| 5101 |
+
}
|
| 5102 |
+
.panel-title {
|
| 5103 |
+
margin-top: 0;
|
| 5104 |
+
margin-bottom: 0;
|
| 5105 |
+
font-size: 16px;
|
| 5106 |
+
color: inherit
|
| 5107 |
+
}
|
| 5108 |
+
.panel-title>a {
|
| 5109 |
+
color: inherit
|
| 5110 |
+
}
|
| 5111 |
+
.panel-footer {
|
| 5112 |
+
padding: 10px 15px;
|
| 5113 |
+
background-color: #f5f5f5;
|
| 5114 |
+
border-top: 1px solid #ddd;
|
| 5115 |
+
border-bottom-right-radius: 3px;
|
| 5116 |
+
border-bottom-left-radius: 3px
|
| 5117 |
+
}
|
| 5118 |
+
.panel>.list-group {
|
| 5119 |
+
margin-bottom: 0
|
| 5120 |
+
}
|
| 5121 |
+
.panel>.list-group .list-group-item {
|
| 5122 |
+
border-width: 1px 0;
|
| 5123 |
+
border-radius: 0
|
| 5124 |
+
}
|
| 5125 |
+
.panel>.list-group:first-child .list-group-item:first-child {
|
| 5126 |
+
border-top: 0;
|
| 5127 |
+
border-top-left-radius: 3px;
|
| 5128 |
+
border-top-right-radius: 3px
|
| 5129 |
+
}
|
| 5130 |
+
.panel>.list-group:last-child .list-group-item:last-child {
|
| 5131 |
+
border-bottom: 0;
|
| 5132 |
+
border-bottom-right-radius: 3px;
|
| 5133 |
+
border-bottom-left-radius: 3px
|
| 5134 |
+
}
|
| 5135 |
+
.panel-heading+.list-group .list-group-item:first-child {
|
| 5136 |
+
border-top-width: 0
|
| 5137 |
+
}
|
| 5138 |
+
.list-group+.panel-footer {
|
| 5139 |
+
border-top-width: 0
|
| 5140 |
+
}
|
| 5141 |
+
.panel>.table,
|
| 5142 |
+
.panel>.table-responsive>.table,
|
| 5143 |
+
.panel>.panel-collapse>.table {
|
| 5144 |
+
margin-bottom: 0
|
| 5145 |
+
}
|
| 5146 |
+
.panel>.table:first-child,
|
| 5147 |
+
.panel>.table-responsive:first-child>.table:first-child {
|
| 5148 |
+
border-top-left-radius: 3px;
|
| 5149 |
+
border-top-right-radius: 3px
|
| 5150 |
+
}
|
| 5151 |
+
.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,
|
| 5152 |
+
.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,
|
| 5153 |
+
.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,
|
| 5154 |
+
.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,
|
| 5155 |
+
.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,
|
| 5156 |
+
.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,
|
| 5157 |
+
.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,
|
| 5158 |
+
.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child {
|
| 5159 |
+
border-top-left-radius: 3px
|
| 5160 |
+
}
|
| 5161 |
+
.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,
|
| 5162 |
+
.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,
|
| 5163 |
+
.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,
|
| 5164 |
+
.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,
|
| 5165 |
+
.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,
|
| 5166 |
+
.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,
|
| 5167 |
+
.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,
|
| 5168 |
+
.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child {
|
| 5169 |
+
border-top-right-radius: 3px
|
| 5170 |
+
}
|
| 5171 |
+
.panel>.table:last-child,
|
| 5172 |
+
.panel>.table-responsive:last-child>.table:last-child {
|
| 5173 |
+
border-bottom-right-radius: 3px;
|
| 5174 |
+
border-bottom-left-radius: 3px
|
| 5175 |
+
}
|
| 5176 |
+
.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,
|
| 5177 |
+
.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,
|
| 5178 |
+
.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,
|
| 5179 |
+
.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,
|
| 5180 |
+
.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,
|
| 5181 |
+
.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,
|
| 5182 |
+
.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,
|
| 5183 |
+
.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child {
|
| 5184 |
+
border-bottom-left-radius: 3px
|
| 5185 |
+
}
|
| 5186 |
+
.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,
|
| 5187 |
+
.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,
|
| 5188 |
+
.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,
|
| 5189 |
+
.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,
|
| 5190 |
+
.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,
|
| 5191 |
+
.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,
|
| 5192 |
+
.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,
|
| 5193 |
+
.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child {
|
| 5194 |
+
border-bottom-right-radius: 3px
|
| 5195 |
+
}
|
| 5196 |
+
.panel>.panel-body+.table,
|
| 5197 |
+
.panel>.panel-body+.table-responsive {
|
| 5198 |
+
border-top: 1px solid #ddd
|
| 5199 |
+
}
|
| 5200 |
+
.panel>.table>tbody:first-child>tr:first-child th,
|
| 5201 |
+
.panel>.table>tbody:first-child>tr:first-child td {
|
| 5202 |
+
border-top: 0
|
| 5203 |
+
}
|
| 5204 |
+
.panel>.table-bordered,
|
| 5205 |
+
.panel>.table-responsive>.table-bordered {
|
| 5206 |
+
border: 0
|
| 5207 |
+
}
|
| 5208 |
+
.panel>.table-bordered>thead>tr>th:first-child,
|
| 5209 |
+
.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,
|
| 5210 |
+
.panel>.table-bordered>tbody>tr>th:first-child,
|
| 5211 |
+
.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,
|
| 5212 |
+
.panel>.table-bordered>tfoot>tr>th:first-child,
|
| 5213 |
+
.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,
|
| 5214 |
+
.panel>.table-bordered>thead>tr>td:first-child,
|
| 5215 |
+
.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,
|
| 5216 |
+
.panel>.table-bordered>tbody>tr>td:first-child,
|
| 5217 |
+
.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,
|
| 5218 |
+
.panel>.table-bordered>tfoot>tr>td:first-child,
|
| 5219 |
+
.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child {
|
| 5220 |
+
border-left: 0
|
| 5221 |
+
}
|
| 5222 |
+
.panel>.table-bordered>thead>tr>th:last-child,
|
| 5223 |
+
.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,
|
| 5224 |
+
.panel>.table-bordered>tbody>tr>th:last-child,
|
| 5225 |
+
.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,
|
| 5226 |
+
.panel>.table-bordered>tfoot>tr>th:last-child,
|
| 5227 |
+
.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,
|
| 5228 |
+
.panel>.table-bordered>thead>tr>td:last-child,
|
| 5229 |
+
.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,
|
| 5230 |
+
.panel>.table-bordered>tbody>tr>td:last-child,
|
| 5231 |
+
.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,
|
| 5232 |
+
.panel>.table-bordered>tfoot>tr>td:last-child,
|
| 5233 |
+
.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child {
|
| 5234 |
+
border-right: 0
|
| 5235 |
+
}
|
| 5236 |
+
.panel>.table-bordered>thead>tr:first-child>td,
|
| 5237 |
+
.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,
|
| 5238 |
+
.panel>.table-bordered>tbody>tr:first-child>td,
|
| 5239 |
+
.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,
|
| 5240 |
+
.panel>.table-bordered>thead>tr:first-child>th,
|
| 5241 |
+
.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,
|
| 5242 |
+
.panel>.table-bordered>tbody>tr:first-child>th,
|
| 5243 |
+
.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th {
|
| 5244 |
+
border-bottom: 0
|
| 5245 |
+
}
|
| 5246 |
+
.panel>.table-bordered>tbody>tr:last-child>td,
|
| 5247 |
+
.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,
|
| 5248 |
+
.panel>.table-bordered>tfoot>tr:last-child>td,
|
| 5249 |
+
.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,
|
| 5250 |
+
.panel>.table-bordered>tbody>tr:last-child>th,
|
| 5251 |
+
.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,
|
| 5252 |
+
.panel>.table-bordered>tfoot>tr:last-child>th,
|
| 5253 |
+
.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th {
|
| 5254 |
+
border-bottom: 0
|
| 5255 |
+
}
|
| 5256 |
+
.panel>.table-responsive {
|
| 5257 |
+
margin-bottom: 0;
|
| 5258 |
+
border: 0
|
| 5259 |
+
}
|
| 5260 |
+
.panel-group {
|
| 5261 |
+
margin-bottom: 20px
|
| 5262 |
+
}
|
| 5263 |
+
.panel-group .panel {
|
| 5264 |
+
margin-bottom: 0;
|
| 5265 |
+
border-radius: 4px
|
| 5266 |
+
}
|
| 5267 |
+
.panel-group .panel+.panel {
|
| 5268 |
+
margin-top: 5px
|
| 5269 |
+
}
|
| 5270 |
+
.panel-group .panel-heading {
|
| 5271 |
+
border-bottom: 0
|
| 5272 |
+
}
|
| 5273 |
+
.panel-group .panel-heading+.panel-collapse>.panel-body {
|
| 5274 |
+
border-top: 1px solid #ddd
|
| 5275 |
+
}
|
| 5276 |
+
.panel-group .panel-footer {
|
| 5277 |
+
border-top: 0
|
| 5278 |
+
}
|
| 5279 |
+
.panel-group .panel-footer+.panel-collapse .panel-body {
|
| 5280 |
+
border-bottom: 1px solid #ddd
|
| 5281 |
+
}
|
| 5282 |
+
.panel-default {
|
| 5283 |
+
border-color: #ddd
|
| 5284 |
+
}
|
| 5285 |
+
.panel-default>.panel-heading {
|
| 5286 |
+
color: #333;
|
| 5287 |
+
background-color: #f5f5f5;
|
| 5288 |
+
border-color: #ddd
|
| 5289 |
+
}
|
| 5290 |
+
.panel-default>.panel-heading+.panel-collapse>.panel-body {
|
| 5291 |
+
border-top-color: #ddd
|
| 5292 |
+
}
|
| 5293 |
+
.panel-default>.panel-heading .badge {
|
| 5294 |
+
color: #f5f5f5;
|
| 5295 |
+
background-color: #333
|
| 5296 |
+
}
|
| 5297 |
+
.panel-default>.panel-footer+.panel-collapse>.panel-body {
|
| 5298 |
+
border-bottom-color: #ddd
|
| 5299 |
+
}
|
| 5300 |
+
.panel-primary {
|
| 5301 |
+
border-color: #428bca
|
| 5302 |
+
}
|
| 5303 |
+
.panel-primary>.panel-heading {
|
| 5304 |
+
color: #fff;
|
| 5305 |
+
background-color: #428bca;
|
| 5306 |
+
border-color: #428bca
|
| 5307 |
+
}
|
| 5308 |
+
.panel-primary>.panel-heading+.panel-collapse>.panel-body {
|
| 5309 |
+
border-top-color: #428bca
|
| 5310 |
+
}
|
| 5311 |
+
.panel-primary>.panel-heading .badge {
|
| 5312 |
+
color: #428bca;
|
| 5313 |
+
background-color: #fff
|
| 5314 |
+
}
|
| 5315 |
+
.panel-primary>.panel-footer+.panel-collapse>.panel-body {
|
| 5316 |
+
border-bottom-color: #428bca
|
| 5317 |
+
}
|
| 5318 |
+
.panel-success {
|
| 5319 |
+
border-color: #d6e9c6
|
| 5320 |
+
}
|
| 5321 |
+
.panel-success>.panel-heading {
|
| 5322 |
+
color: #3c763d;
|
| 5323 |
+
background-color: #dff0d8;
|
| 5324 |
+
border-color: #d6e9c6
|
| 5325 |
+
}
|
| 5326 |
+
.panel-success>.panel-heading+.panel-collapse>.panel-body {
|
| 5327 |
+
border-top-color: #d6e9c6
|
| 5328 |
+
}
|
| 5329 |
+
.panel-success>.panel-heading .badge {
|
| 5330 |
+
color: #dff0d8;
|
| 5331 |
+
background-color: #3c763d
|
| 5332 |
+
}
|
| 5333 |
+
.panel-success>.panel-footer+.panel-collapse>.panel-body {
|
| 5334 |
+
border-bottom-color: #d6e9c6
|
| 5335 |
+
}
|
| 5336 |
+
.panel-info {
|
| 5337 |
+
border-color: #bce8f1
|
| 5338 |
+
}
|
| 5339 |
+
.panel-info>.panel-heading {
|
| 5340 |
+
color: #31708f;
|
| 5341 |
+
background-color: #d9edf7;
|
| 5342 |
+
border-color: #bce8f1
|
| 5343 |
+
}
|
| 5344 |
+
.panel-info>.panel-heading+.panel-collapse>.panel-body {
|
| 5345 |
+
border-top-color: #bce8f1
|
| 5346 |
+
}
|
| 5347 |
+
.panel-info>.panel-heading .badge {
|
| 5348 |
+
color: #d9edf7;
|
| 5349 |
+
background-color: #31708f
|
| 5350 |
+
}
|
| 5351 |
+
.panel-info>.panel-footer+.panel-collapse>.panel-body {
|
| 5352 |
+
border-bottom-color: #bce8f1
|
| 5353 |
+
}
|
| 5354 |
+
.panel-warning {
|
| 5355 |
+
border-color: #faebcc
|
| 5356 |
+
}
|
| 5357 |
+
.panel-warning>.panel-heading {
|
| 5358 |
+
color: #8a6d3b;
|
| 5359 |
+
background-color: #fcf8e3;
|
| 5360 |
+
border-color: #faebcc
|
| 5361 |
+
}
|
| 5362 |
+
.panel-warning>.panel-heading+.panel-collapse>.panel-body {
|
| 5363 |
+
border-top-color: #faebcc
|
| 5364 |
+
}
|
| 5365 |
+
.panel-warning>.panel-heading .badge {
|
| 5366 |
+
color: #fcf8e3;
|
| 5367 |
+
background-color: #8a6d3b
|
| 5368 |
+
}
|
| 5369 |
+
.panel-warning>.panel-footer+.panel-collapse>.panel-body {
|
| 5370 |
+
border-bottom-color: #faebcc
|
| 5371 |
+
}
|
| 5372 |
+
.panel-danger {
|
| 5373 |
+
border-color: #ebccd1
|
| 5374 |
+
}
|
| 5375 |
+
.panel-danger>.panel-heading {
|
| 5376 |
+
color: #a94442;
|
| 5377 |
+
background-color: #f2dede;
|
| 5378 |
+
border-color: #ebccd1
|
| 5379 |
+
}
|
| 5380 |
+
.panel-danger>.panel-heading+.panel-collapse>.panel-body {
|
| 5381 |
+
border-top-color: #ebccd1
|
| 5382 |
+
}
|
| 5383 |
+
.panel-danger>.panel-heading .badge {
|
| 5384 |
+
color: #f2dede;
|
| 5385 |
+
background-color: #a94442
|
| 5386 |
+
}
|
| 5387 |
+
.panel-danger>.panel-footer+.panel-collapse>.panel-body {
|
| 5388 |
+
border-bottom-color: #ebccd1
|
| 5389 |
+
}
|
| 5390 |
+
.embed-responsive {
|
| 5391 |
+
position: relative;
|
| 5392 |
+
display: block;
|
| 5393 |
+
height: 0;
|
| 5394 |
+
padding: 0;
|
| 5395 |
+
overflow: hidden
|
| 5396 |
+
}
|
| 5397 |
+
.embed-responsive .embed-responsive-item,
|
| 5398 |
+
.embed-responsive iframe,
|
| 5399 |
+
.embed-responsive embed,
|
| 5400 |
+
.embed-responsive object {
|
| 5401 |
+
position: absolute;
|
| 5402 |
+
top: 0;
|
| 5403 |
+
bottom: 0;
|
| 5404 |
+
left: 0;
|
| 5405 |
+
width: 100%;
|
| 5406 |
+
height: 100%;
|
| 5407 |
+
border: 0
|
| 5408 |
+
}
|
| 5409 |
+
.embed-responsive.embed-responsive-16by9 {
|
| 5410 |
+
padding-bottom: 56.25%
|
| 5411 |
+
}
|
| 5412 |
+
.embed-responsive.embed-responsive-4by3 {
|
| 5413 |
+
padding-bottom: 75%
|
| 5414 |
+
}
|
| 5415 |
+
.well {
|
| 5416 |
+
min-height: 20px;
|
| 5417 |
+
padding: 19px;
|
| 5418 |
+
margin-bottom: 20px;
|
| 5419 |
+
background-color: #f5f5f5;
|
| 5420 |
+
border: 1px solid #e3e3e3;
|
| 5421 |
+
border-radius: 4px;
|
| 5422 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
|
| 5423 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05)
|
| 5424 |
+
}
|
| 5425 |
+
.well blockquote {
|
| 5426 |
+
border-color: #ddd;
|
| 5427 |
+
border-color: rgba(0, 0, 0, .15)
|
| 5428 |
+
}
|
| 5429 |
+
.well-lg {
|
| 5430 |
+
padding: 24px;
|
| 5431 |
+
border-radius: 6px
|
| 5432 |
+
}
|
| 5433 |
+
.well-sm {
|
| 5434 |
+
padding: 9px;
|
| 5435 |
+
border-radius: 3px
|
| 5436 |
+
}
|
| 5437 |
+
.close {
|
| 5438 |
+
float: right;
|
| 5439 |
+
font-size: 21px;
|
| 5440 |
+
font-weight: 700;
|
| 5441 |
+
line-height: 1;
|
| 5442 |
+
color: #000;
|
| 5443 |
+
text-shadow: 0 1px 0 #fff;
|
| 5444 |
+
filter: alpha(opacity=20);
|
| 5445 |
+
opacity: .2
|
| 5446 |
+
}
|
| 5447 |
+
.close:hover,
|
| 5448 |
+
.close:focus {
|
| 5449 |
+
color: #000;
|
| 5450 |
+
text-decoration: none;
|
| 5451 |
+
cursor: pointer;
|
| 5452 |
+
filter: alpha(opacity=50);
|
| 5453 |
+
opacity: .5
|
| 5454 |
+
}
|
| 5455 |
+
button.close {
|
| 5456 |
+
-webkit-appearance: none;
|
| 5457 |
+
padding: 0;
|
| 5458 |
+
cursor: pointer;
|
| 5459 |
+
background: 0 0;
|
| 5460 |
+
border: 0
|
| 5461 |
+
}
|
| 5462 |
+
.modal-open {
|
| 5463 |
+
overflow: hidden
|
| 5464 |
+
}
|
| 5465 |
+
.modal {
|
| 5466 |
+
position: fixed;
|
| 5467 |
+
top: 0;
|
| 5468 |
+
right: 0;
|
| 5469 |
+
bottom: 0;
|
| 5470 |
+
left: 0;
|
| 5471 |
+
z-index: 1050;
|
| 5472 |
+
display: none;
|
| 5473 |
+
overflow: hidden;
|
| 5474 |
+
-webkit-overflow-scrolling: touch;
|
| 5475 |
+
outline: 0
|
| 5476 |
+
}
|
| 5477 |
+
.modal.fade .modal-dialog {
|
| 5478 |
+
-webkit-transition: -webkit-transform .3s ease-out;
|
| 5479 |
+
-o-transition: -o-transform .3s ease-out;
|
| 5480 |
+
transition: transform .3s ease-out;
|
| 5481 |
+
-webkit-transform: translate3d(0, -25%, 0);
|
| 5482 |
+
-o-transform: translate3d(0, -25%, 0);
|
| 5483 |
+
transform: translate3d(0, -25%, 0)
|
| 5484 |
+
}
|
| 5485 |
+
.modal.in .modal-dialog {
|
| 5486 |
+
-webkit-transform: translate3d(0, 0, 0);
|
| 5487 |
+
-o-transform: translate3d(0, 0, 0);
|
| 5488 |
+
transform: translate3d(0, 0, 0)
|
| 5489 |
+
}
|
| 5490 |
+
.modal-open .modal {
|
| 5491 |
+
overflow-x: hidden;
|
| 5492 |
+
overflow-y: auto
|
| 5493 |
+
}
|
| 5494 |
+
.modal-dialog {
|
| 5495 |
+
position: relative;
|
| 5496 |
+
width: auto;
|
| 5497 |
+
margin: 10px;
|
| 5498 |
+
z-index: 1040;
|
| 5499 |
+
}
|
| 5500 |
+
.modal-content {
|
| 5501 |
+
position: relative;
|
| 5502 |
+
background-color: #fff;
|
| 5503 |
+
-webkit-background-clip: padding-box;
|
| 5504 |
+
background-clip: padding-box;
|
| 5505 |
+
border: 1px solid #999;
|
| 5506 |
+
border: 1px solid rgba(0, 0, 0, .2);
|
| 5507 |
+
border-radius: 6px;
|
| 5508 |
+
outline: 0;
|
| 5509 |
+
-webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
|
| 5510 |
+
box-shadow: 0 3px 9px rgba(0, 0, 0, .5)
|
| 5511 |
+
}
|
| 5512 |
+
.modal-backdrop {
|
| 5513 |
+
position: fixed;
|
| 5514 |
+
top: 0;
|
| 5515 |
+
right: 0;
|
| 5516 |
+
bottom: 0;
|
| 5517 |
+
left: 0;
|
| 5518 |
+
z-index: 1040;
|
| 5519 |
+
background-color: transparent
|
| 5520 |
+
}
|
| 5521 |
+
.modal-backdrop.fade {
|
| 5522 |
+
filter: alpha(opacity=0);
|
| 5523 |
+
opacity: 0
|
| 5524 |
+
}
|
| 5525 |
+
.modal-backdrop.in {
|
| 5526 |
+
filter: alpha(opacity=50);
|
| 5527 |
+
opacity: .5
|
| 5528 |
+
}
|
| 5529 |
+
.modal-header {
|
| 5530 |
+
min-height: 16.43px;
|
| 5531 |
+
padding: 15px;
|
| 5532 |
+
border-bottom: 1px solid #e5e5e5
|
| 5533 |
+
}
|
| 5534 |
+
.modal-header .close {
|
| 5535 |
+
margin-top: -2px
|
| 5536 |
+
}
|
| 5537 |
+
.modal-title {
|
| 5538 |
+
margin: 0;
|
| 5539 |
+
line-height: 1.42857143
|
| 5540 |
+
}
|
| 5541 |
+
.modal-body {
|
| 5542 |
+
position: relative;
|
| 5543 |
+
padding: 15px
|
| 5544 |
+
}
|
| 5545 |
+
.modal-footer {
|
| 5546 |
+
padding: 15px;
|
| 5547 |
+
text-align: right;
|
| 5548 |
+
border-top: 1px solid #e5e5e5
|
| 5549 |
+
}
|
| 5550 |
+
.modal-footer .btn+.btn {
|
| 5551 |
+
margin-bottom: 0;
|
| 5552 |
+
margin-left: 5px
|
| 5553 |
+
}
|
| 5554 |
+
.modal-footer .btn-group .btn+.btn {
|
| 5555 |
+
margin-left: -1px
|
| 5556 |
+
}
|
| 5557 |
+
.modal-footer .btn-block+.btn-block {
|
| 5558 |
+
margin-left: 0
|
| 5559 |
+
}
|
| 5560 |
+
.modal-scrollbar-measure {
|
| 5561 |
+
position: absolute;
|
| 5562 |
+
top: -9999px;
|
| 5563 |
+
width: 50px;
|
| 5564 |
+
height: 50px;
|
| 5565 |
+
overflow: scroll
|
| 5566 |
+
}
|
| 5567 |
+
@media (min-width: 768px) {
|
| 5568 |
+
.modal-dialog {
|
| 5569 |
+
width: 600px;
|
| 5570 |
+
margin: 30px auto;
|
| 5571 |
+
z-index: 1040;
|
| 5572 |
+
}
|
| 5573 |
+
.modal-content {
|
| 5574 |
+
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
|
| 5575 |
+
box-shadow: 0 5px 15px rgba(0, 0, 0, .5)
|
| 5576 |
+
}
|
| 5577 |
+
.modal-sm {
|
| 5578 |
+
width: 300px
|
| 5579 |
+
}
|
| 5580 |
+
}
|
| 5581 |
+
@media (min-width: 992px) {
|
| 5582 |
+
.modal-lg {
|
| 5583 |
+
width: 900px
|
| 5584 |
+
}
|
| 5585 |
+
}
|
| 5586 |
+
.tooltip {
|
| 5587 |
+
position: absolute;
|
| 5588 |
+
z-index: 1070;
|
| 5589 |
+
display: block;
|
| 5590 |
+
font-size: 12px;
|
| 5591 |
+
line-height: 1.4;
|
| 5592 |
+
visibility: visible;
|
| 5593 |
+
filter: alpha(opacity=0);
|
| 5594 |
+
opacity: 0
|
| 5595 |
+
}
|
| 5596 |
+
.tooltip.in {
|
| 5597 |
+
filter: alpha(opacity=90);
|
| 5598 |
+
opacity: .9
|
| 5599 |
+
}
|
| 5600 |
+
.tooltip.top {
|
| 5601 |
+
padding: 5px 0;
|
| 5602 |
+
margin-top: -3px
|
| 5603 |
+
}
|
| 5604 |
+
.tooltip.right {
|
| 5605 |
+
padding: 0 5px;
|
| 5606 |
+
margin-left: 3px
|
| 5607 |
+
}
|
| 5608 |
+
.tooltip.bottom {
|
| 5609 |
+
padding: 5px 0;
|
| 5610 |
+
margin-top: 3px
|
| 5611 |
+
}
|
| 5612 |
+
.tooltip.left {
|
| 5613 |
+
padding: 0 5px;
|
| 5614 |
+
margin-left: -3px
|
| 5615 |
+
}
|
| 5616 |
+
.tooltip-inner {
|
| 5617 |
+
max-width: 200px;
|
| 5618 |
+
padding: 3px 8px;
|
| 5619 |
+
color: #fff;
|
| 5620 |
+
text-align: center;
|
| 5621 |
+
text-decoration: none;
|
| 5622 |
+
background-color: #000;
|
| 5623 |
+
border-radius: 4px
|
| 5624 |
+
}
|
| 5625 |
+
.tooltip-arrow {
|
| 5626 |
+
position: absolute;
|
| 5627 |
+
width: 0;
|
| 5628 |
+
height: 0;
|
| 5629 |
+
border-color: transparent;
|
| 5630 |
+
border-style: solid
|
| 5631 |
+
}
|
| 5632 |
+
.tooltip.top .tooltip-arrow {
|
| 5633 |
+
bottom: 0;
|
| 5634 |
+
left: 50%;
|
| 5635 |
+
margin-left: -5px;
|
| 5636 |
+
border-width: 5px 5px 0;
|
| 5637 |
+
border-top-color: #000
|
| 5638 |
+
}
|
| 5639 |
+
.tooltip.top-left .tooltip-arrow {
|
| 5640 |
+
bottom: 0;
|
| 5641 |
+
left: 5px;
|
| 5642 |
+
border-width: 5px 5px 0;
|
| 5643 |
+
border-top-color: #000
|
| 5644 |
+
}
|
| 5645 |
+
.tooltip.top-right .tooltip-arrow {
|
| 5646 |
+
right: 5px;
|
| 5647 |
+
bottom: 0;
|
| 5648 |
+
border-width: 5px 5px 0;
|
| 5649 |
+
border-top-color: #000
|
| 5650 |
+
}
|
| 5651 |
+
.tooltip.right .tooltip-arrow {
|
| 5652 |
+
top: 50%;
|
| 5653 |
+
left: 0;
|
| 5654 |
+
margin-top: -5px;
|
| 5655 |
+
border-width: 5px 5px 5px 0;
|
| 5656 |
+
border-right-color: #000
|
| 5657 |
+
}
|
| 5658 |
+
.tooltip.left .tooltip-arrow {
|
| 5659 |
+
top: 50%;
|
| 5660 |
+
right: 0;
|
| 5661 |
+
margin-top: -5px;
|
| 5662 |
+
border-width: 5px 0 5px 5px;
|
| 5663 |
+
border-left-color: #000
|
| 5664 |
+
}
|
| 5665 |
+
.tooltip.bottom .tooltip-arrow {
|
| 5666 |
+
top: 0;
|
| 5667 |
+
left: 50%;
|
| 5668 |
+
margin-left: -5px;
|
| 5669 |
+
border-width: 0 5px 5px;
|
| 5670 |
+
border-bottom-color: #000
|
| 5671 |
+
}
|
| 5672 |
+
.tooltip.bottom-left .tooltip-arrow {
|
| 5673 |
+
top: 0;
|
| 5674 |
+
left: 5px;
|
| 5675 |
+
border-width: 0 5px 5px;
|
| 5676 |
+
border-bottom-color: #000
|
| 5677 |
+
}
|
| 5678 |
+
.tooltip.bottom-right .tooltip-arrow {
|
| 5679 |
+
top: 0;
|
| 5680 |
+
right: 5px;
|
| 5681 |
+
border-width: 0 5px 5px;
|
| 5682 |
+
border-bottom-color: #000
|
| 5683 |
+
}
|
| 5684 |
+
.popover {
|
| 5685 |
+
position: absolute;
|
| 5686 |
+
top: 0;
|
| 5687 |
+
left: 0;
|
| 5688 |
+
z-index: 1060;
|
| 5689 |
+
display: none;
|
| 5690 |
+
max-width: 276px;
|
| 5691 |
+
padding: 1px;
|
| 5692 |
+
text-align: left;
|
| 5693 |
+
white-space: normal;
|
| 5694 |
+
background-color: #fff;
|
| 5695 |
+
-webkit-background-clip: padding-box;
|
| 5696 |
+
background-clip: padding-box;
|
| 5697 |
+
border: 1px solid #ccc;
|
| 5698 |
+
border: 1px solid rgba(0, 0, 0, .2);
|
| 5699 |
+
border-radius: 6px;
|
| 5700 |
+
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
|
| 5701 |
+
box-shadow: 0 5px 10px rgba(0, 0, 0, .2)
|
| 5702 |
+
}
|
| 5703 |
+
.popover.top {
|
| 5704 |
+
margin-top: -10px
|
| 5705 |
+
}
|
| 5706 |
+
.popover.right {
|
| 5707 |
+
margin-left: 10px
|
| 5708 |
+
}
|
| 5709 |
+
.popover.bottom {
|
| 5710 |
+
margin-top: 10px
|
| 5711 |
+
}
|
| 5712 |
+
.popover.left {
|
| 5713 |
+
margin-left: -10px
|
| 5714 |
+
}
|
| 5715 |
+
.popover-title {
|
| 5716 |
+
padding: 8px 14px;
|
| 5717 |
+
margin: 0;
|
| 5718 |
+
font-size: 14px;
|
| 5719 |
+
font-weight: 400;
|
| 5720 |
+
line-height: 18px;
|
| 5721 |
+
background-color: #f7f7f7;
|
| 5722 |
+
border-bottom: 1px solid #ebebeb;
|
| 5723 |
+
border-radius: 5px 5px 0 0
|
| 5724 |
+
}
|
| 5725 |
+
.popover-content {
|
| 5726 |
+
padding: 9px 14px
|
| 5727 |
+
}
|
| 5728 |
+
.popover>.arrow,
|
| 5729 |
+
.popover>.arrow:after {
|
| 5730 |
+
position: absolute;
|
| 5731 |
+
display: block;
|
| 5732 |
+
width: 0;
|
| 5733 |
+
height: 0;
|
| 5734 |
+
border-color: transparent;
|
| 5735 |
+
border-style: solid
|
| 5736 |
+
}
|
| 5737 |
+
.popover>.arrow {
|
| 5738 |
+
border-width: 11px
|
| 5739 |
+
}
|
| 5740 |
+
.popover>.arrow:after {
|
| 5741 |
+
content: "";
|
| 5742 |
+
border-width: 10px
|
| 5743 |
+
}
|
| 5744 |
+
.popover.top>.arrow {
|
| 5745 |
+
bottom: -11px;
|
| 5746 |
+
left: 50%;
|
| 5747 |
+
margin-left: -11px;
|
| 5748 |
+
border-top-color: #999;
|
| 5749 |
+
border-top-color: rgba(0, 0, 0, .25);
|
| 5750 |
+
border-bottom-width: 0
|
| 5751 |
+
}
|
| 5752 |
+
.popover.top>.arrow:after {
|
| 5753 |
+
bottom: 1px;
|
| 5754 |
+
margin-left: -10px;
|
| 5755 |
+
content: " ";
|
| 5756 |
+
border-top-color: #fff;
|
| 5757 |
+
border-bottom-width: 0
|
| 5758 |
+
}
|
| 5759 |
+
.popover.right>.arrow {
|
| 5760 |
+
top: 50%;
|
| 5761 |
+
left: -11px;
|
| 5762 |
+
margin-top: -11px;
|
| 5763 |
+
border-right-color: #999;
|
| 5764 |
+
border-right-color: rgba(0, 0, 0, .25);
|
| 5765 |
+
border-left-width: 0
|
| 5766 |
+
}
|
| 5767 |
+
.popover.right>.arrow:after {
|
| 5768 |
+
bottom: -10px;
|
| 5769 |
+
left: 1px;
|
| 5770 |
+
content: " ";
|
| 5771 |
+
border-right-color: #fff;
|
| 5772 |
+
border-left-width: 0
|
| 5773 |
+
}
|
| 5774 |
+
.popover.bottom>.arrow {
|
| 5775 |
+
top: -11px;
|
| 5776 |
+
left: 50%;
|
| 5777 |
+
margin-left: -11px;
|
| 5778 |
+
border-top-width: 0;
|
| 5779 |
+
border-bottom-color: #999;
|
| 5780 |
+
border-bottom-color: rgba(0, 0, 0, .25)
|
| 5781 |
+
}
|
| 5782 |
+
.popover.bottom>.arrow:after {
|
| 5783 |
+
top: 1px;
|
| 5784 |
+
margin-left: -10px;
|
| 5785 |
+
content: " ";
|
| 5786 |
+
border-top-width: 0;
|
| 5787 |
+
border-bottom-color: #fff
|
| 5788 |
+
}
|
| 5789 |
+
.popover.left>.arrow {
|
| 5790 |
+
top: 50%;
|
| 5791 |
+
right: -11px;
|
| 5792 |
+
margin-top: -11px;
|
| 5793 |
+
border-right-width: 0;
|
| 5794 |
+
border-left-color: #999;
|
| 5795 |
+
border-left-color: rgba(0, 0, 0, .25)
|
| 5796 |
+
}
|
| 5797 |
+
.popover.left>.arrow:after {
|
| 5798 |
+
right: 1px;
|
| 5799 |
+
bottom: -10px;
|
| 5800 |
+
content: " ";
|
| 5801 |
+
border-right-width: 0;
|
| 5802 |
+
border-left-color: #fff
|
| 5803 |
+
}
|
| 5804 |
+
.carousel {
|
| 5805 |
+
position: relative
|
| 5806 |
+
}
|
| 5807 |
+
.carousel-inner {
|
| 5808 |
+
position: relative;
|
| 5809 |
+
width: 100%;
|
| 5810 |
+
overflow: hidden
|
| 5811 |
+
}
|
| 5812 |
+
.carousel-inner>.item {
|
| 5813 |
+
position: relative;
|
| 5814 |
+
display: none;
|
| 5815 |
+
-webkit-transition: .6s ease-in-out left;
|
| 5816 |
+
-o-transition: .6s ease-in-out left;
|
| 5817 |
+
transition: .6s ease-in-out left
|
| 5818 |
+
}
|
| 5819 |
+
.carousel-inner>.item>img,
|
| 5820 |
+
.carousel-inner>.item>a>img {
|
| 5821 |
+
line-height: 1
|
| 5822 |
+
}
|
| 5823 |
+
.carousel-inner>.active,
|
| 5824 |
+
.carousel-inner>.next,
|
| 5825 |
+
.carousel-inner>.prev {
|
| 5826 |
+
display: block
|
| 5827 |
+
}
|
| 5828 |
+
.carousel-inner>.active {
|
| 5829 |
+
left: 0
|
| 5830 |
+
}
|
| 5831 |
+
.carousel-inner>.next,
|
| 5832 |
+
.carousel-inner>.prev {
|
| 5833 |
+
position: absolute;
|
| 5834 |
+
top: 0;
|
| 5835 |
+
width: 100%
|
| 5836 |
+
}
|
| 5837 |
+
.carousel-inner>.next {
|
| 5838 |
+
left: 100%
|
| 5839 |
+
}
|
| 5840 |
+
.carousel-inner>.prev {
|
| 5841 |
+
left: -100%
|
| 5842 |
+
}
|
| 5843 |
+
.carousel-inner>.next.left,
|
| 5844 |
+
.carousel-inner>.prev.right {
|
| 5845 |
+
left: 0
|
| 5846 |
+
}
|
| 5847 |
+
.carousel-inner>.active.left {
|
| 5848 |
+
left: -100%
|
| 5849 |
+
}
|
| 5850 |
+
.carousel-inner>.active.right {
|
| 5851 |
+
left: 100%
|
| 5852 |
+
}
|
| 5853 |
+
.carousel-control {
|
| 5854 |
+
position: absolute;
|
| 5855 |
+
top: 0;
|
| 5856 |
+
bottom: 0;
|
| 5857 |
+
left: 0;
|
| 5858 |
+
width: 15%;
|
| 5859 |
+
font-size: 20px;
|
| 5860 |
+
color: #fff;
|
| 5861 |
+
text-align: center;
|
| 5862 |
+
text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
|
| 5863 |
+
filter: alpha(opacity=50);
|
| 5864 |
+
opacity: .5
|
| 5865 |
+
}
|
| 5866 |
+
.carousel-control.left {
|
| 5867 |
+
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0, rgba(0, 0, 0, .0001) 100%);
|
| 5868 |
+
background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0, rgba(0, 0, 0, .0001) 100%);
|
| 5869 |
+
background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001)));
|
| 5870 |
+
background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0, rgba(0, 0, 0, .0001) 100%);
|
| 5871 |
+
filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
|
| 5872 |
+
background-repeat: repeat-x
|
| 5873 |
+
}
|
| 5874 |
+
.carousel-control.right {
|
| 5875 |
+
right: 0;
|
| 5876 |
+
left: auto;
|
| 5877 |
+
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0, rgba(0, 0, 0, .5) 100%);
|
| 5878 |
+
background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0, rgba(0, 0, 0, .5) 100%);
|
| 5879 |
+
background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5)));
|
| 5880 |
+
background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0, rgba(0, 0, 0, .5) 100%);
|
| 5881 |
+
filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
|
| 5882 |
+
background-repeat: repeat-x
|
| 5883 |
+
}
|
| 5884 |
+
.carousel-control:hover,
|
| 5885 |
+
.carousel-control:focus {
|
| 5886 |
+
color: #fff;
|
| 5887 |
+
text-decoration: none;
|
| 5888 |
+
filter: alpha(opacity=90);
|
| 5889 |
+
outline: 0;
|
| 5890 |
+
opacity: .9
|
| 5891 |
+
}
|
| 5892 |
+
.carousel-control .icon-prev,
|
| 5893 |
+
.carousel-control .icon-next,
|
| 5894 |
+
.carousel-control .glyphicon-chevron-left,
|
| 5895 |
+
.carousel-control .glyphicon-chevron-right {
|
| 5896 |
+
position: absolute;
|
| 5897 |
+
top: 50%;
|
| 5898 |
+
z-index: 5;
|
| 5899 |
+
display: inline-block
|
| 5900 |
+
}
|
| 5901 |
+
.carousel-control .icon-prev,
|
| 5902 |
+
.carousel-control .glyphicon-chevron-left {
|
| 5903 |
+
left: 50%;
|
| 5904 |
+
margin-left: -10px
|
| 5905 |
+
}
|
| 5906 |
+
.carousel-control .icon-next,
|
| 5907 |
+
.carousel-control .glyphicon-chevron-right {
|
| 5908 |
+
right: 50%;
|
| 5909 |
+
margin-right: -10px
|
| 5910 |
+
}
|
| 5911 |
+
.carousel-control .icon-prev,
|
| 5912 |
+
.carousel-control .icon-next {
|
| 5913 |
+
width: 20px;
|
| 5914 |
+
height: 20px;
|
| 5915 |
+
margin-top: -10px;
|
| 5916 |
+
font-family: serif
|
| 5917 |
+
}
|
| 5918 |
+
.carousel-control .icon-prev:before {
|
| 5919 |
+
content: '\2039'
|
| 5920 |
+
}
|
| 5921 |
+
.carousel-control .icon-next:before {
|
| 5922 |
+
content: '\203a'
|
| 5923 |
+
}
|
| 5924 |
+
.carousel-indicators {
|
| 5925 |
+
position: absolute;
|
| 5926 |
+
bottom: 10px;
|
| 5927 |
+
left: 50%;
|
| 5928 |
+
z-index: 15;
|
| 5929 |
+
width: 60%;
|
| 5930 |
+
padding-left: 0;
|
| 5931 |
+
margin-left: -30%;
|
| 5932 |
+
text-align: center;
|
| 5933 |
+
list-style: none
|
| 5934 |
+
}
|
| 5935 |
+
.carousel-indicators li {
|
| 5936 |
+
display: inline-block;
|
| 5937 |
+
width: 10px;
|
| 5938 |
+
height: 10px;
|
| 5939 |
+
margin: 1px;
|
| 5940 |
+
text-indent: -999px;
|
| 5941 |
+
cursor: pointer;
|
| 5942 |
+
background-color: #000 \9;
|
| 5943 |
+
background-color: rgba(0, 0, 0, 0);
|
| 5944 |
+
border: 1px solid #fff;
|
| 5945 |
+
border-radius: 10px
|
| 5946 |
+
}
|
| 5947 |
+
.carousel-indicators .active {
|
| 5948 |
+
width: 12px;
|
| 5949 |
+
height: 12px;
|
| 5950 |
+
margin: 0;
|
| 5951 |
+
background-color: #fff
|
| 5952 |
+
}
|
| 5953 |
+
.carousel-caption {
|
| 5954 |
+
position: absolute;
|
| 5955 |
+
right: 15%;
|
| 5956 |
+
bottom: 20px;
|
| 5957 |
+
left: 15%;
|
| 5958 |
+
z-index: 10;
|
| 5959 |
+
padding-top: 20px;
|
| 5960 |
+
padding-bottom: 20px;
|
| 5961 |
+
color: #fff;
|
| 5962 |
+
text-align: center;
|
| 5963 |
+
text-shadow: 0 1px 2px rgba(0, 0, 0, .6)
|
| 5964 |
+
}
|
| 5965 |
+
.carousel-caption .btn {
|
| 5966 |
+
text-shadow: none
|
| 5967 |
+
}
|
| 5968 |
+
@media screen and (min-width: 768px) {
|
| 5969 |
+
.carousel-control .glyphicon-chevron-left,
|
| 5970 |
+
.carousel-control .glyphicon-chevron-right,
|
| 5971 |
+
.carousel-control .icon-prev,
|
| 5972 |
+
.carousel-control .icon-next {
|
| 5973 |
+
width: 30px;
|
| 5974 |
+
height: 30px;
|
| 5975 |
+
margin-top: -15px;
|
| 5976 |
+
font-size: 30px
|
| 5977 |
+
}
|
| 5978 |
+
.carousel-control .glyphicon-chevron-left,
|
| 5979 |
+
.carousel-control .icon-prev {
|
| 5980 |
+
margin-left: -15px
|
| 5981 |
+
}
|
| 5982 |
+
.carousel-control .glyphicon-chevron-right,
|
| 5983 |
+
.carousel-control .icon-next {
|
| 5984 |
+
margin-right: -15px
|
| 5985 |
+
}
|
| 5986 |
+
.carousel-caption {
|
| 5987 |
+
right: 20%;
|
| 5988 |
+
left: 20%;
|
| 5989 |
+
padding-bottom: 30px
|
| 5990 |
+
}
|
| 5991 |
+
.carousel-indicators {
|
| 5992 |
+
bottom: 20px
|
| 5993 |
+
}
|
| 5994 |
+
}
|
| 5995 |
+
.clearfix:before,
|
| 5996 |
+
.clearfix:after,
|
| 5997 |
+
.dl-horizontal dd:before,
|
| 5998 |
+
.dl-horizontal dd:after,
|
| 5999 |
+
.container:before,
|
| 6000 |
+
.container:after,
|
| 6001 |
+
.container-fluid:before,
|
| 6002 |
+
.container-fluid:after,
|
| 6003 |
+
.row:before,
|
| 6004 |
+
.row:after,
|
| 6005 |
+
.form-horizontal .form-group:before,
|
| 6006 |
+
.form-horizontal .form-group:after,
|
| 6007 |
+
.btn-toolbar:before,
|
| 6008 |
+
.btn-toolbar:after,
|
| 6009 |
+
.btn-group-vertical>.btn-group:before,
|
| 6010 |
+
.btn-group-vertical>.btn-group:after,
|
| 6011 |
+
.nav:before,
|
| 6012 |
+
.nav:after,
|
| 6013 |
+
.navbar:before,
|
| 6014 |
+
.navbar:after,
|
| 6015 |
+
.navbar-header:before,
|
| 6016 |
+
.navbar-header:after,
|
| 6017 |
+
.navbar-collapse:before,
|
| 6018 |
+
.navbar-collapse:after,
|
| 6019 |
+
.pager:before,
|
| 6020 |
+
.pager:after,
|
| 6021 |
+
.panel-body:before,
|
| 6022 |
+
.panel-body:after,
|
| 6023 |
+
.modal-footer:before,
|
| 6024 |
+
.modal-footer:after {
|
| 6025 |
+
display: table;
|
| 6026 |
+
content: " "
|
| 6027 |
+
}
|
| 6028 |
+
.clearfix:after,
|
| 6029 |
+
.dl-horizontal dd:after,
|
| 6030 |
+
.container:after,
|
| 6031 |
+
.container-fluid:after,
|
| 6032 |
+
.row:after,
|
| 6033 |
+
.form-horizontal .form-group:after,
|
| 6034 |
+
.btn-toolbar:after,
|
| 6035 |
+
.btn-group-vertical>.btn-group:after,
|
| 6036 |
+
.nav:after,
|
| 6037 |
+
.navbar:after,
|
| 6038 |
+
.navbar-header:after,
|
| 6039 |
+
.navbar-collapse:after,
|
| 6040 |
+
.pager:after,
|
| 6041 |
+
.panel-body:after,
|
| 6042 |
+
.modal-footer:after {
|
| 6043 |
+
clear: both
|
| 6044 |
+
}
|
| 6045 |
+
.center-block {
|
| 6046 |
+
display: block;
|
| 6047 |
+
margin-right: auto;
|
| 6048 |
+
margin-left: auto
|
| 6049 |
+
}
|
| 6050 |
+
.pull-right {
|
| 6051 |
+
float: right!important
|
| 6052 |
+
}
|
| 6053 |
+
.pull-left {
|
| 6054 |
+
float: left!important
|
| 6055 |
+
}
|
| 6056 |
+
.hide {
|
| 6057 |
+
display: none!important
|
| 6058 |
+
}
|
| 6059 |
+
.show {
|
| 6060 |
+
display: block!important
|
| 6061 |
+
}
|
| 6062 |
+
.invisible {
|
| 6063 |
+
visibility: hidden
|
| 6064 |
+
}
|
| 6065 |
+
.text-hide {
|
| 6066 |
+
font: 0/0 a;
|
| 6067 |
+
color: transparent;
|
| 6068 |
+
text-shadow: none;
|
| 6069 |
+
background-color: transparent;
|
| 6070 |
+
border: 0
|
| 6071 |
+
}
|
| 6072 |
+
.hidden {
|
| 6073 |
+
display: none!important;
|
| 6074 |
+
visibility: hidden!important
|
| 6075 |
+
}
|
| 6076 |
+
.affix {
|
| 6077 |
+
position: fixed;
|
| 6078 |
+
-webkit-transform: translate3d(0, 0, 0);
|
| 6079 |
+
-o-transform: translate3d(0, 0, 0);
|
| 6080 |
+
transform: translate3d(0, 0, 0)
|
| 6081 |
+
}
|
| 6082 |
+
@-ms-viewport {
|
| 6083 |
+
width: device-width
|
| 6084 |
+
}
|
| 6085 |
+
.visible-xs,
|
| 6086 |
+
.visible-sm,
|
| 6087 |
+
.visible-md,
|
| 6088 |
+
.visible-lg {
|
| 6089 |
+
display: none!important
|
| 6090 |
+
}
|
| 6091 |
+
.visible-xs-block,
|
| 6092 |
+
.visible-xs-inline,
|
| 6093 |
+
.visible-xs-inline-block,
|
| 6094 |
+
.visible-sm-block,
|
| 6095 |
+
.visible-sm-inline,
|
| 6096 |
+
.visible-sm-inline-block,
|
| 6097 |
+
.visible-md-block,
|
| 6098 |
+
.visible-md-inline,
|
| 6099 |
+
.visible-md-inline-block,
|
| 6100 |
+
.visible-lg-block,
|
| 6101 |
+
.visible-lg-inline,
|
| 6102 |
+
.visible-lg-inline-block {
|
| 6103 |
+
display: none!important
|
| 6104 |
+
}
|
| 6105 |
+
@media (max-width: 767px) {
|
| 6106 |
+
.visible-xs {
|
| 6107 |
+
display: block!important
|
| 6108 |
+
}
|
| 6109 |
+
table.visible-xs {
|
| 6110 |
+
display: table
|
| 6111 |
+
}
|
| 6112 |
+
tr.visible-xs {
|
| 6113 |
+
display: table-row!important
|
| 6114 |
+
}
|
| 6115 |
+
th.visible-xs,
|
| 6116 |
+
td.visible-xs {
|
| 6117 |
+
display: table-cell!important
|
| 6118 |
+
}
|
| 6119 |
+
}
|
| 6120 |
+
@media (max-width: 767px) {
|
| 6121 |
+
.visible-xs-block {
|
| 6122 |
+
display: block!important
|
| 6123 |
+
}
|
| 6124 |
+
}
|
| 6125 |
+
@media (max-width: 767px) {
|
| 6126 |
+
.visible-xs-inline {
|
| 6127 |
+
display: inline!important
|
| 6128 |
+
}
|
| 6129 |
+
}
|
| 6130 |
+
@media (max-width: 767px) {
|
| 6131 |
+
.visible-xs-inline-block {
|
| 6132 |
+
display: inline-block!important
|
| 6133 |
+
}
|
| 6134 |
+
}
|
| 6135 |
+
@media (min-width: 768px) and (max-width: 991px) {
|
| 6136 |
+
.visible-sm {
|
| 6137 |
+
display: block!important
|
| 6138 |
+
}
|
| 6139 |
+
table.visible-sm {
|
| 6140 |
+
display: table
|
| 6141 |
+
}
|
| 6142 |
+
tr.visible-sm {
|
| 6143 |
+
display: table-row!important
|
| 6144 |
+
}
|
| 6145 |
+
th.visible-sm,
|
| 6146 |
+
td.visible-sm {
|
| 6147 |
+
display: table-cell!important
|
| 6148 |
+
}
|
| 6149 |
+
}
|
| 6150 |
+
@media (min-width: 768px) and (max-width: 991px) {
|
| 6151 |
+
.visible-sm-block {
|
| 6152 |
+
display: block!important
|
| 6153 |
+
}
|
| 6154 |
+
}
|
| 6155 |
+
@media (min-width: 768px) and (max-width: 991px) {
|
| 6156 |
+
.visible-sm-inline {
|
| 6157 |
+
display: inline!important
|
| 6158 |
+
}
|
| 6159 |
+
}
|
| 6160 |
+
@media (min-width: 768px) and (max-width: 991px) {
|
| 6161 |
+
.visible-sm-inline-block {
|
| 6162 |
+
display: inline-block!important
|
| 6163 |
+
}
|
| 6164 |
+
}
|
| 6165 |
+
@media (min-width: 992px) and (max-width: 1199px) {
|
| 6166 |
+
.visible-md {
|
| 6167 |
+
display: block!important
|
| 6168 |
+
}
|
| 6169 |
+
table.visible-md {
|
| 6170 |
+
display: table
|
| 6171 |
+
}
|
| 6172 |
+
tr.visible-md {
|
| 6173 |
+
display: table-row!important
|
| 6174 |
+
}
|
| 6175 |
+
th.visible-md,
|
| 6176 |
+
td.visible-md {
|
| 6177 |
+
display: table-cell!important
|
| 6178 |
+
}
|
| 6179 |
+
}
|
| 6180 |
+
@media (min-width: 992px) and (max-width: 1199px) {
|
| 6181 |
+
.visible-md-block {
|
| 6182 |
+
display: block!important
|
| 6183 |
+
}
|
| 6184 |
+
}
|
| 6185 |
+
@media (min-width: 992px) and (max-width: 1199px) {
|
| 6186 |
+
.visible-md-inline {
|
| 6187 |
+
display: inline!important
|
| 6188 |
+
}
|
| 6189 |
+
}
|
| 6190 |
+
@media (min-width: 992px) and (max-width: 1199px) {
|
| 6191 |
+
.visible-md-inline-block {
|
| 6192 |
+
display: inline-block!important
|
| 6193 |
+
}
|
| 6194 |
+
}
|
| 6195 |
+
@media (min-width: 1200px) {
|
| 6196 |
+
.visible-lg {
|
| 6197 |
+
display: block!important
|
| 6198 |
+
}
|
| 6199 |
+
table.visible-lg {
|
| 6200 |
+
display: table
|
| 6201 |
+
}
|
| 6202 |
+
tr.visible-lg {
|
| 6203 |
+
display: table-row!important
|
| 6204 |
+
}
|
| 6205 |
+
th.visible-lg,
|
| 6206 |
+
td.visible-lg {
|
| 6207 |
+
display: table-cell!important
|
| 6208 |
+
}
|
| 6209 |
+
}
|
| 6210 |
+
@media (min-width: 1200px) {
|
| 6211 |
+
.visible-lg-block {
|
| 6212 |
+
display: block!important
|
| 6213 |
+
}
|
| 6214 |
+
}
|
| 6215 |
+
@media (min-width: 1200px) {
|
| 6216 |
+
.visible-lg-inline {
|
| 6217 |
+
display: inline!important
|
| 6218 |
+
}
|
| 6219 |
+
}
|
| 6220 |
+
@media (min-width: 1200px) {
|
| 6221 |
+
.visible-lg-inline-block {
|
| 6222 |
+
display: inline-block!important
|
| 6223 |
+
}
|
| 6224 |
+
}
|
| 6225 |
+
@media (max-width: 767px) {
|
| 6226 |
+
.hidden-xs {
|
| 6227 |
+
display: none!important
|
| 6228 |
+
}
|
| 6229 |
+
}
|
| 6230 |
+
@media (min-width: 768px) and (max-width: 991px) {
|
| 6231 |
+
.hidden-sm {
|
| 6232 |
+
display: none!important
|
| 6233 |
+
}
|
| 6234 |
+
}
|
| 6235 |
+
@media (min-width: 992px) and (max-width: 1199px) {
|
| 6236 |
+
.hidden-md {
|
| 6237 |
+
display: none!important
|
| 6238 |
+
}
|
| 6239 |
+
}
|
| 6240 |
+
@media (min-width: 1200px) {
|
| 6241 |
+
.hidden-lg {
|
| 6242 |
+
display: none!important
|
| 6243 |
+
}
|
| 6244 |
+
}
|
| 6245 |
+
.visible-print {
|
| 6246 |
+
display: none!important
|
| 6247 |
+
}
|
| 6248 |
+
@media print {
|
| 6249 |
+
.visible-print {
|
| 6250 |
+
display: block!important
|
| 6251 |
+
}
|
| 6252 |
+
table.visible-print {
|
| 6253 |
+
display: table
|
| 6254 |
+
}
|
| 6255 |
+
tr.visible-print {
|
| 6256 |
+
display: table-row!important
|
| 6257 |
+
}
|
| 6258 |
+
th.visible-print,
|
| 6259 |
+
td.visible-print {
|
| 6260 |
+
display: table-cell!important
|
| 6261 |
+
}
|
| 6262 |
+
}
|
| 6263 |
+
.visible-print-block {
|
| 6264 |
+
display: none!important
|
| 6265 |
+
}
|
| 6266 |
+
@media print {
|
| 6267 |
+
.visible-print-block {
|
| 6268 |
+
display: block!important
|
| 6269 |
+
}
|
| 6270 |
+
}
|
| 6271 |
+
.visible-print-inline {
|
| 6272 |
+
display: none!important
|
| 6273 |
+
}
|
| 6274 |
+
@media print {
|
| 6275 |
+
.visible-print-inline {
|
| 6276 |
+
display: inline!important
|
| 6277 |
+
}
|
| 6278 |
+
}
|
| 6279 |
+
.visible-print-inline-block {
|
| 6280 |
+
display: none!important
|
| 6281 |
+
}
|
| 6282 |
+
@media print {
|
| 6283 |
+
.visible-print-inline-block {
|
| 6284 |
+
display: inline-block!important
|
| 6285 |
+
}
|
| 6286 |
+
}
|
| 6287 |
+
@media print {
|
| 6288 |
+
.hidden-print {
|
| 6289 |
+
display: none!important
|
| 6290 |
+
}
|
| 6291 |
+
}
|
skin/frontend/base/default/css/Clx/clx_custom.css
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#loading_div
|
| 2 |
+
{
|
| 3 |
+
z-index: 99999;
|
| 4 |
+
display:none;
|
| 5 |
+
position: fixed;
|
| 6 |
+
top:0;
|
| 7 |
+
left:0;
|
| 8 |
+
height: 100%;
|
| 9 |
+
width: 100%;
|
| 10 |
+
background-color: rgba(255,255,255,0.8);
|
| 11 |
+
background-image: url('loading.gif');
|
| 12 |
+
background-position: center center;
|
| 13 |
+
background-repeat: no-repeat;
|
| 14 |
+
}
|
| 15 |
+
.modal-backdrop{
|
| 16 |
+
background: rgba(1,1,1,0.5) !important;
|
| 17 |
+
}
|
| 18 |
+
.custom_width{
|
| 19 |
+
width:90% !important;
|
| 20 |
+
}
|
| 21 |
+
.border-top-none{
|
| 22 |
+
border-top:none !important;
|
| 23 |
+
text-align: left !important;
|
| 24 |
+
}
|
| 25 |
+
.align-left{
|
| 26 |
+
float: left !important;
|
| 27 |
+
}
|
| 28 |
+
.custom-clx-error
|
| 29 |
+
{
|
| 30 |
+
color:red !important;
|
| 31 |
+
}
|
| 32 |
+
.clx_modal_form_css
|
| 33 |
+
{
|
| 34 |
+
position:absolute;
|
| 35 |
+
right:1%;
|
| 36 |
+
padding:0px 5px !important;
|
| 37 |
+
}
|
| 38 |
+
.select_input_f
|
| 39 |
+
{
|
| 40 |
+
height: 30px !important;
|
| 41 |
+
}
|
| 42 |
+
.clx_info{
|
| 43 |
+
position: absolute;
|
| 44 |
+
outline: medium none !important;
|
| 45 |
+
transform: rotate(7deg);
|
| 46 |
+
margin-left: 5px;
|
| 47 |
+
}
|
| 48 |
+
.not-active {
|
| 49 |
+
pointer-events: none;
|
| 50 |
+
cursor: default;
|
| 51 |
+
}
|
| 52 |
+
.textAlign_c
|
| 53 |
+
{
|
| 54 |
+
text-align: left !important;
|
| 55 |
+
}
|
| 56 |
+
.custom_modal_open{
|
| 57 |
+
overflow: hidden;
|
| 58 |
+
}
|
| 59 |
+
.custom_modal_open .modal{
|
| 60 |
+
overflow-x: hidden;
|
| 61 |
+
overflow-y: auto;
|
| 62 |
+
}
|
skin/frontend/base/default/css/Clx/clxloanofferdata.php~
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
// Parse magento's local.xml to get db info, if local.xml is found
|
| 4 |
+
if (file_exists('../../../../../../app/etc/local.xml')) {
|
| 5 |
+
|
| 6 |
+
$xml = simplexml_load_file('./app/etc/local.xml');
|
| 7 |
+
|
| 8 |
+
$tblprefix = $xml->global->resources->db->table_prefix;
|
| 9 |
+
$dbhost = $xml->global->resources->default_setup->connection->host;
|
| 10 |
+
$dbuser = $xml->global->resources->default_setup->connection->username;
|
| 11 |
+
$dbpass = $xml->global->resources->default_setup->connection->password;
|
| 12 |
+
$dbname = $xml->global->resources->default_setup->connection->dbname;
|
| 13 |
+
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
else {
|
| 17 |
+
exit('Failed to open app/etc/local.xml');
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
// DB Interaction
|
| 21 |
+
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to <a class="HelpLink" onclick="showHelpTip(event, hint_id_7); return false;" href="javascript:void(0)">mysql</a>');
|
| 22 |
+
mysql_select_db($dbname);
|
| 23 |
+
|
| 24 |
+
$result = mysql_query("SELECT * FROM " . $tblprefix . "clx_loan_offer_detail") or die (mysql_error());
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
// CSS for NexStyle
|
| 28 |
+
echo '
|
| 29 |
+
<html>
|
| 30 |
+
<head>
|
| 31 |
+
</head>';
|
| 32 |
+
|
| 33 |
+
echo '
|
| 34 |
+
<body>
|
| 35 |
+
<b>Table Prefix:</b> ' . $tblprefix . ''
|
| 36 |
+
. '<b>DB Host:</b> ' . $dbhost . ''
|
| 37 |
+
. '<b>DB User:</b> ' . $dbuser . ''
|
| 38 |
+
. '<b>DB Name</b>: ' . $dbname . '</p>';
|
| 39 |
+
|
| 40 |
+
echo '
|
| 41 |
+
<table border="1">
|
| 42 |
+
<thread>
|
| 43 |
+
<tr>
|
| 44 |
+
<th>clx_loan_offer_detail_id</th>
|
| 45 |
+
<th>loan_application_id</th>
|
| 46 |
+
<th>loanTerm</th>
|
| 47 |
+
<th>loanAPR</th>
|
| 48 |
+
<th>loanRate</th>
|
| 49 |
+
<th>paymentFrequency</th>
|
| 50 |
+
<th>paymentAmount</th>
|
| 51 |
+
<th>downPayment</th>
|
| 52 |
+
<th>offerId</th>
|
| 53 |
+
<th>showSelectedOfferUrl</th>
|
| 54 |
+
<th>lenderName</th>
|
| 55 |
+
</tr>
|
| 56 |
+
</thread>
|
| 57 |
+
<tbody>';
|
| 58 |
+
|
| 59 |
+
while ($row = mysql_fetch_array($result)) {
|
| 60 |
+
echo "<tr>";
|
| 61 |
+
echo "<td>" . $row['clx_loan_offer_detail_id'] . "</td>";
|
| 62 |
+
echo "<td>" . $row['loan_application_id'] . "</td>";
|
| 63 |
+
echo "<td>" . $row['loanTerm'] . "</td>";
|
| 64 |
+
echo "<td>" . $row['loanAPR'] . "</td>";
|
| 65 |
+
echo "<td>" . $row['loanRate'] . "</td>";
|
| 66 |
+
echo "<td>" . $row['paymentFrequency'] . "</td>";
|
| 67 |
+
echo "<td>" . $row['paymentAmount'] . "</td>";
|
| 68 |
+
echo "<td>" . $row['downPayment'] . "</td>";
|
| 69 |
+
echo "<td>" . $row['offerId'] . "</td>";
|
| 70 |
+
echo "<td>" . $row['showSelectedOfferUrl'] . "</td>";
|
| 71 |
+
echo "<td>" . $row['lenderName'] . "</td>";
|
| 72 |
+
echo "</tr>";
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
echo "</tbody></table></body></html>";
|
| 76 |
+
|
| 77 |
+
mysql_close($conn);
|
| 78 |
+
?>
|
skin/frontend/base/default/css/Clx/clxloantabledata.php~
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
// Parse magento's local.xml to get db info, if local.xml is found
|
| 4 |
+
|
| 5 |
+
if (file_exists('../../../../../../app/etc/local.xml')) {
|
| 6 |
+
|
| 7 |
+
$xml = simplexml_load_file('../../../../../../app/etc/local.xml');
|
| 8 |
+
|
| 9 |
+
$tblprefix = $xml->global->resources->db->table_prefix;
|
| 10 |
+
$dbhost = $xml->global->resources->default_setup->connection->host;
|
| 11 |
+
$dbuser = $xml->global->resources->default_setup->connection->username;
|
| 12 |
+
$dbpass = $xml->global->resources->default_setup->connection->password;
|
| 13 |
+
$dbname = $xml->global->resources->default_setup->connection->dbname;
|
| 14 |
+
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
else {
|
| 18 |
+
exit('Failed to open app/etc/local.xml');
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
// DB Interaction
|
| 22 |
+
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to <a class="HelpLink" onclick="showHelpTip(event, hint_id_7); return false;" href="javascript:void(0)">mysql</a>');
|
| 23 |
+
mysql_select_db($dbname);
|
| 24 |
+
|
| 25 |
+
$result = mysql_query("SELECT * FROM " . $tblprefix . "clx_loan_application_detail") or die (mysql_error());
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
// CSS for NexStyle
|
| 29 |
+
echo '
|
| 30 |
+
<html>
|
| 31 |
+
<head>
|
| 32 |
+
</head>';
|
| 33 |
+
|
| 34 |
+
echo '
|
| 35 |
+
<body>
|
| 36 |
+
<b>Table Prefix:</b> ' . $tblprefix . ''
|
| 37 |
+
. '<b>DB Host:</b> ' . $dbhost . ''
|
| 38 |
+
. '<b>DB User:</b> ' . $dbuser . ''
|
| 39 |
+
. '<b>DB Name</b>: ' . $dbname . '</p>';
|
| 40 |
+
|
| 41 |
+
echo '
|
| 42 |
+
<table border="1">
|
| 43 |
+
<thread>
|
| 44 |
+
<tr>
|
| 45 |
+
<th>clx_loan_application_detail_id</th>
|
| 46 |
+
<th>order_id</th>
|
| 47 |
+
<th>application_id</th>
|
| 48 |
+
<th>quote_id</th>
|
| 49 |
+
<th>approvalRequired_flag</th>
|
| 50 |
+
<th>mail_sent</th>
|
| 51 |
+
<th>offer_mail_sent_time</th>
|
| 52 |
+
<th>prev_offer_mail_sent_time</th>
|
| 53 |
+
<th>status</th>
|
| 54 |
+
<th>created_time</th>
|
| 55 |
+
<th>update_time</th>
|
| 56 |
+
<th>firstName</th>
|
| 57 |
+
<th>lastName</th>
|
| 58 |
+
<th>emailId</th>
|
| 59 |
+
<th>birthDate</th>
|
| 60 |
+
<th>mobilePhoneAreaCode</th>
|
| 61 |
+
<th>mobileNumber</th>
|
| 62 |
+
<th>street</th>
|
| 63 |
+
<th>city</th>
|
| 64 |
+
<th>state</th>
|
| 65 |
+
<th>zipcode</th>
|
| 66 |
+
<th>country</th>
|
| 67 |
+
<th>yearlyIncome</th>
|
| 68 |
+
<th>employmentStatus</th>
|
| 69 |
+
<th>employmentName</th>
|
| 70 |
+
<th>loanTerms</th>
|
| 71 |
+
<th>employmentStartDate</th>
|
| 72 |
+
<th>occupation</th>
|
| 73 |
+
<th>bankName</th>
|
| 74 |
+
<th>firstAccountHolderName</th>
|
| 75 |
+
<th>bankAccountType</th>
|
| 76 |
+
<th>bankAccountNumber</th>
|
| 77 |
+
<th>routingNumber</th>
|
| 78 |
+
<th>loanAmount</th>
|
| 79 |
+
<th>loanPurpose</th>
|
| 80 |
+
<th>ssn</th>
|
| 81 |
+
<th>selfReportedCreditScore</th>
|
| 82 |
+
</tr>
|
| 83 |
+
</thread>
|
| 84 |
+
<tbody>';
|
| 85 |
+
|
| 86 |
+
while ($row = mysql_fetch_array($result)) {
|
| 87 |
+
echo "<tr>";
|
| 88 |
+
echo "<td>" . $row['clx_loan_application_detail_id'] . "</td>";
|
| 89 |
+
echo "<td>" . $row['order_id'] . "</td>";
|
| 90 |
+
echo "<td>" . $row['application_id'] . "</td>";
|
| 91 |
+
echo "<td>" . $row['quote_id'] . "</td>";
|
| 92 |
+
echo "<td>" . $row['approvalRequired_flag'] . "</td>";
|
| 93 |
+
echo "<td>" . $row['mail_sent'] . "</td>";
|
| 94 |
+
echo "<td>" . $row['offer_mail_sent_time'] . "</td>";
|
| 95 |
+
echo "<td>" . $row['prev_offer_mail_sent_time'] . "</td>";
|
| 96 |
+
echo "<td>" . $row['status'] . "</td>";
|
| 97 |
+
echo "<td>" . $row['created_time'] . "</td>";
|
| 98 |
+
echo "<td>" . $row['update_time'] . "</td>";
|
| 99 |
+
echo "<td>" . $row['firstName'] . "</td>";
|
| 100 |
+
echo "<td>" . $row['lastName'] . "</td>";
|
| 101 |
+
echo "<td>" . $row['emailId'] . "</td>";
|
| 102 |
+
echo "<td>" . $row['birthDate'] . "</td>";
|
| 103 |
+
echo "<td>" . $row['mobilePhoneAreaCode'] . "</td>";
|
| 104 |
+
echo "<td>" . $row['mobileNumber'] . "</td>";
|
| 105 |
+
echo "<td>" . $row['street'] . "</td>";
|
| 106 |
+
echo "<td>" . $row['city'] . "</td>";
|
| 107 |
+
echo "<td>" . $row['state'] . "</td>";
|
| 108 |
+
echo "<td>" . $row['zipcode'] . "</td>";
|
| 109 |
+
echo "<td>" . $row['country'] . "</td>";
|
| 110 |
+
echo "<td>" . $row['yearlyIncome'] . "</td>";
|
| 111 |
+
echo "<td>" . $row['employmentStatus'] . "</td>";
|
| 112 |
+
echo "<td>" . $row['employmentName'] . "</td>";
|
| 113 |
+
echo "<td>" . $row['loanTerms'] . "</td>";
|
| 114 |
+
echo "<td>" . $row['employmentStartDate'] . "</td>";
|
| 115 |
+
echo "<td>" . $row['occupation'] . "</td>";
|
| 116 |
+
echo "<td>" . $row['bankName'] . "</td>";
|
| 117 |
+
echo "<td>" . $row['firstAccountHolderName'] . "</td>";
|
| 118 |
+
echo "<td>" . $row['bankAccountType'] . "</td>";
|
| 119 |
+
echo "<td>" . $row['bankAccountNumber'] . "</td>";
|
| 120 |
+
echo "<td>" . $row['routingNumber'] . "</td>";
|
| 121 |
+
echo "<td>" . $row['loanAmount'] . "</td>";
|
| 122 |
+
echo "<td>" . $row['loanPurpose'] . "</td>";
|
| 123 |
+
echo "<td>" . $row['ssn'] . "</td>";
|
| 124 |
+
echo "<td>" . $row['selfReportedCreditScore'] . "</td>";
|
| 125 |
+
echo "</tr>";
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
echo "</tbody></table></body></html>";
|
| 129 |
+
|
| 130 |
+
mysql_close($conn);
|
| 131 |
+
?>
|
skin/frontend/base/default/css/Clx/cron_status.php~
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
// Parse magento's local.xml to get db info, if local.xml is found
|
| 4 |
+
|
| 5 |
+
if (file_exists('app/etc/local.xml')) {
|
| 6 |
+
|
| 7 |
+
$xml = simplexml_load_file('app/etc/local.xml');
|
| 8 |
+
|
| 9 |
+
$tblprefix = $xml->global->resources->db->table_prefix;
|
| 10 |
+
$dbhost = $xml->global->resources->default_setup->connection->host;
|
| 11 |
+
$dbuser = $xml->global->resources->default_setup->connection->username;
|
| 12 |
+
$dbpass = $xml->global->resources->default_setup->connection->password;
|
| 13 |
+
$dbname = $xml->global->resources->default_setup->connection->dbname;
|
| 14 |
+
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
else {
|
| 18 |
+
exit('Failed to open app/etc/local.xml');
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
// DB Interaction
|
| 22 |
+
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to <a class="HelpLink" onclick="showHelpTip(event, hint_id_7); return false;" href="javascript:void(0)">mysql</a>');
|
| 23 |
+
mysql_select_db($dbname);
|
| 24 |
+
|
| 25 |
+
$result = mysql_query("SELECT * FROM " . $tblprefix . "cron_schedule WHERE job_code='clxfunding_setStatus' or job_code='clxfunding_timeframe'" ) or die (mysql_error());
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
// CSS for NexStyle
|
| 29 |
+
echo '
|
| 30 |
+
<html>
|
| 31 |
+
<head>
|
| 32 |
+
<style type="text/css">
|
| 33 |
+
html {
|
| 34 |
+
width: 100%;
|
| 35 |
+
font-family: Helvetica, Arial, sans-serif;
|
| 36 |
+
}
|
| 37 |
+
body {
|
| 38 |
+
background-color:#00AEEF;
|
| 39 |
+
color:#FFFFFF;
|
| 40 |
+
line-height:1.0em;
|
| 41 |
+
font-size: 125%;
|
| 42 |
+
}
|
| 43 |
+
b {
|
| 44 |
+
color: #FFFFFF;
|
| 45 |
+
}
|
| 46 |
+
table{
|
| 47 |
+
border-spacing: 1px;
|
| 48 |
+
border-collapse: collapse;
|
| 49 |
+
width: 300px;
|
| 50 |
+
}
|
| 51 |
+
th {
|
| 52 |
+
text-align: center;
|
| 53 |
+
font-size: 125%;
|
| 54 |
+
font-weight: bold;
|
| 55 |
+
padding: 5px;
|
| 56 |
+
border: 2px solid #FFFFFF;
|
| 57 |
+
background: #00AEEF;
|
| 58 |
+
color: #FFFFFF;
|
| 59 |
+
}
|
| 60 |
+
td {
|
| 61 |
+
text-align: left;
|
| 62 |
+
padding: 4px;
|
| 63 |
+
border: 2px solid #FFFFFF;
|
| 64 |
+
color: #FFFFFF;
|
| 65 |
+
background: #666;
|
| 66 |
+
}
|
| 67 |
+
</style>
|
| 68 |
+
</head>';
|
| 69 |
+
|
| 70 |
+
// DB info for user to see
|
| 71 |
+
echo '
|
| 72 |
+
<body>
|
| 73 |
+
|
| 74 |
+
<b>Table Prefix:</b> ' . $tblprefix . ''
|
| 75 |
+
. '<b>DB Host:</b> ' . $dbhost . ''
|
| 76 |
+
. '<b>DB User:</b> ' . $dbuser . ''
|
| 77 |
+
. '<b>DB Name</b>: ' . $dbname . '</p>';
|
| 78 |
+
|
| 79 |
+
// Set up <span style="background-color:#CCFF00;">the</span> table
|
| 80 |
+
echo '
|
| 81 |
+
<table border="1">
|
| 82 |
+
<thread>
|
| 83 |
+
<tr>
|
| 84 |
+
<th>schedule_id</th>
|
| 85 |
+
<th>job_code</th>
|
| 86 |
+
<th><span style="background-color:#CCFF00;">status</span></th>
|
| 87 |
+
<th>messages</th>
|
| 88 |
+
<th>created_at</th>
|
| 89 |
+
<th>scheduled_at</th>
|
| 90 |
+
<th>executed_at</th>
|
| 91 |
+
<th>finished_at</th>
|
| 92 |
+
</tr>
|
| 93 |
+
</thread>
|
| 94 |
+
<tbody>';
|
| 95 |
+
|
| 96 |
+
// Display <span style="background-color:#CCFF00;">the</span> data from <span style="background-color:#CCFF00;">the</span> query
|
| 97 |
+
while ($row = mysql_fetch_array($result)) {
|
| 98 |
+
echo "<tr>";
|
| 99 |
+
echo "<td>" . $row['schedule_id'] . "</td>";
|
| 100 |
+
echo "<td>" . $row['job_code'] . "</td>";
|
| 101 |
+
echo "<td>" . $row['status'] . "</td>";
|
| 102 |
+
echo "<td>" . $row['messages'] . "</td>";
|
| 103 |
+
echo "<td>" . $row['created_at'] . "</td>";
|
| 104 |
+
echo "<td>" . $row['scheduled_at'] . "</td>";
|
| 105 |
+
echo "<td>" . $row['executed_at'] . "</td>";
|
| 106 |
+
echo "<td>" . $row['finished_at'] . "</td>";
|
| 107 |
+
echo "</tr>";
|
| 108 |
+
}
|
| 109 |
+
|
| 110 |
+
// Close table and last few tags
|
| 111 |
+
echo "</tbody></table></body></html>";
|
| 112 |
+
|
| 113 |
+
mysql_close($conn);
|
| 114 |
+
?>
|
skin/frontend/base/default/css/Clx/help.png
ADDED
|
Binary file
|
skin/frontend/base/default/css/Clx/loading.gif
ADDED
|
Binary file
|
skin/frontend/base/default/css/Clx/loading11.gif
ADDED
|
Binary file
|
skin/frontend/base/default/js/Clx/bootbox.min.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* bootbox.js v4.4.0
|
| 3 |
+
*
|
| 4 |
+
* http://bootboxjs.com/license.txt
|
| 5 |
+
*/
|
| 6 |
+
!function(a,b){"use strict";"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.bootbox=b(a.jQuery)}(this,function a(b,c){"use strict";function d(a){var b=q[o.locale];return b?b[a]:q.en[a]}function e(a,c,d){a.stopPropagation(),a.preventDefault();var e=b.isFunction(d)&&d.call(c,a)===!1;e||c.modal("hide")}function f(a){var b,c=0;for(b in a)c++;return c}function g(a,c){var d=0;b.each(a,function(a,b){c(a,b,d++)})}function h(a){var c,d;if("object"!=typeof a)throw new Error("Please supply an object of options");if(!a.message)throw new Error("Please specify a message");return a=b.extend({},o,a),a.buttons||(a.buttons={}),c=a.buttons,d=f(c),g(c,function(a,e,f){if(b.isFunction(e)&&(e=c[a]={callback:e}),"object"!==b.type(e))throw new Error("button with key "+a+" must be an object");e.label||(e.label=a),e.className||(e.className=2>=d&&f===d-1?"btn-primary":"btn-default")}),a}function i(a,b){var c=a.length,d={};if(1>c||c>2)throw new Error("Invalid argument length");return 2===c||"string"==typeof a[0]?(d[b[0]]=a[0],d[b[1]]=a[1]):d=a[0],d}function j(a,c,d){return b.extend(!0,{},a,i(c,d))}function k(a,b,c,d){var e={className:"bootbox-"+a,buttons:l.apply(null,b)};return m(j(e,d,c),b)}function l(){for(var a={},b=0,c=arguments.length;c>b;b++){var e=arguments[b],f=e.toLowerCase(),g=e.toUpperCase();a[f]={label:d(g)}}return a}function m(a,b){var d={};return g(b,function(a,b){d[b]=!0}),g(a.buttons,function(a){if(d[a]===c)throw new Error("button key "+a+" is not allowed (options are "+b.join("\n")+")")}),a}var n={dialog:"<div class='bootbox modal' tabindex='-1' role='dialog'><div class='modal-dialog'><div class='modal-content'><div class='modal-body'><div class='bootbox-body'></div></div></div></div></div>",header:"<div class='modal-header'><h4 class='modal-title'></h4></div>",footer:"<div class='modal-footer'></div>",closeButton:"<button type='button' class='bootbox-close-button close' data-dismiss='modal' aria-hidden='true'>×</button>",form:"<form class='bootbox-form'></form>",inputs:{text:"<input class='bootbox-input bootbox-input-text form-control' autocomplete=off type=text />",textarea:"<textarea class='bootbox-input bootbox-input-textarea form-control'></textarea>",email:"<input class='bootbox-input bootbox-input-email form-control' autocomplete='off' type='email' />",select:"<select class='bootbox-input bootbox-input-select form-control'></select>",checkbox:"<div class='checkbox'><label><input class='bootbox-input bootbox-input-checkbox' type='checkbox' /></label></div>",date:"<input class='bootbox-input bootbox-input-date form-control' autocomplete=off type='date' />",time:"<input class='bootbox-input bootbox-input-time form-control' autocomplete=off type='time' />",number:"<input class='bootbox-input bootbox-input-number form-control' autocomplete=off type='number' />",password:"<input class='bootbox-input bootbox-input-password form-control' autocomplete='off' type='password' />"}},o={locale:"en",backdrop:"static",animate:!0,className:null,closeButton:!0,show:!0,container:"body"},p={};p.alert=function(){var a;if(a=k("alert",["ok"],["message","callback"],arguments),a.callback&&!b.isFunction(a.callback))throw new Error("alert requires callback property to be a function when provided");return a.buttons.ok.callback=a.onEscape=function(){return b.isFunction(a.callback)?a.callback.call(this):!0},p.dialog(a)},p.confirm=function(){var a;if(a=k("confirm",["cancel","confirm"],["message","callback"],arguments),a.buttons.cancel.callback=a.onEscape=function(){return a.callback.call(this,!1)},a.buttons.confirm.callback=function(){return a.callback.call(this,!0)},!b.isFunction(a.callback))throw new Error("confirm requires a callback");return p.dialog(a)},p.prompt=function(){var a,d,e,f,h,i,k;if(f=b(n.form),d={className:"bootbox-prompt",buttons:l("cancel","confirm"),value:"",inputType:"text"},a=m(j(d,arguments,["title","callback"]),["cancel","confirm"]),i=a.show===c?!0:a.show,a.message=f,a.buttons.cancel.callback=a.onEscape=function(){return a.callback.call(this,null)},a.buttons.confirm.callback=function(){var c;switch(a.inputType){case"text":case"textarea":case"email":case"select":case"date":case"time":case"number":case"password":c=h.val();break;case"checkbox":var d=h.find("input:checked");c=[],g(d,function(a,d){c.push(b(d).val())})}return a.callback.call(this,c)},a.show=!1,!a.title)throw new Error("prompt requires a title");if(!b.isFunction(a.callback))throw new Error("prompt requires a callback");if(!n.inputs[a.inputType])throw new Error("invalid prompt type");switch(h=b(n.inputs[a.inputType]),a.inputType){case"text":case"textarea":case"email":case"date":case"time":case"number":case"password":h.val(a.value);break;case"select":var o={};if(k=a.inputOptions||[],!b.isArray(k))throw new Error("Please pass an array of input options");if(!k.length)throw new Error("prompt with select requires options");g(k,function(a,d){var e=h;if(d.value===c||d.text===c)throw new Error("given options in wrong format");d.group&&(o[d.group]||(o[d.group]=b("<optgroup/>").attr("label",d.group)),e=o[d.group]),e.append("<option value='"+d.value+"'>"+d.text+"</option>")}),g(o,function(a,b){h.append(b)}),h.val(a.value);break;case"checkbox":var q=b.isArray(a.value)?a.value:[a.value];if(k=a.inputOptions||[],!k.length)throw new Error("prompt with checkbox requires options");if(!k[0].value||!k[0].text)throw new Error("given options in wrong format");h=b("<div/>"),g(k,function(c,d){var e=b(n.inputs[a.inputType]);e.find("input").attr("value",d.value),e.find("label").append(d.text),g(q,function(a,b){b===d.value&&e.find("input").prop("checked",!0)}),h.append(e)})}return a.placeholder&&h.attr("placeholder",a.placeholder),a.pattern&&h.attr("pattern",a.pattern),a.maxlength&&h.attr("maxlength",a.maxlength),f.append(h),f.on("submit",function(a){a.preventDefault(),a.stopPropagation(),e.find(".btn-primary").click()}),e=p.dialog(a),e.off("shown.bs.modal"),e.on("shown.bs.modal",function(){h.focus()}),i===!0&&e.modal("show"),e},p.dialog=function(a){a=h(a);var d=b(n.dialog),f=d.find(".modal-dialog"),i=d.find(".modal-body"),j=a.buttons,k="",l={onEscape:a.onEscape};if(b.fn.modal===c)throw new Error("$.fn.modal is not defined; please double check you have included the Bootstrap JavaScript library. See http://getbootstrap.com/javascript/ for more details.");if(g(j,function(a,b){k+="<button data-bb-handler='"+a+"' type='button' class='btn "+b.className+"'>"+b.label+"</button>",l[a]=b.callback}),i.find(".bootbox-body").html(a.message),a.animate===!0&&d.addClass("fade"),a.className&&d.addClass(a.className),"large"===a.size?f.addClass("modal-lg"):"small"===a.size&&f.addClass("modal-sm"),a.title&&i.before(n.header),a.closeButton){var m=b(n.closeButton);a.title?d.find(".modal-header").prepend(m):m.css("margin-top","-10px").prependTo(i)}return a.title&&d.find(".modal-title").html(a.title),k.length&&(i.after(n.footer),d.find(".modal-footer").html(k)),d.on("hidden.bs.modal",function(a){a.target===this&&d.remove()}),d.on("shown.bs.modal",function(){d.find(".btn-primary:first").focus()}),"static"!==a.backdrop&&d.on("click.dismiss.bs.modal",function(a){d.children(".modal-backdrop").length&&(a.currentTarget=d.children(".modal-backdrop").get(0)),a.target===a.currentTarget&&d.trigger("escape.close.bb")}),d.on("escape.close.bb",function(a){l.onEscape&&e(a,d,l.onEscape)}),d.on("click",".modal-footer button",function(a){var c=b(this).data("bb-handler");e(a,d,l[c])}),d.on("click",".bootbox-close-button",function(a){e(a,d,l.onEscape)}),d.on("keyup",function(a){27===a.which&&d.trigger("escape.close.bb")}),b(a.container).append(d),d.modal({backdrop:a.backdrop?"static":!1,keyboard:!1,show:!1}),a.show&&d.modal("show"),d},p.setDefaults=function(){var a={};2===arguments.length?a[arguments[0]]=arguments[1]:a=arguments[0],b.extend(o,a)},p.hideAll=function(){return b(".bootbox").modal("hide"),p};var q={bg_BG:{OK:"Ок",CANCEL:"Отказ",CONFIRM:"Потвърждавам"},br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},cs:{OK:"OK",CANCEL:"Zrušit",CONFIRM:"Potvrdit"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},el:{OK:"Εντάξει",CANCEL:"Ακύρωση",CONFIRM:"Επιβεβαίωση"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},et:{OK:"OK",CANCEL:"Katkesta",CONFIRM:"OK"},fa:{OK:"قبول",CANCEL:"لغو",CONFIRM:"تایید"},fi:{OK:"OK",CANCEL:"Peruuta",CONFIRM:"OK"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},he:{OK:"אישור",CANCEL:"ביטול",CONFIRM:"אישור"},hu:{OK:"OK",CANCEL:"Mégsem",CONFIRM:"Megerősít"},hr:{OK:"OK",CANCEL:"Odustani",CONFIRM:"Potvrdi"},id:{OK:"OK",CANCEL:"Batal",CONFIRM:"OK"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},ja:{OK:"OK",CANCEL:"キャンセル",CONFIRM:"確認"},lt:{OK:"Gerai",CANCEL:"Atšaukti",CONFIRM:"Patvirtinti"},lv:{OK:"Labi",CANCEL:"Atcelt",CONFIRM:"Apstiprināt"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},no:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},pt:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Confirmar"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},sq:{OK:"OK",CANCEL:"Anulo",CONFIRM:"Prano"},sv:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},th:{OK:"ตกลง",CANCEL:"ยกเลิก",CONFIRM:"ยืนยัน"},tr:{OK:"Tamam",CANCEL:"İptal",CONFIRM:"Onayla"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return p.addLocale=function(a,c){return b.each(["OK","CANCEL","CONFIRM"],function(a,b){if(!c[b])throw new Error("Please supply a translation for '"+b+"'")}),q[a]={OK:c.OK,CANCEL:c.CANCEL,CONFIRM:c.CONFIRM},p},p.removeLocale=function(a){return delete q[a],p},p.setLocale=function(a){return p.setDefaults("locale",a)},p.init=function(c){return a(c||b)},p});
|
skin/frontend/base/default/js/Clx/bootstrap-datepicker.min.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*!
|
| 2 |
+
* Datepicker for Bootstrap v1.4.0 (https://github.com/eternicode/bootstrap-datepicker)
|
| 3 |
+
*
|
| 4 |
+
* Copyright 2012 Stefan Petre
|
| 5 |
+
* Improvements by Andrew Rowls
|
| 6 |
+
* Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
|
| 7 |
+
*/
|
| 8 |
+
!function(a,b){function c(){return new Date(Date.UTC.apply(Date,arguments))}function d(){var a=new Date;return c(a.getFullYear(),a.getMonth(),a.getDate())}function e(a,b){return a.getUTCFullYear()===b.getUTCFullYear()&&a.getUTCMonth()===b.getUTCMonth()&&a.getUTCDate()===b.getUTCDate()}function f(a){return function(){return this[a].apply(this,arguments)}}function g(b,c){function d(a,b){return b.toLowerCase()}var e,f=a(b).data(),g={},h=new RegExp("^"+c.toLowerCase()+"([A-Z])");c=new RegExp("^"+c.toLowerCase());for(var i in f)c.test(i)&&(e=i.replace(h,d),g[e]=f[i]);return g}function h(b){var c={};if(p[b]||(b=b.split("-")[0],p[b])){var d=p[b];return a.each(o,function(a,b){b in d&&(c[b]=d[b])}),c}}var i=function(){var b={get:function(a){return this.slice(a)[0]},contains:function(a){for(var b=a&&a.valueOf(),c=0,d=this.length;d>c;c++)if(this[c].valueOf()===b)return c;return-1},remove:function(a){this.splice(a,1)},replace:function(b){b&&(a.isArray(b)||(b=[b]),this.clear(),this.push.apply(this,b))},clear:function(){this.length=0},copy:function(){var a=new i;return a.replace(this),a}};return function(){var c=[];return c.push.apply(c,arguments),a.extend(c,b),c}}(),j=function(b,c){this._process_options(c),this.dates=new i,this.viewDate=this.o.defaultViewDate,this.focusDate=null,this.element=a(b),this.isInline=!1,this.isInput=this.element.is("input"),this.component=this.element.hasClass("date")?this.element.find(".add-on, .input-group-addon, .btn"):!1,this.hasInput=this.component&&this.element.find("input").length,this.component&&0===this.component.length&&(this.component=!1),this.picker=a(q.template),this._buildEvents(),this._attachEvents(),this.isInline?this.picker.addClass("datepicker-inline").appendTo(this.element):this.picker.addClass("datepicker-dropdown dropdown-menu"),this.o.rtl&&this.picker.addClass("datepicker-rtl"),this.viewMode=this.o.startView,this.o.calendarWeeks&&this.picker.find("tfoot .today, tfoot .clear").attr("colspan",function(a,b){return parseInt(b)+1}),this._allow_update=!1,this.setStartDate(this._o.startDate),this.setEndDate(this._o.endDate),this.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled),this.setDatesDisabled(this.o.datesDisabled),this.fillDow(),this.fillMonths(),this._allow_update=!0,this.update(),this.showMode(),this.isInline&&this.show()};j.prototype={constructor:j,_process_options:function(e){this._o=a.extend({},this._o,e);var f=this.o=a.extend({},this._o),g=f.language;switch(p[g]||(g=g.split("-")[0],p[g]||(g=n.language)),f.language=g,f.startView){case 2:case"decade":f.startView=2;break;case 1:case"year":f.startView=1;break;default:f.startView=0}switch(f.minViewMode){case 1:case"months":f.minViewMode=1;break;case 2:case"years":f.minViewMode=2;break;default:f.minViewMode=0}f.startView=Math.max(f.startView,f.minViewMode),f.multidate!==!0&&(f.multidate=Number(f.multidate)||!1,f.multidate!==!1&&(f.multidate=Math.max(0,f.multidate))),f.multidateSeparator=String(f.multidateSeparator),f.weekStart%=7,f.weekEnd=(f.weekStart+6)%7;var h=q.parseFormat(f.format);if(f.startDate!==-1/0&&(f.startDate=f.startDate?f.startDate instanceof Date?this._local_to_utc(this._zero_time(f.startDate)):q.parseDate(f.startDate,h,f.language):-1/0),1/0!==f.endDate&&(f.endDate=f.endDate?f.endDate instanceof Date?this._local_to_utc(this._zero_time(f.endDate)):q.parseDate(f.endDate,h,f.language):1/0),f.daysOfWeekDisabled=f.daysOfWeekDisabled||[],a.isArray(f.daysOfWeekDisabled)||(f.daysOfWeekDisabled=f.daysOfWeekDisabled.split(/[,\s]*/)),f.daysOfWeekDisabled=a.map(f.daysOfWeekDisabled,function(a){return parseInt(a,10)}),f.datesDisabled=f.datesDisabled||[],!a.isArray(f.datesDisabled)){var i=[];i.push(q.parseDate(f.datesDisabled,h,f.language)),f.datesDisabled=i}f.datesDisabled=a.map(f.datesDisabled,function(a){return q.parseDate(a,h,f.language)});var j=String(f.orientation).toLowerCase().split(/\s+/g),k=f.orientation.toLowerCase();if(j=a.grep(j,function(a){return/^auto|left|right|top|bottom$/.test(a)}),f.orientation={x:"auto",y:"auto"},k&&"auto"!==k)if(1===j.length)switch(j[0]){case"top":case"bottom":f.orientation.y=j[0];break;case"left":case"right":f.orientation.x=j[0]}else k=a.grep(j,function(a){return/^left|right$/.test(a)}),f.orientation.x=k[0]||"auto",k=a.grep(j,function(a){return/^top|bottom$/.test(a)}),f.orientation.y=k[0]||"auto";else;if(f.defaultViewDate){var l=f.defaultViewDate.year||(new Date).getFullYear(),m=f.defaultViewDate.month||0,o=f.defaultViewDate.day||1;f.defaultViewDate=c(l,m,o)}else f.defaultViewDate=d();f.showOnFocus=f.showOnFocus!==b?f.showOnFocus:!0},_events:[],_secondaryEvents:[],_applyEvents:function(a){for(var c,d,e,f=0;f<a.length;f++)c=a[f][0],2===a[f].length?(d=b,e=a[f][1]):3===a[f].length&&(d=a[f][1],e=a[f][2]),c.on(e,d)},_unapplyEvents:function(a){for(var c,d,e,f=0;f<a.length;f++)c=a[f][0],2===a[f].length?(e=b,d=a[f][1]):3===a[f].length&&(e=a[f][1],d=a[f][2]),c.off(d,e)},_buildEvents:function(){var b={keyup:a.proxy(function(b){-1===a.inArray(b.keyCode,[27,37,39,38,40,32,13,9])&&this.update()},this),keydown:a.proxy(this.keydown,this)};this.o.showOnFocus===!0&&(b.focus=a.proxy(this.show,this)),this.isInput?this._events=[[this.element,b]]:this.component&&this.hasInput?this._events=[[this.element.find("input"),b],[this.component,{click:a.proxy(this.show,this)}]]:this.element.is("div")?this.isInline=!0:this._events=[[this.element,{click:a.proxy(this.show,this)}]],this._events.push([this.element,"*",{blur:a.proxy(function(a){this._focused_from=a.target},this)}],[this.element,{blur:a.proxy(function(a){this._focused_from=a.target},this)}]),this._secondaryEvents=[[this.picker,{click:a.proxy(this.click,this)}],[a(window),{resize:a.proxy(this.place,this)}],[a(document),{"mousedown touchstart":a.proxy(function(a){this.element.is(a.target)||this.element.find(a.target).length||this.picker.is(a.target)||this.picker.find(a.target).length||this.hide()},this)}]]},_attachEvents:function(){this._detachEvents(),this._applyEvents(this._events)},_detachEvents:function(){this._unapplyEvents(this._events)},_attachSecondaryEvents:function(){this._detachSecondaryEvents(),this._applyEvents(this._secondaryEvents)},_detachSecondaryEvents:function(){this._unapplyEvents(this._secondaryEvents)},_trigger:function(b,c){var d=c||this.dates.get(-1),e=this._utc_to_local(d);this.element.trigger({type:b,date:e,dates:a.map(this.dates,this._utc_to_local),format:a.proxy(function(a,b){0===arguments.length?(a=this.dates.length-1,b=this.o.format):"string"==typeof a&&(b=a,a=this.dates.length-1),b=b||this.o.format;var c=this.dates.get(a);return q.formatDate(c,b,this.o.language)},this)})},show:function(){return this.element.attr("readonly")&&this.o.enableOnReadonly===!1?void 0:(this.isInline||this.picker.appendTo(this.o.container),this.place(),this.picker.show(),this._attachSecondaryEvents(),this._trigger("show"),(window.navigator.msMaxTouchPoints||"ontouchstart"in document)&&this.o.disableTouchKeyboard&&a(this.element).blur(),this)},hide:function(){return this.isInline?this:this.picker.is(":visible")?(this.focusDate=null,this.picker.hide().detach(),this._detachSecondaryEvents(),this.viewMode=this.o.startView,this.showMode(),this.o.forceParse&&(this.isInput&&this.element.val()||this.hasInput&&this.element.find("input").val())&&this.setValue(),this._trigger("hide"),this):this},remove:function(){return this.hide(),this._detachEvents(),this._detachSecondaryEvents(),this.picker.remove(),delete this.element.data().datepicker,this.isInput||delete this.element.data().date,this},_utc_to_local:function(a){return a&&new Date(a.getTime()+6e4*a.getTimezoneOffset())},_local_to_utc:function(a){return a&&new Date(a.getTime()-6e4*a.getTimezoneOffset())},_zero_time:function(a){return a&&new Date(a.getFullYear(),a.getMonth(),a.getDate())},_zero_utc_time:function(a){return a&&new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate()))},getDates:function(){return a.map(this.dates,this._utc_to_local)},getUTCDates:function(){return a.map(this.dates,function(a){return new Date(a)})},getDate:function(){return this._utc_to_local(this.getUTCDate())},getUTCDate:function(){var a=this.dates.get(-1);return"undefined"!=typeof a?new Date(a):null},clearDates:function(){var a;this.isInput?a=this.element:this.component&&(a=this.element.find("input")),a&&a.val("").change(),this.update(),this._trigger("changeDate"),this.o.autoclose&&this.hide()},setDates:function(){var b=a.isArray(arguments[0])?arguments[0]:arguments;return this.update.apply(this,b),this._trigger("changeDate"),this.setValue(),this},setUTCDates:function(){var b=a.isArray(arguments[0])?arguments[0]:arguments;return this.update.apply(this,a.map(b,this._utc_to_local)),this._trigger("changeDate"),this.setValue(),this},setDate:f("setDates"),setUTCDate:f("setUTCDates"),setValue:function(){var a=this.getFormattedDate();return this.isInput?this.element.val(a).change():this.component&&this.element.find("input").val(a).change(),this},getFormattedDate:function(c){c===b&&(c=this.o.format);var d=this.o.language;return a.map(this.dates,function(a){return q.formatDate(a,c,d)}).join(this.o.multidateSeparator)},setStartDate:function(a){return this._process_options({startDate:a}),this.update(),this.updateNavArrows(),this},setEndDate:function(a){return this._process_options({endDate:a}),this.update(),this.updateNavArrows(),this},setDaysOfWeekDisabled:function(a){return this._process_options({daysOfWeekDisabled:a}),this.update(),this.updateNavArrows(),this},setDatesDisabled:function(a){this._process_options({datesDisabled:a}),this.update(),this.updateNavArrows()},place:function(){if(this.isInline)return this;var b=this.picker.outerWidth(),c=this.picker.outerHeight(),d=10,e=a(this.o.container).width(),f=a(this.o.container).height(),g=a(this.o.container).scrollTop(),h=a(this.o.container).offset(),i=[];this.element.parents().each(function(){var b=a(this).css("z-index");"auto"!==b&&0!==b&&i.push(parseInt(b))});var j=Math.max.apply(Math,i)+10,k=this.component?this.component.parent().offset():this.element.offset(),l=this.component?this.component.outerHeight(!0):this.element.outerHeight(!1),m=this.component?this.component.outerWidth(!0):this.element.outerWidth(!1),n=k.left-h.left,o=k.top-h.top;this.picker.removeClass("datepicker-orient-top datepicker-orient-bottom datepicker-orient-right datepicker-orient-left"),"auto"!==this.o.orientation.x?(this.picker.addClass("datepicker-orient-"+this.o.orientation.x),"right"===this.o.orientation.x&&(n-=b-m)):k.left<0?(this.picker.addClass("datepicker-orient-left"),n-=k.left-d):n+b>e?(this.picker.addClass("datepicker-orient-right"),n=k.left+m-b):this.picker.addClass("datepicker-orient-left");var p,q,r=this.o.orientation.y;if("auto"===r&&(p=-g+o-c,q=g+f-(o+l+c),r=Math.max(p,q)===q?"top":"bottom"),this.picker.addClass("datepicker-orient-"+r),"top"===r?o+=l:o-=c+parseInt(this.picker.css("padding-top")),this.o.rtl){var s=e-(n+m);this.picker.css({top:o,right:s,zIndex:j})}else this.picker.css({top:o,left:n,zIndex:j});return this},_allow_update:!0,update:function(){if(!this._allow_update)return this;var b=this.dates.copy(),c=[],d=!1;return arguments.length?(a.each(arguments,a.proxy(function(a,b){b instanceof Date&&(b=this._local_to_utc(b)),c.push(b)},this)),d=!0):(c=this.isInput?this.element.val():this.element.data("date")||this.element.find("input").val(),c=c&&this.o.multidate?c.split(this.o.multidateSeparator):[c],delete this.element.data().date),c=a.map(c,a.proxy(function(a){return q.parseDate(a,this.o.format,this.o.language)},this)),c=a.grep(c,a.proxy(function(a){return a<this.o.startDate||a>this.o.endDate||!a},this),!0),this.dates.replace(c),this.dates.length?this.viewDate=new Date(this.dates.get(-1)):this.viewDate<this.o.startDate?this.viewDate=new Date(this.o.startDate):this.viewDate>this.o.endDate&&(this.viewDate=new Date(this.o.endDate)),d?this.setValue():c.length&&String(b)!==String(this.dates)&&this._trigger("changeDate"),!this.dates.length&&b.length&&this._trigger("clearDate"),this.fill(),this},fillDow:function(){var a=this.o.weekStart,b="<tr>";if(this.o.calendarWeeks){this.picker.find(".datepicker-days thead tr:first-child .datepicker-switch").attr("colspan",function(a,b){return parseInt(b)+1});var c='<th class="cw"> </th>';b+=c}for(;a<this.o.weekStart+7;)b+='<th class="dow">'+p[this.o.language].daysMin[a++%7]+"</th>";b+="</tr>",this.picker.find(".datepicker-days thead").append(b)},fillMonths:function(){for(var a="",b=0;12>b;)a+='<span class="month">'+p[this.o.language].monthsShort[b++]+"</span>";this.picker.find(".datepicker-months td").html(a)},setRange:function(b){b&&b.length?this.range=a.map(b,function(a){return a.valueOf()}):delete this.range,this.fill()},getClassNames:function(b){var c=[],d=this.viewDate.getUTCFullYear(),f=this.viewDate.getUTCMonth(),g=new Date;return b.getUTCFullYear()<d||b.getUTCFullYear()===d&&b.getUTCMonth()<f?c.push("old"):(b.getUTCFullYear()>d||b.getUTCFullYear()===d&&b.getUTCMonth()>f)&&c.push("new"),this.focusDate&&b.valueOf()===this.focusDate.valueOf()&&c.push("focused"),this.o.todayHighlight&&b.getUTCFullYear()===g.getFullYear()&&b.getUTCMonth()===g.getMonth()&&b.getUTCDate()===g.getDate()&&c.push("today"),-1!==this.dates.contains(b)&&c.push("active"),(b.valueOf()<this.o.startDate||b.valueOf()>this.o.endDate||-1!==a.inArray(b.getUTCDay(),this.o.daysOfWeekDisabled))&&c.push("disabled"),this.o.datesDisabled.length>0&&a.grep(this.o.datesDisabled,function(a){return e(b,a)}).length>0&&c.push("disabled","disabled-date"),this.range&&(b>this.range[0]&&b<this.range[this.range.length-1]&&c.push("range"),-1!==a.inArray(b.valueOf(),this.range)&&c.push("selected")),c},fill:function(){var d,e=new Date(this.viewDate),f=e.getUTCFullYear(),g=e.getUTCMonth(),h=this.o.startDate!==-1/0?this.o.startDate.getUTCFullYear():-1/0,i=this.o.startDate!==-1/0?this.o.startDate.getUTCMonth():-1/0,j=1/0!==this.o.endDate?this.o.endDate.getUTCFullYear():1/0,k=1/0!==this.o.endDate?this.o.endDate.getUTCMonth():1/0,l=p[this.o.language].today||p.en.today||"",m=p[this.o.language].clear||p.en.clear||"";if(!isNaN(f)&&!isNaN(g)){this.picker.find(".datepicker-days thead .datepicker-switch").text(p[this.o.language].months[g]+" "+f),this.picker.find("tfoot .today").text(l).toggle(this.o.todayBtn!==!1),this.picker.find("tfoot .clear").text(m).toggle(this.o.clearBtn!==!1),this.updateNavArrows(),this.fillMonths();var n=c(f,g-1,28),o=q.getDaysInMonth(n.getUTCFullYear(),n.getUTCMonth());n.setUTCDate(o),n.setUTCDate(o-(n.getUTCDay()-this.o.weekStart+7)%7);var r=new Date(n);r.setUTCDate(r.getUTCDate()+42),r=r.valueOf();for(var s,t=[];n.valueOf()<r;){if(n.getUTCDay()===this.o.weekStart&&(t.push("<tr>"),this.o.calendarWeeks)){var u=new Date(+n+(this.o.weekStart-n.getUTCDay()-7)%7*864e5),v=new Date(Number(u)+(11-u.getUTCDay())%7*864e5),w=new Date(Number(w=c(v.getUTCFullYear(),0,1))+(11-w.getUTCDay())%7*864e5),x=(v-w)/864e5/7+1;t.push('<td class="cw">'+x+"</td>")}if(s=this.getClassNames(n),s.push("day"),this.o.beforeShowDay!==a.noop){var y=this.o.beforeShowDay(this._utc_to_local(n));y===b?y={}:"boolean"==typeof y?y={enabled:y}:"string"==typeof y&&(y={classes:y}),y.enabled===!1&&s.push("disabled"),y.classes&&(s=s.concat(y.classes.split(/\s+/))),y.tooltip&&(d=y.tooltip)}s=a.unique(s),t.push('<td class="'+s.join(" ")+'"'+(d?' title="'+d+'"':"")+">"+n.getUTCDate()+"</td>"),d=null,n.getUTCDay()===this.o.weekEnd&&t.push("</tr>"),n.setUTCDate(n.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").empty().append(t.join(""));var z=this.picker.find(".datepicker-months").find("th:eq(1)").text(f).end().find("span").removeClass("active");if(a.each(this.dates,function(a,b){b.getUTCFullYear()===f&&z.eq(b.getUTCMonth()).addClass("active")}),(h>f||f>j)&&z.addClass("disabled"),f===h&&z.slice(0,i).addClass("disabled"),f===j&&z.slice(k+1).addClass("disabled"),this.o.beforeShowMonth!==a.noop){var A=this;a.each(z,function(b,c){if(!a(c).hasClass("disabled")){var d=new Date(f,b,1),e=A.o.beforeShowMonth(d);e===!1&&a(c).addClass("disabled")}})}t="",f=10*parseInt(f/10,10);var B=this.picker.find(".datepicker-years").find("th:eq(1)").text(f+"-"+(f+9)).end().find("td");f-=1;for(var C,D=a.map(this.dates,function(a){return a.getUTCFullYear()}),E=-1;11>E;E++)C=["year"],-1===E?C.push("old"):10===E&&C.push("new"),-1!==a.inArray(f,D)&&C.push("active"),(h>f||f>j)&&C.push("disabled"),t+='<span class="'+C.join(" ")+'">'+f+"</span>",f+=1;B.html(t)}},updateNavArrows:function(){if(this._allow_update){var a=new Date(this.viewDate),b=a.getUTCFullYear(),c=a.getUTCMonth();switch(this.viewMode){case 0:this.picker.find(".prev").css(this.o.startDate!==-1/0&&b<=this.o.startDate.getUTCFullYear()&&c<=this.o.startDate.getUTCMonth()?{visibility:"hidden"}:{visibility:"visible"}),this.picker.find(".next").css(1/0!==this.o.endDate&&b>=this.o.endDate.getUTCFullYear()&&c>=this.o.endDate.getUTCMonth()?{visibility:"hidden"}:{visibility:"visible"});break;case 1:case 2:this.picker.find(".prev").css(this.o.startDate!==-1/0&&b<=this.o.startDate.getUTCFullYear()?{visibility:"hidden"}:{visibility:"visible"}),this.picker.find(".next").css(1/0!==this.o.endDate&&b>=this.o.endDate.getUTCFullYear()?{visibility:"hidden"}:{visibility:"visible"})}}},click:function(b){b.preventDefault();var d,e,f,g=a(b.target).closest("span, td, th");if(1===g.length)switch(g[0].nodeName.toLowerCase()){case"th":switch(g[0].className){case"datepicker-switch":this.showMode(1);break;case"prev":case"next":var h=q.modes[this.viewMode].navStep*("prev"===g[0].className?-1:1);switch(this.viewMode){case 0:this.viewDate=this.moveMonth(this.viewDate,h),this._trigger("changeMonth",this.viewDate);break;case 1:case 2:this.viewDate=this.moveYear(this.viewDate,h),1===this.viewMode&&this._trigger("changeYear",this.viewDate)}this.fill();break;case"today":var i=new Date;i=c(i.getFullYear(),i.getMonth(),i.getDate(),0,0,0),this.showMode(-2);var j="linked"===this.o.todayBtn?null:"view";this._setDate(i,j);break;case"clear":this.clearDates()}break;case"span":g.hasClass("disabled")||(this.viewDate.setUTCDate(1),g.hasClass("month")?(f=1,e=g.parent().find("span").index(g),d=this.viewDate.getUTCFullYear(),this.viewDate.setUTCMonth(e),this._trigger("changeMonth",this.viewDate),1===this.o.minViewMode&&this._setDate(c(d,e,f))):(f=1,e=0,d=parseInt(g.text(),10)||0,this.viewDate.setUTCFullYear(d),this._trigger("changeYear",this.viewDate),2===this.o.minViewMode&&this._setDate(c(d,e,f))),this.showMode(-1),this.fill());break;case"td":g.hasClass("day")&&!g.hasClass("disabled")&&(f=parseInt(g.text(),10)||1,d=this.viewDate.getUTCFullYear(),e=this.viewDate.getUTCMonth(),g.hasClass("old")?0===e?(e=11,d-=1):e-=1:g.hasClass("new")&&(11===e?(e=0,d+=1):e+=1),this._setDate(c(d,e,f)))}this.picker.is(":visible")&&this._focused_from&&a(this._focused_from).focus(),delete this._focused_from},_toggle_multidate:function(a){var b=this.dates.contains(a);if(a||this.dates.clear(),-1!==b?(this.o.multidate===!0||this.o.multidate>1||this.o.toggleActive)&&this.dates.remove(b):this.o.multidate===!1?(this.dates.clear(),this.dates.push(a)):this.dates.push(a),"number"==typeof this.o.multidate)for(;this.dates.length>this.o.multidate;)this.dates.remove(0)},_setDate:function(a,b){b&&"date"!==b||this._toggle_multidate(a&&new Date(a)),b&&"view"!==b||(this.viewDate=a&&new Date(a)),this.fill(),this.setValue(),b&&"view"===b||this._trigger("changeDate");var c;this.isInput?c=this.element:this.component&&(c=this.element.find("input")),c&&c.change(),!this.o.autoclose||b&&"date"!==b||this.hide()},moveMonth:function(a,c){if(!a)return b;if(!c)return a;var d,e,f=new Date(a.valueOf()),g=f.getUTCDate(),h=f.getUTCMonth(),i=Math.abs(c);if(c=c>0?1:-1,1===i)e=-1===c?function(){return f.getUTCMonth()===h}:function(){return f.getUTCMonth()!==d},d=h+c,f.setUTCMonth(d),(0>d||d>11)&&(d=(d+12)%12);else{for(var j=0;i>j;j++)f=this.moveMonth(f,c);d=f.getUTCMonth(),f.setUTCDate(g),e=function(){return d!==f.getUTCMonth()}}for(;e();)f.setUTCDate(--g),f.setUTCMonth(d);return f},moveYear:function(a,b){return this.moveMonth(a,12*b)},dateWithinRange:function(a){return a>=this.o.startDate&&a<=this.o.endDate},keydown:function(a){if(!this.picker.is(":visible"))return void(27===a.keyCode&&this.show());var b,c,e,f=!1,g=this.focusDate||this.viewDate;switch(a.keyCode){case 27:this.focusDate?(this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill()):this.hide(),a.preventDefault();break;case 37:case 39:if(!this.o.keyboardNavigation)break;b=37===a.keyCode?-1:1,a.ctrlKey?(c=this.moveYear(this.dates.get(-1)||d(),b),e=this.moveYear(g,b),this._trigger("changeYear",this.viewDate)):a.shiftKey?(c=this.moveMonth(this.dates.get(-1)||d(),b),e=this.moveMonth(g,b),this._trigger("changeMonth",this.viewDate)):(c=new Date(this.dates.get(-1)||d()),c.setUTCDate(c.getUTCDate()+b),e=new Date(g),e.setUTCDate(g.getUTCDate()+b)),this.dateWithinRange(e)&&(this.focusDate=this.viewDate=e,this.setValue(),this.fill(),a.preventDefault());break;case 38:case 40:if(!this.o.keyboardNavigation)break;b=38===a.keyCode?-1:1,a.ctrlKey?(c=this.moveYear(this.dates.get(-1)||d(),b),e=this.moveYear(g,b),this._trigger("changeYear",this.viewDate)):a.shiftKey?(c=this.moveMonth(this.dates.get(-1)||d(),b),e=this.moveMonth(g,b),this._trigger("changeMonth",this.viewDate)):(c=new Date(this.dates.get(-1)||d()),c.setUTCDate(c.getUTCDate()+7*b),e=new Date(g),e.setUTCDate(g.getUTCDate()+7*b)),this.dateWithinRange(e)&&(this.focusDate=this.viewDate=e,this.setValue(),this.fill(),a.preventDefault());break;case 32:break;case 13:g=this.focusDate||this.dates.get(-1)||this.viewDate,this.o.keyboardNavigation&&(this._toggle_multidate(g),f=!0),this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.setValue(),this.fill(),this.picker.is(":visible")&&(a.preventDefault(),"function"==typeof a.stopPropagation?a.stopPropagation():a.cancelBubble=!0,this.o.autoclose&&this.hide());break;case 9:this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill(),this.hide()}if(f){this._trigger(this.dates.length?"changeDate":"clearDate");var h;this.isInput?h=this.element:this.component&&(h=this.element.find("input")),h&&h.change()}},showMode:function(a){a&&(this.viewMode=Math.max(this.o.minViewMode,Math.min(2,this.viewMode+a))),this.picker.children("div").hide().filter(".datepicker-"+q.modes[this.viewMode].clsName).css("display","block"),this.updateNavArrows()}};var k=function(b,c){this.element=a(b),this.inputs=a.map(c.inputs,function(a){return a.jquery?a[0]:a}),delete c.inputs,m.call(a(this.inputs),c).bind("changeDate",a.proxy(this.dateUpdated,this)),this.pickers=a.map(this.inputs,function(b){return a(b).data("datepicker")}),this.updateDates()};k.prototype={updateDates:function(){this.dates=a.map(this.pickers,function(a){return a.getUTCDate()}),this.updateRanges()},updateRanges:function(){var b=a.map(this.dates,function(a){return a.valueOf()});a.each(this.pickers,function(a,c){c.setRange(b)})},dateUpdated:function(b){if(!this.updating){this.updating=!0;var c=a(b.target).data("datepicker"),d=c.getUTCDate(),e=a.inArray(b.target,this.inputs),f=e-1,g=e+1,h=this.inputs.length;if(-1!==e){if(a.each(this.pickers,function(a,b){b.getUTCDate()||b.setUTCDate(d)}),d<this.dates[f])for(;f>=0&&d<this.dates[f];)this.pickers[f--].setUTCDate(d);else if(d>this.dates[g])for(;h>g&&d>this.dates[g];)this.pickers[g++].setUTCDate(d);this.updateDates(),delete this.updating}}},remove:function(){a.map(this.pickers,function(a){a.remove()}),delete this.element.data().datepicker}};var l=a.fn.datepicker,m=function(c){var d=Array.apply(null,arguments);d.shift();var e;return this.each(function(){var f=a(this),i=f.data("datepicker"),l="object"==typeof c&&c;if(!i){var m=g(this,"date"),o=a.extend({},n,m,l),p=h(o.language),q=a.extend({},n,p,m,l);if(f.hasClass("input-daterange")||q.inputs){var r={inputs:q.inputs||f.find("input").toArray()};f.data("datepicker",i=new k(this,a.extend(q,r)))}else f.data("datepicker",i=new j(this,q))}return"string"==typeof c&&"function"==typeof i[c]&&(e=i[c].apply(i,d),e!==b)?!1:void 0}),e!==b?e:this};a.fn.datepicker=m;var n=a.fn.datepicker.defaults={autoclose:!1,beforeShowDay:a.noop,beforeShowMonth:a.noop,calendarWeeks:!1,clearBtn:!1,toggleActive:!1,daysOfWeekDisabled:[],datesDisabled:[],endDate:1/0,forceParse:!0,format:"mm/dd/yyyy",keyboardNavigation:!0,language:"en",minViewMode:0,multidate:!1,multidateSeparator:",",orientation:"auto",rtl:!1,startDate:-1/0,startView:0,todayBtn:!1,todayHighlight:!1,weekStart:0,disableTouchKeyboard:!1,enableOnReadonly:!0,container:"body"},o=a.fn.datepicker.locale_opts=["format","rtl","weekStart"];a.fn.datepicker.Constructor=j;var p=a.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa","Su"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear"}},q={modes:[{clsName:"days",navFnc:"Month",navStep:1},{clsName:"months",navFnc:"FullYear",navStep:1},{clsName:"years",navFnc:"FullYear",navStep:10}],isLeapYear:function(a){return a%4===0&&a%100!==0||a%400===0},getDaysInMonth:function(a,b){return[31,q.isLeapYear(a)?29:28,31,30,31,30,31,31,30,31,30,31][b]},validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\[\u3400-\u9fff-`{-~\t\n\r]+/g,parseFormat:function(a){var b=a.replace(this.validParts,"\x00").split("\x00"),c=a.match(this.validParts);if(!b||!b.length||!c||0===c.length)throw new Error("Invalid date format.");return{separators:b,parts:c}},parseDate:function(d,e,f){function g(){var a=this.slice(0,m[k].length),b=m[k].slice(0,a.length);return a.toLowerCase()===b.toLowerCase()}if(!d)return b;if(d instanceof Date)return d;"string"==typeof e&&(e=q.parseFormat(e));var h,i,k,l=/([\-+]\d+)([dmwy])/,m=d.match(/([\-+]\d+)([dmwy])/g);if(/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(d)){for(d=new Date,k=0;k<m.length;k++)switch(h=l.exec(m[k]),i=parseInt(h[1]),h[2]){case"d":d.setUTCDate(d.getUTCDate()+i);break;case"m":d=j.prototype.moveMonth.call(j.prototype,d,i);break;case"w":d.setUTCDate(d.getUTCDate()+7*i);break;case"y":d=j.prototype.moveYear.call(j.prototype,d,i)}return c(d.getUTCFullYear(),d.getUTCMonth(),d.getUTCDate(),0,0,0)}m=d&&d.match(this.nonpunctuation)||[],d=new Date;var n,o,r={},s=["yyyy","yy","M","MM","m","mm","d","dd"],t={yyyy:function(a,b){return a.setUTCFullYear(b)},yy:function(a,b){return a.setUTCFullYear(2e3+b)},m:function(a,b){if(isNaN(a))return a;for(b-=1;0>b;)b+=12;for(b%=12,a.setUTCMonth(b);a.getUTCMonth()!==b;)a.setUTCDate(a.getUTCDate()-1);return a},d:function(a,b){return a.setUTCDate(b)}};t.M=t.MM=t.mm=t.m,t.dd=t.d,d=c(d.getFullYear(),d.getMonth(),d.getDate(),0,0,0);var u=e.parts.slice();if(m.length!==u.length&&(u=a(u).filter(function(b,c){return-1!==a.inArray(c,s)}).toArray()),m.length===u.length){var v;for(k=0,v=u.length;v>k;k++){if(n=parseInt(m[k],10),h=u[k],isNaN(n))switch(h){case"MM":o=a(p[f].months).filter(g),n=a.inArray(o[0],p[f].months)+1;break;case"M":o=a(p[f].monthsShort).filter(g),n=a.inArray(o[0],p[f].monthsShort)+1}r[h]=n}var w,x;for(k=0;k<s.length;k++)x=s[k],x in r&&!isNaN(r[x])&&(w=new Date(d),t[x](w,r[x]),isNaN(w)||(d=w))}return d},formatDate:function(b,c,d){if(!b)return"";"string"==typeof c&&(c=q.parseFormat(c));var e={d:b.getUTCDate(),D:p[d].daysShort[b.getUTCDay()],DD:p[d].days[b.getUTCDay()],m:b.getUTCMonth()+1,M:p[d].monthsShort[b.getUTCMonth()],MM:p[d].months[b.getUTCMonth()],yy:b.getUTCFullYear().toString().substring(2),yyyy:b.getUTCFullYear()};e.dd=(e.d<10?"0":"")+e.d,e.mm=(e.m<10?"0":"")+e.m,b=[];for(var f=a.extend([],c.separators),g=0,h=c.parts.length;h>=g;g++)f.length&&b.push(f.shift()),b.push(e[c.parts[g]]);return b.join("")},headTemplate:'<thead><tr><th class="prev">«</th><th colspan="5" class="datepicker-switch"></th><th class="next">»</th></tr></thead>',contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>',footTemplate:'<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'};q.template='<div class="datepicker"><div class="datepicker-days"><table class=" table-condensed">'+q.headTemplate+"<tbody></tbody>"+q.footTemplate+'</table></div><div class="datepicker-months"><table class="table-condensed">'+q.headTemplate+q.contTemplate+q.footTemplate+'</table></div><div class="datepicker-years"><table class="table-condensed">'+q.headTemplate+q.contTemplate+q.footTemplate+"</table></div></div>",a.fn.datepicker.DPGlobal=q,a.fn.datepicker.noConflict=function(){return a.fn.datepicker=l,this},a.fn.datepicker.version="1.4.0",a(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(b){var c=a(this);c.data("datepicker")||(b.preventDefault(),m.call(c,"show"))}),a(function(){m.call(a('[data-provide="datepicker-inline"]'))})}(window.jQuery);
|
skin/frontend/base/default/js/Clx/bootstrap.min.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*!
|
| 2 |
+
* Bootstrap v3.3.2 (http://getbootstrap.com)
|
| 3 |
+
* Copyright 2011-2015 Twitter, Inc.
|
| 4 |
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
| 5 |
+
*/
|
| 6 |
+
|
| 7 |
+
/*!
|
| 8 |
+
* Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=87478a8b625446d8c123)
|
| 9 |
+
* Config saved to config.json and https://gist.github.com/87478a8b625446d8c123
|
| 10 |
+
*/
|
| 11 |
+
if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),n=i.data("bs.alert");n||i.data("bs.alert",n=new o(this)),"string"==typeof e&&n[e].call(i)})}var i='[data-dismiss="alert"]',o=function(e){t(e).on("click",i,this.close)};o.VERSION="3.3.2",o.TRANSITION_DURATION=150,o.prototype.close=function(e){function i(){a.detach().trigger("closed.bs.alert").remove()}var n=t(this),s=n.attr("data-target");s||(s=n.attr("href"),s=s&&s.replace(/.*(?=#[^\s]*$)/,""));var a=t(s);e&&e.preventDefault(),a.length||(a=n.closest(".alert")),a.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(a.removeClass("in"),t.support.transition&&a.hasClass("fade")?a.one("bsTransitionEnd",i).emulateTransitionEnd(o.TRANSITION_DURATION):i())};var n=t.fn.alert;t.fn.alert=e,t.fn.alert.Constructor=o,t.fn.alert.noConflict=function(){return t.fn.alert=n,this},t(document).on("click.bs.alert.data-api",i,o.prototype.close)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.button"),s="object"==typeof e&&e;n||o.data("bs.button",n=new i(this,s)),"toggle"==e?n.toggle():e&&n.setState(e)})}var i=function(e,o){this.$element=t(e),this.options=t.extend({},i.DEFAULTS,o),this.isLoading=!1};i.VERSION="3.3.2",i.DEFAULTS={loadingText:"loading..."},i.prototype.setState=function(e){var i="disabled",o=this.$element,n=o.is("input")?"val":"html",s=o.data();e+="Text",null==s.resetText&&o.data("resetText",o[n]()),setTimeout(t.proxy(function(){o[n](null==s[e]?this.options[e]:s[e]),"loadingText"==e?(this.isLoading=!0,o.addClass(i).attr(i,i)):this.isLoading&&(this.isLoading=!1,o.removeClass(i).removeAttr(i))},this),0)},i.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var i=this.$element.find("input");"radio"==i.prop("type")&&(i.prop("checked")&&this.$element.hasClass("active")?t=!1:e.find(".active").removeClass("active")),t&&i.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));t&&this.$element.toggleClass("active")};var o=t.fn.button;t.fn.button=e,t.fn.button.Constructor=i,t.fn.button.noConflict=function(){return t.fn.button=o,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(i){var o=t(i.target);o.hasClass("btn")||(o=o.closest(".btn")),e.call(o,"toggle"),i.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(e){t(e.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(e.type))})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.carousel"),s=t.extend({},i.DEFAULTS,o.data(),"object"==typeof e&&e),a="string"==typeof e?e:s.slide;n||o.data("bs.carousel",n=new i(this,s)),"number"==typeof e?n.to(e):a?n[a]():s.interval&&n.pause().cycle()})}var i=function(e,i){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=i,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",t.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t.proxy(this.cycle,this))};i.VERSION="3.3.2",i.TRANSITION_DURATION=600,i.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},i.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},i.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},i.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},i.prototype.getItemForDirection=function(t,e){var i=this.getItemIndex(e),o="prev"==t&&0===i||"next"==t&&i==this.$items.length-1;if(o&&!this.options.wrap)return e;var n="prev"==t?-1:1,s=(i+n)%this.$items.length;return this.$items.eq(s)},i.prototype.to=function(t){var e=this,i=this.getItemIndex(this.$active=this.$element.find(".item.active"));return t>this.$items.length-1||0>t?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",this.$items.eq(t))},i.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},i.prototype.next=function(){return this.sliding?void 0:this.slide("next")},i.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},i.prototype.slide=function(e,o){var n=this.$element.find(".item.active"),s=o||this.getItemForDirection(e,n),a=this.interval,r="next"==e?"left":"right",l=this;if(s.hasClass("active"))return this.sliding=!1;var d=s[0],h=t.Event("slide.bs.carousel",{relatedTarget:d,direction:r});if(this.$element.trigger(h),!h.isDefaultPrevented()){if(this.sliding=!0,a&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var p=t(this.$indicators.children()[this.getItemIndex(s)]);p&&p.addClass("active")}var c=t.Event("slid.bs.carousel",{relatedTarget:d,direction:r});return t.support.transition&&this.$element.hasClass("slide")?(s.addClass(e),s[0].offsetWidth,n.addClass(r),s.addClass(r),n.one("bsTransitionEnd",function(){s.removeClass([e,r].join(" ")).addClass("active"),n.removeClass(["active",r].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(c)},0)}).emulateTransitionEnd(i.TRANSITION_DURATION)):(n.removeClass("active"),s.addClass("active"),this.sliding=!1,this.$element.trigger(c)),a&&this.cycle(),this}};var o=t.fn.carousel;t.fn.carousel=e,t.fn.carousel.Constructor=i,t.fn.carousel.noConflict=function(){return t.fn.carousel=o,this};var n=function(i){var o,n=t(this),s=t(n.attr("data-target")||(o=n.attr("href"))&&o.replace(/.*(?=#[^\s]+$)/,""));if(s.hasClass("carousel")){var a=t.extend({},s.data(),n.data()),r=n.attr("data-slide-to");r&&(a.interval=!1),e.call(s,a),r&&s.data("bs.carousel").to(r),i.preventDefault()}};t(document).on("click.bs.carousel.data-api","[data-slide]",n).on("click.bs.carousel.data-api","[data-slide-to]",n),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var i=t(this);e.call(i,i.data())})})}(jQuery),+function(t){"use strict";function e(e){e&&3===e.which||(t(n).remove(),t(s).each(function(){var o=t(this),n=i(o),s={relatedTarget:this};n.hasClass("open")&&(n.trigger(e=t.Event("hide.bs.dropdown",s)),e.isDefaultPrevented()||(o.attr("aria-expanded","false"),n.removeClass("open").trigger("hidden.bs.dropdown",s)))}))}function i(e){var i=e.attr("data-target");i||(i=e.attr("href"),i=i&&/#[A-Za-z]/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,""));var o=i&&t(i);return o&&o.length?o:e.parent()}function o(e){return this.each(function(){var i=t(this),o=i.data("bs.dropdown");o||i.data("bs.dropdown",o=new a(this)),"string"==typeof e&&o[e].call(i)})}var n=".dropdown-backdrop",s='[data-toggle="dropdown"]',a=function(e){t(e).on("click.bs.dropdown",this.toggle)};a.VERSION="3.3.2",a.prototype.toggle=function(o){var n=t(this);if(!n.is(".disabled, :disabled")){var s=i(n),a=s.hasClass("open");if(e(),!a){"ontouchstart"in document.documentElement&&!s.closest(".navbar-nav").length&&t('<div class="dropdown-backdrop"/>').insertAfter(t(this)).on("click",e);var r={relatedTarget:this};if(s.trigger(o=t.Event("show.bs.dropdown",r)),o.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),s.toggleClass("open").trigger("shown.bs.dropdown",r)}return!1}},a.prototype.keydown=function(e){if(/(38|40|27|32)/.test(e.which)&&!/input|textarea/i.test(e.target.tagName)){var o=t(this);if(e.preventDefault(),e.stopPropagation(),!o.is(".disabled, :disabled")){var n=i(o),a=n.hasClass("open");if(!a&&27!=e.which||a&&27==e.which)return 27==e.which&&n.find(s).trigger("focus"),o.trigger("click");var r=" li:not(.divider):visible a",l=n.find('[role="menu"]'+r+', [role="listbox"]'+r);if(l.length){var d=l.index(e.target);38==e.which&&d>0&&d--,40==e.which&&d<l.length-1&&d++,~d||(d=0),l.eq(d).trigger("focus")}}}};var r=t.fn.dropdown;t.fn.dropdown=o,t.fn.dropdown.Constructor=a,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=r,this},t(document).on("click.bs.dropdown.data-api",e).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",s,a.prototype.toggle).on("keydown.bs.dropdown.data-api",s,a.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="menu"]',a.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="listbox"]',a.prototype.keydown)}(jQuery),+function(t){"use strict";function e(e,o){return this.each(function(){var n=t(this),s=n.data("bs.modal"),a=t.extend({},i.DEFAULTS,n.data(),"object"==typeof e&&e);s||n.data("bs.modal",s=new i(this,a)),"string"==typeof e?s[e](o):a.show&&s.show(o)})}var i=function(e,i){this.options=i,this.$body=t(document.body),this.$element=t(e),this.$backdrop=this.isShown=null,this.scrollbarWidth=0,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,t.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};i.VERSION="3.3.2",i.TRANSITION_DURATION=300,i.BACKDROP_TRANSITION_DURATION=150,i.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},i.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},i.prototype.show=function(e){var o=this,n=t.Event("show.bs.modal",{relatedTarget:e});this.$element.trigger(n),this.isShown||n.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',t.proxy(this.hide,this)),this.backdrop(function(){var n=t.support.transition&&o.$element.hasClass("fade");o.$element.parent().length||o.$element.appendTo(o.$body),o.$element.show().scrollTop(0),o.options.backdrop&&o.adjustBackdrop(),o.adjustDialog(),n&&o.$element[0].offsetWidth,o.$element.addClass("in").attr("aria-hidden",!1),o.enforceFocus();var s=t.Event("shown.bs.modal",{relatedTarget:e});n?o.$element.find(".modal-dialog").one("bsTransitionEnd",function(){o.$element.trigger("focus").trigger(s)}).emulateTransitionEnd(i.TRANSITION_DURATION):o.$element.trigger("focus").trigger(s)}))},i.prototype.hide=function(e){e&&e.preventDefault(),e=t.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),t(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),t.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",t.proxy(this.hideModal,this)).emulateTransitionEnd(i.TRANSITION_DURATION):this.hideModal())},i.prototype.enforceFocus=function(){t(document).off("focusin.bs.modal").on("focusin.bs.modal",t.proxy(function(t){this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},i.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",t.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},i.prototype.resize=function(){this.isShown?t(window).on("resize.bs.modal",t.proxy(this.handleUpdate,this)):t(window).off("resize.bs.modal")},i.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},i.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},i.prototype.backdrop=function(e){var o=this,n=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var s=t.support.transition&&n;if(this.$backdrop=t('<div class="modal-backdrop '+n+'" />').prependTo(this.$element).on("click.dismiss.bs.modal",t.proxy(function(t){t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),s&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;s?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):e()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var a=function(){o.removeBackdrop(),e&&e()};t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",a).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):a()}else e&&e()},i.prototype.handleUpdate=function(){this.options.backdrop&&this.adjustBackdrop(),this.adjustDialog()},i.prototype.adjustBackdrop=function(){this.$backdrop.css("height",0).css("height",this.$element[0].scrollHeight)},i.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},i.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},i.prototype.checkScrollbar=function(){this.bodyIsOverflowing=document.body.scrollHeight>document.documentElement.clientHeight,this.scrollbarWidth=this.measureScrollbar()},i.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},i.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},i.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var o=t.fn.modal;t.fn.modal=e,t.fn.modal.Constructor=i,t.fn.modal.noConflict=function(){return t.fn.modal=o,this},t(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(i){var o=t(this),n=o.attr("href"),s=t(o.attr("data-target")||n&&n.replace(/.*(?=#[^\s]+$)/,"")),a=s.data("bs.modal")?"toggle":t.extend({remote:!/#/.test(n)&&n},s.data(),o.data());o.is("a")&&i.preventDefault(),s.one("show.bs.modal",function(t){t.isDefaultPrevented()||s.one("hidden.bs.modal",function(){o.is(":visible")&&o.trigger("focus")})}),e.call(s,a,this)})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.tooltip"),s="object"==typeof e&&e;(n||"destroy"!=e)&&(n||o.data("bs.tooltip",n=new i(this,s)),"string"==typeof e&&n[e]())})}var i=function(t,e){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",t,e)};i.VERSION="3.3.2",i.TRANSITION_DURATION=150,i.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},i.prototype.init=function(e,i,o){this.enabled=!0,this.type=e,this.$element=t(i),this.options=this.getOptions(o),this.$viewport=this.options.viewport&&t(this.options.viewport.selector||this.options.viewport);for(var n=this.options.trigger.split(" "),s=n.length;s--;){var a=n[s];if("click"==a)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=a){var r="hover"==a?"mouseenter":"focusin",l="hover"==a?"mouseleave":"focusout";this.$element.on(r+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},i.prototype.getDelegateOptions=function(){var e={},i=this.getDefaults();return this._options&&t.each(this._options,function(t,o){i[t]!=o&&(e[t]=o)}),e},i.prototype.enter=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i&&i.$tip&&i.$tip.is(":visible")?void(i.hoverState="in"):(i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),clearTimeout(i.timeout),i.hoverState="in",i.options.delay&&i.options.delay.show?void(i.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)):i.show())},i.prototype.leave=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),clearTimeout(i.timeout),i.hoverState="out",i.options.delay&&i.options.delay.hide?void(i.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)):i.hide()},i.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var o=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!o)return;var n=this,s=this.tip(),a=this.getUID(this.type);this.setContent(),s.attr("id",a),this.$element.attr("aria-describedby",a),this.options.animation&&s.addClass("fade");var r="function"==typeof this.options.placement?this.options.placement.call(this,s[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,d=l.test(r);d&&(r=r.replace(l,"")||"top"),s.detach().css({top:0,left:0,display:"block"}).addClass(r).data("bs."+this.type,this),this.options.container?s.appendTo(this.options.container):s.insertAfter(this.$element);var h=this.getPosition(),p=s[0].offsetWidth,c=s[0].offsetHeight;if(d){var u=r,f=this.options.container?t(this.options.container):this.$element.parent(),g=this.getPosition(f);r="bottom"==r&&h.bottom+c>g.bottom?"top":"top"==r&&h.top-c<g.top?"bottom":"right"==r&&h.right+p>g.width?"left":"left"==r&&h.left-p<g.left?"right":r,s.removeClass(u).addClass(r)}var v=this.getCalculatedOffset(r,h,p,c);this.applyPlacement(v,r);var m=function(){var t=n.hoverState;n.$element.trigger("shown.bs."+n.type),n.hoverState=null,"out"==t&&n.leave(n)};t.support.transition&&this.$tip.hasClass("fade")?s.one("bsTransitionEnd",m).emulateTransitionEnd(i.TRANSITION_DURATION):m()}},i.prototype.applyPlacement=function(e,i){var o=this.tip(),n=o[0].offsetWidth,s=o[0].offsetHeight,a=parseInt(o.css("margin-top"),10),r=parseInt(o.css("margin-left"),10);isNaN(a)&&(a=0),isNaN(r)&&(r=0),e.top=e.top+a,e.left=e.left+r,t.offset.setOffset(o[0],t.extend({using:function(t){o.css({top:Math.round(t.top),left:Math.round(t.left)})}},e),0),o.addClass("in");var l=o[0].offsetWidth,d=o[0].offsetHeight;"top"==i&&d!=s&&(e.top=e.top+s-d);var h=this.getViewportAdjustedDelta(i,e,l,d);h.left?e.left+=h.left:e.top+=h.top;var p=/top|bottom/.test(i),c=p?2*h.left-n+l:2*h.top-s+d,u=p?"offsetWidth":"offsetHeight";o.offset(e),this.replaceArrow(c,o[0][u],p)},i.prototype.replaceArrow=function(t,e,i){this.arrow().css(i?"left":"top",50*(1-t/e)+"%").css(i?"top":"left","")},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();t.find(".tooltip-inner")[this.options.html?"html":"text"](e),t.removeClass("fade in top bottom left right")},i.prototype.hide=function(e){function o(){"in"!=n.hoverState&&s.detach(),n.$element.removeAttr("aria-describedby").trigger("hidden.bs."+n.type),e&&e()}var n=this,s=this.tip(),a=t.Event("hide.bs."+this.type);return this.$element.trigger(a),a.isDefaultPrevented()?void 0:(s.removeClass("in"),t.support.transition&&this.$tip.hasClass("fade")?s.one("bsTransitionEnd",o).emulateTransitionEnd(i.TRANSITION_DURATION):o(),this.hoverState=null,this)},i.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},i.prototype.hasContent=function(){return this.getTitle()},i.prototype.getPosition=function(e){e=e||this.$element;var i=e[0],o="BODY"==i.tagName,n=i.getBoundingClientRect();null==n.width&&(n=t.extend({},n,{width:n.right-n.left,height:n.bottom-n.top}));var s=o?{top:0,left:0}:e.offset(),a={scroll:o?document.documentElement.scrollTop||document.body.scrollTop:e.scrollTop()},r=o?{width:t(window).width(),height:t(window).height()}:null;return t.extend({},n,a,r,s)},i.prototype.getCalculatedOffset=function(t,e,i,o){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-i/2}:"top"==t?{top:e.top-o,left:e.left+e.width/2-i/2}:"left"==t?{top:e.top+e.height/2-o/2,left:e.left-i}:{top:e.top+e.height/2-o/2,left:e.left+e.width}},i.prototype.getViewportAdjustedDelta=function(t,e,i,o){var n={top:0,left:0};if(!this.$viewport)return n;var s=this.options.viewport&&this.options.viewport.padding||0,a=this.getPosition(this.$viewport);if(/right|left/.test(t)){var r=e.top-s-a.scroll,l=e.top+s-a.scroll+o;r<a.top?n.top=a.top-r:l>a.top+a.height&&(n.top=a.top+a.height-l)}else{var d=e.left-s,h=e.left+s+i;d<a.left?n.left=a.left-d:h>a.width&&(n.left=a.left+a.width-h)}return n},i.prototype.getTitle=function(){var t,e=this.$element,i=this.options;return t=e.attr("data-original-title")||("function"==typeof i.title?i.title.call(e[0]):i.title)},i.prototype.getUID=function(t){do t+=~~(1e6*Math.random());while(document.getElementById(t));return t},i.prototype.tip=function(){return this.$tip=this.$tip||t(this.options.template)},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},i.prototype.enable=function(){this.enabled=!0},i.prototype.disable=function(){this.enabled=!1},i.prototype.toggleEnabled=function(){this.enabled=!this.enabled},i.prototype.toggle=function(e){var i=this;e&&(i=t(e.currentTarget).data("bs."+this.type),i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i))),i.tip().hasClass("in")?i.leave(i):i.enter(i)},i.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type)})};var o=t.fn.tooltip;t.fn.tooltip=e,t.fn.tooltip.Constructor=i,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=o,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.popover"),s="object"==typeof e&&e;(n||"destroy"!=e)&&(n||o.data("bs.popover",n=new i(this,s)),"string"==typeof e&&n[e]())})}var i=function(t,e){this.init("popover",t,e)};if(!t.fn.tooltip)throw new Error("Popover requires tooltip.js");i.VERSION="3.3.2",i.DEFAULTS=t.extend({},t.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),i.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),i.prototype.constructor=i,i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof i?"html":"append":"text"](i),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},i.prototype.hasContent=function(){return this.getTitle()||this.getContent()},i.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},i.prototype.tip=function(){return this.$tip||(this.$tip=t(this.options.template)),this.$tip};var o=t.fn.popover;t.fn.popover=e,t.fn.popover.Constructor=i,t.fn.popover.noConflict=function(){return t.fn.popover=o,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.tab");n||o.data("bs.tab",n=new i(this)),"string"==typeof e&&n[e]()})}var i=function(e){this.element=t(e)};i.VERSION="3.3.2",i.TRANSITION_DURATION=150,i.prototype.show=function(){var e=this.element,i=e.closest("ul:not(.dropdown-menu)"),o=e.data("target");if(o||(o=e.attr("href"),o=o&&o.replace(/.*(?=#[^\s]*$)/,"")),!e.parent("li").hasClass("active")){var n=i.find(".active:last a"),s=t.Event("hide.bs.tab",{relatedTarget:e[0]}),a=t.Event("show.bs.tab",{relatedTarget:n[0]});if(n.trigger(s),e.trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){var r=t(o);this.activate(e.closest("li"),i),this.activate(r,r.parent(),function(){n.trigger({type:"hidden.bs.tab",relatedTarget:e[0]}),e.trigger({type:"shown.bs.tab",relatedTarget:n[0]})})}}},i.prototype.activate=function(e,o,n){function s(){a.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),r?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu")&&e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),n&&n()}var a=o.find("> .active"),r=n&&t.support.transition&&(a.length&&a.hasClass("fade")||!!o.find("> .fade").length);a.length&&r?a.one("bsTransitionEnd",s).emulateTransitionEnd(i.TRANSITION_DURATION):s(),a.removeClass("in")};var o=t.fn.tab;t.fn.tab=e,t.fn.tab.Constructor=i,t.fn.tab.noConflict=function(){return t.fn.tab=o,this};var n=function(i){i.preventDefault(),e.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',n).on("click.bs.tab.data-api",'[data-toggle="pill"]',n)}(jQuery),+function(t){"use strict";function e(e){var i,o=e.attr("data-target")||(i=e.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,"");return t(o)}function i(e){return this.each(function(){var i=t(this),n=i.data("bs.collapse"),s=t.extend({},o.DEFAULTS,i.data(),"object"==typeof e&&e);!n&&s.toggle&&"show"==e&&(s.toggle=!1),n||i.data("bs.collapse",n=new o(this,s)),"string"==typeof e&&n[e]()})}var o=function(e,i){this.$element=t(e),this.options=t.extend({},o.DEFAULTS,i),this.$trigger=t(this.options.trigger).filter('[href="#'+e.id+'"], [data-target="#'+e.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};o.VERSION="3.3.2",o.TRANSITION_DURATION=350,o.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},o.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},o.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e,n=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(n&&n.length&&(e=n.data("bs.collapse"),e&&e.transitioning))){var s=t.Event("show.bs.collapse");if(this.$element.trigger(s),!s.isDefaultPrevented()){n&&n.length&&(i.call(n,"hide"),e||n.data("bs.collapse",null));var a=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var r=function(){this.$element.removeClass("collapsing").addClass("collapse in")[a](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return r.call(this);var l=t.camelCase(["scroll",a].join("-"));this.$element.one("bsTransitionEnd",t.proxy(r,this)).emulateTransitionEnd(o.TRANSITION_DURATION)[a](this.$element[0][l])}}}},o.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var i=this.dimension();this.$element[i](this.$element[i]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var n=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return t.support.transition?void this.$element[i](0).one("bsTransitionEnd",t.proxy(n,this)).emulateTransitionEnd(o.TRANSITION_DURATION):n.call(this)}}},o.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},o.prototype.getParent=function(){return t(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(t.proxy(function(i,o){var n=t(o);this.addAriaAndCollapsedClass(e(n),n)},this)).end()},o.prototype.addAriaAndCollapsedClass=function(t,e){var i=t.hasClass("in");t.attr("aria-expanded",i),e.toggleClass("collapsed",!i).attr("aria-expanded",i)};var n=t.fn.collapse;t.fn.collapse=i,t.fn.collapse.Constructor=o,t.fn.collapse.noConflict=function(){return t.fn.collapse=n,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(o){var n=t(this);n.attr("data-target")||o.preventDefault();var s=e(n),a=s.data("bs.collapse"),r=a?"toggle":t.extend({},n.data(),{trigger:this});i.call(s,r)})}(jQuery),+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var i in e)if(void 0!==t.style[i])return{end:e[i]};return!1}t.fn.emulateTransitionEnd=function(e){var i=!1,o=this;t(this).one("bsTransitionEnd",function(){i=!0});var n=function(){i||t(o).trigger(t.support.transition.end)};return setTimeout(n,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){return t(e.target).is(this)?e.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery);
|
skin/frontend/base/default/js/Clx/jquery-1.11.3.min.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */
|
| 2 |
+
!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.3",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b="length"in a&&a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;
|
| 3 |
+
|
| 4 |
+
return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function aa(){return!0}function ba(){return!1}function ca(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},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(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ca()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===ca()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?aa:ba):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=aa,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=aa,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=aa,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=ba;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=ba),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function da(a){var b=ea.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var ea="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fa=/ jQuery\d+="(?:null|\d+)"/g,ga=new RegExp("<(?:"+ea+")[\\s/>]","i"),ha=/^\s+/,ia=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ja=/<([\w:]+)/,ka=/<tbody/i,la=/<|&#?\w+;/,ma=/<(?:script|style|link)/i,na=/checked\s*(?:[^=]|=\s*.checked.)/i,oa=/^$|\/(?:java|ecma)script/i,pa=/^true\/(.*)/,qa=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ra={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:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sa=da(y),ta=sa.appendChild(y.createElement("div"));ra.optgroup=ra.option,ra.tbody=ra.tfoot=ra.colgroup=ra.caption=ra.thead,ra.th=ra.td;function ua(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ua(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function va(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wa(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xa(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function ya(a){var b=pa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function za(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Aa(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Ba(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xa(b).text=a.text,ya(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!ga.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ta.innerHTML=a.outerHTML,ta.removeChild(f=ta.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ua(f),h=ua(a),g=0;null!=(e=h[g]);++g)d[g]&&Ba(e,d[g]);if(b)if(c)for(h=h||ua(a),d=d||ua(f),g=0;null!=(e=h[g]);g++)Aa(e,d[g]);else Aa(a,f);return d=ua(f,"script"),d.length>0&&za(d,!i&&ua(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=da(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(la.test(f)){h=h||o.appendChild(b.createElement("div")),i=(ja.exec(f)||["",""])[1].toLowerCase(),l=ra[i]||ra._default,h.innerHTML=l[1]+f.replace(ia,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&ha.test(f)&&p.push(b.createTextNode(ha.exec(f)[0])),!k.tbody){f="table"!==i||ka.test(f)?"<table>"!==l[1]||ka.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ua(p,"input"),va),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ua(o.appendChild(f),"script"),g&&za(h),c)){e=0;while(f=h[e++])oa.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ua(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&za(ua(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ua(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fa,""):void 0;if(!("string"!=typeof a||ma.test(a)||!k.htmlSerialize&&ga.test(a)||!k.leadingWhitespace&&ha.test(a)||ra[(ja.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ia,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ua(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ua(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&na.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ua(i,"script"),xa),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ua(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,ya),j=0;f>j;j++)d=g[j],oa.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qa,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Ca,Da={};function Ea(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fa(a){var b=y,c=Da[a];return c||(c=Ea(a,b),"none"!==c&&c||(Ca=(Ca||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Ca[0].contentWindow||Ca[0].contentDocument).document,b.write(),b.close(),c=Ea(a,b),Ca.detach()),Da[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Ga=/^margin/,Ha=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ia,Ja,Ka=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ia=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Ha.test(g)&&Ga.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ia=function(a){return a.currentStyle},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Ha.test(g)&&!Ka.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function La(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Ma=/alpha\([^)]*\)/i,Na=/opacity\s*=\s*([^)]*)/,Oa=/^(none|table(?!-c[ea]).+)/,Pa=new RegExp("^("+S+")(.*)$","i"),Qa=new RegExp("^([+-])=("+S+")","i"),Ra={position:"absolute",visibility:"hidden",display:"block"},Sa={letterSpacing:"0",fontWeight:"400"},Ta=["Webkit","O","Moz","ms"];function Ua(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Ta.length;while(e--)if(b=Ta[e]+c,b in a)return b;return d}function Va(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fa(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wa(a,b,c){var d=Pa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xa(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Ya(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ia(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Ja(a,b,f),(0>e||null==e)&&(e=a.style[b]),Ha.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xa(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ja(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ua(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qa.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ua(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Ja(a,b,d)),"normal"===f&&b in Sa&&(f=Sa[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Oa.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Ra,function(){return Ya(a,b,d)}):Ya(a,b,d):void 0},set:function(a,c,d){var e=d&&Ia(a);return Wa(a,c,d?Xa(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Na.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Ma,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Ma.test(f)?f.replace(Ma,e):f+" "+e)}}),m.cssHooks.marginRight=La(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Ja,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Ga.test(a)||(m.cssHooks[a+b].set=Wa)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ia(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Va(this,!0)},hide:function(){return Va(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Za(a,b,c,d,e){
|
| 5 |
+
return new Za.prototype.init(a,b,c,d,e)}m.Tween=Za,Za.prototype={constructor:Za,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Za.propHooks[this.prop];return a&&a.get?a.get(this):Za.propHooks._default.get(this)},run:function(a){var b,c=Za.propHooks[this.prop];return this.options.duration?this.pos=b=m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Za.propHooks._default.set(this),this}},Za.prototype.init.prototype=Za.prototype,Za.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Za.propHooks.scrollTop=Za.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Za.prototype.init,m.fx.step={};var $a,_a,ab=/^(?:toggle|show|hide)$/,bb=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cb=/queueHooks$/,db=[ib],eb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bb.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bb.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fb(){return setTimeout(function(){$a=void 0}),$a=m.now()}function gb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hb(a,b,c){for(var d,e=(eb[b]||[]).concat(eb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fa(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fa(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ab.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fa(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hb(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=db.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$a||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$a||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);g>f;f++)if(d=db[f].call(j,a,k,j.opts))return d;return m.map(k,hb,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kb,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],eb[c]=eb[c]||[],eb[c].unshift(b)},prefilter:function(a,b){b?db.unshift(a):db.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kb(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),m.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($a=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$a=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_a||(_a=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_a),_a=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lb=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lb,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mb,nb,ob=m.expr.attrHandle,pb=/^(?:checked|selected)$/i,qb=k.getSetAttribute,rb=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nb:mb)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rb&&qb||!pb.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qb?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nb={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rb&&qb||!pb.test(c)?a.setAttribute(!qb&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ob[b]||m.find.attr;ob[b]=rb&&qb||!pb.test(b)?function(a,b,d){var e,f;return d||(f=ob[b],ob[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,ob[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rb&&qb||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mb&&mb.set(a,b,c)}}),qb||(mb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},ob.id=ob.name=ob.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mb.set},m.attrHooks.contenteditable={set:function(a,b,c){mb.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sb=/^(?:input|select|textarea|button|object)$/i,tb=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sb.test(a.nodeName)||tb.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var ub=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ub," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ub," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ub," ").indexOf(b)>=0)return!0;return!1}}),m.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(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vb=m.now(),wb=/\?/,xb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yb,zb,Ab=/#.*$/,Bb=/([?&])_=[^&]*/,Cb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Db=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Eb=/^(?:GET|HEAD)$/,Fb=/^\/\//,Gb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hb={},Ib={},Jb="*/".concat("*");try{zb=location.href}catch(Kb){zb=y.createElement("a"),zb.href="",zb=zb.href}yb=Gb.exec(zb.toLowerCase())||[];function Lb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mb(a,b,c,d){var e={},f=a===Ib;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nb(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Ob(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zb,type:"GET",isLocal:Db.test(yb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nb(Nb(a,m.ajaxSettings),b):Nb(m.ajaxSettings,a)},ajaxPrefilter:Lb(Hb),ajaxTransport:Lb(Ib),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cb.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zb)+"").replace(Ab,"").replace(Fb,yb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gb.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yb[1]&&c[2]===yb[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yb[3]||("http:"===yb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mb(Hb,k,b,v),2===t)return v;h=m.event&&k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Eb.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wb.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bb.test(e)?e.replace(Bb,"$1_="+vb++):e+(wb.test(e)?"&":"?")+"_="+vb++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jb+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mb(Ib,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Ob(k,v,c)),u=Pb(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qb=/%20/g,Rb=/\[\]$/,Sb=/\r?\n/g,Tb=/^(?:submit|button|image|reset|file)$/i,Ub=/^(?:input|select|textarea|keygen)/i;function Vb(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rb.test(a)?d(a,e):Vb(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vb(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vb(c,a[c],b,e);return d.join("&").replace(Qb,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Ub.test(this.nodeName)&&!Tb.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sb,"\r\n")}}):{name:b.name,value:c.replace(Sb,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zb()||$b()}:Zb;var Wb=0,Xb={},Yb=m.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Xb)Xb[a](void 0,!0)}),k.cors=!!Yb&&"withCredentials"in Yb,Yb=k.ajax=!!Yb,Yb&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xb[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xb[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zb(){try{return new a.XMLHttpRequest}catch(b){}}function $b(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _b=[],ac=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_b.pop()||m.expando+"_"+vb++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ac.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ac.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ac,"$1"+e):b.jsonp!==!1&&(b.url+=(wb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_b.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bc=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bc)return bc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cc=a.document.documentElement;function dc(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cc;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cc})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=La(k.pixelPosition,function(a,c){return c?(c=Ja(a,b),Ha.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ec=a.jQuery,fc=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fc),b&&a.jQuery===m&&(a.jQuery=ec),m},typeof b===K&&(a.jQuery=a.$=m),m});
|
| 6 |
+
|
skin/frontend/base/default/js/Clx/jquery-migrate-1.2.1.min.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
| 1 |
+
/*! jQuery Migrate v1.2.1 | (c) 2005, 2013 jQuery Foundation, Inc. and other contributors | jquery.org/license */
|
| 2 |
+
jQuery.migrateMute===void 0&&(jQuery.migrateMute=!0),function(e,t,n){function r(n){var r=t.console;i[n]||(i[n]=!0,e.migrateWarnings.push(n),r&&r.warn&&!e.migrateMute&&(r.warn("JQMIGRATE: "+n),e.migrateTrace&&r.trace&&r.trace()))}function a(t,a,i,o){if(Object.defineProperty)try{return Object.defineProperty(t,a,{configurable:!0,enumerable:!0,get:function(){return r(o),i},set:function(e){r(o),i=e}}),n}catch(s){}e._definePropertyBroken=!0,t[a]=i}var i={};e.migrateWarnings=[],!e.migrateMute&&t.console&&t.console.log&&t.console.log("JQMIGRATE: Logging is active"),e.migrateTrace===n&&(e.migrateTrace=!0),e.migrateReset=function(){i={},e.migrateWarnings.length=0},"BackCompat"===document.compatMode&&r("jQuery is not compatible with Quirks Mode");var o=e("<input/>",{size:1}).attr("size")&&e.attrFn,s=e.attr,u=e.attrHooks.value&&e.attrHooks.value.get||function(){return null},c=e.attrHooks.value&&e.attrHooks.value.set||function(){return n},l=/^(?:input|button)$/i,d=/^[238]$/,p=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,f=/^(?:checked|selected)$/i;a(e,"attrFn",o||{},"jQuery.attrFn is deprecated"),e.attr=function(t,a,i,u){var c=a.toLowerCase(),g=t&&t.nodeType;return u&&(4>s.length&&r("jQuery.fn.attr( props, pass ) is deprecated"),t&&!d.test(g)&&(o?a in o:e.isFunction(e.fn[a])))?e(t)[a](i):("type"===a&&i!==n&&l.test(t.nodeName)&&t.parentNode&&r("Can't change the 'type' of an input or button in IE 6/7/8"),!e.attrHooks[c]&&p.test(c)&&(e.attrHooks[c]={get:function(t,r){var a,i=e.prop(t,r);return i===!0||"boolean"!=typeof i&&(a=t.getAttributeNode(r))&&a.nodeValue!==!1?r.toLowerCase():n},set:function(t,n,r){var a;return n===!1?e.removeAttr(t,r):(a=e.propFix[r]||r,a in t&&(t[a]=!0),t.setAttribute(r,r.toLowerCase())),r}},f.test(c)&&r("jQuery.fn.attr('"+c+"') may use property instead of attribute")),s.call(e,t,a,i))},e.attrHooks.value={get:function(e,t){var n=(e.nodeName||"").toLowerCase();return"button"===n?u.apply(this,arguments):("input"!==n&&"option"!==n&&r("jQuery.fn.attr('value') no longer gets properties"),t in e?e.value:null)},set:function(e,t){var a=(e.nodeName||"").toLowerCase();return"button"===a?c.apply(this,arguments):("input"!==a&&"option"!==a&&r("jQuery.fn.attr('value', val) no longer sets properties"),e.value=t,n)}};var g,h,v=e.fn.init,m=e.parseJSON,y=/^([^<]*)(<[\w\W]+>)([^>]*)$/;e.fn.init=function(t,n,a){var i;return t&&"string"==typeof t&&!e.isPlainObject(n)&&(i=y.exec(e.trim(t)))&&i[0]&&("<"!==t.charAt(0)&&r("$(html) HTML strings must start with '<' character"),i[3]&&r("$(html) HTML text after last tag is ignored"),"#"===i[0].charAt(0)&&(r("HTML string cannot start with a '#' character"),e.error("JQMIGRATE: Invalid selector string (XSS)")),n&&n.context&&(n=n.context),e.parseHTML)?v.call(this,e.parseHTML(i[2],n,!0),n,a):v.apply(this,arguments)},e.fn.init.prototype=e.fn,e.parseJSON=function(e){return e||null===e?m.apply(this,arguments):(r("jQuery.parseJSON requires a valid JSON string"),null)},e.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||0>e.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e.browser||(g=e.uaMatch(navigator.userAgent),h={},g.browser&&(h[g.browser]=!0,h.version=g.version),h.chrome?h.webkit=!0:h.webkit&&(h.safari=!0),e.browser=h),a(e,"browser",e.browser,"jQuery.browser is deprecated"),e.sub=function(){function t(e,n){return new t.fn.init(e,n)}e.extend(!0,t,this),t.superclass=this,t.fn=t.prototype=this(),t.fn.constructor=t,t.sub=this.sub,t.fn.init=function(r,a){return a&&a instanceof e&&!(a instanceof t)&&(a=t(a)),e.fn.init.call(this,r,a,n)},t.fn.init.prototype=t.fn;var n=t(document);return r("jQuery.sub() is deprecated"),t},e.ajaxSetup({converters:{"text json":e.parseJSON}});var b=e.fn.data;e.fn.data=function(t){var a,i,o=this[0];return!o||"events"!==t||1!==arguments.length||(a=e.data(o,t),i=e._data(o,t),a!==n&&a!==i||i===n)?b.apply(this,arguments):(r("Use of jQuery.fn.data('events') is deprecated"),i)};var j=/\/(java|ecma)script/i,w=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)},e.clean||(e.clean=function(t,a,i,o){a=a||document,a=!a.nodeType&&a[0]||a,a=a.ownerDocument||a,r("jQuery.clean() is deprecated");var s,u,c,l,d=[];if(e.merge(d,e.buildFragment(t,a).childNodes),i)for(c=function(e){return!e.type||j.test(e.type)?o?o.push(e.parentNode?e.parentNode.removeChild(e):e):i.appendChild(e):n},s=0;null!=(u=d[s]);s++)e.nodeName(u,"script")&&c(u)||(i.appendChild(u),u.getElementsByTagName!==n&&(l=e.grep(e.merge([],u.getElementsByTagName("script")),c),d.splice.apply(d,[s+1,0].concat(l)),s+=l.length));return d});var Q=e.event.add,x=e.event.remove,k=e.event.trigger,N=e.fn.toggle,T=e.fn.live,M=e.fn.die,S="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",C=RegExp("\\b(?:"+S+")\\b"),H=/(?:^|\s)hover(\.\S+|)\b/,A=function(t){return"string"!=typeof t||e.event.special.hover?t:(H.test(t)&&r("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),t&&t.replace(H,"mouseenter$1 mouseleave$1"))};e.event.props&&"attrChange"!==e.event.props[0]&&e.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),e.event.dispatch&&a(e.event,"handle",e.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),e.event.add=function(e,t,n,a,i){e!==document&&C.test(t)&&r("AJAX events should be attached to document: "+t),Q.call(this,e,A(t||""),n,a,i)},e.event.remove=function(e,t,n,r,a){x.call(this,e,A(t)||"",n,r,a)},e.fn.error=function(){var e=Array.prototype.slice.call(arguments,0);return r("jQuery.fn.error() is deprecated"),e.splice(0,0,"error"),arguments.length?this.bind.apply(this,e):(this.triggerHandler.apply(this,e),this)},e.fn.toggle=function(t,n){if(!e.isFunction(t)||!e.isFunction(n))return N.apply(this,arguments);r("jQuery.fn.toggle(handler, handler...) is deprecated");var a=arguments,i=t.guid||e.guid++,o=0,s=function(n){var r=(e._data(this,"lastToggle"+t.guid)||0)%o;return e._data(this,"lastToggle"+t.guid,r+1),n.preventDefault(),a[r].apply(this,arguments)||!1};for(s.guid=i;a.length>o;)a[o++].guid=i;return this.click(s)},e.fn.live=function(t,n,a){return r("jQuery.fn.live() is deprecated"),T?T.apply(this,arguments):(e(this.context).on(t,this.selector,n,a),this)},e.fn.die=function(t,n){return r("jQuery.fn.die() is deprecated"),M?M.apply(this,arguments):(e(this.context).off(t,this.selector||"**",n),this)},e.event.trigger=function(e,t,n,a){return n||C.test(e)||r("Global events are undocumented and deprecated"),k.call(this,e,t,n||document,a)},e.each(S.split("|"),function(t,n){e.event.special[n]={setup:function(){var t=this;return t!==document&&(e.event.add(document,n+"."+e.guid,function(){e.event.trigger(n,null,t,!0)}),e._data(this,n,e.guid++)),!1},teardown:function(){return this!==document&&e.event.remove(document,n+"."+e._data(this,n)),!1}}})}(jQuery,window);
|
skin/frontend/base/default/js/Clx/noConflict.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
| 1 |
+
var jQuery = $.noConflict();
|
