Merge branch 'master' of github.com:serghey-rodin/vesta
94
web/captcha.php
Normal file
|
@ -0,0 +1,94 @@
|
|||
<?php
|
||||
|
||||
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vesta' . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'VestaSession.class.php';
|
||||
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vesta' . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'Config.class.php';
|
||||
|
||||
define('V_ROOT_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vesta' . DIRECTORY_SEPARATOR);
|
||||
|
||||
class Captcha
|
||||
{
|
||||
protected $width = 200;
|
||||
protected $image = null;
|
||||
protected $color1 = null;
|
||||
protected $color2 = null;
|
||||
protected $color3 = null;
|
||||
protected $keyword = '';
|
||||
public $key_len = 7;
|
||||
protected $chars = 'qw1e2r3t4y5u67o8p9as9d38f6g4h3j2k1l3z5x7c8v3b5n781234567890';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
VestaSession::start();
|
||||
//var_dump(Config::get('session_dirname'));die();
|
||||
$this->image = imagecreatetruecolor($this->width, 50);
|
||||
$this->color1 = imagecolorallocate($this->image, 57, 58, 52);
|
||||
$this->color2 = imagecolorallocate($this->image, 45, 44, 40);
|
||||
$this->color3 = imagecolorallocate($this->image, 255, 255, 255);
|
||||
imagefilledrectangle($this->image, 0, 0, 249, 249, $this->color1);
|
||||
}
|
||||
|
||||
|
||||
public function generateImage($offset = 0)
|
||||
{
|
||||
$values = array(
|
||||
$offset, 15,
|
||||
$offset, 40,
|
||||
$offset + 14, 32,
|
||||
$offset + 14, 8,
|
||||
$offset, 15,
|
||||
$offset, 15
|
||||
);
|
||||
|
||||
imagefilledpolygon($this->image, $values, 6, $this->color2);
|
||||
}
|
||||
|
||||
public function draw()
|
||||
{
|
||||
$this->generateKeyword();
|
||||
for ($i = 0; $i < strlen($this->keyword) -1; $i++) {
|
||||
$this->generateImage($i * 15);
|
||||
}
|
||||
|
||||
$font_file = dirname(__FILE__).DIRECTORY_SEPARATOR.'css'.DIRECTORY_SEPARATOR.'arialbd.ttf';
|
||||
imagefttext($this->image, 17, 0, 2, 31, $this->color3, $font_file, $this->keyword);
|
||||
$this->slice();
|
||||
}
|
||||
|
||||
public function slice()
|
||||
{
|
||||
$width = 15;
|
||||
$height = 50;
|
||||
$dest = imagecreatetruecolor(15 * $this->key_len + 2 * $this->key_len + 8, $height);
|
||||
imagefilledrectangle($dest, 0, 0, 249, 249, $this->color1);
|
||||
|
||||
for ($i = 0; $i < $this->key_len; $i++) {
|
||||
$dest_x = $i == 0 ? $i * 15 : $i * 15 + $i * 4;
|
||||
imagecopy($dest, $this->image, $dest_x, 0, $i * 15, 0, $width, $height);
|
||||
}
|
||||
|
||||
header('Content-type: image/jpeg');
|
||||
imagepng($dest);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
protected function generateKeyword()
|
||||
{
|
||||
$this->keyword = '';
|
||||
for ($i = 0; $i < $this->key_len; $i++) {
|
||||
$this->keyword .= $this->chars[rand(0, strlen($this->chars)-1)];
|
||||
}
|
||||
|
||||
$_SESSION['captcha_key'] = $this->keyword;
|
||||
return $this->keyword;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$c = new Captcha();
|
||||
$c->draw();
|
||||
|
||||
|
||||
|
||||
?>
|
58
web/change_password.php
Normal file
|
@ -0,0 +1,58 @@
|
|||
<?php
|
||||
|
||||
class ChangePassword
|
||||
{
|
||||
|
||||
public function dispatch()
|
||||
{
|
||||
//print_r($_SERVER);
|
||||
if (empty($_GET['v'])) {
|
||||
return $this->renderError('General error');
|
||||
}
|
||||
|
||||
$key = $_GET['v'];
|
||||
$real_key = sha1($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']);
|
||||
$key_sha1 = substr($key, 0, 10) . substr($key, 20, strlen($key));
|
||||
$stamp = substr($key, 10, 10);
|
||||
$allowed = time() - 60 * 5; // - 5 mins
|
||||
|
||||
if (strcmp($real_key, $key_sha1) != 0) {
|
||||
return $this->renderError('Invalid keys');
|
||||
}
|
||||
|
||||
/*if ($stamp < $allowed) {
|
||||
return $this->renderError('Key is expired');
|
||||
}*/
|
||||
|
||||
$this->showResetForm();
|
||||
print $key_sha1 . "<br />" . $real_key;
|
||||
}
|
||||
|
||||
public function showResetForm()
|
||||
{
|
||||
print <<<HTML
|
||||
<form action="" >
|
||||
<input type="hidden" name="action" value="change" />
|
||||
<label>Enter secret code:</label>
|
||||
<input type="text" name="secret_code" value="" />
|
||||
<label>Enter new password:</label>
|
||||
<input type="text" name="secret_code" value="" />
|
||||
</form>
|
||||
HTML;
|
||||
|
||||
}
|
||||
|
||||
public function renderError($message)
|
||||
{
|
||||
print <<<HTML
|
||||
{$message}
|
||||
HTML;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$changePassword = new ChangePassword();
|
||||
$changePassword->dispatch();
|
||||
|
||||
?>
|
BIN
web/css/arialbd.ttf
Normal file
695
web/css/main.css
|
@ -3,7 +3,7 @@ Title : Vesta
|
|||
Author : Eugen Lobicov, eugen.lobicov@gmail.com
|
||||
|
||||
created : November 27, 2009
|
||||
last updated : July 10, 2011
|
||||
last updated : December 06, 2011
|
||||
- - - - - - - - - - - - - - - - - - */
|
||||
|
||||
html{
|
||||
|
@ -13,23 +13,23 @@ html{
|
|||
body{
|
||||
position:relative;
|
||||
font:normal 62.5%/1.5 Helvetica, Arial, sans-serif;
|
||||
background:#F0F0EE url(../images/thin-grey-line-2.gif) repeat-x;
|
||||
background:#B2AD9C url(../images/thin-grey-line-4.gif) repeat-x;
|
||||
color:#333;
|
||||
}
|
||||
#page{
|
||||
width:965px;
|
||||
width:955px;
|
||||
margin:5px auto 0;
|
||||
margin:3px auto 0;
|
||||
border:1px solid red;
|
||||
border:solid #a9aa98;
|
||||
border-width:0 2px;
|
||||
border:solid #807D70;
|
||||
border-width:0 1px;
|
||||
}
|
||||
.outer{
|
||||
padding-bottom:58px;
|
||||
background:#fff url(../images/footer-bg.gif) repeat-x 0 100%;
|
||||
}
|
||||
#header{
|
||||
overflow:hidden;
|
||||
/*overflow:hidden;*/
|
||||
padding:0 10px;
|
||||
height:26px;
|
||||
border-bottom:2px solid #333527;
|
||||
|
@ -51,35 +51,96 @@ body{
|
|||
font-size:1.2em; /*12px */
|
||||
text-decoration:none;
|
||||
color:#fff;
|
||||
display:block;
|
||||
text-indent:-9999px;
|
||||
}
|
||||
.logo a span{
|
||||
position:absolute;
|
||||
top:0;
|
||||
top:1px;
|
||||
left:0;
|
||||
z-index:1;
|
||||
background:url(../images/vesta-logo.png) no-repeat;
|
||||
}
|
||||
.settings{
|
||||
float:right;
|
||||
padding-left:28px;
|
||||
background:url(../images/vesta-italic-logo.png) no-repeat 0 50%;
|
||||
}
|
||||
.settings li{
|
||||
.settings .service-item{
|
||||
color:#cddce3;
|
||||
}
|
||||
.settings .settings-item,
|
||||
.extra-services .service-item{
|
||||
float:left;
|
||||
display:block;
|
||||
margin:0 10px 0 0;
|
||||
font-size:1.2em; /*12px*/
|
||||
line-height:2.084; /* 25px*/
|
||||
margin:0 10px 0;
|
||||
font-size:11px;
|
||||
line-height:25px;
|
||||
|
||||
text-transform:uppercase;
|
||||
}
|
||||
.settings li a{
|
||||
color:#c6d2d2;
|
||||
.settings .item-title,
|
||||
.extra-services .item-title{
|
||||
color:#b3b051;
|
||||
text-decoration:none;
|
||||
border-bottom:1px dashed #b3b051;
|
||||
}
|
||||
.settings li a:hover{
|
||||
.settings a.item-title:hover{
|
||||
color:#fefda0;
|
||||
text-decoration:none;
|
||||
}
|
||||
.settings li a:active{
|
||||
.settings a.item-title:active{
|
||||
color:#E16734;
|
||||
text-decoration:none;
|
||||
}
|
||||
/*.settings .logged-as{
|
||||
color:#fefda0;
|
||||
text-transform:none;
|
||||
border:none;
|
||||
}*/
|
||||
.extra-services{
|
||||
float:right;
|
||||
margin-right:90px;
|
||||
}
|
||||
.extra-services .service-item{
|
||||
position:relative;
|
||||
margin:0;
|
||||
padding:0 10px;
|
||||
line-height:26px;
|
||||
}
|
||||
.extra-services .item-devider{
|
||||
position:absolute;
|
||||
top:-3px;
|
||||
left:0;
|
||||
width:100%;
|
||||
height:3px;
|
||||
|
||||
}
|
||||
.extra-services .item-title{
|
||||
color:#cbdde1;
|
||||
border-bottom:1px dashed #72736d;
|
||||
}
|
||||
.extra-services .service-item_backups .item-title{
|
||||
padding-left:22px;
|
||||
background:url(../images/backup-ico.png) no-repeat 0 50%;
|
||||
}
|
||||
.extra-services .active{
|
||||
cursor:default;
|
||||
background:#333;
|
||||
}
|
||||
.extra-services .service-item:hover{
|
||||
cursor:pointer;
|
||||
background:#333;
|
||||
}
|
||||
.extra-services .service-item:hover .item-title,
|
||||
.extra-services .active .item-title{
|
||||
color:#fff997;
|
||||
border:none;
|
||||
}
|
||||
.extra-services .service-item:hover .item-devider,
|
||||
.extra-services .active .item-devider{
|
||||
background:#ff6766;
|
||||
}
|
||||
|
||||
/*Remove button padding in FF*/
|
||||
input::-moz-focus-inner{
|
||||
|
@ -111,8 +172,6 @@ input::-moz-focus-inner{
|
|||
float:left;
|
||||
display:block;
|
||||
padding-right:1px;
|
||||
/* border-bottom:4px solid #616a57;*/
|
||||
/* background:url(../images/nav-devider-2.png) no-repeat 100% 50%;*/
|
||||
background:url(../images/nav-devider-2.png) no-repeat 100% 50%;
|
||||
}
|
||||
.primary-nav .last-section{
|
||||
|
@ -125,7 +184,7 @@ input::-moz-focus-inner{
|
|||
height:auto !important;
|
||||
height:100px;
|
||||
padding:15px 0 3px 6px;
|
||||
background:url(../images/section-status-sprite-5.gif) no-repeat -420px 115px;
|
||||
padding:15px 0 0 6px;
|
||||
}
|
||||
.primary-nav .last-section .section-inner{
|
||||
width:133px;
|
||||
|
@ -152,15 +211,28 @@ input::-moz-focus-inner{
|
|||
top:2px;
|
||||
float:left;
|
||||
display:block;
|
||||
width:13px;
|
||||
height:13px;
|
||||
background:url(../images/primarary-collapsed.gif) no-repeat;
|
||||
width:14px;
|
||||
height:14px;
|
||||
background:url(../images/plus-sprite1.png) no-repeat;
|
||||
font-size:0;
|
||||
line-height:0;
|
||||
}
|
||||
.section .section-title .add-entry:hover{
|
||||
background:#B5C968;
|
||||
background-position:-14px 0;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
.section .section-devider{
|
||||
position:absolute;
|
||||
left:0;
|
||||
bottom:0;
|
||||
z-index:10;
|
||||
/*background:url(../images/section-status-sprite-5.gif) no-repeat -420px 115px; */
|
||||
display:block;
|
||||
width:100%;
|
||||
height:3px;
|
||||
background:url(../images/section-status-sprite-6.png) no-repeat -420px 100%;
|
||||
}
|
||||
|
||||
.dnstpl-nav-item .section-title{
|
||||
background-position:100% 85%;
|
||||
|
@ -172,18 +244,24 @@ input::-moz-focus-inner{
|
|||
color:#8c9c91;
|
||||
}
|
||||
.section:hover .section-inner{
|
||||
background-position:0 115px;
|
||||
background-color:#F1F7D6;
|
||||
color:#000;
|
||||
cursor:pointer;
|
||||
}
|
||||
.section:hover .section-devider{
|
||||
background-position:0 100%;
|
||||
}
|
||||
.section:hover .section-title{
|
||||
color:#000;
|
||||
}
|
||||
.primary-nav .active .section-inner{
|
||||
background-position:-140px 115px;
|
||||
cursor:default;
|
||||
}
|
||||
.primary-nav .active .section-devider{
|
||||
background-position:-140px 100%;
|
||||
height:5px;
|
||||
bottom:-2px;
|
||||
}
|
||||
.primary-nav .active .def{
|
||||
color:#8c9c91;
|
||||
}
|
||||
|
@ -198,6 +276,7 @@ input::-moz-focus-inner{
|
|||
background-color:#a09d98;
|
||||
background:#535049 url(../images/console-box-bg.png) repeat-x;
|
||||
border-bottom:1px solid #7a7967;
|
||||
z-index:1;
|
||||
}
|
||||
|
||||
.b-console{
|
||||
|
@ -317,7 +396,8 @@ input::-moz-focus-inner{
|
|||
#actions-toolbar{
|
||||
clear:both;
|
||||
position:relative;
|
||||
padding:15px 20px 15px 280px;
|
||||
/*padding:15px 20px 15px 280px;*/
|
||||
padding:15px 20px 15px 250px;
|
||||
background-color:#f3f3d9;
|
||||
border-bottom:1px solid #c9cbc8;
|
||||
}
|
||||
|
@ -326,11 +406,11 @@ input::-moz-focus-inner{
|
|||
position:relative;
|
||||
top:2px;
|
||||
float:left;
|
||||
margin:0 0 0 -260px;
|
||||
/*margin:0 0 0 -260px;*/
|
||||
margin:0 0 0 -230px;
|
||||
border-bottom:1px solid #b5c968;
|
||||
font-family:Georgia, "Times New Roman", Times, serif;
|
||||
font-size:16px;
|
||||
/* line-height:18px;*/
|
||||
line-height:1;
|
||||
text-transform:uppercase;
|
||||
color:#66685d;
|
||||
|
@ -346,7 +426,16 @@ input::-moz-focus-inner{
|
|||
background:url(../images/add-entry-plus.gif) no-repeat;
|
||||
font-size:0;
|
||||
line-height:0;
|
||||
}
|
||||
}
|
||||
.add-btn:hover{
|
||||
color:#000;
|
||||
border-bottom-color:#b85152;
|
||||
}
|
||||
.add-btn:active{
|
||||
color:#b85152;
|
||||
border-bottom-color:#000;
|
||||
}
|
||||
|
||||
.select-all{
|
||||
padding:0 40px 0 0;
|
||||
font-size:13px;
|
||||
|
@ -403,6 +492,171 @@ input::-moz-focus-inner{
|
|||
color:#b85152;
|
||||
}
|
||||
|
||||
/* Row filters */
|
||||
|
||||
.row-filters{}
|
||||
|
||||
.b-row-selector{
|
||||
float:left;
|
||||
width:240px;
|
||||
}
|
||||
|
||||
.b-row-selector .checkbox-selector{
|
||||
position:relative;
|
||||
top:4px;
|
||||
margin-right:20px;
|
||||
}
|
||||
.b-row-selector .b-cust-sel{
|
||||
width:100px;
|
||||
}
|
||||
|
||||
.checkbox-selector,
|
||||
.context-actions{
|
||||
display:-moz-inline-stack;
|
||||
display: inline-block;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
vertical-align:top;
|
||||
}
|
||||
.checkbox-selector .checkbox{
|
||||
display:block;
|
||||
float:left;
|
||||
width:11px;
|
||||
height:11px;
|
||||
margin:2px 5px 0 0;
|
||||
background:url(../images/chekbox-selector.png) no-repeat;
|
||||
cursor:pointer;
|
||||
}
|
||||
.checkbox-selector .selector-title{
|
||||
float:left;
|
||||
font-size:11px;
|
||||
line-height:15px;
|
||||
text-transform:uppercase;
|
||||
color:#5d5d5d;
|
||||
cursor:pointer;
|
||||
white-space:nowrap;
|
||||
}
|
||||
.checkbox-selector .selector-title:hover{
|
||||
color:#2ea8bd;
|
||||
}
|
||||
.checkbox-selector .selector-title:active{
|
||||
color:#fc0;
|
||||
}
|
||||
|
||||
/* Custom select */
|
||||
.b-cust-sel{
|
||||
position: relative;
|
||||
font-size: 12px;
|
||||
|
||||
background-color: #fff;
|
||||
/* background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.5, white));
|
||||
background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, white 50%);
|
||||
background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 50%);
|
||||
background-image: -o-linear-gradient(top, #eeeeee 0%,#ffffff 50%);
|
||||
background-image: -ms-linear-gradient(top, #eeeeee 0%,#ffffff 50%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff',GradientType=0 );
|
||||
background-image: linear-gradient(top, #eeeeee 0%,#ffffff 50%);
|
||||
|
||||
-moz-background-clip : padding;
|
||||
-webkit-background-clip: padding-box;
|
||||
background-clip : padding-box;
|
||||
*/
|
||||
|
||||
box-shadow: inset 1px 1px 4px 0px rgba(0, 0, 0, 0.10);
|
||||
-moz-box-shadow: inset 1px 1px 4px 0px rgba(0, 0, 0, 0.10);
|
||||
-webkit-box-shadow: inset 1px 1px 4px 0px rgba(0, 0, 0, 0.10);
|
||||
|
||||
border: 1px solid #c5c4bf;
|
||||
display: block;
|
||||
white-space: nowrap;
|
||||
position: relative;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
padding: 0 0 0 8px;
|
||||
color: #616161;
|
||||
|
||||
}
|
||||
.b-cust-sel .title{
|
||||
margin-right: 26px;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
-o-text-overflow: ellipsis;
|
||||
-ms-text-overflow: ellipsis;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.cust-sel-arrow{
|
||||
-moz-background-clip : padding;
|
||||
-webkit-background-clip: padding-box;
|
||||
background-clip : padding-box;
|
||||
background: #ccc;
|
||||
|
||||
/* background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
|
||||
background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
|
||||
background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
|
||||
background-image: -o-linear-gradient(bottom, #ccc 0%, #eee 60%);
|
||||
background-image: -ms-linear-gradient(top, #cccccc 0%,#eeeeee 60%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cccccc', endColorstr='#eeeeee',GradientType=0 );
|
||||
background-image: linear-gradient(top, #cccccc 0%,#eeeeee 60%);
|
||||
*/
|
||||
|
||||
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #fff), color-stop(0.6, #f5f4ef));
|
||||
background-image: -webkit-linear-gradient(center bottom, #fff 0%, #f5f4ef 60%);
|
||||
background-image: -moz-linear-gradient(center bottom, #fff 0%, #f5f4ef 60%);
|
||||
background-image: -o-linear-gradient(bottom, #fff 0%, #f5f4ef 60%);
|
||||
background-image: -ms-linear-gradient(top, #cccccc 0%,#f5f4ef 60%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cccccc', endColorstr='#f5f4ef',GradientType=0 );
|
||||
background-image: linear-gradient(top, #cccccc 0%,#f5f4ef 60%);
|
||||
|
||||
border-left: 1px solid #c5c4bf;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
display: block;
|
||||
height: 100%;
|
||||
width: 21px;
|
||||
}
|
||||
.cust-sel-arrow i{
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background:url(../images/custom-arrow.png) no-repeat 50% 50%;
|
||||
}
|
||||
.b-cust-sel .cust-sel-options{
|
||||
position:absolute;
|
||||
top:21px;
|
||||
left:-1px;
|
||||
width:100%;
|
||||
padding:5px 0 2px;
|
||||
border:solid #C5C4BF;
|
||||
border-width:0 1px 1px;
|
||||
background:#fff;
|
||||
z-index:100;
|
||||
}
|
||||
.b-cust-sel .cust-sel-option{
|
||||
padding:0 0 4px 18px;
|
||||
background:url(../images/cust-option-bullets.png) no-repeat 5px 7px;
|
||||
color:#828282;
|
||||
cursor:pointer;
|
||||
}
|
||||
.b-cust-sel .cust-sel-option:hover{
|
||||
color:#333;
|
||||
}
|
||||
.b-cust-sel .ico_gray{
|
||||
background-position:5px 7px;
|
||||
}
|
||||
.b-cust-sel .ico_green{
|
||||
background-position:5px -35px;
|
||||
}
|
||||
.b-cust-sel .ico_red{
|
||||
background-position:5px -79px;
|
||||
}
|
||||
|
||||
.domain-groups-selector{
|
||||
float:left;
|
||||
width:270px;
|
||||
}
|
||||
|
||||
#content{
|
||||
padding:8px 0 50px;
|
||||
background:#fff url(../images/content-separator.png) repeat-x;
|
||||
|
@ -1056,8 +1310,8 @@ input::-moz-focus-inner{
|
|||
vertical-align:top;
|
||||
|
||||
min-width:40%;
|
||||
width:auto !important;
|
||||
width:40%;
|
||||
/* width:auto !important;
|
||||
width:40%;*/
|
||||
margin:0 0 3px;
|
||||
font-size:10px;
|
||||
}
|
||||
|
@ -1175,8 +1429,9 @@ input::-moz-focus-inner{
|
|||
color:#3d504a;
|
||||
}
|
||||
.b-new-entry .text-field{
|
||||
float:left;
|
||||
width:265px;
|
||||
margin:0;
|
||||
margin:0 15px 0 0;
|
||||
padding:6px 7px;
|
||||
border:2px solid #b8c2c3;
|
||||
color:#555;
|
||||
|
@ -1231,6 +1486,7 @@ input::-moz-focus-inner{
|
|||
}
|
||||
.b-new-entry select.styled{
|
||||
top:10px;
|
||||
width:230px;
|
||||
}
|
||||
.b-new-entry option{
|
||||
font:14px arial,sans-serif;
|
||||
|
@ -1238,7 +1494,7 @@ input::-moz-focus-inner{
|
|||
.b-new-entry .form-options-group{}
|
||||
|
||||
.b-new-entry .group-header{
|
||||
margin:12px 25px 12px 60px;
|
||||
margin:12px 25px 12px 15px;
|
||||
text-transform:uppercase;
|
||||
color:#9c9c9c;
|
||||
font-size:11px;
|
||||
|
@ -1247,20 +1503,56 @@ input::-moz-focus-inner{
|
|||
background:url(../images/dotted.gif) repeat-x 0 50%;
|
||||
}
|
||||
.b-new-entry .group-title-outer{
|
||||
display:inline-block;
|
||||
width:165px;
|
||||
padding:0 15px 0 0;
|
||||
line-height:16px;
|
||||
text-align:right;
|
||||
background:#ffffcb;
|
||||
}
|
||||
.b-new-entry .group-title{
|
||||
padding:2px 15px 2px 0;
|
||||
.b-new-entry .group-title-inner{
|
||||
padding:2px 13px 2px 0;
|
||||
}
|
||||
.b-new-entry .expanded .group-title{
|
||||
.b-new-entry .group-title{
|
||||
border-bottom:1px solid #FFFFCB;
|
||||
}
|
||||
.b-new-entry .expanded .group-title-inner{
|
||||
background:#ffffcb url(../images/form-group-expanded.png) no-repeat 100% 50%;
|
||||
}
|
||||
.b-new-entry .collapsed .group-title{
|
||||
.b-new-entry .collapsed .group-title-inner{
|
||||
background:#ffffcb url(../images/form-group-collapsed.png) no-repeat 100% 50%;
|
||||
}
|
||||
|
||||
.b-new-entry .group-header:hover{
|
||||
cursor:pointer;
|
||||
}
|
||||
.b-new-entry .group-header:hover .group-title,
|
||||
.b-new-entry .group-header .group-title:hover{
|
||||
color:#000;
|
||||
border-bottom-color:#9fb35a;
|
||||
}
|
||||
.b-new-entry .group-header .group-title:active{
|
||||
color:#4B9427;
|
||||
}
|
||||
|
||||
.b-new-entry .delete-record{
|
||||
display: block;
|
||||
position:relative;
|
||||
top:11px;
|
||||
float: left;
|
||||
width: 11px;
|
||||
height: 11px;
|
||||
background: url(../images/delete-ico-off.png) no-repeat;
|
||||
}
|
||||
.b-new-entry .delete-record:hover{
|
||||
cursor:pointer;
|
||||
background-image:url(../images/delete-ico.png);
|
||||
}
|
||||
.b-new-entry .delete-record:active{
|
||||
cursor:pointer;
|
||||
background-image:url(../images/delete-ico-active.png);
|
||||
}
|
||||
|
||||
|
||||
.b-new-entry .checkbox{
|
||||
display:block;
|
||||
float:left;
|
||||
|
@ -1278,9 +1570,12 @@ input::-moz-focus-inner{
|
|||
.b-new-entry .db-credentials .field-label{
|
||||
text-indent:40px;
|
||||
}
|
||||
.b-new-entry .pwd-box .text-field{
|
||||
/*.b-new-entry .pwd-box .text-field{
|
||||
float:left;
|
||||
margin:0 15px 0 0;
|
||||
}*/
|
||||
.b-new-entry_user .lastname-box{
|
||||
margin-bottom:30px;
|
||||
}
|
||||
.b-new-entry_dns .dns-template-box .styled{
|
||||
float:left;
|
||||
|
@ -1316,6 +1611,41 @@ input::-moz-focus-inner{
|
|||
.context-settings:active{
|
||||
color:#b4c775;
|
||||
}
|
||||
|
||||
.b-new-entry .add-ns{
|
||||
display:inline-block;
|
||||
margin-left:180px;
|
||||
font-family:Georgia, "Times New Roman", Times, serif;
|
||||
font-size:14px;
|
||||
line-height:1;
|
||||
text-transform:uppercase;
|
||||
color:#66685d;
|
||||
text-decoration:none;
|
||||
}
|
||||
.add-ns .icon{
|
||||
float:left;
|
||||
display:block;
|
||||
width:11px;
|
||||
height:11px;
|
||||
margin:2px 5px 0 0;
|
||||
background:url(../images/add-entry-plus.gif) no-repeat;
|
||||
font-size:0;
|
||||
line-height:0;
|
||||
}
|
||||
.add-ns .btn-title{
|
||||
display:inline-block;
|
||||
border-bottom:1px solid #b5c968;
|
||||
}
|
||||
.add-ns .btn-title:hover{
|
||||
color:#000;
|
||||
border-bottom-color:#b85152;
|
||||
}
|
||||
.add-ns .btn-title:active{
|
||||
color:#b85152;
|
||||
border-bottom-color:#000;
|
||||
}
|
||||
|
||||
|
||||
.b-new-entry .buttons-row{
|
||||
position:relative;
|
||||
margin-top:10px;
|
||||
|
@ -1326,13 +1656,14 @@ input::-moz-focus-inner{
|
|||
.b-new-entry .help-btn{
|
||||
position:absolute;
|
||||
top:13px;
|
||||
left:16px;
|
||||
right:20px;
|
||||
font-size:11px;
|
||||
line-height:12px;
|
||||
color:#b4b39f;
|
||||
text-transform:uppercase;
|
||||
cursor:pointer;
|
||||
border-bottom:1px solid #b4b39f;
|
||||
text-decoration:none;
|
||||
}
|
||||
.b-new-entry .help-btn:hover{
|
||||
color:#000;
|
||||
|
@ -1344,7 +1675,7 @@ input::-moz-focus-inner{
|
|||
.b-new-entry .cancel-btn{
|
||||
position:absolute;
|
||||
top:15px;
|
||||
right:20px;
|
||||
left:16px;
|
||||
font-size:12px;
|
||||
line-height:1;
|
||||
text-transform:uppercase;
|
||||
|
@ -1398,6 +1729,7 @@ input::-moz-focus-inner{
|
|||
}
|
||||
.b-new-entry .autocomplete-box .text-field{
|
||||
width:213px;
|
||||
margin:0;
|
||||
}
|
||||
.b-new-entry .autocomplete-box .arrow{
|
||||
position:absolute;
|
||||
|
@ -1425,6 +1757,7 @@ input::-moz-focus-inner{
|
|||
border:1px solid #dcdbad;
|
||||
background:url(../images/form-bottom-bg.png) repeat-x;
|
||||
}
|
||||
|
||||
.form-error .error-box{
|
||||
padding-left:18px;
|
||||
background:url(../images/error-bullet.png) no-repeat 0 50%;
|
||||
|
@ -1480,15 +1813,27 @@ input::-moz-focus-inner{
|
|||
}
|
||||
.b-new-entry_cron .form-row-line .text-field{
|
||||
width:112px;
|
||||
margin:0;
|
||||
}
|
||||
.b-new-entry_cron .form-row-line .cron-week-box .text-field{
|
||||
width:109px;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.b-new-entry_cron .textarea{
|
||||
height:60px;
|
||||
}
|
||||
|
||||
.b-new-detailed-restore{}
|
||||
|
||||
.b-new-detailed-restore .add-entry-btn{
|
||||
padding:0 30px;
|
||||
}
|
||||
|
||||
.b-new-detailed-restore .cancel-btn{
|
||||
left:auto;
|
||||
right:16px;
|
||||
}
|
||||
|
||||
/* Show/edit dns records form
|
||||
- - - - - - - - - - - - - - - - - - - */
|
||||
.b-records-list{
|
||||
|
@ -1540,6 +1885,7 @@ input::-moz-focus-inner{
|
|||
.b-records-list .dns-record-box .text-field{
|
||||
width:147px;
|
||||
float:left;
|
||||
margin:0;
|
||||
}
|
||||
.b-records-list .dns-type-box{
|
||||
margin-right:15px;
|
||||
|
@ -1553,13 +1899,13 @@ input::-moz-focus-inner{
|
|||
cursor:pointer;
|
||||
}
|
||||
.b-records-list .dns-value-box .text-field{
|
||||
float:none;
|
||||
width:390px;
|
||||
margin:0;
|
||||
}
|
||||
.b-records-list .delete-record{
|
||||
position:relative;
|
||||
/* top:31px;
|
||||
left:10px;*/
|
||||
position:absolute;
|
||||
top: auto;
|
||||
bottom:15px;
|
||||
right:11px;
|
||||
display:block;
|
||||
|
@ -1568,15 +1914,7 @@ input::-moz-focus-inner{
|
|||
height:11px;
|
||||
background:url(../images/delete-ico-off.png) no-repeat;
|
||||
}
|
||||
.b-records-list .delete-record:hover{
|
||||
cursor:pointer;
|
||||
background-image:url(../images/delete-ico.png);
|
||||
}
|
||||
.b-records-list .delete-record:active{
|
||||
cursor:pointer;
|
||||
background-image:url(../images/delete-ico-active.png);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Web-domains list
|
||||
- - - - - - - - - - - - - - - - - - - */
|
||||
|
@ -1707,7 +2045,7 @@ input::-moz-focus-inner{
|
|||
}
|
||||
|
||||
/* New graphs */
|
||||
.stats-box{
|
||||
.b-stats-box{
|
||||
position:relative;
|
||||
margin-left:-25px;
|
||||
padding-left:25px;
|
||||
|
@ -2009,9 +2347,7 @@ input::-moz-focus-inner{
|
|||
.users-list .props-additional .ns2-box{
|
||||
padding-left:27px;
|
||||
}
|
||||
/* .users-list .ns-list-box{
|
||||
padding-left:40px;
|
||||
}*/
|
||||
.users-list .webtpl-box .group-switcher,
|
||||
.users-list .ns-list-box .group-switcher{
|
||||
padding-left:15px;
|
||||
}
|
||||
|
@ -2211,6 +2547,221 @@ input::-moz-focus-inner{
|
|||
color:#ABABAB;
|
||||
}
|
||||
|
||||
/* Backups list
|
||||
- - - - - - - - - - - - - - - - - - - */
|
||||
.backups-list{}
|
||||
|
||||
.backups-list .row{
|
||||
padding:25px 10px 15px;
|
||||
}
|
||||
.backups-list .ownership{
|
||||
padding:5px 0 0;
|
||||
}
|
||||
.backups-list .props-main{
|
||||
padding-top:5px;
|
||||
}
|
||||
.backups-list .props-main .prop-box{
|
||||
margin:0;
|
||||
}
|
||||
.backups-list .props-additional{
|
||||
width:165px;
|
||||
padding:4px 0 0;
|
||||
}
|
||||
.backups-list .props-ext{
|
||||
width:165px;
|
||||
padding:0;
|
||||
}
|
||||
.backups-list .entry-created{
|
||||
width:185px;
|
||||
padding:0;
|
||||
}
|
||||
.backups-list .backup-date,
|
||||
.backups-list .backup-weekday{
|
||||
display:-moz-inline-stack;
|
||||
display:inline-block;
|
||||
vertical-align:top;
|
||||
}
|
||||
.backups-list .backup-date .backup-day{
|
||||
display:block;
|
||||
width:105px;
|
||||
font-size:14px;
|
||||
font-family:Arial,Helvetica,sans-serif;
|
||||
font-weight:bold;
|
||||
line-height:20px;
|
||||
color:#47443f;
|
||||
}
|
||||
.backups-list .backup-weekday{
|
||||
padding-top:4px;
|
||||
color:#408abb;
|
||||
}
|
||||
.backups-list .backup-time,
|
||||
.backups-list .generation-time .prop-value{
|
||||
font-size:10px;
|
||||
color:#999;
|
||||
}
|
||||
.backups-list .generation-time .prop-value{
|
||||
color:#9C9C9C;
|
||||
}
|
||||
|
||||
.backups-list .generation-time{
|
||||
padding-top:4px;
|
||||
}
|
||||
.backups-list .backup-size{
|
||||
display:-moz-inline-stack;
|
||||
display:inline-block;
|
||||
padding-right:12px;
|
||||
|
||||
font-size:10px;
|
||||
line-height:24px;
|
||||
|
||||
background:url(../images/green-bracket-l.png) no-repeat 0 50%;
|
||||
color:#595959;
|
||||
}
|
||||
.backups-list .backup-size-inner{
|
||||
display:-moz-inline-stack;
|
||||
display:inline-block;
|
||||
|
||||
padding:0 10px;
|
||||
background:url(../images/green-bracket-r.png) no-repeat 100% 50%;
|
||||
}
|
||||
.backups-list .backup-url,
|
||||
.backups-list .backup-actions{
|
||||
font-size:13px;
|
||||
color:#999;
|
||||
}
|
||||
.backups-list .backup-actions{
|
||||
background:#ccc;
|
||||
}
|
||||
.backups-list .backup-actions-url{
|
||||
float:right;
|
||||
display:-moz-inline-stack;
|
||||
display:inline-block;
|
||||
vertical-align:top;
|
||||
|
||||
-webkit-border-radius:9px;
|
||||
-moz-border-radius:9px;
|
||||
border-radius:9px;
|
||||
|
||||
border:2px solid #fff;
|
||||
color:#999;
|
||||
line-height:26px;
|
||||
}
|
||||
.backups-list .row a.backup-actions-url:hover{
|
||||
padding:0 12px;
|
||||
|
||||
border-color:#c8c09c;
|
||||
background-color:#feff99;
|
||||
color:#444428;
|
||||
font-size:14px;
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
font-weight:bold;
|
||||
cursor:pointer;
|
||||
text-decoration:none;
|
||||
text-transform:uppercase;
|
||||
}
|
||||
|
||||
.backups-list .detailed-restore-ext{
|
||||
display:none;
|
||||
}
|
||||
|
||||
.backups-list a.detailed-restore-url:hover .detailed-restore-title{
|
||||
text-transform:none;
|
||||
}
|
||||
.backups-list a.detailed-restore-url:hover .detailed-restore-ext{
|
||||
display:inline-block;
|
||||
}
|
||||
|
||||
.backups-list .restore-url{
|
||||
margin-left:10px;
|
||||
color:#93b749;
|
||||
}
|
||||
|
||||
.backup-tree{
|
||||
padding-left:70px;
|
||||
}
|
||||
|
||||
.backup-tree .backup-tree-item{
|
||||
padding:0 0 7px 25px;
|
||||
background:url(../images/backup-checkbox.png) no-repeat 0 .5em;
|
||||
}
|
||||
.backup-tree .unchecked{
|
||||
background:url(../images/backup-checkbox-unchecked.png) no-repeat 0 .5em;
|
||||
}
|
||||
.backup-tree .checked{
|
||||
background:url(../images/backup-checkbox-checked.png) no-repeat 0 .5em;
|
||||
}
|
||||
|
||||
.backup-tree .backup-sections,
|
||||
.backup-tree .backup-sections .sub-tree{
|
||||
padding:10px 0 0 25px;
|
||||
}
|
||||
|
||||
.backup-tree .node-item{
|
||||
font-size:13px;
|
||||
font-weight:bold;
|
||||
padding-left:15px;
|
||||
background:url(../images/backup-collapsed-ico.png) no-repeat 0 .3em;
|
||||
border-bottom:1px dashed #cfd19f;
|
||||
color:#5a6962;
|
||||
cursor:pointer;
|
||||
}
|
||||
.backup-tree .node-item:hover{
|
||||
color:#ffcf0b;
|
||||
}
|
||||
|
||||
.backup-tree .expanded{
|
||||
background:url(../images/backup-expand-ico.png) no-repeat 0 .45em;
|
||||
}
|
||||
.backup-tree .backup-sections .sub-tree .node-item{
|
||||
font-style:italic;
|
||||
color:#abad85;
|
||||
padding:0;
|
||||
background:none;
|
||||
border:none;
|
||||
}
|
||||
.backup-tree .backup-sections .sub-tree .node-item:hover{
|
||||
color:#abad85;
|
||||
}
|
||||
|
||||
.backup-tree .backup-sections .sub-tree .checked .node-item{
|
||||
color:#5a6962;
|
||||
font-style:normal;
|
||||
}
|
||||
|
||||
/* Highlighted backup row */
|
||||
.backup-details-row_highlighted,
|
||||
.backups-list .backup-details-row_highlighted:hover{
|
||||
background:#666;
|
||||
}
|
||||
.backup-details-row_highlighted .notes-wrap{
|
||||
font-size:14px;
|
||||
line-height:25px;
|
||||
font-weight:bold;
|
||||
text-transform:uppercase;
|
||||
color:#bad23e;
|
||||
text-align:center;
|
||||
padding:0 0 10px;
|
||||
}
|
||||
.backup-details-row_highlighted .restore-ico{
|
||||
padding:4px 0 4px 30px;
|
||||
line-height:25px;
|
||||
background:url(../images/backup-restore-ico.png) no-repeat;
|
||||
}
|
||||
.backup-details-row_highlighted .backup-time{
|
||||
color:#fff;
|
||||
}
|
||||
.backup-details-row_highlighted .ownership .prop-value{
|
||||
color:#c8c8c8;
|
||||
}
|
||||
.backups-list .backup-details-row_highlighted .backup-day{
|
||||
color:#fff;
|
||||
}
|
||||
.backups-list .backup-details-row_highlighted .backup-size{
|
||||
color:#ccc;
|
||||
}
|
||||
.backups-list .backup-details-row_highlighted .backup-actions{
|
||||
display:none;
|
||||
}
|
||||
|
||||
/* row hover effect
|
||||
- - - - - - - - - - - - - - - - - - - */
|
||||
|
@ -2242,6 +2793,10 @@ input::-moz-focus-inner{
|
|||
border:none;
|
||||
cursor:default;
|
||||
}
|
||||
.backups-list .row:hover .backup-actions-url{
|
||||
border-color:#ffffcb;
|
||||
}
|
||||
|
||||
.row:hover .ip-status-info{
|
||||
background:url(../images/enabled-ico_.png) no-repeat 100% 50%;
|
||||
}
|
||||
|
@ -2352,10 +2907,12 @@ input::-moz-focus-inner{
|
|||
.suspended-row .cron-command-line,
|
||||
.suspended-row .username-box,
|
||||
.suspended-row .username-box .nickname,
|
||||
.suspended-row .user-name .prop-value,
|
||||
.suspended-row .user-backups-box .prop-title,
|
||||
.suspended-row .user-details .user-email,
|
||||
.suspended-row .user-details .user-reports,
|
||||
.suspended-row .template-box .prop-value{
|
||||
.suspended-row .template-box .prop-value,
|
||||
.suspended-row .stats-box-title{
|
||||
color:#ccc;
|
||||
border:none;
|
||||
}
|
||||
|
@ -2385,10 +2942,13 @@ input::-moz-focus-inner{
|
|||
.suspended-row .prop-value,
|
||||
.suspended-row .b-usage-box .value,
|
||||
.suspended-row .b-usage-box .max-size,
|
||||
.suspended-row .b-usage-box .max-size .units{
|
||||
.suspended-row .b-usage-box .max-size .units,
|
||||
.suspended-row .b-usage-box2 .value,
|
||||
.suspended-row .b-usage-box2 .max-size{
|
||||
color:#ccc;
|
||||
}
|
||||
.suspended-row .b-usage-box .bar{
|
||||
.suspended-row .b-usage-box .bar,
|
||||
.suspended-row .b-usage-box2 .graph .bar {
|
||||
background-color:#ccc;
|
||||
}
|
||||
.suspended-row:hover .show-records,
|
||||
|
@ -2415,17 +2975,8 @@ input::-moz-focus-inner{
|
|||
.users-list .suspended-row .user-backups-box .prop-title:active{
|
||||
color:#ccc;
|
||||
}
|
||||
|
||||
|
||||
select{
|
||||
background-color: white;
|
||||
width:265px;
|
||||
margin:0;
|
||||
padding:6px 7px;
|
||||
border:2px solid #b8c2c3;
|
||||
color:#555;
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
font-size:14px;
|
||||
font-weight:bold;
|
||||
.suspended-row .stats-box-title{
|
||||
background-image:url(../images/stats-curve-grey.png);
|
||||
}
|
||||
|
||||
.success-box {border: 1px dashed #BBBF45;color: #BBBF45;}
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
}
|
||||
.d-popup-inner{
|
||||
padding:20px;
|
||||
color:#fff;
|
||||
}
|
||||
.d-popup .close{
|
||||
position:absolute;
|
||||
|
@ -26,6 +27,9 @@
|
|||
height:13px;
|
||||
background:url(../images/info-popup-sprite.png) no-repeat;
|
||||
cursor:pointer;
|
||||
font-size:0;
|
||||
line-height:0;
|
||||
text-indent:-9999px;
|
||||
}
|
||||
.d-popup span.close:hover{
|
||||
background-position:0 -13px;
|
||||
|
|
209
web/css/vesta-login-form.css
Normal file
|
@ -0,0 +1,209 @@
|
|||
/* Page specific styles */
|
||||
.page-auth{
|
||||
background:url(../images/auth/auth-bg.png) repeat;
|
||||
}
|
||||
.cc:after{
|
||||
content: ".";
|
||||
display: block;
|
||||
height: 0;
|
||||
clear: both;
|
||||
visibility: hidden;
|
||||
}
|
||||
*html .cc{
|
||||
zoom:1;
|
||||
}
|
||||
+html .cc{
|
||||
zoom:1;
|
||||
}
|
||||
.page-auth .b-auth-form{}
|
||||
|
||||
.page-auth .b-auth-form{
|
||||
width:525px;
|
||||
margin:7% auto 0;
|
||||
padding:20px 20px 0;
|
||||
background:url(../images/auth/form-bg.png) repeat;
|
||||
|
||||
-webkit-border-radius:15px;
|
||||
-moz-border-radius:15px;
|
||||
border-radius:15px;
|
||||
behavior: url(js/PIE.htc);
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
}
|
||||
.page-auth .b-auth-form-wrap{
|
||||
position:relative;
|
||||
padding-top:30px;
|
||||
}
|
||||
.page-auth .vesta-logo{
|
||||
position:absolute;
|
||||
top:0;
|
||||
left:0;
|
||||
display:block;
|
||||
}
|
||||
.page-auth .b-client-title{
|
||||
margin:0 0 45px;
|
||||
padding-left:130px;
|
||||
font-size:35px;
|
||||
background:url(../images/auth/planet-1.png) no-repeat 85px 27px;
|
||||
color:#fff;
|
||||
}
|
||||
.client-title-wrap{
|
||||
position:relative;
|
||||
text-transform: uppercase;
|
||||
font-size:24px;
|
||||
}
|
||||
.client-title-wrap .planets{
|
||||
display:block;
|
||||
width:91px;
|
||||
height:7px;
|
||||
position:absolute;
|
||||
top:40%;
|
||||
right:-121px;
|
||||
background:url(../images/auth/planet-2.png) no-repeat scroll 0 -1px;
|
||||
}
|
||||
.page-auth .form-row{
|
||||
margin:0 0 15px;
|
||||
}
|
||||
.page-auth .last-row{
|
||||
padding:27px 90px 0 133px;
|
||||
}
|
||||
.page-auth .field-label{
|
||||
float:left;
|
||||
width:87px;
|
||||
padding-left:45px;
|
||||
color:#e3d785;
|
||||
font-size:12px;
|
||||
line-height:34px;
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
text-transform:uppercase;
|
||||
/*letter-spacing:-.5px;*/
|
||||
}
|
||||
.page-auth .field-text{
|
||||
width:290px;
|
||||
padding:4px 5px;
|
||||
font-size:20px;
|
||||
border:2px solid #0c6c9c;
|
||||
background:#2d2c28;
|
||||
color:#fff;
|
||||
}
|
||||
.page-auth .field-text:focus{
|
||||
-moz-box-shadow:0 0 8px rgba(76, 147, 189, 0.7);
|
||||
-webkit-box-shadow:0 0 8px rgba(76, 147, 189, 0.7);
|
||||
border-color:rgba(76, 147, 189, 0.85) !important;
|
||||
}
|
||||
|
||||
.page-auth .b-remember{
|
||||
float:left;
|
||||
padding-top:5px;
|
||||
}
|
||||
.page-auth .remember-label{
|
||||
cursor:pointer;
|
||||
padding:2px 2px 2px 8px;
|
||||
color:#747975;
|
||||
font-size:12px;
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
}
|
||||
span.ui-checkbox{
|
||||
display: block;
|
||||
float: left;
|
||||
width: 14px;
|
||||
height: 15px;
|
||||
/* background:url(icon_checkbox.png) 0 -40px no-repeat;*/
|
||||
background:url(../images/auth/checkboxes.png) no-repeat;
|
||||
}
|
||||
.ui-helper-hidden-accessible{
|
||||
display: none;
|
||||
}
|
||||
span.ui-checkbox-state-hover{
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
span.ui-checkbox-state-checked,
|
||||
span.ui-checkbox-state-checked-hover{
|
||||
background-position: 0 -30px;
|
||||
}
|
||||
|
||||
.page-auth .sumbit-btn{
|
||||
float:right;
|
||||
overflow:visible;
|
||||
height:30px;
|
||||
padding:0 40px;
|
||||
-webkit-border-radius:9px;
|
||||
-moz-border-radius:9px;
|
||||
border-radius:9px;
|
||||
behavior: url(js/PIE.htc);
|
||||
|
||||
border:2px solid #2C2C10;
|
||||
background-color:#BBBF45;
|
||||
color:#ffffdf;
|
||||
font-size:13px;
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
font-weight:bold;
|
||||
line-height:27px;
|
||||
text-transform:uppercase;
|
||||
cursor:pointer;
|
||||
}
|
||||
.page-auth .sumbit-btn:focus{
|
||||
position:relative;
|
||||
top:1px;
|
||||
}
|
||||
.page-auth .sumbit-btn:hover{
|
||||
background-color:#ffcc00;
|
||||
color:#483600;
|
||||
border-color:#000;
|
||||
}
|
||||
.page-auth .sumbit-btn:active{
|
||||
top:0;
|
||||
background-color:#96A332;
|
||||
color:#FFFFFF;
|
||||
border-color:#2C2C10;
|
||||
}
|
||||
|
||||
.page-auth .forgot-pwd{
|
||||
padding:60px 0 10px 137px;
|
||||
font-size:13px;
|
||||
}
|
||||
.page-auth .forgot-pwd-url{
|
||||
color:#6f7571;
|
||||
}
|
||||
.page-auth a.forgot-pwd-url:hover{
|
||||
color:#849e54;
|
||||
}
|
||||
.page-auth a.forgot-pwd-url:active{
|
||||
color:#edca38;
|
||||
}
|
||||
|
||||
.page-auth .error-box{
|
||||
border-top:1px dashed #f16d6b;
|
||||
padding:10px 0 21px 131px;
|
||||
font-size:14px;
|
||||
font-weight:bold;
|
||||
color:#f16d6b;
|
||||
}
|
||||
|
||||
.page-auth .footnotes{
|
||||
margin:0 -20px;
|
||||
padding:15px 20px;
|
||||
font-size:14px;
|
||||
border-top:2px solid #34352f;
|
||||
color:#5a5e5d;
|
||||
}
|
||||
.page-auth .footnotes .additional-info{
|
||||
float:left;
|
||||
font-size:12px;
|
||||
font-family:Georgia, "Times New Roman", Times, serif;
|
||||
font-style:italic;
|
||||
}
|
||||
.page-auth .footnotes .questions-url{
|
||||
color:#5a5e5d;
|
||||
}
|
||||
.page-auth .footnotes a.questions-url:hover{
|
||||
color:#849e54;
|
||||
}
|
||||
.page-auth .footnotes a.questions-url:active{
|
||||
color:#edca38;
|
||||
}
|
||||
.page-auth .footnotes .imprint{
|
||||
float:right;
|
||||
font-style:normal;
|
||||
font-size:11px;
|
||||
padding-top:1px;
|
||||
}
|
BIN
web/images/auth/auth-bg.png
Normal file
After Width: | Height: | Size: 948 B |
BIN
web/images/auth/checkboxes.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
web/images/auth/form-bg.png
Normal file
After Width: | Height: | Size: 933 B |
BIN
web/images/auth/planet-1.png
Normal file
After Width: | Height: | Size: 1 KiB |
BIN
web/images/auth/planet-2.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
web/images/backup-ico.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
web/images/chekbox-selector.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
web/images/cust-option-bullets.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
web/images/custom-arrow.png
Normal file
After Width: | Height: | Size: 1 KiB |
BIN
web/images/fav.ico
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
web/images/form-group-collapsed.png.1
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
web/images/form-group-expanded.png.1
Normal file
After Width: | Height: | Size: 268 B |
BIN
web/images/group-value-bullet.png
Normal file
After Width: | Height: | Size: 961 B |
BIN
web/images/group-values-collapsed.png
Normal file
After Width: | Height: | Size: 1,007 B |
BIN
web/images/loading.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
web/images/plus-sprite1.png
Normal file
After Width: | Height: | Size: 1,019 B |
BIN
web/images/section-status-sprite-6.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
web/images/stats-curve.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
web/images/thin-grey-line-4.gif
Normal file
After Width: | Height: | Size: 814 B |
BIN
web/images/vesta-logo-old.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 5 KiB |
123
web/index.html
|
@ -2,13 +2,16 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
|
||||
|
||||
<head>
|
||||
<title>Vesta | IP</title>
|
||||
<title>Vesta Control Panel</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta http-equiv="imagetoolbar" content="false" />
|
||||
|
||||
<link rel="shortcut icon" href="images/fav.ico" type="image/x-icon">
|
||||
|
||||
<link rel="stylesheet" media="all" type="text/css" href="css/reset2.css" />
|
||||
<link rel="stylesheet" media="all" type="text/css" href="css/main.css" />
|
||||
<link rel="stylesheet" media="all" type="text/css" href="css/main.css" />
|
||||
<link rel="stylesheet" media="all" type="text/css" href="css/popup.css" />
|
||||
<link rel="stylesheet" media="all" type="text/css" href="css/vesta-login-form.css" />
|
||||
|
||||
<!--[if lt IE 8]>
|
||||
<link rel="stylesheet" type="text/css" href="http://dl.dropbox.com/u/1750887/projects/vesta2/css/ie.css" />
|
||||
|
@ -46,17 +49,30 @@
|
|||
</head>
|
||||
|
||||
<body>
|
||||
<div id="page">
|
||||
<div id="page" class="hidden">
|
||||
<div class="outer">
|
||||
<div id="header">
|
||||
<div class="logo-box">
|
||||
<h1 class="logo"><a href="#">Vesta panel <span> </span></a></h1>
|
||||
</div>
|
||||
<ul class="settings">
|
||||
<li><a href="#">settings</a></li>
|
||||
<li><a href="#">exit</a></li>
|
||||
</ul>
|
||||
<li class="settings-item"><a href="#" class="item-title logged-as" id="user-name">...</a></li>
|
||||
<li class="settings-item"><a href="#" class="item-title">profile</a></li>
|
||||
<li class="settings-item"><a href="#" class="item-title do_action_view_profile_settings">settings</a></li>
|
||||
<li class="settings-item"><a href="#" class="item-title do_action_profile_exit">exit</a></li>
|
||||
</ul>
|
||||
<ul class="extra-services">
|
||||
<li class="service-item service-item_backups">
|
||||
<span class="item-title">Backups</span>
|
||||
<i class="item-devider"></i>
|
||||
</li>
|
||||
<li class="service-item">
|
||||
<span class="item-title">Stats</span>
|
||||
<i class="item-devider"></i>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="primary-nav-box">
|
||||
<ul class="primary-nav cc">
|
||||
<li class="section" id="USER">
|
||||
|
@ -68,26 +84,27 @@
|
|||
</dt>
|
||||
<dd class="section-contains">
|
||||
<span class="def"><span class="num-total">0</span> users</span>
|
||||
<span class="def"><span class="num-blocked">0</span> blocked</span>
|
||||
<span class="def"><span class="num-blocked">0</span> suspended</span>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<i class="section-devider"></i>
|
||||
</li>
|
||||
<li class="section" id="WEB_DOMAIN">
|
||||
<div class="section-inner">
|
||||
<dl class="users-nav-item">
|
||||
<dt class="section-title cc">
|
||||
<span class="to-section">Web Domain</span>
|
||||
<span class="to-section">Web</span>
|
||||
<i class="add-entry do_action_new_entry"> </i>
|
||||
</dt>
|
||||
<dd class="section-contains">
|
||||
<span class="def"><span class="num-total">0</span> web domains</span>
|
||||
<span class="def"><span class="num-blocked">0</span> blocked</span>
|
||||
<span class="def"><span class="num-blocked">0</span> suspended</span>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<i class="section-devider"></i>
|
||||
</li>
|
||||
<li class="section" id="MAIL">
|
||||
<div class="section-inner">
|
||||
|
@ -97,10 +114,11 @@
|
|||
<i class="add-entry do_action_new_entry"> </i>
|
||||
</dt>
|
||||
<dd class="section-contains">
|
||||
<span class="def"><span class="num-total">0</span> mails</span>
|
||||
<span class="def"><span class="num-total">0</span> mail domain(s)</span>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<i class="section-devider"></i>
|
||||
</li>
|
||||
<li class="section" id="DB">
|
||||
<div class="section-inner">
|
||||
|
@ -111,10 +129,11 @@
|
|||
</dt>
|
||||
<dd class="section-contains">
|
||||
<span class="def"><span class="num-total">0</span> databases</span>
|
||||
<span class="def"><span class="num-blocked">0</span> blocked</span>
|
||||
<span class="def"><span class="num-blocked">0</span> suspended</span>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<i class="section-devider"></i>
|
||||
</li>
|
||||
<li class="section active" id="DNS">
|
||||
<div class="section-inner">
|
||||
|
@ -124,10 +143,11 @@
|
|||
<i class="add-entry do_action_new_entry"> </i>
|
||||
</dt>
|
||||
<dd class="section-contains">
|
||||
<span class="def"><span class="num-total">0</span> total records</span>
|
||||
<span class="def"><span class="num-total">0</span> dns domain(s)</span>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<i class="section-devider"></i>
|
||||
</li>
|
||||
<li class="section" id="IP">
|
||||
<div class="section-inner">
|
||||
|
@ -137,11 +157,12 @@
|
|||
<i class="add-entry do_action_new_entry"> </i>
|
||||
</dt>
|
||||
<dd class="section-contains">
|
||||
<span class="def"><span class="num-total">0</span> ip entries</span>
|
||||
<span class="def"><span class="num-blocked">0</span> blocked</span>
|
||||
<span class="def"><span class="num-total">0</span> ip address(es)</span>
|
||||
<span class="def"><span class="num-blocked">0</span> suspended</span>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<i class="section-devider"></i>
|
||||
</li>
|
||||
<li class="section last-section" id="CRON">
|
||||
<div class="section-inner">
|
||||
|
@ -151,11 +172,12 @@
|
|||
<i class="add-entry do_action_new_entry"> </i>
|
||||
</dt>
|
||||
<dd class="section-contains">
|
||||
<span class="def"><span class="num-total">0</span> cron records</span>
|
||||
<span class="def"><span class="num-blocked">0</span> blocked</span>
|
||||
<span class="def"><span class="num-total">0</span> cron job(s)</span>
|
||||
<span class="def"><span class="num-blocked">0</span> suspended</span>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<i class="section-devider"></i>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -163,16 +185,16 @@
|
|||
<div class="b-console">
|
||||
|
||||
<div class="b-console-wrap">
|
||||
<form class="b-console-form cc" action="#" method="post">
|
||||
<form class="b-console-form cc" action="" method="post">
|
||||
<fieldset>
|
||||
<input class="b-console-field" type="text" value="/"/>
|
||||
<input class="b-console-btn" type="submit" value="Go" />
|
||||
<input class="b-console-btn do_action_exec_v_console" type="submit" value="Go"/>
|
||||
</fieldset>
|
||||
</form>
|
||||
<div class="b-console-statuses hidden">
|
||||
<div class="b-console-status cc">
|
||||
|
||||
<p class="b-console-status-message">domain <b>google.com</b> have been added <br />
|
||||
<p class="b-console-status-message">domain <b>test.com</b> have been added <br />
|
||||
|
||||
</p>
|
||||
<span class="b-console-status-action">cancel</span>
|
||||
|
@ -189,30 +211,53 @@
|
|||
<i class="icon do_action_new_entry"> </i>
|
||||
add new <span id="new-entry-keyword" class="do_action_new_entry">entry</span>
|
||||
</a>
|
||||
<div class="row-filters cc">
|
||||
<div class="b-row-selector">
|
||||
<div class="checkbox-selector cc">
|
||||
<input class="styled" type="checkbox" value="" />
|
||||
<span class="selector-title">385 Selected</span>
|
||||
</div>
|
||||
<div class="context-actions c-s-box">
|
||||
<div class="b-cust-sel complex-select c-s-opt">
|
||||
<input type="hidden" name="" value="" class="c-s-value-ref">
|
||||
<span class="title c-s-opt c-s-title do_action_toggle_custom_select">Action</span>
|
||||
<div class="cust-sel-arrow do_action_toggle_custom_select c-s-opt"><i> </i></div>
|
||||
<div class="cust-sel-options complex-select-content c-s-opt hidden">
|
||||
<div class="cust-sel-option ico_gray c-s-opt do_action_update_cs_value">
|
||||
<input type="hidden" class="c-s-value" value="Suspend">
|
||||
Suspend
|
||||
</div>
|
||||
<div class="cust-sel-option ico_green c-s-opt do_action_update_cs_value">
|
||||
<input type="hidden" class="c-s-value" value="Unsuspended">
|
||||
Unsuspend
|
||||
</div>
|
||||
<div class="cust-sel-option ico_red c-s-opt do_action_update_cs_value">
|
||||
<input type="hidden" class="c-s-value" value="Delete">
|
||||
Delete
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<!-- -->
|
||||
|
||||
<!-- -->
|
||||
|
||||
</div>
|
||||
<div id="content">
|
||||
<div class="content-inner">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="js/lib/cookie.js"></script>
|
||||
<script type="text/javascript" src="js/lib/jquery-1.6.1.js"></script>
|
||||
<script type="text/javascript" src="js/lib/jquery-ui-1.8.13.custom.min.js"></script>
|
||||
<script type="text/javascript" src="js/lib/auth.js"></script>
|
||||
<script type="text/javascript" src="js/date_format.js"></script>
|
||||
<script type="text/javascript" src="js/lib/custom-form-elements.js"></script>
|
||||
<script type="text/javascript" src="js/lib/browser.js"></script>
|
||||
<script type="text/javascript" src="js/lib/popup.js"></script>
|
||||
<script type="text/javascript" src="js/tech.js"></script>
|
||||
<script type="text/javascript" src="js/app.js"></script>
|
||||
<script type="text/javascript" src="js/tech.js"></script>
|
||||
<script type="text/javascript" src="js/lib/popup.js"></script>
|
||||
<script type="text/javascript" src="js/app.js"></script>
|
||||
<script type="text/javascript" src="js/_settings.js"></script>
|
||||
<script type="text/javascript" src="js/actions.js"></script>
|
||||
<script type="text/javascript" src="js/helpers.js"></script>
|
||||
|
@ -223,9 +268,7 @@
|
|||
<script type="text/javascript" src="js/pages.js"></script>
|
||||
<script type="text/javascript" src="js/model.js"></script>
|
||||
<script type="text/javascript" src="js/core.js"></script>
|
||||
<script type="text/javascript" src="js/validators.js"></script>
|
||||
|
||||
<script type="text/javascript" src="js/validators.js"></script>
|
||||
<script type="text/javascript" src="js/__init__.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -1,8 +1,19 @@
|
|||
$(document).ready(function(){
|
||||
try{
|
||||
App.Ajax.request('MAIN.about', {}, function(reply) {
|
||||
if (reply) {
|
||||
App.Settings.VestaAbout.company_name = reply.data.company_name;
|
||||
App.Settings.VestaAbout.company_email = reply.data.company_email;
|
||||
App.Settings.VestaAbout.version = reply.data.version;
|
||||
App.Settings.VestaAbout.version_name = reply.data.version_name;
|
||||
}
|
||||
});
|
||||
$('document').ready(function() {
|
||||
try {
|
||||
App.Utils.detectBrowser();
|
||||
App.Ref.init();
|
||||
|
||||
if ('undefined' != typeof App.Tmp.loadTAB) {
|
||||
App.Env.world = 'USER';
|
||||
// Disabled cookie tab restoring. Enable if needed
|
||||
/*if ('undefined' != typeof App.Tmp.loadTAB) {
|
||||
App.Env.world = App.Tmp.loadTAB;
|
||||
}
|
||||
|
||||
|
@ -14,17 +25,17 @@ $(document).ready(function(){
|
|||
else {
|
||||
App.Env.world = App.Constants.TABS[0];
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
App.Pages.init();
|
||||
App.Ref.init();
|
||||
|
||||
//App.View.start();
|
||||
App.Pages.init();
|
||||
App.Core.listen();
|
||||
App.Core.initMenu();
|
||||
App.Helpers.liveValidate();
|
||||
|
||||
}catch(e){
|
||||
$(document).bind('submit', function(evt) {
|
||||
evt.preventDefault();
|
||||
});
|
||||
}
|
||||
catch(e) {
|
||||
fb.error(e);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -20,21 +20,34 @@ App.Constants.DNS = 'DNS';
|
|||
App.Constants.SUSPENDED_YES = 'yes';
|
||||
App.Constants.DNS_TEMPLATES = {'default': 'Default'};
|
||||
|
||||
// Settings
|
||||
App.Settings.FIELD_MAX_LEN = 32;
|
||||
App.Settings.DAY_MAX_LEN = 2;
|
||||
App.Settings.MONTH_MAX_LEN = 2;
|
||||
App.Settings.WDAY_MAX_LEN = 2;
|
||||
App.Settings.HOURS_MAX_LEN = 2;
|
||||
App.Settings.MINUTE_MAX_LEN = 2;
|
||||
App.Settings.USER_VISIBLE_NS = 2;
|
||||
App.Settings.NS_MIN = 2;
|
||||
App.Settings.NS_MAX = 8;
|
||||
App.Settings.ajax_url = 1;
|
||||
App.Settings.uri = location.href.replace('index.html', '');
|
||||
App.Settings.popup_conf = { 'centered' : true, 'bgcolor' : '#FF0000', 'lightboxSpeed' : 'fast', 'destroyOnClose': true };
|
||||
App.Constants.KEY = {};
|
||||
App.Constants.KEY.ESC = 27;
|
||||
App.Constants.KEY.ENTER = 13;
|
||||
App.Constants.KEY.SPACE = 32;
|
||||
App.Constants.KEY.BACKSPACE = 8;
|
||||
App.Constants.KEY.UP = 38;
|
||||
App.Constants.KEY.DOWN = 40;
|
||||
App.Constants.KEY.CODED_NAME = {'27':'ESC', '13':'ENTER','32':'SPACE','8':'BACKSPACE','38':'UP','40':'DOWN'};
|
||||
|
||||
App.Settings.PASSWORD_IMMUTE = '********';
|
||||
// Settings
|
||||
App.Settings.PSW_MIN_LEN = 6;
|
||||
App.Settings.FIELD_MAX_LEN = 32;
|
||||
App.Settings.DAY_MAX_LEN = 2;
|
||||
App.Settings.MONTH_MAX_LEN = 2;
|
||||
App.Settings.WDAY_MAX_LEN = 2;
|
||||
App.Settings.HOURS_MAX_LEN = 2;
|
||||
App.Settings.MINUTE_MAX_LEN = 2;
|
||||
App.Settings.USER_VISIBLE_NS = 2;
|
||||
App.Settings.USER_VISIBLE_WEB_TPL = 2;
|
||||
App.Settings.NS_MIN = 2;
|
||||
App.Settings.NS_MAX = 8;
|
||||
App.Settings.ajax_url = 1;
|
||||
App.Settings.uri = location.href.replace('index.html', '');
|
||||
App.Settings.popup_conf = { 'centered' : true, 'bgcolor' : '#FF0000', 'lightboxSpeed' : 'fast', 'destroyOnClose': true };
|
||||
|
||||
App.Settings.PASSWORD_IMMUTE = '********';
|
||||
|
||||
App.Settings.AJAX_SYNCRONOUS = ['MAIN.getInitial'];
|
||||
|
||||
// Messages
|
||||
App.Messages.total_dns_records = {single: 'total record', plural: 'total records'};
|
||||
|
|
|
@ -1,22 +1,152 @@
|
|||
App.Actions.authorize = function()
|
||||
App.Actions.toggle_custom_select = function(evt)
|
||||
{
|
||||
if ($('#authorize-form').length > 0) {
|
||||
return;
|
||||
var elm = $(evt.target);
|
||||
elm = elm.hasClass('complex-select') ? elm : elm.parents('.complex-select');
|
||||
var ref = elm.find('.complex-select-content');
|
||||
$('.s-c-highlighted').removeClass('s-c-highlighted');
|
||||
if (ref.hasClass('hidden')) {
|
||||
ref.removeClass('hidden');
|
||||
App.Tmp.focusedComplexSelect = elm;
|
||||
}
|
||||
else {
|
||||
ref.addClass('hidden');
|
||||
}
|
||||
|
||||
App.View.popup('login');
|
||||
}
|
||||
|
||||
App.Actions.update_cs_value = function(evt)
|
||||
{
|
||||
var elm = $(evt.target);
|
||||
elm = elm.hasClass('cust-sel-option') ? elm : elm.parents('.cust-sel-option');
|
||||
|
||||
var val = elm.find('.c-s-value').val();fb.log(val);
|
||||
elm.parents('.c-s-box').find('.c-s-title').text(val);
|
||||
elm.parents('.c-s-box').find('.c-s-value-ref').val(val);
|
||||
$('.complex-select-content').addClass('hidden');
|
||||
}
|
||||
|
||||
App.Actions.do_change_password = function()
|
||||
{
|
||||
|
||||
var params = {
|
||||
email: $('#change-email').val(),
|
||||
captcha: $('#captcha').val()
|
||||
}
|
||||
|
||||
App.Ajax.request('MAIN.requestPassword', params, function(reply){
|
||||
$('#captcha-img').attr('src', App.Helpers.generateUrl('captcha.php?')+Math.floor(Math.random() * 9999));
|
||||
$('#captcha').val('');
|
||||
if (reply.result) {
|
||||
$('#change-psw-error').html('');
|
||||
$('#change-psw-error').addClass('hidden');
|
||||
$('#change-psw-success').html('Reset link was sent to email box provided by you.'
|
||||
+ ' You will need to provide <strong>"'+reply.data.key_code+'"</strong> code to for resetting the password. Please copy it.');
|
||||
$('#change-psw-success').removeClass('hidden');
|
||||
$('.form-row').remove();
|
||||
}
|
||||
else {
|
||||
$('#change-psw-error').html(reply.message);
|
||||
$('#change-psw-error').removeClass('hidden');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
App.Actions.back_to_login = function()
|
||||
{
|
||||
$('body').addClass('page-auth');
|
||||
var tpl = App.Templates.get('login', 'popup');
|
||||
tpl.set(':LOGO_URL', App.Helpers.generateUrl('images/vesta-logo.png'));
|
||||
tpl.set(':YEAR', new Date().getFullYear());
|
||||
tpl.set(':EMAIL_REAL', App.Settings.VestaAbout.company_email);
|
||||
tpl.set(':EMAIL', App.Settings.VestaAbout.company_name);
|
||||
tpl.set(':VERSION', App.Settings.VestaAbout.version_name + ' ' + App.Settings.VestaAbout.version);
|
||||
$('body').prepend(tpl.finalize());
|
||||
$('#change-psw-block').remove();
|
||||
$('.remember-me').checkBox();
|
||||
}
|
||||
|
||||
App.Actions.change_password = function(evt)
|
||||
{
|
||||
evt.preventDefault();
|
||||
|
||||
if ($('#change-psw-block').length > 0) {
|
||||
return $('#change-psw-block').show();
|
||||
}
|
||||
|
||||
var tpl = App.Templates.get('change_psw', 'popup');
|
||||
tpl.set(':LOGO_URL', App.Helpers.generateUrl('images/vesta-logo.png'));
|
||||
tpl.set(':YEAR', new Date().getFullYear());
|
||||
tpl.set(':CAPTCHA_URL', App.Helpers.generateUrl('captcha.php?')+Math.floor(Math.random() * 9999));
|
||||
tpl.set(':CAPTCHA_URL_2', App.Helpers.generateUrl('captcha.php'));
|
||||
tpl.set(':EMAIL_REAL', App.Settings.VestaAbout.company_email);
|
||||
tpl.set(':EMAIL', App.Settings.VestaAbout.company_name);
|
||||
tpl.set(':VERSION', App.Settings.VestaAbout.version_name + ' ' + App.Settings.VestaAbout.version);
|
||||
$('#auth-block').remove();
|
||||
$('body').prepend(tpl.finalize());
|
||||
$('#change-psw-error').html('');
|
||||
$('#change-psw-error').addClass('hidden');
|
||||
}
|
||||
|
||||
App.Actions.profile_exit = function(evt)
|
||||
{
|
||||
evt.preventDefault();
|
||||
App.Ajax.request('MAIN.logoff', {}, function(reply) {
|
||||
location.href = '';
|
||||
});
|
||||
}
|
||||
|
||||
// show auth form
|
||||
App.Actions.authorize = function()
|
||||
{
|
||||
$('#change-psw-block').remove();
|
||||
if ($('#auth-block').length > 0) {
|
||||
return;
|
||||
}
|
||||
$('#page').addClass('hidden');
|
||||
$('body').addClass('page-auth');
|
||||
var tpl = App.Templates.get('login', 'popup');
|
||||
tpl.set(':LOGO_URL', App.Helpers.generateUrl('images/vesta-logo.png'));
|
||||
tpl.set(':YEAR', new Date().getFullYear());
|
||||
tpl.set(':EMAIL_REAL', App.Settings.VestaAbout.company_email);
|
||||
tpl.set(':EMAIL', App.Settings.VestaAbout.company_name);
|
||||
tpl.set(':VERSION', App.Settings.VestaAbout.version_name + ' ' + App.Settings.VestaAbout.version);
|
||||
$('body').prepend(tpl.finalize());
|
||||
$(document).ready(function(){
|
||||
$('.remember-me').checkBox();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Embeds new item form
|
||||
* if exits custom method (App.Pages[ENVIRONMENT_NAME].newForm)
|
||||
* custom method will be executes instead of default one
|
||||
*/
|
||||
App.Actions.new_entry = function() {
|
||||
if ('undefined' != typeof App.Pages[App.Env.world].new_entry) {fb.log(1);
|
||||
App.Pages[App.Env.world].new_entry();
|
||||
} else {fb.log(2);
|
||||
var form_id = App.Constants[App.Env.world + '_FORM_ID'];
|
||||
$('#'+form_id).remove();
|
||||
var build_method = App.Env.getWorldName() + '_form';
|
||||
var tpl = App.HTML.Build[build_method]({}, form_id);
|
||||
App.Ref.CONTENT.prepend(tpl);
|
||||
App.Helpers.updateScreen();
|
||||
}
|
||||
}
|
||||
|
||||
// execute authorisation
|
||||
App.Actions.do_authorize = function()
|
||||
{
|
||||
$('#authorize-error').text('');
|
||||
App.Ajax.request('MAIN.signin', {'login':$('#authorize-login').val(), 'password':$('#authorize-login'.val())}, function(reply)
|
||||
$('#auth-error').text('');
|
||||
$('#auth-form-content').hide();
|
||||
App.Ajax.request('MAIN.signin', {'login':$('#authorize-login').val(), 'password':$('#authorize-password').val()}, function(reply)
|
||||
{
|
||||
if (reply.result) {
|
||||
if (reply.result == true) {
|
||||
location.href = '';
|
||||
}
|
||||
else {
|
||||
$('#authorize-error').text(reply.message);
|
||||
$('#auth-error').text(reply.data.error_msg);
|
||||
$('#auth-form-content').show();
|
||||
$('#auth-error').removeClass('hidden');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -49,7 +179,20 @@ App.Actions.show_subform = function(evt)
|
|||
|
||||
App.Actions.view_template_settings = function(evt)
|
||||
{
|
||||
alert('TODO');
|
||||
var elm = $(evt.target);
|
||||
var ref = elm.hasClass('tpl-item') ? elm : elm.prev('.tpl-item');
|
||||
var tpl_name = $(ref).val() || $(ref).text();
|
||||
fb.log(tpl_name);
|
||||
App.Helpers.openInnerPopup(elm, App.Env.initialParams.WEB_DOMAIN.TPL[tpl_name].DESCR || tpl_name);
|
||||
}
|
||||
|
||||
App.Actions.view_dns_template_settings = function(evt)
|
||||
{
|
||||
var elm = $(evt.target);
|
||||
var ref = elm.prev('.tpl-item');
|
||||
var tpl_name = $(ref).val() || $(ref).text();
|
||||
fb.log(tpl_name);
|
||||
App.Helpers.openInnerPopup(elm, App.Env.initialParams.DNS.TPL[tpl_name].DESCR || tpl_name);
|
||||
}
|
||||
|
||||
App.Actions.add_subrecord_dns = function(evt)
|
||||
|
@ -63,24 +206,6 @@ App.Actions.add_subrecord_dns = function(evt)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Embeds new item form
|
||||
* if exits custom method (App.Pages[ENVIRONMENT_NAME].newForm)
|
||||
* custom method will be executes instead of default one
|
||||
*/
|
||||
App.Actions.new_entry = function() {
|
||||
if ('undefined' != typeof App.Pages[App.Env.world].new_entry) {
|
||||
App.Pages[App.Env.world].new_entry();
|
||||
} else {
|
||||
var form_id = App.Constants[App.Env.world + '_FORM_ID'];
|
||||
$('#'+form_id).remove();
|
||||
var build_method = App.Env.getWorldName() + '_form';
|
||||
var tpl = App.HTML.Build[build_method]({}, form_id);
|
||||
App.Ref.CONTENT.prepend(tpl);
|
||||
App.Helpers.updateScreen();
|
||||
}
|
||||
}
|
||||
|
||||
// do_action_save
|
||||
App.Actions.save_form = function(evt) {
|
||||
var elm = $(evt.target);
|
||||
|
@ -111,10 +236,13 @@ App.Actions.save_form = function(evt) {
|
|||
}
|
||||
|
||||
// do_action_edit
|
||||
App.Actions.edit = function(evt) {
|
||||
if ('undefined' != typeof App.Pages[App.Env.world].edit) {
|
||||
App.Actions.edit = function(evt)
|
||||
{
|
||||
|
||||
if ('undefined' != typeof App.Pages[App.Env.world].edit) {
|
||||
App.Pages[App.Env.world].edit(evt);
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
var elm = $(evt.target);
|
||||
elm = elm.hasClass('row') ? elm : elm.parents('.row');
|
||||
|
||||
|
@ -123,8 +251,8 @@ App.Actions.edit = function(evt) {
|
|||
var tpl = App.HTML.Build[build_method](options);
|
||||
elm.replaceWith(tpl);
|
||||
|
||||
App.Helpers.disbleNotEditable();
|
||||
//App.Helpers.updateScreen();
|
||||
App.Helpers.disableNotEditable();
|
||||
App.Helpers.updateScreen();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -157,9 +285,7 @@ App.Actions.suspend = function(evt)
|
|||
|
||||
var options = row.find('.source').val();
|
||||
App.Ajax.request(App.Env.world+'.suspend', {spell: options}, function(reply) {
|
||||
if (reply.result) {
|
||||
//var tpl = App.Templates.get('SUSPENDED_TPL_SUSPENDED', 'general');
|
||||
//$(elm).replaceWith(tpl.finalize());
|
||||
if (reply.result) {
|
||||
App.Pages.prepareHTML();
|
||||
App.Helpers.updateScreen();
|
||||
}
|
||||
|
@ -181,9 +307,7 @@ App.Actions.unsuspend = function(evt)
|
|||
|
||||
var options = row.find('.source').val();
|
||||
App.Ajax.request(App.Env.world+'.unsuspend', {spell: options}, function(reply) {
|
||||
if (reply.result) {
|
||||
//var tpl = App.Templates.get('SUSPENDED_TPL_NOT_SUSPENDED', 'general');
|
||||
//$(elm).replaceWith(tpl.finalize());
|
||||
if (reply.result) {
|
||||
App.Pages.prepareHTML();
|
||||
App.Helpers.updateScreen();
|
||||
}
|
||||
|
@ -322,7 +446,8 @@ App.Actions.add_form_ns = function(evt)
|
|||
var tpl = App.Templates.get('NS_INPUT', 'user');
|
||||
tpl.set(':NAME', '');
|
||||
tpl.set(':NS_LABEL', 'NS');
|
||||
elm.before(tpl.finalize());
|
||||
var ref = $(elm).hasClass('form-row') ? elm : $(elm).parents('.form-row');
|
||||
$(ref).before(tpl.finalize());
|
||||
|
||||
if ((total_nses + 1) == App.Settings.NS_MAX ) { // added last NS
|
||||
$('.additional-ns-add', form).addClass('hidden');
|
||||
|
@ -337,6 +462,10 @@ App.Actions.add_form_ns = function(evt)
|
|||
|
||||
App.Actions.delete_ns = function(evt)
|
||||
{
|
||||
var sure = confirm(App.i18n.getMessage('confirm'));
|
||||
if (!sure) {
|
||||
return;
|
||||
}
|
||||
var elm = $(evt.target);
|
||||
|
||||
form = elm.parents('.form:first');
|
||||
|
@ -370,7 +499,11 @@ App.Actions.view_template_info = function(evt)
|
|||
var options = ref.find('.source').val();
|
||||
App.Ajax.request('DNS.getTemplateInfo', {spell: options}, function(reply) {
|
||||
if (reply.result) {
|
||||
App.Helpers.openInnerPopup(elm, reply.data);
|
||||
var html = '';
|
||||
$.each(reply.data, function(key) {
|
||||
html += '<li><strong>'+key+':</strong> '+reply.data[key]+'</li>';
|
||||
});
|
||||
App.Helpers.openInnerPopup(elm, '<ul>'+html+'</ul>');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -385,3 +518,39 @@ App.Actions.toggle_stats_block = function(evt)
|
|||
elm.parents('.stats-settings').find('.stats-block').addClass('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
App.Actions.exec_v_console = function(evt)
|
||||
{
|
||||
evt.preventDefault();
|
||||
App.Helpers.openInnerPopup(evt.target, 'This functionality will be available in next releases');
|
||||
}
|
||||
|
||||
App.Actions.view_profile_settings = function(evt)
|
||||
{
|
||||
evt.preventDefault();
|
||||
App.Helpers.openInnerPopup(evt.target, 'This functionality will be available in next releases');
|
||||
}
|
||||
|
||||
App.Actions.select_all = function(evt)
|
||||
{
|
||||
$('.row').addClass('checked-row')
|
||||
}
|
||||
|
||||
App.Actions.deselect_all = function(evt)
|
||||
{
|
||||
$('.row').removeClass('checked-row')
|
||||
}
|
||||
|
||||
App.Actions.delete_selected = function(evt)
|
||||
{
|
||||
var selected = $('.checked-row');
|
||||
if (selected.length == 0) {
|
||||
return App.Helpers.alert('No entry selected. Please select at least one.');
|
||||
}
|
||||
var confirmed = confirm('You are about to delete ' + selected.length + ' entrie(s). Are you sure?');
|
||||
if (!confirmed) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -4,8 +4,6 @@ window.jsonParse=function(){var r="(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE
|
|||
j){h=h.match(s);var e,c=h[0],l=false;if("{"===c)e={};else if("["===c)e=[];else{e=[];l=true}for(var b,d=[e],m=1-l,y=h.length;m<y;++m){c=h[m];var a;switch(c.charCodeAt(0)){default:a=d[0];a[b||a.length]=+c;b=void 0;break;case 34:c=c.substring(1,c.length-1);if(c.indexOf("\\")!==-1)c=c.replace(t,v);a=d[0];if(!b)if(a instanceof Array)b=a.length;else{b=c||w;break}a[b]=c;b=void 0;break;case 91:a=d[0];d.unshift(a[b||a.length]=[]);b=void 0;break;case 93:d.shift();break;case 102:a=d[0];a[b||a.length]=false;
|
||||
b=void 0;break;case 110:a=d[0];a[b||a.length]=null;b=void 0;break;case 116:a=d[0];a[b||a.length]=true;b=void 0;break;case 123:a=d[0];d.unshift(a[b||a.length]={});b=void 0;break;case 125:d.shift();break}}if(l){if(d.length!==1)throw new Error;e=e[0]}else if(d.length)throw new Error;if(j){var p=function(n,o){var f=n[o];if(f&&typeof f==="object"){var i=null;for(var g in f)if(x.call(f,g)&&f!==n){var q=p(f,g);if(q!==void 0)f[g]=q;else{i||(i=[]);i.push(g)}}if(i)for(g=i.length;--g>=0;)delete f[i[g]]}return j.call(n,
|
||||
o,f)};e=p({"":e},"")}return e}}();
|
||||
|
||||
|
||||
(function($){$.toJSON=function(o)
|
||||
{if(typeof(JSON)=='object'&&JSON.stringify)
|
||||
return JSON.stringify(o);var type=typeof(o);if(o===null)
|
||||
|
@ -85,11 +83,8 @@ var App = {
|
|||
Helpers: {},
|
||||
Filters: {},
|
||||
i18n: {},
|
||||
HTML: {
|
||||
Build: {}
|
||||
},
|
||||
View:{
|
||||
|
||||
HTML: { Build: {}},
|
||||
View:{
|
||||
// pages related views
|
||||
Pages: {
|
||||
USER: {},
|
||||
|
@ -112,7 +107,7 @@ var App = {
|
|||
CRON: {}
|
||||
},
|
||||
Cache: {
|
||||
clear: function(){} // stub method, will be used later
|
||||
clear: function() {} // stub method, will be used later
|
||||
},
|
||||
Pages: {
|
||||
USER: {},
|
||||
|
@ -124,17 +119,15 @@ var App = {
|
|||
CRON: {}
|
||||
},
|
||||
Ref: {},
|
||||
Tmp: {},
|
||||
Tmp: { AJAX_SYNCRONOUS:{} },
|
||||
Thread: {
|
||||
run: function(delay, ref)
|
||||
{
|
||||
setTimeout(function()
|
||||
{
|
||||
run: function(delay, ref) {
|
||||
setTimeout(function() {
|
||||
ref();
|
||||
}, delay*10);
|
||||
}
|
||||
},
|
||||
Settings: {},
|
||||
Settings: { VestaAbout: { version: '2-1', version_name: 'OGRE', company_email: 'support@vestacp.com', company_name: 'VestaCP' } },
|
||||
Templates: {
|
||||
Templator: null,
|
||||
Tpl: {},
|
||||
|
@ -147,7 +140,7 @@ var App = {
|
|||
// Internals
|
||||
Array.prototype.set = function(key, value)
|
||||
{
|
||||
var index = this[0][key];
|
||||
var index = this[0][key];
|
||||
this[1][index] = value;
|
||||
}
|
||||
Array.prototype.get = function(key){
|
||||
|
@ -173,8 +166,29 @@ String.prototype.wrapperize = function(key, ns)
|
|||
return tpl.finalize();
|
||||
}
|
||||
|
||||
String.prototype.trim = function()
|
||||
{
|
||||
var str = this;
|
||||
str = str.replace(/^\s+/, '');
|
||||
for (var i = str.length - 1; i >= 0; i--) {
|
||||
if (/\S/.test(str.charAt(i))) {
|
||||
str = str.substring(0, i + 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
App.Ajax.request = function(jedi_method, data, callback)
|
||||
{
|
||||
if ($.inArray(jedi_method, App.Settings.AJAX_SYNCRONOUS) != -1) {
|
||||
if (App.Tmp.AJAX_SYNCRONOUS[jedi_method] == true) {
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
App.Tmp.AJAX_SYNCRONOUS[jedi_method] = true;
|
||||
}
|
||||
}
|
||||
App.Helpers.beforeAjax(jedi_method);
|
||||
$.ajax({
|
||||
url: App.Helpers.getBackendUrl(),
|
||||
|
@ -184,22 +198,23 @@ App.Ajax.request = function(jedi_method, data, callback)
|
|||
dataType: "text",
|
||||
async: true,
|
||||
success: function(reply)
|
||||
{
|
||||
{
|
||||
if ($.inArray(jedi_method, App.Settings.AJAX_SYNCRONOUS) != -1) {
|
||||
App.Tmp.AJAX_SYNCRONOUS[jedi_method] = false;
|
||||
}
|
||||
reply = reply.replace(/\\'/gi, '');
|
||||
reply = reply.replace(/\'/gi, '');
|
||||
reply = reply.replace(/\'/gi, '');
|
||||
|
||||
reply = jsonParse(reply);
|
||||
|
||||
|
||||
if (reply.result == 'NOT_AUTHORISED') {
|
||||
$('#content').html('<center><h1 style="font-size: 18px;color:red;">Not Authorized</h1></center>');
|
||||
App.Helpers.afterAjax();
|
||||
return App.Actions.authorize();
|
||||
return App.Actions.authorize();
|
||||
}
|
||||
|
||||
//timer.start();
|
||||
callback && callback(reply);
|
||||
App.Helpers.afterAjax();
|
||||
//timer.stop(jedi_method);
|
||||
},
|
||||
error: function()
|
||||
{
|
||||
|
@ -218,16 +233,16 @@ timer.start = function()
|
|||
timer.start_time = new Date();
|
||||
}
|
||||
|
||||
timer.stop = function( msg )
|
||||
timer.stop = function(msg)
|
||||
{
|
||||
timer.stop_time = new Date();
|
||||
timer.print( msg );
|
||||
timer.print(msg);
|
||||
}
|
||||
|
||||
timer.print = function( msg )
|
||||
timer.print = function(msg)
|
||||
{
|
||||
var passed = timer.stop_time - timer.start_time;
|
||||
fb.info( (msg || '') + ': ' + passed / 1000 );
|
||||
fb.info((msg || '') + ': ' + passed / 1000);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,51 +1,40 @@
|
|||
/*App.Core.action_reflector = {
|
||||
'new_entry': App.Actions.newForm,
|
||||
'cancel_form': App.Actions.cancelForm,
|
||||
'save_form': App.Actions.saveForm,//App.Pages.IP.saveIpForm,
|
||||
'remove': App.Actions.remove,//App.Pages.IP.deleteIp,
|
||||
|
||||
'cancel_dns_form': App.Pages.DNS.closeForm,
|
||||
'save_dns_form': App.Pages.DNS.saveForm,
|
||||
|
||||
'edit': App.Actions.edit,
|
||||
'embed_subform': App.Actions.embedSubform,
|
||||
|
||||
'form_help': App.Actions.showFormHelp,
|
||||
'entry_help': App.Actions.showEntryHelp,
|
||||
|
||||
'close_popup': App.View.closePopup
|
||||
};*/
|
||||
//
|
||||
// CORE
|
||||
//
|
||||
App.Core.listen = function(){
|
||||
App.Core.listen = function()
|
||||
{
|
||||
fb.log('start listening');
|
||||
$(document).bind('click', function(evt){
|
||||
//App.Pages.IP.customListen && App.Pages.IP.customListen(evt);
|
||||
var elm = $(evt.target);
|
||||
$(document).bind('click', function(evt) {
|
||||
App.Helpers.handleItemsRegisteredInBackground(evt);
|
||||
var elm = $(evt.target);
|
||||
var action = $(elm).attr('class');
|
||||
if (!action) {
|
||||
return fb.log(':)');
|
||||
return fb.log('No action passed');
|
||||
}
|
||||
action = action.split('do_action_');
|
||||
if(action.length < 2){
|
||||
if (action.length < 2) {
|
||||
if (elm.hasClass('check-this')) {
|
||||
var ref = $(elm).parents('.row');
|
||||
ref.hasClass('checked-row') ? ref.removeClass('checked-row') : ref.addClass('checked-row');
|
||||
}
|
||||
return; // no action found attached to the dom object
|
||||
}
|
||||
try{
|
||||
// retrieve the action itself
|
||||
action_with_params = action[1].split(' ');
|
||||
action = action_with_params[0];
|
||||
params = elm.find('.prm-'+action).value || null;
|
||||
// TODO: filter params here
|
||||
// Call the action
|
||||
App.Core.__CALL__(evt, action, params);
|
||||
}catch(e){
|
||||
fb.error(e)
|
||||
}
|
||||
try {
|
||||
action_with_params = action[1].split(' ');// retrieve the action itself
|
||||
action = action_with_params[0];
|
||||
App.Core.__CALL__(evt, action);// Call the action
|
||||
}
|
||||
catch(e) {
|
||||
fb.error(e);
|
||||
}
|
||||
});
|
||||
|
||||
$(document).bind('keyup', function(evt) {
|
||||
fb.log(evt.keyCode);
|
||||
if ('undefined' != typeof App.Constants.KEY.CODED_NAME[evt.keyCode]) {
|
||||
var method_name = 'keyboard_' + App.Constants.KEY.CODED_NAME[evt.keyCode];
|
||||
App.Helpers[method_name] && App.Helpers[method_name](evt);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -53,22 +42,25 @@ App.Core.listen = function(){
|
|||
* Action caller
|
||||
* if no action registered, execution will stop
|
||||
*/
|
||||
App.Core.__CALL__ = function(evt, action, params){
|
||||
if('undefined' == typeof App.Actions[action]){
|
||||
return fb.warn('No action registered for: "'+action+'". Stop propagation');
|
||||
}else{
|
||||
return App.Actions[action](evt, params);
|
||||
App.Core.__CALL__ = function(evt, action)
|
||||
{
|
||||
if ('undefined' == typeof App.Actions[action]) {
|
||||
return alert('No action registered for: "'+action+'". Stop propagation');
|
||||
}
|
||||
else{
|
||||
return App.Actions[action](evt);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
App.Core.initMenu = function(){
|
||||
$('.section').bind('click', function(evt){
|
||||
App.Core.initMenu = function()
|
||||
{
|
||||
$('.section').bind('click', function(evt) {
|
||||
var elm = $(evt.target);
|
||||
!elm.hasClass('section') ? elm = elm.parents('.section') : -1;
|
||||
if(App.Env.world != elm.attr('id')){
|
||||
App.Env.world = elm.attr('id');
|
||||
if (App.Env.world != elm.attr('id')) {
|
||||
App.Env.world = elm.attr('id');
|
||||
App.Pages.init();
|
||||
fb.warn('Switch page to: ' + App.Env.world);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,48 @@
|
|||
App.Helpers.scrollTo = function(elm)
|
||||
App.Helpers.formatNumber = function(number, no_commas){
|
||||
no_commas = no_commas || false;
|
||||
number = number.toString().replace(/,/g, '');
|
||||
|
||||
var nStr = parseFloat(number).toFixed(2);
|
||||
fb.info(nStr);
|
||||
nStr = nStr.toString();
|
||||
nStr += '';
|
||||
x = nStr.split('.');
|
||||
x1 = x[0];
|
||||
x2 = x.length > 1 ? '.' + x[1] : '';
|
||||
if(!no_commas){
|
||||
var rgx = /(\d+)(\d{3})/;
|
||||
while (rgx.test(x1)) {
|
||||
x1 = x1.replace(rgx, '$1' + ',' + '$2');
|
||||
}
|
||||
}
|
||||
return x1 + x2;
|
||||
}
|
||||
|
||||
App.Helpers.getHumanTabName = function()
|
||||
{
|
||||
fb.log(elm);
|
||||
if (App.Env.world == 'WEB_DOMAIN') {
|
||||
return 'WEB DOMAIN';
|
||||
}
|
||||
if (App.Env.world == 'MAIL') {
|
||||
return 'MAIL DOMAIN';
|
||||
}
|
||||
if (App.Env.world == 'DNS') {
|
||||
return 'DNS DOMAIN';
|
||||
}
|
||||
if (App.Env.world == 'IP') {
|
||||
return 'IP ADDRESS';
|
||||
}
|
||||
if (App.Env.world == 'CRON') {
|
||||
return 'CRON JOB';
|
||||
}
|
||||
if (App.Env.world == 'DB') {
|
||||
return 'DATABASE';
|
||||
}
|
||||
return App.Env.world;
|
||||
}
|
||||
|
||||
App.Helpers.scrollTo = function(elm)
|
||||
{
|
||||
var scroll_to = $(elm).offset().top;
|
||||
if (scroll_to > 1000) {
|
||||
var scroll_time = 300;
|
||||
|
@ -8,9 +50,7 @@ App.Helpers.scrollTo = function(elm)
|
|||
else {
|
||||
var scroll_time = 550;
|
||||
}
|
||||
$('html, body').animate({
|
||||
'scrollTop': scroll_to
|
||||
}, scroll_time);
|
||||
$('html, body').animate({ 'scrollTop': scroll_to }, scroll_time);
|
||||
}
|
||||
|
||||
App.Helpers.getMbHumanMeasure = function(val)
|
||||
|
@ -31,6 +71,8 @@ App.Helpers.getMbHuman = function(val, only_measure)
|
|||
var terabyte = gigabyte * 1024;
|
||||
var precision = 0;
|
||||
|
||||
|
||||
return only_measure ? 'MB' : (bytes / megabyte).toFixed(precision);
|
||||
/*if ((bytes >= 0) && (bytes < kilobyte)) {
|
||||
return bytes + ' B';
|
||||
|
||||
|
@ -53,36 +95,21 @@ App.Helpers.getMbHuman = function(val, only_measure)
|
|||
}
|
||||
|
||||
App.Helpers.getFirst = function(obj)
|
||||
{
|
||||
try{ // TODO: remove try / catch
|
||||
var first = {};
|
||||
var key = App.Helpers.getFirstKey(obj);
|
||||
first[key] = obj[key];
|
||||
return first;
|
||||
}
|
||||
catch(e){
|
||||
fb.error(e);
|
||||
}
|
||||
|
||||
return false;
|
||||
{
|
||||
var first = {};
|
||||
var key = App.Helpers.getFirstKey(obj);
|
||||
first[key] = obj[key];
|
||||
return first;
|
||||
}
|
||||
|
||||
App.Helpers.getFirstKey = function(obj)
|
||||
{
|
||||
try{ // TODO: remove try / catch
|
||||
for (key in obj) break;
|
||||
return key;
|
||||
}
|
||||
catch(e){
|
||||
fb.error(e);
|
||||
}
|
||||
|
||||
return false;
|
||||
{
|
||||
for (key in obj) break;
|
||||
return key;
|
||||
}
|
||||
|
||||
App.Helpers.updateInitial = function()
|
||||
{
|
||||
// TODO: need api method
|
||||
{
|
||||
$.each(App.Env.initialParams.totals, function(key) {
|
||||
var item = App.Env.initialParams.totals[key];
|
||||
var expr_id = '#'+key;
|
||||
|
@ -99,6 +126,8 @@ App.Helpers.updateInitial = function()
|
|||
}
|
||||
}
|
||||
});
|
||||
$('#user-name').html(App.Env.initialParams.PROFILE.uid);
|
||||
$('#page').removeClass('hidden');
|
||||
}
|
||||
|
||||
App.Helpers.beforeAjax = function(jedi_method)
|
||||
|
@ -137,7 +166,7 @@ App.Helpers.showLoading = function()
|
|||
App.Helpers.getFirstValue = function(obj)
|
||||
{
|
||||
var first = '';
|
||||
$.each(obj, function(key, i){
|
||||
$.each(obj, function(key, i) {
|
||||
return first = obj[key];
|
||||
});
|
||||
|
||||
|
@ -145,15 +174,12 @@ App.Helpers.getFirstValue = function(obj)
|
|||
}
|
||||
|
||||
App.Helpers.evalJSON = function(str)
|
||||
{
|
||||
/*str = str.replace(/\\'/gi, '');
|
||||
str = str.replace(/\'/gi, '');
|
||||
fb.warn(str);*/
|
||||
{
|
||||
return $.parseJSON(str);
|
||||
}
|
||||
|
||||
App.Helpers.toJSON = function(object)
|
||||
{
|
||||
{
|
||||
return ($.toJSON(object).replace(/\\'/gi, ''));
|
||||
}
|
||||
|
||||
|
@ -170,10 +196,10 @@ App.Helpers.markBrowserDetails = function()
|
|||
{
|
||||
var b = App.Env.BROWSER;
|
||||
var classes = [
|
||||
b.type.toLowerCase(),
|
||||
b.type.toLowerCase() + b.version,
|
||||
b.os.toLowerCase()
|
||||
];
|
||||
b.type.toLowerCase(),
|
||||
b.type.toLowerCase() + b.version,
|
||||
b.os.toLowerCase()
|
||||
];
|
||||
$(document.body).addClass(classes.join(' '));
|
||||
}
|
||||
|
||||
|
@ -214,14 +240,13 @@ App.Helpers.getFormValuesFromElement = function(ref)
|
|||
|
||||
App.Helpers.updateScreen = function()
|
||||
{
|
||||
//Custom.init();
|
||||
|
||||
App.Ajax.request('MAIN.getInitial', {}, function(reply){
|
||||
App.Env.initialParams = reply.data;
|
||||
App.Helpers.updateInitial();
|
||||
});
|
||||
//$(document.body).find('select').each(function(i, o){
|
||||
// $(o).selectbox();
|
||||
//});
|
||||
$('.row:first').addClass('first-row');
|
||||
Custom.init();
|
||||
}
|
||||
|
||||
App.Helpers.alert = function(msg)
|
||||
|
@ -231,18 +256,12 @@ App.Helpers.alert = function(msg)
|
|||
|
||||
App.Helpers.isEmpty = function(o)
|
||||
{
|
||||
return '({})' == o.toSource() || '[]' == o.toSource();
|
||||
return jQuery.isEmptyObject(o);
|
||||
}
|
||||
|
||||
App.Helpers.liveValidate = function()
|
||||
{
|
||||
//return;
|
||||
$('input').live('blur', function(evt)
|
||||
{
|
||||
fb.log('BLUR');
|
||||
var elm = $(evt.target);
|
||||
fb.log(elm.attr('TAGNAME'));
|
||||
});
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
App.Helpers.generatePassword = function()
|
||||
|
@ -284,28 +303,15 @@ App.Helpers.closeInnerPopup = function(evt)
|
|||
|
||||
App.Helpers.getUploadUrl = function()
|
||||
{
|
||||
var url_parts = location.href.split('#');
|
||||
if (url_parts.length > 1) {
|
||||
var tab = url_parts[url_parts.length - 1];
|
||||
if ($.inArray(tab, App.Constants.TABS) != -1) {
|
||||
App.Tmp.loadTAB = tab;
|
||||
}
|
||||
}
|
||||
|
||||
var url_parts = location.href.split('?', 1);
|
||||
var url = url_parts[0];
|
||||
url_parts = url.split('/');
|
||||
if (url_parts[url_parts.length -1] == 'index.html') {
|
||||
url_parts[url_parts.length -1] = 'vesta/upload.php';
|
||||
}
|
||||
else {
|
||||
url_parts.push('vesta/upload.php');
|
||||
}
|
||||
|
||||
return url_parts.join('/');
|
||||
return App.Helpers.generateUrl('vesta/upload.php');
|
||||
}
|
||||
|
||||
App.Helpers.getBackendUrl = function()
|
||||
{
|
||||
return App.Helpers.generateUrl('dispatch.php');
|
||||
}
|
||||
|
||||
App.Helpers.generateUrl = function(to_file)
|
||||
{
|
||||
var url_parts = location.href.split('#');
|
||||
if (url_parts.length > 1) {
|
||||
|
@ -319,16 +325,16 @@ App.Helpers.getBackendUrl = function()
|
|||
var url = url_parts[0];
|
||||
url_parts = url.split('/');
|
||||
if (url_parts[url_parts.length -1] == 'index.html') {
|
||||
url_parts[url_parts.length -1] = 'dispatch.php';
|
||||
url_parts[url_parts.length -1] = to_file;
|
||||
}
|
||||
else {
|
||||
url_parts.push('dispatch.php');
|
||||
url_parts.push(to_file);
|
||||
}
|
||||
|
||||
return url_parts.join('/');
|
||||
return url_parts.join('/').replace('#', '');
|
||||
}
|
||||
|
||||
App.Helpers.disbleNotEditable = function()
|
||||
App.Helpers.disableNotEditable = function()
|
||||
{
|
||||
if ('undefined' == typeof App.Settings.Imutable[App.Env.world]) {
|
||||
return false;
|
||||
|
@ -345,3 +351,77 @@ App.Helpers.disbleNotEditable = function()
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
App.Helpers.handleItemsRegisteredInBackground = function(evt)
|
||||
{
|
||||
// complex selects
|
||||
if (!$(evt.target).hasClass('c-s-opt')) { // complex select option
|
||||
$('.complex-select-content').addClass('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// HELPERS
|
||||
//
|
||||
App.Helpers.keyboard_ESC = function()
|
||||
{
|
||||
$('.complex-select-content').addClass('hidden');
|
||||
App.Tmp.focusedComplexSelect = null;
|
||||
}
|
||||
|
||||
App.Helpers.keyboard_ENTER = function()
|
||||
{
|
||||
if (null != App.Tmp.focusedComplexSelectInput) {
|
||||
var val = App.Tmp.focusedComplexSelectInput.find('.c-s-value').val();
|
||||
App.Tmp.focusedComplexSelect.find('.c-s-title').text(val);
|
||||
App.Tmp.focusedComplexSelect.find('.c-s-value-ref').val(val);
|
||||
$('.complex-select-content').addClass('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
App.Helpers.keyboard_DOWN = function(evt)
|
||||
{
|
||||
if (null != App.Tmp.focusedComplexSelect) {
|
||||
App.Tmp.focusedComplexSelect.find('.complex-select-content').removeClass('hidden');
|
||||
$('.s-c-highlighted').removeClass('s-c-highlighted');
|
||||
if (null == App.Tmp.focusedComplexSelectInput) {
|
||||
App.Tmp.focusedComplexSelectInput = App.Tmp.focusedComplexSelect.find('.cust-sel-option:first');
|
||||
App.Tmp.focusedComplexSelectInput.addClass('s-c-highlighted');
|
||||
}
|
||||
else {
|
||||
var ref = App.Tmp.focusedComplexSelectInput.next();
|
||||
App.Tmp.focusedComplexSelectInput = ref;
|
||||
if (ref.length == 1) {
|
||||
ref.addClass('s-c-highlighted');
|
||||
}
|
||||
else {
|
||||
App.Tmp.focusedComplexSelectInput = App.Tmp.focusedComplexSelect.find('.cust-sel-option:first');
|
||||
App.Tmp.focusedComplexSelectInput.addClass('s-c-highlighted');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
App.Helpers.keyboard_UP = function(evt)
|
||||
{
|
||||
if (null != App.Tmp.focusedComplexSelect) {
|
||||
App.Tmp.focusedComplexSelect.find('.complex-select-content').removeClass('hidden');
|
||||
$('.s-c-highlighted').removeClass('s-c-highlighted');
|
||||
if (null == App.Tmp.focusedComplexSelectInput) {
|
||||
App.Tmp.focusedComplexSelectInput = App.Tmp.focusedComplexSelect.find('.cust-sel-option:last');
|
||||
App.Tmp.focusedComplexSelectInput.addClass('s-c-highlighted');
|
||||
}
|
||||
else {
|
||||
var ref = App.Tmp.focusedComplexSelectInput.prev();
|
||||
App.Tmp.focusedComplexSelectInput = ref;
|
||||
if (ref.length == 1) {
|
||||
ref.addClass('s-c-highlighted');
|
||||
}
|
||||
else {
|
||||
App.Tmp.focusedComplexSelectInput = App.Tmp.focusedComplexSelect.find('.cust-sel-option:last');
|
||||
App.Tmp.focusedComplexSelectInput.addClass('s-c-highlighted');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
178
web/js/html.js
|
@ -95,7 +95,7 @@ App.HTML.Build.dns_form = function(options, id)
|
|||
}
|
||||
|
||||
App.HTML.Build.ip_form = function(options, id)
|
||||
{try{
|
||||
{
|
||||
if('undefined' == typeof App.Env.initialParams) {
|
||||
return alert('PLease wait a bit. Some background processes are not yet executed. Thank you for patience.');
|
||||
}
|
||||
|
@ -118,7 +118,7 @@ App.HTML.Build.ip_form = function(options, id)
|
|||
tpl.set(':NAME', options.NAME || '');
|
||||
|
||||
tpl = App.HTML.Build.ip_selects(tpl, options);
|
||||
}catch(e){fb.error(e);}
|
||||
|
||||
return tpl.finalize();
|
||||
}
|
||||
|
||||
|
@ -162,31 +162,39 @@ App.HTML.Build.dns_entry = function(o, is_new)
|
|||
var now = new Date();
|
||||
tpl.set(':DATE', now.format("d.mm.yyyy"));
|
||||
}
|
||||
|
||||
tpl.set(':TPL_VAL', o.TPL);
|
||||
/*if (App.Constants.SUSPENDED_YES == o.SUSPEND) {
|
||||
var sub_tpl = App.Templates.get('SUSPENDED_TPL_NOT_SUSPENDED', 'general');
|
||||
}
|
||||
else {
|
||||
var sub_tpl = App.Templates.get('SUSPENDED_TPL_SUSPENDED', 'general');
|
||||
}*/
|
||||
|
||||
|
||||
tpl.set(':SUSPENDED_TPL', '');
|
||||
|
||||
return tpl.finalize();
|
||||
}
|
||||
|
||||
App.HTML.Build.user_entry = function(o, key)
|
||||
{
|
||||
{
|
||||
var processed_data = {
|
||||
'NICKNAME' : key,
|
||||
'U_DISK_PERCENTAGE' : o.U_DISK > 0 ? o.U_DISK / o.DISK_QUOTA * 100 : 0.01,
|
||||
'U_BANDWIDTH_PERCENTAGE': o.U_BANDWIDTH > 0 ? o.U_BANDWIDTH / o.BANDWIDTH * 100 : 0.01,
|
||||
'U_DISK_PERCENTAGE' : o.U_DISK > 0 ? o.U_DISK / o.DISK_QUOTA * 100 : 1,
|
||||
'U_BANDWIDTH_PERCENTAGE': o.U_BANDWIDTH > 0 ? o.U_BANDWIDTH / o.BANDWIDTH * 100 : 1,
|
||||
'U_DISK' : o.U_DISK == 0 ? 1 : App.Helpers.formatNumber(o.U_DISK),
|
||||
'U_BANDWIDTH' : o.U_BANDWIDTH == 0 ? 1 : App.Helpers.formatNumber(o.U_BANDWIDTH),
|
||||
'DISK_QUOTA_MEASURE' : App.Helpers.getMbHumanMeasure(o.DISK_QUOTA),
|
||||
'BANDWIDTH_MEASURE' : App.Helpers.getMbHumanMeasure(o.BANDWIDTH),
|
||||
'BANDWIDTH' : App.Helpers.getMbHuman(o.BANDWIDTH),
|
||||
'DISK_QUOTA' : App.Helpers.getMbHuman(o.DISK_QUOTA)
|
||||
};
|
||||
var o = $.extend(o, processed_data);
|
||||
o.U_DISK_PERCENTAGE_2 = o.U_DISK_PERCENTAGE;
|
||||
o.U_DISK_PERCENTAGE_3 = o.U_DISK_PERCENTAGE;
|
||||
o.BANDWIDTH_MEASURE_2 = o.BANDWIDTH_MEASURE;
|
||||
o.DISK_QUOTA_MEASURE_2 = o.DISK_QUOTA_MEASURE;
|
||||
o.U_BANDWIDTH_PERCENTAGE_2 = o.U_BANDWIDTH_PERCENTAGE;
|
||||
o.U_BANDWIDTH_PERCENTAGE_3 = o.U_BANDWIDTH_PERCENTAGE;
|
||||
var tpl = App.Templates.get('ENTRY', 'user');
|
||||
tpl = App.HTML.setTplKeys(tpl, o);
|
||||
|
||||
|
@ -197,15 +205,18 @@ App.HTML.Build.user_entry = function(o, key)
|
|||
|
||||
$([1,2,3,4,5,6,7,8]).each(function(i, index)
|
||||
{
|
||||
if (o['NS'+index].trim() != '') {
|
||||
var tpl_ns = App.Templates.get('NS_RECORD', 'user');
|
||||
tpl_ns.set(':NAME', o['NS'+index]);
|
||||
var tpl_finalized = tpl_ns.finalize();
|
||||
ns_full[ns_full.length++] = tpl_finalized;
|
||||
if (i < App.Settings.USER_VISIBLE_NS) {
|
||||
ns[ns.length++] = tpl_finalized;
|
||||
var key = 'NS'+index;
|
||||
if ('undefined' != typeof o[key]) {
|
||||
if (o[key].trim() != '') {
|
||||
var tpl_ns = App.Templates.get('NS_RECORD', 'user');
|
||||
tpl_ns.set(':NAME', o[key]);
|
||||
var tpl_finalized = tpl_ns.finalize();
|
||||
ns_full[ns_full.length++] = tpl_finalized;
|
||||
if (i < App.Settings.USER_VISIBLE_NS) {
|
||||
ns[ns.length++] = tpl_finalized;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (ns_full.length <= App.Settings.USER_VISIBLE_NS) {
|
||||
|
@ -219,7 +230,36 @@ App.HTML.Build.user_entry = function(o, key)
|
|||
tpl.set(':NS', ns_custom.finalize());
|
||||
}
|
||||
|
||||
tpl = App.HTML.Build.user_web_tpl(tpl, o);
|
||||
tpl.set(':REPORTS_ENABLED', o.REPORTS_ENABLED == 'yes' ? 'enabled' : 'DISABLED');
|
||||
if (o.U_DISK_PERCENTAGE > 100) {
|
||||
var tpl_over = App.Templates.get('over_bar', 'general');
|
||||
var difference = parseInt(o.U_DISK_PERCENTAGE, 10) - 100;
|
||||
tpl_over.set(':OVER_PERCENTS', difference);
|
||||
tpl_over.set(':OVER_PERCENTS_2', difference);
|
||||
tpl.set(':OVER_BAR', tpl_over.finalize());
|
||||
tpl.set(':U_DISK_PERCENTAGE_3', 100);
|
||||
tpl.set(':OVER_DRAFT_VALUE', 'overdraft');
|
||||
}
|
||||
else {
|
||||
tpl.set(':OVER_BAR', '');
|
||||
tpl.set(':OVER_DRAFT_VALUE', '');
|
||||
}
|
||||
// OVER BANDWIDTH
|
||||
if (o.U_BANDWIDTH_PERCENTAGE > 100) {
|
||||
var tpl_over = App.Templates.get('over_bar', 'general');
|
||||
var difference = parseInt(o.U_BANDWIDTH_PERCENTAGE, 10) - 100;
|
||||
tpl_over.set(':OVER_PERCENTS', difference);
|
||||
tpl_over.set(':OVER_PERCENTS_2', difference);
|
||||
tpl.set(':OVER_BAR_2', tpl_over.finalize());
|
||||
tpl.set(':U_BANDWIDTH_PERCENTAGE_3', 100);
|
||||
tpl.set(':OVER_DRAFT_VALUE_2', 'overdraft');
|
||||
}
|
||||
else {
|
||||
tpl.set(':OVER_BAR_2', '');
|
||||
tpl.set(':OVER_DRAFT_VALUE_2', '');
|
||||
}
|
||||
|
||||
|
||||
return tpl.finalize();
|
||||
}
|
||||
|
@ -249,23 +289,28 @@ App.HTML.Build.user_form = function(options, id)
|
|||
|
||||
options = !App.Helpers.isEmpty(options) ? options : App.Empty.USER;
|
||||
|
||||
// NS
|
||||
var ns = [];
|
||||
$([3,4,5,6,7,8]).each(function(i, index)
|
||||
{
|
||||
if (options['NS'+index].trim() != '') {
|
||||
var tpl_ns = App.Templates.get('NS_INPUT', 'user');
|
||||
tpl_ns.set(':NS_LABEL', 'NS #' + (index));
|
||||
tpl_ns.set(':NAME', options['NS'+index]);
|
||||
ns[ns.length++] = tpl_ns.finalize();
|
||||
}
|
||||
});
|
||||
ns[ns.length++] = App.Templates.get('PLUS_ONE_NS', 'user').finalize();
|
||||
|
||||
tpl.set(':NS', ns.done());
|
||||
|
||||
if (in_edit == true) {
|
||||
options.PASSWORD = App.Settings.PASSWORD_IMMUTE;
|
||||
}
|
||||
// NS
|
||||
var ns = [];
|
||||
$([3,4,5,6,7,8]).each(function(i, index)
|
||||
{
|
||||
if (options['NS'+index].trim() != '') {
|
||||
var tpl_ns = App.Templates.get('NS_INPUT', 'user');
|
||||
tpl_ns.set(':NS_LABEL', 'NS #' + (index));
|
||||
tpl_ns.set(':NAME', options['NS'+index]);
|
||||
ns[ns.length++] = tpl_ns.finalize();
|
||||
}
|
||||
});
|
||||
ns[ns.length++] = App.Templates.get('PLUS_ONE_NS', 'user').finalize();
|
||||
|
||||
tpl.set(':NS', ns.done());
|
||||
}
|
||||
else {
|
||||
tpl.set(':NS', '');
|
||||
}
|
||||
tpl = App.HTML.setTplKeys(tpl, options, true);
|
||||
tpl = App.HTML.Build.user_selects(tpl, options);
|
||||
|
||||
|
@ -276,6 +321,10 @@ App.HTML.Build.user_form = function(options, id)
|
|||
tpl.set(':CHECKED', '');
|
||||
}
|
||||
|
||||
if (!in_edit) {
|
||||
tpl.set(':REPORTS_ENABLED_EDITABLE', 'hidden');
|
||||
}
|
||||
|
||||
return tpl.finalize();
|
||||
}
|
||||
|
||||
|
@ -303,6 +352,9 @@ App.HTML.Build.web_domain_entry = function(o, key)
|
|||
tpl.set(':STATS_AUTH', '');
|
||||
}
|
||||
|
||||
tpl.set(':DISK', App.Env.initialParams.PROFILE.BANDWIDTH);
|
||||
tpl.set(':BANDWIDTH', App.Env.initialParams.PROFILE.DISK);
|
||||
|
||||
return tpl.finalize();
|
||||
}
|
||||
|
||||
|
@ -452,7 +504,7 @@ App.HTML.Build.cron_entry = function(o, key)
|
|||
|
||||
|
||||
App.HTML.Build.cron_form = function(options, id)
|
||||
{try{
|
||||
{
|
||||
if('undefined' == typeof App.Env.initialParams) {
|
||||
return alert('PLease wait a bit. Some background processes are not yet executed. Thank you for patience.');
|
||||
}
|
||||
|
@ -470,15 +522,8 @@ App.HTML.Build.cron_form = function(options, id)
|
|||
}
|
||||
|
||||
options = !App.Helpers.isEmpty(options) ? options : {DAY:'', MONTH: '', WDAY:'',HOUR:'',CMD:'',MIN:''};
|
||||
tpl = App.HTML.setTplKeys(tpl, options);
|
||||
tpl = App.HTML.setTplKeys(tpl, options);
|
||||
|
||||
/*tpl.set(':id', id || '');
|
||||
tpl.set(':IP_ADDRESS', options.IP_ADDRESS || '');
|
||||
tpl.set(':NETMASK', options.NETMASK || '');
|
||||
tpl.set(':NAME', options.NAME || '');*/
|
||||
|
||||
//tpl = App.HTML.Build.ip_selects(tpl, options);
|
||||
}catch(e){fb.error(e);}
|
||||
return tpl.finalize();
|
||||
}
|
||||
|
||||
|
@ -502,7 +547,6 @@ App.HTML.Build.dns_subrecord = function(record)
|
|||
tpl.set(':RECORD', record.RECORD || '');
|
||||
tpl.set(':RECORD_VALUE', record.RECORD_VALUE || '');
|
||||
tpl.set(':RECORD_ID', record.RECORD_ID || '');
|
||||
//tpl.set(':RECORD_TYPE_VALUE', '');
|
||||
tpl.set(':RECORD_TYPE', App.HTML.Build.options(App.Env.initialParams.DNS.record.RECORD_TYPE, (record.RECORD_TYPE || -1)));
|
||||
|
||||
return tpl;
|
||||
|
@ -612,8 +656,11 @@ App.HTML.Build.dns_selects = function(tpl, options)
|
|||
{
|
||||
try {
|
||||
// TPL
|
||||
var obj = App.Env.initialParams.DNS.TPL;
|
||||
var opts = App.HTML.Build.options(obj, options.TPL);
|
||||
var obj = {};
|
||||
$.each(App.Env.initialParams.DNS.TPL, function(key) {
|
||||
obj[key] = key;
|
||||
});
|
||||
var opts = App.HTML.Build.options(obj, options.PACKAGE);
|
||||
tpl.set(':TPL', opts);
|
||||
tpl.set(':TPL_DEFAULT_VALUE', options.TPL || App.Helpers.getFirstKey(obj));
|
||||
}
|
||||
|
@ -632,18 +679,19 @@ App.HTML.Build.web_domain_selects = function(tpl, options)
|
|||
var opts = App.HTML.Build.options(obj, options.IP);
|
||||
tpl.set(':IP_OPTIONS', opts);
|
||||
|
||||
// TPL
|
||||
var obj = App.Env.initialParams.WEB_DOMAIN.TPL;
|
||||
// TPL
|
||||
var obj = {};
|
||||
$.each(App.Env.initialParams.WEB_DOMAIN.TPL, function(key) {
|
||||
obj[key] = key;
|
||||
});
|
||||
//var obj = App.Env.initialParams.WEB_DOMAIN.TPL;
|
||||
var opts = App.HTML.Build.options(obj, options.TPL);
|
||||
tpl.set(':TPL_OPTIONS', opts);
|
||||
|
||||
// TPL
|
||||
// STAT
|
||||
var obj = App.Env.initialParams.WEB_DOMAIN.STAT;
|
||||
var opts = App.HTML.Build.options(obj, options.STAT);
|
||||
tpl.set(':STAT_OPTIONS', opts);
|
||||
|
||||
|
||||
//<input type="checkbox" name="STATS" ~!:stats_checked~!="" value="~!:STATS~!" class="not-styled">\
|
||||
tpl.set(':STAT_OPTIONS', opts);
|
||||
}
|
||||
catch (e) {
|
||||
return tpl;
|
||||
|
@ -652,6 +700,38 @@ App.HTML.Build.web_domain_selects = function(tpl, options)
|
|||
return tpl;
|
||||
}
|
||||
|
||||
|
||||
App.HTML.Build.user_web_tpl = function(tpl, o)
|
||||
{
|
||||
var wt = [];
|
||||
var wt_full = [];
|
||||
var templates = o.WEB_TPL;
|
||||
templates = templates.split(',');
|
||||
if (templates.length == 0) {
|
||||
templates = templates.split(' ');
|
||||
}
|
||||
|
||||
$(templates).each(function(i, web_tpl) {
|
||||
var tpl_wt = App.Templates.get('WEB_TPL', 'user');
|
||||
tpl_wt.set(':NAME', web_tpl);
|
||||
var tpl_finalized = tpl_wt.finalize();
|
||||
wt_full[wt_full.length++] = tpl_finalized;
|
||||
if (i < App.Settings.USER_VISIBLE_WEB_TPL) {
|
||||
wt[wt.length++] = tpl_finalized;
|
||||
}
|
||||
});
|
||||
|
||||
if (templates.length <= App.Settings.USER_VISIBLE_NS) {
|
||||
tpl.set(':WEB_TPL', wt.done());
|
||||
}
|
||||
else {
|
||||
var wt_custom = App.Templates.get('WEB_TPL_MINIMIZED', 'user');
|
||||
wt_custom.set(':WEB_TPL_MINI', wt.done());
|
||||
wt_custom.set(':WEB_TPL_FULL', wt_full.done());
|
||||
wt_custom.set(':MORE_NUMBER', Math.abs(App.Settings.USER_VISIBLE_NS - wt_full.length));
|
||||
tpl.set(':WEB_TPL', wt_custom.finalize());
|
||||
}
|
||||
|
||||
return tpl;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,132 +0,0 @@
|
|||
10
|
||||
|
||||
dir
|
||||
86
|
||||
svn://svn.vestacp.com/vesta/trunk/web/js/lib
|
||||
svn://svn.vestacp.com/vesta
|
||||
|
||||
|
||||
|
||||
2011-05-21T18:39:29.042444Z
|
||||
76
|
||||
twi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
32c52990-e6da-4f1f-8224-85171b9c7084
|
||||
|
||||
custom-form-elements.js
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2011-05-21T16:20:27.000000Z
|
||||
c32b7ce65d7f5916a3a7ad767bbeeac8
|
||||
2011-05-21T17:53:21.905711Z
|
||||
75
|
||||
twi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5866
|
||||
|
||||
jquery-ui-1.8.13.custom.min.js
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2011-05-21T17:06:36.000000Z
|
||||
305afec5286e0380016fda3c0afa88f3
|
||||
2011-05-21T18:39:29.042444Z
|
||||
76
|
||||
twi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
41841
|
||||
|
||||
jquery-1.4.4.min.js
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2011-01-12T10:13:30.000000Z
|
||||
73a9c334c5ca71d70d092b42064f6476
|
||||
2011-01-12T11:14:22.700688Z
|
||||
11
|
||||
twi
|
||||
|
||||
popup.js
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2011-01-12T10:13:30.000000Z
|
||||
03b53e40755b05328a0c2cfe7174c0e0
|
||||
2011-01-12T11:14:22.700688Z
|
||||
11
|
||||
twi
|
||||
|
||||
browser.js
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2011-01-12T11:32:02.000000Z
|
||||
99d606a8337f5ba58bcee7729fa08676
|
||||
2011-01-12T12:31:57.745881Z
|
||||
21
|
||||
twi
|
||||
|
|
@ -1,396 +0,0 @@
|
|||
/**
|
||||
* jQBrowser v0.2 - Extend jQuery's browser detection capabilities
|
||||
* * http://davecardwell.co.uk/javascript/jquery/plugins/jquery-browserdetect/0.2/
|
||||
*
|
||||
* Dave Cardwell <http://davecardwell.co.uk/>
|
||||
*
|
||||
* Built on the shoulders of giants:
|
||||
* * John Resig <http://jquery.com/>
|
||||
* * Peter-Paul Koch <http://www.quirksmode.org/?/js/detect.html>
|
||||
*
|
||||
*
|
||||
* Copyright (c) 2006 Dave Cardwell, dual licensed under the MIT and GPL
|
||||
* licenses:
|
||||
* * http://www.opensource.org/licenses/mit-license.php
|
||||
* * http://www.gnu.org/licenses/gpl.txt
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* For the latest version of this plugin, and a discussion of its usage and
|
||||
* implementation, visit:
|
||||
* * http://davecardwell.co.uk/javascript/jquery/plugins/jquery-browserdetect/
|
||||
*/
|
||||
|
||||
new function() {
|
||||
/**
|
||||
* The following functions and attributes form the Public interface of the
|
||||
* jQBrowser plugin, accessed externally through the $.browser object.
|
||||
* See the relevant function definition later in the source for further
|
||||
* information.
|
||||
*
|
||||
* $.browser.browser()
|
||||
* $.browser.version.number()
|
||||
* $.browser.version.string()
|
||||
* $.browser.OS()
|
||||
*
|
||||
* $.browser.aol()
|
||||
* $.browser.camino()
|
||||
* $.browser.firefox()
|
||||
* $.browser.flock()
|
||||
* $.browser.icab()
|
||||
* $.browser.konqueror()
|
||||
* $.browser.mozilla()
|
||||
* $.browser.msie()
|
||||
* $.browser.netscape()
|
||||
* $.browser.opera()
|
||||
* $.browser.safari()
|
||||
*
|
||||
* $.browser.linux()
|
||||
* $.browser.mac()
|
||||
* $.browser.win()
|
||||
*/
|
||||
var Public = {
|
||||
// The current browser, its version as a number or a string, and the
|
||||
// operating system its running on.
|
||||
'browser': function() {
|
||||
return Private.browser;
|
||||
},
|
||||
'version': {
|
||||
'number': function() {
|
||||
return Math.floor(Private.version.number);
|
||||
},
|
||||
'string': function() {
|
||||
return Private.version.string;
|
||||
}
|
||||
},
|
||||
'OS': function() {
|
||||
return Private.OS;
|
||||
},
|
||||
|
||||
// A boolean value indicating whether or not the given browser was
|
||||
// detected.
|
||||
'chrome': function() {
|
||||
return Private.chrome;
|
||||
},
|
||||
'aol': function() {
|
||||
return Private.aol;
|
||||
},
|
||||
'camino': function() {
|
||||
return Private.camino;
|
||||
},
|
||||
'firefox': function() {
|
||||
return Private.firefox;
|
||||
},
|
||||
'flock': function() {
|
||||
return Private.flock;
|
||||
},
|
||||
'icab': function() {
|
||||
return Private.icab;
|
||||
},
|
||||
'konqueror': function() {
|
||||
return Private.konqueror;
|
||||
},
|
||||
'mozilla': function() {
|
||||
return Private.mozilla;
|
||||
},
|
||||
'msie': function() {
|
||||
return Private.msie;
|
||||
},
|
||||
'netscape': function() {
|
||||
return Private.netscape;
|
||||
},
|
||||
'opera': function() {
|
||||
return Private.opera;
|
||||
},
|
||||
'safari': function() {
|
||||
return Private.safari;
|
||||
},
|
||||
|
||||
// A boolean value indicating whether or not the given OS was
|
||||
// detected.
|
||||
'linux': function() {
|
||||
return Private.linux;
|
||||
},
|
||||
'mac': function() {
|
||||
return Private.mac;
|
||||
},
|
||||
'win': function() {
|
||||
return Private.win;
|
||||
}
|
||||
};
|
||||
|
||||
// Allow external access to the 'Public' interface through the $.browser
|
||||
// object.
|
||||
$.browser = Public;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The following functions and attributes form the internal methods and
|
||||
* state of the jQBrowser plugin. See the relevant function definition
|
||||
* later in the source for further information.
|
||||
*
|
||||
* Private.browser
|
||||
* Private.version
|
||||
* Private.OS
|
||||
*
|
||||
* Private.aol
|
||||
* Private.camino
|
||||
* Private.firefox
|
||||
* Private.flock
|
||||
* Private.icab
|
||||
* Private.konqueror
|
||||
* Private.mozilla
|
||||
* Private.msie
|
||||
* Private.netscape
|
||||
* Private.opera
|
||||
* Private.safari
|
||||
*
|
||||
* Private.linux
|
||||
* Private.mac
|
||||
* Private.win
|
||||
*/
|
||||
var Private = {
|
||||
// Initially set to 'Unknown', if detected each of these properties will
|
||||
// be updated.
|
||||
'browser': 'Unknown',
|
||||
'version': {
|
||||
'number': undefined,
|
||||
'string': 'Unknown'
|
||||
},
|
||||
'OS': 'Unknown',
|
||||
|
||||
// Initially set to false, if detected one of the following browsers
|
||||
// will be updated.
|
||||
'chrome': false,
|
||||
'aol': false,
|
||||
'camino': false,
|
||||
'firefox': false,
|
||||
'flock': false,
|
||||
'icab': false,
|
||||
'konqueror': false,
|
||||
'mozilla': false,
|
||||
'msie': false,
|
||||
'netscape': false,
|
||||
'opera': false,
|
||||
'safari': false,
|
||||
|
||||
// Initially set to false, if detected one of the following operating
|
||||
// systems will be updated.
|
||||
'linux': false,
|
||||
'mac': false,
|
||||
'win': false
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Loop over the items in 'data' trying to find a browser match with the
|
||||
* test in data[i].browser(). Once found, attempt to determine the
|
||||
* browser version.
|
||||
*
|
||||
* 'name': A string containing the full name of the browser.
|
||||
* 'identifier': By default this is a lowercase version of 'name', but
|
||||
* this can be overwritten by explicitly defining an
|
||||
* 'identifier'.
|
||||
* 'browser': A function that returns a boolean value indicating
|
||||
* whether or not the given browser is detected.
|
||||
* 'version': An optional function that overwrites the default version
|
||||
* testing. Must return the result of a .match().
|
||||
*
|
||||
* Please note that the order of the data array is important, as some
|
||||
* browsers contain details of others in their navigator.userAgent string.
|
||||
* For example, Flock's contains 'Firefox' so much come before Firefox's
|
||||
* test to avoid false positives.
|
||||
*/
|
||||
for( var i = 0, // counter
|
||||
ua = navigator.userAgent, // the navigator's user agent string
|
||||
ve = navigator.vendor, // the navigator's vendor string
|
||||
data = [ // browser tests and data
|
||||
{ // Safari <http://www.apple.com/safari/>
|
||||
'name': 'Chrome',
|
||||
'browser': function() {
|
||||
return /Google/.test(ve)
|
||||
}
|
||||
},
|
||||
{ // Safari <http://www.apple.com/safari/>
|
||||
'name': 'Safari',
|
||||
'browser': function() {
|
||||
return /Apple/.test(ve)
|
||||
}
|
||||
},
|
||||
{ // Opera <http://www.opera.com/>
|
||||
'name': 'Opera',
|
||||
'browser': function() {
|
||||
return window.opera != undefined
|
||||
}
|
||||
},
|
||||
{ // iCab <http://www.icab.de/>
|
||||
'name': 'iCab',
|
||||
'browser': function() {
|
||||
return /iCab/.test(ve)
|
||||
}
|
||||
},
|
||||
{ // Konqueror <http://www.konqueror.org/>
|
||||
'name': 'Konqueror',
|
||||
'browser': function() {
|
||||
return /KDE/.test(ve)
|
||||
}
|
||||
},
|
||||
{ // AOL Explorer <http://downloads.channel.aol.com/browser>
|
||||
'identifier': 'aol',
|
||||
'name': 'AOL Explorer',
|
||||
'browser': function() {
|
||||
return /America Online Browser/.test(ua)
|
||||
},
|
||||
'version': function() {
|
||||
return ua.match(/rev(\d+(?:\.\d+)+)/)
|
||||
}
|
||||
},
|
||||
{ // Flock <http://www.flock.com/>
|
||||
'name': 'Flock',
|
||||
'browser': function() {
|
||||
return /Flock/.test(ua)
|
||||
}
|
||||
},
|
||||
{ // Camino <http://www.caminobrowser.org/>
|
||||
'name': 'Camino',
|
||||
'browser': function() {
|
||||
return /Camino/.test(ve)
|
||||
}
|
||||
},
|
||||
{ // Firefox <http://www.mozilla.com/firefox/>
|
||||
'name': 'Firefox',
|
||||
'browser': function() {
|
||||
return /Firefox/.test(ua)
|
||||
}
|
||||
},
|
||||
{ // Netscape <http://browser.netscape.com/>
|
||||
'name': 'Netscape',
|
||||
'browser': function() {
|
||||
return /Netscape/.test(ua)
|
||||
}
|
||||
},
|
||||
{ // Internet Explorer <http://www.microsoft.com/windows/ie/>
|
||||
// <http://www.microsoft.com/mac/ie/>
|
||||
'identifier': 'msie',
|
||||
'name': 'Internet Explorer',
|
||||
'browser': function() {
|
||||
return /MSIE/.test(ua)
|
||||
},
|
||||
'version': function() {
|
||||
return ua.match(
|
||||
/MSIE (\d+(?:\.\d+)+(?:b\d*)?)/
|
||||
)
|
||||
}
|
||||
},
|
||||
{ // Mozilla <http://www.mozilla.org/products/mozilla1.x/>
|
||||
'name': 'Mozilla',
|
||||
'browser': function() {
|
||||
return /Gecko|Mozilla/.test(ua)
|
||||
},
|
||||
'version': function() {
|
||||
return ua.match(/rv:(\d+(?:\.\d+)+)/);
|
||||
}
|
||||
}
|
||||
];
|
||||
i < data.length;
|
||||
i++
|
||||
) {
|
||||
if( data[i].browser() ) { // we have a match
|
||||
// If the identifier is not explicitly set, use a lowercase
|
||||
// version of the given name.
|
||||
var identifier = data[i].identifier ? data[i].identifier
|
||||
: data[i].name.toLowerCase();
|
||||
|
||||
// Make a note that this browser was detected.
|
||||
Private[ identifier ] = true;
|
||||
|
||||
// $.browser.browser() will now return the correct browser.
|
||||
Private.browser = data[i].name;
|
||||
|
||||
var result;
|
||||
if( data[i].version != undefined && (result = data[i].version()) ) {
|
||||
// Use the explicitly set test for browser version.
|
||||
Private.version.string = result[1];
|
||||
Private.version.number = parseFloat( result[1] );
|
||||
} else {
|
||||
// Otherwise use the default test which searches for the
|
||||
// version number after the browser name in the user agent
|
||||
// string.
|
||||
var re = new RegExp(
|
||||
data[i].name + '(?:\\s|\\/)(\\d+(?:\\.\\d+)+(?:(?:a|b)\\d*)?)'
|
||||
);
|
||||
|
||||
result = ua.match(re);
|
||||
if( result != undefined ) {
|
||||
Private.version.string = result[1];
|
||||
Private.version.number = parseFloat( result[1] );
|
||||
}
|
||||
}
|
||||
|
||||
// Once we've detected the browser there is no need to check the
|
||||
// others.
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Loop over the items in 'data' trying to find a operating system match
|
||||
* with the test in data[i].os().
|
||||
*
|
||||
* 'name': A string containing the full name of the operating
|
||||
* system.
|
||||
* 'identifier': By default this is a lowercase version of 'name', but
|
||||
* this can be overwritten by explicitly defining an
|
||||
* 'identifier'.
|
||||
* 'OS': A function that returns a boolean value indicating
|
||||
* whether or not the given operating system is detected.
|
||||
*/
|
||||
for( var i = 0, // counter
|
||||
pl = navigator.platform, // the navigator's platform string
|
||||
data = [ // OS data and tests
|
||||
{ // Microsoft Windows <http://www.microsoft.com/windows/>
|
||||
'identifier': 'win',
|
||||
'name': 'Windows',
|
||||
'OS': function() {
|
||||
return /Win/.test(pl)
|
||||
}
|
||||
},
|
||||
{ // Apple Mac OS <http://www.apple.com/macos/>
|
||||
'name': 'Mac',
|
||||
'OS': function() {
|
||||
return /Mac/.test(pl)
|
||||
}
|
||||
},
|
||||
{ // Linux <http://www.linux.org/>
|
||||
'name': 'Linux',
|
||||
'OS': function() {
|
||||
return /Linux/.test(pl)
|
||||
}
|
||||
}
|
||||
];
|
||||
i < data.length;
|
||||
i++
|
||||
) {
|
||||
if( data[i].OS() ) { // we have a match
|
||||
// If the identifier is not explicitly set, use a lowercase
|
||||
// version of the given name.
|
||||
var identifier = data[i].identifier ? data[i].identifier
|
||||
: data[i].name.toLowerCase();
|
||||
|
||||
// Make a note that the OS was detected.
|
||||
Private[ identifier ] = true;
|
||||
|
||||
// $.browser.OS() will now return the correct OS.
|
||||
Private.OS = data[i].name;
|
||||
|
||||
// Once we've detected the browser there is no need to check the
|
||||
// others.
|
||||
break;
|
||||
}
|
||||
};
|
||||
}();
|
|
@ -1,153 +0,0 @@
|
|||
/*
|
||||
|
||||
CUSTOM FORM ELEMENTS
|
||||
|
||||
Created by Ryan Fait
|
||||
www.ryanfait.com
|
||||
|
||||
The only things you may need to change in this file are the following
|
||||
variables: checkboxHeight, radioHeight and selectWidth (lines 24, 25, 26)
|
||||
|
||||
The numbers you set for checkboxHeight and radioHeight should be one quarter
|
||||
of the total height of the image want to use for checkboxes and radio
|
||||
buttons. Both images should contain the four stages of both inputs stacked
|
||||
on top of each other in this order: unchecked, unchecked-clicked, checked,
|
||||
checked-clicked.
|
||||
|
||||
You may need to adjust your images a bit if there is a slight vertical
|
||||
movement during the different stages of the button activation.
|
||||
|
||||
The value of selectWidth should be the width of your select list image.
|
||||
|
||||
Visit http://ryanfait.com/ for more information.
|
||||
|
||||
*/
|
||||
|
||||
var checkboxHeight = "25";
|
||||
var radioHeight = "25";
|
||||
var selectWidth = "210";
|
||||
|
||||
|
||||
/* No need to change anything after this */
|
||||
|
||||
|
||||
document.write('<style type="text/css">input.styled { display: none; } select.styled { position: relative; width: ' + selectWidth + 'px; opacity: 0; filter: alpha(opacity=0); z-index: 5; } .disabled { opacity: 0.5; filter: alpha(opacity=50); }</style>');
|
||||
|
||||
var Custom = {
|
||||
init: function() {
|
||||
var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active;
|
||||
for(a = 0; a < inputs.length; a++) {
|
||||
if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && inputs[a].className == "styled") {
|
||||
span[a] = document.createElement("span");
|
||||
span[a].className = inputs[a].type;
|
||||
|
||||
if(inputs[a].checked == true) {
|
||||
if(inputs[a].type == "checkbox") {
|
||||
position = "0 -" + (checkboxHeight*2) + "px";
|
||||
span[a].style.backgroundPosition = position;
|
||||
} else {
|
||||
position = "0 -" + (radioHeight*2) + "px";
|
||||
span[a].style.backgroundPosition = position;
|
||||
}
|
||||
}
|
||||
inputs[a].parentNode.insertBefore(span[a], inputs[a]);
|
||||
inputs[a].onchange = Custom.clear;
|
||||
if(!inputs[a].getAttribute("disabled")) {
|
||||
span[a].onmousedown = Custom.pushed;
|
||||
span[a].onmouseup = Custom.check;
|
||||
} else {
|
||||
span[a].className = span[a].className += " disabled";
|
||||
}
|
||||
}
|
||||
}
|
||||
inputs = document.getElementsByTagName("select");
|
||||
for(a = 0; a < inputs.length; a++) {
|
||||
try{
|
||||
fb.log($(inputs[a]).hasClass("styled"));
|
||||
if($(inputs[a]).hasClass("styled")) {
|
||||
option = inputs[a].getElementsByTagName("option");
|
||||
active = option[0].childNodes[0].nodeValue;
|
||||
textnode = document.createTextNode(active);
|
||||
for(b = 0; b < option.length; b++) {
|
||||
if(option[b].selected == true) {
|
||||
textnode = document.createTextNode(option[b].childNodes[0].nodeValue);
|
||||
}
|
||||
}
|
||||
span[a] = document.createElement("span");
|
||||
span[a].className = "select";
|
||||
span[a].id = "select-" + inputs[a].name + a;
|
||||
span[a].appendChild(textnode);
|
||||
inputs[a].parentNode.insertBefore(span[a], inputs[a]);
|
||||
inputs[a].id = inputs[a].name + a;
|
||||
if(!inputs[a].getAttribute("disabled")) {
|
||||
inputs[a].onchange = Custom.choose;
|
||||
} else {
|
||||
inputs[a].previousSibling.className = inputs[a].previousSibling.className += " disabled";
|
||||
}
|
||||
}
|
||||
}catch(e){fb.error(e);}
|
||||
}
|
||||
document.onmouseup = Custom.clear;
|
||||
},
|
||||
pushed: function() {
|
||||
element = this.nextSibling;
|
||||
if(element.checked == true && element.type == "checkbox") {
|
||||
this.style.backgroundPosition = "0 -" + checkboxHeight*3 + "px";
|
||||
} else if(element.checked == true && element.type == "radio") {
|
||||
this.style.backgroundPosition = "0 -" + radioHeight*3 + "px";
|
||||
} else if(element.checked != true && element.type == "checkbox") {
|
||||
this.style.backgroundPosition = "0 -" + checkboxHeight + "px";
|
||||
} else {
|
||||
this.style.backgroundPosition = "0 -" + radioHeight + "px";
|
||||
}
|
||||
},
|
||||
check: function() {
|
||||
element = this.nextSibling;
|
||||
if(element.checked == true && element.type == "checkbox") {
|
||||
this.style.backgroundPosition = "0 0";
|
||||
element.checked = false;
|
||||
} else {
|
||||
if(element.type == "checkbox") {
|
||||
this.style.backgroundPosition = "0 -" + checkboxHeight*2 + "px";
|
||||
} else {
|
||||
this.style.backgroundPosition = "0 -" + radioHeight*2 + "px";
|
||||
group = this.nextSibling.name;
|
||||
inputs = document.getElementsByTagName("input");
|
||||
for(a = 0; a < inputs.length; a++) {
|
||||
if(inputs[a].name == group && inputs[a] != this.nextSibling) {
|
||||
inputs[a].previousSibling.style.backgroundPosition = "0 0";
|
||||
}
|
||||
}
|
||||
}
|
||||
element.checked = true;
|
||||
}
|
||||
},
|
||||
clear: function() {
|
||||
inputs = document.getElementsByTagName("input");
|
||||
for(var b = 0; b < inputs.length; b++) {
|
||||
if(inputs[b].type == "checkbox" && inputs[b].checked == true && inputs[b].className == "styled") {
|
||||
inputs[b].previousSibling.style.backgroundPosition = "0 -" + checkboxHeight*2 + "px";
|
||||
} else if(inputs[b].type == "checkbox" && inputs[b].className == "styled") {
|
||||
inputs[b].previousSibling.style.backgroundPosition = "0 0";
|
||||
} else if(inputs[b].type == "radio" && inputs[b].checked == true && inputs[b].className == "styled") {
|
||||
inputs[b].previousSibling.style.backgroundPosition = "0 -" + radioHeight*2 + "px";
|
||||
} else if(inputs[b].type == "radio" && inputs[b].className == "styled") {
|
||||
inputs[b].previousSibling.style.backgroundPosition = "0 0";
|
||||
}
|
||||
}
|
||||
},
|
||||
choose: function() {
|
||||
option = this.getElementsByTagName("option");
|
||||
for(d = 0; d < option.length; d++) {
|
||||
if(option[d].selected == true) {
|
||||
//
|
||||
var expr = '#select-' + this.id;
|
||||
fb.log(expr);
|
||||
$(expr).text(option[d].childNodes[0].nodeValue);
|
||||
// bad!
|
||||
//document.getElementById("select" + this.name).childNodes[0].nodeValue = option[d].childNodes[0].nodeValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
window.onload = Custom.init;
|
|
@ -1,167 +0,0 @@
|
|||
/*!
|
||||
* jQuery JavaScript Library v1.4.4
|
||||
* http://jquery.com/
|
||||
*
|
||||
* Copyright 2010, John Resig
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* http://sizzlejs.com/
|
||||
* Copyright 2010, The Dojo Foundation
|
||||
* Released under the MIT, BSD, and GPL Licenses.
|
||||
*
|
||||
* Date: Thu Nov 11 19:04:53 2010 -0500
|
||||
*/
|
||||
(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h=
|
||||
h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"||
|
||||
h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La,
|
||||
"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,
|
||||
e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,
|
||||
"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+
|
||||
a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,
|
||||
C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j,
|
||||
s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,
|
||||
j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length},
|
||||
toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j===
|
||||
-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false;
|
||||
if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--;
|
||||
if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload",
|
||||
b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&&
|
||||
!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&&
|
||||
l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z],
|
||||
z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j,
|
||||
s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v=
|
||||
s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)||
|
||||
[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u,
|
||||
false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"),
|
||||
k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false,
|
||||
scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent=
|
||||
false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom=
|
||||
1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display=
|
||||
"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h=
|
||||
c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);
|
||||
else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this,
|
||||
a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=
|
||||
c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
|
||||
a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",
|
||||
colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===
|
||||
1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "),
|
||||
l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,
|
||||
"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";
|
||||
if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r=
|
||||
a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},
|
||||
attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&
|
||||
b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0};
|
||||
c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,
|
||||
arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid=
|
||||
d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+
|
||||
c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b=
|
||||
w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===
|
||||
8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k===
|
||||
"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+
|
||||
d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
|
||||
fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
|
||||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
|
||||
Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
|
||||
c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
|
||||
var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
|
||||
"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
|
||||
xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired=
|
||||
B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type===
|
||||
"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]===
|
||||
0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
|
||||
a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
|
||||
1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d===
|
||||
"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}});
|
||||
c.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".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
|
||||
(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i,
|
||||
[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3];
|
||||
break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr,
|
||||
q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h=
|
||||
l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*"));
|
||||
return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!==
|
||||
B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
|
||||
POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()===
|
||||
i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=
|
||||
i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g,
|
||||
"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n,
|
||||
m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===
|
||||
true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===
|
||||
g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]-
|
||||
0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n===
|
||||
"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===
|
||||
i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]];
|
||||
if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m,
|
||||
g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1;
|
||||
for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"),
|
||||
i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g);
|
||||
n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&&
|
||||
function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F||
|
||||
p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g=
|
||||
t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition?
|
||||
function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML;
|
||||
c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},
|
||||
not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h=
|
||||
h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):
|
||||
c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,
|
||||
2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,
|
||||
b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&
|
||||
e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1,
|
||||
"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
|
||||
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
|
||||
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
|
||||
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
|
||||
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
|
||||
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null;
|
||||
else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=
|
||||
c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a,
|
||||
b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):
|
||||
this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",
|
||||
prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument||
|
||||
b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length-
|
||||
1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));
|
||||
d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i,
|
||||
jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,
|
||||
zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),
|
||||
h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b);
|
||||
if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=
|
||||
d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left;
|
||||
e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
|
||||
ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b===
|
||||
"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&
|
||||
!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},
|
||||
getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html",
|
||||
script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data||
|
||||
!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache=
|
||||
false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset;
|
||||
A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type",
|
||||
b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&&
|
||||
c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d||
|
||||
c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]=
|
||||
encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",
|
||||
[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),
|
||||
e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});
|
||||
if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",
|
||||
3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay",
|
||||
d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b,
|
||||
d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)===
|
||||
"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L||
|
||||
1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b,
|
||||
d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*
|
||||
Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)}
|
||||
var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;
|
||||
this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide||
|
||||
this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=
|
||||
c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===
|
||||
b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&&
|
||||
h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle;
|
||||
for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+=
|
||||
parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",
|
||||
height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=
|
||||
f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,
|
||||
"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a,
|
||||
e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&&
|
||||
c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();
|
||||
c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+
|
||||
b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window);
|
|
@ -1,285 +0,0 @@
|
|||
/*!
|
||||
* jQuery UI 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI
|
||||
*/
|
||||
(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.13",
|
||||
keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();
|
||||
b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,
|
||||
"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",
|
||||
function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,
|
||||
outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,"tabindex"),d=isNaN(b);
|
||||
return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=
|
||||
0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&c.ui.isOverAxis(b,e,i)}})}})(jQuery);
|
||||
;/*!
|
||||
* jQuery UI Widget 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Widget
|
||||
*/
|
||||
(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)b(d).triggerHandler("remove");k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,
|
||||
a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.charAt(0)==="_")return h;
|
||||
e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=b.extend(true,{},this.options,
|
||||
this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},
|
||||
widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},
|
||||
enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
|
||||
;/*!
|
||||
* jQuery UI Mouse 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Mouse
|
||||
*
|
||||
* Depends:
|
||||
* jquery.ui.widget.js
|
||||
*/
|
||||
(function(b){var d=false;b(document).mousedown(function(){d=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+
|
||||
this.widgetName)},_mouseDown:function(a){if(!d){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,f=a.which==1,g=typeof this.options.cancel=="string"?b(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!f||g||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=
|
||||
this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(e){return c._mouseMove(e)};this._mouseUpDelegate=function(e){return c._mouseUp(e)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return d=true}},_mouseMove:function(a){if(b.browser.msie&&
|
||||
!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=
|
||||
false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Position 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Position
|
||||
*/
|
||||
(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY,
|
||||
left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+=
|
||||
k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-=
|
||||
m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left=
|
||||
d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+=
|
||||
a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b),
|
||||
g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Effects 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/
|
||||
*/
|
||||
jQuery.effects||function(f,j){function m(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
|
||||
16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return n.transparent;return n[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return m(b)}function o(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
|
||||
a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function p(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d=
|
||||
a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function l(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor",
|
||||
"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=m(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var n={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,
|
||||
0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,
|
||||
211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},q=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,
|
||||
d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easding:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})};
|
||||
f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this,
|
||||
[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.13",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b;switch(c[0]){case "top":b=
|
||||
0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0});
|
||||
c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c,
|
||||
a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments);
|
||||
a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(l(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(l(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%",
|
||||
"pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*
|
||||
((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=
|
||||
e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=
|
||||
e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/
|
||||
h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*
|
||||
h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,
|
||||
e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
|
||||
;/*
|
||||
* jQuery UI Effects Blind 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/Blind
|
||||
*
|
||||
* Depends:
|
||||
* jquery.effects.core.js
|
||||
*/
|
||||
(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","bottom","left","right"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a,
|
||||
g);b.effects.removeWrapper(a);c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Effects Bounce 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/Bounce
|
||||
*
|
||||
* Depends:
|
||||
* jquery.effects.core.js
|
||||
*/
|
||||
(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","bottom","left","right"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/
|
||||
3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a);
|
||||
b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Effects Clip 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/Clip
|
||||
*
|
||||
* Depends:
|
||||
* jquery.effects.core.js
|
||||
*/
|
||||
(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","bottom","left","right","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position,
|
||||
c/2)}var h={};h[g.size]=f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Effects Drop 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/Drop
|
||||
*
|
||||
* Depends:
|
||||
* jquery.effects.core.js
|
||||
*/
|
||||
(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e==
|
||||
"show"?1:0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Effects Explode 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/Explode
|
||||
*
|
||||
* Depends:
|
||||
* jquery.effects.core.js
|
||||
*/
|
||||
(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f=
|
||||
0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+
|
||||
e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Effects Fade 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/Fade
|
||||
*
|
||||
* Depends:
|
||||
* jquery.effects.core.js
|
||||
*/
|
||||
(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Effects Fold 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/Fold
|
||||
*
|
||||
* Depends:
|
||||
* jquery.effects.core.js
|
||||
*/
|
||||
(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],
|
||||
10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Effects Highlight 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/Highlight
|
||||
*
|
||||
* Depends:
|
||||
* jquery.effects.core.js
|
||||
*/
|
||||
(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&&
|
||||
this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Effects Pulsate 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/Pulsate
|
||||
*
|
||||
* Depends:
|
||||
* jquery.effects.core.js
|
||||
*/
|
||||
(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration,
|
||||
a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Effects Scale 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/Scale
|
||||
*
|
||||
* Depends:
|
||||
* jquery.effects.core.js
|
||||
*/
|
||||
(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a,
|
||||
b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity=
|
||||
1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],g=["position","top","bottom","left","right","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],
|
||||
p=c.effects.setMode(a,b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}};
|
||||
if(m=="box"||m=="both"){if(d.from.y!=d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a);
|
||||
a.css("overflow","hidden").css(a.from);if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from);
|
||||
child.to=c.effects.setTransition(child,f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a,
|
||||
n?e:g);c.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Effects Shake 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/Shake
|
||||
*
|
||||
* Depends:
|
||||
* jquery.effects.core.js
|
||||
*/
|
||||
(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","bottom","left","right"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]=
|
||||
(h=="pos"?"-=":"+=")+e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Effects Slide 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/Slide
|
||||
*
|
||||
* Depends:
|
||||
* jquery.effects.core.js
|
||||
*/
|
||||
(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right"],f=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var g=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var e=d.options.distance||(g=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(f=="show")a.css(g,b=="pos"?isNaN(e)?"-"+e:-e:e);
|
||||
var i={};i[g]=(f=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+e;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){f=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Effects Transfer 1.8.13
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/Transfer
|
||||
*
|
||||
* Depends:
|
||||
* jquery.effects.core.js
|
||||
*/
|
||||
(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments);
|
||||
b.dequeue()})})}})(jQuery);
|
||||
;
|
|
@ -1,209 +0,0 @@
|
|||
/*
|
||||
* $Revision$
|
||||
* $Date$
|
||||
*
|
||||
* Copyright (C) 1999-2009 Jive Software. All rights reserved.
|
||||
*
|
||||
* This software is the proprietary information of Jive Software. Use is subject to license terms.
|
||||
*/
|
||||
|
||||
/*
|
||||
* $ lightbox_me
|
||||
* By: Buck Wilson
|
||||
* Version : 2.0
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
(function($) {
|
||||
|
||||
$.fn.lightbox_me = function(options) {
|
||||
|
||||
|
||||
|
||||
return this.each(function() {
|
||||
|
||||
var
|
||||
opts = $.extend({}, $.fn.lightbox_me.defaults, options),
|
||||
$overlay = $('<div class="' + opts.classPrefix + '_overlay"/>'),
|
||||
$self = $(this),
|
||||
|
||||
$iframe = $('<iframe src="' + /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank' + '" style="z-index: ' + (opts.zIndex + 1) + '; display: none; border: none; margin: 0; padding: 0; position: absolute; width: 100%; height: 100%; top: 0; left: 0;"/>'),
|
||||
ie6 = ($.browser.msie && $.browser.version < 7);
|
||||
|
||||
|
||||
/*----------------------------------------------------
|
||||
DOM Building
|
||||
---------------------------------------------------- */
|
||||
if (ie6) { $('body').append($iframe) } // iframe shim for ie6, to hide select elements
|
||||
$('body').append($self).append($overlay);
|
||||
|
||||
|
||||
/*----------------------------------------------------
|
||||
CSS stuffs
|
||||
---------------------------------------------------- */
|
||||
|
||||
// set css of the modal'd window
|
||||
|
||||
setSelfPosition();
|
||||
$self.css({left: '50%', marginLeft: ($self.outerWidth() / 2) * -1, zIndex: (opts.zIndex + 3) });
|
||||
|
||||
|
||||
// set css of the overlay
|
||||
|
||||
setOverlayHeight(); // pulled this into a function because it is called on window resize.
|
||||
$overlay
|
||||
.css({ position: 'absolute', width: '100%', top: 0, left: 0, right: 0, bottom: 0, zIndex: (opts.zIndex + 2), display: 'none' })
|
||||
.css(opts.overlayCSS);
|
||||
|
||||
|
||||
/*----------------------------------------------------
|
||||
Animate it in.
|
||||
---------------------------------------------------- */
|
||||
|
||||
$overlay.fadeIn(opts.overlaySpeed, function() {
|
||||
$self[opts.appearEffect](opts.lightboxSpeed, function() { setOverlayHeight(); opts.onLoad()});
|
||||
});
|
||||
|
||||
|
||||
|
||||
/*----------------------------------------------------
|
||||
Bind Events
|
||||
---------------------------------------------------- */
|
||||
|
||||
$(window).resize(setOverlayHeight)
|
||||
.resize(setSelfPosition)
|
||||
.scroll(setSelfPosition)
|
||||
.keypress(observeEscapePress);
|
||||
$self.find(opts.closeSelector).add($overlay).click(function() { closeLightbox(); return false; });
|
||||
$self.bind('close', closeLightbox);
|
||||
$self.bind('resize', setSelfPosition);
|
||||
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
/*----------------------------------------------------
|
||||
Private Functions
|
||||
---------------------------------------------------- */
|
||||
|
||||
/* Remove or hide all elements */
|
||||
function closeLightbox() {
|
||||
if (opts.destroyOnClose) {
|
||||
$self.add($overlay).remove();
|
||||
} else {
|
||||
$self.add($overlay).hide();
|
||||
}
|
||||
|
||||
$iframe.remove();
|
||||
|
||||
$(window).unbind('resize', setOverlayHeight);
|
||||
$(window).unbind('resize', setSelfPosition);
|
||||
|
||||
opts.onClose();
|
||||
}
|
||||
|
||||
|
||||
/* Function to bind to the window to observe the escape key press */
|
||||
function observeEscapePress(e) {
|
||||
if(e.keyCode == 27 || (e.DOM_VK_ESCAPE == 27 && e.which==0)) closeLightbox();
|
||||
}
|
||||
|
||||
|
||||
/* Set the height of the overlay
|
||||
: if the document height is taller than the window, then set the overlay height to the document height.
|
||||
: otherwise, just set overlay height: 100%
|
||||
*/
|
||||
function setOverlayHeight() {
|
||||
if ($(window).height() < $(document).height()) {
|
||||
$overlay.css({height: $(document).height() + 'px'});
|
||||
} else {
|
||||
$overlay.css({height: '100%'});
|
||||
if (ie6) {$('html,body').css('height','100%'); } // ie6 hack for height: 100%; TODO: handle this in IE7
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Set the position of the modal'd window ($self)
|
||||
: if $self is taller than the window, then make it absolutely positioned
|
||||
: otherwise fixed
|
||||
*/
|
||||
function setSelfPosition() {
|
||||
var s = $self[0].style;
|
||||
|
||||
if (($self.height() + 80 >= $(window).height()) && ($self.css('position') != 'absolute' || ie6)) {
|
||||
var topOffset = $(document).scrollTop() + 40;
|
||||
$self.css({position: 'absolute', top: topOffset + 'px', marginTop: 0})
|
||||
if (ie6) {
|
||||
s.removeExpression('top');
|
||||
}
|
||||
} else if ($self.height()+ 80 < $(window).height()) {
|
||||
if (ie6) {
|
||||
s.position = 'absolute';
|
||||
if (opts.centered) {
|
||||
s.setExpression('top', '(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"')
|
||||
s.marginTop = 0;
|
||||
} else {
|
||||
var top = (opts.modalCSS && opts.modalCSS.top) ? parseInt(opts.modalCSS.top) : 0;
|
||||
s.setExpression('top', '((blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + "px"')
|
||||
}
|
||||
} else {
|
||||
if (opts.centered) {
|
||||
$self.css({ position: 'fixed', top: '50%', marginTop: ($self.outerHeight() / 2) * -1})
|
||||
} else {
|
||||
$self.css({ position: 'fixed'}).css(opts.modalCSS);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
$.fn.lightbox_me.defaults = {
|
||||
|
||||
// animation
|
||||
appearEffect: "fadeIn",
|
||||
overlaySpeed: 300,
|
||||
lightboxSpeed: "fast",
|
||||
|
||||
// close
|
||||
closeSelector: ".close",
|
||||
closeClick: true,
|
||||
closeEsc: true,
|
||||
|
||||
// behavior
|
||||
destroyOnClose: false,
|
||||
|
||||
// callbacks
|
||||
onLoad: function() {},
|
||||
onClose: function() {},
|
||||
|
||||
// style
|
||||
classPrefix: 'lb',
|
||||
zIndex: 999,
|
||||
centered: false,
|
||||
modalCSS: {top: '40px'},
|
||||
overlayCSS: {background: 'black', opacity: .6}
|
||||
}
|
||||
|
||||
|
||||
})(jQuery);
|
3
web/js/lib/auth.js
Normal file
|
@ -1 +1,153 @@
|
|||
/*
|
||||
|
||||
CUSTOM FORM ELEMENTS
|
||||
|
||||
Created by Ryan Fait
|
||||
www.ryanfait.com
|
||||
|
||||
The only things you may need to change in this file are the following
|
||||
variables: checkboxHeight, radioHeight and selectWidth (lines 24, 25, 26)
|
||||
|
||||
The numbers you set for checkboxHeight and radioHeight should be one quarter
|
||||
of the total height of the image want to use for checkboxes and radio
|
||||
buttons. Both images should contain the four stages of both inputs stacked
|
||||
on top of each other in this order: unchecked, unchecked-clicked, checked,
|
||||
checked-clicked.
|
||||
|
||||
You may need to adjust your images a bit if there is a slight vertical
|
||||
movement during the different stages of the button activation.
|
||||
|
||||
The value of selectWidth should be the width of your select list image.
|
||||
|
||||
Visit http://ryanfait.com/ for more information.
|
||||
|
||||
*/
|
||||
|
||||
var checkboxHeight = "25";
|
||||
var radioHeight = "25";
|
||||
var selectWidth = "210";
|
||||
|
||||
|
||||
/* No need to change anything after this */
|
||||
|
||||
|
||||
document.write('<style type="text/css">input.styled { display: none; } select.styled { position: relative; width: ' + selectWidth + 'px; opacity: 0; filter: alpha(opacity=0); z-index: 5; } .disabled { opacity: 0.5; filter: alpha(opacity=50); }</style>');
|
||||
|
||||
var Custom = {
|
||||
init: function() {
|
||||
var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active;
|
||||
for(a = 0; a < inputs.length; a++) {
|
||||
if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && $(inputs[a]).hasClass("styled")) {
|
||||
span[a] = document.createElement("span");
|
||||
span[a].className = inputs[a].type;
|
||||
|
||||
if(inputs[a].checked == true) {
|
||||
if(inputs[a].type == "checkbox") {
|
||||
position = "0 -" + (checkboxHeight*2) + "px";
|
||||
span[a].style.backgroundPosition = position;
|
||||
} else {
|
||||
position = "0 -" + (radioHeight*2) + "px";
|
||||
span[a].style.backgroundPosition = position;
|
||||
}
|
||||
}
|
||||
inputs[a].parentNode.insertBefore(span[a], inputs[a]);
|
||||
inputs[a].onchange = Custom.clear;
|
||||
if(!inputs[a].getAttribute("disabled")) {
|
||||
span[a].onmousedown = Custom.pushed;
|
||||
span[a].onmouseup = Custom.check;
|
||||
} else {
|
||||
span[a].className = span[a].className += " disabled";
|
||||
}
|
||||
}
|
||||
}
|
||||
inputs = document.getElementsByTagName("select");
|
||||
for(a = 0; a < inputs.length; a++) {
|
||||
try{
|
||||
fb.log($(inputs[a]).hasClass("styled"));
|
||||
if($(inputs[a]).hasClass("styled")) {
|
||||
option = inputs[a].getElementsByTagName("option");
|
||||
active = option[0].childNodes[0].nodeValue;
|
||||
textnode = document.createTextNode(active);
|
||||
for(b = 0; b < option.length; b++) {
|
||||
if(option[b].selected == true) {
|
||||
textnode = document.createTextNode(option[b].childNodes[0].nodeValue);
|
||||
}
|
||||
}
|
||||
span[a] = document.createElement("span");
|
||||
span[a].className = "select";
|
||||
span[a].id = "select-" + inputs[a].name + a;
|
||||
span[a].appendChild(textnode);
|
||||
inputs[a].parentNode.insertBefore(span[a], inputs[a]);
|
||||
inputs[a].id = inputs[a].name + a;
|
||||
if(!inputs[a].getAttribute("disabled")) {
|
||||
inputs[a].onchange = Custom.choose;
|
||||
} else {
|
||||
inputs[a].previousSibling.className = inputs[a].previousSibling.className += " disabled";
|
||||
}
|
||||
}
|
||||
}catch(e){fb.error(e);}
|
||||
}
|
||||
document.onmouseup = Custom.clear;
|
||||
},
|
||||
pushed: function() {
|
||||
element = this.nextSibling;
|
||||
if(element.checked == true && element.type == "checkbox") {
|
||||
this.style.backgroundPosition = "0 -" + checkboxHeight*3 + "px";
|
||||
} else if(element.checked == true && element.type == "radio") {
|
||||
this.style.backgroundPosition = "0 -" + radioHeight*3 + "px";
|
||||
} else if(element.checked != true && element.type == "checkbox") {
|
||||
this.style.backgroundPosition = "0 -" + checkboxHeight + "px";
|
||||
} else {
|
||||
this.style.backgroundPosition = "0 -" + radioHeight + "px";
|
||||
}
|
||||
},
|
||||
check: function() {
|
||||
element = this.nextSibling;
|
||||
if(element.checked == true && element.type == "checkbox") {
|
||||
this.style.backgroundPosition = "0 0";
|
||||
element.checked = false;
|
||||
} else {
|
||||
if(element.type == "checkbox") {
|
||||
this.style.backgroundPosition = "0 -" + checkboxHeight*2 + "px";
|
||||
} else {
|
||||
this.style.backgroundPosition = "0 -" + radioHeight*2 + "px";
|
||||
group = this.nextSibling.name;
|
||||
inputs = document.getElementsByTagName("input");
|
||||
for(a = 0; a < inputs.length; a++) {
|
||||
if(inputs[a].name == group && inputs[a] != this.nextSibling) {
|
||||
inputs[a].previousSibling.style.backgroundPosition = "0 0";
|
||||
}
|
||||
}
|
||||
}
|
||||
element.checked = true;
|
||||
}
|
||||
},
|
||||
clear: function() {
|
||||
inputs = document.getElementsByTagName("input");
|
||||
for(var b = 0; b < inputs.length; b++) {
|
||||
if(inputs[b].type == "checkbox" && inputs[b].checked == true && inputs[b].className == "styled") {
|
||||
inputs[b].previousSibling.style.backgroundPosition = "0 -" + checkboxHeight*2 + "px";
|
||||
} else if(inputs[b].type == "checkbox" && inputs[b].className == "styled") {
|
||||
inputs[b].previousSibling.style.backgroundPosition = "0 0";
|
||||
} else if(inputs[b].type == "radio" && inputs[b].checked == true && inputs[b].className == "styled") {
|
||||
inputs[b].previousSibling.style.backgroundPosition = "0 -" + radioHeight*2 + "px";
|
||||
} else if(inputs[b].type == "radio" && inputs[b].className == "styled") {
|
||||
inputs[b].previousSibling.style.backgroundPosition = "0 0";
|
||||
}
|
||||
}
|
||||
},
|
||||
choose: function() {
|
||||
option = this.getElementsByTagName("option");
|
||||
for(d = 0; d < option.length; d++) {
|
||||
if(option[d].selected == true) {
|
||||
//
|
||||
var expr = '#select-' + this.id;
|
||||
fb.log(expr);
|
||||
$(expr).text(option[d].childNodes[0].nodeValue);
|
||||
// bad!
|
||||
//document.getElementById("select" + this.name).childNodes[0].nodeValue = option[d].childNodes[0].nodeValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
window.onload = Custom.init;
|
||||
|
|
|
@ -21,7 +21,7 @@ App.Model.WEB_DOMAIN.loadList = function()
|
|||
App.Model.MAIL.loadList = function()
|
||||
{
|
||||
//App.Ajax.request('MAIL.getList', {}, App.View.listItems);
|
||||
App.Ref.CONTENT.html('<center><h1 style="padding-top: 20px; font-size: 28px; position: absolute; margin-left: 351px; color: white; text-shadow: 2px 1px 1px rgb(65, 124, 213);">Under maintanance</h1><img width="900px" src="http://dev.vestacp.com:8083/images/Asteroid_Vesta.jpg"></center>');
|
||||
App.Ref.CONTENT.html('<center><h1 style="padding-top: 20px; font-size: 28px; position: absolute; margin-left: 351px; color: white; text-shadow: 2px 1px 1px rgb(65, 124, 213);">Under maintanance</h1><img width="900px" src="'+App.Helpers.generateUrl('images/Asteroid_Vesta.jpg')+'"></center>');
|
||||
}
|
||||
|
||||
App.Model.DB.loadList = function()
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
App.Pages.init = function(){
|
||||
App.Ajax.request('MAIN.getInitial', {}, function(reply){
|
||||
App.Pages.init = function()
|
||||
{
|
||||
App.Ajax.request('MAIN.getInitial', {}, function(reply) {
|
||||
App.Env.initialParams = reply.data;
|
||||
App.Helpers.updateInitial();
|
||||
});
|
||||
|
||||
App.Pages.prepareHTML();
|
||||
|
||||
});
|
||||
App.Pages.prepareHTML();
|
||||
$('.section.active').removeClass('active');
|
||||
$('#'+App.Env.world).addClass('active');
|
||||
|
||||
|
@ -22,7 +21,8 @@ App.Pages.prepareHTML = function()
|
|||
else {
|
||||
App.Model[App.Env.world].loadList();
|
||||
}
|
||||
$('#new-entry-keyword').text(App.Env.world.toLowerCase().replace('_', ' '));
|
||||
$('#new-entry-keyword').text(App.Helpers.getHumanTabName());
|
||||
document.title = 'Vesta | ' + App.Helpers.getHumanTabName();
|
||||
}
|
||||
|
||||
App.Pages.DNS.showSubform = function(ref)
|
||||
|
@ -42,14 +42,6 @@ App.Pages.DNS.showSubform = function(ref)
|
|||
});
|
||||
}
|
||||
|
||||
App.Pages.DNS.edit = function(elm) {
|
||||
var options = elm.find('.source').val();
|
||||
fb.warn(elm);
|
||||
fb.warn(options);
|
||||
var tpl = App.HTML.Build.dns_form(options);
|
||||
elm.replaceWith(tpl);
|
||||
}
|
||||
|
||||
App.Pages.USER.new_entry = function(evt)
|
||||
{
|
||||
var form_id = App.Constants[App.Env.world + '_FORM_ID'];
|
||||
|
@ -70,12 +62,31 @@ App.Pages.WEB_DOMAIN.new_entry = function(evt)
|
|||
App.Ref.CONTENT.prepend(tpl);
|
||||
App.Helpers.updateScreen();
|
||||
$('#'+form_id).find('.ns-entry, .additional-ns-add').addClass('hidden');
|
||||
var ssl_key_upload = App.HTML.Build.ssl_key_file();
|
||||
var ssl_key_upload = App.HTML.Build.ssl_key_file();
|
||||
var ssl_cert_upload = App.HTML.Build.ssl_cert_file();
|
||||
$('#'+form_id).find('.ssl-key-input-dummy:first').replaceWith(ssl_key_upload);
|
||||
$('#'+form_id).find('.ssl-cert-input-dummy:first').replaceWith(ssl_cert_upload);
|
||||
}
|
||||
|
||||
App.Pages.WEB_DOMAIN.edit = function(evt)
|
||||
{
|
||||
var elm = $(evt.target);
|
||||
elm = elm.hasClass('row') ? elm : elm.parents('.row');
|
||||
|
||||
var options = elm.find('.source').val();
|
||||
var build_method = App.Env.getWorldName() + '_form';
|
||||
var tpl = App.HTML.Build[build_method](options);
|
||||
// ssls uploads
|
||||
var ssl_key_upload = App.HTML.Build.ssl_key_file();
|
||||
var ssl_cert_upload = App.HTML.Build.ssl_cert_file();
|
||||
tpl = tpl.replace('<span class="ssl-key-input-dummy">...</span>', ssl_key_upload);
|
||||
tpl = tpl.replace('<span class="ssl-cert-input-dummy">...</span>', ssl_cert_upload);
|
||||
elm.replaceWith(tpl);
|
||||
|
||||
App.Helpers.disableNotEditable();
|
||||
App.Helpers.updateScreen();
|
||||
}
|
||||
|
||||
App.Pages.WEB_DOMAIN.setSSL = function(type, frame)
|
||||
{
|
||||
var txt = App.Helpers.evalJSON(content);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
App.Ref.init = function(){
|
||||
App.Ref.CONSOLE_INPUT = $('#console').find('.b-console-field');
|
||||
App.Ref.CONTENT = $('#content');
|
||||
App.Ref.CONTENT = $('#content .content-inner');
|
||||
}
|
||||
|
|
|
@ -16,8 +16,9 @@ App.Templates.html = {
|
|||
"Well," the farmer said, "I didn\'t have anymore rope, so I took off my belt and tied her tail to the rafter. In that moment, my pants fell down and my wife walked in ... Some things you just can\'t explain."']
|
||||
},
|
||||
general: {
|
||||
loading: ['<div id="loading" style="top: 0;font-size:19px;font-weight: bol;position:fixed;width: 150px; background-color:yellow;z-index: 9999; padding: 8px;left: 50%;margin-left:-75px;">\
|
||||
<center>Loading...</center>\
|
||||
over_bar: ['<span style="width:~!:OVER_PERCENTS~!%;right:-~!:OVER_PERCENTS_2~!%;" class="bar_overdraft"></span>'],
|
||||
loading: ['<div id="loading" style="border-radius: 0 0 6px 6px;top: 0;font-size:19px;font-weight: bol;position:fixed;width: 150px; background-color:#6E6E62;z-index: 9999; padding: 8px;left: 50%;margin-left:-75px;">\
|
||||
<center><div style="width: 105px; height:30px;background-image: url(\'../images/loading.png\');"></center>\
|
||||
</div>'],
|
||||
popup: ['<div class="black_overlay" id="popup-bg"></div>\
|
||||
<div class="popup_content" id="popup"><button class="do_action_close_popup">close</button>~!:content~!</div>'],
|
||||
|
@ -36,7 +37,74 @@ App.Templates.html = {
|
|||
},
|
||||
popup: {
|
||||
error: ['<div class="error"><center><h1 style="color: red;">Important: An Error Has Occured.</h1><hr></center> Something went wrong and some of your actions can be not saved in system. Mostly, it happens when you have network connection errors.<br>, However, please notify us about the situation. It would be helpfull if you will write us approximate time the error occured and last actions you were performing. You send your petition on <a href="mail_to">this email: BLABLA</a>,<br><br><center><span style="color: rgb(92, 92, 92);">Sorry for inconvinience. (We recommend you to reload the page)</span></center></div>'],
|
||||
login: ['<div class="error" id="authorize-form"><center><h1 style="color: red;">Please authorize.</h1><hr><div id="auth-error" style="color:red"></div>Login: <input type="text" id="authorize-login" / ><br/>Password: <input type="password" id="authorize-password"/><br /><button class="do_action_do_authorize">Log in</button></center></center></div>']
|
||||
change_psw: [
|
||||
'<div id="change-psw-block" class="page2">\
|
||||
<div class="b-auth-form">\
|
||||
<div class="b-auth-form-wrap">\
|
||||
<img width="72" height="24" alt="" src="~!:LOGO_URL~!" class="vesta-logo">\
|
||||
<div class="b-client-title">\
|
||||
<span class="client-title-wrap">~!:VERSION~!<i class="planets"> </i></span>\
|
||||
</div>\
|
||||
<form id="change_psw-form" method="post" action="#" class="auth">\
|
||||
<div class="form-row cc">\
|
||||
<label for="change-email" class="field-label">Email</label>\
|
||||
<input type="text" tabindex="1" id="change-email" class="field-text">\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label class="field-label"><img id="captcha-img" width="127px;" src="~!:CAPTCHA_URL~!" style="cursor: pointer" onClick="this.src = \'~!:CAPTCHA_URL_2~!?\'+Math.floor(Math.random() * 9999)"/></label>\
|
||||
<input type="text" id="captcha" class="field-text" style="margin-left: 50px; width: 240px;">\
|
||||
</div>\
|
||||
<div id="change-psw-success" class="success-box hidden"></div>\
|
||||
<div id="change-psw-error" class="error-box hidden"></div>\
|
||||
<div class="form-row cc" style="width: 438px">\
|
||||
<div class="b-remember">\
|
||||
<span class="remember-me"> </span>\
|
||||
</div>\
|
||||
<input type="submit" tabindex="4" value="Send confirmation" class="sumbit-btn do_action_do_change_password">\
|
||||
</div>\
|
||||
</form>\
|
||||
<p class="forgot-pwd"><a href="#" class="forgot-pwd-url do_action_back_to_login">Back to login?</a></p>\
|
||||
<div class="footnotes cc">\
|
||||
<p class="additional-info">For questions please contact <a href="mailto:~!:EMAIL_REAL~!" class="questions-url">~!:EMAIL~!</a></p>\
|
||||
<address class="imprint">© ~!:YEAR~! Vesta Control Panel</address>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>'
|
||||
],
|
||||
login: ['<div id="auth-block" class="page2">\
|
||||
<div class="b-auth-form">\
|
||||
<div class="b-auth-form-wrap">\
|
||||
<img width="72" height="24" alt="" src="~!:LOGO_URL~!" class="vesta-logo">\
|
||||
<div class="b-client-title">\
|
||||
<span class="client-title-wrap">~!:VERSION~!<i class="planets"> </i></span>\
|
||||
</div>\
|
||||
<form id="login-form" method="post" action="#" class="auth">\
|
||||
<div class="form-row cc">\
|
||||
<label for="email" class="field-label">Email</label>\
|
||||
<input type="text" tabindex="1" id="authorize-login" class="field-text">\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label for="password" class="field-label">Password</label>\
|
||||
<input type="password" tabindex="2" id="authorize-password" class="field-text">\
|
||||
</div>\
|
||||
<div id="auth-error" class="error-box hidden"></div>\
|
||||
<div class="form-row last-row cc">\
|
||||
<div class="b-remember">\
|
||||
<input type="checkbox" tabindex="3" value="1" name="remember_me" id="remember-me" class="remember-me ui-helper-hidden-accessible">\
|
||||
<label for="remember-me" class="remember-label ui-checkbox">remember me</label>\
|
||||
</div>\
|
||||
<input type="submit" tabindex="4" value="enter" class="sumbit-btn do_action_do_authorize">\
|
||||
</div>\
|
||||
</form>\
|
||||
<p class="forgot-pwd"><a href="#" class="forgot-pwd-url do_action_change_password">forgot password?</a></p>\
|
||||
<div class="footnotes cc">\
|
||||
<p class="additional-info">For questions please contact <a href="mailto:~!:EMAIL_REAL~!" class="questions-url">~!:EMAIL~!</a></p>\
|
||||
<address class="imprint">© ~!:YEAR~! Vesta Control Panel</address>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>']
|
||||
},
|
||||
dates: {
|
||||
'lock_plan_date' : ['<button class="do.savePlanDate(~!:task_id~!)">Lock plan dates</button><button class="do.lockPlanDate(~!:task_id~!)">Lock plan dates</button>'],
|
||||
|
@ -65,7 +133,7 @@ App.Templates.html = {
|
|||
<div class="form-row dns-template-box cc">\
|
||||
<label for="#" class="field-label">template:</label>\
|
||||
<span class="select" id="selecttemplate">~!:TPL_DEFAULT_VALUE~!</span>\
|
||||
<select name="TPL" class="styled">\
|
||||
<select name="TPL" class="styled tpl-item">\
|
||||
~!:TPL~!\
|
||||
</select>\
|
||||
<span class="context-settings do_action_view_template_settings">View template settings</span>\
|
||||
|
@ -111,7 +179,8 @@ App.Templates.html = {
|
|||
<span class="ip-adr">~!:IP~!</span>\
|
||||
<span class="prop-box template-box">\
|
||||
<span class="prop-title">template:</span>\
|
||||
<span class="prop-value do_action_view_template_info">~!:TPL~!</span>\
|
||||
<input type="hidden" class="tpl-item" value="~!:TPL_VAL~!"/>\
|
||||
<span class="prop-value do_action_view_dns_template_settings">~!:TPL~!</span>\
|
||||
</span>\
|
||||
</div>\
|
||||
</div>\
|
||||
|
@ -155,7 +224,7 @@ App.Templates.html = {
|
|||
<div class="field-box dns-type-box">\
|
||||
<label for="#" class="field-label">type:</label>\
|
||||
<!-- span class="select RECORD_TYPE" id="selectRECORD_TYPE">~!:RECORD_TYPE_VALUE~!</span -->\
|
||||
<select name="RECORD_TYPE" class="not-styled" style="width:70px">\
|
||||
<select name="RECORD_TYPE" class="styled">\
|
||||
~!:RECORD_TYPE~!\
|
||||
</select>\
|
||||
</div>\
|
||||
|
@ -180,14 +249,14 @@ App.Templates.html = {
|
|||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">owner:</label>\
|
||||
<select name="OWNER" class="not-styled OWNER">\
|
||||
<select name="OWNER" class="styled OWNER">\
|
||||
~!:owner_options~!\
|
||||
</select>\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">status:</label>\
|
||||
<!-- span class="select" id="select">shared</span -->\
|
||||
<select class="not-styled status" name="STATUS">\
|
||||
<select class="styled status" name="STATUS">\
|
||||
~!:status_options~!\
|
||||
</select>\
|
||||
</div>\
|
||||
|
@ -198,7 +267,7 @@ App.Templates.html = {
|
|||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">interface:</label>\
|
||||
<!-- span class="select" id="select">eth1</span -->\
|
||||
<select class="not-styled interface" name="INTERFACE">\
|
||||
<select class="styled interface" name="INTERFACE">\
|
||||
~!:interface_options~!\
|
||||
</select>\
|
||||
</div>\
|
||||
|
@ -217,7 +286,7 @@ App.Templates.html = {
|
|||
'],
|
||||
DOT: ['<span class="dot">.</span>'],
|
||||
ENTRY: ['\
|
||||
<div class="row first-row ip-details-row">\
|
||||
<div class="row ip-details-row">\
|
||||
<input type="hidden" class="source" name="source" value=\'~!:source~!\' />\
|
||||
<input type="hidden" class="target" name="target" value="" />\
|
||||
<div class="row-actions-box cc">\
|
||||
|
@ -228,7 +297,7 @@ App.Templates.html = {
|
|||
</div>\
|
||||
</div>\
|
||||
<div class="row-meta">\
|
||||
<div class="ip-created">~!:DATE~!</div>\
|
||||
<div class="entry-created">~!:DATE~!</div>\
|
||||
</div>\
|
||||
<div class="row-details cc">\
|
||||
<div class="ip-props-main">\
|
||||
|
@ -277,18 +346,27 @@ App.Templates.html = {
|
|||
SUSPENDED_TPL_DISABLED : ['<span class="ip-status-info ip-suspended-status do_action_delete_ip"><span class="ip-status-text">suspended</span></span>']
|
||||
},
|
||||
user: {
|
||||
WEB_TPL_MINIMIZED: ['~!:WEB_TPL_MINI~!\
|
||||
<span class="group-switcher">\
|
||||
<span class="group-values-count do_action_view_full_ns_list">~!:MORE_NUMBER~! more</span>\
|
||||
</span><span class="hidden ns-full-list"><span class="group-values group-values__bullet">~!:WEB_TPL_FULL~!</span></span>'],
|
||||
WEB_TPL: ['<span class="prop-value">~!:NAME~!</span>'],
|
||||
NS_MINIMIZED: ['~!:NS_MINI~!\
|
||||
<span class="group-switcher">\
|
||||
<span class="group-values-count do_action_view_full_ns_list">~!:MORE_NUMBER~! more</span>\
|
||||
</span><span class="hidden ns-full-list"><span class="group-values group-values__bullet">~!:NS_FULL~!</span></span>'],
|
||||
/*NS_RECORD_POPUP_WRAP: ['<ul class="d-popup-items">~!:CONTENT~!</ul>'],
|
||||
NS_RECORD_POPUP: ['<li class="item">~!:NAME~!</li>'],*/
|
||||
</span><span class="hidden ns-full-list"><span class="group-values group-values__bullet">~!:NS_FULL~!</span></span>'],
|
||||
NS_RECORD: ['<span class="prop-value">~!:NAME~!</span>'],
|
||||
NS_INPUT: ['<div class="form-row ns-entry cc"><label for="#" class="field-label">~!:NS_LABEL~!:</label>\
|
||||
<input type="text" value="~!:NAME~!" name="" class="text-field ns-input rule-required rule-ns">\
|
||||
<button class="do_action_delete_ns">Delete</button>\
|
||||
</div>'],
|
||||
PLUS_ONE_NS: ['<button class="additional-ns-add do_action_add_form_ns">Add additional NS</button>'],
|
||||
NS_INPUT: ['<div class="form-row ns-entry cc">\
|
||||
<label for="#" class="field-label">~!:NS_LABEL~!:</label>\
|
||||
<input type="text" value="~!:NAME~!" name="" class="text-field ns-input rule-required rule-ns">\
|
||||
<b class="do_action_delete_ns delete-record"></b>\
|
||||
</div>'],
|
||||
PLUS_ONE_NS: ['<div class="form-row cc do_action_add_form_ns additional-ns-add">\
|
||||
<a href="javascript:void(0);" class="add-ns do_action_add_form_ns">\
|
||||
<i class="icon do_action_add_form_ns"> </i>\
|
||||
<span class="btn-title do_action_add_form_ns">Add additional NS</span>\
|
||||
</a>\
|
||||
</div>'],
|
||||
ENTRIES_WRAPPER: ['<div class="users-list items-list">~!:content~!</div>'],
|
||||
FORM: ['<div id="~!:id~!" class="b-new-entry b-new-entry_user form">\
|
||||
<input type="hidden" name="source" class="source" value=\'~!:source~!\'>\
|
||||
|
@ -307,19 +385,19 @@ App.Templates.html = {
|
|||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">package:</label>\
|
||||
<select name="PACKAGE" class="not-styled">\
|
||||
<select name="PACKAGE" class="styled">\
|
||||
~!:PACKAGE_OPTIONS~!\
|
||||
</select>\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">shell:</label>\
|
||||
<select class="not-styled" name="SHELL">\
|
||||
<select class="styled" name="SHELL">\
|
||||
~!:SHELL_OPTIONS~!\
|
||||
</select>\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">role:</label>\
|
||||
<select class="not-styled" name="ROLE">\
|
||||
<select class="styled" name="ROLE">\
|
||||
~!:ROLE_OPTIONS~!\
|
||||
</select>\
|
||||
</div>\
|
||||
|
@ -327,19 +405,19 @@ App.Templates.html = {
|
|||
<label for="#" class="field-label">contact email:</label>\
|
||||
<input type="text" name="CONTACT" class="text-field rule-email rule-required" value="~!:CONTACT~!">\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<div class="form-row ~!:REPORTS_ENABLED_EDITABLE~! cc">\
|
||||
<label for="#" class="field-label">reports:</label>\
|
||||
<input type="checkbox" name="REPORTS_ENABLED" ~!:CHECKED~! class="not-styled" value="~!:REPORTS_ENABLED~!">\
|
||||
<input type="checkbox" name="REPORTS_ENABLED" ~!:CHECKED~! class="styled" value="~!:REPORTS_ENABLED~!">\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">Firstname:</label>\
|
||||
<input type="text" name="FNAME" class="not-styled text-field rule-abc rule-required" value="~!:FNAME~!">\
|
||||
<input type="text" name="FNAME" class="text-field rule-abc rule-required" value="~!:FNAME~!">\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">Lastname:</label>\
|
||||
<input type="text" name="LNAME" class="not-styled text-field rule-abc rule-required" value="~!:LNAME~!">\
|
||||
<input type="text" name="LNAME" class="text-field rule-abc rule-required" value="~!:LNAME~!">\
|
||||
</div>\
|
||||
<div class="form-row ns-entry cc">\
|
||||
<!-- div class="form-row ns-entry cc">\
|
||||
<label for="#" class="field-label">NS #1:</label>\
|
||||
<input type="text" value="~!:NS1~!" name="NS1" class="text-field rule-required rule-ns">\
|
||||
</div>\
|
||||
|
@ -347,14 +425,14 @@ App.Templates.html = {
|
|||
<label for="#" class="field-label">NS #2:</label>\
|
||||
<input type="text" value="~!:NS2~!" name="NS2" class="text-field rule-required rule-ns">\
|
||||
</div>\
|
||||
~!:NS~!\
|
||||
~!:NS~!\ -->\
|
||||
<div class="form-row buttons-row cc">\
|
||||
<input type="submit" value="~!:save_button~!" name="save" class="add-entry-btn do_action_save_form">\
|
||||
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
|
||||
<a class="help-btn" href="http://vestacp.com/docs/user/" target="_blank">Help</a>\
|
||||
</div>\
|
||||
</div>'],
|
||||
ENTRY: ['<div class="row first-row user-details-row">\
|
||||
ENTRY: ['<div class="row user-details-row">\
|
||||
<input type="hidden" class="source" name="source" value=\'~!:source~!\' />\
|
||||
<input type="hidden" class="target" name="target" value="" />\
|
||||
<div class="row-actions-box cc">\
|
||||
|
@ -405,36 +483,39 @@ App.Templates.html = {
|
|||
</div>\
|
||||
</div>\
|
||||
<!-- disk usage block -->\
|
||||
<div class="b-usage-box disk-usage cc">\
|
||||
<span class="prop-title">disk usage:</span>\
|
||||
<div class="usage-box">\
|
||||
<div class="value-box">\
|
||||
<span class="value">~!:U_DISK~!</span>\
|
||||
<div class="graph low">\
|
||||
<span style="width:~!:U_DISK_PERCENTAGE~!%;" class="bar"></span>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="max-size">~!:DISK_QUOTA~!<span class="units">~!:DISK_QUOTA_MEASURE~!</span></div>\
|
||||
</div>\
|
||||
</div><!-- // disk usage block -->\
|
||||
<!-- bandwidth usage block -->\
|
||||
<div style="margin-bottom:25px;" class="b-usage-box bandwidth-box cc">\
|
||||
<span class="prop-title">bandwidth:</span>\
|
||||
<div class="usage-box" style="margin-left: -1px">\
|
||||
<div class="value-box">\
|
||||
<span class="value">~!:U_BANDWIDTH~!</span>\
|
||||
<div class="graph low">\
|
||||
<span style="width:~!:U_BANDWIDTH_PERCENTAGE~!%;" class="bar"></span>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="max-size">~!:BANDWIDTH~!<span class="units">~!:BANDWIDTH_MEASURE~!</span></div>\
|
||||
</div>\
|
||||
</div><!-- // bandwidth usage block -->\
|
||||
<!-- disk usage block -->\
|
||||
<!-- // disk usage block -->\
|
||||
<!-- bandwidth usage block -->\
|
||||
<!-- // bandwidth usage block -->\
|
||||
</div>\
|
||||
\
|
||||
<div class="b-stats-box">\
|
||||
<div class="stats-box-title">stats</div> \
|
||||
<!-- disk usage block -->\
|
||||
<div class="b-usage-box2 disk-usage cc">\
|
||||
<span class="prop-title">disk usage:</span>\
|
||||
<div class="usage-box ~!:OVER_DRAFT_VALUE~!">\
|
||||
<div class="value-box">\
|
||||
<div class="graph">\
|
||||
<span style="left:~!:U_DISK_PERCENTAGE_2~!%;" class="value">~!:U_DISK_PERCENTAGE~!% <span class="value-size">(~!:U_DISK~! ~!:DISK_QUOTA_MEASURE~!)</span></span>\
|
||||
<span style="width:~!:U_DISK_PERCENTAGE_3~!%;" class="bar"></span>\
|
||||
~!:OVER_BAR~!\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="max-size">~!:DISK_QUOTA~! <span class="units">~!:DISK_QUOTA_MEASURE_2~!</span></div>\
|
||||
</div>\
|
||||
</div><!-- // disk usage block -->\
|
||||
</div>\
|
||||
\
|
||||
<div class="b-usage-box2 bandwidth-box cc">\
|
||||
<span class="prop-title">bandwidth:</span>\
|
||||
<div class="usage-box">\
|
||||
<div class="value-box ~!:OVER_DRAFT_VALUE_2~!">\
|
||||
<div class="graph">\
|
||||
<span style="left:~!:U_BANDWIDTH_PERCENTAGE_2~!%;" class="value">~!:U_BANDWIDTH_PERCENTAGE~!% <span class="value-size">(~!:U_BANDWIDTH~! ~!:BANDWIDTH_MEASURE~!)</span></span>\
|
||||
<span style="width:~!:U_BANDWIDTH_PERCENTAGE_3~!%;" class="bar"></span>\
|
||||
~!:OVER_BAR_2~!\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="max-size">~!:BANDWIDTH~! <span class="units">~!:BANDWIDTH_MEASURE_2~!</span></div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="props-additional">\
|
||||
<span class="prop-box websl-box">\
|
||||
<span class="prop-title">web ssl:</span>\
|
||||
|
@ -507,14 +588,14 @@ App.Templates.html = {
|
|||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">ip:</label>\
|
||||
<div class="">\
|
||||
<select name="IP">\
|
||||
<select name="IP" class="styled">\
|
||||
~!:IP_OPTIONS~!\
|
||||
</select>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="form-row cc adv_opts">\
|
||||
<label for="#" class="field-label">template:</label>\
|
||||
<select class="not-styled" name="TPL">\
|
||||
<select class="styled" name="TPL">\
|
||||
~!:TPL_OPTIONS~!\
|
||||
</select>\
|
||||
</div>\
|
||||
|
@ -528,24 +609,24 @@ App.Templates.html = {
|
|||
<div class="sub_section hidden">\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">CGI:</label>\
|
||||
<input type="checkbox" value="~!:CGI~!" ~!:CHECKED_CGI~! name="CGI" class="not-styled">\
|
||||
<input type="checkbox" value="~!:CGI~!" ~!:CHECKED_CGI~! name="CGI" class="styled">\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">ELOG:</label>\
|
||||
<input type="checkbox" value="~!:ELOG~!" ~!:CHECKED_ELOG~! name="ELOG" class="not-styled">\
|
||||
<input type="checkbox" value="~!:ELOG~!" ~!:CHECKED_ELOG~! name="ELOG" class="styled">\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">alias list:</label>\
|
||||
<textarea name="ALIAS" class="textarea">~!:ALIAS~!</textarea>\
|
||||
<textarea name="ALIAS" class="textarea rule-alias">~!:ALIAS~!</textarea>\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">statistics:</label>\
|
||||
<select name="STAT">~!:STAT_OPTIONS~!</select>\
|
||||
<select name="STAT" class="styled">~!:STAT_OPTIONS~!</select>\
|
||||
</div>\
|
||||
<div class="stats-settings">\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">stats auth:</label>\
|
||||
<input id="stats-auth-enable" type="checkbox" name="STATS_AUTH" ~!:stats_auth_checked~!="" value="~!:STATS_AUTH~!" class="not-styled do_action_toggle_stats_block">\
|
||||
<input id="stats-auth-enable" type="checkbox" name="STATS_AUTH" ~!:stats_auth_checked~!="" value="~!:STATS_AUTH~!" class="styled do_action_toggle_stats_block">\
|
||||
</div>\
|
||||
<div class="form-row stats-block ~!:ACTIVE_LOGIN~! cc">\
|
||||
<label for="#" class="field-label">stats login:</label>\
|
||||
|
@ -586,7 +667,7 @@ App.Templates.html = {
|
|||
<div class="sub_section hidden">\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">create dns domain:</label>\
|
||||
<input type="checkbox" value="~!:DNS~!" ~!:CHECKED_DNS~! name="DNS" class="not-styled">\
|
||||
<input type="checkbox" value="~!:DNS~!" ~!:CHECKED_DNS~! name="DNS" class="styled">\
|
||||
</div>\
|
||||
</div><!-- DNS options -->\
|
||||
<div class="form-options-group hidden">\
|
||||
|
@ -598,7 +679,7 @@ App.Templates.html = {
|
|||
<div class="sub_section hidden">\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">create mail domain:</label>\
|
||||
<input type="checkbox" value="~!:MAIL~!" ~!:CHECKED_MAIL~! name="MAIL" class="not-styled">\
|
||||
<input type="checkbox" value="~!:MAIL~!" ~!:CHECKED_MAIL~! name="MAIL" class="styled">\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
|
@ -610,7 +691,7 @@ App.Templates.html = {
|
|||
</div>\
|
||||
</div>'],
|
||||
ENTRIES_WRAPPER: ['<div class="domains-list items-list">~!:content~!</div>'],
|
||||
ENTRY: ['<div class="row first-row domain-details-row">\
|
||||
ENTRY: ['<div class="row domain-details-row">\
|
||||
<input type="hidden" class="source" name="source" value=\'~!:source~!\' />\
|
||||
<input type="hidden" class="target" name="target" value="" />\
|
||||
<div class="row-actions-box cc">\
|
||||
|
@ -634,7 +715,7 @@ App.Templates.html = {
|
|||
<span class="ip-adr">~!:IP~!</span>\
|
||||
<span class="prop-box template-box">\
|
||||
<span class="prop-title">template:</span>\
|
||||
<span class="prop-value">~!:TPL~!</span>\
|
||||
<span class="prop-value tpl-item do_action_view_template_settings">~!:TPL~!</span>\
|
||||
</span>\
|
||||
</div>\
|
||||
<!-- disk usage block -->\
|
||||
|
@ -721,7 +802,7 @@ App.Templates.html = {
|
|||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">db type:</label>\
|
||||
<select name="TYPE" class="not-styled">~!:TYPE_OPTIONS~!</select>\
|
||||
<select name="TYPE" class="styled">~!:TYPE_OPTIONS~!</select>\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">db name:</label>\
|
||||
|
@ -740,7 +821,7 @@ App.Templates.html = {
|
|||
</div>\
|
||||
<div class="form-row hidden cc">\
|
||||
<label for="#" class="field-label">db host:</label>\
|
||||
<select name="HOST">~!:HOST_OPTIONS~!</select>\
|
||||
<select name="HOST" class="styled">~!:HOST_OPTIONS~!</select>\
|
||||
</div>\
|
||||
<div class="form-row buttons-row cc">\
|
||||
<input type="submit" value="~!:save_button~!" class="add-entry-btn do_action_save_form">\
|
||||
|
@ -748,7 +829,7 @@ App.Templates.html = {
|
|||
<a target="_blank" href="http://vestacp.com/docs/db/" class="help-btn">Help</a>\
|
||||
</div>\
|
||||
</div>'],
|
||||
ENTRY: ['<div class="row ~!:FIRST_ROW_CLASS~! db-details-row">\
|
||||
ENTRY: ['<div class="row db-details-row">\
|
||||
<input type="hidden" name="source" class="source" value=\'~!:source~!\'>\
|
||||
<input type="hidden" name="target" class="target" value=\'\'>\
|
||||
<div class="row-actions-box cc">\
|
||||
|
@ -854,8 +935,8 @@ App.Templates.html = {
|
|||
<a target="_blank" href="http://vestacp.com/docs/cron/" class="help-btn">Help</a>\
|
||||
</div>\
|
||||
</div>'],
|
||||
ENTRIES_WRAPPER: ['<div class="db-list">~!:content~!</div>'],
|
||||
ENTRY: ['<div class="row first-row cron-details-row">\
|
||||
ENTRIES_WRAPPER: ['<div class="cron-list">~!:content~!</div>'],
|
||||
ENTRY: ['<div class="row cron-details-row">\
|
||||
<input type="hidden" name="source" class="source" value=\'~!:source~!\'>\
|
||||
<input type="hidden" name="target" class="target" value=\'\'>\
|
||||
<div class="row-actions-box cc">\
|
||||
|
@ -898,9 +979,7 @@ App.Templates.html = {
|
|||
<span class="prop-box cron-report-box">\
|
||||
<span class="prop-title">reported to:</span>\
|
||||
<span class="prop-value">naumov.socolov@gmail.com,</span>\
|
||||
<span class="prop-value">vasysualiy.pupkin@gmail.com,</span>\
|
||||
<span class="prop-value">na-derevniu-dedushke@dachniy-poselok-za-mkadom.com,</span>\
|
||||
<span class="prop-value">vasysualiy.pupkin@gmail.com</span>\
|
||||
<span class="prop-value">naumov.socolov@gmail.com,</span>\
|
||||
</span>\
|
||||
</div>\
|
||||
</div><!-- // .row-details -->\
|
||||
|
@ -912,23 +991,23 @@ App.Templates.html = {
|
|||
|
||||
// Internals
|
||||
var Tpl = App.Templates;
|
||||
|
||||
var Templator = function(){
|
||||
var init = function(){
|
||||
var Templator = function()
|
||||
{
|
||||
var init = function() {
|
||||
fb.info('Templator work');
|
||||
Templator.splitThemAll();
|
||||
Templator.freezeTplIndexes();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Split the tpl strings into arrays
|
||||
*/
|
||||
Templator.splitThemAll = function(){
|
||||
Templator.splitThemAll = function()
|
||||
{
|
||||
fb.info('splitting tpls');
|
||||
$.each(App.Templates.html, function(o){
|
||||
$.each(App.Templates.html, function(o) {
|
||||
var tpls = App.Templates.html[o];
|
||||
$.each(tpls, function(t){
|
||||
$.each(tpls, function(t) {
|
||||
tpls[t] = tpls[t][0].split('~!');
|
||||
});
|
||||
});
|
||||
|
@ -937,7 +1016,8 @@ var Templator = function(){
|
|||
/**
|
||||
* Iterates tpls
|
||||
*/
|
||||
Templator.freezeTplIndexes = function(){
|
||||
Templator.freezeTplIndexes = function()
|
||||
{
|
||||
fb.info('freezing tpl keys');
|
||||
$.each(App.Templates.html, Templator.cacheTplIndexes);
|
||||
},
|
||||
|
@ -945,10 +1025,10 @@ var Templator = function(){
|
|||
/**
|
||||
* Grab the tpl group key and process it
|
||||
*/
|
||||
Templator.cacheTplIndexes = function(key){
|
||||
Templator.cacheTplIndexes = function(key)
|
||||
{
|
||||
var tpls = App.Templates.html[key];
|
||||
|
||||
$.each(tpls, function(o){
|
||||
$.each(tpls, function(o) {
|
||||
var tpl = tpls[o];
|
||||
Templator.catchIndex(key, o, tpl);
|
||||
});
|
||||
|
@ -957,11 +1037,11 @@ var Templator = function(){
|
|||
/**
|
||||
* Set the indexes
|
||||
*/
|
||||
Templator.catchIndex = function(key, ref_key, tpl){
|
||||
'undefined' == typeof App.Templates._indexes[key] ? App.Templates._indexes[key] = {} : false;
|
||||
Templator.catchIndex = function(key, ref_key, tpl)
|
||||
{
|
||||
'undefined' == typeof App.Templates._indexes[key] ? App.Templates._indexes[key] = {} : false;
|
||||
'undefined' == typeof App.Templates._indexes[key][ref_key] ? App.Templates._indexes[key][ref_key] = {} : false;
|
||||
|
||||
$(tpl).each(function(index, o){
|
||||
$(tpl).each(function(index, o) {
|
||||
if(':' == o.charAt(0)){
|
||||
App.Templates._indexes[key][ref_key][o.toString()] = index;
|
||||
}
|
||||
|
@ -974,15 +1054,16 @@ var Templator = function(){
|
|||
init();
|
||||
return Templator;
|
||||
};
|
||||
Templator.getTemplate = function(ns, key){
|
||||
Templator.getTemplate = function(ns, key)
|
||||
{
|
||||
return [
|
||||
App.Templates._indexes[ns][key],
|
||||
App.Templates.html[ns][key].slice(0)
|
||||
App.Templates._indexes[ns][key],
|
||||
App.Templates.html[ns][key].slice(0)
|
||||
];
|
||||
}
|
||||
// init templator
|
||||
Tpl.Templator = Templator();
|
||||
|
||||
Tpl.get = function(key, group){
|
||||
Tpl.get = function(key, group)
|
||||
{
|
||||
return Tpl.Templator.getTemplate(group, key);
|
||||
}
|
||||
|
|
|
@ -1,21 +1,5 @@
|
|||
/*App.Validate.form = function(values){
|
||||
if(values.IP_ADDRESS == '') {
|
||||
return alert('Not correct ip');
|
||||
}
|
||||
|
||||
return true;
|
||||
}*/
|
||||
|
||||
App.Validate.Is = {
|
||||
ip: function(object) {
|
||||
var ip_regexp = new RegExp(/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/);
|
||||
return ip_regexp.test() ? false : App.i18n.getMessage('incorrect_ip');
|
||||
}
|
||||
};
|
||||
|
||||
App.Validate.getFieldName = function(elm)
|
||||
{
|
||||
fb.log(elm);
|
||||
var txt_label = $(elm).prev('label').text();
|
||||
if (txt_label.trim() == '') {
|
||||
txt_label = $(elm).parents('.field-box').select('label:first').text();
|
||||
|
@ -25,9 +9,20 @@ App.Validate.getFieldName = function(elm)
|
|||
}
|
||||
|
||||
App.Validate.Rule = {
|
||||
'alias' : function(elm) {
|
||||
if (!!$('#stats-auth-enable').attr('checked') == true) {
|
||||
if ($(elm).val().trim() == '' || $(elm).val().search(/[^a-zA-Z\.\-\*\,\ ]+/) != -1) {
|
||||
return {VALID: false, ERROR: App.Validate.getFieldName(elm) + ' is invalid'};
|
||||
}
|
||||
if ($(elm).val().trim() != '' && $(elm).val().length > App.Settings.FIELD_MAX_LEN) {
|
||||
return {VALID: false, ERROR: App.Validate.getFieldName(elm) + ' too long'};
|
||||
}
|
||||
}
|
||||
return {VALID: true};
|
||||
},
|
||||
'statslogin' : function(elm) {
|
||||
if (!!$('#stats-auth-enable').attr('checked') == true) {
|
||||
if ($(elm).val().trim() == '' || $(elm).val().search(/[^a-zA-Z_]+/) != -1) {
|
||||
if ($(elm).val().trim() == '' || $(elm).val().search(/[^a-zA-Z_0-9]+/) != -1) {
|
||||
return {VALID: false, ERROR: App.Validate.getFieldName(elm) + ' is invalid'};
|
||||
}
|
||||
if ($(elm).val().trim() != '' && $(elm).val().length > App.Settings.FIELD_MAX_LEN) {
|
||||
|
@ -44,11 +39,14 @@ App.Validate.Rule = {
|
|||
if ($(elm).val().trim() != '' && $(elm).val().length > App.Settings.FIELD_MAX_LEN) {
|
||||
return {VALID: false, ERROR: App.Validate.getFieldName(elm) + ' too long'};
|
||||
}
|
||||
if ($(elm).val().trim() != '' && $(elm).val().length < App.Settings.PSW_MIN_LEN) {
|
||||
return {VALID: false, ERROR: App.Validate.getFieldName(elm) + ' too short'};
|
||||
}
|
||||
}
|
||||
return {VALID: true};
|
||||
},
|
||||
'username' : function(elm) {
|
||||
if ($(elm).val().trim() != '' && $(elm).val().search(/[^a-zA-Z_]+/) != -1) {
|
||||
if ($(elm).val().trim() != '' && $(elm).val().search(/[^a-zA-Z_0-9\.\-]+/) != -1) {
|
||||
return {VALID: false, ERROR: App.Validate.getFieldName(elm) + ' is invalid'};
|
||||
}
|
||||
if ($(elm).val().trim() != '' && $(elm).val().length > App.Settings.FIELD_MAX_LEN) {
|
||||
|
@ -100,13 +98,13 @@ App.Validate.Rule = {
|
|||
return {VALID: true};
|
||||
},
|
||||
'domain': function(elm) {
|
||||
if ($(elm).val().trim() != '' && (/^([a-z0-9\.])*[a-z0-9][a-z0-9\-]+[a-z0-9](\.[a-z]{2,4})+$/).test($(elm).val()) == false) {
|
||||
if ($(elm).val().trim() != '' && $(elm).val().search(/[^a-zA-Z0-9\.\-\*]+/) != -1) {
|
||||
return {VALID: false, ERROR: App.Validate.getFieldName(elm) + ' not a valid domain name'};
|
||||
}
|
||||
return {VALID: true};
|
||||
},
|
||||
'ns': function(elm) {
|
||||
if ($(elm).val().trim() != '' && (/^([a-z0-9\.])*[a-z0-9][a-z0-9\-]+[a-z0-9](\.[a-z]{2,4})+$/).test($(elm).val()) == false) {
|
||||
if ($(elm).val().trim() != '' && $(elm).val().search(/[^a-zA-Z0-9\.\-\*]+/) != -1) {
|
||||
return {VALID: false, ERROR: App.Validate.getFieldName(elm) + ' not a valid NS name'};
|
||||
}
|
||||
if ($(elm).val().trim() == '' && $(elm).val().length > App.Settings.FIELD_MAX_LEN) {
|
||||
|
|
|
@ -40,61 +40,3 @@ App.View.listItems = function(reply){
|
|||
App.Ref.CONTENT.html(html);
|
||||
App.Helpers.updateScreen();
|
||||
}
|
||||
/*App.View.start = function(){
|
||||
|
||||
};
|
||||
|
||||
App.View.showDatabases = function(databases){
|
||||
var tpl = App.HTML.makeDatabases(databases);
|
||||
$('#navigation').html(tpl.wrapperize('database_wrap', 'database'));
|
||||
}
|
||||
|
||||
App.View.openDatabase = function(data, ref, db_name){
|
||||
var tpl = App.HTML.makeDbTableList(data);
|
||||
$('.databases .tables').remove();
|
||||
$('.databases .active').removeClass('active');
|
||||
$(ref).after(tpl.wrapperize('database_table_wrap', 'database'));
|
||||
|
||||
$(ref).attr('className', 'active do.closeDatabase('+db_name+')"');
|
||||
}
|
||||
|
||||
App.View.openTable = function(data, ref, table_name){
|
||||
var tpl = App.HTML.makeDbFieldsList(data);
|
||||
$(ref).next('.fields').remove();
|
||||
$(ref).after(tpl.wrapperize('database_field_wrap', 'database'));
|
||||
|
||||
$(ref).attr('className', 'active do.closeTable('+table_name+')"');
|
||||
|
||||
App.Helpers.updateScreen();
|
||||
}
|
||||
|
||||
App.View.resultReturned = function(reply){
|
||||
if(reply.result){
|
||||
$('#results').text(reply.data);
|
||||
}else{
|
||||
$('#results').text(reply.message);
|
||||
}
|
||||
}
|
||||
|
||||
App.View.Pages.IP.list = function(reply){
|
||||
var acc = [];
|
||||
$(reply.data).each(function(i, o){
|
||||
acc[acc.length++] = App.HTML.Build.ip_entry(o);
|
||||
});
|
||||
|
||||
var html = acc.done().wrapperize('ENTRIES_WRAPPER', 'ip');
|
||||
App.Ref.CONTENT.html(html);
|
||||
App.Helpers.updateScreen();
|
||||
}
|
||||
|
||||
App.View.Pages.DNS.list = function(reply){
|
||||
var acc = [];
|
||||
$(reply.data).each(function(i, o){
|
||||
acc[acc.length++] = App.HTML.Build.dns_entry(o);
|
||||
});
|
||||
|
||||
var html = acc.done().wrapperize('ENTRIES_WRAPPER', 'dns');
|
||||
App.Ref.CONTENT.html(html);
|
||||
App.Helpers.updateScreen();
|
||||
}
|
||||
*/
|
||||
|
|
|
@ -41,10 +41,19 @@ class AjaxHandler {
|
|||
*/
|
||||
public function dispatch(Request $request)
|
||||
{
|
||||
VestaSession::start();
|
||||
|
||||
$allowed_actions = array(
|
||||
'MAIN.signin',
|
||||
'MAIN.logout',
|
||||
'MAIN.requestpassword',
|
||||
'MAIN.resetpassword',
|
||||
'MAIN.about');
|
||||
$method = Request::parseAjaxMethod($request);
|
||||
if (!in_array($method['namespace'].'.'.$method['function'], array('MAIN.signin', 'MAIN.logout'))) {
|
||||
$user = $this->getLoggedUser();
|
||||
}
|
||||
|
||||
if (!in_array($method['namespace'].'.'.$method['function'], $allowed_actions)) {
|
||||
$user = $this->getLoggedUser();
|
||||
}
|
||||
|
||||
$inc_file = V_ROOT_DIR . 'api' . DIRECTORY_SEPARATOR . $method['namespace'] . '.class.php';
|
||||
if (!is_readable($inc_file)) {
|
||||
|
@ -67,7 +76,7 @@ class AjaxHandler {
|
|||
*/
|
||||
public function reply($result, $data, $message = '', $extra = array())
|
||||
{
|
||||
return json_encode(array('result' => $result,
|
||||
return json_encode(array('result' => $result,
|
||||
'data' => $data,
|
||||
'message' => $message,
|
||||
'extra' => $extra,
|
||||
|
@ -84,19 +93,23 @@ class AjaxHandler {
|
|||
// Error handlers
|
||||
//
|
||||
|
||||
static function generalError($error) {
|
||||
static function generalError($error)
|
||||
{
|
||||
self::renderGlobalError(Message::ERROR, Message::GENERAL_ERROR, $error);
|
||||
}
|
||||
|
||||
static function protectionError($error) {
|
||||
static function protectionError($error)
|
||||
{
|
||||
self::renderGlobalError(Message::ERROR, Message::PROTECTION_ERROR, $error);
|
||||
}
|
||||
|
||||
static function systemError($error) {
|
||||
static function systemError($error)
|
||||
{
|
||||
self::renderGlobalError(Message::ERROR, Message::SYSTEM_ERROR, $error);
|
||||
}
|
||||
|
||||
static function renderGlobalError($type, $message, $error) {
|
||||
static function renderGlobalError($type, $message, $error)
|
||||
{
|
||||
/*$trace = $error->getTrace();
|
||||
AjaxHandler::makeReply(
|
||||
AjaxHandler::getInstance()->reply(false, $type, $message . ': ' . $error->getMessage(), $trace[0]['file'] . ' / ' . $trace[0]['line'])
|
||||
|
|
|
@ -369,9 +369,14 @@ class DNS extends AjaxHandler
|
|||
|
||||
public function getTemplateInfoExecute($request)
|
||||
{
|
||||
$spell = $request->getParameter('spell');
|
||||
$result = Vesta::execute('v_list_sys_user_packages', null, self::TEXT);
|
||||
return $this->reply(true, $result['data']);
|
||||
$spell = $request->getParameter('spell');
|
||||
$result = Vesta::execute('v_list_sys_user_packages', null, self::JSON);
|
||||
$reply = $result['data'];
|
||||
if (isset($spell['PACKAGE'])) {
|
||||
$reply = $result['data'][$spell['PACKAGE']];
|
||||
}
|
||||
|
||||
return $this->reply(true, $reply);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -19,35 +19,114 @@ class MAIN extends AjaxHandler
|
|||
|
||||
protected $templates = null;
|
||||
|
||||
/**
|
||||
* Get Version
|
||||
*
|
||||
* @param Request $request
|
||||
* @return string - Ajax Reply
|
||||
*/
|
||||
public function versionExecute(Request $request)
|
||||
public function aboutExecute($request)
|
||||
{
|
||||
$result = array(
|
||||
'version' => '1.0',
|
||||
'author' => 'http://vestacp.com/',
|
||||
'docs' => 'http://vestacp.com/docs'
|
||||
);
|
||||
$about = array('version' => '0', 'company_email' => 'support@vestacp.com',
|
||||
'version_name' => 'OGRE-23-1', 'company_name' => 'vestacp.com');
|
||||
$config = Vesta::execute(Vesta::V_LIST_SYS_CONFIG, 'json');
|
||||
if (!empty($config['data']) && !empty($config['data']['config'])) {
|
||||
$config = $config['data']['config'];
|
||||
$about['version'] = $config['VERSION'];
|
||||
$about['version_name'] = $config['VERSION_NAME'];
|
||||
$about['company_email'] = $config['COMPANY_EMAIL'];
|
||||
$about['company_name'] = $config['COMPANY_NAME'];
|
||||
}
|
||||
|
||||
return $this->reply(true, $about);
|
||||
}
|
||||
|
||||
return $this->reply(true, $result);
|
||||
public function requestPasswordExecute($request)
|
||||
{
|
||||
if (empty($_SESSION['captcha_key'])
|
||||
|| $_SESSION['captcha_key'] != $request->getParameter('captcha')) {
|
||||
return $this->reply(false, null, 'Captcha is invalid ');
|
||||
}
|
||||
|
||||
// TODO: captcha
|
||||
$users = Vesta::execute(Vesta::V_LIST_SYS_USERS, 'json');
|
||||
$email_matched_count = array();
|
||||
|
||||
if (!preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/",$request->getParameter('email'))) {
|
||||
return $this->reply(false, null, 'Email is invalid');
|
||||
}
|
||||
|
||||
foreach ($users['data'] as $user) {
|
||||
if ($user['CONTACT'] == trim($request->getParameter('email'))) {
|
||||
$email_matched_count[] = $user;
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($email_matched_count)) {
|
||||
return $this->reply(false, null, 'There is no such user.');
|
||||
}
|
||||
|
||||
$secret_key = $this->generateResetPasswordKey();
|
||||
$reset_link = 'https://'.$_SERVER['HTTP_HOST'].'/change_password.php?v='.$secret_key;
|
||||
|
||||
$mail_body = <<<MAIL
|
||||
<div lang="en" style="background-color:#fff;color:#222">
|
||||
<a target="_blank" href="" style="color:#FFF">
|
||||
<img width="81" height="22" style="display:block;border:0" src="http://vestacp.com/i/logo.png" alt="Twitter">
|
||||
</a>
|
||||
<div style="font-family:'Helvetica Neue', Arial, Helvetica, sans-serif;font-size:13px;margin:14px">
|
||||
<h2 style="font-family:'Helvetica Neue', Arial, Helvetica, sans-serif;margin:0 0 16px;font-size:18px;font-weight:normal">
|
||||
Vesta received a request to reset the password for your account {$user['FNAME']} {$user['LNAME']}?
|
||||
</h2>
|
||||
<p>
|
||||
If you want to reset your password, click on the link below (or copy and paste the URL into your browser):<br>
|
||||
<a target="_blank" href="{$reset_link}">{$reset_link}</a>
|
||||
</p>
|
||||
<p>
|
||||
If you don't want to reset your password, please ignore this message.
|
||||
Your password will not be reset.
|
||||
If you have any concerns, please contact us at support@vestacp.com.
|
||||
</p>
|
||||
<p style="font-family:'Helvetica Neue', Arial, Helvetica, sans-serif;font-size:13px;line-height:18px;border-bottom:1px solid rgb(238, 238, 238);padding-bottom:10px;margin:0 0 10px">
|
||||
<span style="font:italic 13px Georgia,serif;color:rgb(102, 102, 102)">VestaCP</span>
|
||||
</p>
|
||||
<p style="font-family:'Helvetica Neue', Arial, Helvetica, sans-serif;margin-top:5px;font-size:10px;color:#888888">
|
||||
Please do not reply to this message; it was sent from an unmonitored email address.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
MAIL;
|
||||
|
||||
$headers = 'MIME-Version: 1.0' . "\n";
|
||||
$headers .= 'Content-type: text/html; charset=UTF-8' . "\n";
|
||||
$to = $request->getParameter('email');
|
||||
$subject = 'Reset your Vesta password';
|
||||
$message = $mail_body;
|
||||
mail($to, $subject, $message, $headers);
|
||||
|
||||
return $this->reply(true, array('key_code' => substr($secret_key, 0, 5) . $_SERVER['REQUEST_TIME'] . substr($secret_key, -5)));
|
||||
}
|
||||
|
||||
public function generateResetPasswordKey()
|
||||
{
|
||||
$key = sha1($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']);
|
||||
$key = substr($key, 0, 10) . $_SERVER['REQUEST_TIME'] . substr($key, 10, strlen($key));
|
||||
|
||||
return $key;
|
||||
}
|
||||
|
||||
public function signinExecute($request)
|
||||
{
|
||||
$login = $request->getParameter('login');
|
||||
$password = $request->getParameter('password');
|
||||
$login = $request->getParameter('login');
|
||||
$password = $request->getParameter('password');
|
||||
$result = Vesta::execute('v_check_sys_user_password', array('USER' => $login, 'PASSWORD' => $password), self::TEXT);
|
||||
|
||||
$result = Vesta::execute('v_check_sys_user_password', array('USER' => $login, 'PASSWORD' => $password));
|
||||
if ($result['status'] == true) {
|
||||
return $this->reply(VestaSession::authorize($login));
|
||||
}
|
||||
else {
|
||||
return $this->reply(false, 'Incorrect login / password');
|
||||
}
|
||||
if ($result['status'] == true) {
|
||||
return $this->reply(true, array('v_sd' => VestaSession::authorize($login)));
|
||||
}
|
||||
else {
|
||||
return $this->reply(false, array('error_msg' => 'Incorrect login or password'));
|
||||
}
|
||||
}
|
||||
|
||||
public function logoffExecute($request)
|
||||
{
|
||||
VestaSession::logoff();
|
||||
return $this->reply(true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -59,74 +138,75 @@ class MAIN extends AjaxHandler
|
|||
*/
|
||||
public function getInitialExecute(Request $request)
|
||||
{
|
||||
$user = VestaSession::getInstance()->getUser();
|
||||
$global_data = array();
|
||||
$totals = array(
|
||||
'USER' => array('total' => 0, 'blocked' => 0),
|
||||
$user = VestaSession::getInstance()->getUser();
|
||||
$global_data = array();
|
||||
$totals = array(
|
||||
'USER' => array('total' => 0, 'blocked' => 0),
|
||||
'WEB_DOMAIN' => array('total' => 0, 'blocked' => 0),
|
||||
'MAIL' => array('total' => 0),
|
||||
'MAIL' => array('total' => 0),
|
||||
'DB' => array('total' => 0, 'blocked' => 0),
|
||||
'DNS' => array('total' => 0, 'blocked' => 0),
|
||||
'IP' => array('total' => 0, 'blocked' => 0),
|
||||
'CRON' => array('total' => 0, 'blocked' => 0)
|
||||
);
|
||||
|
||||
// users
|
||||
$rs = Vesta::execute(Vesta::V_LIST_SYS_USERS, null, self::JSON);
|
||||
$data_user = $rs['data'];
|
||||
$global_data['users'] = array();
|
||||
foreach ($data_user as $login_name => $usr) {
|
||||
$totals['USER']['total'] += 1;
|
||||
if ($usr['SUSPENDED'] != 'yes') {
|
||||
$global_data['users'][$login_name] = $login_name;
|
||||
}
|
||||
else {
|
||||
$totals['USER']['blocked'] += 1;
|
||||
}
|
||||
}
|
||||
// web_domains
|
||||
$rs = Vesta::execute(Vesta::V_LIST_WEB_DOMAINS, array('USER' => $user['uid']), self::JSON);
|
||||
$data_web_domain = $rs['data'];
|
||||
foreach ($data_web_domain as $web) {
|
||||
$totals['WEB_DOMAIN']['total'] += 1;
|
||||
}
|
||||
// db
|
||||
$rs = Vesta::execute(Vesta::V_LIST_DB_BASES, array('USER' => $user['uid']), self::JSON);
|
||||
$data_db = $rs['data'];
|
||||
foreach ($data_db as $db) {
|
||||
$totals['DB']['total'] += 1;
|
||||
//$db['SUSPENDED'] == 'yes' ? $totals['DB']['blocked'] += 1 : false;
|
||||
}
|
||||
// dns
|
||||
$rs = Vesta::execute(Vesta::V_LIST_DNS_DOMAINS, array('USER' => $user['uid']), self::JSON);
|
||||
$data_dns = $rs['data'];
|
||||
foreach ($data_dns as $dns) {
|
||||
$totals['DNS']['total'] += 1;
|
||||
}
|
||||
// ip
|
||||
$global_data['ips'] = array();
|
||||
$rs = Vesta::execute(Vesta::V_LIST_SYS_IPS, null, self::JSON);
|
||||
$data_ip = $rs['data'];
|
||||
foreach ($data_ip as $ip => $obj) {
|
||||
$totals['IP']['total'] += 1;
|
||||
$global_data['ips'][$ip] = $ip;
|
||||
}
|
||||
// cron
|
||||
$rs = Vesta::execute(Vesta::V_LIST_CRON_JOBS, array('USER' => $user['uid']), self::JSON);
|
||||
$data_cron = $rs['data'];
|
||||
foreach ($data_cron as $cron) {
|
||||
$totals['CRON']['total'] += 1;
|
||||
$cron['SUSPEND'] == 'yes' ? $totals['CRON']['blocked'] += 1 : false;
|
||||
}
|
||||
// users
|
||||
$rs = Vesta::execute(Vesta::V_LIST_SYS_USERS, null, self::JSON);
|
||||
$data_user = $rs['data'];
|
||||
$global_data['users'] = array();
|
||||
foreach ($data_user as $login_name => $usr) {
|
||||
$totals['USER']['total'] += 1;
|
||||
if ($usr['SUSPENDED'] != 'yes') {
|
||||
$global_data['users'][$login_name] = $login_name;
|
||||
}
|
||||
else {
|
||||
$totals['USER']['blocked'] += 1;
|
||||
}
|
||||
}
|
||||
// web_domains
|
||||
$rs = Vesta::execute(Vesta::V_LIST_WEB_DOMAINS, array('USER' => $user['uid']), self::JSON);
|
||||
$data_web_domain = $rs['data'];
|
||||
foreach ($data_web_domain as $web) {
|
||||
$totals['WEB_DOMAIN']['total'] += 1;
|
||||
}
|
||||
// db
|
||||
$rs = Vesta::execute(Vesta::V_LIST_DB_BASES, array('USER' => $user['uid']), self::JSON);
|
||||
$data_db = $rs['data'];
|
||||
foreach ($data_db as $db) {
|
||||
$totals['DB']['total'] += 1;
|
||||
}
|
||||
// dns
|
||||
$rs = Vesta::execute(Vesta::V_LIST_DNS_DOMAINS, array('USER' => $user['uid']), self::JSON);
|
||||
$data_dns = $rs['data'];
|
||||
foreach ($data_dns as $dns) {
|
||||
$totals['DNS']['total'] += 1;
|
||||
}
|
||||
// ip
|
||||
$global_data['ips'] = array();
|
||||
$rs = Vesta::execute(Vesta::V_LIST_SYS_IPS, null, self::JSON);
|
||||
$data_ip = $rs['data'];
|
||||
foreach ($data_ip as $ip => $obj) {
|
||||
$totals['IP']['total'] += 1;
|
||||
$global_data['ips'][$ip] = $ip;
|
||||
}
|
||||
// cron
|
||||
$rs = Vesta::execute(Vesta::V_LIST_CRON_JOBS, array('USER' => $user['uid']), self::JSON);
|
||||
$data_cron = $rs['data'];
|
||||
foreach ($data_cron as $cron) {
|
||||
$totals['CRON']['total'] += 1;
|
||||
$cron['SUSPEND'] == 'yes' ? $totals['CRON']['blocked'] += 1 : false;
|
||||
}
|
||||
|
||||
$reply = array(
|
||||
$reply = array(
|
||||
'auth_user' => array('uid' => $this->getLog),
|
||||
'WEB_DOMAIN' => $this->getWebDomainParams($data_web_domin, $global_data),
|
||||
'CRON' => $this->getCronParams(),
|
||||
'IP' => $this->getIpParams($data_ip, $global_data),
|
||||
'DNS' => $this->getDnsParams(),
|
||||
'DB' => $this->getDbParams($data_db),
|
||||
'USERS' => $this->getUsersParams($data_user),
|
||||
'totals' => $totals
|
||||
'totals' => $totals,
|
||||
'PROFILE' => $user
|
||||
);
|
||||
|
||||
return $this->reply(true, $reply);
|
||||
|
@ -134,21 +214,20 @@ class MAIN extends AjaxHandler
|
|||
|
||||
protected function getTemplates()
|
||||
{
|
||||
if (null != $this->templates) {
|
||||
return $this->templates;
|
||||
}
|
||||
else {
|
||||
$user = $this->getLoggedUser();
|
||||
$this->templates = array();
|
||||
//v_list_web_templates vesta json
|
||||
$result = Vesta::execute('v_list_web_templates', array('USER' => $user['uid']), self::JSON);
|
||||
// TODO: handle errors!
|
||||
foreach ($result['data'] as $tpl => $description) {
|
||||
$this->templates[$tpl] = $tpl;
|
||||
}
|
||||
if (null != $this->templates) {
|
||||
return $this->templates;
|
||||
}
|
||||
else {
|
||||
$user = $this->getLoggedUser();
|
||||
$this->templates = array();
|
||||
$result = Vesta::execute(Vesta::V_LIST_WEB_TEMPLATES, array('USER' => $user['uid']), self::JSON);
|
||||
// TODO: handle errors!
|
||||
foreach ($result['data'] as $tpl => $description) {
|
||||
$this->templates[$tpl] = $description;
|
||||
}
|
||||
|
||||
return $this->templates;
|
||||
}
|
||||
return $this->templates;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -159,16 +238,16 @@ class MAIN extends AjaxHandler
|
|||
*/
|
||||
public function getWebDomainParams($data, $global_data)
|
||||
{
|
||||
$user = $this->getLoggedUser();
|
||||
$ips = array();
|
||||
$result = Vesta::execute(Vesta::V_LIST_SYS_USER_IPS, array('USER' => $user['uid']), self::JSON);
|
||||
foreach ($result['data'] as $sys_ip => $ip_data) {
|
||||
$ips[$sys_ip] = $sys_ip;
|
||||
}
|
||||
$user = $this->getLoggedUser();
|
||||
$ips = array();
|
||||
$result = Vesta::execute(Vesta::V_LIST_SYS_USER_IPS, array('USER' => $user['uid']), self::JSON);
|
||||
foreach ($result['data'] as $sys_ip => $ip_data) {
|
||||
$ips[$sys_ip] = $sys_ip;
|
||||
}
|
||||
|
||||
if (empty($ips)) {
|
||||
$ips['No available IP'] = 'No available IP';
|
||||
}
|
||||
if (empty($ips)) {
|
||||
$ips['No available IP'] = 'No available IP';
|
||||
}
|
||||
|
||||
return array(
|
||||
'TPL' => $this->getTemplates(),
|
||||
|
@ -201,7 +280,7 @@ class MAIN extends AjaxHandler
|
|||
*/
|
||||
public function getIpParams($data = array(), $global_data = array())
|
||||
{
|
||||
$ifaces = array();
|
||||
$ifaces = array();
|
||||
$result = Vesta::execute(Vesta::V_LIST_SYS_INTERFACES, array(Config::get('response_type')));
|
||||
|
||||
foreach ($result['data'] as $iface) {
|
||||
|
@ -215,7 +294,7 @@ class MAIN extends AjaxHandler
|
|||
'exclusive' => 'exclusive'
|
||||
),
|
||||
'INTERFACES' => $ifaces,
|
||||
'OWNER' => $global_data['users'],
|
||||
'OWNER' => $global_data['users'],
|
||||
'MASK' => array(
|
||||
'255.255.255.0' => '255.255.255.0',
|
||||
'255.255.255.128' => '255.255.255.128',
|
||||
|
@ -237,9 +316,18 @@ class MAIN extends AjaxHandler
|
|||
*/
|
||||
public function getDnsParams($data = array())
|
||||
{
|
||||
$dns_templates = array();
|
||||
$user = $this->getLoggedUser();
|
||||
$this->templates = array();
|
||||
$result = Vesta::execute(Vesta::V_LIST_DNS_TEMPLATES, null, self::JSON);
|
||||
// TODO: handle errors!
|
||||
foreach ($result['data'] as $tpl => $description) {
|
||||
$dns_templates[$tpl] = $description;
|
||||
}
|
||||
|
||||
return array(
|
||||
'IP' => @$data['ips'],
|
||||
'TPL' => $this->getTemplates(),
|
||||
'TPL' => $dns_templates,
|
||||
'EXP' => array(),
|
||||
'SOA' => array(),
|
||||
'TTL' => array(),
|
||||
|
@ -277,14 +365,14 @@ class MAIN extends AjaxHandler
|
|||
* @params array $data
|
||||
* @return array
|
||||
*/
|
||||
public function getUsersParams($data = array())
|
||||
{
|
||||
$pckg = array();
|
||||
// json
|
||||
$result = Vesta::execute('v_list_sys_user_packages', null, self::JSON);
|
||||
foreach ($result['data'] as $pckg_name => $pckg_data) {
|
||||
$pckg[$pckg_name] = $pckg_name;
|
||||
}
|
||||
public function getUsersParams($data = array(), $global_data)
|
||||
{
|
||||
$pckg = array();
|
||||
// json
|
||||
$result = Vesta::execute('v_list_sys_user_packages', null, self::JSON);
|
||||
foreach ($result['data'] as $pckg_name => $pckg_data) {
|
||||
$pckg[$pckg_name] = $pckg_name;
|
||||
}
|
||||
return array(
|
||||
'ROLE' => array('user' => 'user'),
|
||||
'OWNER' => $data['user_names'],
|
||||
|
|
|
@ -23,14 +23,14 @@ class USER extends AjaxHandler
|
|||
$result = Vesta::execute(Vesta::V_LIST_SYS_USERS, array(Config::get('response_type')));
|
||||
|
||||
foreach ($result['data'] as $user => $details) {
|
||||
// get reports attribute
|
||||
$result_report = Vesta::execute(Vesta::V_GET_SYS_USER_VALUE, array('USER' => $user, 'VALUE' => 'reports'), self::TEXT);
|
||||
if ($result_report['status'] != true) {
|
||||
$report = null;
|
||||
}
|
||||
else {
|
||||
$report = $result_report['data'];
|
||||
}
|
||||
// get reports attribute
|
||||
$result_report = Vesta::execute(Vesta::V_GET_SYS_USER_VALUE, array('USER' => $user, 'VALUE' => 'reports'), self::TEXT);
|
||||
if ($result_report['status'] != true) {
|
||||
$report = null;
|
||||
}
|
||||
else {
|
||||
$report = $result_report['data'];
|
||||
}
|
||||
$fullname_id = rand(0, count($users)-1);
|
||||
$fullname = implode('', array($details['FNAME'], ' ', $details['LNAME']));
|
||||
|
||||
|
@ -72,7 +72,7 @@ class USER extends AjaxHandler
|
|||
"U_MAIL_BOXES" => rand(1, 10), // TODO: skid
|
||||
"U_MAIL_FORWARDERS" => rand(1, 10), // TODO: skid
|
||||
"REPORTS_ENABLED" => $report,
|
||||
"U_WEB_DOMAINS" => $details['U_WEB_DOMAINS']
|
||||
"U_WEB_DOMAINS" => $details['U_WEB_DOMAINS']
|
||||
);
|
||||
$reply[$user] = array_merge($user_details, $nses);
|
||||
}
|
||||
|
@ -104,11 +104,9 @@ class USER extends AjaxHandler
|
|||
$result = Vesta::execute(Vesta::V_ADD_SYS_USER, $params);
|
||||
// Reports
|
||||
$enable_reports = Utils::getCheckboxBooleanValue($spell['REPORTS_ENABLED']);
|
||||
$reports_result = $this->setUserReports($spell['LOGIN_NAME'], $spell['REPORTS_ENABLED']);
|
||||
// NS
|
||||
//$ns_result = $this->setNSentries($spell['LOGIN_NAME'], $spell);
|
||||
// Set SHELL
|
||||
$this->setShell($spell['LOGIN_NAME'], $spell['SHELL']);
|
||||
$reports_result = $this->setUserReports($spell['LOGIN_NAME'], $spell['REPORTS_ENABLED']);
|
||||
// Set SHELL
|
||||
$this->setShell($spell['LOGIN_NAME'], $spell['SHELL']);
|
||||
|
||||
if (!$result['status']) {
|
||||
$this->errors[] = array($result['error_code'] => $result['error_message']);
|
||||
|
@ -180,8 +178,8 @@ class USER extends AjaxHandler
|
|||
}
|
||||
}
|
||||
|
||||
// Set SHELL
|
||||
$this->setShell($_USER, $_new['SHELL']);
|
||||
// Set SHELL
|
||||
$this->setShell($_USER, $_new['SHELL']);
|
||||
|
||||
$this->setNSentries($_USER, $_new);
|
||||
|
||||
|
@ -195,16 +193,7 @@ class USER extends AjaxHandler
|
|||
if (!$result['status']) {
|
||||
$this->status = FALSE;
|
||||
$this->errors['NAMES'] = array($result['error_code'] => $result['error_message']);
|
||||
}
|
||||
|
||||
/*if ($_old['SHELL'] != $_new['SHELL']) {
|
||||
$result = array();
|
||||
$result = Vesta::execute(Vesta::V_CHANGE_SYS_USER_SHELL, array('USER' => $_USER, 'SHELL' => $_new['SHELL']));
|
||||
if (!$result['status']) {
|
||||
$this->status = FALSE;
|
||||
$this->errors['SHELL'] = array($result['error_code'] => $result['error_message']);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
if (!$this->status) {
|
||||
Vesta::execute(Vesta::V_CHANGE_SYS_USER_PASSWORD, array('USER' => $_USER, 'PASSWORD' => $_old['PASSWORD']));
|
||||
|
@ -233,14 +222,14 @@ class USER extends AjaxHandler
|
|||
{
|
||||
$ns = array();
|
||||
$ns['USER'] = $user;
|
||||
$ns['NS1'] = $data['NS1'];
|
||||
$ns['NS2'] = $data['NS2'];
|
||||
$ns['NS3'] = isset($data['NS3']) ? $data['NS3'] : '';
|
||||
$ns['NS4'] = isset($data['NS4']) ? $data['NS4'] : '';
|
||||
$ns['NS5'] = isset($data['NS5']) ? $data['NS5'] : '';
|
||||
$ns['NS6'] = isset($data['NS6']) ? $data['NS6'] : '';
|
||||
$ns['NS7'] = isset($data['NS7']) ? $data['NS7'] : '';
|
||||
$ns['NS8'] = isset($data['NS8']) ? $data['NS8'] : '';
|
||||
$ns['NS1'] = $data['NS1'];
|
||||
$ns['NS2'] = $data['NS2'];
|
||||
$ns['NS3'] = isset($data['NS3']) ? $data['NS3'] : '';
|
||||
$ns['NS4'] = isset($data['NS4']) ? $data['NS4'] : '';
|
||||
$ns['NS5'] = isset($data['NS5']) ? $data['NS5'] : '';
|
||||
$ns['NS6'] = isset($data['NS6']) ? $data['NS6'] : '';
|
||||
$ns['NS7'] = isset($data['NS7']) ? $data['NS7'] : '';
|
||||
$ns['NS8'] = isset($data['NS8']) ? $data['NS8'] : '';
|
||||
|
||||
$result = Vesta::execute(Vesta::V_CHANGE_SYS_USER_NS, $ns);
|
||||
|
||||
|
@ -265,6 +254,6 @@ class USER extends AjaxHandler
|
|||
*/
|
||||
protected function setShell($user, $shell)
|
||||
{
|
||||
$result = Vesta::execute(Vesta::V_CHANGE_SYS_USER_SHELL, array('USER' => $user, 'SHELL' => $shell));
|
||||
$result = Vesta::execute(Vesta::V_CHANGE_SYS_USER_SHELL, array('USER' => $user, 'SHELL' => $shell));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,24 +26,24 @@ class WEB_DOMAIN extends AjaxHandler
|
|||
foreach($result['data'] as $web_domain => $record)
|
||||
{
|
||||
$web_details = array(
|
||||
'IP' => $record['IP'],
|
||||
'U_DISK' => $record['U_DISK'],
|
||||
'U_BANDWIDTH' => $record['U_BANDWIDTH'],
|
||||
'TPL' => $record['TPL'],
|
||||
'ALIAS' => $record['ALIAS'],
|
||||
'PHP' => $record['PHP'],
|
||||
'CGI' => $record['CGI'],
|
||||
'ELOG' => $record['ELOG'],
|
||||
'STAT' => $record['STATS'],
|
||||
'STATS_LOGIN' => $record['STATS_AUTH'],
|
||||
'SSL' => $record['SSL'],
|
||||
'SSL_HOME' => $record['SSL_HOME'],
|
||||
'SSL_CERT' => $record['SSL_CERT'],
|
||||
'NGINX' => $record['NGINX'],
|
||||
'NGINX_EXT' => $record['NGINX_EXT'],
|
||||
'SUSPEND' => $record['SUSPEND'],
|
||||
'DATE' => date(Config::get('ui_date_format', strtotime($record['DATE'])))
|
||||
);
|
||||
'IP' => $record['IP'],
|
||||
'U_DISK' => $record['U_DISK'],
|
||||
'U_BANDWIDTH' => $record['U_BANDWIDTH'],
|
||||
'TPL' => $record['TPL'],
|
||||
'ALIAS' => $record['ALIAS'],
|
||||
'PHP' => $record['PHP'],
|
||||
'CGI' => $record['CGI'],
|
||||
'ELOG' => $record['ELOG'],
|
||||
'STAT' => $record['STATS'],
|
||||
'STATS_LOGIN' => $record['STATS_AUTH'],
|
||||
'SSL' => $record['SSL'],
|
||||
'SSL_HOME' => $record['SSL_HOME'],
|
||||
'SSL_CERT' => $record['SSL_CERT'],
|
||||
'NGINX' => $record['NGINX'],
|
||||
'NGINX_EXT' => $record['NGINX_EXT'],
|
||||
'SUSPEND' => $record['SUSPEND'],
|
||||
'DATE' => date(Config::get('ui_date_format', strtotime($record['DATE'])))
|
||||
);
|
||||
$web_details['STAT'] == '' ? $web_details['STAT'] = 'none' : true;
|
||||
$reply[$web_domain] = $web_details;
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ class WEB_DOMAIN extends AjaxHandler
|
|||
$this->errors['STAT_AUTH'] = array($result['error_code'] => $result['error_message']);
|
||||
}
|
||||
|
||||
if (!empty($_new['CGI'])) {
|
||||
if (!empty($_new['CGI'])) {
|
||||
if (Utils::getCheckboxBooleanValue($_new['CGI'])) {
|
||||
$result = array();
|
||||
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_CGI, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN));
|
||||
|
@ -248,10 +248,10 @@ class WEB_DOMAIN extends AjaxHandler
|
|||
$_old = $request->getParameter('old');
|
||||
$_new = $request->getParameter('new');
|
||||
|
||||
$_old['ELOG'] = $_old['ELOG'] == 'yes' ? 'on' : 'off';
|
||||
$_old['CGI'] = $_old['CGI'] == 'yes' ? 'on' : 'off';
|
||||
$_old['AUTH'] = $_old['AUTH'] == 'yes' ? 'on' : 'off';
|
||||
$_old['SSL'] = $_old['SSL'] == 'yes' ? 'on' : 'off';
|
||||
$_old['ELOG'] = $_old['ELOG'] == 'yes' ? 'on' : 'off';
|
||||
$_old['CGI'] = $_old['CGI'] == 'yes' ? 'on' : 'off';
|
||||
$_old['AUTH'] = $_old['AUTH'] == 'yes' ? 'on' : 'off';
|
||||
$_old['SSL'] = $_old['SSL'] == 'yes' ? 'on' : 'off';
|
||||
|
||||
$user = $this->getLoggedUser();
|
||||
$_DOMAIN = $_new['DOMAIN'];
|
||||
|
@ -301,7 +301,7 @@ class WEB_DOMAIN extends AjaxHandler
|
|||
}
|
||||
|
||||
|
||||
if (($_old['STATH_AUTH'] != $_new['STAT_AUTH']) && !empty($_s['STAT_AUTH']) && @Utils::getCheckboxBooleanValue($_s['STATS_AUTH'])) {
|
||||
if (($_old['STATH_AUTH'] != $_new['STAT_AUTH']) && !empty($_s['STAT_AUTH']) && @Utils::getCheckboxBooleanValue($_s['STATS_AUTH'])) {
|
||||
$params = array(
|
||||
'USER' => $user['uid'],
|
||||
'DOMAIN' => $_DOMAIN,
|
||||
|
@ -314,7 +314,7 @@ class WEB_DOMAIN extends AjaxHandler
|
|||
if(!$result['status']) {
|
||||
$this->errors['STAT_AUTH'] = array($result['error_code'] => $result['error_message']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (($_old['STAT'] != $_new['STAT'])) {
|
||||
if ($_new['STAT'] != 'none') {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
define('VESTA_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR);
|
||||
define('V_ROOT_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR);
|
||||
|
||||
require_once V_ROOT_DIR . 'config/Config.class.php';
|
||||
|
@ -12,8 +13,6 @@ require_once V_ROOT_DIR . 'core/utils/Message.class.php';
|
|||
require_once V_ROOT_DIR . 'core/Request.class.php';
|
||||
require_once V_ROOT_DIR . 'api/AjaxHandler.php';
|
||||
|
||||
VestaSession::start();
|
||||
|
||||
/**
|
||||
* App execution
|
||||
*
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
class Config
|
||||
{
|
||||
|
||||
protected $_config = array();
|
||||
protected $_config = array();
|
||||
static public $instance = null;
|
||||
|
||||
/**
|
||||
|
|
|
@ -8,4 +8,5 @@ vesta_functions_path = /usr/local/vesta/bin/
|
|||
|
||||
; common
|
||||
ui_date_format = 'd.m.Y'
|
||||
|
||||
; session
|
||||
session_dirname = 'vesta_sessions'
|
||||
|
|
|
@ -11,8 +11,9 @@
|
|||
*/
|
||||
class Vesta
|
||||
{
|
||||
const SAME_PASSWORD = '********';
|
||||
const SAME_PASSWORD = '********';
|
||||
|
||||
const V_LIST_SYS_CONFIG = 'v_list_sys_config';
|
||||
// IP
|
||||
const V_LIST_SYS_IPS = 'v_list_sys_ips';
|
||||
const V_ADD_SYS_IP = 'v_add_sys_ip';
|
||||
|
@ -26,6 +27,7 @@ class Vesta
|
|||
// DNS
|
||||
const V_LIST_DNS_DOMAINS = 'v_list_dns_domains';
|
||||
const V_LIST_DNS_DOMAIN_RECORDS = 'v_list_dns_domain';
|
||||
const V_LIST_DNS_TEMPLATES = 'v_list_dns_templates';
|
||||
const V_ADD_DNS_DOMAIN = 'v_add_dns_domain';
|
||||
const V_ADD_DNS_DOMAIN_RECORD = 'v_add_dns_domain_record';
|
||||
const V_CHANGE_DNS_DOMAIN_IP = 'v_change_dns_domain_ip';
|
||||
|
@ -48,7 +50,7 @@ class Vesta
|
|||
const V_DEL_CRON_JOB = 'v_del_sys_cron';
|
||||
const V_DEL_SYS_USER_REPORTS = 'v_del_sys_user_reports';
|
||||
// USER
|
||||
const V_GET_SYS_USER_VALUE = 'v_get_sys_user_value';
|
||||
const V_GET_SYS_USER_VALUE = 'v_get_sys_user_value';
|
||||
const V_LIST_SYS_USERS = 'v_list_sys_users';
|
||||
const V_ADD_SYS_USER = 'v_add_sys_user';
|
||||
const V_CHANGE_SYS_USER_CONTACT = 'v_change_sys_user_contact';
|
||||
|
@ -58,9 +60,9 @@ class Vesta
|
|||
const V_CHANGE_SYS_USER_SHELL = 'v_change_sys_user_shell';
|
||||
const V_CHANGE_SYS_USER_ROLE = 'v_change_sys_user_role';
|
||||
const V_DEL_SYS_USER = 'v_del_sys_user';
|
||||
const V_CHANGE_SYS_USER_NAME = 'v_change_sys_user_name';
|
||||
const V_CHANGE_SYS_USER_NAME = 'v_change_sys_user_name';
|
||||
// WEB_DOMAIN
|
||||
const V_LIST_SYS_USER_IPS = 'v_list_sys_user_ips';
|
||||
const V_LIST_SYS_USER_IPS = 'v_list_sys_user_ips';
|
||||
const V_LIST_WEB_DOMAINS = 'v_list_web_domains';
|
||||
const V_LIST_WEB_DOMAINS_ALIAS = 'v_list_web_domains_alias';
|
||||
const V_LIST_WEB_DOMAINS_ELOG = 'v_list_web_domains_elog';
|
||||
|
|
|
@ -5,9 +5,22 @@ class VestaSession
|
|||
|
||||
static public $instance = null;
|
||||
|
||||
static function start()
|
||||
static function start($request = null)
|
||||
{
|
||||
session_start();
|
||||
self::initSessionPath();
|
||||
session_start();
|
||||
/*if ($request->hasParameter('v_sd')) {
|
||||
session_id($request->getParameter('v_sd'));
|
||||
}*/
|
||||
}
|
||||
|
||||
static function initSessionPath()
|
||||
{
|
||||
$sessions_dir = '/tmp/'.Config::get('session_dirname');
|
||||
if (!is_readable($sessions_dir)) {
|
||||
mkdir($sessions_dir);
|
||||
}
|
||||
session_save_path($sessions_dir);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -22,19 +35,26 @@ class VestaSession
|
|||
|
||||
static function authorize($username)
|
||||
{
|
||||
$_SESSION['user'] = $username;
|
||||
return true;
|
||||
$_SESSION['user'] = $username;
|
||||
return session_id();
|
||||
}
|
||||
|
||||
static function logoff()
|
||||
{
|
||||
session_destroy();
|
||||
}
|
||||
|
||||
public function getUser()
|
||||
{
|
||||
//var_dump($_SESSION);die();
|
||||
if (isset($_SESSION['user'])) {
|
||||
return array('uid' => $_SESSION['user']);
|
||||
}
|
||||
{
|
||||
if (isset($_SESSION['user'])) {
|
||||
$user = array('uid' => $_SESSION['user']);
|
||||
$user['DISK'] = 10000;
|
||||
$user['BANDWIDTH'] = 10000;
|
||||
return $user;
|
||||
}
|
||||
|
||||
print '{"result": "NOT_AUTHORISED"}';
|
||||
exit;
|
||||
print json_encode(array('result' => "NOT_AUTHORISED"));
|
||||
exit;
|
||||
}
|
||||
|
||||
}
|
||||
|
|