diff --git a/.bowerrc b/.bowerrc
new file mode 100755
index 0000000..1669168
--- /dev/null
+++ b/.bowerrc
@@ -0,0 +1,3 @@
+{
+ "directory" : "vendor/bower"
+}
diff --git a/.gitignore b/.gitignore
new file mode 100755
index 0000000..c346f28
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,33 @@
+# yii console command
+/yii
+
+# phpstorm project files
+.idea
+
+# netbeans project files
+nbproject
+
+# zend studio for eclipse project files
+.buildpath
+.project
+.settings
+
+# windows thumbnail cache
+Thumbs.db
+
+# composer vendor dir
+/vendor
+
+# composer itself is not needed
+composer.phar
+
+# Mac DS_Store Files
+.DS_Store
+
+# phpunit itself is not needed
+phpunit.phar
+# local phpunit config
+/phpunit.xml
+
+# vagrant runtime
+/.vagrant
diff --git a/.htaccess b/.htaccess
new file mode 100755
index 0000000..f261e70
--- /dev/null
+++ b/.htaccess
@@ -0,0 +1,160 @@
+AddDefaultCharset utf-8
+
+
+
+ Options +FollowSymlinks
+
+ RewriteEngine On
+
+
+
+
+
+ RewriteBase /
+ # deal with admin first
+
+
+
+ RewriteRule ^storage/(.*)?$ /storage/$1 [L,PT]
+
+ RewriteCond %{REQUEST_URI} ^/(admin)
+
+
+
+ RewriteRule ^admin/assets/(.*)$ backend/web/assets/$1 [L]
+
+ RewriteRule ^admin/css/(.*)$ backend/web/css/$1 [L]
+
+ RewriteRule ^admin/js/(.*)$ backend/web/js/$1 [L]
+
+ RewriteRule ^admin/images/(.*)$ backend/web/images/$1 [L]
+
+ RewriteRule ^admin/fonts/(.*)$ backend/web/fonts/$1 [L]
+
+
+
+
+
+ RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css|js|images|fonts)/
+
+ RewriteCond %{REQUEST_URI} ^/(admin)
+
+ RewriteRule ^.*$ backend/web/index.php [L]
+
+
+ RewriteCond %{REQUEST_URI} ^/(assets|css)
+
+ RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L]
+
+ RewriteRule ^css/(.*)$ frontend/web/css/$1 [L]
+
+ RewriteRule ^js/(.*)$ frontend/web/js/$1 [L]
+
+ RewriteRule ^images/(.*)$ frontend/web/images/$1 [L]
+
+ RewriteRule ^libraries/(.*)$ frontend/web/libraries/$1 [L]
+
+ RewriteRule ^img/(.*)$ frontend/web/img/$1 [L]
+
+ RewriteRule ^files/(.*)$ frontend/web/files/$1 [L]
+
+ RewriteRule ^fonts/(.*)$ frontend/web/fonts/$1 [L]
+
+ RewriteRule robots.txt$ frontend/web/robots.txt [L]
+
+
+ RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css|txt|js|images|fonts|img|files)/
+
+ RewriteCond %{REQUEST_URI} !index.php
+
+ RewriteCond %{REQUEST_FILENAME} !-f [OR]
+
+ RewriteCond %{REQUEST_FILENAME} !-d
+
+ RewriteCond %{HTTP_HOST} ^www\.(.*)
+ RewriteRule ^(.*)$ frontend/web/index.php
+
+
+ RewriteCond %{HTTP_HOST} ^([^www].*)$
+ RewriteRule (.*) http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
+
+ RewriteCond %{THE_REQUEST} \s/+(.+?)/+[?\s]
+ RewriteRule /$ /%1 [R,L]
+
+
+
+ RewriteCond %{HTTP_HOST} ^([^www].*)$
+ RewriteRule ^(.*)$ http://www.%1/$1 [R=301]
+
+
+
+#для возможности загрузки файлов парсера
+
+ php_value upload_max_filesize 20M
+ php_value post_max_size 30M
+
+
+
+# кеширование в браузере на стороне пользователя
+
+
+ ExpiresActive On
+ ExpiresDefault "access 7 days"
+ ExpiresByType application/javascript "access plus 1 year"
+ ExpiresByType text/javascript "access plus 1 year"
+ ExpiresByType text/css "access plus 1 year"
+ ExpiresByType text/html "access plus 7 day"
+ ExpiresByType text/x-javascript "access 1 year"
+ ExpiresByType image/gif "access plus 1 year"
+ ExpiresByType image/jpeg "access plus 1 year"
+ ExpiresByType image/png "access plus 1 year"
+ ExpiresByType image/jpg "access plus 1 year"
+ ExpiresByType image/x-icon "access 1 year"
+ ExpiresByType application/x-shockwave-flash "access 1 year"
+
+
+AddOutputFilterByType DEFLATE text/plain
+AddOutputFilterByType DEFLATE text/html
+AddOutputFilterByType DEFLATE text/xml
+AddOutputFilterByType DEFLATE text/css
+AddOutputFilterByType DEFLATE application/xml
+AddOutputFilterByType DEFLATE application/xhtml+xml
+AddOutputFilterByType DEFLATE application/rss+xml
+AddOutputFilterByType DEFLATE application/javascript
+AddOutputFilterByType DEFLATE application/x-javascript
+BrowserMatch ^Mozilla/4 gzip-only-text/html
+BrowserMatch ^Mozilla/4\.0[678] no-gzip
+BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
+Header append Vary User-Agent
+RewriteEngine On
+AddEncoding gzip .gz
+RewriteCond %{HTTP:Accept-encoding} gzip
+RewriteCond %{REQUEST_FILENAME}.gz -f
+RewriteRule ^(.*)$ $1.gz [QSA,L]
+
+# Cache-Control
+
+# 30 дней
+
+ Header set Cache-Control "max-age=2592000, public"
+
+ # 30 дней
+
+ Header set Cache-Control "max-age=2592000, public"
+
+ # 2 дня
+
+ Header set Cache-Control "max-age=172800, public, must-revalidate"
+
+ # 1 день
+
+ Header set Cache-Control "max-age=172800, private, must-revalidate"
+
+
+
+#Запрет отдачи HTTP-заголовков Vary браузерам семейства MSIE
+
+BrowserMatch "MSIE" force-no-vary
+BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
+
+
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100755
index 0000000..e98f03d
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,32 @@
+The Yii framework is free software. It is released under the terms of
+the following BSD License.
+
+Copyright © 2008 by Yii Software LLC (http://www.yiisoft.com)
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Yii Software LLC nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
diff --git a/README.md b/README.md
new file mode 100755
index 0000000..45e56ad
--- /dev/null
+++ b/README.md
@@ -0,0 +1,54 @@
+Yii 2 Advanced Project Template
+===============================
+
+Yii 2 Advanced Project Template is a skeleton [Yii 2](http://www.yiiframework.com/) application best for
+developing complex Web applications with multiple tiers.
+
+The template includes three tiers: front end, back end, and console, each of which
+is a separate Yii application.
+
+The template is designed to work in a team development environment. It supports
+deploying the application in different environments.
+
+Documentation is at [docs/guide/README.md](docs/guide/README.md).
+
+[](https://packagist.org/packages/yiisoft/yii2-app-advanced)
+[](https://packagist.org/packages/yiisoft/yii2-app-advanced)
+[](https://travis-ci.org/yiisoft/yii2-app-advanced)
+
+DIRECTORY STRUCTURE
+-------------------
+
+```
+common
+ config/ contains shared configurations
+ mail/ contains view files for e-mails
+ models/ contains model classes used in both backend and frontend
+console
+ config/ contains console configurations
+ controllers/ contains console controllers (commands)
+ migrations/ contains database migrations
+ models/ contains console-specific model classes
+ runtime/ contains files generated during runtime
+backend
+ assets/ contains application assets such as JavaScript and CSS
+ config/ contains backend configurations
+ controllers/ contains Web controller classes
+ models/ contains backend-specific model classes
+ runtime/ contains files generated during runtime
+ views/ contains view files for the Web application
+ web/ contains the entry script and Web resources
+frontend
+ assets/ contains application assets such as JavaScript and CSS
+ config/ contains frontend configurations
+ controllers/ contains Web controller classes
+ models/ contains frontend-specific model classes
+ runtime/ contains files generated during runtime
+ views/ contains view files for the Web application
+ web/ contains the entry script and Web resources
+ widgets/ contains frontend widgets
+vendor/ contains dependent 3rd-party packages
+environments/ contains environment-based overrides
+tests contains various tests for the advanced application
+ codeception/ contains tests developed with Codeception PHP Testing Framework
+```
diff --git a/Vagrantfile b/Vagrantfile
new file mode 100755
index 0000000..689a92c
--- /dev/null
+++ b/Vagrantfile
@@ -0,0 +1,72 @@
+require 'yaml'
+require 'fileutils'
+
+domains = {
+ frontend: 'y2aa-frontend.dev',
+ backend: 'y2aa-backend.dev'
+}
+
+config = {
+ local: './vagrant/config/vagrant-local.yml',
+ example: './vagrant/config/vagrant-local.example.yml'
+}
+
+# copy config from example if local config not exists
+FileUtils.cp config[:example], config[:local] unless File.exist?(config[:local])
+# read config
+options = YAML.load_file config[:local]
+
+# check github token
+if options['github_token'].nil? || options['github_token'].to_s.length != 40
+ puts "You must place REAL GitHub token into configuration:\n/yii2-app-advancded/vagrant/config/vagrant-local.yml"
+ exit
+end
+
+# vagrant configurate
+Vagrant.configure(2) do |config|
+ # select the box
+ config.vm.box = 'ubuntu/trusty64'
+
+ # should we ask about box updates?
+ config.vm.box_check_update = options['box_check_update']
+
+ config.vm.provider 'virtualbox' do |vb|
+ # machine cpus count
+ vb.cpus = options['cpus']
+ # machine memory size
+ vb.memory = options['memory']
+ # machine name (for VirtualBox UI)
+ vb.name = options['machine_name']
+ end
+
+ # machine name (for vagrant console)
+ config.vm.define options['machine_name']
+
+ # machine name (for guest machine console)
+ config.vm.hostname = options['machine_name']
+
+ # network settings
+ config.vm.network 'private_network', ip: options['ip']
+
+ # sync: folder 'yii2-app-advanced' (host machine) -> folder '/app' (guest machine)
+ config.vm.synced_folder './', '/app', owner: 'vagrant', group: 'vagrant'
+
+ # disable folder '/vagrant' (guest machine)
+ config.vm.synced_folder '.', '/vagrant', disabled: true
+
+ # hosts settings (host machine)
+ config.vm.provision :hostmanager
+ config.hostmanager.enabled = true
+ config.hostmanager.manage_host = true
+ config.hostmanager.ignore_private_ip = false
+ config.hostmanager.include_offline = true
+ config.hostmanager.aliases = domains.values
+
+ # provisioners
+ config.vm.provision 'shell', path: './vagrant/provision/once-as-root.sh', args: [options['timezone']]
+ config.vm.provision 'shell', path: './vagrant/provision/once-as-vagrant.sh', args: [options['github_token']], privileged: false
+ config.vm.provision 'shell', path: './vagrant/provision/always-as-root.sh', run: 'always'
+
+ # post-install message (vagrant console)
+ config.vm.post_up_message = "Frontend URL: http://#{domains[:frontend]}\nBackend URL: http://#{domains[:backend]}"
+end
diff --git a/backend/assets/AppAsset.php b/backend/assets/AppAsset.php
new file mode 100755
index 0000000..940c0af
--- /dev/null
+++ b/backend/assets/AppAsset.php
@@ -0,0 +1,23 @@
+ 'app-backend',
+ 'basePath' => dirname(__DIR__),
+ 'controllerNamespace' => 'backend\controllers',
+ 'bootstrap' => ['log'],
+ 'components' => [
+ 'user' => [
+ 'identityClass' => 'common\models\User',
+ 'enableAutoLogin' => true,
+ ],
+ 'log' => [
+ 'traceLevel' => YII_DEBUG ? 3 : 0,
+ 'targets' => [
+ [
+ 'class' => 'yii\log\FileTarget',
+ 'levels' => ['error', 'warning'],
+ ],
+ ],
+ ],
+ 'errorHandler' => [
+ 'errorAction' => 'site/error',
+ ],
+ 'request'=>[
+ 'cookieValidationKey' => 'j4iuot9u5894e7tu8reyh78g9y54sy7i',
+ 'csrfParam' => '_backendCSRF',
+
+ 'class' => 'common\components\Request',
+
+ 'web'=> '/backend/web',
+
+ 'adminUrl' => '/admin'
+
+ ],
+ 'urlManager' => [
+ 'baseUrl' => '/admin',
+ 'enablePrettyUrl' => true,
+ 'showScriptName' => false,
+ ]
+
+ ],
+ 'params' => $params,
+ ];
diff --git a/backend/config/params.php b/backend/config/params.php
new file mode 100755
index 0000000..7f754b9
--- /dev/null
+++ b/backend/config/params.php
@@ -0,0 +1,4 @@
+ 'admin@example.com',
+];
diff --git a/backend/controllers/CarController.php b/backend/controllers/CarController.php
new file mode 100755
index 0000000..706aadf
--- /dev/null
+++ b/backend/controllers/CarController.php
@@ -0,0 +1,159 @@
+ [
+ 'class' => AccessControl::className(),
+ 'rules' => [
+ [
+ 'actions' => ['error'],
+ 'allow' => true,
+ ],
+ [
+ 'allow' => true,
+ 'roles' => ['@'],
+ ],
+ ],
+ ],
+ 'verbs' => [
+ 'class' => VerbFilter::className(),
+ 'actions' => [
+ 'delete' => [ 'POST' ],
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Lists all Car models.
+ * @return mixed
+ */
+ public function actionIndex()
+ {
+ $searchModel = new CarSearch();
+ $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
+
+ return $this->render('index', [
+ 'searchModel' => $searchModel,
+ 'dataProvider' => $dataProvider,
+ ]);
+ }
+
+ /**
+ * Displays a single Car model.
+ *
+ * @param integer $id
+ *
+ * @return mixed
+ */
+ public function actionView($id)
+ {
+ return $this->render('view', [
+ 'model' => $this->findModel($id),
+ ]);
+ }
+
+ /**
+ * Creates a new Car model.
+ * If creation is successful, the browser will be redirected to the 'view' page.
+ * @return mixed
+ */
+ public function actionCreate()
+ {
+ $model = new Car();
+
+ if($model->load(Yii::$app->request->post()) && $model->validate()) {
+ $model->upload();
+ $model->save(false);
+ return $this->redirect([
+ 'view',
+ 'id' => $model->car_id,
+ ]);
+ } else {
+ return $this->render('create', [
+ 'model' => $model,
+ ]);
+ }
+ }
+
+ /**
+ * Updates an existing Car model.
+ * If update is successful, the browser will be redirected to the 'view' page.
+ *
+ * @param integer $id
+ *
+ * @return mixed
+ */
+ public function actionUpdate($id)
+ {
+ $model = $this->findModel($id);
+
+ if($model->load(Yii::$app->request->post())) {
+ if($model->validate()) {
+ $model->upload();
+ $model->save(false);
+ return $this->redirect([
+ 'view',
+ 'id' => $model->car_id,
+ ]);
+ }
+ }
+ return $this->render('update', [
+ 'model' => $model,
+ ]);
+ }
+
+ /**
+ * Deletes an existing Car model.
+ * If deletion is successful, the browser will be redirected to the 'index' page.
+ *
+ * @param integer $id
+ *
+ * @return mixed
+ */
+ public function actionDelete($id)
+ {
+ $this->findModel($id)
+ ->delete();
+
+ return $this->redirect([ 'index' ]);
+ }
+
+ /**
+ * Finds the Car model based on its primary key value.
+ * If the model is not found, a 404 HTTP exception will be thrown.
+ *
+ * @param integer $id
+ *
+ * @return Car the loaded model
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ protected function findModel($id)
+ {
+ if(( $model = Car::findOne($id) ) !== NULL) {
+ return $model;
+ } else {
+ throw new NotFoundHttpException('The requested page does not exist.');
+ }
+ }
+ }
diff --git a/backend/controllers/SiteController.php b/backend/controllers/SiteController.php
new file mode 100755
index 0000000..9624dcc
--- /dev/null
+++ b/backend/controllers/SiteController.php
@@ -0,0 +1,98 @@
+ [
+ 'class' => AccessControl::className(),
+ 'rules' => [
+ [
+ 'actions' => ['login', 'error'],
+ 'allow' => true,
+ ],
+ [
+ 'actions' => ['logout', 'index'],
+ 'allow' => true,
+ 'roles' => ['@'],
+ ],
+ ],
+ ],
+ 'verbs' => [
+ 'class' => VerbFilter::className(),
+ 'actions' => [
+ 'logout' => ['post'],
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function actions()
+ {
+ return [
+ 'error' => [
+ 'class' => 'yii\web\ErrorAction',
+ ],
+ ];
+ }
+
+ /**
+ * Displays homepage.
+ *
+ * @return string
+ */
+ public function actionIndex()
+ {
+ return $this->render('index');
+ }
+
+ /**
+ * Login action.
+ *
+ * @return string
+ */
+ public function actionLogin()
+ {
+ if (!Yii::$app->user->isGuest) {
+ return $this->goHome();
+ }
+
+ $model = new LoginForm();
+ if ($model->load(Yii::$app->request->post()) && $model->login()) {
+ return $this->goBack();
+ } else {
+ return $this->render('login', [
+ 'model' => $model,
+ ]);
+ }
+ }
+
+ /**
+ * Logout action.
+ *
+ * @return string
+ */
+ public function actionLogout()
+ {
+ Yii::$app->user->logout();
+
+ return $this->goHome();
+ }
+}
diff --git a/backend/models/.gitkeep b/backend/models/.gitkeep
new file mode 100755
index 0000000..72e8ffc
--- /dev/null
+++ b/backend/models/.gitkeep
@@ -0,0 +1 @@
+*
diff --git a/backend/runtime/.gitignore b/backend/runtime/.gitignore
new file mode 100755
index 0000000..c96a04f
--- /dev/null
+++ b/backend/runtime/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
\ No newline at end of file
diff --git a/backend/views/car/_form.php b/backend/views/car/_form.php
new file mode 100755
index 0000000..df1a0de
--- /dev/null
+++ b/backend/views/car/_form.php
@@ -0,0 +1,81 @@
+ 'Nissan Leaf S',
+ 'Nissan Leaf SV' => 'Nissan Leaf SV',
+ 'Nissan Leaf SL' => 'Nissan Leaf SL',
+ ];
+ $years = [ ];
+ for($year = 2013; $year <= date('Y'); $year++) {
+ $years[ $year ] = $year;
+ }
+?>
+
+
diff --git a/backend/views/car/_search.php b/backend/views/car/_search.php
new file mode 100755
index 0000000..7f9f735
--- /dev/null
+++ b/backend/views/car/_search.php
@@ -0,0 +1,43 @@
+
+
+
+
+ ['index'],
+ 'method' => 'get',
+ ]); ?>
+
+ = $form->field($model, 'car_id') ?>
+
+ = $form->field($model, 'model') ?>
+
+ = $form->field($model, 'year') ?>
+
+ = $form->field($model, 'image') ?>
+
+ = $form->field($model, 'color') ?>
+
+ field($model, 'mileage') ?>
+
+ field($model, 'build') ?>
+
+ field($model, 'option') ?>
+
+ field($model, 'price') ?>
+
+
+ = Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
+ = Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>
+
+
+
+
+
diff --git a/backend/views/car/create.php b/backend/views/car/create.php
new file mode 100755
index 0000000..7776bb1
--- /dev/null
+++ b/backend/views/car/create.php
@@ -0,0 +1,21 @@
+title = 'Добавить автомобиль';
+$this->params['breadcrumbs'][] = ['label' => 'Автомобили', 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+
+ = $this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/backend/views/car/index.php b/backend/views/car/index.php
new file mode 100755
index 0000000..9e44d7f
--- /dev/null
+++ b/backend/views/car/index.php
@@ -0,0 +1,76 @@
+title = 'Автомобили';
+ $this->params[ 'breadcrumbs' ][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+ render('_search', ['model' => $searchModel]); ?>
+
+
+ = Html::a('Добавить автомобиль', [ 'create' ], [ 'class' => 'btn btn-success' ]) ?>
+
+ = GridView::widget(
+ [
+ 'dataProvider' => $dataProvider,
+ 'filterModel' => $searchModel,
+ 'columns' => [
+ [ 'class' => 'yii\grid\ActionColumn' ],
+ [
+ 'attribute' => 'car_id',
+ 'headerOptions' => [
+ 'style' => 'word-break: break-all',
+ ],
+ ],
+ 'model',
+ 'year',
+ [
+ 'attribute' => 'image',
+ 'format' => [
+ 'image',
+ [
+ 'style' => [ 'max-width' => '300px' ],
+ ],
+ ],
+ ],
+ 'color',
+ [
+ 'attribute' => 'mileage',
+ 'value' => function ($model) {
+ /**
+ * @var Car $model
+ */
+ return $model->mileage . ' тыс. км.';
+ },
+ ],
+ 'build',
+ [
+ 'attribute' => 'option',
+ 'format' => 'ntext',
+ 'contentOptions' => [
+ 'style' => 'white-space: normal',
+ ],
+ ],
+ [
+ 'attribute' => 'price',
+ 'value' => function ($model) {
+ /**
+ * @var Car $model
+ */
+ return '$' . number_format($model->price, 3);
+ },
+ ],
+
+ ],
+ ]
+ ); ?>
+
diff --git a/backend/views/car/update.php b/backend/views/car/update.php
new file mode 100755
index 0000000..17500c3
--- /dev/null
+++ b/backend/views/car/update.php
@@ -0,0 +1,21 @@
+title = 'Обновить автомобиль: ' . $model->model;
+$this->params['breadcrumbs'][] = ['label' => 'Автомобили', 'url' => ['index']];
+$this->params['breadcrumbs'][] = ['label' => $model->model, 'url' => ['view', 'id' => $model->car_id]];
+$this->params['breadcrumbs'][] = 'Обновить';
+?>
+
+
+
= Html::encode($this->title) ?>
+
+ = $this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/backend/views/car/view.php b/backend/views/car/view.php
new file mode 100755
index 0000000..af49ef4
--- /dev/null
+++ b/backend/views/car/view.php
@@ -0,0 +1,43 @@
+title = $model->car_id;
+$this->params['breadcrumbs'][] = ['label' => 'Cars', 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+
+
+ = Html::a('Update', ['update', 'id' => $model->car_id], ['class' => 'btn btn-primary']) ?>
+ = Html::a('Delete', ['delete', 'id' => $model->car_id], [
+ 'class' => 'btn btn-danger',
+ 'data' => [
+ 'confirm' => 'Are you sure you want to delete this item?',
+ 'method' => 'post',
+ ],
+ ]) ?>
+
+
+ = DetailView::widget([
+ 'model' => $model,
+ 'attributes' => [
+ 'car_id',
+ 'model',
+ 'year',
+ 'image',
+ 'color',
+ 'mileage',
+ 'build',
+ 'option:ntext',
+ 'price',
+ ],
+ ]) ?>
+
+
diff --git a/backend/views/layouts/main.php b/backend/views/layouts/main.php
new file mode 100755
index 0000000..b6beed7
--- /dev/null
+++ b/backend/views/layouts/main.php
@@ -0,0 +1,80 @@
+
+beginPage() ?>
+
+
+
+
+
+ = Html::csrfMetaTags() ?>
+ = Html::encode($this->title) ?>
+ head() ?>
+
+
+beginBody() ?>
+
+
+ 'My Company',
+ 'brandUrl' => Yii::$app->homeUrl,
+ 'options' => [
+ 'class' => 'navbar-inverse navbar-fixed-top',
+ ],
+ ]);
+ $menuItems = [
+ ['label' => 'Home', 'url' => ['site/index']],
+ ['label' => 'Каталог автомобилей', 'url' => ['car/index']],
+ ];
+ if (Yii::$app->user->isGuest) {
+ $menuItems[] = ['label' => 'Login', 'url' => ['/site/login']];
+ } else {
+ $menuItems[] = '
'
+ . Html::beginForm(['/site/logout'], 'post')
+ . Html::submitButton(
+ 'Logout (' . Yii::$app->user->identity->username . ')',
+ ['class' => 'btn btn-link']
+ )
+ . Html::endForm()
+ . ' ';
+ }
+ echo Nav::widget([
+ 'options' => ['class' => 'navbar-nav navbar-right'],
+ 'items' => $menuItems,
+ ]);
+ NavBar::end();
+ ?>
+
+
+ = Breadcrumbs::widget([
+ 'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],
+ ]) ?>
+ = Alert::widget() ?>
+ = $content ?>
+
+
+
+
+
+endBody() ?>
+
+
+endPage() ?>
diff --git a/backend/views/site/error.php b/backend/views/site/error.php
new file mode 100755
index 0000000..0ba2574
--- /dev/null
+++ b/backend/views/site/error.php
@@ -0,0 +1,27 @@
+title = $name;
+?>
+
+
+
= Html::encode($this->title) ?>
+
+
+ = nl2br(Html::encode($message)) ?>
+
+
+
+ The above error occurred while the Web server was processing your request.
+
+
+ Please contact us if you think this is a server error. Thank you.
+
+
+
diff --git a/backend/views/site/index.php b/backend/views/site/index.php
new file mode 100755
index 0000000..f780610
--- /dev/null
+++ b/backend/views/site/index.php
@@ -0,0 +1,53 @@
+title = 'My Yii Application';
+?>
+
+
+
+
Congratulations!
+
+
You have successfully created your Yii-powered application.
+
+
Get started with Yii
+
+
+
+
+
+
+
Heading
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
+ dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
+ ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
+ fugiat nulla pariatur.
+
+
Yii Documentation »
+
+
+
Heading
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
+ dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
+ ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
+ fugiat nulla pariatur.
+
+
Yii Forum »
+
+
+
Heading
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
+ dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
+ ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
+ fugiat nulla pariatur.
+
+
Yii Extensions »
+
+
+
+
+
diff --git a/backend/views/site/login.php b/backend/views/site/login.php
new file mode 100755
index 0000000..20f3f78
--- /dev/null
+++ b/backend/views/site/login.php
@@ -0,0 +1,35 @@
+title = 'Login';
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
= Html::encode($this->title) ?>
+
+
Please fill out the following fields to login:
+
+
+
+ 'login-form']); ?>
+
+ = $form->field($model, 'username')->textInput(['autofocus' => true]) ?>
+
+ = $form->field($model, 'password')->passwordInput() ?>
+
+ = $form->field($model, 'rememberMe')->checkbox() ?>
+
+
+ = Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
+
+
+
+
+
+
diff --git a/backend/web/.gitignore b/backend/web/.gitignore
new file mode 100755
index 0000000..25c74e6
--- /dev/null
+++ b/backend/web/.gitignore
@@ -0,0 +1,2 @@
+/index.php
+/index-test.php
diff --git a/backend/web/assets/.gitignore b/backend/web/assets/.gitignore
new file mode 100755
index 0000000..d6b7ef3
--- /dev/null
+++ b/backend/web/assets/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/backend/web/css/site.css b/backend/web/css/site.css
new file mode 100755
index 0000000..49ee8fb
--- /dev/null
+++ b/backend/web/css/site.css
@@ -0,0 +1,111 @@
+html,
+body {
+ height: 100%;
+}
+
+.wrap {
+ min-height: 100%;
+ height: auto;
+ margin: 0 auto -60px;
+ padding: 0 0 60px;
+}
+
+.wrap > .container {
+ padding: 70px 15px 20px;
+}
+
+.footer {
+ height: 60px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #ddd;
+ padding-top: 20px;
+}
+
+.jumbotron {
+ text-align: center;
+ background-color: transparent;
+}
+
+.jumbotron .btn {
+ font-size: 21px;
+ padding: 14px 24px;
+}
+
+.not-set {
+ color: #c55;
+ font-style: italic;
+}
+
+/* add sorting icons to gridview sort links */
+a.asc:after, a.desc:after {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ font-family: 'Glyphicons Halflings';
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
+ padding-left: 5px;
+}
+
+a.asc:after {
+ content: /*"\e113"*/ "\e151";
+}
+
+a.desc:after {
+ content: /*"\e114"*/ "\e152";
+}
+
+.sort-numerical a.asc:after {
+ content: "\e153";
+}
+
+.sort-numerical a.desc:after {
+ content: "\e154";
+}
+
+.sort-ordinal a.asc:after {
+ content: "\e155";
+}
+
+.sort-ordinal a.desc:after {
+ content: "\e156";
+}
+
+.grid-view td {
+ white-space: nowrap;
+}
+
+.grid-view .filters input,
+.grid-view .filters select {
+ min-width: 50px;
+}
+
+.hint-block {
+ display: block;
+ margin-top: 5px;
+ color: #999;
+}
+
+.error-summary {
+ color: #a94442;
+ background: #fdf7f7;
+ border-left: 3px solid #eed3d7;
+ padding: 10px 20px;
+ margin: 0 0 15px 0;
+}
+
+/* align the logout "link" (button in form) of the navbar */
+.nav > li > form {
+ padding: 8px;
+}
+
+@media(max-width:768px) {
+ .nav li > form {
+ padding: 3px;
+ }
+}
+
+.nav > li > form > button:hover {
+ text-decoration: none;
+}
diff --git a/backend/web/favicon.ico b/backend/web/favicon.ico
new file mode 100755
index 0000000..580ed73
Binary files /dev/null and b/backend/web/favicon.ico differ
diff --git a/backend/web/robots.txt b/backend/web/robots.txt
new file mode 100755
index 0000000..1f53798
--- /dev/null
+++ b/backend/web/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /
diff --git a/common/components/Request.php b/common/components/Request.php
new file mode 100755
index 0000000..c6c47a8
--- /dev/null
+++ b/common/components/Request.php
@@ -0,0 +1,40 @@
+web, "", parent::getBaseUrl()) . $this->adminUrl;
+
+ }
+
+
+
+ public function resolvePathInfo()
+
+ {
+
+ if ($this->getUrl() === $this->adminUrl) {
+
+ return "";
+
+ } else {
+
+ return parent::resolvePathInfo();
+
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/common/components/urlManager/.htaccess b/common/components/urlManager/.htaccess
new file mode 100755
index 0000000..2fa0d38
--- /dev/null
+++ b/common/components/urlManager/.htaccess
@@ -0,0 +1,10 @@
+AddDefaultCharset WINDOWS-1251
+#php_value display_errors 1
+#php_value error_reporting 2047
+
+RewriteEngine on
+
+
+
+RewriteRule ^(.*)(date\.php|votebar|spam|\.css|uploaded|img|rating\.php|forum_comment\.php|js|admin|googlec87a9150150cf5d3.html)(.*)$ $1$2$3 [L]
+RewriteRule ^(.*)$ index.php [L]
diff --git a/common/components/urlManager/LangRequest.php b/common/components/urlManager/LangRequest.php
new file mode 100755
index 0000000..91c6582
--- /dev/null
+++ b/common/components/urlManager/LangRequest.php
@@ -0,0 +1,17 @@
+urlManager->languages as $lang){
+ if(strpos($_SERVER['PHP_SELF'], '/'.$lang))Yii::$app->language = $lang;
+ }
+ return parent::resolvePathInfo();
+ }
+}
\ No newline at end of file
diff --git a/common/components/urlManager/LangUrlManager.php b/common/components/urlManager/LangUrlManager.php
new file mode 100755
index 0000000..1283d03
--- /dev/null
+++ b/common/components/urlManager/LangUrlManager.php
@@ -0,0 +1,30 @@
+langParam])){ if(Yii::$app->language != $this->lang)$params[$this->langParam]=Yii::$app->language;}
+ else if($params[$this->langParam] == $this->lang)unset($params[$this->langParam]);
+ return parent::createUrl($params);
+ }
+ //put your code here
+}
\ No newline at end of file
diff --git a/common/components/urlManager/LangUrlRule.php b/common/components/urlManager/LangUrlRule.php
new file mode 100755
index 0000000..2814797
--- /dev/null
+++ b/common/components/urlManager/LangUrlRule.php
@@ -0,0 +1,61 @@
+getRequest()->getPreferredLanguage();
+ //if language pass via url use it
+ if(isset($_GET[$this->langParam])&&in_array($_GET[$this->langParam],$this->languages)){
+ Yii::app()->language=$_GET[$this->langParam];
+ //else if preffered language is allowed
+ }elseif(in_array($userLang,$this->languages)) {
+ Yii::app()->language=$userLang;
+ //else use the first language from the list
+ }else Yii::app()->language=$this->lang;
+
+ }*/
+ //put your code here
+
+ public function init(){
+ print '==';
+ print Yii::$app->getRequest()->getQueryParam('language');
+ return parent::init();
+ }
+ public function createUrl($params=array()){
+ $userLang=Yii::$app->getRequest()->getPreferredLanguage();
+ //if language pass via url use it
+ if(isset($_GET[$this->langParam])&&in_array($_GET[$this->langParam],$this->languages)){
+ Yii::$app->language=$_GET[$this->langParam];
+ //else if preffered language is allowed
+ }elseif(in_array($userLang,$this->languages)) {
+ Yii::$app->language=$userLang;
+ //else use the first language from the list
+ }else Yii::$app->language=$this->lang;
+
+ //print_r($_GET);
+ if(!isset($params[$this->langParam])){ if(Yii::$app->language != $this->lang)$params[$this->langParam]=Yii::$app->language;}
+ else if($params[$this->langParam] == $this->lang)unset($params[$this->langParam]);
+ //print_r($params);
+ return parent::createUrl($params);
+ }
+ //put your code here
+}
\ No newline at end of file
diff --git a/common/config/.gitignore b/common/config/.gitignore
new file mode 100755
index 0000000..97c0f01
--- /dev/null
+++ b/common/config/.gitignore
@@ -0,0 +1,2 @@
+main-local.php
+params-local.php
diff --git a/common/config/bootstrap.php b/common/config/bootstrap.php
new file mode 100755
index 0000000..4530243
--- /dev/null
+++ b/common/config/bootstrap.php
@@ -0,0 +1,7 @@
+ 'ru',
+ 'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
+ 'components' => [
+ 'cache' => [
+ 'class' => 'yii\caching\FileCache',
+ ],
+ ],
+];
diff --git a/common/config/params.php b/common/config/params.php
new file mode 100755
index 0000000..4ec9ba6
--- /dev/null
+++ b/common/config/params.php
@@ -0,0 +1,6 @@
+ 'admin@example.com',
+ 'supportEmail' => 'support@example.com',
+ 'user.passwordResetTokenExpire' => 3600,
+];
diff --git a/common/mail/layouts/html.php b/common/mail/layouts/html.php
new file mode 100755
index 0000000..bddbc61
--- /dev/null
+++ b/common/mail/layouts/html.php
@@ -0,0 +1,22 @@
+
+beginPage() ?>
+
+
+
+
+ = Html::encode($this->title) ?>
+ head() ?>
+
+
+ beginBody() ?>
+ = $content ?>
+ endBody() ?>
+
+
+endPage() ?>
diff --git a/common/mail/layouts/text.php b/common/mail/layouts/text.php
new file mode 100755
index 0000000..7087cea
--- /dev/null
+++ b/common/mail/layouts/text.php
@@ -0,0 +1,12 @@
+
+beginPage() ?>
+beginBody() ?>
+= $content ?>
+endBody() ?>
+endPage() ?>
diff --git a/common/mail/passwordResetToken-html.php b/common/mail/passwordResetToken-html.php
new file mode 100755
index 0000000..f3daf49
--- /dev/null
+++ b/common/mail/passwordResetToken-html.php
@@ -0,0 +1,15 @@
+urlManager->createAbsoluteUrl(['site/reset-password', 'token' => $user->password_reset_token]);
+?>
+
+
Hello = Html::encode($user->username) ?>,
+
+
Follow the link below to reset your password:
+
+
= Html::a(Html::encode($resetLink), $resetLink) ?>
+
diff --git a/common/mail/passwordResetToken-text.php b/common/mail/passwordResetToken-text.php
new file mode 100755
index 0000000..244c0cb
--- /dev/null
+++ b/common/mail/passwordResetToken-text.php
@@ -0,0 +1,12 @@
+urlManager->createAbsoluteUrl(['site/reset-password', 'token' => $user->password_reset_token]);
+?>
+Hello = $user->username ?>,
+
+Follow the link below to reset your password:
+
+= $resetLink ?>
diff --git a/common/models/Buys.php b/common/models/Buys.php
new file mode 100755
index 0000000..9e94b80
--- /dev/null
+++ b/common/models/Buys.php
@@ -0,0 +1,75 @@
+ 2,
+ 'max' => 255,
+ ],
+
+ [
+ 'email',
+ 'email',
+ ],
+ [
+ [
+ 'email',
+ 'phone',
+ ],
+ 'string',
+ 'max' => 255,
+ ],
+
+ [
+ 'phone',
+ 'required',
+ ],
+ [
+ [
+ 'phone',
+ 'model_name',
+ 'model_year',
+ 'model_color',
+ ],
+ 'safe',
+ ],
+
+ ];
+ }
+
+ public function attributeLabels()
+ {
+ return [
+ 'username' => 'Имя',
+ 'phone' => 'телефон',
+ 'email' => 'e-mail',
+ 'model_name' => '',
+ 'model_year' => '',
+ 'model_color' => '',
+ ];
+ }
+
+ }
\ No newline at end of file
diff --git a/common/models/Car.php b/common/models/Car.php
new file mode 100755
index 0000000..8cb4040
--- /dev/null
+++ b/common/models/Car.php
@@ -0,0 +1,112 @@
+ 255,
+ ],
+ [
+ [ 'image' ],
+ 'safe',
+ ],
+ ];
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function attributeLabels()
+ {
+ return [
+ 'car_id' => Yii::t('app', 'Ідентификатор'),
+ 'model' => Yii::t('app', 'Модель'),
+ 'year' => Yii::t('app', 'Год производства'),
+ 'image' => Yii::t('app', 'Изображение'),
+ 'color' => Yii::t('app', 'Цвет'),
+ 'mileage' => Yii::t('app', 'Пробег'),
+ 'build' => Yii::t('app', 'Дата выпуска'),
+ 'option' => Yii::t('app', 'Доп. опции'),
+ 'price' => Yii::t('app', 'Цена'),
+ ];
+ }
+
+ public function upload()
+ {
+ /**
+ * @var UploadedFile $image
+ */
+ $this->image = UploadedFile::getInstance($this, 'image');
+ $image = $this->image;
+ if(!empty( $image )) {
+ $fullName = $image->baseName . time() . '.' . $image->extension;
+ $path = Yii::getAlias('@storage') . '/' . $fullName;
+ $image->saveAs($path);
+ $image->name = '/storage/' . $fullName;
+ } else {
+ $this->image = $this->getOldAttribute('image');
+ }
+ return true;
+ }
+ }
diff --git a/common/models/CarSearch.php b/common/models/CarSearch.php
new file mode 100755
index 0000000..50ca4c4
--- /dev/null
+++ b/common/models/CarSearch.php
@@ -0,0 +1,127 @@
+ $query,
+ 'pagination' => false,
+ ]);
+
+ $this->load($params);
+
+ if(!$this->validate()) {
+ // uncomment the following line if you do not want to return any records when validation fails
+ // $query->where('0=1');
+ return $dataProvider;
+ }
+
+ if($this->scenario == self::SCENARIO_PUBLIC) {
+ if(empty( $this->model )) {
+ $this->model = self::DEFAULT_MODEL;
+ };
+ if(empty( $this->year )) {
+ $this->year = self::DEFAULT_YEAR;
+ };
+ }
+
+ // grid filtering conditions
+ $query->andFilterWhere([
+ 'car_id' => $this->car_id,
+ 'year' => $this->year,
+ 'mileage' => $this->mileage,
+ 'build' => $this->build,
+ 'price' => $this->price,
+ 'model' => $this->model,
+ ]);
+
+ $query->andFilterWhere([
+ 'like',
+ 'image',
+ $this->image,
+ ])
+ ->andFilterWhere([
+ 'like',
+ 'color',
+ $this->color,
+ ])
+ ->andFilterWhere([
+ 'like',
+ 'option',
+ $this->option,
+ ]);
+
+ return $dataProvider;
+ }
+ }
diff --git a/common/models/Emails.php b/common/models/Emails.php
new file mode 100755
index 0000000..bb0a4bb
--- /dev/null
+++ b/common/models/Emails.php
@@ -0,0 +1,123 @@
+ [
+ 'username',
+ 'email',
+ 'phone',
+ ],
+ self::SCENARIO_QUESTION => [
+ 'username',
+ 'email',
+ 'phone',
+ 'message'
+ ],
+ self::SCENARIO_BOOKING => [
+ 'username',
+ 'email',
+ 'phone',
+ 'date_from',
+ 'date_to',
+ ],
+ self::SCENARIO_KEY => [
+ 'username',
+ 'email',
+ 'phone',
+ 'date_count',
+ ],
+ ];
+ return array_merge($scenario, $new_scenarios);
+ }
+
+ public function rules()
+ {
+ return [
+ [
+ [ 'username' ],
+ 'string',
+ 'min' => 2,
+ 'max' => 255,
+ ],
+
+ [
+ 'email',
+ 'email',
+ ],
+ [
+ [
+ 'email',
+ 'phone',
+ ],
+ 'string',
+ 'max' => 255,
+ ],
+
+ [
+ 'phone',
+ 'required',
+ ],
+ [
+ 'message',
+ 'string',
+ ],
+ [
+ ['date_from', 'date_to'],
+ 'safe',
+ ],
+ [
+ ['date_from', 'date_to'],
+ 'filter',
+ 'filter' => function($value) {
+ return strtotime($value);
+ }
+ ],
+ [
+ 'date_count',
+ 'integer',
+ ],
+ ];
+ }
+
+ public function attributeLabels()
+ {
+ return [
+ 'username' => \Yii::t('app', 'Имя'),
+ 'phone' => \Yii::t('app', 'телефон'),
+ 'email' => \Yii::t('app', 'e-mail'),
+ 'message' => \Yii::t('app', 'сообщение'),
+ 'date_to' => \Yii::t('app', 'дата проката до'),
+ 'date_from' => \Yii::t('app', 'дата проката с'),
+ 'date_count' => \Yii::t('app', 'количество дней'),
+ ];
+ }
+
+ }
\ No newline at end of file
diff --git a/common/models/LoginForm.php b/common/models/LoginForm.php
new file mode 100755
index 0000000..afc1c23
--- /dev/null
+++ b/common/models/LoginForm.php
@@ -0,0 +1,78 @@
+hasErrors()) {
+ $user = $this->getUser();
+ if (!$user || !$user->validatePassword($this->password)) {
+ $this->addError($attribute, 'Incorrect username or password.');
+ }
+ }
+ }
+
+ /**
+ * Logs in a user using the provided username and password.
+ *
+ * @return boolean whether the user is logged in successfully
+ */
+ public function login()
+ {
+ if ($this->validate()) {
+ return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0);
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Finds user by [[username]]
+ *
+ * @return User|null
+ */
+ protected function getUser()
+ {
+ if ($this->_user === null) {
+ $this->_user = User::findByUsername($this->username);
+ }
+
+ return $this->_user;
+ }
+}
diff --git a/common/models/Quest.php b/common/models/Quest.php
new file mode 100755
index 0000000..73deeb4
--- /dev/null
+++ b/common/models/Quest.php
@@ -0,0 +1,41 @@
+ 2, 'max' => 255],
+
+ ['email', 'email'],
+ [['email','phone'], 'string', 'max' => 255],
+
+ ['phone', 'required'],
+ [['phone','model_name','model_year','model_color'], 'safe']
+
+ ];
+ }
+
+ public function attributeLabels()
+ {
+ return [
+ 'username' =>'Имя',
+ 'phone' =>'телефон',
+ 'email' =>'e-mail',
+ 'model_name' =>'',
+ 'model_year' =>'',
+ 'model_color' =>'',
+ ];
+ }
+
+
+
+
+}
\ No newline at end of file
diff --git a/common/models/Question.php b/common/models/Question.php
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/common/models/Question.php
diff --git a/common/models/User.php b/common/models/User.php
new file mode 100755
index 0000000..1c47566
--- /dev/null
+++ b/common/models/User.php
@@ -0,0 +1,189 @@
+ self::STATUS_ACTIVE],
+ ['status', 'in', 'range' => [self::STATUS_ACTIVE, self::STATUS_DELETED]],
+ ];
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public static function findIdentity($id)
+ {
+ return static::findOne(['id' => $id, 'status' => self::STATUS_ACTIVE]);
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public static function findIdentityByAccessToken($token, $type = null)
+ {
+ throw new NotSupportedException('"findIdentityByAccessToken" is not implemented.');
+ }
+
+ /**
+ * Finds user by username
+ *
+ * @param string $username
+ * @return static|null
+ */
+ public static function findByUsername($username)
+ {
+ return static::findOne(['username' => $username, 'status' => self::STATUS_ACTIVE]);
+ }
+
+ /**
+ * Finds user by password reset token
+ *
+ * @param string $token password reset token
+ * @return static|null
+ */
+ public static function findByPasswordResetToken($token)
+ {
+ if (!static::isPasswordResetTokenValid($token)) {
+ return null;
+ }
+
+ return static::findOne([
+ 'password_reset_token' => $token,
+ 'status' => self::STATUS_ACTIVE,
+ ]);
+ }
+
+ /**
+ * Finds out if password reset token is valid
+ *
+ * @param string $token password reset token
+ * @return boolean
+ */
+ public static function isPasswordResetTokenValid($token)
+ {
+ if (empty($token)) {
+ return false;
+ }
+
+ $timestamp = (int) substr($token, strrpos($token, '_') + 1);
+ $expire = Yii::$app->params['user.passwordResetTokenExpire'];
+ return $timestamp + $expire >= time();
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function getId()
+ {
+ return $this->getPrimaryKey();
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function getAuthKey()
+ {
+ return $this->auth_key;
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function validateAuthKey($authKey)
+ {
+ return $this->getAuthKey() === $authKey;
+ }
+
+ /**
+ * Validates password
+ *
+ * @param string $password password to validate
+ * @return boolean if password provided is valid for current user
+ */
+ public function validatePassword($password)
+ {
+ return Yii::$app->security->validatePassword($password, $this->password_hash);
+ }
+
+ /**
+ * Generates password hash from password and sets it to the model
+ *
+ * @param string $password
+ */
+ public function setPassword($password)
+ {
+ $this->password_hash = Yii::$app->security->generatePasswordHash($password);
+ }
+
+ /**
+ * Generates "remember me" authentication key
+ */
+ public function generateAuthKey()
+ {
+ $this->auth_key = Yii::$app->security->generateRandomString();
+ }
+
+ /**
+ * Generates new password reset token
+ */
+ public function generatePasswordResetToken()
+ {
+ $this->password_reset_token = Yii::$app->security->generateRandomString() . '_' . time();
+ }
+
+ /**
+ * Removes password reset token
+ */
+ public function removePasswordResetToken()
+ {
+ $this->password_reset_token = null;
+ }
+}
diff --git a/common/modules/language/Module.php b/common/modules/language/Module.php
new file mode 100755
index 0000000..683c729
--- /dev/null
+++ b/common/modules/language/Module.php
@@ -0,0 +1,11 @@
+_language_url === NULL) {
+ $this->_language_url = $this->getUrl();
+
+ $url_list = explode('/', $this->_language_url);
+
+ $language_url = isset( $url_list[ 1 ] ) ? $url_list[ 1 ] : NULL;
+ Language::setCurrent($language_url);
+
+ if($language_url !== NULL && $language_url === Language::getCurrent()->url && strpos($this->_language_url, Language::getCurrent()->url) === 1) {
+ $this->_language_url = substr($this->_language_url, strlen(Language::getCurrent()->url) + 1);
+ }
+ }
+
+
+ return $this->_language_url;
+ }
+
+ protected function resolvePathInfo()
+ {
+ $pathInfo = $this->getLanguageUrl();
+
+ if(( $pos = strpos($pathInfo, '?') ) !== false) {
+ $pathInfo = substr($pathInfo, 0, $pos);
+ }
+
+ $pathInfo = urldecode($pathInfo);
+
+ if(!preg_match('%^(?:
+ [\x09\x0A\x0D\x20-\x7E]
+ | [\xC2-\xDF][\x80-\xBF]
+ | \xE0[\xA0-\xBF][\x80-\xBF]
+ | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}
+ | \xED[\x80-\x9F][\x80-\xBF]
+ | \xF0[\x90-\xBF][\x80-\xBF]{2}
+ | [\xF1-\xF3][\x80-\xBF]{3}
+ | \xF4[\x80-\x8F][\x80-\xBF]{2}
+ )*$%xs', $pathInfo)
+ ) {
+ $pathInfo = utf8_encode($pathInfo);
+ }
+
+ $scriptUrl = $this->getScriptUrl();
+ $baseUrl = $this->getBaseUrl();
+
+ if(strpos($pathInfo, $scriptUrl) === 0) {
+ $pathInfo = substr($pathInfo, strlen($scriptUrl));
+ } elseif($baseUrl === '' || strpos($pathInfo, $baseUrl) === 0) {
+ $pathInfo = substr($pathInfo, strlen($baseUrl));
+ } elseif(isset( $_SERVER[ 'PHP_SELF' ] ) && strpos($_SERVER[ 'PHP_SELF' ], $scriptUrl) === 0) {
+ $pathInfo = substr($_SERVER[ 'PHP_SELF' ], strlen($scriptUrl));
+ } else {
+ throw new InvalidConfigException('Unable to determine the path info of the current request.');
+ }
+
+ if($pathInfo === '/') {
+ $pathInfo = substr($pathInfo, 1);
+ }
+
+ return (string) $pathInfo;
+ }
+ }
\ No newline at end of file
diff --git a/common/modules/language/components/LanguageUrlManager.php b/common/modules/language/components/LanguageUrlManager.php
new file mode 100755
index 0000000..54f7a29
--- /dev/null
+++ b/common/modules/language/components/LanguageUrlManager.php
@@ -0,0 +1,36 @@
+url;
+ } else {
+ return '/'.$language->url.$url;
+ }
+ }
+ }
\ No newline at end of file
diff --git a/common/modules/language/migrations/m160829_104745_create_table_language.php b/common/modules/language/migrations/m160829_104745_create_table_language.php
new file mode 100755
index 0000000..9394178
--- /dev/null
+++ b/common/modules/language/migrations/m160829_104745_create_table_language.php
@@ -0,0 +1,24 @@
+createTable('{{%language}}', [
+ 'language_id' => $this->primaryKey(),
+ 'url' => $this->string()->notNull(),
+ 'local' => $this->string()->notNull(),
+ 'name' => $this->string()->notNull(),
+ 'default' => $this->boolean()->notNull()->defaultValue(false),
+ 'date_create' => $this->integer()->notNull(),
+ 'date_update' => $this->integer()->notNull(),
+ ]);
+ }
+
+ public function down()
+ {
+ $this->dropTable('{{%language}}');
+ }
+}
diff --git a/common/modules/language/migrations/m160829_105345_add_default_languages.php b/common/modules/language/migrations/m160829_105345_add_default_languages.php
new file mode 100755
index 0000000..299e77d
--- /dev/null
+++ b/common/modules/language/migrations/m160829_105345_add_default_languages.php
@@ -0,0 +1,43 @@
+batchInsert('{{%language}}', [
+ 'language_id',
+ 'url',
+ 'local',
+ 'name',
+ 'default',
+ 'date_create',
+ 'date_update',
+ ], [
+ [
+ 1,
+ 'en',
+ 'en-EN',
+ 'English',
+ 0,
+ time(),
+ time(),
+ ],
+ [
+ 2,
+ 'ru',
+ 'ru-RU',
+ 'Русский',
+ 1,
+ time(),
+ time(),
+ ],
+ ]);
+ }
+
+ public function down()
+ {
+ $this->delete('{{%language}}', ['language_id' => [1, 2]]);
+ }
+}
diff --git a/common/modules/language/migrations/m160901_140639_add_ukrainian_language.php b/common/modules/language/migrations/m160901_140639_add_ukrainian_language.php
new file mode 100755
index 0000000..0b33bfe
--- /dev/null
+++ b/common/modules/language/migrations/m160901_140639_add_ukrainian_language.php
@@ -0,0 +1,34 @@
+batchInsert('{{%language}}', [
+ 'language_id',
+ 'url',
+ 'local',
+ 'name',
+ 'default',
+ 'date_create',
+ 'date_update',
+ ], [
+ [
+ 3,
+ 'ua',
+ 'ua-UA',
+ 'Українська',
+ 0,
+ time(),
+ time(),
+ ],
+ ]);
+ }
+
+ public function down()
+ {
+ $this->delete('{{%language}}', ['language_id' => [3]]);
+ }
+}
diff --git a/common/modules/language/models/Language.php b/common/modules/language/models/Language.php
new file mode 100755
index 0000000..a542c54
--- /dev/null
+++ b/common/modules/language/models/Language.php
@@ -0,0 +1,166 @@
+ [
+ 'class' => 'yii\behaviors\TimestampBehavior',
+ 'attributes' => [
+ ActiveRecord::EVENT_BEFORE_INSERT => [
+ 'date_create',
+ 'date_update',
+ ],
+ ActiveRecord::EVENT_BEFORE_UPDATE => [
+ 'date_update',
+ ],
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function rules()
+ {
+ return [
+ [
+ [
+ 'url',
+ 'local',
+ 'name',
+ 'date_create',
+ 'date_update',
+ ],
+ 'required',
+ ],
+ [
+ [ 'default' ],
+ 'boolean',
+ ],
+ [
+ [
+ 'date_create',
+ 'date_update',
+ ],
+ 'integer',
+ ],
+ [
+ [
+ 'url',
+ 'local',
+ 'name',
+ ],
+ 'string',
+ 'max' => 255,
+ ],
+ ];
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function attributeLabels()
+ {
+ return [
+ 'language_id' => Yii::t('app', 'Language ID'),
+ 'url' => Yii::t('app', 'Url'),
+ 'local' => Yii::t('app', 'Local'),
+ 'name' => Yii::t('app', 'Name'),
+ 'default' => Yii::t('app', 'Default'),
+ 'date_create' => Yii::t('app', 'Date Create'),
+ 'date_update' => Yii::t('app', 'Date Update'),
+ ];
+ }
+
+ /**
+ * Get current language
+ *
+ * @return null|Language
+ */
+ public static function getCurrent()
+ {
+ if(self::$current === null) {
+ self::$current = self::getDefaultLanguage();
+ }
+ return self::$current;
+ }
+
+ /**
+ * Set current language by Url param
+ *
+ * @param null|string $url Language url param
+ */
+ public static function setCurrent($url = null) {
+ $language = self::getLanguageByUrl($url);
+ self::$current = ($language === null) ? self::getDefaultLanguage() : $language;
+ Yii::$app->language = self::$current->local;
+ }
+
+ /**
+ * Get default language
+ *
+ * @return null|Language
+ */
+ public static function getDefaultLanguage() {
+ /**
+ * @var null|Language $language
+ */
+ $language = self::find()->where(['default' => true])->one();
+ return $language;
+ }
+
+ /**
+ * Get language by Url param
+ *
+ * @param null|string $url Language url param
+ *
+ * @return null|Language
+ */
+ public static function getLanguageByUrl($url = null) {
+ if($url === NULL) {
+ return NULL;
+ } else {
+ /**
+ * @var null|Language $language
+ */
+ $language = self::find()->where(['url' => $url])->one();
+ if($language === NULL) {
+ return NULL;
+ } else {
+ return $language;
+ }
+ }
+ }
+ }
diff --git a/common/modules/language/readme.txt b/common/modules/language/readme.txt
new file mode 100755
index 0000000..b16841a
--- /dev/null
+++ b/common/modules/language/readme.txt
@@ -0,0 +1,32 @@
+1. Запускаем миграцию: php yii migrate --migrationPath=common/modules/language/migrations
+2. Добавляем в файл конфигурации:
+'urlManager' => [
+ 'enablePrettyUrl' => true,
+ 'showScriptName' => false,
+ 'class'=>'common\modules\language\components\LanguageUrlManager',
+ 'rules'=>[
+ '/' => 'site/index',
+ '//*'=>'/',
+ ]
+],
+3. Добавляем в файл конфигурации:
+'request' => [
+ 'class' => 'common\modules\language\components\LanguageRequest'
+],
+4. Добавляем в файл конфигурации:
+'language'=>'ru-RU',
+'i18n' => [
+ 'translations' => [
+ '*' => [
+ 'class' => 'yii\i18n\PhpMessageSource',
+ 'basePath' => '@frontend/messages',
+ 'sourceLanguage' => 'en',
+ 'fileMap' => [
+ ],
+ ],
+ ],
+],
+5. Переводы писать в файл frontend\messages\{language}\app.php, где {language} - нужный язык, например ru.
+6. Для вывода на странице сообщения с переводом используем функцию: Yii::t('app', {message}, $params = [], $language = null),
+ где {message} - нужное сообщение, $params - массив параметров, $language - нужный язык (по умолчанию используется текущий язык).
+7. В наличие также виджет переключения языка: LanguagePicker::widget()
\ No newline at end of file
diff --git a/common/modules/language/widgets/LanguagePicker.php b/common/modules/language/widgets/LanguagePicker.php
new file mode 100755
index 0000000..fe4621f
--- /dev/null
+++ b/common/modules/language/widgets/LanguagePicker.php
@@ -0,0 +1,22 @@
+render('view', [
+ 'current' => Language::getCurrent(),
+ 'languages' => Language::find()->where(['!=', 'language_id', Language::getCurrent()->language_id])->all(),
+ ]);
+ }
+ }
\ No newline at end of file
diff --git a/common/modules/language/widgets/views/view.php b/common/modules/language/widgets/views/view.php
new file mode 100755
index 0000000..892a796
--- /dev/null
+++ b/common/modules/language/widgets/views/view.php
@@ -0,0 +1,31 @@
+
+
+
+ name;
+ ?>
+ ▼
+
+
+
+
+ name, '/' . $language->url . Yii::$app->getRequest()
+ ->getLanguageUrl());
+ ?>
+
+
+
+
diff --git a/common/translation/ru/app.php b/common/translation/ru/app.php
new file mode 100755
index 0000000..922c563
--- /dev/null
+++ b/common/translation/ru/app.php
@@ -0,0 +1,154 @@
+ 'ID',
+ 'username' => 'Имя',
+ 'surname' => 'Фамилия',
+ 'auth_key' => 'Auth Key',
+ 'password_hash' => 'Password Hash',
+ 'password_reset_token' => 'Password Reset Token',
+ 'email' => 'Логин (e-mail)',
+ 'phone' => 'Телефон',
+ 'status' => 'Статус',
+ 'created_at' => 'Created At',
+ 'updated_at' => 'Updated At',
+ 'verifyCode' => 'Код проверки',
+ 'password' => 'Пароль',
+ 'password_repeat' => 'Повторить пароль',
+ 'registration' => 'Регистрация',
+ 'message' => 'Этот {field} уже занят',
+ 'message_match_password' => 'Пароли не совпадают',
+ 'exit' => 'Выход',
+ 'enter' => 'Войти',
+ 'your_personal_area' => 'Вход в личный кабинет',
+ 'forgot_password' => 'Забыли пароль?',
+ 'rememberMe' => 'Запомнить меня',
+ 'articles' => 'Всего товаров',
+ 'code' => 'Код: {0}',
+ 'checkout' => 'оформить заказ',
+ 'sum' => 'Сумма',
+ 'continue_shopping' => 'продолжить покупки',
+ 'edit_personal_data' => 'Редактировать личные данные',
+ 'personal_data' => 'Личные данные',
+ 'my_orders' => 'Мои заказы',
+ 'bookmarks' => 'Закладки',
+ 'basket' => 'Корзина',
+ 'banner_id' => 'Banner ID',
+ 'image' => 'Изображение',
+ 'alt' => 'Описание',
+ 'title' => 'Заголовок',
+ 'url' => 'Ссылка',
+ 'width' => 'Ширина',
+ 'height' => 'Высота',
+ 'blog_id' => 'Blog ID',
+ 'user_id' => 'User ID',
+ 'name' => 'Название',
+ 'link' => 'Ссылка',
+ 'date_add' => 'Дата добавления',
+ 'user_add_id' => 'User Add ID',
+ 'view_count' => 'Количество просмотров',
+ 'description' => 'Описание',
+ 'cover' => 'Фото главное',
+ 'event_id' => 'Event ID',
+ 'alias' => 'Ссылка',
+ 'body' => 'Тело',
+ 'meta_title' => 'Мета заголовок',
+ 'h1' => 'H1',
+ 'seo_text' => 'Сео Текст',
+ 'end_at' => 'Срок действия по',
+ 'order_items_id' => 'Order Items ID',
+ 'order_id' => 'Order ID',
+ 'item_id' => 'Item ID',
+ 'item_count' => 'Количество',
+ 'price' => 'Цена',
+ 'customer_id' => 'Customer ID',
+ 'delivery' => 'Доставка',
+ 'payment' => 'Оплата',
+ 'seo_id' => 'Seo ID',
+ 'controller' => 'Controller',
+ 'seo_category_id' => 'Seo Category ID',
+ 'seo_dynamic_id' => 'Seo Dynamic ID',
+ 'action' => 'Action',
+ 'fields' => 'Поля',
+ 'param' => 'Параметры',
+ 'key' => 'Ключ',
+ 'service_id' => 'Service ID',
+ 'slider_id' => 'Slider ID',
+ 'speed' => 'Скорость',
+ 'duration' => 'Продолжительность',
+ 'slider_image_id' => 'Slider Image ID',
+ 'sort' => 'Сортировка',
+ 'Цвет' => 'Цвет',
+ 'year_made' => 'Год производства',
+
+ 'citycar_chose' => 'Выбери свойидеальный CityCar',
+ 'enroll' => 'Записаться на тест драйв',
+ 'buy_leaf' => 'Купить Nissan Leaf',
+ 'why_leaf' => 'Почему Nissan Leaf',
+ 'why_leaf_line1' => 'за 10 сек Разгон 0-100км/ч
',
+ 'why_leaf_line2' => '5 звездРейтинг безопасности
',
+ 'why_leaf_line3' => '152 км/чМаксимальная скорость
',
+ 'why_leaf_line4' => 'от 5 до 7 часов Время полной зарядки
',
+ 'why_leaf_line5' => 'от 15000 $ Стоимость модели базовой комплектации
',
+ 'why_leaf_line6' => 'по городу 150 км в режиме эко 192 км Запас хода
',
+ 'why_we' => 'Почему мы',
+ 'why_we_line1' => 'Лидер Украины в продаже и обслуживании электрокаров
',
+ 'why_we_line2' => 'Производим экспертное консультирование
',
+ 'why_we_line3' => 'Предлагаем тестирование перед осуществлением покупки
',
+ 'why_we_line4' => 'Осуществляем полную проверку авто (подтверждаем карфаксом)
',
+ 'why_we_line5' => 'Наиболее выгодные ценовые предложения
',
+ 'why_we_line6' => 'Предоставляем полное гарантийное обслуживание
',
+ 'contacts' => 'Контакты',
+ 'contacts1' => 'проспект Степана Бандеры 9в',
+ 'kyiv' => 'Киев',
+ 'partners' => 'Наши партнеры',
+ 'rent_auto' => 'Аренда и прокат авто',
+ 'rent_auto1' => 'Выбери Nissan Leaf получи 3 дня аренды в подарок ',
+ 'rent_auto2' => 'Почувствуй бесшумный ход, приятную езду, легкую управляемость автомобиля и нашу заботу. Только мы предоставляем нашим клиентам полную карту зарядных станций и подробно описываем условия доступа к разным операторам + осуществляем полную техническую помощь на дороге. Поэтому вам не придется ни о чем беспокоиться, а только наслаждаться поездкой в привычном для вас ритме жизни.',
+ 'rent_auto3' => 'Стоимость проката',
+ 'days' => 'дней',
+ 'week' => 'неделя',
+ 'weeks' => 'Недель',
+ 'month' => 'Месяц',
+ 'months' => 'месяцев',
+
+ 'deposit' => 'Залоговый депозит',
+ 'dontforget1' => 'Не забудьте взять с собой',
+ 'dontforget2' => 'Паспорт',
+ 'dontforget3' => 'Идентификационный код',
+ 'dontforget4' => 'Водительские права',
+ 'rent1' => 'Что входит в стоимость проката',
+ 'rent2' => 'Страхование КАСКО',
+ 'rent3' => 'Профессиональная техническая помощь на дороге',
+ 'rent4' => 'Полный комплект необходимых аксессуаров',
+ 'rent_button' => 'Забронировать',
+ 'keytokey' => 'Акция "Ключ-на-ключ"',
+ 'keytokey11' => 'Специальное предложение от СЕО компании ElectroCars',
+ 'keytokey12' => 'Александра Кравцова для тех, кто решил познакомиться со всеми преимуществами электромобиля лично:',
+ 'keytokey2' => 'Два года существования проекта ElectroCars показали, что лучший аргумент перейти на электромобиль - дать попробовать пересесть на него хотя бы на несколько дней. После этого обычная машина кажется прошлым веком, а все страхи по имеющейся инфраструктуре для электромобилей и пробега на одном заряде исчезают.',
+ 'keytokey3' => 'Мы решили запустить проект "Ключ-на-ключ", чтобы дать возможность нашим друзьям попробовать электрокар, а нам вспомнить, что такое оставлять на заправке 1000 грн :)',
+ 'keytokey4' => 'Если вы имеете водительский стаж не менее 2-х лет, собственное авто и желание узнать, что значит водить электрокар, тогда вам нужно просто',
+ 'submit_but1' => 'Оставить заявку',
+ 'be_friend' => 'Стать нашим другом',
+ 'share_fb' => 'Поделиться вашими фото и впечатлениями от поездки на своей страничке в ФБ.',
+ 'chose_var' => 'Выбирайте оптимальный для себя вариант',
+ 'leaf_days3' => 'Leaf Викенд / 3 дня',
+ 'leaf_days5' => 'Leaf Будни / 5 дней',
+
+ 'models' => 'Модельный ряд Nissan Leaf',
+ 'models2' => 'Модели Nissan Leaf в наличии',
+
+ 'footer1' => 'Все права защищены.',
+ 'footer2' => 'Использование материалов сайта возможно только со ссылкой на источник.',
+ 'footer3' => 'Создание сайтов',
+ 'comment' => 'комментарий',
+ 'send' => 'отправить',
+ 'text_message' => 'Сообщение',
+ 'buy_but' => 'купить',
+ 'questions' => 'Остались вопросы? Напишите нам',
+ 'zapys' => 'записаться',
+ 'from' => 'с',
+ 'to' => 'по',
+ 'numdays' => 'Количество дней',
+ 'tsd_km' => 'тыс. км',
+ 'bron' => 'Дата брони',
+];
\ No newline at end of file
diff --git a/common/translation/ru/product.php b/common/translation/ru/product.php
new file mode 100755
index 0000000..a237a7e
--- /dev/null
+++ b/common/translation/ru/product.php
@@ -0,0 +1,30 @@
+ 'Категории',
+ 'Create Category' => 'Создать Категорию',
+ 'Name' => 'Наименование',
+ 'Remote ID' => 'ID в 1С',
+ 'Search for "{keywords}"' => 'Поиск по "{keywords}"',
+ 'Search for "{keywords}" in category "{category}"' => 'Поиск по "{keywords}" в категории "{category}"',
+ 'Promo products' => 'Акционные товары',
+ 'New products' => 'Новинки',
+ 'Top products' => 'Популярные',
+ 'Similar products' => 'Похожие товары',
+ 'Brands' => 'Бренды',
+ 'Brand' => 'Бренд',
+ 'Categories' => 'Категории',
+ 'Category' => 'Категория',
+ 'Select brand' => 'Выберите бренд',
+ 'Select category' => 'Выберите категорию',
+ 'SKU' => 'Артикул',
+ 'Stock' => 'Остаток',
+ 'Price' => 'Цена',
+ 'Price Old' => 'Старая Цена',
+ 'Products' => 'Товары',
+ 'Product' => 'Товар',
+ 'Variants' => 'Модификации',
+ 'Variant' => 'Модификация',
+ 'Create Product' => 'Создать Товар',
+ 'Enable' => 'Доступно',
+ 'Disable' => 'Отсутсвует',
+];
\ No newline at end of file
diff --git a/common/translation/ua/app.php b/common/translation/ua/app.php
new file mode 100755
index 0000000..21559fd
--- /dev/null
+++ b/common/translation/ua/app.php
@@ -0,0 +1,169 @@
+ 'ID',
+ 'username' => "Ім'я",
+ 'surname' => 'Фамилия',
+ 'auth_key' => 'Auth Key',
+ 'password_hash' => 'Password Hash',
+ 'password_reset_token' => 'Password Reset Token',
+ 'email' => 'Логин (e-mail)',
+ 'phone' => 'Телефон',
+ 'status' => 'Статус',
+ 'created_at' => 'Created At',
+ 'updated_at' => 'Updated At',
+ 'verifyCode' => 'Код проверки',
+ 'password' => 'Пароль',
+ 'password_repeat' => 'Повторить пароль',
+ 'registration' => 'Регистрация',
+ 'message' => 'Этот {field} уже занят',
+ 'message_match_password' => 'Пароли не совпадают',
+ 'exit' => 'Выход',
+ 'enter' => 'Войти',
+ 'your_personal_area' => 'Вход в личный кабинет',
+ 'forgot_password' => 'Забыли пароль?',
+ 'rememberMe' => 'Запомнить меня',
+ 'articles' => 'Всего товаров',
+ 'code' => 'Код: {0}',
+ 'checkout' => 'оформить заказ',
+ 'sum' => 'Сумма',
+ 'continue_shopping' => 'продолжить покупки',
+ 'edit_personal_data' => 'Редактировать личные данные',
+ 'personal_data' => 'Личные данные',
+ 'my_orders' => 'Мои заказы',
+ 'bookmarks' => 'Закладки',
+ 'basket' => 'Корзина',
+ 'banner_id' => 'Banner ID',
+ 'image' => 'Изображение',
+ 'alt' => 'Описание',
+ 'title' => 'Заголовок',
+ 'url' => 'Ссылка',
+ 'width' => 'Ширина',
+ 'height' => 'Высота',
+ 'blog_id' => 'Blog ID',
+ 'user_id' => 'User ID',
+ 'name' => 'Название',
+ 'link' => 'Ссылка',
+ 'date_add' => 'Дата добавления',
+ 'user_add_id' => 'User Add ID',
+ 'view_count' => 'Количество просмотров',
+ 'description' => 'Описание',
+ 'cover' => 'Фото главное',
+ 'event_id' => 'Event ID',
+ 'alias' => 'Ссылка',
+ 'body' => 'Тело',
+ 'meta_title' => 'Мета заголовок',
+ 'h1' => 'H1',
+ 'seo_text' => 'Сео Текст',
+ 'end_at' => 'Срок действия по',
+ 'order_items_id' => 'Order Items ID',
+ 'order_id' => 'Order ID',
+ 'item_id' => 'Item ID',
+ 'item_count' => 'Количество',
+ 'price' => 'Цена',
+ 'customer_id' => 'Customer ID',
+ 'delivery' => 'Доставка',
+ 'payment' => 'Оплата',
+ 'seo_id' => 'Seo ID',
+ 'controller' => 'Controller',
+ 'seo_category_id' => 'Seo Category ID',
+ 'seo_dynamic_id' => 'Seo Dynamic ID',
+ 'action' => 'Action',
+ 'fields' => 'Поля',
+ 'param' => 'Параметры',
+ 'key' => 'Ключ',
+ 'service_id' => 'Service ID',
+ 'slider_id' => 'Slider ID',
+ 'speed' => 'Скорость',
+ 'duration' => 'Продолжительность',
+ 'slider_image_id' => 'Slider Image ID',
+ 'sort' => 'Сортировка',
+ 'Цвет' => 'Колір',
+ 'Пробег' => 'Пробіг',
+ 'Дата выпуска' => 'Дата випуску',
+ 'Доп. опции' => 'Дод. опції',
+ 'черный' => 'Чорний',
+ 'year_made' => 'Рік виробництва',
+
+ 'citycar_chose' => 'Обери свій ідеальний CityCar',
+ 'enroll' => 'Записатись на тест драйв',
+ 'buy_leaf' => 'Купити Nissan Leaf',
+ 'why_leaf' => 'Чому Nissan Leaf',
+ 'why_leaf_line1' => 'за 10 сек Розгін 0-100км/ч
',
+ 'why_leaf_line2' => '5 зірокРейтинг безпеки
',
+ 'why_leaf_line3' => '152 км/чМаксимальна швидкість
',
+ 'why_leaf_line4' => 'від 5 до 7 годин Час повної зарядки
',
+ 'why_leaf_line5' => 'запас ходу - по місту 150 км в режимі еко 192 км Запас ходу
',
+ 'why_leaf_line6' => 'від 15000 у.о. Вартість моделі базової комплектації
',
+ 'why_we' => 'Чому ми',
+ 'why_we_line1' => 'Лідер України з продажу і обслуговування електрокарів
',
+ 'why_we_line2' => 'Надаємо експертне консультування
',
+ 'why_we_line3' => 'Пропонуємо тестування перед здійсненням покупки
',
+ 'why_we_line4' => 'Здійснюємо повну перевірку авто (підтверджуємо карфаксом)
',
+ 'why_we_line5' => 'Найбільш вигідні цінові пропозиції
',
+ 'why_we_line6' => 'Надаємо повне гарантійне обслуговування
',
+ 'contacts' => 'Контакти',
+ 'contacts1' => 'вул. Набережно-Лугова, 4',
+ 'kyiv' => 'Київ',
+ 'partners' => 'Наші партнери',
+ 'rent_auto' => 'Оренда и прокат авто',
+ 'rent_auto1' => 'Обери Nissan Leaf отримай 3 дні оренди в подарунок ',
+ 'rent_auto2' => 'Відчуй безшумний хід, приємну їзду, легку керованість автомобіля і нашу турботу. Тільки ми надаємо нашим клієнтам повну карту зарядних станцій і детально описуємо умови доступу до різних операторів + здійснюємо повну технічну допомогу на дорозі. Тож вам не доведеться ні про що турбуватися, а тільки насолоджуватися поїздкою в звичному для вас ритмі життя',
+ 'rent_auto3' => 'Вартість прокату',
+ 'days' => 'днів',
+ 'week' => 'тиждень',
+ 'weeks' => 'Тижнів',
+ 'month' => 'Місяць',
+ 'months' => 'місяців',
+
+ 'deposit' => 'Заставний депозит',
+ 'dontforget1' => 'Не забудьте взяти з собою',
+ 'dontforget2' => 'Паспорт',
+ 'dontforget3' => 'Ідентифікаційний код',
+ 'dontforget4' => 'Водійські права',
+ 'rent1' => 'Що входить у вартість прокату',
+ 'rent2' => 'Страхування КАСКО',
+ 'rent3' => 'Професійна технічна допомога на дорозі',
+ 'rent4' => 'Повний Комплект необхідних аксесуарів',
+ 'rent_button' => 'Забронювати',
+ 'keytokey' => 'Акція "Ключ-на-ключ"',
+ 'keytokey11' => 'Спеціальна пропозиція від СЕО компанії ElectroCars ',
+ 'keytokey12' => 'Олександра Кравцова для тих, хто вирішив познайомитися з усіма перевагами електромобіля особисто',
+ 'keytokey2' => 'Два роки проекту ElectroCars показали, що найкращий аргумент перейти на електромобіль - дати спробувати пересісти на нього бодай на кілька днів. Після цього звичайна автівка видається минулим століттям, а всі страхи щодо наявної інфраструктури для електромобілів, проїзду на одній зарядці зникають.',
+ 'keytokey3' => 'Ми вирішили запустити проект "Ключ-на-ключ", щоб дати змогу нашим друзям спробувати електрокар, а нам згадати, що таке залишати на заправці 1000 грн :)',
+ 'keytokey4' => 'Якщо ви маєте водійський стаж не менше 2-х років, власне авто і бажання дізнатися, що означає керувати електрокаром, тоді вам потрібно просто',
+ 'submit_but1' => 'Залишити заявку',
+ 'be_friend' => 'Стати нашим другом',
+ 'share_fb' => 'Поділитися вашими фото та враженнями від поїздки на своїй сторінці в ФБ.',
+ 'chose_var' => 'Обирайте оптимальний для себе варіант',
+ 'leaf_days3' => 'Leaf Вікенд / 3 дні',
+ 'leaf_days5' => 'Leaf Будні / 5 днів',
+
+ 'models' => 'Модельний ряд Nissan Leaf',
+ 'models2' => 'Моделі Nissan Leaf в наявності',
+
+ 'footer1' => 'Усі права захищені.',
+ 'footer2' => 'Використання матеріалів сайту можливо лише із посиланням на джерело.',
+ 'footer3' => 'Створення сайтів',
+ 'comment' => 'коментар',
+ 'send' => 'надіслати',
+ 'text_message' => 'повідомлення',
+ 'buy_but' => 'купити',
+ 'questions' => 'Залишились питання? Напишіть нам',
+ 'zapys' => 'записатись',
+ 'from' => 'з',
+ 'to' => 'по',
+ 'numdays' => 'кількість днів',
+ 'tsd_km' => 'тис. км',
+ 'Черный' => 'Чорний',
+ 'Белый' => 'Білий',
+ 'Графитовый' => 'Графітовий',
+ 'Голубой' => 'Блакитний',
+ 'Серебристый' => 'Сріблястий',
+ 'Красный' => 'Червоний',
+ 'Центральный замок, иммобилайзер, подушки безопасности (Airbag) 8 шт., ABS, ESP, электроусилитель руля, стеклоподъемники 4-ох окон, бортовой компьютер, климат-контроль, подогрев 4-ох сидений, бесключевой доступ, заводка с кнопки, подогрев руля, bluetooth, hands free, круиз-контроль, многофункциональная мультимедийная система Nissan Connect: AM/FM/CD/MP3, навигационная система, камера заднего вида, музыка BOSE, легкосплавные диски R16.' => 'Центральний замок, іммобілайзер, подушки безпеки (Airbag) 8 шт., ABS, ESP, електропідсилювач керма, склопідйомники 4-ох вікон, бортовий комп\'ютер, клімат-контроль, підігрів 4-ох сидінь, безключовий доступ, заводка з кнопки, підігрів керма, bluetooth, hands free, круїз-контроль, багатофункціональна мультимедійна система Nissan Connect: AM/FM/CD/MP3, навігаційна система, камера заднього виду, музика BOSE, легкосплавні диски R16.',
+ 'Центральный замок, иммобилайзер, подушки безопасности (Airbag) 8 шт., ABS, ESP, электроусилитель руля, стеклоподъемники 4-ох окон, бортовой компьютер, климат-контроль, подогрев 4-ох сидений, бесключевой доступ, заводка с кнопки, подогрев руля, bluetooth, hands free, камера заднего вида, круиз-контроль, многофункциональная мультимедийная система Nissan Connect: AM/FM/CD/MP3, навигационная система, камера заднего вида, легкосплавные диски R16.' => 'Центральний замок, іммобілайзер, подушки безпеки (Airbag) 8 шт., ABS, ESP, електропідсилювач керма, склопідйомники 4-ох вікон, бортовий комп\'ютер, клімат-контроль, підігрів 4-ох сидінь, безключовий доступ, заводка з кнопки, підігрів керма, bluetooth, hands free, круїз-контроль, багатофункціональна мультимедійна система Nissan Connect: AM/FM/CD/MP3, навігаційна система, камера заднього виду, легкосплавні диски R16.',
+ 'Центральный замок, иммобилайзер, подушки безопасности (Airbag) 8 шт., ABS, ESP, электроусилитель руля, стеклоподъемники 4-ох окон, бортовой компьютер, климат-контроль, подогрев 4-ох сидений, бесключевой доступ, заводка с кнопки, подогрев руля, bluetooth, hands free.' => 'Центральний замок, іммобілайзер, подушки безпеки (Airbag) 8 шт., ABS, ESP, електропідсилювач керма, склопідйомники 4-ох вікон, бортовий комп\'ютер, клімат-контроль, підігрів 4-ох сидінь, безключовий доступ, заводка з кнопки, підігрів керма, bluetooth, hands free.',
+ 'Центральный замок, иммобилайзер, подушки безопасности (Airbag) 8 шт., ABS, ESP, электроусилитель руля, стеклоподъемники 4-ох окон, бортовой компьютер, климат-контроль, подогрев 4-ох сидений, бесключевой доступ, заводка с кнопки, подогрев руля, bluetooth, hands free, камера заднего вида.' => 'Центральний замок, іммобілайзер, подушки безпеки (Airbag) 8 шт., ABS, ESP, електропідсилювач керма, склопідйомники 4-ох вікон, бортовий комп\'ютер, клімат-контроль, підігрів 4-ох сидінь, безключовий доступ, заводка з кнопки, підігрів керма, bluetooth, hands free, камера заднього виду.',
+ 'Центральный замок, иммобилайзер, 8 шт. подушек безопасности (Airbag), ABS, ESP, электроусилитель руля, стеклоподъемники 4-ох окон, бортовой компьютер, климат-контроль, подогрев 4-ох сидений, бесключевой доступ, подогрев руля, bluetooth, hands free, заводка с кнопки, камера заднего вида, порт CHADEMO.' => 'Центральний замок, іммобілайзер, подушки безпеки (Airbag) 8 шт., ABS, ESP, електропідсилювач керма, склопідйомники 4-ох вікон, бортовий комп\'ютер, клімат-контроль, підігрів 4-ох сидінь, безключовий доступ, підігрів керма, bluetooth, hands free, заводка з кнопки, камера заднього виду, порт CHADEMO.',
+ 'Камера заднего вида, порт CHADEMO' => 'Камера заднього виду, порт CHADEMO',
+];
\ No newline at end of file
diff --git a/common/translation/ua/product.php b/common/translation/ua/product.php
new file mode 100755
index 0000000..a237a7e
--- /dev/null
+++ b/common/translation/ua/product.php
@@ -0,0 +1,30 @@
+ 'Категории',
+ 'Create Category' => 'Создать Категорию',
+ 'Name' => 'Наименование',
+ 'Remote ID' => 'ID в 1С',
+ 'Search for "{keywords}"' => 'Поиск по "{keywords}"',
+ 'Search for "{keywords}" in category "{category}"' => 'Поиск по "{keywords}" в категории "{category}"',
+ 'Promo products' => 'Акционные товары',
+ 'New products' => 'Новинки',
+ 'Top products' => 'Популярные',
+ 'Similar products' => 'Похожие товары',
+ 'Brands' => 'Бренды',
+ 'Brand' => 'Бренд',
+ 'Categories' => 'Категории',
+ 'Category' => 'Категория',
+ 'Select brand' => 'Выберите бренд',
+ 'Select category' => 'Выберите категорию',
+ 'SKU' => 'Артикул',
+ 'Stock' => 'Остаток',
+ 'Price' => 'Цена',
+ 'Price Old' => 'Старая Цена',
+ 'Products' => 'Товары',
+ 'Product' => 'Товар',
+ 'Variants' => 'Модификации',
+ 'Variant' => 'Модификация',
+ 'Create Product' => 'Создать Товар',
+ 'Enable' => 'Доступно',
+ 'Disable' => 'Отсутсвует',
+];
\ No newline at end of file
diff --git a/common/widgets/Alert.php b/common/widgets/Alert.php
new file mode 100755
index 0000000..93d2736
--- /dev/null
+++ b/common/widgets/Alert.php
@@ -0,0 +1,81 @@
+session->setFlash('error', 'This is the message');
+ * Yii::$app->session->setFlash('success', 'This is the message');
+ * Yii::$app->session->setFlash('info', 'This is the message');
+ * ```
+ *
+ * Multiple messages could be set as follows:
+ *
+ * ```php
+ * Yii::$app->session->setFlash('error', ['Error 1', 'Error 2']);
+ * ```
+ *
+ * @author Kartik Visweswaran
+ * @author Alexander Makarov
+ */
+class Alert extends \yii\bootstrap\Widget
+{
+ /**
+ * @var array the alert types configuration for the flash messages.
+ * This array is setup as $key => $value, where:
+ * - $key is the name of the session flash variable
+ * - $value is the bootstrap alert type (i.e. danger, success, info, warning)
+ */
+ public $alertTypes = [
+ 'error' => 'alert-danger',
+ 'danger' => 'alert-danger',
+ 'success' => 'alert-success',
+ 'info' => 'alert-info',
+ 'warning' => 'alert-warning'
+ ];
+ /**
+ * @var array the options for rendering the close button tag.
+ */
+ public $closeButton = [];
+
+
+ public function init()
+ {
+ parent::init();
+
+ $session = Yii::$app->session;
+ $flashes = $session->getAllFlashes();
+ $appendCss = isset($this->options['class']) ? ' ' . $this->options['class'] : '';
+
+ foreach ($flashes as $type => $data) {
+ if (isset($this->alertTypes[$type])) {
+ $data = (array) $data;
+ foreach ($data as $i => $message) {
+ /* initialize css class for each alert box */
+ $this->options['class'] = $this->alertTypes[$type] . $appendCss;
+
+ /* assign unique id to each alert box */
+ $this->options['id'] = $this->getId() . '-' . $type . '-' . $i;
+
+ echo \yii\bootstrap\Alert::widget([
+ 'body' => $message,
+ 'closeButton' => $this->closeButton,
+ 'options' => $this->options,
+ ]);
+ }
+
+ $session->removeFlash($type);
+ }
+ }
+ }
+}
diff --git a/common/widgets/Mailer.php b/common/widgets/Mailer.php
new file mode 100755
index 0000000..26332f8
--- /dev/null
+++ b/common/widgets/Mailer.php
@@ -0,0 +1,50 @@
+IsSMTP();
+ $mail->CharSet = 'UTF-8';
+// $mail->SMTPDebug = 1;
+ $mail->SMTPAuth = true;
+ $mail->SMTPSecure = 'ssl';
+ $mail->Host = "smtp.gmail.com";
+ $mail->Port = 465; // or 587
+ $mail->IsHTML(true);
+ $mail->Username = "login@gmail.com"; // Google email account
+ $mail->Password = "password"; // Password to this account
+ $mail->SetFrom("leaf@electrocars.ua");
+ $mail->isHTML(true);
+ $mail->Subject = $this->subject;
+ $mail->Body = $this->render($this->type, ['params' => $this->params]);
+ $mail->AddAddress('zhegal@gmail.com');
+ $mail->AddAddress('pmartweb1@gmail.com');
+ if(!$mail->Send()) {
+ echo "Mailer Error: " . $mail->ErrorInfo;
+ } else {
+ echo "Message has been sent";
+ }
+ }
+
+}
+
diff --git a/common/widgets/views/booking.php b/common/widgets/views/booking.php
new file mode 100755
index 0000000..0865251
--- /dev/null
+++ b/common/widgets/views/booking.php
@@ -0,0 +1,5 @@
+Name: = $params['username'] ?>
+Phone: = $params['phone'] ?>
+Email: = $params['email'] ?>
+From: = $params['date_from'] ?>
+To: = $params['date_to'] ?>
\ No newline at end of file
diff --git a/common/widgets/views/buy.php b/common/widgets/views/buy.php
new file mode 100755
index 0000000..0e38417
--- /dev/null
+++ b/common/widgets/views/buy.php
@@ -0,0 +1,6 @@
+Name: = $params['username'] ?>
+Phone: = $params['phone'] ?>
+Email: = $params['email'] ?>
+Model: = $params['model_name'] ?>
+Year: = $params['model_color'] ?>
+Color: = $params['model_year'] ?>
\ No newline at end of file
diff --git a/common/widgets/views/keytokey.php b/common/widgets/views/keytokey.php
new file mode 100755
index 0000000..63eaaa5
--- /dev/null
+++ b/common/widgets/views/keytokey.php
@@ -0,0 +1,4 @@
+Name: = $params['username'] ?>
+Phone: = $params['phone'] ?>
+Email: = $params['email'] ?>
+Days: = $params['date_count'] ?> days
\ No newline at end of file
diff --git a/common/widgets/views/question.php b/common/widgets/views/question.php
new file mode 100755
index 0000000..dadd896
--- /dev/null
+++ b/common/widgets/views/question.php
@@ -0,0 +1,4 @@
+Name: = $params['username'] ?>
+Phone: = $params['phone'] ?>
+Email: = $params['email'] ?>
+Text: = $params['message'] ?>
\ No newline at end of file
diff --git a/common/widgets/views/questions.php b/common/widgets/views/questions.php
new file mode 100755
index 0000000..8804ed4
--- /dev/null
+++ b/common/widgets/views/questions.php
@@ -0,0 +1,3 @@
+Name: = $params['username'] ?>
+Phone: = $params['phone'] ?>
+Email: = $params['email'] ?>
\ No newline at end of file
diff --git a/common/widgets/views/test.php b/common/widgets/views/test.php
new file mode 100755
index 0000000..aa959ad
--- /dev/null
+++ b/common/widgets/views/test.php
@@ -0,0 +1,2 @@
+Name: = $params['username'] ?>
+Phone: = $params['phone'] ?>
\ No newline at end of file
diff --git a/composer.json b/composer.json
new file mode 100755
index 0000000..1da9c36
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,43 @@
+{
+ "name": "yiisoft/yii2-app-advanced",
+ "description": "Yii 2 Advanced Project Template",
+ "keywords": ["yii2", "framework", "advanced", "project template"],
+ "homepage": "http://www.yiiframework.com/",
+ "type": "project",
+ "license": "BSD-3-Clause",
+ "support": {
+ "issues": "https://github.com/yiisoft/yii2/issues?state=open",
+ "forum": "http://www.yiiframework.com/forum/",
+ "wiki": "http://www.yiiframework.com/wiki/",
+ "irc": "irc://irc.freenode.net/yii",
+ "source": "https://github.com/yiisoft/yii2"
+ },
+ "minimum-stability": "dev",
+ "require": {
+ "php": ">=5.4.0",
+ "yiisoft/yii2": ">=2.0.6",
+ "phpmailer/phpmailer": "^5.2",
+ "yiisoft/yii2-bootstrap": "*",
+ "yiisoft/yii2-jui": "~2.0.0",
+ "yiisoft/yii2-swiftmailer": "*",
+ "kartik-v/yii2-widget-fileinput": "@dev"
+ },
+ "require-dev": {
+ "yiisoft/yii2-codeception": "*",
+ "yiisoft/yii2-debug": "*",
+ "yiisoft/yii2-gii": "*",
+ "yiisoft/yii2-faker": "*"
+ },
+ "config": {
+ "process-timeout": 1800
+ },
+ "extra": {
+ "asset-installer-paths": {
+ "npm-asset-library": "vendor/npm",
+ "bower-asset-library": "vendor/bower"
+ }
+ },
+ "scripts": {
+ "post-install-cmd": "php init --env=Development --overwrite=n"
+ }
+}
diff --git a/composer.lock b/composer.lock
new file mode 100755
index 0000000..4517d12
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,1211 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
+ "This file is @generated automatically"
+ ],
+ "hash": "7ec2028a77e36e45dcb343058fbac059",
+ "content-hash": "b12c59124f1c9351d06c60758a6f1a3f",
+ "packages": [
+ {
+ "name": "bower-asset/bootstrap",
+ "version": "v3.3.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/twbs/bootstrap.git",
+ "reference": "16b48259a62f576e52c903c476bd42b90ab22482"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/twbs/bootstrap/zipball/16b48259a62f576e52c903c476bd42b90ab22482",
+ "reference": "16b48259a62f576e52c903c476bd42b90ab22482",
+ "shasum": ""
+ },
+ "require": {
+ "bower-asset/jquery": ">=1.9.1"
+ },
+ "type": "bower-asset-library",
+ "extra": {
+ "bower-asset-main": [
+ "less/bootstrap.less",
+ "dist/js/bootstrap.js"
+ ],
+ "bower-asset-ignore": [
+ "/.*",
+ "_config.yml",
+ "CNAME",
+ "composer.json",
+ "CONTRIBUTING.md",
+ "docs",
+ "js/tests",
+ "test-infra"
+ ]
+ },
+ "license": [
+ "MIT"
+ ],
+ "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
+ "keywords": [
+ "css",
+ "framework",
+ "front-end",
+ "js",
+ "less",
+ "mobile-first",
+ "responsive",
+ "web"
+ ]
+ },
+ {
+ "name": "bower-asset/jquery",
+ "version": "2.2.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/jquery/jquery-dist.git",
+ "reference": "c0185ab7c75aab88762c5aae780b9d83b80eda72"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/jquery/jquery-dist/zipball/c0185ab7c75aab88762c5aae780b9d83b80eda72",
+ "reference": "c0185ab7c75aab88762c5aae780b9d83b80eda72",
+ "shasum": ""
+ },
+ "type": "bower-asset-library",
+ "extra": {
+ "bower-asset-main": "dist/jquery.js",
+ "bower-asset-ignore": [
+ "package.json"
+ ]
+ },
+ "license": [
+ "MIT"
+ ],
+ "keywords": [
+ "browser",
+ "javascript",
+ "jquery",
+ "library"
+ ]
+ },
+ {
+ "name": "bower-asset/jquery-ui",
+ "version": "1.11.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/components/jqueryui.git",
+ "reference": "c34f8dbf3ba57b3784b93f26119f436c0e8288e1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/components/jqueryui/zipball/c34f8dbf3ba57b3784b93f26119f436c0e8288e1",
+ "reference": "c34f8dbf3ba57b3784b93f26119f436c0e8288e1",
+ "shasum": ""
+ },
+ "require": {
+ "bower-asset/jquery": ">=1.6"
+ },
+ "type": "bower-asset-library",
+ "extra": {
+ "bower-asset-main": [
+ "jquery-ui.js"
+ ],
+ "bower-asset-ignore": []
+ }
+ },
+ {
+ "name": "bower-asset/jquery.inputmask",
+ "version": "3.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/RobinHerbots/jquery.inputmask.git",
+ "reference": "5a72c563b502b8e05958a524cdfffafe9987be38"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/RobinHerbots/jquery.inputmask/zipball/5a72c563b502b8e05958a524cdfffafe9987be38",
+ "reference": "5a72c563b502b8e05958a524cdfffafe9987be38",
+ "shasum": ""
+ },
+ "require": {
+ "bower-asset/jquery": ">=1.7"
+ },
+ "type": "bower-asset-library",
+ "extra": {
+ "bower-asset-main": [
+ "./dist/inputmask/inputmask.js"
+ ],
+ "bower-asset-ignore": [
+ "**/*",
+ "!dist/*",
+ "!dist/inputmask/*",
+ "!dist/min/*",
+ "!dist/min/inputmask/*",
+ "!extra/bindings/*",
+ "!extra/dependencyLibs/*",
+ "!extra/phone-codes/*"
+ ]
+ },
+ "license": [
+ "http://opensource.org/licenses/mit-license.php"
+ ],
+ "description": "jquery.inputmask is a jquery plugin which create an input mask.",
+ "keywords": [
+ "form",
+ "input",
+ "inputmask",
+ "jquery",
+ "mask",
+ "plugins"
+ ]
+ },
+ {
+ "name": "bower-asset/punycode",
+ "version": "v1.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/bestiejs/punycode.js.git",
+ "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/bestiejs/punycode.js/zipball/38c8d3131a82567bfef18da09f7f4db68c84f8a3",
+ "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3",
+ "shasum": ""
+ },
+ "type": "bower-asset-library",
+ "extra": {
+ "bower-asset-main": "punycode.js",
+ "bower-asset-ignore": [
+ "coverage",
+ "tests",
+ ".*",
+ "component.json",
+ "Gruntfile.js",
+ "node_modules",
+ "package.json"
+ ]
+ }
+ },
+ {
+ "name": "bower-asset/yii2-pjax",
+ "version": "v2.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/jquery-pjax.git",
+ "reference": "60728da6ade5879e807a49ce59ef9a72039b8978"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/jquery-pjax/zipball/60728da6ade5879e807a49ce59ef9a72039b8978",
+ "reference": "60728da6ade5879e807a49ce59ef9a72039b8978",
+ "shasum": ""
+ },
+ "require": {
+ "bower-asset/jquery": ">=1.8"
+ },
+ "type": "bower-asset-library",
+ "extra": {
+ "bower-asset-main": "./jquery.pjax.js",
+ "bower-asset-ignore": [
+ ".travis.yml",
+ "Gemfile",
+ "Gemfile.lock",
+ "CONTRIBUTING.md",
+ "vendor/",
+ "script/",
+ "test/"
+ ]
+ },
+ "license": [
+ "MIT"
+ ]
+ },
+ {
+ "name": "cebe/markdown",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cebe/markdown.git",
+ "reference": "04bfcaa26356cf86c6c4a2420eb95857a86e03ab"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cebe/markdown/zipball/04bfcaa26356cf86c6c4a2420eb95857a86e03ab",
+ "reference": "04bfcaa26356cf86c6c4a2420eb95857a86e03ab",
+ "shasum": ""
+ },
+ "require": {
+ "lib-pcre": "*",
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "cebe/indent": "*",
+ "facebook/xhprof": "*@dev",
+ "phpunit/phpunit": "4.1.*"
+ },
+ "bin": [
+ "bin/markdown"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "cebe\\markdown\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Carsten Brandt",
+ "email": "mail@cebe.cc",
+ "homepage": "http://cebe.cc/",
+ "role": "Creator"
+ }
+ ],
+ "description": "A super fast, highly extensible markdown parser for PHP",
+ "homepage": "https://github.com/cebe/markdown#readme",
+ "keywords": [
+ "extensible",
+ "fast",
+ "gfm",
+ "markdown",
+ "markdown-extra"
+ ],
+ "time": "2016-06-20 21:09:53"
+ },
+ {
+ "name": "ezyang/htmlpurifier",
+ "version": "v4.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ezyang/htmlpurifier.git",
+ "reference": "ae1828d955112356f7677c465f94f7deb7d27a40"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/ae1828d955112356f7677c465f94f7deb7d27a40",
+ "reference": "ae1828d955112356f7677c465f94f7deb7d27a40",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "HTMLPurifier": "library/"
+ },
+ "files": [
+ "library/HTMLPurifier.composer.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL"
+ ],
+ "authors": [
+ {
+ "name": "Edward Z. Yang",
+ "email": "admin@htmlpurifier.org",
+ "homepage": "http://ezyang.com"
+ }
+ ],
+ "description": "Standards compliant HTML filter written in PHP",
+ "homepage": "http://htmlpurifier.org/",
+ "keywords": [
+ "html"
+ ],
+ "time": "2015-08-05 01:03:42"
+ },
+ {
+ "name": "kartik-v/bootstrap-fileinput",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/kartik-v/bootstrap-fileinput.git",
+ "reference": "8dd9021a6678d176bdbcd1e7cbb8c8b4169e50e8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/kartik-v/bootstrap-fileinput/zipball/8dd9021a6678d176bdbcd1e7cbb8c8b4169e50e8",
+ "reference": "8dd9021a6678d176bdbcd1e7cbb8c8b4169e50e8",
+ "shasum": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "kartik\\plugins\\fileinput\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Kartik Visweswaran",
+ "email": "kartikv2@gmail.com",
+ "homepage": "http://www.krajee.com/"
+ }
+ ],
+ "description": "An enhanced HTML 5 file input for Bootstrap 3.x with features for file preview for many file types, multiple selection, ajax uploads, and more.",
+ "homepage": "https://github.com/kartik-v/bootstrap-fileinput",
+ "keywords": [
+ "ajax",
+ "bootstrap",
+ "delete",
+ "file",
+ "image",
+ "input",
+ "jquery",
+ "multiple",
+ "preview",
+ "progress",
+ "upload"
+ ],
+ "time": "2016-07-11 09:07:59"
+ },
+ {
+ "name": "kartik-v/yii2-krajee-base",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/kartik-v/yii2-krajee-base.git",
+ "reference": "473fb568ff1144dc49bdb74f40a5d7f025fc72e4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/kartik-v/yii2-krajee-base/zipball/473fb568ff1144dc49bdb74f40a5d7f025fc72e4",
+ "reference": "473fb568ff1144dc49bdb74f40a5d7f025fc72e4",
+ "shasum": ""
+ },
+ "require": {
+ "yiisoft/yii2-bootstrap": "@dev"
+ },
+ "type": "yii2-extension",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.8.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "kartik\\base\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Kartik Visweswaran",
+ "email": "kartikv2@gmail.com",
+ "homepage": "http://www.krajee.com/"
+ }
+ ],
+ "description": "Base library and foundation components for all Yii2 Krajee extensions.",
+ "homepage": "https://github.com/kartik-v/yii2-krajee-base",
+ "keywords": [
+ "base",
+ "extension",
+ "foundation",
+ "krajee",
+ "widget",
+ "yii2"
+ ],
+ "time": "2016-06-02 16:20:24"
+ },
+ {
+ "name": "kartik-v/yii2-widget-fileinput",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/kartik-v/yii2-widget-fileinput.git",
+ "reference": "b0fb41e4290fc4aa35a49a977bf4484cb30f8ff9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/kartik-v/yii2-widget-fileinput/zipball/b0fb41e4290fc4aa35a49a977bf4484cb30f8ff9",
+ "reference": "b0fb41e4290fc4aa35a49a977bf4484cb30f8ff9",
+ "shasum": ""
+ },
+ "require": {
+ "kartik-v/bootstrap-fileinput": "~4.2",
+ "kartik-v/yii2-krajee-base": "~1.7"
+ },
+ "type": "yii2-extension",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "kartik\\file\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Kartik Visweswaran",
+ "email": "kartikv2@gmail.com",
+ "homepage": "http://www.krajee.com/"
+ }
+ ],
+ "description": "An enhanced FileInput widget for Bootstrap 3.x with file preview, multiple selection, and more features (sub repo split from yii2-widgets)",
+ "homepage": "https://github.com/kartik-v/yii2-widget-fileinput",
+ "keywords": [
+ "extension",
+ "file",
+ "form",
+ "input",
+ "jquery",
+ "plugin",
+ "upload",
+ "widget",
+ "yii2"
+ ],
+ "time": "2016-07-06 19:27:12"
+ },
+ {
+ "name": "phpmailer/phpmailer",
+ "version": "v5.2.16",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPMailer/PHPMailer.git",
+ "reference": "1d85f9ef3ecfc42bbc4f3c70d5e37ca9a65f629a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/1d85f9ef3ecfc42bbc4f3c70d5e37ca9a65f629a",
+ "reference": "1d85f9ef3ecfc42bbc4f3c70d5e37ca9a65f629a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.0.0"
+ },
+ "require-dev": {
+ "phpdocumentor/phpdocumentor": "*",
+ "phpunit/phpunit": "4.7.*"
+ },
+ "suggest": {
+ "league/oauth2-google": "Needed for Google XOAUTH2 authentication"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "class.phpmailer.php",
+ "class.phpmaileroauth.php",
+ "class.phpmaileroauthgoogle.php",
+ "class.smtp.php",
+ "class.pop3.php",
+ "extras/EasyPeasyICS.php",
+ "extras/ntlm_sasl_client.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-2.1"
+ ],
+ "authors": [
+ {
+ "name": "Jim Jagielski",
+ "email": "jimjag@gmail.com"
+ },
+ {
+ "name": "Marcus Bointon",
+ "email": "phpmailer@synchromedia.co.uk"
+ },
+ {
+ "name": "Andy Prevost",
+ "email": "codeworxtech@users.sourceforge.net"
+ },
+ {
+ "name": "Brent R. Matzelle"
+ }
+ ],
+ "description": "PHPMailer is a full-featured email creation and transfer class for PHP",
+ "time": "2016-06-06 09:09:37"
+ },
+ {
+ "name": "swiftmailer/swiftmailer",
+ "version": "5.x-dev",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/swiftmailer/swiftmailer.git",
+ "reference": "17ba8f8fc03074f90771e52b226698e37bc2c115"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/17ba8f8fc03074f90771e52b226698e37bc2c115",
+ "reference": "17ba8f8fc03074f90771e52b226698e37bc2c115",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "mockery/mockery": "~0.9.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.4-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "lib/swift_required.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Chris Corbyn"
+ },
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "description": "Swiftmailer, free feature-rich PHP mailer",
+ "homepage": "http://swiftmailer.org",
+ "keywords": [
+ "email",
+ "mail",
+ "mailer"
+ ],
+ "time": "2016-07-09 18:06:48"
+ },
+ {
+ "name": "yiisoft/yii2",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii2-framework.git",
+ "reference": "8c276b391701c3b5edfebc126da4e5361cfa0f01"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/8c276b391701c3b5edfebc126da4e5361cfa0f01",
+ "reference": "8c276b391701c3b5edfebc126da4e5361cfa0f01",
+ "shasum": ""
+ },
+ "require": {
+ "bower-asset/jquery": "2.2.*@stable | 2.1.*@stable | 1.11.*@stable | 1.12.*@stable",
+ "bower-asset/jquery.inputmask": "~3.2.2",
+ "bower-asset/punycode": "1.3.*",
+ "bower-asset/yii2-pjax": "~2.0.1",
+ "cebe/markdown": "~1.0.0 | ~1.1.0",
+ "ext-ctype": "*",
+ "ext-mbstring": "*",
+ "ezyang/htmlpurifier": "~4.6",
+ "lib-pcre": "*",
+ "php": ">=5.4.0",
+ "yiisoft/yii2-composer": "~2.0.4"
+ },
+ "bin": [
+ "yii"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "yii\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Qiang Xue",
+ "email": "qiang.xue@gmail.com",
+ "homepage": "http://www.yiiframework.com/",
+ "role": "Founder and project lead"
+ },
+ {
+ "name": "Alexander Makarov",
+ "email": "sam@rmcreative.ru",
+ "homepage": "http://rmcreative.ru/",
+ "role": "Core framework development"
+ },
+ {
+ "name": "Maurizio Domba",
+ "homepage": "http://mdomba.info/",
+ "role": "Core framework development"
+ },
+ {
+ "name": "Carsten Brandt",
+ "email": "mail@cebe.cc",
+ "homepage": "http://cebe.cc/",
+ "role": "Core framework development"
+ },
+ {
+ "name": "Timur Ruziev",
+ "email": "resurtm@gmail.com",
+ "homepage": "http://resurtm.com/",
+ "role": "Core framework development"
+ },
+ {
+ "name": "Paul Klimov",
+ "email": "klimov.paul@gmail.com",
+ "role": "Core framework development"
+ },
+ {
+ "name": "Dmitry Naumenko",
+ "email": "d.naumenko.a@gmail.com",
+ "role": "Core framework development"
+ }
+ ],
+ "description": "Yii PHP Framework Version 2",
+ "homepage": "http://www.yiiframework.com/",
+ "keywords": [
+ "framework",
+ "yii2"
+ ],
+ "time": "2016-07-14 09:38:26"
+ },
+ {
+ "name": "yiisoft/yii2-bootstrap",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii2-bootstrap.git",
+ "reference": "a7a9282477c9e5f0d63c16b94652fd0fe039e79e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii2-bootstrap/zipball/a7a9282477c9e5f0d63c16b94652fd0fe039e79e",
+ "reference": "a7a9282477c9e5f0d63c16b94652fd0fe039e79e",
+ "shasum": ""
+ },
+ "require": {
+ "bower-asset/bootstrap": "3.3.* | 3.2.* | 3.1.*",
+ "yiisoft/yii2": ">=2.0.6"
+ },
+ "type": "yii2-extension",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ },
+ "asset-installer-paths": {
+ "npm-asset-library": "vendor/npm",
+ "bower-asset-library": "vendor/bower"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "yii\\bootstrap\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Qiang Xue",
+ "email": "qiang.xue@gmail.com"
+ }
+ ],
+ "description": "The Twitter Bootstrap extension for the Yii framework",
+ "keywords": [
+ "bootstrap",
+ "yii2"
+ ],
+ "time": "2016-07-12 10:21:49"
+ },
+ {
+ "name": "yiisoft/yii2-composer",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii2-composer.git",
+ "reference": "e882cc327a6935a41f2e8665b9ef0317f6852d4d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii2-composer/zipball/e882cc327a6935a41f2e8665b9ef0317f6852d4d",
+ "reference": "e882cc327a6935a41f2e8665b9ef0317f6852d4d",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "yii\\composer\\Plugin",
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "yii\\composer\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Qiang Xue",
+ "email": "qiang.xue@gmail.com"
+ }
+ ],
+ "description": "The composer plugin for Yii extension installer",
+ "keywords": [
+ "composer",
+ "extension installer",
+ "yii2"
+ ],
+ "time": "2016-06-05 20:34:32"
+ },
+ {
+ "name": "yiisoft/yii2-jui",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii2-jui.git",
+ "reference": "1612593ac710975c235e75708b69fa9ee375ab46"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii2-jui/zipball/1612593ac710975c235e75708b69fa9ee375ab46",
+ "reference": "1612593ac710975c235e75708b69fa9ee375ab46",
+ "shasum": ""
+ },
+ "require": {
+ "bower-asset/jquery-ui": "1.11.*@stable",
+ "yiisoft/yii2": ">=2.0.4"
+ },
+ "type": "yii2-extension",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ },
+ "asset-installer-paths": {
+ "npm-asset-library": "vendor/npm",
+ "bower-asset-library": "vendor/bower"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "yii\\jui\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Qiang Xue",
+ "email": "qiang.xue@gmail.com"
+ }
+ ],
+ "description": "The Jquery UI extension for the Yii framework",
+ "keywords": [
+ "jQuery UI",
+ "yii2"
+ ],
+ "time": "2016-06-11 22:54:20"
+ },
+ {
+ "name": "yiisoft/yii2-swiftmailer",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii2-swiftmailer.git",
+ "reference": "163b9c6273e133c43a596aef46a9f5b1537731f9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii2-swiftmailer/zipball/163b9c6273e133c43a596aef46a9f5b1537731f9",
+ "reference": "163b9c6273e133c43a596aef46a9f5b1537731f9",
+ "shasum": ""
+ },
+ "require": {
+ "swiftmailer/swiftmailer": "~5.0",
+ "yiisoft/yii2": ">=2.0.4"
+ },
+ "type": "yii2-extension",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "yii\\swiftmailer\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Paul Klimov",
+ "email": "klimov.paul@gmail.com"
+ }
+ ],
+ "description": "The SwiftMailer integration for the Yii framework",
+ "keywords": [
+ "email",
+ "mail",
+ "mailer",
+ "swift",
+ "swiftmailer",
+ "yii2"
+ ],
+ "time": "2016-04-14 08:50:13"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "bower-asset/typeahead.js",
+ "version": "v0.11.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/twitter/typeahead.js.git",
+ "reference": "588440f66559714280628a4f9799f0c4eb880a4a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/twitter/typeahead.js/zipball/588440f66559714280628a4f9799f0c4eb880a4a",
+ "reference": "588440f66559714280628a4f9799f0c4eb880a4a",
+ "shasum": ""
+ },
+ "require": {
+ "bower-asset/jquery": ">=1.7"
+ },
+ "require-dev": {
+ "bower-asset/jasmine-ajax": "~1.3.1",
+ "bower-asset/jasmine-jquery": "~1.5.2",
+ "bower-asset/jquery": "~1.7"
+ },
+ "type": "bower-asset-library",
+ "extra": {
+ "bower-asset-main": "dist/typeahead.bundle.js"
+ }
+ },
+ {
+ "name": "fzaninotto/faker",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/fzaninotto/Faker.git",
+ "reference": "039eeba8a61788df89c7800eccb2c56723a0db34"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/039eeba8a61788df89c7800eccb2c56723a0db34",
+ "reference": "039eeba8a61788df89c7800eccb2c56723a0db34",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.3|^7.0"
+ },
+ "require-dev": {
+ "ext-intl": "*",
+ "phpunit/phpunit": "~4.0",
+ "squizlabs/php_codesniffer": "~1.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.6.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Faker\\": "src/Faker/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "François Zaninotto"
+ }
+ ],
+ "description": "Faker is a PHP library that generates fake data for you.",
+ "keywords": [
+ "data",
+ "faker",
+ "fixtures"
+ ],
+ "time": "2016-07-11 08:36:05"
+ },
+ {
+ "name": "phpspec/php-diff",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpspec/php-diff.git",
+ "reference": "0464787bfa7cd13576c5a1e318709768798bec6a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpspec/php-diff/zipball/0464787bfa7cd13576c5a1e318709768798bec6a",
+ "reference": "0464787bfa7cd13576c5a1e318709768798bec6a",
+ "shasum": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Diff": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Chris Boulton",
+ "homepage": "http://github.com/chrisboulton"
+ }
+ ],
+ "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).",
+ "time": "2016-04-07 12:29:16"
+ },
+ {
+ "name": "yiisoft/yii2-codeception",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii2-codeception.git",
+ "reference": "572a6d46d942cc5733c45931fdbd1d60228f3c89"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii2-codeception/zipball/572a6d46d942cc5733c45931fdbd1d60228f3c89",
+ "reference": "572a6d46d942cc5733c45931fdbd1d60228f3c89",
+ "shasum": ""
+ },
+ "require": {
+ "yiisoft/yii2": ">=2.0.4"
+ },
+ "type": "yii2-extension",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "yii\\codeception\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Mark Jebri",
+ "email": "mark.github@yandex.ru"
+ }
+ ],
+ "description": "The Codeception integration for the Yii framework",
+ "keywords": [
+ "codeception",
+ "yii2"
+ ],
+ "time": "2016-04-14 08:46:27"
+ },
+ {
+ "name": "yiisoft/yii2-debug",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii2-debug.git",
+ "reference": "07ad6f410eb60c57345e4c687e53b097c40b4a6c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii2-debug/zipball/07ad6f410eb60c57345e4c687e53b097c40b4a6c",
+ "reference": "07ad6f410eb60c57345e4c687e53b097c40b4a6c",
+ "shasum": ""
+ },
+ "require": {
+ "yiisoft/yii2": ">=2.0.4",
+ "yiisoft/yii2-bootstrap": "*"
+ },
+ "type": "yii2-extension",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "yii\\debug\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Qiang Xue",
+ "email": "qiang.xue@gmail.com"
+ }
+ ],
+ "description": "The debugger extension for the Yii framework",
+ "keywords": [
+ "debug",
+ "debugger",
+ "yii2"
+ ],
+ "time": "2016-06-06 19:17:49"
+ },
+ {
+ "name": "yiisoft/yii2-faker",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii2-faker.git",
+ "reference": "6e6eb430809e3f9c05e367303909a05a4912d4c0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii2-faker/zipball/6e6eb430809e3f9c05e367303909a05a4912d4c0",
+ "reference": "6e6eb430809e3f9c05e367303909a05a4912d4c0",
+ "shasum": ""
+ },
+ "require": {
+ "fzaninotto/faker": "~1.4",
+ "yiisoft/yii2": "*"
+ },
+ "type": "yii2-extension",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "yii\\faker\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Mark Jebri",
+ "email": "mark.github@yandex.ru"
+ }
+ ],
+ "description": "Fixture generator. The Faker integration for the Yii framework.",
+ "keywords": [
+ "Fixture",
+ "faker",
+ "yii2"
+ ],
+ "time": "2016-04-14 08:47:34"
+ },
+ {
+ "name": "yiisoft/yii2-gii",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii2-gii.git",
+ "reference": "4f7bece043b6e60571ad855cd937bf0e07e1891d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii2-gii/zipball/4f7bece043b6e60571ad855cd937bf0e07e1891d",
+ "reference": "4f7bece043b6e60571ad855cd937bf0e07e1891d",
+ "shasum": ""
+ },
+ "require": {
+ "bower-asset/typeahead.js": "0.10.* | ~0.11.0",
+ "phpspec/php-diff": ">=1.0.2",
+ "yiisoft/yii2": ">=2.0.4",
+ "yiisoft/yii2-bootstrap": "~2.0"
+ },
+ "type": "yii2-extension",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ },
+ "asset-installer-paths": {
+ "npm-asset-library": "vendor/npm",
+ "bower-asset-library": "vendor/bower"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "yii\\gii\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Qiang Xue",
+ "email": "qiang.xue@gmail.com"
+ }
+ ],
+ "description": "The Gii extension for the Yii framework",
+ "keywords": [
+ "code generator",
+ "gii",
+ "yii2"
+ ],
+ "time": "2016-07-07 16:09:06"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "dev",
+ "stability-flags": {
+ "kartik-v/yii2-widget-fileinput": 20
+ },
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": {
+ "php": ">=5.4.0"
+ },
+ "platform-dev": []
+}
diff --git a/console/config/.gitignore b/console/config/.gitignore
new file mode 100755
index 0000000..20da318
--- /dev/null
+++ b/console/config/.gitignore
@@ -0,0 +1,2 @@
+main-local.php
+params-local.php
\ No newline at end of file
diff --git a/console/config/bootstrap.php b/console/config/bootstrap.php
new file mode 100755
index 0000000..b3d9bbc
--- /dev/null
+++ b/console/config/bootstrap.php
@@ -0,0 +1 @@
+ 'app-console',
+ 'basePath' => dirname(__DIR__),
+ 'bootstrap' => ['log'],
+ 'controllerNamespace' => 'console\controllers',
+ 'components' => [
+ 'log' => [
+ 'targets' => [
+ [
+ 'class' => 'yii\log\FileTarget',
+ 'levels' => ['error', 'warning'],
+ ],
+ ],
+ ],
+ ],
+ 'params' => $params,
+];
diff --git a/console/config/params.php b/console/config/params.php
new file mode 100755
index 0000000..7f754b9
--- /dev/null
+++ b/console/config/params.php
@@ -0,0 +1,4 @@
+ 'admin@example.com',
+];
diff --git a/console/controllers/.gitkeep b/console/controllers/.gitkeep
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/console/controllers/.gitkeep
diff --git a/console/migrations/m130524_201442_init.php b/console/migrations/m130524_201442_init.php
new file mode 100755
index 0000000..6b649f4
--- /dev/null
+++ b/console/migrations/m130524_201442_init.php
@@ -0,0 +1,33 @@
+db->driverName === 'mysql') {
+ // http://stackoverflow.com/questions/766809/whats-the-difference-between-utf8-general-ci-and-utf8-unicode-ci
+ $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB';
+ }
+
+ $this->createTable('{{%user}}', [
+ 'id' => $this->primaryKey(),
+ 'username' => $this->string()->notNull()->unique(),
+ 'auth_key' => $this->string(32)->notNull(),
+ 'password_hash' => $this->string()->notNull(),
+ 'password_reset_token' => $this->string()->unique(),
+ 'email' => $this->string()->notNull()->unique(),
+
+ 'status' => $this->smallInteger()->notNull()->defaultValue(10),
+ 'created_at' => $this->integer()->notNull(),
+ 'updated_at' => $this->integer()->notNull(),
+ ], $tableOptions);
+ }
+
+ public function down()
+ {
+ $this->dropTable('{{%user}}');
+ }
+}
diff --git a/console/migrations/m160714_124817_create_car.php b/console/migrations/m160714_124817_create_car.php
new file mode 100755
index 0000000..a3b6cee
--- /dev/null
+++ b/console/migrations/m160714_124817_create_car.php
@@ -0,0 +1,29 @@
+createTable('car', [
+ 'car_id' => $this->primaryKey(),
+ 'model' => $this->string()
+ ->notNull(),
+ 'year' => $this->integer()
+ ->notNull(),
+ 'image' => $this->string(),
+ 'color' => $this->string(),
+ 'mileage' => $this->float(),
+ 'build' => $this->integer(),
+ 'option' => $this->text(),
+ 'price' => $this->float(),
+ ]);
+ }
+
+ public function down()
+ {
+ $this->dropTable('car');
+ }
+ }
diff --git a/console/migrations/m160714_132243_change_build_format.php b/console/migrations/m160714_132243_change_build_format.php
new file mode 100755
index 0000000..842ecc8
--- /dev/null
+++ b/console/migrations/m160714_132243_change_build_format.php
@@ -0,0 +1,16 @@
+alterColumn('car', 'build', $this->string());
+ }
+
+ public function down()
+ {
+ $this->alterColumn('car', 'build', $this->integer());
+ }
+}
diff --git a/console/models/.gitkeep b/console/models/.gitkeep
new file mode 100755
index 0000000..72e8ffc
--- /dev/null
+++ b/console/models/.gitkeep
@@ -0,0 +1 @@
+*
diff --git a/console/runtime/.gitignore b/console/runtime/.gitignore
new file mode 100755
index 0000000..c96a04f
--- /dev/null
+++ b/console/runtime/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
\ No newline at end of file
diff --git a/environments/dev/backend/config/main-local.php b/environments/dev/backend/config/main-local.php
new file mode 100755
index 0000000..d9a8ceb
--- /dev/null
+++ b/environments/dev/backend/config/main-local.php
@@ -0,0 +1,25 @@
+ [
+ 'request' => [
+ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
+ 'cookieValidationKey' => '',
+ ],
+ ],
+];
+
+if (!YII_ENV_TEST) {
+ // configuration adjustments for 'dev' environment
+ $config['bootstrap'][] = 'debug';
+ $config['modules']['debug'] = [
+ 'class' => 'yii\debug\Module',
+ ];
+
+ $config['bootstrap'][] = 'gii';
+ $config['modules']['gii'] = [
+ 'class' => 'yii\gii\Module',
+ ];
+}
+
+return $config;
diff --git a/environments/dev/backend/config/params-local.php b/environments/dev/backend/config/params-local.php
new file mode 100755
index 0000000..d0b9c34
--- /dev/null
+++ b/environments/dev/backend/config/params-local.php
@@ -0,0 +1,3 @@
+run();
diff --git a/environments/dev/backend/web/index.php b/environments/dev/backend/web/index.php
new file mode 100755
index 0000000..6038167
--- /dev/null
+++ b/environments/dev/backend/web/index.php
@@ -0,0 +1,18 @@
+run();
diff --git a/environments/dev/common/config/main-local.php b/environments/dev/common/config/main-local.php
new file mode 100755
index 0000000..43db30e
--- /dev/null
+++ b/environments/dev/common/config/main-local.php
@@ -0,0 +1,20 @@
+ [
+ 'db' => [
+ 'class' => 'yii\db\Connection',
+ 'dsn' => 'mysql:host=localhost;dbname=yii2advanced',
+ 'username' => 'root',
+ 'password' => '',
+ 'charset' => 'utf8',
+ ],
+ 'mailer' => [
+ 'class' => 'yii\swiftmailer\Mailer',
+ 'viewPath' => '@common/mail',
+ // send all mails to a file by default. You have to set
+ // 'useFileTransport' to false and configure a transport
+ // for the mailer to send real emails.
+ 'useFileTransport' => true,
+ ],
+ ],
+];
diff --git a/environments/dev/common/config/params-local.php b/environments/dev/common/config/params-local.php
new file mode 100755
index 0000000..d0b9c34
--- /dev/null
+++ b/environments/dev/common/config/params-local.php
@@ -0,0 +1,3 @@
+ ['gii'],
+ 'modules' => [
+ 'gii' => 'yii\gii\Module',
+ ],
+];
diff --git a/environments/dev/console/config/params-local.php b/environments/dev/console/config/params-local.php
new file mode 100755
index 0000000..d0b9c34
--- /dev/null
+++ b/environments/dev/console/config/params-local.php
@@ -0,0 +1,3 @@
+ [
+ 'request' => [
+ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
+ 'cookieValidationKey' => '',
+ ],
+ ],
+];
+
+if (!YII_ENV_TEST) {
+ // configuration adjustments for 'dev' environment
+ $config['bootstrap'][] = 'debug';
+ $config['modules']['debug'] = [
+ 'class' => 'yii\debug\Module',
+ ];
+ $config['bootstrap'][] = 'gii';
+ $config['modules']['gii'] = [
+ 'class' => 'yii\gii\Module',
+ ];
+}
+
+return $config;
diff --git a/environments/dev/frontend/config/params-local.php b/environments/dev/frontend/config/params-local.php
new file mode 100755
index 0000000..d0b9c34
--- /dev/null
+++ b/environments/dev/frontend/config/params-local.php
@@ -0,0 +1,3 @@
+run();
diff --git a/environments/dev/frontend/web/index.php b/environments/dev/frontend/web/index.php
new file mode 100755
index 0000000..6038167
--- /dev/null
+++ b/environments/dev/frontend/web/index.php
@@ -0,0 +1,18 @@
+run();
diff --git a/environments/dev/tests/codeception/config/config-local.php b/environments/dev/tests/codeception/config/config-local.php
new file mode 100755
index 0000000..c2a6a04
--- /dev/null
+++ b/environments/dev/tests/codeception/config/config-local.php
@@ -0,0 +1,11 @@
+ [
+ 'db' => [
+ 'dsn' => 'mysql:host=localhost;dbname=yii2_advanced_tests',
+ 'username' => 'root',
+ 'password' => '',
+ 'charset' => 'utf8',
+ ],
+ ],
+];
diff --git a/environments/dev/yii b/environments/dev/yii
new file mode 100755
index 0000000..6f0c6d2
--- /dev/null
+++ b/environments/dev/yii
@@ -0,0 +1,28 @@
+#!/usr/bin/env php
+run();
+exit($exitCode);
diff --git a/environments/index.php b/environments/index.php
new file mode 100755
index 0000000..19c989d
--- /dev/null
+++ b/environments/index.php
@@ -0,0 +1,65 @@
+ [
+ * 'path' => 'directory storing the local files',
+ * 'skipFiles' => [
+ * // list of files that should only copied once and skipped if they already exist
+ * ],
+ * 'setWritable' => [
+ * // list of directories that should be set writable
+ * ],
+ * 'setExecutable' => [
+ * // list of files that should be set executable
+ * ],
+ * 'setCookieValidationKey' => [
+ * // list of config files that need to be inserted with automatically generated cookie validation keys
+ * ],
+ * 'createSymlink' => [
+ * // list of symlinks to be created. Keys are symlinks, and values are the targets.
+ * ],
+ * ],
+ * ];
+ * ```
+ */
+return [
+ 'Development' => [
+ 'path' => 'dev',
+ 'setWritable' => [
+ 'backend/runtime',
+ 'backend/web/assets',
+ 'frontend/runtime',
+ 'frontend/web/assets',
+ ],
+ 'setExecutable' => [
+ 'yii',
+ 'tests/codeception/bin/yii',
+ ],
+ 'setCookieValidationKey' => [
+ 'backend/config/main-local.php',
+ 'frontend/config/main-local.php',
+ ],
+ ],
+ 'Production' => [
+ 'path' => 'prod',
+ 'setWritable' => [
+ 'backend/runtime',
+ 'backend/web/assets',
+ 'frontend/runtime',
+ 'frontend/web/assets',
+ ],
+ 'setExecutable' => [
+ 'yii',
+ ],
+ 'setCookieValidationKey' => [
+ 'backend/config/main-local.php',
+ 'frontend/config/main-local.php',
+ ],
+ ],
+];
diff --git a/environments/prod/backend/config/main-local.php b/environments/prod/backend/config/main-local.php
new file mode 100755
index 0000000..af46ba3
--- /dev/null
+++ b/environments/prod/backend/config/main-local.php
@@ -0,0 +1,9 @@
+ [
+ 'request' => [
+ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
+ 'cookieValidationKey' => '',
+ ],
+ ],
+];
diff --git a/environments/prod/backend/config/params-local.php b/environments/prod/backend/config/params-local.php
new file mode 100755
index 0000000..d0b9c34
--- /dev/null
+++ b/environments/prod/backend/config/params-local.php
@@ -0,0 +1,3 @@
+run();
diff --git a/environments/prod/common/config/main-local.php b/environments/prod/common/config/main-local.php
new file mode 100755
index 0000000..84c4d9f
--- /dev/null
+++ b/environments/prod/common/config/main-local.php
@@ -0,0 +1,16 @@
+ [
+ 'db' => [
+ 'class' => 'yii\db\Connection',
+ 'dsn' => 'mysql:host=localhost;dbname=yii2advanced',
+ 'username' => 'root',
+ 'password' => '',
+ 'charset' => 'utf8',
+ ],
+ 'mailer' => [
+ 'class' => 'yii\swiftmailer\Mailer',
+ 'viewPath' => '@common/mail',
+ ],
+ ],
+];
diff --git a/environments/prod/common/config/params-local.php b/environments/prod/common/config/params-local.php
new file mode 100755
index 0000000..d0b9c34
--- /dev/null
+++ b/environments/prod/common/config/params-local.php
@@ -0,0 +1,3 @@
+ [
+ 'request' => [
+ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
+ 'cookieValidationKey' => '',
+ ],
+ ],
+];
diff --git a/environments/prod/frontend/config/params-local.php b/environments/prod/frontend/config/params-local.php
new file mode 100755
index 0000000..d0b9c34
--- /dev/null
+++ b/environments/prod/frontend/config/params-local.php
@@ -0,0 +1,3 @@
+run();
diff --git a/environments/prod/tests/codeception/config/config-local.php b/environments/prod/tests/codeception/config/config-local.php
new file mode 100755
index 0000000..c2a6a04
--- /dev/null
+++ b/environments/prod/tests/codeception/config/config-local.php
@@ -0,0 +1,11 @@
+ [
+ 'db' => [
+ 'dsn' => 'mysql:host=localhost;dbname=yii2_advanced_tests',
+ 'username' => 'root',
+ 'password' => '',
+ 'charset' => 'utf8',
+ ],
+ ],
+];
diff --git a/environments/prod/yii b/environments/prod/yii
new file mode 100755
index 0000000..1fe0342
--- /dev/null
+++ b/environments/prod/yii
@@ -0,0 +1,28 @@
+#!/usr/bin/env php
+run();
+exit($exitCode);
diff --git a/frontend/assets/AppAsset.php b/frontend/assets/AppAsset.php
new file mode 100755
index 0000000..5aa5098
--- /dev/null
+++ b/frontend/assets/AppAsset.php
@@ -0,0 +1,33 @@
+ 'app-frontend',
+ 'basePath' => dirname(__DIR__),
+ 'bootstrap' => ['log'],
+ 'controllerNamespace' => 'frontend\controllers',
+ 'components' => [
+ 'request'=>[
+ 'baseUrl' => '',
+ 'cookieValidationKey' => 'ndahjhjjidasuidrqeswuiuirqw89',
+ 'csrfParam' => '_frontendCSRF',
+ 'class' => 'common\modules\language\components\LanguageRequest',
+ ],
+ 'user' => [
+ 'identityClass' => 'common\models\User',
+ 'enableAutoLogin' => true,
+ 'identityCookie' => ['name' => '_identity-frontend', 'httpOnly' => true],
+ ],
+ 'session' => [
+ // this is the name of the session cookie used for login on the frontend
+ 'name' => 'advanced-frontend',
+ ],
+ 'log' => [
+ 'traceLevel' => YII_DEBUG ? 3 : 0,
+ 'targets' => [
+ [
+ 'class' => 'yii\log\FileTarget',
+ 'levels' => ['error', 'warning'],
+ ],
+ ],
+ ],
+ 'errorHandler' => [
+ 'errorAction' => 'site/error',
+ ],
+ 'urlManager' => [
+ 'enablePrettyUrl' => true,
+ 'showScriptName' => false,
+ 'class'=>'common\modules\language\components\LanguageUrlManager',
+ 'rules' => [
+ 'buy' => 'site/buy',
+ 'testdrive' => 'site/testdrive',
+ '/' => 'site/index',
+ '//*'=>'/',
+ ],
+ ],
+ 'language'=>'ru-RU',
+ 'i18n' => [
+ 'translations' => [
+ 'app*' => [
+ 'class' => 'yii\i18n\PhpMessageSource',
+ 'basePath' => '@common/translation',
+ 'sourceLanguage' => 'en',
+ 'fileMap' => [
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'params' => $params,
+];
diff --git a/frontend/config/params.php b/frontend/config/params.php
new file mode 100755
index 0000000..7f754b9
--- /dev/null
+++ b/frontend/config/params.php
@@ -0,0 +1,4 @@
+ 'admin@example.com',
+];
diff --git a/frontend/controllers/SiteController.php b/frontend/controllers/SiteController.php
new file mode 100755
index 0000000..16c1dcc
--- /dev/null
+++ b/frontend/controllers/SiteController.php
@@ -0,0 +1,320 @@
+ [
+ 'class' => AccessControl::className(),
+ 'only' => [
+ 'logout',
+ 'signup',
+ ],
+ 'rules' => [
+ [
+ 'actions' => [ 'signup' ],
+ 'allow' => true,
+ 'roles' => [ '?' ],
+ ],
+ [
+ 'actions' => [ 'logout' ],
+ 'allow' => true,
+ 'roles' => [ '@' ],
+ ],
+ ],
+ ],
+ 'verbs' => [
+ 'class' => VerbFilter::className(),
+ 'actions' => [
+ 'logout' => [ 'post' ],
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function actions()
+ {
+ return [
+ 'error' => [
+ 'class' => 'yii\web\ErrorAction',
+ ],
+ 'captcha' => [
+ 'class' => 'yii\captcha\CaptchaAction',
+ 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : NULL,
+ ],
+ ];
+ }
+
+ /**
+ * Displays homepage.
+ * @return mixed
+ */
+ public function actionIndex()
+ {
+ $years = Car::find()
+ ->distinct()
+ ->select('year')
+ ->asArray()
+ ->column();
+ $models = Car::find()
+ ->distinct()
+ ->select('model')
+ ->asArray()
+ ->column();
+ if(\Yii::$app->request->isPost) {
+ $lang = \Yii::$app->request->post('lang');
+ if(!empty($lang)) {
+ \Yii::$app->language = $lang;
+ }
+ }
+ $searchModel = new CarSearch(['scenario' => CarSearch::SCENARIO_PUBLIC]);
+ $dataProvider = $searchModel->search(\Yii::$app->request->queryParams);
+ return $this->render('index', [
+ 'dataProvider' => $dataProvider,
+ 'searchModel' => $searchModel,
+ 'years' => $years,
+ 'models' => $models,
+ ]);
+ }
+
+ /**
+ * Logs in a user.
+ * @return mixed
+ */
+ public function actionLogin()
+ {
+ $this->layout = false;
+ if(!Yii::$app->user->isGuest) {
+ return $this->goHome();
+ }
+
+ $model = new LoginForm();
+ if($model->load(Yii::$app->request->post()) && $model->login()) {
+ return $this->goBack();
+ } else {
+ return $this->render('login', [
+ 'model' => $model,
+ ]);
+ }
+ }
+
+ /**
+ * Logs out the current user.
+ * @return mixed
+ */
+ public function actionLogout()
+ {
+ Yii::$app->user->logout();
+
+ return $this->goHome();
+ }
+
+ /**
+ * Displays contact page.
+ * @return mixed
+ */
+ public function actionContact()
+ {
+ $model = new ContactForm();
+ if($model->load(Yii::$app->request->post()) && $model->validate()) {
+ if($model->sendEmail(Yii::$app->params[ 'adminEmail' ])) {
+ Yii::$app->session->setFlash('success', 'Thank you for contacting us. We will respond to you as soon as possible.');
+ } else {
+ Yii::$app->session->setFlash('error', 'There was an error sending email.');
+ }
+
+ return $this->refresh();
+ } else {
+ return $this->render('contact', [
+ 'model' => $model,
+ ]);
+ }
+ }
+
+ /**
+ * Displays about page.
+ * @return mixed
+ */
+ public function actionAbout()
+ {
+ return $this->render('about');
+ }
+
+ /**
+ * Signs user up.
+ * @return mixed
+ */
+ public function actionSignup()
+ {
+ $this->layout = false;
+ $model = new SignupForm();
+ if($model->load(Yii::$app->request->post())) {
+ if($user = $model->signup()) {
+ if(Yii::$app->getUser()
+ ->login($user)
+ ) {
+ return $this->goHome();
+ }
+ }
+ }
+
+ return $this->render('signup', [
+ 'model' => $model,
+ ]);
+ }
+
+ /**
+ * Requests password reset.
+ * @return mixed
+ */
+ public function actionRequestPasswordReset()
+ {
+ $model = new PasswordResetRequestForm();
+ if($model->load(Yii::$app->request->post()) && $model->validate()) {
+ if($model->sendEmail()) {
+ Yii::$app->session->setFlash('success', 'Check your email for further instructions.');
+
+ return $this->goHome();
+ } else {
+ Yii::$app->session->setFlash('error', 'Sorry, we are unable to reset password for email provided.');
+ }
+ }
+
+ return $this->render('requestPasswordResetToken', [
+ 'model' => $model,
+ ]);
+ }
+
+ /**
+ * Resets password.
+ *
+ * @param string $token
+ *
+ * @return mixed
+ * @throws BadRequestHttpException
+ */
+ public function actionResetPassword($token)
+ {
+ try {
+ $model = new ResetPasswordForm($token);
+ } catch(InvalidParamException $e) {
+ throw new BadRequestHttpException($e->getMessage());
+ }
+
+ if($model->load(Yii::$app->request->post()) && $model->validate() && $model->resetPassword()) {
+ Yii::$app->session->setFlash('success', 'New password was saved.');
+
+ return $this->goHome();
+ }
+
+ return $this->render('resetPassword', [
+ 'model' => $model,
+ ]);
+ }
+
+ public function actionTestdrive()
+ {
+ echo Mailer::widget([ 'type' => 'test',
+ 'subject' => 'Запись на тест-драйв',
+ 'params' => Yii::$app->request->post('TestdriveForm'),
+ ]);
+ $model = new Emails();
+
+ $model->load(Yii::$app->request->post(), 'TestdriveForm');
+ $model->save();
+
+ die();
+ }
+
+ /**
+ * @throws \Exception
+ */
+ public function actionBuy()
+ {
+ Mailer::widget([ 'type' => 'buy',
+ 'subject' => 'Покупка автомобиля',
+ 'params' => Yii::$app->request->post('OrderForm'),
+ ]);
+ $model = new Buys();
+
+ $model->load(Yii::$app->request->post(), 'OrderForm');
+ $model->save();
+
+ die();
+ }
+ public function actionQuestion()
+ {
+ Mailer::widget([ 'type' => 'question',
+ 'subject' => 'Вопросы',
+ 'params' => Yii::$app->request->post('QuestionForm'),
+ ]);
+ $model = new Emails([
+ 'scenario' => Emails::SCENARIO_QUESTION,
+ ]);
+
+ $model->load(Yii::$app->request->post(), 'QuestionForm');
+ $model->save();
+
+ die();
+ }
+ public function actionBooking()
+ {
+ Mailer::widget([ 'type' => 'booking',
+ 'subject' => 'Бронирование авто',
+ 'params' => Yii::$app->request->post('BookingForm'),
+ ]);
+ $model = new Emails([
+ 'scenario' => Emails::SCENARIO_BOOKING,
+ ]);
+
+ $model->load(Yii::$app->request->post(), 'BookingForm');
+ $model->save();
+ die();
+ }
+ public function actionKeytokey()
+ {
+ Mailer::widget([ 'type' => 'keytokey',
+ 'subject' => 'Акция Ключ-на-ключ',
+ 'params' => Yii::$app->request->post('KeytokeyForm'),
+ ]);
+ $model = new Emails([
+ 'scenario' => Emails::SCENARIO_KEY,
+ ]);
+
+ $model->load(Yii::$app->request->post(), 'KeytokeyForm');
+ $model->save();
+
+ die();
+ }
+ }
diff --git a/frontend/models/BookingForm.php b/frontend/models/BookingForm.php
new file mode 100755
index 0000000..3c288c4
--- /dev/null
+++ b/frontend/models/BookingForm.php
@@ -0,0 +1,51 @@
+ 2, 'max' => 255],
+
+ ['phone', 'required'],
+ [['phone','model'], 'safe'],
+
+ ['email', 'email'],
+ [['email','phone'], 'string', 'max' => 255],
+
+ [['date_from'],'string'],
+ [['date_to'],'string'],
+
+ ];
+ }
+
+ public function attributeLabels()
+ {
+ return [
+ 'username'=>Yii::t('app', 'username'),
+ 'phone'=>'Телефон',
+ 'email'=>'E-mail',
+ 'date_from'=>Yii::t('app', 'from'),
+ 'date_to'=>Yii::t('app', 'to'),
+ ];
+ }
+
+}
diff --git a/frontend/models/ContactForm.php b/frontend/models/ContactForm.php
new file mode 100755
index 0000000..a716a53
--- /dev/null
+++ b/frontend/models/ContactForm.php
@@ -0,0 +1,60 @@
+ 'Verification Code',
+ ];
+ }
+
+ /**
+ * Sends an email to the specified email address using the information collected by this model.
+ *
+ * @param string $email the target email address
+ * @return boolean whether the email was sent
+ */
+ public function sendEmail($email)
+ {
+ return Yii::$app->mailer->compose()
+ ->setTo($email)
+ ->setFrom([$this->email => $this->name])
+ ->setSubject($this->subject)
+ ->setTextBody($this->body)
+ ->send();
+ }
+}
diff --git a/frontend/models/KeytokeyForm.php b/frontend/models/KeytokeyForm.php
new file mode 100755
index 0000000..bc61166
--- /dev/null
+++ b/frontend/models/KeytokeyForm.php
@@ -0,0 +1,48 @@
+ 2, 'max' => 255],
+
+ ['email', 'email'],
+ [['email','phone'], 'string', 'max' => 255],
+
+ ['phone', 'required'],
+ [['phone','model'], 'safe'],
+
+ [['date_count'],'string']
+
+ ];
+ }
+
+ public function attributeLabels()
+ {
+ return [
+ 'username'=>Yii::t('app', 'username'),
+ 'phone'=>'Телефон',
+ 'email'=>'E-мейл',
+ 'date_count'=>Yii::t('app', 'numdays'),
+ ];
+ }
+
+}
diff --git a/frontend/models/OrderForm.php b/frontend/models/OrderForm.php
new file mode 100755
index 0000000..e4dfff1
--- /dev/null
+++ b/frontend/models/OrderForm.php
@@ -0,0 +1,51 @@
+ 2, 'max' => 255],
+
+ ['email', 'email'],
+ [['email','phone'], 'string', 'max' => 255],
+
+ ['phone', 'required'],
+ [['phone','model_name','model_year','model_color'], 'safe']
+
+ ];
+ }
+
+ public function attributeLabels()
+ {
+ return [
+ 'username'=>Yii::t('app', 'username'),
+ 'phone'=>'Телефон',
+ 'email'=>'Е-мейл',
+ 'model_name'=>'',
+ 'model_year' => '',
+ 'model_color' => '',
+ ];
+ }
+
+}
diff --git a/frontend/models/PasswordResetRequestForm.php b/frontend/models/PasswordResetRequestForm.php
new file mode 100755
index 0000000..60111b9
--- /dev/null
+++ b/frontend/models/PasswordResetRequestForm.php
@@ -0,0 +1,68 @@
+ '\common\models\User',
+ 'filter' => ['status' => User::STATUS_ACTIVE],
+ 'message' => 'There is no user with such email.'
+ ],
+ ];
+ }
+
+ /**
+ * Sends an email with a link, for resetting the password.
+ *
+ * @return boolean whether the email was send
+ */
+ public function sendEmail()
+ {
+ /* @var $user User */
+ $user = User::findOne([
+ 'status' => User::STATUS_ACTIVE,
+ 'email' => $this->email,
+ ]);
+
+ if (!$user) {
+ return false;
+ }
+
+ if (!User::isPasswordResetTokenValid($user->password_reset_token)) {
+ $user->generatePasswordResetToken();
+ if (!$user->save()) {
+ return false;
+ }
+ }
+
+ return Yii::$app
+ ->mailer
+ ->compose(
+ ['html' => 'passwordResetToken-html', 'text' => 'passwordResetToken-text'],
+ ['user' => $user]
+ )
+ ->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name . ' robot'])
+ ->setTo($this->email)
+ ->setSubject('Password reset for ' . Yii::$app->name)
+ ->send();
+ }
+}
diff --git a/frontend/models/QuestionForm.php b/frontend/models/QuestionForm.php
new file mode 100755
index 0000000..1dc4c6c
--- /dev/null
+++ b/frontend/models/QuestionForm.php
@@ -0,0 +1,48 @@
+ 2, 'max' => 255],
+
+ ['email', 'email'],
+ [['email','phone'], 'string', 'max' => 255],
+
+ ['phone', 'required'],
+ [['phone','model'], 'safe'],
+
+ [['message'],'string']
+
+ ];
+ }
+
+ public function attributeLabels()
+ {
+ return [
+ 'username'=>Yii::t('app', 'username'),
+ 'phone'=>'Телефон',
+ 'email'=>'E-мейл',
+ 'message'=>Yii::t('app', 'text_message')
+ ];
+ }
+
+}
diff --git a/frontend/models/ResetPasswordForm.php b/frontend/models/ResetPasswordForm.php
new file mode 100755
index 0000000..72b7f02
--- /dev/null
+++ b/frontend/models/ResetPasswordForm.php
@@ -0,0 +1,64 @@
+_user = User::findByPasswordResetToken($token);
+ if (!$this->_user) {
+ throw new InvalidParamException('Wrong password reset token.');
+ }
+ parent::__construct($config);
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function rules()
+ {
+ return [
+ ['password', 'required'],
+ ['password', 'string', 'min' => 6],
+ ];
+ }
+
+ /**
+ * Resets password.
+ *
+ * @return boolean if password was reset.
+ */
+ public function resetPassword()
+ {
+ $user = $this->_user;
+ $user->setPassword($this->password);
+ $user->removePasswordResetToken();
+
+ return $user->save(false);
+ }
+}
diff --git a/frontend/models/SignupForm.php b/frontend/models/SignupForm.php
new file mode 100755
index 0000000..57a51d8
--- /dev/null
+++ b/frontend/models/SignupForm.php
@@ -0,0 +1,58 @@
+ '\common\models\User', 'message' => 'This username has already been taken.'],
+ ['username', 'string', 'min' => 2, 'max' => 255],
+
+ ['email', 'trim'],
+ ['email', 'required'],
+ ['email', 'email'],
+ ['email', 'string', 'max' => 255],
+ ['email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This email address has already been taken.'],
+
+ ['password', 'required'],
+ ['password', 'string', 'min' => 6],
+ ];
+ }
+
+ /**
+ * Signs user up.
+ *
+ * @return User|null the saved model or null if saving fails
+ */
+ public function signup()
+ {
+ if (!$this->validate()) {
+ return null;
+ }
+
+ $user = new User();
+ $user->username = $this->username;
+ $user->email = $this->email;
+ $user->setPassword($this->password);
+ $user->generateAuthKey();
+
+ return $user->save() ? $user : null;
+ }
+}
diff --git a/frontend/models/TestdriveForm.php b/frontend/models/TestdriveForm.php
new file mode 100755
index 0000000..cccb975
--- /dev/null
+++ b/frontend/models/TestdriveForm.php
@@ -0,0 +1,39 @@
+ 2, 'max' => 255],
+
+ ['phone', 'required'],
+ [['phone','model'], 'safe']
+
+ ];
+ }
+
+ public function attributeLabels()
+ {
+ return [
+ 'username'=>Yii::t('app', 'username'),
+ 'phone'=>'Телефон',
+ ];
+ }
+
+}
diff --git a/frontend/runtime/.gitignore b/frontend/runtime/.gitignore
new file mode 100755
index 0000000..c96a04f
--- /dev/null
+++ b/frontend/runtime/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
\ No newline at end of file
diff --git a/frontend/views/layouts/main.php b/frontend/views/layouts/main.php
new file mode 100755
index 0000000..6cf1a9c
--- /dev/null
+++ b/frontend/views/layouts/main.php
@@ -0,0 +1,27 @@
+
+beginPage() ?>
+
+
+
+
+
+ = Html::csrfMetaTags() ?>
+ = Html::encode($this->title) ?>
+ head() ?>
+
+
+beginBody() ?>
+
+endBody() ?>
+
+
+endPage() ?>
diff --git a/frontend/views/site/_car_view.php b/frontend/views/site/_car_view.php
new file mode 100755
index 0000000..cf172b4
--- /dev/null
+++ b/frontend/views/site/_car_view.php
@@ -0,0 +1,26 @@
+
+
+ image);
+ ?>
+
+
+
getAttributeLabel('color'); ?>: color); ?>
+
getAttributeLabel('mileage'); ?>: mileage; echo Yii::t('app', 'tsd_km'); ?>
+
getAttributeLabel('build'); ?>: build; ?>
+
getAttributeLabel('option'); ?>: option); ?>
+
+price, 2); ?>$
+
diff --git a/frontend/views/site/about.php b/frontend/views/site/about.php
new file mode 100755
index 0000000..8eb0764
--- /dev/null
+++ b/frontend/views/site/about.php
@@ -0,0 +1,16 @@
+title = 'About';
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
= Html::encode($this->title) ?>
+
+
This is the About page. You may modify the following file to customize its content:
+
+
= __FILE__ ?>
+
diff --git a/frontend/views/site/contact.php b/frontend/views/site/contact.php
new file mode 100755
index 0000000..dc48410
--- /dev/null
+++ b/frontend/views/site/contact.php
@@ -0,0 +1,45 @@
+title = 'Contact';
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
diff --git a/frontend/views/site/error.php b/frontend/views/site/error.php
new file mode 100755
index 0000000..0ba2574
--- /dev/null
+++ b/frontend/views/site/error.php
@@ -0,0 +1,27 @@
+title = $name;
+?>
+
+
+
= Html::encode($this->title) ?>
+
+
+ = nl2br(Html::encode($message)) ?>
+
+
+
+ The above error occurred while the Web server was processing your request.
+
+
+ Please contact us if you think this is a server error. Thank you.
+
+
+
diff --git a/frontend/views/site/index.php b/frontend/views/site/index.php
new file mode 100755
index 0000000..fae789c
--- /dev/null
+++ b/frontend/views/site/index.php
@@ -0,0 +1,722 @@
+title = 'Nissan Leaf';
+ $get_model = \Yii::$app->request->get('CarSearch');
+ if(!empty($get_model['model'])) {
+ $get_model = $get_model['model'];
+ } else {
+ $get_model = $searchModel::DEFAULT_MODEL;
+ }
+ $get_year = \Yii::$app->request->get('CarSearch');
+ if(!empty($get_year['year'])) {
+ $get_year = $get_year['year'];
+ } else {
+ $get_year = $searchModel::DEFAULT_YEAR;
+ }
+ $current_language = \Yii::$app->language;
+?>
+
+
+
+
+
+
+
+
+
+
+
+ 'form_testdrive',
+ 'action' => 'site/testdrive',
+ ]); ?>
+
+ = $form->field($model, 'username')->textInput([ 'autofocus' => true,'class' => 'form-control custom-input-2' ]) ?>
+
+
+ = $form->field($model, 'phone')->textInput(['class' => 'form-control custom-input-2' ])?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'form_question',
+ 'action' => 'site/question',
+ ]); ?>
+
+
= $form->field($model, 'username')
+ ->textInput([ 'autofocus' => true,'class' => 'form-control custom-input-2' ]) ?>
+
= $form->field($model, 'phone')
+ ->textInput(['class' => 'form-control custom-input-2' ]) ?>
+
= $form->field($model, 'email')
+ ->textInput(['class' => 'form-control custom-input-2' ]) ?>
+
= $form->field($model, 'message')
+ ->textarea(['class' => 'form-control custom-input-2' ]) ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'form_keytokey',
+ 'action' => 'site/keytokey',
+ ]); ?>
+
+ = $form->field($model, 'username')->textInput([ 'autofocus' => true,'class' => 'form-control custom-input-2' ]) ?>
+
+
+ = $form->field($model, 'phone')->textInput(['class' => 'form-control custom-input-2' ]) ?>
+
+
+ = $form->field($model, 'email')->textInput(['class' => 'form-control custom-input-2' ]) ?>
+
+
= $form->field($model, 'date_count')->dropDownList([
+ '3' => '3 '.Yii::t('app', 'days'),
+ '5' => '5 '.Yii::t('app', 'days')], ['class' => 'custom-input-2 form-control']) ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'form_booking',
+ 'action' => 'site/booking',
+ ]); ?>
+
+
= $form->field($model, 'username')->textInput([ 'autofocus' => true,'class' => 'form-control custom-input-2' ]) ?>
+
= $form->field($model, 'phone')->textInput(['class' => 'form-control custom-input-2' ]) ?>
+
= $form->field($model, 'email')->textInput(['class' => 'form-control custom-input-2' ]) ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'form_buy',
+ 'action' => 'site/buy',
+ ]); ?>
+
+
= $form->field($model, 'username')
+ ->textInput([ 'autofocus' => true,'class' => 'form-control custom-input-2' ]) ?>
+
= $form->field($model, 'phone')
+ ->textInput(['class' => 'form-control custom-input-2' ]) ?>
+
= $form->field($model, 'email')
+ ->textInput(['class' => 'form-control custom-input-2' ]) ?>
+
+ = $form->field($model, 'model')
+ ->hiddenInput()
+ ->label(false) ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ language == 'ru-RU') {
+ echo 'рус';
+ } else {
+ echo 'укр';
+ }
+ ?>
+
+
+ language == 'ru-RU') {
+ echo Html::a('укр', ['', 'language_id' => 3]);
+ } else {
+ echo Html::a('рус', ['', 'language_id' => 2]);
+ }
+ ?>
+
+
+
+
+
+
+
+
+
+
+
= Yii::t('app', 'citycar_chose')?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
= Yii::t('app', 'why_leaf')?>
+
+
+
+ = Yii::t('app', 'why_leaf_line1')?>
+
+
+
+ = Yii::t('app', 'why_leaf_line2')?>
+
+
+
+ = Yii::t('app', 'why_leaf_line3')?>
+
+
+
+ = Yii::t('app', 'why_leaf_line4')?>
+
+
+
+ = Yii::t('app', 'why_leaf_line5')?>
+
+
+
+ = Yii::t('app', 'why_leaf_line6')?>
+
+
+
+
+
+
+
+
+
+
+
= Yii::t('app', 'models2')?>
+
+
+ [
+ 'year' => $get_year,
+ 'model' => $model,
+ 'toggle' => 'tab',
+ ],
+ 'role' => 'tab',
+ 'aria-controls' => 'tabpanel'.$num,
+ 'class' => 'model-picker',
+ ]), [
+ 'role' => 'presentation',
+ 'class' => ( $get_model == $model ) ? 'active' : '',
+ ]);
+ }
+ ?>
+
+
+
+
+
+
+ = Yii::t('app', 'year_made')?>
+ [
+ 'year' => $year,
+ 'model' => $get_model,
+ 'toggle' => 'tab',
+ ],
+ 'aria-controls' => 'tabpanel1'.$num1,
+ 'role' => 'tab',
+ 'class' => 'year-picker',
+ ]), [
+ 'role' => 'presentation',
+ 'class' => ( $get_year == $year ) ? 'active' : '',
+ ]);
+ }
+ ?>
+
+
+
+
+
+
+ $dataProvider,
+ 'layout' => '{items}',
+ 'options' => [
+ 'tag' => 'div',
+ 'class' => 'owl-carousel',
+ ],
+ 'itemOptions' => [
+ 'tag' => 'div',
+ 'class' => 'item',
+ ],
+ 'itemView' => '_car_view',
+ ]);
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
= Yii::t('app', 'why_we')?>
+
+
+
+ = Yii::t('app', 'why_we_line1')?>
+
+
+
+ = Yii::t('app', 'why_we_line2')?>
+
+
+
+ = Yii::t('app', 'why_we_line3')?>
+
+
+
+ = Yii::t('app', 'why_we_line4')?>
+
+
+
+ = Yii::t('app', 'why_we_line5')?>
+
+
+
+ = Yii::t('app', 'why_we_line6')?>
+
+
+
+
+
+
+
+
+
+
+
+
= Yii::t('app', 'rent_auto')?>
+
+
+
+
+
= Yii::t('app', 'rent_auto1')?>
+
+
+
+
+
+
= Yii::t('app', 'rent_auto2')?>
+
+
+
+
= Yii::t('app', 'rent_auto3')?>
+
+
+
+
+
+
5 = Yii::t('app', 'days')?>
+
+
+
+
+
+
200$
+
+
+
+
+
= Yii::t('app', 'weeks')?>
+
+
+
+
+
+
250$
+
+
+
+
+
= Yii::t('app', 'month')?>
+
+
+
+
+
+
900$
+
+
+
+
+ 500$
= Yii::t('app', 'deposit')?>
+
+
+
+
= Yii::t('app', 'dontforget1')?>
+
+ = Yii::t('app', 'dontforget2')?>
+ = Yii::t('app', 'dontforget3')?>
+ = Yii::t('app', 'dontforget4')?>
+
+
= Yii::t('app', 'rent1')?>
+
+
+
+ = Yii::t('app', 'rent2')?>
+
+
+
+ = Yii::t('app', 'rent3')?>
+
+
+
+ = Yii::t('app', 'rent4')?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
= Yii::t('app', 'keytokey')?>
+
= Yii::t('app', 'keytokey11')?>
+
= Yii::t('app', 'keytokey12')?>
+
"= Yii::t('app', 'keytokey2')?>
+
= Yii::t('app', 'keytokey3')?>"
+
+
= Yii::t('app', 'keytokey4')?>
+
+
= Yii::t('app', 'share_fb')?>
+
+
= Yii::t('app', 'chose_var')?>
+
+ = Yii::t('app', 'leaf_days5')?>
+ = Yii::t('app', 'leaf_days3')?>
+
+
+
+
+
+
+
+
+
= Yii::t('app', 'partners')?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
© 2016 = Yii::t('app', 'footer1')?>
+ = Yii::t('app', 'footer2')?>
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/views/site/login.php b/frontend/views/site/login.php
new file mode 100755
index 0000000..56ea98e
--- /dev/null
+++ b/frontend/views/site/login.php
@@ -0,0 +1,39 @@
+title = 'Login';
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
= Html::encode($this->title) ?>
+
+
Please fill out the following fields to login:
+
+
+
+ 'login-form']); ?>
+
+ = $form->field($model, 'username')->textInput(['autofocus' => true]) ?>
+
+ = $form->field($model, 'password')->passwordInput() ?>
+
+ = $form->field($model, 'rememberMe')->checkbox() ?>
+
+
+ If you forgot your password you can = Html::a('reset it', ['site/request-password-reset']) ?>.
+
+
+
+ = Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
+
+
+
+
+
+
diff --git a/frontend/views/site/requestPasswordResetToken.php b/frontend/views/site/requestPasswordResetToken.php
new file mode 100755
index 0000000..9f6822e
--- /dev/null
+++ b/frontend/views/site/requestPasswordResetToken.php
@@ -0,0 +1,31 @@
+title = 'Request password reset';
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
= Html::encode($this->title) ?>
+
+
Please fill out your email. A link to reset password will be sent there.
+
+
+
+ 'request-password-reset-form']); ?>
+
+ = $form->field($model, 'email')->textInput(['autofocus' => true]) ?>
+
+
+ = Html::submitButton('Send', ['class' => 'btn btn-primary']) ?>
+
+
+
+
+
+
diff --git a/frontend/views/site/resetPassword.php b/frontend/views/site/resetPassword.php
new file mode 100755
index 0000000..36ef452
--- /dev/null
+++ b/frontend/views/site/resetPassword.php
@@ -0,0 +1,31 @@
+title = 'Reset password';
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
= Html::encode($this->title) ?>
+
+
Please choose your new password:
+
+
+
+ 'reset-password-form']); ?>
+
+ = $form->field($model, 'password')->passwordInput(['autofocus' => true]) ?>
+
+
+ = Html::submitButton('Save', ['class' => 'btn btn-primary']) ?>
+
+
+
+
+
+
diff --git a/frontend/views/site/signup.php b/frontend/views/site/signup.php
new file mode 100755
index 0000000..de9dad6
--- /dev/null
+++ b/frontend/views/site/signup.php
@@ -0,0 +1,35 @@
+title = 'Signup';
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
= Html::encode($this->title) ?>
+
+
Please fill out the following fields to signup:
+
+
+
+ 'form-signup']); ?>
+
+ = $form->field($model, 'username')->textInput(['autofocus' => true]) ?>
+
+ = $form->field($model, 'email') ?>
+
+ = $form->field($model, 'password')->passwordInput() ?>
+
+
+ = Html::submitButton('Signup', ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?>
+
+
+
+
+
+
diff --git a/frontend/web/.gitignore b/frontend/web/.gitignore
new file mode 100755
index 0000000..25c74e6
--- /dev/null
+++ b/frontend/web/.gitignore
@@ -0,0 +1,2 @@
+/index.php
+/index-test.php
diff --git a/frontend/web/assets/.gitignore b/frontend/web/assets/.gitignore
new file mode 100755
index 0000000..d6b7ef3
--- /dev/null
+++ b/frontend/web/assets/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/frontend/web/css/breakpoints.scss b/frontend/web/css/breakpoints.scss
new file mode 100755
index 0000000..aab84d9
--- /dev/null
+++ b/frontend/web/css/breakpoints.scss
@@ -0,0 +1,18 @@
+$breakpoints: (
+ 'xs': ( min-width: 480px ),
+ 'sm': ( min-width: 768px ),
+ 'md': ( min-width: 992px ),
+ 'lg': ( min-width: 1200px )
+) !default;
+
+@mixin respond-to($breakpoint) {
+ @if map-has-key($breakpoints, $breakpoint) {
+ @media #{inspect(map-get($breakpoints, $breakpoint))} {
+ @content;
+ }
+ }
+ @else {
+ @warn "Unfortunately, no value could be retrieved from `#{$breakpoint}`. "
+ + "Available breakpoints are: #{map-keys($breakpoints)}.";
+ }
+}
\ No newline at end of file
diff --git a/frontend/web/css/firstSlider.css b/frontend/web/css/firstSlider.css
new file mode 100644
index 0000000..d5371e4
--- /dev/null
+++ b/frontend/web/css/firstSlider.css
@@ -0,0 +1,40 @@
+.box-1 {
+ transition: 0.5s;
+}
+.mobile-html .box-1 {transition: 0s}
+.slider_wr_ {
+ position: absolute;left: 0;bottom: 126px;
+}
+.slide-ul {
+
+}
+.slide-ul .style {position: absolute; bottom: 4px; left: 0; padding: 0 15px;}
+.slide-ul li {
+ list-style: none;
+ cursor: pointer;
+ position: relative;
+}
+.slide-ul li img {
+ width: 100%;
+ max-width: 100%;
+ max-height: 118px;
+ box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.75);
+}
+.time-bloks {
+ position: relative;
+ bottom: -4px;
+ left: 0;
+ width: 100%;
+ height: 5px;
+ background: #5c5a64;
+ z-index: 2;
+ display: none;
+}
+.slide-ul .active_n .time-bloks {
+ display: block;
+}
+.time-bloks-line {
+ width: 0;
+ height: 100%;
+ background: #00aeff;
+}
\ No newline at end of file
diff --git a/frontend/web/css/firstSlider.scss b/frontend/web/css/firstSlider.scss
new file mode 100755
index 0000000..d3d3b6a
--- /dev/null
+++ b/frontend/web/css/firstSlider.scss
@@ -0,0 +1,43 @@
+.box-1 {
+ transition: 0.5s;
+}
+.mobile-html .box-1 {transition: 0s}
+
+.slide-ul {
+
+}
+.slide-ul .style {position: absolute; bottom: 4px; left: 0; padding: 0 15px;}
+.slide-ul li {
+ list-style: none;
+ cursor: pointer;
+ position: relative;
+}
+.slide-ul li img {
+ width: 100%;
+ max-width: 100%;
+ max-height: 118px;
+ box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.75);
+}
+.time-bloks {
+ position: relative;
+ bottom: -4px;
+ left: 0;
+ width: 100%;
+ height: 5px;
+ background: #5c5a64;
+ z-index: 2;
+ display: none;
+}
+.slide-ul .active_n .time-bloks {
+ display: block;
+}
+.time-bloks-line {
+ width: 0;
+ height: 100%;
+ background: #00aeff;
+}
+
+
+
+
+
diff --git a/frontend/web/css/modal.scss b/frontend/web/css/modal.scss
new file mode 100755
index 0000000..e15a1db
--- /dev/null
+++ b/frontend/web/css/modal.scss
@@ -0,0 +1,115 @@
+
+/* формируем кнопку закрытия */
+.close {
+ position: absolute;
+ padding: 0;
+ top: -24px;
+ right: -24px; opacity: 1;
+ text-align: center;
+ text-decoration: none;
+ font-weight: bold;
+ line-height: 20px;
+ -webkit-transition: background-color ease .7s;
+ -moz-transition: background-color ease .7s;
+ -ms-transition: background-color ease .7s;
+ -o-transition: background-color ease .7s;
+ transition: background-color ease .7s;
+ &:hover {
+ &:before{
+ color: #efba00;
+ }
+ }
+
+}
+.close:before {
+ color: rgba(255, 255, 255, 0.9);
+ content: '\2715';
+ text-shadow: 0 -1px rgba(0, 0, 0, 0.9);
+ font-size: 22px;
+ color: #fcd016;
+}
+
+.has-error input {
+ border: 1px solid #dc0a05!important;
+ box-shadow: none!important;
+}
+.form-control {
+ display: block;
+ box-sizing: border-box;
+ width: 100%;
+ height: 34px;
+ padding: 6px 12px;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #555;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
+ -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
+ -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
+ transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
+}
+.has-error{
+ label,.help-block {
+ color: red;
+ }
+ input {
+ border: 1px solid red;
+ box-shadow: none!important;
+ }
+}
+
+.form-group{
+ margin-bottom: 20px;
+ label{
+ line-height: 24px;
+ }
+}
+.form-group-2-l{
+ display: flex;
+ label{
+ line-height: 24px;
+ height: 34px;
+ padding: 5px;
+ }
+}
+.form-footer{
+ padding-top: 20px;
+ text-align: center;
+}
+
+
+.modal {
+ text-align: center;
+ padding: 0!important;
+
+ &:before {
+ content: '';
+ display: inline-block;
+ height: 100%;
+ vertical-align: middle;
+ margin-right: -4px;
+ }
+ .modal-header {
+ padding-bottom: 0;
+ border-bottom: none;
+ }
+
+ @include respond-to('md'){
+ .modal-header{
+ padding: 40px 180px 0;
+ }
+ .modal-body{
+ padding: 0 180px 40px;
+ }
+ }
+}
+.modal-dialog {
+ display: inline-block;
+ text-align: left;
+ vertical-align: middle;
+ margin: 30px;
+}
\ No newline at end of file
diff --git a/frontend/web/css/owl.carousel/_animate.scss b/frontend/web/css/owl.carousel/_animate.scss
new file mode 100755
index 0000000..696d93c
--- /dev/null
+++ b/frontend/web/css/owl.carousel/_animate.scss
@@ -0,0 +1,28 @@
+/*
+ * Owl Carousel - Animate Plugin
+ */
+.owl-carousel{
+ .animated {
+ animation-duration: 1000ms;
+ animation-fill-mode: both;
+ }
+ .owl-animated-in {
+ z-index: 0;
+ }
+ .owl-animated-out {
+ z-index: 1;
+ }
+ .fadeOut {
+ animation-name: fadeOut;
+ }
+}
+
+@keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
diff --git a/frontend/web/css/owl.carousel/_autoheight.scss b/frontend/web/css/owl.carousel/_autoheight.scss
new file mode 100755
index 0000000..7852c3f
--- /dev/null
+++ b/frontend/web/css/owl.carousel/_autoheight.scss
@@ -0,0 +1,7 @@
+/*
+ * Owl Carousel - Auto Height Plugin
+ */
+
+.owl-height {
+ transition: height 500ms ease-in-out;
+}
diff --git a/frontend/web/css/owl.carousel/_core.scss b/frontend/web/css/owl.carousel/_core.scss
new file mode 100755
index 0000000..37c9161
--- /dev/null
+++ b/frontend/web/css/owl.carousel/_core.scss
@@ -0,0 +1,105 @@
+/*
+ * Owl Carousel - Core
+ */
+.owl-carousel {
+ display: none;
+ width: 100%;
+ -webkit-tap-highlight-color: transparent;
+ /* position relative and z-index fix webkit rendering fonts issue */
+ position: relative;
+ z-index: 1;
+
+ .owl-stage {
+ position: relative;
+ -ms-touch-action: pan-Y;
+ }
+
+ .owl-stage:after {
+ content: ".";
+ display: block;
+ clear: both;
+ visibility: hidden;
+ line-height: 0;
+ height: 0;
+ }
+
+ .owl-stage-outer {
+ position: relative;
+ overflow: hidden;
+ /* fix for flashing background */
+ -webkit-transform: translate3d(0px, 0px, 0px);
+ }
+
+ .owl-item {
+ position: relative;
+ min-height: 1px;
+ float: left;
+ -webkit-backface-visibility: hidden;
+ -webkit-tap-highlight-color: transparent;
+ -webkit-touch-callout: none;
+ }
+ .owl-item img {
+ display: block;
+ width: 100%;
+ -webkit-transform-style: preserve-3d;
+ }
+
+ .owl-nav.disabled,
+ .owl-dots.disabled {
+ display: none;
+ }
+
+ .owl-nav .owl-prev,
+ .owl-nav .owl-next,
+ .owl-dot {
+ cursor: pointer;
+ cursor: hand;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ }
+
+ &.owl-loaded {
+ display: block;
+ }
+
+ &.owl-loading {
+ opacity: 0;
+ display: block;
+ }
+
+ &.owl-hidden {
+ opacity: 0;
+ }
+
+ &.owl-refresh .owl-item {
+ display: none;
+ }
+
+ &.owl-drag .owl-item {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ }
+
+ &.owl-grab {
+ cursor: move;
+ cursor: grab;
+ }
+
+ &.owl-rtl {
+ direction: rtl;
+ }
+
+ &.owl-rtl .owl-item {
+ float: right;
+ }
+}
+
+/* No Js */
+.no-js .owl-carousel {
+ display: block;
+}
diff --git a/frontend/web/css/owl.carousel/_lazyload.scss b/frontend/web/css/owl.carousel/_lazyload.scss
new file mode 100755
index 0000000..4f19e07
--- /dev/null
+++ b/frontend/web/css/owl.carousel/_lazyload.scss
@@ -0,0 +1,17 @@
+/*
+ * Owl Carousel - Lazy Load Plugin
+ */
+
+.owl-carousel {
+ .owl-item {
+ .owl-lazy {
+ opacity: 0;
+ transition: opacity 400ms ease;
+ }
+
+ img.owl-lazy {
+ transform-style: preserve-3d;
+ }
+ }
+}
+
diff --git a/frontend/web/css/owl.carousel/_theme.default.scss b/frontend/web/css/owl.carousel/_theme.default.scss
new file mode 100755
index 0000000..8c583b2
--- /dev/null
+++ b/frontend/web/css/owl.carousel/_theme.default.scss
@@ -0,0 +1,30 @@
+/*
+ * Default theme - Owl Carousel CSS File
+ */
+
+$color-base: #869791 !default;
+$color-white: #FFF !default;
+$color-gray: #D6D6D6 !default;
+
+//nav
+
+$nav-color: $color-gray;
+$nav-color-hover: $primary-color;
+$nav-font-size: 36px !default;
+$nav-rounded: 3px !default;
+$nav-margin: 5px !default;
+$nav-padding: 4px 7px !default;
+$nav-background: transperent;
+$nav-background-hover: transperent;
+$nav-disabled-opacity: 0.5 !default;
+
+//dots
+
+$dot-width: 64px !default;
+$dot-height: 2px !default;
+$dot-rounded: 30px !default;
+$dot-margin: 20px 7px !default;
+$dot-background: #d7d7d7;
+$dot-background-active: $primary-color;
+
+@import 'theme';
diff --git a/frontend/web/css/owl.carousel/_theme.scss b/frontend/web/css/owl.carousel/_theme.scss
new file mode 100755
index 0000000..97b4743
--- /dev/null
+++ b/frontend/web/css/owl.carousel/_theme.scss
@@ -0,0 +1,66 @@
+
+.owl-theme {
+ // Styling Next and Prev buttons
+ .owl-nav {
+ margin-top: 10px;
+ text-align: center;
+ -webkit-tap-highlight-color: transparent;
+
+ [class*='owl-'] {
+ color: $nav-color;
+ font-size: $nav-font-size;
+ margin: $nav-margin;
+ padding: $nav-padding;
+ background: $nav-background;
+ display: inline-block;
+ cursor: pointer;
+ border-radius: 3px;
+
+ &:hover {
+ background: $nav-background-hover;
+ color:$nav-color-hover;
+ text-decoration: none;
+ }
+ }
+ .disabled {
+ opacity: $nav-disabled-opacity;
+ cursor: default;
+ }
+ }
+
+ // Styling dots
+ .owl-nav.disabled + .owl-dots {
+ margin-top: 10px;
+ }
+
+ .owl-dots {
+ text-align: center;
+ -webkit-tap-highlight-color: transparent;
+ background: #f2f2f2;
+ margin: 0 -20px;
+
+ .owl-dot {
+ display: inline-block;
+ zoom: 1;
+ *display: inline;
+
+ span {
+ width: $dot-width;
+ height: $dot-height;
+ margin: $dot-margin;
+ background: $dot-background;
+ display: block;
+ -webkit-backface-visibility: visible;
+ transition: opacity 200ms ease;
+ border-radius: 30px;
+ }
+
+ &.active,
+ &:hover {
+ span {
+ background: $dot-background-active;
+ }
+ }
+ }
+ }
+}
diff --git a/frontend/web/css/owl.carousel/_video.scss b/frontend/web/css/owl.carousel/_video.scss
new file mode 100755
index 0000000..29b6717
--- /dev/null
+++ b/frontend/web/css/owl.carousel/_video.scss
@@ -0,0 +1,51 @@
+/*
+ * Owl Carousel - Video Plugin
+ */
+
+.owl-carousel{
+ .owl-video-wrapper {
+ position: relative;
+ height: 100%;
+ background: #000;
+ }
+
+ .owl-video-play-icon {
+ position: absolute;
+ height: 80px;
+ width: 80px;
+ left: 50%;
+ top: 50%;
+ margin-left: -40px;
+ margin-top: -40px;
+ background: url("owl.video.play.png") no-repeat;
+ cursor: pointer;
+ z-index: 1;
+ -webkit-backface-visibility: hidden;
+ transition: transform 100ms ease;
+ }
+
+ .owl-video-play-icon:hover {
+ transform: scale(1.3, 1.3);
+ }
+
+ .owl-video-playing .owl-video-tn,
+ .owl-video-playing .owl-video-play-icon {
+ display: none;
+ }
+
+ .owl-video-tn {
+ opacity: 0;
+ height: 100%;
+ background-position: center center;
+ background-repeat: no-repeat;
+ background-size: contain;
+ transition: opacity 400ms ease;
+ }
+
+ .owl-video-frame {
+ position: relative;
+ z-index: 1;
+ height: 100%;
+ width: 100%;
+ }
+}
diff --git a/frontend/web/css/owl.carousel/owl.carousel.scss b/frontend/web/css/owl.carousel/owl.carousel.scss
new file mode 100755
index 0000000..f93c308
--- /dev/null
+++ b/frontend/web/css/owl.carousel/owl.carousel.scss
@@ -0,0 +1,6 @@
+@import 'core';
+@import 'animate';
+@import 'autoheight';
+@import 'lazyload';
+@import 'video';
+@import 'theme.default';
diff --git a/frontend/web/css/pushy.scss b/frontend/web/css/pushy.scss
new file mode 100755
index 0000000..b3afd33
--- /dev/null
+++ b/frontend/web/css/pushy.scss
@@ -0,0 +1,201 @@
+/*! Pushy - v1.0.0 - 2016-3-1
+* Pushy is a responsive off-canvas navigation menu using CSS transforms & transitions.
+* https://github.com/christophery/pushy/
+* by Christopher Yee */
+
+$menu_width: 300px !default;
+
+/* Menu Appearance */
+
+.pushy{
+ position: fixed;
+ width: $menu_width;
+ height: 100%;
+ top: 0;
+ z-index: 11;
+ background: $primary-color;
+ overflow: auto;
+ visibility: hidden;
+ -webkit-overflow-scrolling: touch; /* enables momentum scrolling in iOS overflow elements */
+
+ a{
+ display: block;
+ color: rgba(256,256,256,0.8);
+ padding: 15px 30px;
+ text-decoration: none;
+ outline: 0;
+ font-size: 18px;
+ text-transform: uppercase;
+ }
+
+ a:hover{
+ color: #FFF;
+ }
+
+ ul:first-child{
+ margin-top: 70px;
+ }
+
+ &.pushy-left{
+ left: 0;
+ }
+
+ &.pushy-right{
+ right: 0;
+ }
+}
+
+/* Menu Movement */
+
+.pushy-left{
+ -webkit-transform: translate3d( unquote('-' + $menu_width) ,0,0);
+ -ms-transform: translate3d( unquote('-' + $menu_width) ,0,0);
+ transform: translate3d( unquote('-' + $menu_width) ,0,0);
+}
+
+.pushy-open-left{
+ #container,
+ .push{
+ -webkit-transform: translate3d( $menu_width ,0,0);
+ -ms-transform: translate3d( $menu_width ,0,0);
+ transform: translate3d( $menu_width ,0,0);
+ }
+}
+
+.pushy-right{
+ -webkit-transform: translate3d( $menu_width ,0,0);
+ -ms-transform: translate3d( $menu_width ,0,0);
+ transform: translate3d( $menu_width ,0,0);
+}
+
+.pushy-open-right{
+ #container,
+ .push{
+ -webkit-transform: translate3d( unquote('-' + $menu_width) ,0,0);
+ -ms-transform: translate3d( unquote('-' + $menu_width) ,0,0);
+ transform: translate3d( unquote('-' + $menu_width) ,0,0);
+ }
+}
+
+.pushy-open-left,
+.pushy-open-right{
+ .pushy{
+ -webkit-transform: translate3d(0,0,0);
+ -ms-transform: translate3d(0,0,0);
+ transform: translate3d(0,0,0);
+ }
+}
+
+/* Menu Transitions */
+
+#container,
+.pushy,
+.push{
+ transition: transform .2s cubic-bezier(.16, .68, .43, .99);
+}
+
+/* Site Overlay */
+
+.site-overlay{
+ display: none;
+}
+
+.pushy-open-left,
+.pushy-open-right{
+ .site-overlay{
+ display: block;
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 10;
+ background-color: rgba(0,0,0,0.5);
+ -webkit-animation: fade 500ms;
+ animation: fade 500ms;
+ }
+}
+
+@keyframes fade{
+ 0% { opacity: 0; }
+ 100% { opacity: 1; }
+}
+
+@-webkit-keyframes fade{
+ 0% { opacity: 0; }
+ 100% { opacity: 1; }
+}
+
+/* Submenu Appearance */
+
+.pushy-submenu{
+ ul{
+ padding-left: 15px;
+ transition: max-height 0.2s ease-in-out;
+
+ .pushy-link{
+ transition: opacity 0.2s ease-in-out;
+ }
+ }
+
+ /* Submenu Icon */
+
+ > a {
+ position: relative;
+ }
+
+ > a::after {
+ content: '';
+ display: block;
+ height: 11px;
+ width: 8px;
+ position: absolute;
+ top: 50%;
+ right: 15px;
+ background: url("../img/arrow.svg") no-repeat;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%);
+ transition: transform 0.2s;
+ }
+}
+
+/* Submenu Movement */
+
+.pushy-submenu-closed{
+ ul{
+ max-height: 0;
+ overflow: hidden;
+ }
+
+ .pushy-link{
+ opacity: 0;
+ }
+}
+
+.pushy-submenu-open{
+ ul{
+ max-height: 1000px;
+ }
+
+ .pushy-link{
+ opacity: 1;
+ }
+
+ /* Submenu Icon */
+
+ a::after {
+ -webkit-transform: translateY(-50%) rotate(90deg);
+ -ms-transform: translateY(-50%) rotate(90deg);
+ transform: translateY(-50%) rotate(90deg);
+ }
+}
+
+.no-csstransforms3d{
+ .pushy-submenu-closed{
+ ul{
+ max-height: none;
+ display: none;
+ }
+ }
+}
diff --git a/frontend/web/css/reset.scss b/frontend/web/css/reset.scss
new file mode 100755
index 0000000..a67283b
--- /dev/null
+++ b/frontend/web/css/reset.scss
@@ -0,0 +1,43 @@
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+ box-sizing: border-box;
+}
+
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
+ display: block; }
+
+body {
+ line-height: 1; }
+
+ol, ul {
+ list-style: none; }
+
+blockquote, q {
+ quotes: none; }
+
+blockquote {
+ &:before, &:after {
+ content: '';
+ content: none; } }
+
+q {
+ &:before, &:after {
+ content: '';
+ content: none; } }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+img {
+ max-width: 100%;
+}
+button {
+ background-color: transparent;
+ outline: none;
+ border: 0;
+ cursor: pointer; }
\ No newline at end of file
diff --git a/frontend/web/css/site.css b/frontend/web/css/site.css
new file mode 100644
index 0000000..490c34f
--- /dev/null
+++ b/frontend/web/css/site.css
@@ -0,0 +1,111 @@
+html,
+body {
+ height: 100%;
+}
+
+.wrap {
+ min-height: 100%;
+ height: auto;
+ margin: 0 auto -60px;
+ padding: 0 0 60px;
+}
+
+.wrap > .container {
+ padding: 70px 15px 20px;
+}
+
+.footer {
+ height: 60px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #ddd;
+ padding-top: 20px;
+}
+
+.jumbotron {
+ text-align: center;
+ background-color: transparent;
+}
+
+.jumbotron .btn {
+ font-size: 21px;
+ padding: 14px 24px;
+}
+
+.not-set {
+ color: #c55;
+ font-style: italic;
+}
+
+/* add sorting icons to gridview sort links */
+a.asc:after, a.desc:after {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ font-family: 'Glyphicons Halflings';
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
+ padding-left: 5px;
+}
+
+a.asc:after {
+ content: "\e151";
+}
+
+a.desc:after {
+ content: "\e152";
+}
+
+.sort-numerical a.asc:after {
+ content: "\e153";
+}
+
+.sort-numerical a.desc:after {
+ content: "\e154";
+}
+
+.sort-ordinal a.asc:after {
+ content: "\e155";
+}
+
+.sort-ordinal a.desc:after {
+ content: "\e156";
+}
+
+.grid-view td {
+ white-space: nowrap;
+}
+
+.grid-view .filters input,
+.grid-view .filters select {
+ min-width: 50px;
+}
+
+.hint-block {
+ display: block;
+ margin-top: 5px;
+ color: #999;
+}
+
+.error-summary {
+ color: #a94442;
+ background: #fdf7f7;
+ border-left: 3px solid #eed3d7;
+ padding: 10px 20px;
+ margin: 0 0 15px 0;
+}
+
+/* align the logout "link" (button in form) of the navbar */
+.nav > li > form {
+ padding: 8px;
+}
+
+@media(max-width:768px) {
+ .nav li > form {
+ padding: 3px;
+ }
+}
+
+.nav > li > form > button:hover {
+ text-decoration: none;
+}
diff --git a/frontend/web/css/style.css b/frontend/web/css/style.css
new file mode 100644
index 0000000..1090ea2
--- /dev/null
+++ b/frontend/web/css/style.css
@@ -0,0 +1,3820 @@
+*{
+ margin: 0;
+ padding: 0;}
+html, body {height: 100%}
+body {
+ font-family: 'Open Sans';
+ font-weight: 300;
+ font-size: 14px;
+ color: #373232;
+
+}
+
+img {
+ border: none;
+}
+a:hover, a:focus {
+ color: inherit;
+ text-decoration: none;
+}
+div:before, div:after {
+ content: '';
+}
+#no-scroll {overflow-y: hidden;}
+#preload_ {
+ width: 100%;
+ height: 100%;
+ position: fixed;
+ z-index: 999999;
+ top: 0;
+ left: 0;
+ background: #333;
+}
+#preload_:before {
+ width: 100%;
+ height: 100%;
+ background: url("../images/preload.gif") 50% 50% no-repeat;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1;
+}
+#preload_.hide_:before {
+ opacity: 0;
+ transition: 0.9s;
+}
+#preload_.hide_up_ {opacity: 0; transition: 0.5s ease-in;}
+
+#container-main {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+
+}
+.sections {
+ max-height: 1200px;
+ height: 100%;
+ width: 100%;
+ position: relative;
+ min-width: 768px;float: left;
+}
+.box-1 {
+ background-image: url('../images/slider/big-bg-1.jpg');
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-attachment: fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+}
+.mobile-html .box-1 {
+ /*background-image:url('../images/slider/big-bg-1.jpg') 50% 50% no-repeat;*/
+ background-attachment: scroll;
+}
+.box-2 {
+ background: url('../images/bg-2.jpg') no-repeat center top fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+ overflow: hidden;
+}
+.mobile-html .box-2 {
+ background: url('../images/bg-2.jpg') no-repeat 50% 0;
+
+}
+.box-3 {
+ background: url('../images/bg-3.jpg') no-repeat center center fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+}
+.mobile-html .box-3 {
+ background: url('../images/bg-3.jpg') no-repeat 50%;
+ /*height: 1000px;*/
+}
+.box-4 {
+ background: url('../images/bg-4.jpg') no-repeat center top fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+}
+.mobile-html .box-4 {
+ background: url('../images/bg-4.jpg') no-repeat 50% 0;
+}
+
+.box-4-2 {
+ background: url('../images/sl_ec_01.jpg') no-repeat center top fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+}
+.mobile-html .box-4-2 {
+ background: url('../images/sl_ec_01.jpg') no-repeat 50% 0;
+}
+
+.box-4-3 {
+ background: url('../images/bg-4-3.jpg') no-repeat center top fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+}
+.mobile-html .box-4-3 {
+ background: url('../images/bg-4-3.jpg') no-repeat 50% 0;
+}
+
+.box-5 {
+ background: url('../images/bg-5.jpg') no-repeat center center fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+}
+.mobile-html .box-5 {
+ background: url('../images/bg-5.jpg') no-repeat 50%;
+}
+.bg-1 {
+ max-width: 100%;
+ position: absolute;
+}
+.box-1 .container, .box-1 .container .posit_ {
+ position: relative;
+ height: 100%;
+}
+.positions {
+ top: 50%;
+ /*left:0;*/
+}
+
+#navi_circle {
+ position: fixed;
+ top: 20px;
+ right: 0;
+ width: 37px;
+ padding-top: 32px;
+ overflow: hidden;
+ opacity: 0;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
+ transition: 0.4s;
+ z-index: 9;
+}
+#navi_circle:after {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ content: '';
+ z-index: 1;
+ top: 0;
+ left: 0;
+ border-right: 37px solid #3b4c54;
+ border-top: 12px solid transparent;
+ border-bottom: 12px solid transparent;
+}
+#navi_circle li {
+ width: 100%;
+ height: 11px;
+ list-style: none;
+ margin-top: 17px;
+ position: relative;
+ z-index: 2;
+}
+#navi_circle li:before {
+ width: 11px;
+ height: 11px;
+ background: #fff;
+ cursor: pointer;
+ content: '';
+ margin: 0 auto;
+ border-radius: 100%;
+ display: block;
+}
+#navi_circle li:first-child {margin-top:0 }
+#navi_circle li.active:before {background: #00aeff}
+.circle-next {
+ width: 57px;
+ height: 66px;
+ position: absolute;
+ bottom: 50px;
+ left: 50%;
+ margin-left: -29px;
+ cursor: pointer;
+
+}
+.circle-next:hover {
+ animation: animation1 1800ms ease-in-out both;
+ animation-iteration-count: 1;
+ animation-direction: alternate;
+}
+.circle-next div {
+ background: url("../images/icons/first-arrow.png") 50% 50% no-repeat;
+ z-index: 3;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+}
+
+.menu_wrapper {
+ position: fixed;
+ width: 100%;
+ z-index: 9999;
+}
+.menu_wrapper.hide_menu {
+ background: none;
+}
+ul#menu_nav {
+ float: right;
+ margin-top: 54px;
+ position: relative;
+ z-index: 3;
+ box-shadow: 0 0 12px 0 rgba(0,0,0, 0.25);
+}
+ul#menu_nav li {
+ float: left;
+ list-style: none;
+ margin-left: 35px;
+}
+ul#menu_nav li a {
+ text-decoration: none;
+ font-size: 12px;
+ text-transform: uppercase;
+ color: #fff;
+}
+
+.hide_menu ul#menu_nav {
+ display: none;
+}
+.hide_menu.open-menu ul#menu_nav {
+ display: block;
+ width: 205px;
+ float: right;
+ border-radius: 4px;
+ overflow: hidden;
+ background: #fff;
+ padding: 9px 0 10px 0;
+}
+
+.menu-line {
+ width: 23px;
+ height: 14px;
+ position: relative;
+ float: right;
+ margin-top: 54px;
+ display: none;
+}
+.hide_menu .menu-line {display: block}
+.open-menu .menu-line {display: none;}
+.menu-line:before {
+ position: absolute;
+ content: '';
+ width: 100%;
+ height: 100%;
+ background: url("../images/icons/menu-se.png") no-repeat;
+ top: 0;
+ left: 0;
+ cursor: pointer;
+}
+.menu-line.black:before {
+ background: url("../images/icons/menu-se2.png") no-repeat;
+}
+.hide_menu ul#menu_nav li {display: none;}
+.hide_menu.open-menu ul#menu_nav li {display: block;}
+.hide_menu.open-menu ul#menu_nav li {
+ margin-left: 0;
+
+ padding-left: 15px;
+ height: 30px;
+ line-height: 30px;
+ width: 100%;
+}
+.hide_menu.open-menu ul#menu_nav li a {color: inherit}
+.hide_menu.open-menu ul#menu_nav li a:hover {text-decoration: underline}
+.hide_menu.open-menu ul#menu_nav li.active a:hover {text-decoration: none;cursor: default;}
+
+
+.open-menu ul#menu_nav li {
+ width: 100px;
+}
+
+
+
+.open-menu ul#menu_nav:before {display: none;}
+
+.hide_menu.open-menu ul#menu_nav li.active a {color: #00aeff}
+.logo {
+ margin-top: 21px;
+ width: 195px;
+ height: 57px;
+}
+
+
+
+
+
+.container-wrapper {
+ margin-top: 0;
+ width: 100%;
+ float: left;
+ padding-top: 97px;
+}
+
+.style {
+ width: 100%;
+ float: left;
+}
+.title-bl {
+ text-align: center;
+ text-transform: uppercase;
+ font-size: 40px;
+ font-weight: 700;
+}
+.title-bl.white {color: #fff}
+
+
+
+ul.list-bx5 {
+ margin-top: 75px;
+}
+
+ul.list-bx5 li {
+ height: 74px;
+ list-style: none;
+ float: left;
+ position: relative;
+}
+.list-bx5 li:hover {
+ animation: animation1 1800ms ease-in-out both;
+ animation-iteration-count: 1;
+ animation-direction: alternate;
+}
+ul.list-bx5 li div {
+ background: #fff;
+ border-radius: 4px;
+ text-align: center;
+ width: 100%;
+ position: relative;
+ height: 100%;
+}
+
+ul.list-bx5 li div img {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+}
+
+.studio-copy-wr {
+ height: 80px;
+ background: #3b4c54;
+ width: 100%;
+ float: left;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+}
+.aw-left, .aw-right {
+ float: left;
+ height: 80px;
+ width: 100%;
+}
+
+.aw-left div {
+ display: table-cell;
+ height: 80px;
+ vertical-align: middle;
+ color: #fff;
+ font-size: 13px;
+}
+.aw-right div {
+ text-align: right;
+ line-height: 80px;
+ padding-right: 36px;
+}
+.aw-right div a {
+ font-size: 13px;
+ position: relative;
+ color: #7a7575;
+}
+.aw-right div a:before {
+ width: 24px;
+ height: 23px;
+ position: absolute;
+ content: '';
+ top: 50%;
+ margin-top: -12px;
+ right: -35px;
+ background: url("../images/artweb-logo.png") no-repeat;
+}
+.box-5 {overflow: hidden;}
+/*.maps-contacts-wr {*/
+ /*height: 732px;*/
+ /*background: url("../images/map.jpg") 50% -100px no-repeat;*/
+ /*position: absolute;*/
+ /*left: 0;*/
+ /*top: 286px;*/
+/*}*/
+.maps-contacts-wr {
+ height: 732px;
+ background: 0 0!important;
+ position: relative!important;
+ margin-top: 40px;
+ top: 0!important;
+}
+.contacts-wr {
+ width: 260px;
+ /* height: 457px; */
+ position: absolute;
+ right: 15px;
+ top: 328px;
+ margin-top: -229px;
+ background: #fff;
+ border-radius: 4px;
+ overflow: hidden;
+ float: left;
+}
+
+.contacts-txt-wr {
+ width: 100%;
+ float: left;
+ padding-left: 30px;
+ /*margin-top: 43px;*/
+}
+.contacts-img {
+ margin-top: 50px;
+ float: left;
+ position: relative;
+ z-index: 2;
+}
+.contacts-tile {
+ float: left;
+ width: 100%;
+ position: relative;
+ margin-bottom: 25px;
+}
+.contacts-tile:before, .contacts-tile {background: #00aeff;}
+.contacts-tile:before {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: -30px;
+
+}
+.contacts-tile p {
+ font-size: 24px;
+ line-height: 68px;
+ height: 68px;
+ text-transform: uppercase;
+ position: relative;
+ float: left;
+ color: #fff;
+}
+
+.cont-phones, .cont-str, .cont-mail {
+ width: 100%;
+ float: left;
+}
+.cont-phones span {font-weight: 700}
+.cont-str {
+ margin-top: 16px;
+}
+.cont-mail a {
+ text-decoration: none;
+ color: #27aae1;
+}
+
+
+
+
+
+
+/*new*/
+.slogan_wrapper {
+ margin-top: 280px;
+}
+
+
+
+.slogan_ {
+ font-size: 36px;
+ font-weight: 700;
+ color: #00aeff;
+ text-align: right;
+ line-height: 38px;
+}
+.slogan_ span {
+ color: #ffc000;
+ border-bottom: 1px solid #ffc000;
+ font-weight: normal;
+ font-family: Georgia;
+}
+
+
+.button-_first-wr {margin-top: 30px;position: relative;z-index: 9;}
+.button-_first-wr .btn_test_drive, .btn_by_link {
+ float: right;
+}
+.btn_by_link {margin-top: 15px;}
+
+.content-margin {margin-top: 55px;}
+
+
+.button-_four-wr {
+ margin-top: 45px;
+}
+
+.button-_four-wr .btn_test_drive {float: right !important;}
+.box-2 .button-_four-wr .btn_test_drive {float: left !important;}
+
+.special-stock_title {
+ text-align: center;
+ color: #fff;
+ font-size: 24px;
+ line-height: 29px;
+}
+
+.special-stock_title span {
+ font-weight: 700;
+}
+.stock-txt-bl-wr {
+ position: relative;
+ width: 100%;
+ margin-top: 18px;
+}
+.stock-txt-bl-wr:before {
+ content: '';
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top:10px;
+ right: -10px;
+ background: rgba(255,255,255,0.5);
+ z-index: 1;
+}
+.stock-txt-bl {
+ width: 100%;
+ position: relative;
+ z-index: 2;
+ background: #fff;
+ padding: 30px 0 0 30px;
+ height: 530px;
+ overflow: hidden;
+}
+.title-st {
+ text-align: center;
+ font-size: 15px;
+ color: #373232;
+ font-weight: 700;
+}
+.st-desc {
+
+}
+.st-desc p {
+ margin: 23px 0 0 0;
+ font-size: 15px;
+ font-style: italic;
+ line-height: 22px;
+}
+/*.st-desc p:first-child {*/
+ /*margin-top: 23px;*/
+/*}*/
+.st-desc-2 {
+ background: #f1f8fc;
+ margin-top: 20px;
+ padding: 28px 24px 32px 24px;
+}
+.desk-bg-title {
+ text-align: center;
+ font-weight: 700;
+ font-size: 15px;
+ line-height: 18px;
+}
+.button-test-wr{
+ margin-top: 21px;
+ height: 48px;
+}
+.button-fb {
+ float: right;
+}
+
+.button-fb a {
+ display: block;
+ float: left;
+ height: 48px;
+ text-decoration: underline;
+ color: #00aeff;
+ min-width: 182px;
+}
+.button-fb a:hover {text-decoration: none;}
+.button-fb a img {
+ float: left;
+ margin-right: 15px;
+}
+.button-fb a span {
+ color: inherit;
+ font-size: 15px;
+ font-weight: 700;
+ display: table-cell;
+ vertical-align: middle;
+ height: 48px;
+ line-height: 16px;
+}
+.desc-2-share {
+ text-align: center;
+ font-size: 15px;
+ color: #5c5c5c;
+ margin-top: 21px;
+ line-height: 17px;
+}
+.title-st-2 {
+ margin-top: 26px;
+}
+
+.st-days-wr {
+ margin-top: 12px;
+}
+.st-days-wr div {
+ height: 30px;
+ float: left;
+ width: 50%;
+ padding-left: 19px;
+ border-left: 1px solid #b7b7b7;
+ text-align: left;
+}
+.st-days-wr div:first-child {
+ padding-left: 0;
+ padding-right: 19px;
+ border-left: 0;
+ text-align: right;
+}
+.st-days-wr div span, .st-days-wr div a {
+ font-size: 15px;
+ color: #00aeff;
+ font-weight: 700;
+ line-height: 30px;
+}
+.st-days-wr div a {text-decoration: underline;}
+
+.box-4-3 .mCustomScrollBox, .box-4-2 .mCustomScrollBox {
+ padding-bottom: 50px;
+ padding-right: 30px;
+}
+.box-4-3 .mCSB_inside > .mCSB_container, .box-4-2 .mCSB_inside > .mCSB_container {
+ margin-right: 0;
+}
+.box-4-3 .mCSB_scrollTools, .box-4-2 .mCSB_scrollTools {
+ right: 7px;
+}
+.box-4-3 .mCSB_dragger_bar:before, .box-4-2 .mCSB_dragger_bar:before {
+ display: none;
+}
+.box-4-3 .mCSB_draggerContainer, .box-4-2 .mCSB_draggerContainer {
+ padding-bottom: 30px;
+}
+.box-4-3 .mCSB_draggerRail, .box-4-2 .mCSB_draggerRail {
+ border-top: 0 !important;
+ width: 2px !important;
+}
+
+
+
+.stock-txt-bl:before {
+ position: absolute;
+ width: 100%;
+ height: 50px;
+ bottom: 0;
+ content: '';
+ z-index: 3;
+ background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%);
+ background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%);
+ background: linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 );
+ left: -30px;
+ /*background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 50%, rgba(255,255,255,1) 99%);*/
+ /*background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 50%,rgba(255,255,255,1) 99%);*/
+ /*background: linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 50%,rgba(255,255,255,1) 99%);*/
+ /*filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 );*/
+
+}
+
+.title-st-new {
+ font-weight: 700;
+ font-size: 18px;
+ text-transform: uppercase;
+ border-bottom: 1px solid #b7b7b7;
+ padding-bottom: 15px;
+ color: #333;
+}
+.price-name-wr {
+ width: 102px;
+ float: left;
+}
+.price-name {
+ height: 30px;
+ cursor: default;
+}
+.price-name .price-name-title {
+ float: left;
+ margin-right: 5px;
+ font-size: 15px;
+ line-height: 30px;
+ color: #333;
+}
+.price-name .price-name-border {
+ overflow: hidden;
+}
+.price-name-border span {
+ width: 100%;
+ height: 21px;
+ border-bottom: 2px dotted #b7b7b7;
+ display: block;
+}
+.st-first-list {position: relative}
+.st-first-list ul, .st-second-list ul {
+ list-style: none;
+ width: 165px;
+ float: left;
+ margin-top: 11px;
+ margin-bottom: 42px;
+}
+.st-first-list ul li {
+ width: 100%;
+ float: left;
+}
+.price-cost {
+ font-size: 15px;
+ color: #00aeff;
+ line-height: 30px;
+ margin-left: 5px;
+ float: left;
+}
+.st-deposit {
+ position: absolute;
+ width: 190px;
+ bottom: 48px;
+ height: 43px;
+ border-left: 18px solid transparent;
+ border-bottom: 43px solid #00aeff;
+ right: 0;
+}
+
+.st-deposit p {
+ color: #fff;
+ float: left;
+ font-size: 24px;
+ font-weight: 700;
+ line-height: 43px;
+ margin-bottom: 0;
+}
+.st-deposit p span {
+ font-weight: normal;
+ font-size: 13px;
+ width: 80px;
+ display: table-cell;
+ line-height: 15px;
+ height: 43px;
+ vertical-align: middle;
+ padding-left: 10px;
+}
+.st-second-list ul {
+ width: 100%;
+ float: left;
+ list-style-type: disc;
+ padding-left: 17px;
+}
+.st-second-list ul li {width: 100%;float: left;color: #00aeff}
+.st-second-list ul li span {font-size: 15px;color: #333;}
+
+.st-center {
+ text-align: center;
+}
+.st-center img {
+ max-width: 100%;
+}
+.st-center p {
+ margin: 0 0 0 0;
+ color: #333;
+ font-size: 15px;
+}
+.txt-rent_ {
+ padding-left: 15px;
+ position: relative;
+ margin-top: 13px;
+}
+.txt-rent_ p {
+ width: 100%;
+ float: left;
+ font-size: 15px;
+ color: #fff;
+ margin: 0 0 0 0;
+}
+.txt-rent_ p span {
+ color: #fff200;
+}
+.b_left {
+ position: absolute;
+ height:100%;
+ width: 3px;
+ top: 0;
+ left: 0;
+ padding: 5px 0 2px 0;
+}
+.b_left div {
+ width: 100%;
+ height: 100%;
+ background: #00aeff;
+}
+.rent_tb {
+ width: 100%;
+ float: left;
+ border: 0;
+ margin-top: 18px;
+}
+.rent_tb td {
+ border: 0 !important;
+}
+.rent_tb td:first-child {
+
+}
+.rent_tb td img {
+ max-width: 100%;
+}
+.rent-tb-pos {
+ position: relative;
+ padding-left: 17px;
+ font-size: 18px;
+ color: #fff;
+ font-weight: 700;
+}
+.rent-tb-pos .border_rent {border-bottom: 1px solid #fff; text-transform: uppercase;}
+.rent-tb-pos .color_rent {
+ color: #fff200;
+}
+.rent-tb-pos small {font-size: 15px;}
+
+
+
+ /**********************/
+/*3*/
+.in_stock-wr {
+ background: #fff;
+ border-radius: 4px;
+ padding: 13px 50px 12px 50px;
+ position: relative;
+}
+.models_select ul {width: 100%;float: left; height: 58px;border-bottom: 1px solid #b7b7b7; margin-bottom: 0}
+.models_select ul li {
+ list-style: none;
+ float: left;
+ padding: 0 20px;
+}
+.models_select ul li:first-child {padding-left: 0;}
+.models_select ul li a {
+ text-decoration: none;
+ font-size: 18px;
+ color: #00aeff;
+ font-weight: 700;
+ line-height: 57px;
+ text-transform: uppercase;
+ width: 100%;
+ text-align: center;
+ display: block;
+ position: relative;
+}
+.models_select ul li.active a {
+ color: #363636;
+ cursor: default;
+}
+.models_select ul li.active a:before {
+ width: 100%;
+ height: 2px;
+ background: #00aeff;
+ bottom: 0;
+ left: 0;
+ position: absolute;
+ content: '';
+}
+.years_select {margin-top: 13px;}
+.years_select p {
+ float: left;
+ font-weight: 700;
+ line-height: 26px;
+ color: #363636;
+ font-size: 13px;
+}
+.years_select ul {
+ float: left;
+}
+.years_select ul li {
+ list-style: none;
+ float: left;
+ margin: 0 10px;
+}
+.years_select ul li:first-child {margin-left: 23px;}
+.years_select ul li a {
+ height: 26px;
+ line-height: 26px;
+ display: block;
+ font-size: 16px;
+ color: #00aeff;
+ text-decoration: none;
+ font-weight: 600;
+ padding: 0 4px;
+}
+.years_select ul li.active a {color: #363636;border-bottom: 2px solid #00aeff;cursor: default;}
+
+.car-list {margin-top: 27px; position: relative;}
+
+.horizontal-images.content li {
+ margin: 0 0 0 62px;
+ float: left;
+ width: 213px;
+}
+.horizontal-images.content li:first-child {
+ margin-left: 0;
+}
+.car-list ul li div.img_ {width: 100%;float: left;}
+.car-list ul li div.img_ img {width: 100%;}
+.specifications {margin-top: 10px;}
+.specifications p {
+ font-size: 13px;
+ color: #333;
+ line-height: 17px;
+}
+.specifications p span {font-weight: 700;}
+.price {
+ font-size: 18px;
+ color: #00aeff;
+ text-align: center;
+ margin-top: 6px;
+}
+.buy_button {margin-top: 17px;margin-bottom: 30px;}
+.load_content {overflow: hidden}
+.load_content, .load_content div, .load_content:before, .load_content div:before {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+}
+.load_content:before {
+ background: #fff;
+ opacity: 0.9;
+}
+.load_content div:before {
+ background: url("../images/preload_min.gif") 50% 50% no-repeat;
+ margin-top: -20px;
+}
+.button-_second-wr {
+ position: absolute;
+ right: 0;
+ bottom: 150px;
+}
+/**/
+
+
+
+
+
+
+
+
+
+/*scrollbar*/
+.mCustomScrollbar{-ms-touch-action:none;touch-action:none}.mCustomScrollbar.mCS_no_scrollbar,.mCustomScrollbar.mCS_touch_action{-ms-touch-action:auto;touch-action:auto}.mCustomScrollBox{position:relative;overflow:hidden;height:100%;max-width:100%;outline:none;direction:ltr}.mCSB_container{overflow:hidden;width:auto;height:auto}.mCSB_inside > .mCSB_container{margin-right:30px}.mCSB_horizontal.mCSB_inside > .mCSB_container{margin-right:0;margin-bottom:30px}.mCSB_scrollTools{position:absolute;width:16px;height:auto;left:auto;top:0;right:0;bottom:0}.mCSB_scrollTools,.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight{-webkit-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;-moz-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;-o-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;transition:opacity .2s ease-in-out,background-color .2s ease-in-out}.mCSB_scrollTools{opacity:.75;filter:alpha(opacity=75);-ms-filter:alpha(opacity=75)}.mCSB_scrollTools.mCSB_scrollTools_horizontal{width:auto;height:24px;top:auto;right:0;bottom:0;left:0}.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight{background-image:url(../images/mCSB_buttons.png);background-repeat:no-repeat;opacity:.4;filter:alpha(opacity=40);-ms-filter:alpha(opacity=40)}.mCSB_scrollTools .mCSB_buttonLeft{background-position:0 -40px}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft,.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{display:block;position:absolute;width:20px;height:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft{left:0}.mCS-inset.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-2.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCSB_scrollTools .mCSB_draggerContainer{position:absolute;top:0;left:0;bottom:0;right:0;height:auto}.mCSB_scrollTools .mCSB_dragger{cursor:pointer;width:100%;height:30px;z-index:1}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger{width:30px;height:100%;left:0;top:-7px}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{position:relative;width:4px;height:100%;margin:0 auto;text-align:center;background:#00aeff}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:4px;margin:6px auto}.mCS-inset.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px;margin:3px 5px;position:absolute;height:auto;top:0;bottom:0;left:0;right:0}.mCS-inset.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{height:18px;margin:0 7px;position:absolute;width:auto;top:0;bottom:0;left:0;right:0}.mCSB_scrollTools .mCSB_draggerRail{width:2px;height:100%;margin:0 auto;background-color:#000;background-color:rgba(0,0,0,0.4);filter:alpha(opacity=40);-ms-filter:alpha(opacity=40)}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:2px;margin:7px 0}.mCS-inset.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{width:12px;background:#dfdfdf;border-top:1px solid #cecece}.mCS-inset.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:4px;margin:0 1px}.mCSB_scrollTools .mCSB_buttonRight{background-position:0 -56px}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft,.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{display:block;position:absolute;width:20px;height:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{right:0}.mCS-inset.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-2.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.snap-scrolling-example .content{height:auto;width:100%}.horizontal-images.content ul{margin:0;padding:0;list-style:none;overflow:hidden}.mCSB_buttonLeft,.mCSB_buttonRight{display:none!important}.mCSB_dragger_bar{border-bottom:1px solid #009ae2}.mCSB_dragger_bar:before{width:34px;height:10px;position:absolute;top:50%;left:50%;margin-left:-17px;margin-top:-5px;content:'';background:url(../images/icons/slider_sep.png) no-repeat}
+/***********/
+
+
+
+
+
+
+
+
+
+
+
+
+
+.btn_test_drive, .btn_buy, .btn_by_link, .btn-application, .btn_reserved {
+ width: 262px;
+ height: 44px;
+ line-height: 44px;
+ text-align: center;
+ display: block;
+ background: #fff200;
+ border-bottom: 2px solid #ffc000;
+ border-radius: 4px;
+ text-decoration: none;
+ font-size: 13px;
+ color: #363636;
+ font-weight: 700;
+ text-transform: uppercase;
+}
+.btn-application {
+ float: left;
+ margin-top: 3px;
+ width: 236px;
+}
+.btn_reserved {
+ float: right;
+ margin-top: 40px;
+}
+.btn_test_drive:hover, .btn_buy:hover, .btn_by_link:hover, .btn-application:hover, .btn_reserved:hover {
+ border-bottom: 2px solid #fff200;
+}
+.btn_test_drive:active, .btn_buy:active,.btn_by_link:active, .btn-application:active, .btn_reserved:active {
+ background: #ffc000;
+ border-bottom: 2px solid #ffc000;
+}
+.btn_buy {
+ width: 136px;
+ height: 44px;
+ margin: 0 auto;
+ font-weight: 700;
+}
+.img-screen-two, .img-screen-four {
+ width: 100%; margin-top: -19px;
+}
+
+
+/*modal*/
+#overlay {
+ z-index: 99997;
+ position: fixed;
+ background-color: #000;
+ opacity: .8;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ cursor: pointer;
+ display: none;
+}
+
+.modal_form {
+ width: 420px;
+ position: fixed;
+ top: 2%;
+ left: 50%;
+ margin-left: -210px;
+ display: none;
+ opacity: 0;
+ z-index: 99998;
+ background: #fff;
+ border-radius: 4px;
+}
+#success_form {
+ width: 420px;
+ height: 152px;
+ border-radius: 4px;
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ margin-left: -210px;
+ margin-top: -76px;
+ display: none;
+ z-index: 99999;
+ background: #fff;
+}
+.modal_form #modal_close, #success_form #modal_close {
+ width: 16px;
+ height: 16px;
+ position: absolute;
+ top: -32px;
+ right: -32px;
+ cursor: pointer;
+ display: block;
+ background: url(../images/close-form.png) no-repeat;
+}
+.txt-success {
+ width: 420px;
+ height: 152px;
+ display: table-cell;
+ vertical-align: middle;
+ text-align: center;
+ font-size: 16px;
+ color: #363636;
+}
+
+
+.model-name {
+ width: 100%;
+ float: left;
+ text-align: center;
+ height: 95px;
+ line-height: 100px;
+ color: #363636;
+ font-size: 18px;
+ font-weight: 700;
+ text-transform: uppercase;
+}
+.modal_form form {
+ width: 100%;
+ float: left;
+ padding: 0 79px 50px 79px;
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+.modal_form .input-blocks {
+ width: 100%;
+ float: left;
+ margin-top: 9px;
+}
+.modal_form .input-blocks:first-child {
+ margin-top: 0;
+}
+
+.input-blocks label {
+ font-size: 13px;
+ color: #363636!important;
+}
+.custom-input-2 {
+ width: 100%;
+ height: 40px;
+ border: 1px solid #cfcfcf;
+ box-sizing: border-box;
+ color: #363636;
+ font-size: 13px;
+ line-height: 40px;
+ padding-left: 8px;
+ margin-top: 6px;
+ box-shadow: 1px 2px 2px 0 rgba(215,215,215,0.75) inset;
+ transition: .1s;
+ outline: none!important;
+ border-radius: 4px;
+}
+.custom-input-2:focus {box-shadow: none;transition: 0.2s}
+.required label {
+ position: relative;
+}
+.has-error label {
+ color: #dc0a05!important;
+}
+.required label:before {
+ display: block;
+ content: "*";
+ color: #dc0a05;
+ position: absolute;
+ top: 0;
+ right: -7px;
+}
+.has-error input {
+ border: 1px solid #dc0a05!important;
+ box-shadow: none!important;
+}
+.button-wrapper {
+ text-align: center;
+ margin-top: 40px!important;
+}
+
+.modal_form form button {
+ width: 165px;
+ height: 44px;
+ line-height: 47px;
+ padding: 0;
+ cursor: pointer;
+ border-top: 0;
+ border-left: 0;
+ border-right: 0;
+ border-bottom: 2px solid #ffc000;
+ background: #fff200;
+ outline: none!important;
+ border-radius: 4px;
+ font-size: 13px;
+ font-weight: 700;
+ color: #333;
+ text-transform: uppercase;
+}
+.modal_form form button:hover {
+ border-bottom: 2px solid #fff200;
+}
+.modal_form form button:active {
+ border-bottom: 2px solid #ffc000;
+ background: #ffc000;
+}
+
+/**/
+.input-blocks .form-control{
+ /*height: 40px;*/
+ /*border: 1px solid #cfcfcf;*/
+ /*box-shadow: 1px 2px 2px 0 rgba(215,215,215,0.75) inset;*/
+ /*transition: .1s;*/
+ /*outline: none!important;*/
+ /*width: 100%;*/
+ /*padding-left: 10px;*/
+ /*box-sizing: border-box;*/
+ /*margin-top: 5px;*/
+}
+.input-blocks .control-label{
+ font-weight:300!important;
+ color:black;
+}
+.form-group, .help-block{
+ margin-bottom: 0;
+}
+.help-block{
+ padding-bottom: 9px;
+}
+.has-error{
+ box-shadow: none;
+}
+
+.has-success label {
+ font-size: 13px!important;
+ color: #363636!important;
+}
+.has-success input {
+ border: 1px solid #cfcfcf!important;
+ box-shadow: 1px 2px 2px 0 rgba(215,215,215,0.75) inset!important;
+}
+
+/***2.0****/
+.list_why-wr {margin-top: -18px;}
+.list_why {margin-top: 18px;}
+.box-2 .list_why-wr {margin-top: -5px;}
+.box-2 .list_why {margin-top: 5px;}
+.why-img-wr, .why-txt-wr {
+ width: 100%;
+ float: left;
+}
+.why-img-wr {
+
+ height: 110px;
+ text-align: center;
+}
+.why-img-wr img {
+ width: 110px;
+ height: 110px;
+}
+.box-2 .why-img-wr {
+ height: 130px;
+}
+.box-2 .why-img-wr img {
+ width: 130px;
+ height: 130px;
+}
+.why-txt-wr {
+ text-align: center;
+ margin-top: 12px;
+ height: 51px;
+ overflow: hidden;
+}
+.box-2 .why-txt-wr {height: 55px}
+.why-txt-wr p {
+ font-size: 14px;
+ color: #000000;
+ margin: 0;
+ font-weight: 700;
+ line-height: 17px;
+}
+.why-txt-wr p span {
+ color: #fff;
+ font-size: 15px;
+}
+.box-2 .why-txt-wr p span {
+ font-size: inherit;
+}
+.box-2 .why-txt-wr p span i {
+ font-style: normal;
+ font-size: 24px;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/**********/
+/*data-picker*/
+#ui-datepicker-div{
+ background-color: white;
+ box-shadow: inset 0px 0px 0px 1px #d7d7d7;
+ border-radius: 5px;
+ margin-top: 1px;
+ width: 320px;
+ right: 0px;
+ margin-left: -40px;
+ display: none;
+}
+
+.ui-datepicker-header.ui-widget-header.ui-helper-clearfix.ui-corner-all{
+ text-align: center;
+ width: 280px;
+ position: relative;
+ margin: 0 auto;
+ height: 29px;
+ overflow: hidden;
+ margin-top: 26px;
+ margin-bottom: 25px;
+ padding-left:1px;
+}
+.ui-datepicker-calendar tr, .ui-datepicker-calendar td{margin:0;padding:0;}
+table.ui-datepicker-calendar th{
+ color:black;
+ text-transform:uppercase;
+ font-size:12px;
+}
+table.ui-datepicker-calendar{
+ width: 280px;
+ text-align: center;
+ margin: 0 auto;
+ font-family:Arial;
+ margin-bottom: 23px;
+}
+.ui-datepicker-calendar a{
+ font-size: 12px;
+ color: black;
+ text-decoration: none;
+ width: 20px;
+ height: 20px;
+ border-radius: 50%;
+ display: inherit;
+ line-height: 20px;
+ left: 9px;
+ position: relative;
+}
+.ui-datepicker-calendar .ui-datepicker-today a{
+ border: 1px solid #fed22f;
+}
+
+.ui-datepicker-unselectable.ui-state-disabled span{
+ color: #b2dbeb;
+ font-size: 12px;
+ text-decoration: none;
+ width: 20px;
+ height: 20px;
+ border-radius: 50%;
+ display: inherit;
+ line-height: 20px;
+ left: 9px;
+ position: relative;
+}
+.ui-datepicker-next.ui-corner-all{
+ position: absolute;
+ width: 20px;
+ height: 20px;
+ background-image: url('../images/calendar_arrows.png');
+ overflow: hidden;
+ text-indent: 100%;
+ background-repeat: no-repeat;
+ top: 5px;
+ background-position: 0px -36px;
+ cursor: pointer;
+ right:1px;
+}
+.ui-datepicker-prev.ui-corner-all{
+ position: absolute;
+ width: 20px;
+ height: 20px;
+ background-image: url('../images/calendar_arrows.png');
+ overflow: hidden;
+ text-indent: 100%;
+ background-repeat: no-repeat;
+ top: 5px;
+ background-position: 0px -66px;
+ cursor: pointer;
+ left:2px;
+}
+.ui-datepicker-prev.ui-corner-all.ui-state-disabled{
+ background-position: 0px -6px;
+ cursor:default;
+}
+.ui-datepicker-title select{
+ border-radius: 8px;
+ margin: 5px;
+ font-size: 14px;
+ padding-top: 2px;
+ padding-bottom: 4px;
+ padding-left: 12px;
+ padding-right: 17px;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ outline: none;
+ background-image: url('../images/arrowselect.png');
+ background-repeat: no-repeat;
+ background-position: 84px 8px;
+ max-width:104px;
+ border-color:#bababa;
+}
+.ui-datepicker-year{
+ width:102px;
+ padding-left: 23px!important;
+}
+.ui-datepicker-title{
+ margin-top:-4px;
+}
+#ui-datepicker-div:after{
+ content: '';
+ width: 302px;
+ height: 1px;
+ background-color: #cccccc;
+ position: absolute;
+ left: 8px;
+ top: 68px;
+}
+.ui-datepicker-calendar td{height:26px;}
+
+
+.date_first, .date_second {
+ float: left;
+ margin-top: 6px;
+}
+.date_first input, .date_second input {
+ width: 80px;
+ float: left;
+ margin-top: 0;
+}
+.date_first label, .date_second label {
+ float: left;
+ margin-right: 12px;
+ line-height: 40px;
+}
+.date_second label {
+ padding-left: 10px;
+}
+.date_first {margin-left: 3px}
+.date_second {}
+.datepicker_title {
+ font-size: 13px;
+ color: #363636!important;
+}
+/********language********/
+#language {
+ position: absolute;
+ right: 68px;
+ top: 51px;
+ width: 75px;
+ padding: 0 10px;
+}
+#language span, #language div a {
+ display: block;
+ width: 100%;
+ float: left;
+ height: 20px;
+ border-radius: 10px;
+ color: #fff;
+ font-size: 10px;
+ font-weight: 700;
+ text-transform: uppercase;
+ background: #666666;
+ padding-left: 10px;
+ line-height: 20px;
+ position: relative;
+ cursor: pointer;
+}
+#language span:before {
+ position: absolute;
+ right: 8px;
+ top: 50%;
+ margin-top: -2px;
+ content: '';
+ width: 8px;
+ height: 5px;
+ background: url("../images/ico-3/img-3.png") no-repeat;
+}
+#language div a {
+ display: none;
+ text-decoration: none;
+}
+#language:hover div a {
+ display: block;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+
+#language:hover span:before {
+ transform: rotate(180deg);
+ -webkit-transform: rotate(180deg);
+}
+#language:hover span {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+/************************/
+#map {
+ width: 100%!important;
+ height: 100%!important;
+ padding-bottom: 80px;
+}
+.questions-wr {
+ position: fixed;
+ bottom: 20px;
+ left: 0;
+ width: 100%;
+ z-index: 1;
+}
+.btn_questions {
+ z-index: 999999;
+ float: left;
+ height: 34px;
+ background: rgba(0,0,0,0.6);
+ border-bottom-right-radius: 34px;
+ border-top-right-radius: 34px;
+ padding:3px 0 0 34px;
+ color: #fff !important;
+ font-size: 10px;
+ text-transform: uppercase;
+ line-height: 14px;
+ text-decoration: none;
+ position: fixed;
+ top: 50%;
+ margin-top: -17px;
+ left: 0;
+ width: 34px;
+ overflow: hidden;
+
+}
+.btn_questions:hover {width: 166px;padding-left: 40px; transition: 0.2s}
+.btn_questions:before {
+ position: absolute;
+ left: 5px;
+ top: 50%;
+ margin-top: -12px;
+ width: 24px;
+ height: 24px;
+ background: url(../images/ico-3/img-5.png) no-repeat;
+ content: '';
+}
+.input-blocks textarea {
+ width: 100%;
+ height: 40px;
+ border: 1px solid #cfcfcf!important;
+ box-sizing: border-box;
+ color: #363636;
+ font-size: 13px;
+ line-height: 40px;
+ padding-left: 8px;
+ margin-top: 6px;
+ box-shadow: 1px 2px 2px 0 rgba(215,215,215,0.75) inset;
+ transition: .1s;
+ outline: none!important;
+ border-radius: 4px;
+ resize: none!important;
+}
+/********animations********/
+@-webkit-keyframes animation1 {
+ 0% { -webkit-transform: matrix3d(0.8, 0, 0, 0, 0, 0.8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 3.4% { -webkit-transform: matrix3d(0.658, 0, 0, 0, 0, 0.703, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 4.7% { -webkit-transform: matrix3d(0.725, 0, 0, 0, 0, 0.8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 6.81% { -webkit-transform: matrix3d(0.83, 0, 0, 0, 0, 0.946, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 9.41% { -webkit-transform: matrix3d(0.942, 0, 0, 0, 0, 1.084, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 10.21% { -webkit-transform: matrix3d(0.971, 0, 0, 0, 0, 1.113, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 13.61% { -webkit-transform: matrix3d(1.062, 0, 0, 0, 0, 1.166, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 14.11% { -webkit-transform: matrix3d(1.07, 0, 0, 0, 0, 1.165, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 17.52% { -webkit-transform: matrix3d(1.104, 0, 0, 0, 0, 1.12, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 18.72% { -webkit-transform: matrix3d(1.106, 0, 0, 0, 0, 1.094, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 21.32% { -webkit-transform: matrix3d(1.098, 0, 0, 0, 0, 1.035, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 24.32% { -webkit-transform: matrix3d(1.075, 0, 0, 0, 0, 0.98, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 25.23% { -webkit-transform: matrix3d(1.067, 0, 0, 0, 0, 0.969, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 29.03% { -webkit-transform: matrix3d(1.031, 0, 0, 0, 0, 0.948, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 29.93% { -webkit-transform: matrix3d(1.024, 0, 0, 0, 0, 0.949, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 35.54% { -webkit-transform: matrix3d(0.99, 0, 0, 0, 0, 0.981, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 36.74% { -webkit-transform: matrix3d(0.986, 0, 0, 0, 0, 0.989, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 41.04% { -webkit-transform: matrix3d(0.98, 0, 0, 0, 0, 1.011, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 44.44% { -webkit-transform: matrix3d(0.983, 0, 0, 0, 0, 1.016, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 52.15% { -webkit-transform: matrix3d(0.996, 0, 0, 0, 0, 1.003, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 59.86% { -webkit-transform: matrix3d(1.003, 0, 0, 0, 0, 0.995, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 63.26% { -webkit-transform: matrix3d(1.004, 0, 0, 0, 0, 0.996, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 75.28% { -webkit-transform: matrix3d(1.001, 0, 0, 0, 0, 1.002, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 85.49% { -webkit-transform: matrix3d(0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 90.69% { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 100% { transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+}
+@keyframes animation1 {
+ 0% { transform: matrix3d(0.8, 0, 0, 0, 0, 0.8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 3.4% { transform: matrix3d(0.658, 0, 0, 0, 0, 0.703, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 4.7% { transform: matrix3d(0.725, 0, 0, 0, 0, 0.8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 6.81% { transform: matrix3d(0.83, 0, 0, 0, 0, 0.946, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 9.41% { transform: matrix3d(0.942, 0, 0, 0, 0, 1.084, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 10.21% { transform: matrix3d(0.971, 0, 0, 0, 0, 1.113, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 13.61% { transform: matrix3d(1.062, 0, 0, 0, 0, 1.166, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 14.11% { transform: matrix3d(1.07, 0, 0, 0, 0, 1.165, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 17.52% { transform: matrix3d(1.104, 0, 0, 0, 0, 1.12, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 18.72% { transform: matrix3d(1.106, 0, 0, 0, 0, 1.094, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 21.32% { transform: matrix3d(1.098, 0, 0, 0, 0, 1.035, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 24.32% { transform: matrix3d(1.075, 0, 0, 0, 0, 0.98, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 25.23% { transform: matrix3d(1.067, 0, 0, 0, 0, 0.969, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 29.03% { transform: matrix3d(1.031, 0, 0, 0, 0, 0.948, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 29.93% { transform: matrix3d(1.024, 0, 0, 0, 0, 0.949, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 35.54% { transform: matrix3d(0.99, 0, 0, 0, 0, 0.981, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 36.74% { transform: matrix3d(0.986, 0, 0, 0, 0, 0.989, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 41.04% { transform: matrix3d(0.98, 0, 0, 0, 0, 1.011, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 44.44% { transform: matrix3d(0.983, 0, 0, 0, 0, 1.016, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 52.15% { transform: matrix3d(0.996, 0, 0, 0, 0, 1.003, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 59.86% { transform: matrix3d(1.003, 0, 0, 0, 0, 0.995, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 63.26% { transform: matrix3d(1.004, 0, 0, 0, 0, 0.996, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 75.28% { transform: matrix3d(1.001, 0, 0, 0, 0, 1.002, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 85.49% { transform: matrix3d(0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 90.69% { transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+ 100% { transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
+}
+/***bootstrap grid***/
+
+
+.container
+{
+ min-width: 779px;
+}
+
+@media (max-width: 1200px) {
+ .box-4:before, .box-2:before {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ background: rgba(255,255,255,0.6);
+ }
+ .box-4 .title-bl, .box-2 .title-bl {
+ color: #006797;
+ position: relative;
+ }
+ .why-txt-wr p span{
+ color: #006797;
+ }
+ /*1*/
+ .slogan_ {
+ font-size: 29px;
+ margin-top: 18px;
+ line-height: 37px;
+ }
+ /*3*/
+ .horizontal-images.content li {
+ margin: 0 0 0 15px;
+ width: 198px;
+ }
+ /**/
+ ul.list-bx2 li {
+ margin-top: 70px;
+ }
+
+ .bg-3-wr img {
+ -webkit-transform: scale(0.72);
+ transform: scale(0.72);
+ }
+ ul.list-bx5 li div img {
+ -webkit-transform: scale(0.72);
+ transform: scale(0.72);
+ }
+ a.linkBy {
+ width: 135px;
+ }
+ ul#menu_nav li a {font-size: 10px;}
+
+ .txt-bx3-wr .wr {padding-left: 30px;}
+
+
+
+ .title-bl {font-size: 26px;}
+}
+
+@media (max-width: 992px) {
+ /*1*/
+ .slogan_ {
+ font-size: 23px;
+ margin-top: 24px;
+ line-height: 30px;
+ }
+ .horizontal-images.content li {
+ margin: 0 0 0 23px;
+ width: 201px;
+ }
+
+ /**/
+}
+
+@media (max-width: 768px) {
+
+}
+@media (min-width: 1200px) and (max-height: 900px) {
+ .box-2 .why-img-wr {
+ height: 120px;
+ }
+ .box-2 .why-img-wr img {
+ width: 120px;
+ height: 120px;
+ }
+}
+@media (min-width: 1200px) and (max-height: 870px) {
+ .why-img-wr, .box-2 .why-img-wr {
+ height: 90px;
+ }
+ .why-img-wr img, .box-2 .why-img-wr img {
+ width: 90px;
+ height: 90px;
+ }
+}
+
+@media (min-width: 1200px) and (max-height: 720px) {
+ .why-img-wr, .box-2 .why-img-wr {
+ height: 73px;
+ }
+ .why-img-wr img, .box-2 .why-img-wr img {
+ width: 73px;
+ height: 73px;
+ }
+}
+
+@media (min-width: 1200px) and (max-height: 650px) {
+ .why-img-wr {
+ height: 55px;
+ }
+ .why-img-wr img {
+ width: 55px;
+ height: 55px;
+ }
+ .box-2 .why-img-wr {
+ height: 60px;
+ }
+ .box-2 .why-img-wr img {
+ width: 60px;
+ height: 60px;
+ }
+}
+@media (min-width: 1200px) and (max-height: 550px) {
+ .why-img-wr {
+ height: 45px;
+ }
+ .why-img-wr img {
+ width: 45px;
+ height: 45px;
+ }
+}
+@media (min-width: 1200px) and (max-height: 510px) {
+ .button-_four-wr {margin-top: 12px;}
+ .box-2 .why-img-wr {
+ height: 45px;
+ }
+ .box-2 .why-img-wr img {
+ width: 45px;
+ height: 45px;
+ }
+}
+
+
+@media (min-width: 1200px) and (max-height: 470px) {
+ .why-txt-wr {margin-top: 3px;}
+ .why-txt-wr p {
+ font-size: 13px;
+ line-height: 14px;
+ }
+ .box-2 .why-img-wr {
+ height: 43px;
+ }
+ .box-2 .why-img-wr img {
+ width: 43px;
+ height: 43px;
+ }
+}
+@media (min-width: 1200px) and (max-height: 430px) {
+ .list_why {
+ margin-top: 6px;
+ }
+ .box-2 .why-txt-wr {
+ height: 46px;
+ }
+}
+@media (min-width: 1200px) and (max-height: 400px) {
+ .why-img-wr {
+ height: 30px;
+ }
+ .why-img-wr img {
+ width: 30px;
+ height: 30px;
+ }
+}
+@media (max-width: 1200px) and (max-height: 590px) {
+ .box-2 .why-img-wr {
+ height: 120px;
+ }
+ .box-2 .why-img-wr img {
+ height: 120px;
+ width: 120px;
+ }
+}
+@media (max-width: 1200px) and (max-height: 520px) {
+ .why-img-wr {height: 85px}
+ .why-img-wr img {
+ width: 85px;
+ height: 85px;
+ }
+ .button-_four-wr {
+ margin-top: 20px;
+ }
+ .box-2 .why-img-wr {
+ height: 90px;
+ }
+ .box-2 .why-img-wr img {
+ height: 90px;
+ width: 90px;
+ }
+}
+
+@media (max-width: 1200px) and (max-height: 450px) {
+ .why-img-wr {height: 60px}
+ .why-img-wr img {
+ width: 60px;
+ height: 60px;
+ }
+ .box-2 .why-img-wr {
+ height: 67px;
+ }
+ .box-2 .why-img-wr img {
+ height: 67px;
+ width: 67px;
+ }
+
+}
+@media (max-width: 1200px) and (max-height: 400px) {
+ .why-img-wr, .box-2 .why-img-wr {height: 53px}
+ .why-img-wr img, .box-2 .why-img-wr img {
+ width: 53px;
+ height: 53px;
+ }
+ .list_why {
+ margin-top: 6px;
+ }
+
+}
+
+@media (max-width: 1200px) and (max-height: 350px) {
+ .why-img-wr, .box-2 .why-img-wr {height: 40px}
+ .why-img-wr img, .box-2 .why-img-wr img {
+ width: 40px;
+ height: 40px;
+ }
+ .box-2 .why-txt-wr {
+ height: 47px;
+ }
+ .list_why {
+ margin-top: 6px;
+ }
+ .why-txt-wr {
+ margin-top: 4px;
+ height: 44px;
+ }
+ .why-txt-wr p {
+ font-size: 13px;
+ line-height: 14px;
+ }
+ .button-_four-wr {
+ margin-top: 12px;
+ }
+}
+@media (max-width: 1040px) {
+ .btn_questions {
+ top: auto;
+ margin-top: 0;
+ bottom: 20px;
+ }
+}
+@media (max-height: 905px) {
+ .contacts-wr {top: 280px}
+}
+
+@media (max-height: 870px) {
+ .contacts-wr {top: 260px}
+
+}
+
+@media (max-height: 840px) {
+ .contacts-wr {top: 236px}
+ .stock-txt-bl {height: 480px;}
+}
+
+
+@media (max-height: 800px) {
+
+ /*1*/
+
+ /*2*/
+
+
+
+ /*3*/
+ /*3*/
+
+ /*4*/
+
+ /*5*/
+ .studio-copy-wr, .aw-left, .aw-right, .aw-left div, .aw-right div {height: 60px; }
+ .aw-right div {line-height: 60px;}
+ ul.list-bx5 {
+ margin-top: 62px;
+ }
+
+ .contacts-wr {top: 245px;}
+
+
+ .contacts-txt-wr {padding-bottom: 10px;}
+
+ .contacts-tile {margin-bottom: 12px;}
+
+
+ .cont-str {margin-top: 6px;}
+ .contacts-img {margin-top: 0;}
+
+ .maps-contacts-wr {
+ background: url("../images/map.jpg") 50% -188px no-repeat;
+ top: 201px;
+ }
+ .contacts-tile p {
+ height: 50px;
+ line-height: 50px;
+ }
+ /*все*/
+
+ .container-wrapper {margin-top: 0;padding-top: 35px;}
+
+ .title-bl {
+ font-size: 26px;
+ }
+}
+
+
+@media (max-width: 1200px) and (max-height: 700px) {
+ /*3*/
+
+ /*5*/
+ .studio-copy-wr, .aw-left, .aw-right, .aw-left div, .aw-right div {height: 40px; }
+ .aw-right div {line-height: 40px;}
+ ul.list-bx5 {
+ margin-top: 52px;
+ }
+ ul.list-bx5 li {height: 38px; }
+ .contacts-wr {top: 257px;}
+
+
+ .contacts-txt-wr { padding-bottom: 19px;}
+
+ .contacts-tile {margin-bottom: 16px;}
+
+
+ .cont-str {margin-top: 12px;}
+ .contacts-img {}
+
+ .maps-contacts-wr {
+ background: url("../images/map.jpg") 50% -128px no-repeat;
+ top: 155px;
+ }
+}
+@media (max-height: 760px) {
+/*1*/
+ .slogan_wrapper {
+ margin-top: 130px;
+ }
+ /*2*/
+ .img-screen-two {width: 700px;}
+ /*4*/
+
+ .img-screen-four {width: 650px;}
+}
+
+
+
+@media (max-height: 720px) {
+ .stock-txt-bl {height: 420px;}
+}
+@media (max-height: 700px) {
+ /*1*/
+ .slider_wr_ {bottom: 115px !important;}
+ .slogan_wrapper {margin-top: 150px;}
+ .button-_first-wr {margin-top: 8px;}
+ .circle-next {bottom: 20px;}
+ /*2*/
+ .img-screen-two {
+ width: 620px;
+
+ }
+ .button-_second-wr {
+ right: 106px;
+ bottom: 106px;
+ }
+
+
+ /*3*/
+
+ .in_stock-wr {padding-top: 6px; margin-top: -40px;}
+ .years_select ul li a {font-size: 14px;}
+ .car-list {margin-top: 0;}
+
+
+
+ .btn_buy {height: 32px;line-height: 32px;width: 125px;}
+
+
+ /*4*/
+ .img-screen-four {
+ width: 500px;
+ margin-top: 19px;
+ }
+
+
+
+
+}
+@media (max-height: 660px) {
+ .in_stock-wr {margin-top: -40px}
+ .contacts-img {
+ display: none;
+ }
+}
+@media (max-height: 642px) {
+ .special-stock_title {
+ font-size: 18px;
+ line-height: 19px;
+ }
+ .stock-txt-bl {
+ height: 400px;
+ }
+ .btn_reserved {margin-top: 25px;}
+}
+@media (max-height: 630px) {
+ /*1*/
+ .slider_wr_ {bottom: 115px !important;}
+ .slogan_wrapper {margin-top: 85px;}
+ .button-_first-wr {margin-top: 8px;}
+ .circle-next {bottom: 20px;}
+
+ /*2*/
+ .img-screen-two {
+ width: 510px;
+
+ }
+ .button-_second-wr {
+ right: 71px;
+ bottom: 33px;
+ }
+
+
+
+
+
+ /*3*/
+
+ .in_stock-wr {padding-top: 6px;margin-top: 0;}
+ .years_select ul li a {font-size: 14px;}
+ .car-list {margin-top: 8px;}
+
+
+
+ .btn_buy {height: 32px;line-height: 32px;width: 125px;}
+
+
+ /*4*/
+ .img-screen-four {
+ width: 400px;
+ margin-top: 19px;
+ }
+
+
+
+
+ /*5*/
+
+ .studio-copy-wr, .aw-left, .aw-right, .aw-left div, .aw-right div {height: 40px; }
+ .aw-right div {line-height: 40px;}
+ ul.list-bx5 {
+ margin-top: 52px;
+ }
+ ul.list-bx5 li {height: 38px; }
+ .contacts-wr {top: 280px;}
+
+
+ .contacts-txt-wr { padding-bottom: 19px;}
+
+ .contacts-tile {margin-bottom: 16px;}
+
+
+ .cont-str {margin-top: 12px;}
+ .contacts-img {display: none;}
+
+ .maps-contacts-wr {
+ background: url("../images/map.jpg") 50% -188px no-repeat;
+ top: 145px;
+ }
+
+ #navi_circle {width: 25px;right: 0;}
+ .container-wrapper {margin-top: 0; padding-top: 0}
+ .menu-line {
+ margin-top: 12px;
+ }
+ #language {top: 9px;}
+ .logo {
+ margin-top: 2px;
+ transform: scale(0.7);
+ -webkit-transform: scale(0.7);
+ margin-left: -32px;
+ }
+
+
+ .content-margin {
+ margin-top: 55px;
+ }
+
+ .title-bl {
+ font-size: 18px;
+ margin-top: 19px;
+ }
+ .title-bl-4 {font-size: 16px;}
+}
+
+@media (max-height: 600px) {
+
+
+
+
+ /*1*/
+ .slider_wr_ {bottom: 80px !important;}
+ .slogan_wrapper {margin-top: 65px;}
+ .button-_first-wr {margin-top: 8px;}
+ .circle-next {bottom: 10px;}
+
+ /*2*/
+ .img-screen-two {
+ width: 510px;
+
+ }
+ .button-_second-wr {
+ right: 71px;
+ bottom: 33px;
+ }
+
+
+ /*3*/
+
+ .in_stock-wr {padding-top: 6px;}
+ .years_select ul li a {font-size: 14px;}
+ .car-list {margin-top: 8px;}
+ .specifications p {font-size: 12px;line-height: 16px;}
+ .price {font-size: 14px;}
+ .buy_button {margin-top: 7px;margin-bottom: 7px;}
+ .btn_buy {height: 25px;line-height: 25px;width: 115px;}
+
+
+ /*4*/
+ .img-screen-four {
+ width: 400px;
+ margin-top: 19px;
+ }
+
+
+
+
+ /*все*/
+ #navi_circle {width: 25px;right: 0;}
+ .container-wrapper {margin-top: 0; padding-top: 0}
+ .menu-line {
+
+ }
+ .logo {
+ margin-top: -4px;
+
+ }
+
+
+ .content-margin {
+ margin-top: 60px;
+ }
+ .title-bl {
+ font-size: 18px;
+ margin-top: 14px;
+ }
+ .title-bl-4 {font-size: 16px;}
+
+
+}
+@media (max-height: 580px) {
+ .custom-input-2 {
+ height: 26px;
+ line-height: 26px;
+ margin-top: 2px;
+ }
+ .input-blocks textarea {
+ height: 26px;
+ }
+}
+@media (max-height: 570px) {
+ .modal_form .input-blocks {margin-top: 0;}
+}
+@media (max-height: 550px) {
+ .stock-txt-bl {
+ height: 340px;
+ }
+
+
+ /*2*/
+ .img-screen-two {
+ width: 510px;
+
+ }
+
+ .button-_second-wr {
+ right: 71px;
+ bottom: 33px;
+ }
+
+
+ /*3*/
+
+ .in_stock-wr {padding-top: 6px;}
+ .years_select ul li a {font-size: 14px;}
+ .car-list {margin-top: 8px;}
+ .specifications p {font-size: 12px;line-height: 16px;}
+ .price {font-size: 14px;}
+ .buy_button {margin-top: 7px;margin-bottom: 7px;}
+ .btn_buy {height: 25px;line-height: 25px;width: 115px;}
+
+
+ /*4*/
+ .img-screen-four {
+ width: 400px;
+ margin-top: 19px;
+ }
+
+
+
+ /*5*/
+ .studio-copy-wr, .aw-left, .aw-right, .aw-left div, .aw-right div {height: 40px; }
+ .aw-right div {line-height: 40px;}
+ ul.list-bx5 {
+ margin-top: 52px;
+ }
+ ul.list-bx5 li {height: 38px; }
+ .contacts-wr {top: 280px;}
+
+
+ .contacts-txt-wr { padding-bottom: 19px;}
+
+ .contacts-tile {margin-bottom: 16px;}
+
+
+ .cont-str {margin-top: 12px;}
+ .contacts-img {display: none;}
+
+ .maps-contacts-wr {
+ background: url("../images/map.jpg") 50% -188px no-repeat;
+ top: 145px;
+ }
+
+ /*все*/
+ #navi_circle {width: 25px;right: 0;}
+ .container-wrapper {margin-top: 0; padding-top: 0}
+ .menu-line {
+
+ }
+ .logo {
+
+ }
+
+
+
+ .title-bl {
+ font-size: 18px;
+ margin-top: 14px;
+ }
+ .title-bl-4 {font-size: 16px;}
+
+ .content-margin {
+ margin-top: 20px;
+ }
+
+}
+
+@media (max-height: 525px) {
+ .model-name {
+ height: 75px;
+ line-height: 80px;
+ }
+
+}
+
+@media (max-height: 500px) {
+ .stock-txt-bl {
+ height: 300px;
+ }
+ .btn_reserved {
+ margin-top: 19px;
+ }
+ /*1*/
+ .slider_wr_ {bottom: 80px !important;}
+ .slogan_wrapper {margin-top: 20px;}
+ .button-_first-wr {margin-top: 8px;}
+ .circle-next {bottom: 10px;}
+ /*2*/
+ .img-screen-two {
+ width: 510px;
+
+ }
+ .button-_second-wr {
+ right: 71px;
+ bottom: 33px;
+ }
+
+
+ /*3*/
+
+ .in_stock-wr {padding-top: 6px;}
+ .years_select ul li a {font-size: 14px;}
+ .car-list {margin-top: 8px;}
+ .specifications p {font-size: 12px;line-height: 16px;}
+ .price {font-size: 14px;}
+ .car-list ul li div.img_ img {max-width: 110px;}
+ .buy_button {margin-top: 7px;margin-bottom: 7px;}
+ .btn_buy {height: 25px;line-height: 25px;width: 115px;}
+
+
+ /*4*/
+ .img-screen-four {
+
+ width: 415px;
+ }
+
+
+
+
+ /*5*/
+ .contacts-txt-wr { padding-bottom: 9px;}
+ .contacts-tile {margin-bottom: 6px;}
+ .cont-str {margin-top: 2px;}
+ /*.contacts-img {display: none;}*/
+ .maps-contacts-wr {
+ background: url("../images/map.jpg") 50% -188px no-repeat;
+ top: 120px;
+ }
+
+
+/**/
+ .title-bl {
+ font-size: 18px;
+ margin-top: 14px;
+ }
+
+
+
+}
+
+@media (max-height: 485px) {
+
+
+
+ .date_first, .date_second {margin-top: 2px;}
+ .date_first label, .date_second label {
+ line-height: 26px;
+ }
+}
+
+@media (max-height: 450px) {
+ #modal_questions form {padding-bottom: 20px;}
+ .button-wrapper {
+ margin-top: 20px!important;
+ }
+ .stock-txt-bl {
+ height: 290px;
+ }
+ /*1*/
+ .slider_wr_ {bottom: 20px !important;}
+ .slogan_wrapper {margin-top: 20px;}
+ .button-_first-wr {margin-top: 8px;}
+ /*2*/
+ .img-screen-two {
+ width: 450px;
+ margin-left: 28px;
+ margin-top: -19px;
+ }
+ .button-_second-wr {
+ right: 71px;
+ bottom: 25px;
+ }
+
+ /*3*/
+
+ .in_stock-wr {padding-top: 6px;}
+ .models_select ul {height: 25px;}
+ .models_select ul li a {line-height: 24px;font-size: 14px;}
+ .years_select {margin-top: 3px;}
+ .years_select p, .years_select ul li a {line-height: 16px;height: 16px;}
+ .years_select ul li a {font-size: 14px;}
+ .car-list {margin-top: 8px;}
+ .specifications {margin-top: 0}
+ .specifications p {font-size: 11px;line-height: 13px;}
+ .price {font-size: 14px;margin-top: 0;}
+ .car-list ul li div.img_ img {max-width: 100px;}
+ .buy_button {margin-top: 5px;margin-bottom: 7px;}
+ .btn_buy {height: 25px;line-height: 25px;width: 115px;}
+
+
+ /*4*/
+ .img-screen-four {
+ margin-top: 0;
+ width: 380px;
+ }
+
+
+
+ /*все*/
+
+ #navi_circle {width: 25px;right: 0;}
+ .container-wrapper {margin-top: 0;}
+ .menu-line {
+
+ }
+
+
+
+
+ .title-bl {
+ font-size: 18px;
+ margin-top: 14px;
+ }
+ .circle-next {
+ /*left: auto;*/
+ /*right: 10px;*/
+ /*bottom: 20px;*/
+ display: none;
+ }
+ .content-margin {
+ margin-top: 20px;
+ }
+}
+
+
+@media (max-height: 440px) {
+ .stock-txt-bl {
+ height: 280px;
+ }
+}
+@media (max-height: 430px) {
+ .stock-txt-bl {
+ height: 270px;
+ }
+}
+@media (max-height: 420px) {
+ .stock-txt-bl {
+ height: 250px;
+ }
+}
+
+@media (max-height: 410px) {
+ .button-wrapper {
+ margin-top: 20px!important;
+ }
+ .modal_form form {
+ padding: 0 79px 20px 79px;
+ }
+
+}
+
+@media (max-height: 400px) {
+ .stock-txt-bl {
+ height: 200px;
+ }
+ /*1*/
+ .slider_wr_ {bottom: 20px !important;}
+ .slogan_wrapper {margin-top: 20px;}
+ .button-_first-wr {margin-top: 8px;}
+ /*2*/
+ .img-screen-two {
+ width: 365px;
+ margin-left: 28px;
+ }
+ .button-_second-wr {
+ right: 71px;
+ bottom: 25px;
+ }
+
+ /*3*/
+
+ .in_stock-wr {padding-top: 6px;}
+ .models_select ul {height: 25px;}
+ .models_select ul li a {line-height: 24px;font-size: 14px;}
+ .years_select {margin-top: 3px;}
+ .years_select p, .years_select ul li a {line-height: 16px;height: 16px;}
+ .years_select ul li a {font-size: 14px;}
+ .car-list {margin-top: 8px;}
+ .specifications {margin-top: 0}
+ .specifications p {font-size: 11px;line-height: 13px;}
+ .price {font-size: 14px;margin-top: 0;}
+ .car-list ul li div.img_ img {max-width: 100px;}
+ .buy_button {margin-top: 5px;margin-bottom: 7px;}
+ .btn_buy {height: 25px;line-height: 25px;width: 115px;}
+
+
+ /*4*/
+ .img-screen-four {
+ margin-top: 0;
+ width: 320px;
+ }
+
+
+
+ /*5*/
+
+ .contacts-wr {top: 250px;}
+
+ .maps-contacts-wr {
+ background: url("../images/map.jpg") 50% -247px no-repeat;
+ top: 100px;
+ }
+ /*все*/
+ #navi_circle {width: 25px;right: 0;}
+ .container-wrapper {margin-top: 0;}
+ .menu-line {
+
+ }
+
+
+
+
+ .title-bl {
+ font-size: 18px;
+ margin-top: 14px;
+ }
+ .circle-next {
+ left: auto;
+ right: 10px;
+ bottom: 20px;
+ }
+ .content-margin {
+ margin-top: 20px;
+ }
+}
+@media (max-height: 390px) {
+ .txt-rent_ {margin-top: 5px;}
+ .model-name {
+ height: 43px;
+ line-height: 48px;
+ }
+ .txt-rent_ p {
+ line-height: 17px;
+ }
+}
+@media (max-height: 360px) {
+ #modal_questions form {padding-bottom: 10px;}
+ .button-wrapper {
+ margin-top: 10px!important;
+ }
+}
+@media (max-height: 350px) {
+ .rent_tb {
+ margin-top: 0;
+ }
+ .box-4-2 .stock-txt-bl-wr {
+ margin-top: 0;
+ }
+ .stock-txt-bl {
+ height: 170px;
+ }
+ .rent-tb-pos {
+ font-size: 13px;
+ }
+ .txt-rent_ p {
+ line-height: 16px;
+ font-size: 13px;
+ }
+ .txt-rent_ {
+ margin-top: 2px;
+ }
+
+ .btn_by_link {
+ position: absolute;
+ margin-top: 0;
+ right: 282px;
+ }
+
+}
+
+@media (max-height: 339px) {
+ .in_stock-wr {
+ padding-top: 0;
+ }
+ .models_select ul {
+ height: 21px;
+ }
+ .models_select ul li a {
+ line-height: 21px;
+ font-size: 12px;
+ }
+ .years_select {
+ margin-top: 0px;
+ }
+ .years_select p, .years_select ul li a {
+ line-height: 13px;
+ height: 13px;
+ }
+ .years_select ul li a, .years_select p {
+ font-size: 12px;
+ }
+ .box-3 .content-margin {
+ margin-top: 15px;
+ }
+ .car-list ul li div.img_ img {
+ vertical-align: middle;
+ }
+ .buy_button {
+ margin-top: 3px;
+ margin-bottom: 6px;
+ }
+
+
+ /*5*/
+ .contacts-wr {top: 239px;}
+ .maps-contacts-wr {
+ background: url("../images/map.jpg") 50% -247px no-repeat;
+ }
+
+ /*все*/
+
+
+
+}
+
+
+* {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box
+}
+
+:before,
+:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box
+}
+
+.img-responsive {
+ display: block;
+ max-width: 100%;
+ height: auto
+}
+
+.img-rounded {
+ border-radius: 6px
+}
+
+.img-thumbnail {
+ padding: 4px;
+ line-height: 1.42857143;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: all .2s ease-in-out;
+ -o-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+ display: inline-block;
+ max-width: 100%;
+ height: auto
+}
+
+.img-circle {
+ border-radius: 50%
+}
+
+.container {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px
+}
+
+@media (min-width: 768px) {
+ .container {
+ width: 750px
+ }
+}
+
+@media (min-width: 992px) {
+ .container {
+ width: 970px
+ }
+}
+
+@media (min-width: 1200px) {
+ .container {
+ width: 1170px
+ }
+}
+
+.container-fluid {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px
+}
+
+.row {
+ margin-left: -15px;
+ margin-right: -15px
+}
+
+.col-xs-1,
+.col-sm-1,
+.col-md-1,
+.col-lg-1,
+.col-xs-2,
+.col-sm-2,
+.col-md-2,
+.col-lg-2,
+.col-xs-3,
+.col-sm-3,
+.col-md-3,
+.col-lg-3,
+.col-xs-4,
+.col-sm-4,
+.col-md-4,
+.col-lg-4,
+.col-xs-5,
+.col-sm-5,
+.col-md-5,
+.col-lg-5,
+.col-xs-6,
+.col-sm-6,
+.col-md-6,
+.col-lg-6,
+.col-xs-7,
+.col-sm-7,
+.col-md-7,
+.col-lg-7,
+.col-xs-8,
+.col-sm-8,
+.col-md-8,
+.col-lg-8,
+.col-xs-9,
+.col-sm-9,
+.col-md-9,
+.col-lg-9,
+.col-xs-10,
+.col-sm-10,
+.col-md-10,
+.col-lg-10,
+.col-xs-11,
+.col-sm-11,
+.col-md-11,
+.col-lg-11,
+.col-xs-12,
+.col-sm-12,
+.col-md-12,
+.col-lg-12 {
+ position: relative;
+ min-height: 1px;
+ padding-left: 15px;
+ padding-right: 15px
+}
+
+.col-xs-1,
+.col-xs-2,
+.col-xs-3,
+.col-xs-4,
+.col-xs-5,
+.col-xs-6,
+.col-xs-7,
+.col-xs-8,
+.col-xs-9,
+.col-xs-10,
+.col-xs-11,
+.col-xs-12 {
+ float: left
+}
+
+.col-xs-12 {
+ width: 100%
+}
+
+.col-xs-11 {
+ width: 91.66666667%
+}
+
+.col-xs-10 {
+ width: 83.33333333%
+}
+
+.col-xs-9 {
+ width: 75%
+}
+
+.col-xs-8 {
+ width: 66.66666667%
+}
+
+.col-xs-7 {
+ width: 58.33333333%
+}
+
+.col-xs-6 {
+ width: 50%
+}
+
+.col-xs-5 {
+ width: 41.66666667%
+}
+
+.col-xs-4 {
+ width: 33.33333333%
+}
+
+.col-xs-3 {
+ width: 25%
+}
+
+.col-xs-2 {
+ width: 16.66666667%
+}
+
+.col-xs-1 {
+ width: 8.33333333%
+}
+
+.col-xs-pull-12 {
+ right: 100%
+}
+
+.col-xs-pull-11 {
+ right: 91.66666667%
+}
+
+.col-xs-pull-10 {
+ right: 83.33333333%
+}
+
+.col-xs-pull-9 {
+ right: 75%
+}
+
+.col-xs-pull-8 {
+ right: 66.66666667%
+}
+
+.col-xs-pull-7 {
+ right: 58.33333333%
+}
+
+.col-xs-pull-6 {
+ right: 50%
+}
+
+.col-xs-pull-5 {
+ right: 41.66666667%
+}
+
+.col-xs-pull-4 {
+ right: 33.33333333%
+}
+
+.col-xs-pull-3 {
+ right: 25%
+}
+
+.col-xs-pull-2 {
+ right: 16.66666667%
+}
+
+.col-xs-pull-1 {
+ right: 8.33333333%
+}
+
+.col-xs-pull-0 {
+ right: auto
+}
+
+.col-xs-push-12 {
+ left: 100%
+}
+
+.col-xs-push-11 {
+ left: 91.66666667%
+}
+
+.col-xs-push-10 {
+ left: 83.33333333%
+}
+
+.col-xs-push-9 {
+ left: 75%
+}
+
+.col-xs-push-8 {
+ left: 66.66666667%
+}
+
+.col-xs-push-7 {
+ left: 58.33333333%
+}
+
+.col-xs-push-6 {
+ left: 50%
+}
+
+.col-xs-push-5 {
+ left: 41.66666667%
+}
+
+.col-xs-push-4 {
+ left: 33.33333333%
+}
+
+.col-xs-push-3 {
+ left: 25%
+}
+
+.col-xs-push-2 {
+ left: 16.66666667%
+}
+
+.col-xs-push-1 {
+ left: 8.33333333%
+}
+
+.col-xs-push-0 {
+ left: auto
+}
+
+.col-xs-offset-12 {
+ margin-left: 100%
+}
+
+.col-xs-offset-11 {
+ margin-left: 91.66666667%
+}
+
+.col-xs-offset-10 {
+ margin-left: 83.33333333%
+}
+
+.col-xs-offset-9 {
+ margin-left: 75%
+}
+
+.col-xs-offset-8 {
+ margin-left: 66.66666667%
+}
+
+.col-xs-offset-7 {
+ margin-left: 58.33333333%
+}
+
+.col-xs-offset-6 {
+ margin-left: 50%
+}
+
+.col-xs-offset-5 {
+ margin-left: 41.66666667%
+}
+
+.col-xs-offset-4 {
+ margin-left: 33.33333333%
+}
+
+.col-xs-offset-3 {
+ margin-left: 25%
+}
+
+.col-xs-offset-2 {
+ margin-left: 16.66666667%
+}
+
+.col-xs-offset-1 {
+ margin-left: 8.33333333%
+}
+
+.col-xs-offset-0 {
+ margin-left: 0
+}
+
+@media (min-width: 768px) {
+ .col-sm-1,
+ .col-sm-2,
+ .col-sm-3,
+ .col-sm-4,
+ .col-sm-5,
+ .col-sm-6,
+ .col-sm-7,
+ .col-sm-8,
+ .col-sm-9,
+ .col-sm-10,
+ .col-sm-11,
+ .col-sm-12 {
+ float: left
+ }
+ .col-sm-12 {
+ width: 100%
+ }
+ .col-sm-11 {
+ width: 91.66666667%
+ }
+ .col-sm-10 {
+ width: 83.33333333%
+ }
+ .col-sm-9 {
+ width: 75%
+ }
+ .col-sm-8 {
+ width: 66.66666667%
+ }
+ .col-sm-7 {
+ width: 58.33333333%
+ }
+ .col-sm-6 {
+ width: 50%
+ }
+ .col-sm-5 {
+ width: 41.66666667%
+ }
+ .col-sm-4 {
+ width: 33.33333333%
+ }
+ .col-sm-3 {
+ width: 25%
+ }
+ .col-sm-2 {
+ width: 16.66666667%
+ }
+ .col-sm-1 {
+ width: 8.33333333%
+ }
+ .col-sm-pull-12 {
+ right: 100%
+ }
+ .col-sm-pull-11 {
+ right: 91.66666667%
+ }
+ .col-sm-pull-10 {
+ right: 83.33333333%
+ }
+ .col-sm-pull-9 {
+ right: 75%
+ }
+ .col-sm-pull-8 {
+ right: 66.66666667%
+ }
+ .col-sm-pull-7 {
+ right: 58.33333333%
+ }
+ .col-sm-pull-6 {
+ right: 50%
+ }
+ .col-sm-pull-5 {
+ right: 41.66666667%
+ }
+ .col-sm-pull-4 {
+ right: 33.33333333%
+ }
+ .col-sm-pull-3 {
+ right: 25%
+ }
+ .col-sm-pull-2 {
+ right: 16.66666667%
+ }
+ .col-sm-pull-1 {
+ right: 8.33333333%
+ }
+ .col-sm-pull-0 {
+ right: auto
+ }
+ .col-sm-push-12 {
+ left: 100%
+ }
+ .col-sm-push-11 {
+ left: 91.66666667%
+ }
+ .col-sm-push-10 {
+ left: 83.33333333%
+ }
+ .col-sm-push-9 {
+ left: 75%
+ }
+ .col-sm-push-8 {
+ left: 66.66666667%
+ }
+ .col-sm-push-7 {
+ left: 58.33333333%
+ }
+ .col-sm-push-6 {
+ left: 50%
+ }
+ .col-sm-push-5 {
+ left: 41.66666667%
+ }
+ .col-sm-push-4 {
+ left: 33.33333333%
+ }
+ .col-sm-push-3 {
+ left: 25%
+ }
+ .col-sm-push-2 {
+ left: 16.66666667%
+ }
+ .col-sm-push-1 {
+ left: 8.33333333%
+ }
+ .col-sm-push-0 {
+ left: auto
+ }
+ .col-sm-offset-12 {
+ margin-left: 100%
+ }
+ .col-sm-offset-11 {
+ margin-left: 91.66666667%
+ }
+ .col-sm-offset-10 {
+ margin-left: 83.33333333%
+ }
+ .col-sm-offset-9 {
+ margin-left: 75%
+ }
+ .col-sm-offset-8 {
+ margin-left: 66.66666667%
+ }
+ .col-sm-offset-7 {
+ margin-left: 58.33333333%
+ }
+ .col-sm-offset-6 {
+ margin-left: 50%
+ }
+ .col-sm-offset-5 {
+ margin-left: 41.66666667%
+ }
+ .col-sm-offset-4 {
+ margin-left: 33.33333333%
+ }
+ .col-sm-offset-3 {
+ margin-left: 25%
+ }
+ .col-sm-offset-2 {
+ margin-left: 16.66666667%
+ }
+ .col-sm-offset-1 {
+ margin-left: 8.33333333%
+ }
+ .col-sm-offset-0 {
+ margin-left: 0
+ }
+}
+
+@media (min-width: 992px) {
+ .col-md-1,
+ .col-md-2,
+ .col-md-3,
+ .col-md-4,
+ .col-md-5,
+ .col-md-6,
+ .col-md-7,
+ .col-md-8,
+ .col-md-9,
+ .col-md-10,
+ .col-md-11,
+ .col-md-12 {
+ float: left
+ }
+ .col-md-12 {
+ width: 100%
+ }
+ .col-md-11 {
+ width: 91.66666667%
+ }
+ .col-md-10 {
+ width: 83.33333333%
+ }
+ .col-md-9 {
+ width: 75%
+ }
+ .col-md-8 {
+ width: 66.66666667%
+ }
+ .col-md-7 {
+ width: 58.33333333%
+ }
+ .col-md-6 {
+ width: 50%
+ }
+ .col-md-5 {
+ width: 41.66666667%
+ }
+ .col-md-4 {
+ width: 33.33333333%
+ }
+ .col-md-3 {
+ width: 25%
+ }
+ .col-md-2 {
+ width: 16.66666667%
+ }
+ .col-md-1 {
+ width: 8.33333333%
+ }
+ .col-md-pull-12 {
+ right: 100%
+ }
+ .col-md-pull-11 {
+ right: 91.66666667%
+ }
+ .col-md-pull-10 {
+ right: 83.33333333%
+ }
+ .col-md-pull-9 {
+ right: 75%
+ }
+ .col-md-pull-8 {
+ right: 66.66666667%
+ }
+ .col-md-pull-7 {
+ right: 58.33333333%
+ }
+ .col-md-pull-6 {
+ right: 50%
+ }
+ .col-md-pull-5 {
+ right: 41.66666667%
+ }
+ .col-md-pull-4 {
+ right: 33.33333333%
+ }
+ .col-md-pull-3 {
+ right: 25%
+ }
+ .col-md-pull-2 {
+ right: 16.66666667%
+ }
+ .col-md-pull-1 {
+ right: 8.33333333%
+ }
+ .col-md-pull-0 {
+ right: auto
+ }
+ .col-md-push-12 {
+ left: 100%
+ }
+ .col-md-push-11 {
+ left: 91.66666667%
+ }
+ .col-md-push-10 {
+ left: 83.33333333%
+ }
+ .col-md-push-9 {
+ left: 75%
+ }
+ .col-md-push-8 {
+ left: 66.66666667%
+ }
+ .col-md-push-7 {
+ left: 58.33333333%
+ }
+ .col-md-push-6 {
+ left: 50%
+ }
+ .col-md-push-5 {
+ left: 41.66666667%
+ }
+ .col-md-push-4 {
+ left: 33.33333333%
+ }
+ .col-md-push-3 {
+ left: 25%
+ }
+ .col-md-push-2 {
+ left: 16.66666667%
+ }
+ .col-md-push-1 {
+ left: 8.33333333%
+ }
+ .col-md-push-0 {
+ left: auto
+ }
+ .col-md-offset-12 {
+ margin-left: 100%
+ }
+ .col-md-offset-11 {
+ margin-left: 91.66666667%
+ }
+ .col-md-offset-10 {
+ margin-left: 83.33333333%
+ }
+ .col-md-offset-9 {
+ margin-left: 75%
+ }
+ .col-md-offset-8 {
+ margin-left: 66.66666667%
+ }
+ .col-md-offset-7 {
+ margin-left: 58.33333333%
+ }
+ .col-md-offset-6 {
+ margin-left: 50%
+ }
+ .col-md-offset-5 {
+ margin-left: 41.66666667%
+ }
+ .col-md-offset-4 {
+ margin-left: 33.33333333%
+ }
+ .col-md-offset-3 {
+ margin-left: 25%
+ }
+ .col-md-offset-2 {
+ margin-left: 16.66666667%
+ }
+ .col-md-offset-1 {
+ margin-left: 8.33333333%
+ }
+ .col-md-offset-0 {
+ margin-left: 0
+ }
+}
+
+@media (min-width: 1200px) {
+ .col-lg-1,
+ .col-lg-2,
+ .col-lg-3,
+ .col-lg-4,
+ .col-lg-5,
+ .col-lg-6,
+ .col-lg-7,
+ .col-lg-8,
+ .col-lg-9,
+ .col-lg-10,
+ .col-lg-11,
+ .col-lg-12 {
+ float: left
+ }
+ .col-lg-12 {
+ width: 100%
+ }
+ .col-lg-11 {
+ width: 91.66666667%
+ }
+ .col-lg-10 {
+ width: 83.33333333%
+ }
+ .col-lg-9 {
+ width: 75%
+ }
+ .col-lg-8 {
+ width: 66.66666667%
+ }
+ .col-lg-7 {
+ width: 58.33333333%
+ }
+ .col-lg-6 {
+ width: 50%
+ }
+ .col-lg-5 {
+ width: 41.66666667%
+ }
+ .col-lg-4 {
+ width: 33.33333333%
+ }
+ .col-lg-3 {
+ width: 25%
+ }
+ .col-lg-2 {
+ width: 16.66666667%
+ }
+ .col-lg-1 {
+ width: 8.33333333%
+ }
+ .col-lg-pull-12 {
+ right: 100%
+ }
+ .col-lg-pull-11 {
+ right: 91.66666667%
+ }
+ .col-lg-pull-10 {
+ right: 83.33333333%
+ }
+ .col-lg-pull-9 {
+ right: 75%
+ }
+ .col-lg-pull-8 {
+ right: 66.66666667%
+ }
+ .col-lg-pull-7 {
+ right: 58.33333333%
+ }
+ .col-lg-pull-6 {
+ right: 50%
+ }
+ .col-lg-pull-5 {
+ right: 41.66666667%
+ }
+ .col-lg-pull-4 {
+ right: 33.33333333%
+ }
+ .col-lg-pull-3 {
+ right: 25%
+ }
+ .col-lg-pull-2 {
+ right: 16.66666667%
+ }
+ .col-lg-pull-1 {
+ right: 8.33333333%
+ }
+ .col-lg-pull-0 {
+ right: auto
+ }
+ .col-lg-push-12 {
+ left: 100%
+ }
+ .col-lg-push-11 {
+ left: 91.66666667%
+ }
+ .col-lg-push-10 {
+ left: 83.33333333%
+ }
+ .col-lg-push-9 {
+ left: 75%
+ }
+ .col-lg-push-8 {
+ left: 66.66666667%
+ }
+ .col-lg-push-7 {
+ left: 58.33333333%
+ }
+ .col-lg-push-6 {
+ left: 50%
+ }
+ .col-lg-push-5 {
+ left: 41.66666667%
+ }
+ .col-lg-push-4 {
+ left: 33.33333333%
+ }
+ .col-lg-push-3 {
+ left: 25%
+ }
+ .col-lg-push-2 {
+ left: 16.66666667%
+ }
+ .col-lg-push-1 {
+ left: 8.33333333%
+ }
+ .col-lg-push-0 {
+ left: auto
+ }
+ .col-lg-offset-12 {
+ margin-left: 100%
+ }
+ .col-lg-offset-11 {
+ margin-left: 91.66666667%
+ }
+ .col-lg-offset-10 {
+ margin-left: 83.33333333%
+ }
+ .col-lg-offset-9 {
+ margin-left: 75%
+ }
+ .col-lg-offset-8 {
+ margin-left: 66.66666667%
+ }
+ .col-lg-offset-7 {
+ margin-left: 58.33333333%
+ }
+ .col-lg-offset-6 {
+ margin-left: 50%
+ }
+ .col-lg-offset-5 {
+ margin-left: 41.66666667%
+ }
+ .col-lg-offset-4 {
+ margin-left: 33.33333333%
+ }
+ .col-lg-offset-3 {
+ margin-left: 25%
+ }
+ .col-lg-offset-2 {
+ margin-left: 16.66666667%
+ }
+ .col-lg-offset-1 {
+ margin-left: 8.33333333%
+ }
+ .col-lg-offset-0 {
+ margin-left: 0
+ }
+}
+
+.clearfix:before,
+.clearfix:after,
+.container:before,
+.container:after,
+.container-fluid:before,
+.container-fluid:after,
+.row:before,
+.row:after {
+ content: " ";
+ display: table
+}
+
+.clearfix:after,
+.container:after,
+.container-fluid:after,
+.row:after {
+ clear: both
+}
+
+.center-block {
+ display: block;
+ margin-left: auto;
+ margin-right: auto
+}
+
+.pull-right {
+ float: right!important
+}
+
+.pull-left {
+ float: left!important
+}
+
+.hide {
+ display: none!important
+}
+
+.show {
+ display: block!important
+}
+
+.invisible {
+ visibility: hidden
+}
+
+.text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0
+}
+
+.hidden {
+ display: none!important
+}
+
+.affix {
+ position: fixed
+}
+
+.visible-xs,
+.visible-sm,
+.visible-md,
+.visible-lg {
+ display: none!important
+}
+
+.visible-xs-block,
+.visible-xs-inline,
+.visible-xs-inline-block,
+.visible-sm-block,
+.visible-sm-inline,
+.visible-sm-inline-block,
+.visible-md-block,
+.visible-md-inline,
+.visible-md-inline-block,
+.visible-lg-block,
+.visible-lg-inline,
+.visible-lg-inline-block {
+ display: none!important
+}
+
+@media (max-width: 767px) {
+ .visible-xs {
+ display: block!important
+ }
+ table.visible-xs {
+ display: table!important
+ }
+ tr.visible-xs {
+ display: table-row!important
+ }
+ th.visible-xs,
+ td.visible-xs {
+ display: table-cell!important
+ }
+ .visible-xs-block {
+ display: block!important
+ }
+ .visible-xs-inline {
+ display: inline!important
+ }
+ .visible-xs-inline-block {
+ display: inline-block!important
+ }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm {
+ display: block!important
+ }
+ table.visible-sm {
+ display: table!important
+ }
+ tr.visible-sm {
+ display: table-row!important
+ }
+ th.visible-sm,
+ td.visible-sm {
+ display: table-cell!important
+ }
+ .visible-sm-block {
+ display: block!important
+ }
+ .visible-sm-inline {
+ display: inline!important
+ }
+ .visible-sm-inline-block {
+ display: inline-block!important
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md {
+ display: block!important
+ }
+ table.visible-md {
+ display: table!important
+ }
+ tr.visible-md {
+ display: table-row!important
+ }
+ th.visible-md,
+ td.visible-md {
+ display: table-cell!important
+ }
+ .visible-md-block {
+ display: block!important
+ }
+ .visible-md-inline {
+ display: inline!important
+ }
+ .visible-md-inline-block {
+ display: inline-block!important
+ }
+}
+
+@media (min-width: 1200px) {
+ .visible-lg {
+ display: block!important
+ }
+ table.visible-lg {
+ display: table!important
+ }
+ tr.visible-lg {
+ display: table-row!important
+ }
+ th.visible-lg,
+ td.visible-lg {
+ display: table-cell!important
+ }
+}
+
+@media (min-width: 1200px) {
+ .visible-lg-block {
+ display: block!important
+ }
+}
+
+@media (min-width: 1200px) {
+ .visible-lg-inline {
+ display: inline!important
+ }
+}
+
+@media (min-width: 1200px) {
+ .visible-lg-inline-block {
+ display: inline-block!important
+ }
+}
+
+@media (max-width: 767px) {
+ .hidden-xs {
+ display: none!important
+ }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .hidden-sm {
+ display: none!important
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .hidden-md {
+ display: none!important
+ }
+}
+
+@media (min-width: 1200px) {
+ .hidden-lg {
+ display: none!important
+ }
+}
+
+.visible-print {
+ display: none!important
+}
+
+@media print {
+ .visible-print {
+ display: block!important
+ }
+ table.visible-print {
+ display: table!important
+ }
+ tr.visible-print {
+ display: table-row!important
+ }
+ th.visible-print,
+ td.visible-print {
+ display: table-cell!important
+ }
+}
+
+.visible-print-block {
+ display: none!important
+}
+
+@media print {
+ .visible-print-block {
+ display: block!important
+ }
+}
+
+.visible-print-inline {
+ display: none!important
+}
+
+@media print {
+ .visible-print-inline {
+ display: inline!important
+ }
+}
+
+.visible-print-inline-block {
+ display: none!important
+}
+
+@media print {
+ .visible-print-inline-block {
+ display: inline-block!important
+ }
+}
+
+@media print {
+ .hidden-print {
+ display: none!important
+ }
+}
+
+@media (max-width: 1199px) {
+ .sidebar_checks:nth-of-type(1),
+ .sidebar_checks_2:nth-child(1),
+ .sidebar_checks_2:nth-child(2) {
+ margin-top: 6px
+ }
+}
+
+@media (max-width: 991px) {
+ .sidebar-transform.visible_ {
+ display: block!important;
+ position: fixed;
+ z-index: 99999;
+ top: 0;
+ left: -100%;
+ width: 100%;
+ height: 100%;
+ box-sizing: initial;
+ overflow-y: scroll;
+ padding: 0;
+ opacity: 0
+ }
+ .sidebar-transform.visible_ .sidebar {
+ background: none;
+ z-index: 2
+ }
+ .sidebar-transform.visible_ .sidebar:before {
+ width: 100%;
+ height: 100%;
+ background: #fff;
+ opacity: .96;
+ -ms-filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=96);
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0
+ }
+}
\ No newline at end of file
diff --git a/frontend/web/css/test.scss b/frontend/web/css/test.scss
new file mode 100755
index 0000000..99a8091
--- /dev/null
+++ b/frontend/web/css/test.scss
@@ -0,0 +1,2 @@
+
+
diff --git a/frontend/web/css/theme-style.css b/frontend/web/css/theme-style.css
new file mode 100755
index 0000000..31f0174
--- /dev/null
+++ b/frontend/web/css/theme-style.css
@@ -0,0 +1,1255 @@
+@charset "UTF-8";
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+ box-sizing: border-box; }
+
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
+ display: block; }
+
+body {
+ line-height: 1; }
+
+ol, ul {
+ list-style: none; }
+
+blockquote, q {
+ quotes: none; }
+
+blockquote:before, blockquote:after {
+ content: '';
+ content: none; }
+
+q:before, q:after {
+ content: '';
+ content: none; }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+img {
+ max-width: 100%; }
+
+button {
+ background-color: transparent;
+ outline: none;
+ border: 0;
+ cursor: pointer; }
+
+/* ╤Д╨╛╤А╨╝╨╕╤А╤Г╨╡╨╝ ╨║╨╜╨╛╨┐╨║╤Г ╨╖╨░╨║╤А╤Л╤В╨╕╤П */
+.close {
+ position: absolute;
+ padding: 0;
+ top: -24px;
+ right: -24px;
+ opacity: 1;
+ text-align: center;
+ text-decoration: none;
+ font-weight: bold;
+ line-height: 20px;
+ -webkit-transition: background-color ease .7s;
+ -moz-transition: background-color ease .7s;
+ -ms-transition: background-color ease .7s;
+ -o-transition: background-color ease .7s;
+ transition: background-color ease .7s; }
+ .close:hover:before {
+ color: #efba00; }
+
+.close:before {
+ color: rgba(255, 255, 255, 0.9);
+ content: '\2715';
+ text-shadow: 0 -1px rgba(0, 0, 0, 0.9);
+ font-size: 22px;
+ color: #fcd016; }
+
+.has-error input {
+ border: 1px solid #dc0a05 !important;
+ box-shadow: none !important; }
+
+.form-control {
+ display: block;
+ box-sizing: border-box;
+ width: 100%;
+ height: 34px;
+ padding: 6px 12px;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #555;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
+ -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
+ transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; }
+
+.has-error label, .has-error .help-block {
+ color: red; }
+.has-error input {
+ border: 1px solid red;
+ box-shadow: none !important; }
+
+.form-group {
+ margin-bottom: 20px; }
+ .form-group label {
+ line-height: 24px; }
+
+.form-group-2-l {
+ display: flex; }
+ .form-group-2-l label {
+ line-height: 24px;
+ height: 34px;
+ padding: 5px; }
+
+.form-footer {
+ padding-top: 20px;
+ text-align: center; }
+
+.modal {
+ text-align: center;
+ padding: 0 !important; }
+ .modal:before {
+ content: '';
+ display: inline-block;
+ height: 100%;
+ vertical-align: middle;
+ margin-right: -4px; }
+ .modal .modal-header {
+ padding-bottom: 0;
+ border-bottom: none; }
+ @media (min-width: 992px) {
+ .modal .modal-header {
+ padding: 40px 180px 0; }
+ .modal .modal-body {
+ padding: 0 180px 40px; } }
+
+.modal-dialog {
+ display: inline-block;
+ text-align: left;
+ vertical-align: middle;
+ margin: 30px; }
+
+/*! Pushy - v1.0.0 - 2016-3-1
+* Pushy is a responsive off-canvas navigation menu using CSS transforms & transitions.
+* https://github.com/christophery/pushy/
+* by Christopher Yee */
+/* Menu Appearance */
+.pushy {
+ position: fixed;
+ width: 300px;
+ height: 100%;
+ top: 0;
+ z-index: 11;
+ background: #00aeff;
+ overflow: auto;
+ visibility: hidden;
+ -webkit-overflow-scrolling: touch;
+ /* enables momentum scrolling in iOS overflow elements */ }
+ .pushy a {
+ display: block;
+ color: rgba(255, 255, 255, 0.8);
+ padding: 15px 30px;
+ text-decoration: none;
+ outline: 0;
+ font-size: 18px;
+ text-transform: uppercase; }
+ .pushy a:hover {
+ color: #FFF; }
+ .pushy ul:first-child {
+ margin-top: 70px; }
+ .pushy.pushy-left {
+ left: 0; }
+ .pushy.pushy-right {
+ right: 0; }
+
+/* Menu Movement */
+.pushy-left {
+ -webkit-transform: translate3d(-300px, 0, 0);
+ -ms-transform: translate3d(-300px, 0, 0);
+ transform: translate3d(-300px, 0, 0); }
+
+.pushy-open-left #container,
+.pushy-open-left .push {
+ -webkit-transform: translate3d(300px, 0, 0);
+ -ms-transform: translate3d(300px, 0, 0);
+ transform: translate3d(300px, 0, 0); }
+
+.pushy-right {
+ -webkit-transform: translate3d(300px, 0, 0);
+ -ms-transform: translate3d(300px, 0, 0);
+ transform: translate3d(300px, 0, 0); }
+
+.pushy-open-right #container,
+.pushy-open-right .push {
+ -webkit-transform: translate3d(-300px, 0, 0);
+ -ms-transform: translate3d(-300px, 0, 0);
+ transform: translate3d(-300px, 0, 0); }
+
+.pushy-open-left .pushy,
+.pushy-open-right .pushy {
+ -webkit-transform: translate3d(0, 0, 0);
+ -ms-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0); }
+
+/* Menu Transitions */
+#container,
+.pushy,
+.push {
+ transition: transform 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99); }
+
+/* Site Overlay */
+.site-overlay {
+ display: none; }
+
+.pushy-open-left .site-overlay,
+.pushy-open-right .site-overlay {
+ display: block;
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 10;
+ background-color: rgba(0, 0, 0, 0.5);
+ -webkit-animation: fade 500ms;
+ animation: fade 500ms; }
+
+@keyframes fade {
+ 0% {
+ opacity: 0; }
+ 100% {
+ opacity: 1; } }
+@-webkit-keyframes fade {
+ 0% {
+ opacity: 0; }
+ 100% {
+ opacity: 1; } }
+/* Submenu Appearance */
+.pushy-submenu {
+ /* Submenu Icon */ }
+ .pushy-submenu ul {
+ padding-left: 15px;
+ transition: max-height 0.2s ease-in-out; }
+ .pushy-submenu ul .pushy-link {
+ transition: opacity 0.2s ease-in-out; }
+ .pushy-submenu > a {
+ position: relative; }
+ .pushy-submenu > a::after {
+ content: '';
+ display: block;
+ height: 11px;
+ width: 8px;
+ position: absolute;
+ top: 50%;
+ right: 15px;
+ background: url("../img/arrow.svg") no-repeat;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%);
+ transition: transform 0.2s; }
+
+/* Submenu Movement */
+.pushy-submenu-closed ul {
+ max-height: 0;
+ overflow: hidden; }
+.pushy-submenu-closed .pushy-link {
+ opacity: 0; }
+
+.pushy-submenu-open {
+ /* Submenu Icon */ }
+ .pushy-submenu-open ul {
+ max-height: 1000px; }
+ .pushy-submenu-open .pushy-link {
+ opacity: 1; }
+ .pushy-submenu-open a::after {
+ -webkit-transform: translateY(-50%) rotate(90deg);
+ -ms-transform: translateY(-50%) rotate(90deg);
+ transform: translateY(-50%) rotate(90deg); }
+
+.no-csstransforms3d .pushy-submenu-closed ul {
+ max-height: none;
+ display: none; }
+
+/*
+ * Owl Carousel - Core
+ */
+.owl-carousel {
+ display: none;
+ width: 100%;
+ -webkit-tap-highlight-color: transparent;
+ /* position relative and z-index fix webkit rendering fonts issue */
+ position: relative;
+ z-index: 1; }
+ .owl-carousel .owl-stage {
+ position: relative;
+ -ms-touch-action: pan-Y; }
+ .owl-carousel .owl-stage:after {
+ content: ".";
+ display: block;
+ clear: both;
+ visibility: hidden;
+ line-height: 0;
+ height: 0; }
+ .owl-carousel .owl-stage-outer {
+ position: relative;
+ overflow: hidden;
+ /* fix for flashing background */
+ -webkit-transform: translate3d(0px, 0px, 0px); }
+ .owl-carousel .owl-item {
+ position: relative;
+ min-height: 1px;
+ float: left;
+ -webkit-backface-visibility: hidden;
+ -webkit-tap-highlight-color: transparent;
+ -webkit-touch-callout: none; }
+ .owl-carousel .owl-item img {
+ display: block;
+ width: 100%;
+ -webkit-transform-style: preserve-3d; }
+ .owl-carousel .owl-nav.disabled,
+ .owl-carousel .owl-dots.disabled {
+ display: none; }
+ .owl-carousel .owl-nav .owl-prev,
+ .owl-carousel .owl-nav .owl-next,
+ .owl-carousel .owl-dot {
+ cursor: pointer;
+ cursor: hand;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+ .owl-carousel.owl-loaded {
+ display: block; }
+ .owl-carousel.owl-loading {
+ opacity: 0;
+ display: block; }
+ .owl-carousel.owl-hidden {
+ opacity: 0; }
+ .owl-carousel.owl-refresh .owl-item {
+ display: none; }
+ .owl-carousel.owl-drag .owl-item {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+ .owl-carousel.owl-grab {
+ cursor: move;
+ cursor: grab; }
+ .owl-carousel.owl-rtl {
+ direction: rtl; }
+ .owl-carousel.owl-rtl .owl-item {
+ float: right; }
+
+/* No Js */
+.no-js .owl-carousel {
+ display: block; }
+
+/*
+ * Owl Carousel - Animate Plugin
+ */
+.owl-carousel .animated {
+ animation-duration: 1000ms;
+ animation-fill-mode: both; }
+.owl-carousel .owl-animated-in {
+ z-index: 0; }
+.owl-carousel .owl-animated-out {
+ z-index: 1; }
+.owl-carousel .fadeOut {
+ animation-name: fadeOut; }
+
+@keyframes fadeOut {
+ 0% {
+ opacity: 1; }
+ 100% {
+ opacity: 0; } }
+/*
+ * Owl Carousel - Auto Height Plugin
+ */
+.owl-height {
+ transition: height 500ms ease-in-out; }
+
+/*
+ * Owl Carousel - Lazy Load Plugin
+ */
+.owl-carousel .owl-item .owl-lazy {
+ opacity: 0;
+ transition: opacity 400ms ease; }
+.owl-carousel .owl-item img.owl-lazy {
+ transform-style: preserve-3d; }
+
+/*
+ * Owl Carousel - Video Plugin
+ */
+.owl-carousel .owl-video-wrapper {
+ position: relative;
+ height: 100%;
+ background: #000; }
+.owl-carousel .owl-video-play-icon {
+ position: absolute;
+ height: 80px;
+ width: 80px;
+ left: 50%;
+ top: 50%;
+ margin-left: -40px;
+ margin-top: -40px;
+ background: url("owl.video.play.png") no-repeat;
+ cursor: pointer;
+ z-index: 1;
+ -webkit-backface-visibility: hidden;
+ transition: transform 100ms ease; }
+.owl-carousel .owl-video-play-icon:hover {
+ transform: scale(1.3, 1.3); }
+.owl-carousel .owl-video-playing .owl-video-tn,
+.owl-carousel .owl-video-playing .owl-video-play-icon {
+ display: none; }
+.owl-carousel .owl-video-tn {
+ opacity: 0;
+ height: 100%;
+ background-position: center center;
+ background-repeat: no-repeat;
+ background-size: contain;
+ transition: opacity 400ms ease; }
+.owl-carousel .owl-video-frame {
+ position: relative;
+ z-index: 1;
+ height: 100%;
+ width: 100%; }
+
+/*
+ * Default theme - Owl Carousel CSS File
+ */
+.owl-theme .owl-nav {
+ margin-top: 10px;
+ text-align: center;
+ -webkit-tap-highlight-color: transparent; }
+ .owl-theme .owl-nav [class*='owl-'] {
+ color: #D6D6D6;
+ font-size: 36px;
+ margin: 5px;
+ padding: 4px 7px;
+ background: transperent;
+ display: inline-block;
+ cursor: pointer;
+ border-radius: 3px; }
+ .owl-theme .owl-nav [class*='owl-']:hover {
+ background: transperent;
+ color: #00aeff;
+ text-decoration: none; }
+ .owl-theme .owl-nav .disabled {
+ opacity: 0.5;
+ cursor: default; }
+.owl-theme .owl-nav.disabled + .owl-dots {
+ margin-top: 10px; }
+.owl-theme .owl-dots {
+ text-align: center;
+ -webkit-tap-highlight-color: transparent;
+ background: #f2f2f2;
+ margin: 0 -20px; }
+ .owl-theme .owl-dots .owl-dot {
+ display: inline-block;
+ zoom: 1;
+ *display: inline; }
+ .owl-theme .owl-dots .owl-dot span {
+ width: 64px;
+ height: 2px;
+ margin: 20px 7px;
+ background: #d7d7d7;
+ display: block;
+ -webkit-backface-visibility: visible;
+ transition: opacity 200ms ease;
+ border-radius: 30px; }
+ .owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span {
+ background: #00aeff; }
+
+.yyy * {
+ outline: 1px solid red; }
+
+body {
+ background-position: top center;
+ background-repeat: no-repeat;
+ font-family: 'Open Sans', sans-serif;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 1.2;
+ color: #333333;
+ position: relative; }
+
+.container {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto; }
+ @media (min-width: 768px) {
+ .container {
+ width: 750px; } }
+ @media (min-width: 992px) {
+ .container {
+ width: 930px; } }
+ @media (min-width: 1200px) {
+ .container {
+ width: 1170px; } }
+
+.row {
+ margin-right: -15px;
+ margin-left: -15px; }
+
+.flex-block-2, .flex-block-3 {
+ padding: 0 15px; }
+
+@media (min-width: 480px) {
+ .flex-container-xs {
+ display: flex;
+ flex-wrap: wrap; }
+ .flex-container-xs > .flex-block-2 {
+ width: 50%; }
+ .flex-container-xs > .flex-block-3 {
+ width: calc( 100% / 3 ); } }
+@media (min-width: 768px) {
+ .flex-container-sm {
+ display: flex;
+ flex-wrap: wrap; }
+ .flex-container-sm > .flex-block-2 {
+ width: 50%; } }
+@media (min-width: 992px) {
+ .flex-container-md {
+ display: flex;
+ flex-wrap: wrap; }
+ .flex-container-md > .flex-block-2 {
+ width: 50%; } }
+@media (min-width: 1200px) {
+ .flex-container-lg {
+ display: flex;
+ flex-wrap: wrap; }
+ .flex-container-lg > .flex-block-2 {
+ width: 50%; } }
+header {
+ position: fixed;
+ width: 100%;
+ z-index: 9; }
+ header .container {
+ position: relative; }
+ header .container .navbar-brand {
+ padding: 0 15px;
+ width: 195px;
+ height: 57px;
+ background-image: url("../images/logo.png");
+ background-repeat: no-repeat;
+ transition: all 0.8s; }
+ .contrast header .container .navbar-brand {
+ background-image: url("../images/logo2.png"); }
+
+/* Icon 1 */
+.menu-btn {
+ width: 30px;
+ height: 22.5px;
+ position: fixed;
+ top: 16px;
+ right: 15px;
+ z-index: 15;
+ margin: 0 auto;
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -o-transform: rotate(0deg);
+ transform: rotate(0deg);
+ -webkit-transition: .5s ease-in-out;
+ -moz-transition: .5s ease-in-out;
+ -o-transition: .5s ease-in-out;
+ transition: .5s ease-in-out;
+ cursor: pointer; }
+ .menu-btn span {
+ display: block;
+ position: absolute;
+ height: 4px;
+ width: 100%;
+ background: #00aeff;
+ border-radius: 9px;
+ opacity: 1;
+ left: 0;
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -o-transform: rotate(0deg);
+ transform: rotate(0deg);
+ -webkit-transition: .25s ease-in-out;
+ -moz-transition: .25s ease-in-out;
+ -o-transition: .25s ease-in-out;
+ transition: .25s ease-in-out; }
+ .menu-btn span:nth-child(1) {
+ top: 0px;
+ -webkit-transform-origin: left center;
+ -moz-transform-origin: left center;
+ -o-transform-origin: left center;
+ transform-origin: left center; }
+ .menu-btn span:nth-child(2) {
+ top: 9px;
+ -webkit-transform-origin: left center;
+ -moz-transform-origin: left center;
+ -o-transform-origin: left center;
+ transform-origin: left center; }
+ .menu-btn span:nth-child(3) {
+ top: 18px;
+ -webkit-transform-origin: left center;
+ -moz-transform-origin: left center;
+ -o-transform-origin: left center;
+ transform-origin: left center; }
+ .menu-btn.open span {
+ background: white; }
+ .menu-btn.open span:nth-child(1) {
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -o-transform: rotate(45deg);
+ transform: rotate(45deg);
+ top: -3px;
+ left: 8px; }
+ .menu-btn.open span:nth-child(2) {
+ width: 0%;
+ opacity: 0; }
+ .menu-btn.open span:nth-child(3) {
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -o-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ top: 18px;
+ left: 8px; }
+
+h1 {
+ font-size: 46px;
+ font-weight: 700;
+ color: #00aeff;
+ margin-bottom: 20px; }
+ h1 span {
+ color: #ffc000; }
+ @media (min-width: 480px) {
+ h1 {
+ font-size: 64px; } }
+
+h2 {
+ font-size: 32px;
+ font-weight: 700;
+ text-transform: uppercase;
+ text-align: center;
+ margin-bottom: 40px; }
+
+h4 {
+ font-size: 20px;
+ font-weight: 700;
+ text-transform: uppercase;
+ text-align: center;
+ margin-bottom: 20px; }
+
+p {
+ font-size: 16px;
+ margin-bottom: 10px; }
+
+.m-b-10 {
+ margin-bottom: 10px; }
+
+.m-b-20 {
+ margin-bottom: 20px; }
+
+.btn {
+ min-width: 100%;
+ height: 48px;
+ line-height: 36px;
+ padding: 6px 24px;
+ text-align: center;
+ display: inline-block;
+ background: #fff200;
+ color: #333333;
+ border-bottom: 2px solid #ffc000;
+ border-radius: 4px;
+ text-decoration: none;
+ font-size: 13px;
+ font-weight: 700;
+ text-transform: uppercase;
+ box-sizing: border-box; }
+ .btn:hover {
+ border-bottom: 2px solid #fff200; }
+ @media (min-width: 480px) {
+ .btn {
+ min-width: 262px; } }
+
+.btn-questions, .btn-questions-left, .btn-questions-right {
+ display: none;
+ height: 34px;
+ background: rgba(0, 0, 0, 0.6);
+ padding: 3px 0 0 34px;
+ color: rgba(255, 255, 255, 0.9);
+ font-size: 10px;
+ text-transform: uppercase;
+ line-height: 14px;
+ text-align: left;
+ text-decoration: none;
+ position: absolute;
+ bottom: 5px;
+ overflow: hidden;
+ width: 166px;
+ padding-left: 40px;
+ transition: 0.2s; }
+ .btn-questions:before, .btn-questions-left:before, .btn-questions-right:before {
+ position: absolute;
+ left: 5px;
+ top: 50%;
+ margin-top: -12px;
+ width: 24px;
+ height: 24px;
+ background: url(../images/questions.png) no-repeat;
+ content: ''; }
+ .btn-questions:hover, .btn-questions-left:hover, .btn-questions-right:hover {
+ color: white; }
+
+@media (min-width: 992px) {
+ .btn-questions, .btn-questions-left, .btn-questions-right {
+ display: block; } }
+.btn-questions-left {
+ left: 0;
+ border-bottom-right-radius: 34px;
+ border-top-right-radius: 34px; }
+
+.btn-questions-right {
+ right: 0;
+ border-bottom-left-radius: 34px;
+ border-top-left-radius: 34px; }
+
+.link {
+ color: #00aeff;
+ text-decoration: underline; }
+ .link:hover {
+ text-decoration: none; }
+
+.text-center {
+ text-align: center; }
+
+.text-primary {
+ color: #00aeff; }
+
+.text-right {
+ text-align: right; }
+
+.text-danger {
+ color: red; }
+.danger-text label:after{
+ content:'*';
+ color:red;
+}
+
+header{
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#000000', endColorstr = 'transparent');
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr = '#000000', endColorstr = 'transparent')";
+ background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.45), transparent);
+ background-image: -ms-linear-gradient(top, rgba(0, 0, 0, 0.45), transparent);
+ background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.45), transparent);
+ background-image: -webkit-gradient(linear, center top, center bottom, from(rgba(0, 0, 0, 0.45)), to(transparent));
+ background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.45), transparent);
+ background-image: linear-gradient(top, rgba(0, 0, 0, 0.45), transparent);
+}
+
+.form-group-2-l .form-group{
+ display: -webkit-inline-box;
+ width: 50%;
+ margin-right: 5%;
+}
+.form-group-2-l{
+ margin-top: 5px;
+}
+.has-success .form-control{
+ border-color:#ccc;
+}
+.has-success .control-label{
+ color:#000!important;
+}
+.form-control:focus, .has-success .form-control:focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102,175,233,.6);
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102,175,233,.6);
+}
+
+strong {
+ font-weight: 700; }
+
+em {
+ font-style: italic; }
+
+.d-inline-block {
+ display: inline-block; }
+
+.page_section {
+ padding: 60px 0; }
+
+.navbar {
+ background: #00aeff;
+ width: 280px;
+ height: 100ch;
+ position: fixed;
+ top: 0;
+ right: 0;
+ z-index: 10; }
+ .navbar ul {
+ display: flex;
+ flex-direction: column; }
+ .navbar ul li {
+ border-top: 1px solid white; }
+ .navbar ul li a {
+ color: white;
+ text-decoration: none;
+ padding: 20px;
+ font-size: 16px;
+ display: inline-block; }
+
+.for-lang {
+ position: relative; }
+ .for-lang .language {
+ display: block;
+ position: absolute;
+ top: 74px;
+ right: 7px;
+ font-size: 14px;
+ border-radius: 10px;
+ background: transparent;
+ transition: all 0.2s;
+ z-index: 15; }
+ .for-lang .language div {
+ display: none; }
+ .for-lang .language a, .for-lang .language span {
+ display: inline-block;
+ padding: 5px 24px 5px 10px;
+ position: relative;
+ text-transform: uppercase;
+ color: #00aeff; }
+ .for-lang .language a {
+ text-decoration: underline; }
+ .for-lang .language a:hover {
+ text-decoration: none; }
+ .for-lang .language span:before {
+ position: absolute;
+ right: 8px;
+ top: 50%;
+ margin-top: -2px;
+ content: '';
+ width: 8px;
+ height: 5px;
+ background: url(../images/toggler.png) no-repeat;
+ transition: all 0.2s; }
+ .for-lang .language:hover {
+ background: rgba(0, 0, 0, 0.5); }
+ .for-lang .language:hover span:before {
+ transform: rotate(180deg);
+ -webkit-transform: rotate(180deg); }
+ .for-lang .language:hover div {
+ display: block; }
+ @media (min-width: 480px) {
+ .for-lang .language {
+ top: 16px;
+ right: 100px; } }
+
+.section1 {
+ width: 100%; }
+ .section1 .container {
+ position: relative;
+ max-height: 1200px;
+ height: 100vh;
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end; }
+ .section1 .btn {
+ margin-bottom: 20px; }
+ .section1.box-1 {
+ background-image: url(../images/slider/big-bg-1.jpg);
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-attachment: fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+ transition: 0.5s; }
+ .section1 .slider_wr_ {
+ display: none; }
+ .section1 .slider_wr_ img {
+ box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.75); }
+ @media (min-width: 768px) {
+ .section1 .slider_wr_ {
+ display: block; }
+ .section1 .slider_wr_ .slide-ul {
+ display: flex; }
+ .section1 .slider_wr_ .slide-ul li {
+ margin: 15px; } }
+ .section1 .slider_wr_ .time-bloks {
+ width: 100%;
+ height: 5px;
+ background: #5c5a64;
+ z-index: 2;
+ display: none; }
+ .section1 .slider_wr_ .slide-ul .active_n .time-bloks {
+ display: block; }
+ .section1 .slider_wr_ .time-bloks-line {
+ width: 0;
+ height: 100%;
+ background: #00aeff; }
+
+@media (min-width: 992px) {
+ .section2 {
+ background-image: url("../images/2/bg2.jpg");
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-attachment: fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover; } }
+.section2 .flex-block-2 {
+ text-align: center;
+ position: relative; }
+ .section2 .flex-block-2 img {
+ display: inline-block;
+ margin-bottom: 10px; }
+ .section2 .flex-block-2 h3 {
+ color: #00aeff;
+ font-weight: 700; }
+ .section2 .flex-block-2 h3 .big {
+ font-size: 24px; }
+ .section2 .flex-block-2 p {
+ margin-bottom: 20px; }
+
+.section3 {
+ background-image: url("../images/3/bg.jpg");
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-attachment: fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover; }
+ .section3 h2 {
+ color: white; }
+ .section3 .card {
+ background: white;
+ box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.3);
+ padding: 20px 20px 0;
+ margin-bottom: 20px; }
+ .section3 .nav-tabs {
+ border-bottom: 2px solid #DDD; }
+ .section3 .nav-tabs.nav-tabs-main > li {
+ width: calc(100%/3); }
+ @media (min-width: 480px) {
+ .section3 .nav-tabs.nav-tabs-main > li {
+ width: inherit; } }
+ .section3 .nav-tabs.nav-tabs-year {
+ border-bottom: 2px solid transparent; }
+ .section3 .nav-tabs > li.active > a,
+ .section3 .nav-tabs > li.active > a:focus,
+ .section3 .nav-tabs > li.active > a:hover {
+ border-width: 0; }
+ .section3 .nav-tabs > li > a, .section3 .nav-tabs > li > span {
+ border: none;
+ color: #333333;
+ font-weight: bold;
+ padding: 10px 15px;
+ display: inline-block; }
+ .section3 .nav-tabs > li.active > a, .section3 .nav-tabs > li > a:hover {
+ border: none;
+ color: #00aeff;
+ background: transparent; }
+ .section3 .nav-tabs > li > a::after {
+ content: "";
+ background: #00aeff;
+ height: 2px;
+ position: absolute;
+ width: 100%;
+ left: 0px;
+ bottom: -1px;
+ transition: all 250ms ease 0s;
+ transform: scale(0); }
+ .section3 .nav-tabs > li.active > a::after, .section3 .nav-tabs > li:hover > a::after {
+ transform: scale(1); }
+ .section3 .tab-nav > li > a::after {
+ background: #21527d none repeat scroll 0% 0%;
+ color: #fff; }
+ .section3 .tab-pane {
+ padding: 15px 0 0 0; }
+ .section3 .tab-content {
+ padding: 0; }
+ .section3 .owl-carousel .item .btn {
+ min-width: inherit;
+ margin-bottom: 20px; }
+ .section3 .owl-carousel .item .img {
+ margin-bottom: 10px; }
+ .section3 .owl-carousel .item .specifications {
+ margin-bottom: 10px; }
+ .section3 .owl-carousel .item .specifications p {
+ font-size: 13px;
+ margin-bottom: 0; }
+ .section3 .owl-carousel .item .price {
+ font-size: 18px;
+ color: #00aeff;
+ text-align: center;
+ margin-top: 6px;
+ margin-bottom: 20px; }
+
+@media (min-width: 992px) {
+ .section4 {
+ background-image: url("../images/4/bg2.jpg");
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-attachment: fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover; } }
+.section4 .flex-block-2 {
+ text-align: center;
+ position: relative; }
+ .section4 .flex-block-2 img {
+ display: inline-block;
+ margin-bottom: 10px; }
+ .section4 .flex-block-2 p {
+ margin-bottom: 20px; }
+
+.section5 {
+ background-image: url("../images/5/bg.jpg");
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-attachment: fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+ transition: 0.5s; }
+ .section5 h2 {
+ color: white; }
+ .section5 .r-b-p-2 {
+ border-left: 2px solid #00aeff;
+ padding-left: 10px;
+ color: white; }
+ .section5 .r-b-p-2 .text-yellow {
+ color: #fff200; }
+ .section5 .r-b-p-2:first-child {
+ display: flex;
+ align-items: center;
+ padding-right: 20px; }
+ .section5 .card {
+ background: white;
+ padding: 20px;
+ margin-bottom: 20px;
+ position: relative; }
+ .section5 .card .deposit {
+ width: 190px;
+ height: 43px;
+ border-left: 18px solid transparent;
+ border-bottom: 43px solid #00aeff;
+ margin-right: -20px;
+ display: inline-block; }
+ @media (min-width: 480px) {
+ .section5 .card .deposit {
+ position: absolute;
+ bottom: 0;
+ right: 0; } }
+ .section5 .card .deposit p {
+ color: #fff;
+ float: left;
+ font-size: 24px;
+ font-weight: 700;
+ line-height: 43px;
+ margin-bottom: 0; }
+ .section5 .card .deposit p span {
+ font-weight: normal;
+ font-size: 13px;
+ width: 80px;
+ display: table-cell;
+ line-height: 15px;
+ height: 43px;
+ vertical-align: middle;
+ padding-left: 10px; }
+ .section5 .card .price {
+ margin-bottom: 20px;
+ position: relative; }
+ .section5 .card .price .price-row {
+ overflow: hidden; }
+ .section5 .card .price .price-name .price-name-title {
+ float: left;
+ margin-right: 5px;
+ font-size: 15px;
+ line-height: 30px;
+ color: #333; }
+ .section5 .card .price .price-name .price-name-border {
+ overflow: hidden; }
+ .section5 .card .price .price-name .price-name-border span {
+ width: 100%;
+ height: 21px;
+ border-bottom: 2px dotted #b7b7b7;
+ display: block; }
+ .section5 .card .price .price-cost {
+ font-size: 15px;
+ color: #00aeff;
+ line-height: 30px;
+ margin-left: 5px;
+ float: left; }
+ .section5 .card .price .price-name-wr {
+ width: 102px;
+ float: left; }
+ .section5 .card ul {
+ margin-bottom: 20px; }
+ .section5 .card ul li {
+ margin-bottom: 10px; }
+ .section5 .card ul li:before {
+ content: '';
+ height: 6px;
+ width: 6px;
+ background: #00aeff;
+ margin-right: 12px;
+ display: inline-block;
+ border-radius: 50%; }
+ .section5 .card .flex-block-3 {
+ text-align: center; }
+ .section5 .card .flex-block-3 img {
+ display: inline-block; }
+ .section5 h3 {
+ font-size: 18px;
+ font-weight: 700;
+ border-bottom: 1px solid #b7b7b7;
+ margin-bottom: 10px;
+ text-transform: uppercase; }
+
+.section6 {
+ text-align: center; }
+ .section6 h3 {
+ font-size: 24px;
+ color: #00aeff;
+ margin-bottom: 20px; }
+ .section6 p {
+ font-size: 14px;
+ margin-bottom: 20px; }
+ @media (min-width: 992px) {
+ .section6 {
+ background-image: url("../images/6/bg2.jpg");
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-attachment: fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover; } }
+ .section6 .blue {
+ background: #f1f8fc;
+ padding: 20px 20px;
+ margin-bottom: 20px; }
+ .section6 a.facebook {
+ padding-left: 60px;
+ background-image: url("../images/6/f.png");
+ background-repeat: no-repeat;
+ background-position: center left;
+ height: 48px;
+ text-align: left;
+ display: inline-block;
+ color: #00aeff;
+ font-weight: bold;
+ margin-left: 20px; }
+ .section6 a.facebook span {
+ position: relative;
+ text-decoration: underline;
+ top: 8px; }
+ .section6 a.facebook:hover span {
+ text-decoration: none; }
+ .section6 ul {
+ display: flex;
+ justify-content: center; }
+ .section6 ul li {
+ font-weight: bold;
+ display: inline-block;
+ padding: 5px 20px;
+ text-align: center;
+ color: #00aeff; }
+ .section6 ul li + li {
+ border-left: 1px solid #b7b7b7; }
+
+.section7 {
+ background-image: url("../images/7/bg.jpg");
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-attachment: fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+ transition: 0.5s;
+ padding-bottom: 40px; }
+ .section7 h2 {
+ color: white; }
+ .section7 .flex-container {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center; }
+ .section7 .flex-container > .flex-block {
+ width: 200px;
+ height: 60px;
+ line-height: 68px;
+ text-align: center;
+ background: white;
+ padding: 5px;
+ margin: 0 20px 20px 20px; }
+
+.section8 .container {
+ position: relative; }
+.section8 .gmap {
+ display: none;
+ width: 100%;
+ height: 500px; }
+ @media (min-width: 992px) {
+ .section8 .gmap {
+ display: block; } }
+.section8 .contacts {
+ background: white;
+ text-align: center;
+ margin: 50px 0; }
+ .section8 .contacts .contacts-img {
+ display: none; }
+ @media (min-width: 992px) {
+ .section8 .contacts {
+ display: block; }
+ .section8 .contacts .contacts-tile {
+ padding: 10px 15px;
+ background: #00aeff;
+ color: white; }
+ .section8 .contacts .contacts-tile h2 {
+ margin: 0; }
+ .section8 .contacts .contacts-block {
+ padding: 10px 15px; }
+ .section8 .contacts .contacts-img {
+ display: block;
+ width: 100%; } }
+ @media (min-width: 992px) {
+ .section8 .contacts {
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: calc(100%/4);
+ z-index: 3; } }
+
+footer {
+ padding: 12px 0 6px;
+ background: #333333;
+ color: white; }
+ footer p {
+ font-size: 14px; }
+ @media (min-width: 768px) {
+ footer .flex-block-2:last-child {
+ text-align: right; } }
+ footer a {
+ text-decoration: underline;
+ color: white;
+ display: inline-block; }
+ footer a img {
+ float: right;
+ margin-left: 10px; }
+ footer a:hover {
+ text-decoration: none; }
+
+/*# sourceMappingURL=theme-style.css.map */
diff --git a/frontend/web/css/theme-style.css.map b/frontend/web/css/theme-style.css.map
new file mode 100755
index 0000000..5c6b7d6
--- /dev/null
+++ b/frontend/web/css/theme-style.css.map
@@ -0,0 +1,7 @@
+{
+"version": 3,
+"mappings": "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",
+"sources": ["reset.scss","modal.scss","breakpoints.scss","pushy.scss","theme-style.scss","owl.carousel/_core.scss","owl.carousel/_animate.scss","owl.carousel/_autoheight.scss","owl.carousel/_lazyload.scss","owl.carousel/_video.scss","owl.carousel/_theme.default.scss","owl.carousel/_theme.scss"],
+"names": [],
+"file": "theme-style.css"
+}
\ No newline at end of file
diff --git a/frontend/web/css/theme-style.scss b/frontend/web/css/theme-style.scss
new file mode 100755
index 0000000..85c0e6b
--- /dev/null
+++ b/frontend/web/css/theme-style.scss
@@ -0,0 +1,924 @@
+$grid-gutter-width: 15px;
+$primary-color: #00aeff;
+$margin-lg: 50px;
+
+
+@import "reset";
+@import "breakpoints";
+@import "modal";
+@import "pushy";
+
+@import "owl.carousel/owl.carousel";
+@import "test";
+
+
+
+
+.yyy *{
+ outline: 1px solid red;
+}
+body{
+ //background-image:url("../images/bg.jpg");
+// background: black;
+ background-position:top center;
+ background-repeat:no-repeat;
+ font-family: 'Open Sans', sans-serif;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 1.2;
+ color: #333333;
+ position: relative;
+}
+
+.container {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
+ //outline: 1px solid red;
+ @include respond-to('sm') {
+ width: 750px;
+ //outline: 1px solid blue;
+ }
+ @include respond-to ('md') {
+ width: 930px;
+ // outline: 1px solid yellow;
+ }
+ @include respond-to ('lg') {
+ width: 1170px;
+ // outline: 1px solid darkblue;
+ }
+}
+.row {
+ margin-right: -$grid-gutter-width;
+ margin-left: -$grid-gutter-width;
+}
+.flex-block-2,.flex-block-3 {
+ padding: 0 $grid-gutter-width;
+}
+@include respond-to('xs') {
+ .flex-container-xs {
+ display: flex;
+ flex-wrap: wrap;
+ &>.flex-block-2 {
+ width: 50%;
+ }
+ &>.flex-block-3 {
+ width: calc( 100% / 3 );
+ }
+ }
+}
+@include respond-to('sm') {
+ .flex-container-sm {
+ display: flex;
+ flex-wrap: wrap;
+ &>.flex-block-2 {
+ width: 50%;
+ }
+ }
+ }
+@include respond-to('md') {
+ .flex-container-md {
+ display: flex;
+ flex-wrap: wrap;
+ &>.flex-block-2 {
+ width: 50%;
+ }
+ }
+}
+@include respond-to('lg') {
+ .flex-container-lg {
+ display: flex;
+ flex-wrap: wrap;
+ &>.flex-block-2 {
+ width: 50%;
+ }
+ }
+}
+
+header {
+ position: fixed;
+ width: 100%;
+ z-index: 9;
+ .container {
+ position: relative;
+ .navbar-brand {
+ padding: 0 15px;
+ width: 195px;
+ height: 57px;
+ background-image: url("../images/logo.png");
+ background-repeat: no-repeat;
+ transition: all 0.8s;
+ .contrast &{
+ background-image: url("../images/logo2.png");
+ }
+ }
+ }
+}
+
+/* Icon 1 */
+.menu-btn{
+ width: 30px;
+ height: 22.5px;
+ position: fixed;
+ top: 16px;
+ right: 15px;
+ z-index: 15;
+ margin: 0 auto;
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -o-transform: rotate(0deg);
+ transform: rotate(0deg);
+ -webkit-transition: .5s ease-in-out;
+ -moz-transition: .5s ease-in-out;
+ -o-transition: .5s ease-in-out;
+ transition: .5s ease-in-out;
+ cursor: pointer;
+ & span {
+ display: block;
+ position: absolute;
+ height: 4px;
+ width: 100%;
+ background: $primary-color;
+ border-radius: 9px;
+ opacity: 1;
+ left: 0;
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -o-transform: rotate(0deg);
+ transform: rotate(0deg);
+ -webkit-transition: .25s ease-in-out;
+ -moz-transition: .25s ease-in-out;
+ -o-transition: .25s ease-in-out;
+ transition: .25s ease-in-out;
+ &:nth-child(1) {
+ top: 0px;
+ -webkit-transform-origin: left center;
+ -moz-transform-origin: left center;
+ -o-transform-origin: left center;
+ transform-origin: left center;
+ }
+ &:nth-child(2) {
+ top: 9px;
+ -webkit-transform-origin: left center;
+ -moz-transform-origin: left center;
+ -o-transform-origin: left center;
+ transform-origin: left center;
+ }
+ &:nth-child(3) {
+ top: 18px;
+ -webkit-transform-origin: left center;
+ -moz-transform-origin: left center;
+ -o-transform-origin: left center;
+ transform-origin: left center;
+ }
+ }
+
+ &.open span{
+ background: white;
+ &:nth-child(1) {
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -o-transform: rotate(45deg);
+ transform: rotate(45deg);
+ top: -3px;
+ left: 8px;
+ }
+
+ &:nth-child(2) {
+ width: 0%;
+ opacity: 0;
+ }
+
+ &:nth-child(3) {
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -o-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ top: 18px;
+ left: 8px;
+ }
+ }
+}
+h1{
+ font-size: 46px;
+ font-weight: 700;
+ color: $primary-color;
+ margin-bottom: 20px;
+ span{
+ color: #ffc000;
+ }
+ @include respond-to('xs'){
+ font-size: 64px;
+ }
+}
+h2{
+ font-size: 32px;
+ font-weight: 700;
+ text-transform: uppercase;
+ text-align: center;
+ margin-bottom: 40px;
+}
+h4{
+ font-size: 20px;
+ font-weight: 700;
+ text-transform: uppercase;
+ text-align: center;
+ margin-bottom: 20px;
+}
+p{
+ font-size: 16px;
+ margin-bottom: 10px;
+}
+.m-b-10{
+ margin-bottom: 10px;
+}
+.m-b-20{
+ margin-bottom: 20px;
+}
+.btn{
+ min-width: 100%;
+ height: 48px;
+ line-height: 36px;
+ padding: 6px 24px;
+ text-align: center;
+ display: inline-block;
+ background: #fff200;
+ color: #333333;
+ border-bottom: 2px solid #ffc000;
+ border-radius: 4px;
+ text-decoration: none;
+ font-size: 13px;
+ font-weight: 700;
+ text-transform: uppercase;
+ box-sizing: border-box;
+
+ &:hover{
+ border-bottom: 2px solid #fff200;
+ }
+ @include respond-to('xs'){
+ min-width: 262px;
+ }
+}
+.btn-questions{
+ display: none;
+ height: 34px;
+ background: rgba(0,0,0,0.6);
+ padding: 3px 0 0 34px;
+ color: rgba(256,256,256,.9);
+ font-size: 10px;
+ text-transform: uppercase;
+ line-height: 14px;
+ text-align: left;
+ text-decoration: none;
+ position: absolute;
+ bottom: 5px;
+ overflow: hidden;
+ width: 166px;
+ padding-left: 40px;
+ transition: 0.2s;
+ &:before {
+ position: absolute;
+ left: 5px;
+ top: 50%;
+ margin-top: -12px;
+ width: 24px;
+ height: 24px;
+ background: url(../images/questions.png) no-repeat;
+ content: '';
+ }
+ &:hover{
+ color: rgba(256,256,256,1);
+ }
+}
+@include respond-to('md'){
+ .btn-questions{
+ display: block;
+ }
+}
+.btn-questions-left{
+ @extend .btn-questions;
+ left: 0;
+ border-bottom-right-radius: 34px;
+ border-top-right-radius: 34px;
+}
+.btn-questions-right{
+ @extend .btn-questions;
+ right: 0;
+ border-bottom-left-radius: 34px;
+ border-top-left-radius: 34px;
+}
+.link{
+ color: $primary-color;
+ text-decoration: underline;
+ &:hover{
+ text-decoration: none;
+ }
+}
+.text-center{
+ text-align: center;
+}
+.text-primary{
+ color: $primary-color;
+}
+.text-right{
+ text-align: right;
+}
+.text-danger {
+ color: red;
+}
+strong{
+ font-weight: 700;
+}
+em{
+ font-style: italic;
+}
+.d-inline-block{
+ display: inline-block;
+}
+.page_section{
+ padding: 60px 0;
+}
+.navbar{
+ background: $primary-color;
+ width: 280px;
+ height: 100ch;
+ position: fixed;
+ top:0;
+ right: 0;
+ z-index: 10;
+ ul{
+ display: flex;
+ flex-direction: column;
+ li{
+ border-top: 1px solid white;
+ a{
+ color: white;
+ text-decoration: none ;
+ padding: 20px;
+ font-size: 16px;
+ display: inline-block;
+ }
+ }
+ }
+}
+.for-lang{
+ position: relative;
+ .language{
+ display: block;
+ position: absolute;
+ top: 74px;
+ right: 7px;
+ font-size: 14px;
+ border-radius: 10px;
+ background: transparent;
+ transition: all 0.2s;
+ z-index: 15;
+
+ div{
+ display: none;
+ }
+ a, span{
+ display: inline-block;
+ padding: 5px 24px 5px 10px;
+ position: relative;
+ text-transform: uppercase;
+ color: $primary-color;;
+ }
+ a{
+ text-decoration: underline;
+ &:hover{
+ text-decoration: none;
+ }
+ }
+ span:before {
+ position: absolute;
+ right: 8px;
+ top: 50%;
+ margin-top: -2px;
+ content: '';
+ width: 8px;
+ height: 5px;
+ background: url(../images/toggler.png) no-repeat;
+ transition: all 0.2s;
+ }
+ &:hover{
+ background: rgba(0,0,0,.5);
+ span:before {
+ transform: rotate(180deg);
+ -webkit-transform: rotate(180deg);
+ }
+ div{
+ display: block;
+ }
+ }
+ }
+ @include respond-to('xs'){
+ .language{
+ top: 16px;
+ right: 100px;
+ }
+ }
+
+}
+.section1{
+ width: 100%;
+ .container{
+ position: relative;
+ max-height: 1200px;
+ height: 100vh;
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
+ }
+
+ .btn{
+ margin-bottom: 20px;
+ }
+ &.box-1 {
+ background-image: url(../images/slider/big-bg-1.jpg);
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-attachment: fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+ transition: 0.5s;
+ }
+ .slider_wr_{
+ display: none;
+ img{
+ box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.75);
+ }
+ @include respond-to('sm') {
+ display: block;
+ .slide-ul{
+ display: flex;
+ li{
+ margin: 15px;
+ }
+ }
+ }
+ .time-bloks {
+ width: 100%;
+ height: 5px;
+ background: #5c5a64;
+ z-index: 2;
+ display: none;
+ }
+ .slide-ul .active_n .time-bloks {
+ display: block;
+ }
+ .time-bloks-line {
+ width: 0;
+ height: 100%;
+ background: #00aeff;
+ }
+ }
+}
+.section2{
+ @include respond-to('md') {
+ background-image: url("../images/2/bg2.jpg");
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-attachment: fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+ }
+ .flex-block-2{
+ text-align: center;
+ position: relative;
+ img{
+ display: inline-block;
+ margin-bottom: 10px;
+ }
+ h3{
+ color: $primary-color;
+ font-weight: 700;
+ .big{
+ font-size: 24px;
+ }
+ }
+ p{
+ margin-bottom: 20px;
+ }
+ }
+}
+.section3{
+ background-image: url("../images/3/bg.jpg");
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-attachment: fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+ h2{
+ color: white;
+ }
+ .card {
+ background: white;
+ box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.3);
+ padding: 20px 20px 0;
+ margin-bottom: 20px;
+ }
+ .nav-tabs{
+ border-bottom: 2px solid #DDD;
+ &.nav-tabs-main{
+ &> li{
+ width: calc(100%/3);
+ @include respond-to('xs'){
+ width: inherit;
+ }
+ }
+ }
+ &.nav-tabs-year{
+ border-bottom: 2px solid transparent;
+ }
+ }
+ .nav-tabs > li.active > a,
+ .nav-tabs > li.active > a:focus,
+ .nav-tabs > li.active > a:hover {
+ border-width: 0;
+ }
+ .nav-tabs > li > a, .nav-tabs > li > span {
+ border: none;
+ color: #333333;
+ font-weight: bold;
+ padding: 10px 15px;
+ display: inline-block;
+ }
+ .nav-tabs > li.active > a, .nav-tabs > li > a:hover {
+ border: none;
+ color: $primary-color;
+ background: transparent;
+ }
+ .nav-tabs > li > a::after {
+ content: "";
+ background: $primary-color;
+ height: 2px;
+ position: absolute;
+ width: 100%;
+ left: 0px;
+ bottom: -1px;
+ transition: all 250ms ease 0s;
+ transform: scale(0);
+ }
+ .nav-tabs > li.active > a::after, .nav-tabs > li:hover > a::after {
+ transform: scale(1);
+ }
+ .tab-nav > li > a::after {
+ background: #21527d none repeat scroll 0% 0%;
+ color: #fff;
+ }
+ .tab-pane{
+ padding: 15px 0 0 0;
+ }
+ .tab-content{
+ padding: 0;
+ }
+ .owl-carousel{
+ .item{
+ .btn{
+ min-width: inherit;
+ margin-bottom: 20px;
+ }
+ .img{
+ margin-bottom: 10px;
+ }
+ .specifications{
+ margin-bottom: 10px;
+ p{
+ font-size: 13px;
+ margin-bottom: 0;
+ }
+ }
+ .price {
+ font-size: 18px;
+ color: $primary-color;
+ text-align: center;
+ margin-top: 6px;
+ margin-bottom: 20px;
+ }
+ }
+ }
+}
+.section4{
+ @include respond-to('md') {
+ background-image: url("../images/4/bg2.jpg");
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-attachment: fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover
+ }
+ .flex-block-2{
+ text-align: center;
+ position: relative;
+ img{
+ display: inline-block;
+ margin-bottom: 10px;
+ }
+ p{
+ margin-bottom: 20px;
+ }
+ }
+}
+.section5{
+ background-image: url("../images/5/bg.jpg");
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-attachment: fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+ transition: 0.5s;
+ h2{
+ color: white;
+ }
+ .r-b-p-2{
+ border-left: 2px solid $primary-color;
+ padding-left: 10px;
+ color: white;
+ .text-yellow{
+ color: #fff200;
+ }
+ &:first-child{
+ display: flex;
+ align-items: center;
+ padding-right: 20px;
+ }
+ }
+ .card{
+ background: white;
+ padding: 20px;
+ margin-bottom: 20px;
+ position: relative;
+ .deposit{
+ width: 190px;
+ height: 43px;
+ border-left: 18px solid transparent;
+ border-bottom: 43px solid $primary-color;
+ margin-right: -20px;
+ display: inline-block;
+ @include respond-to('xs'){
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ }
+ p{
+ color: #fff;
+ float: left;
+ font-size: 24px;
+ font-weight: 700;
+ line-height: 43px;
+ margin-bottom: 0;
+ span {
+ font-weight: normal;
+ font-size: 13px;
+ width: 80px;
+ display: table-cell;
+ line-height: 15px;
+ height: 43px;
+ vertical-align: middle;
+ padding-left: 10px;
+ }
+ }
+ }
+ .price{
+ margin-bottom: 20px;
+ position: relative;
+ .price-row{
+ overflow: hidden;
+ }
+ .price-name{
+ .price-name-title {
+ float: left;
+ margin-right: 5px;
+ font-size: 15px;
+ line-height: 30px;
+ color: #333;
+ }
+ .price-name-border {
+ overflow: hidden;
+ span {
+ width: 100%;
+ height: 21px;
+ border-bottom: 2px dotted #b7b7b7;
+ display: block;
+ }
+ }
+ }
+ .price-cost {
+ font-size: 15px;
+ color: $primary-color;
+ line-height: 30px;
+ margin-left: 5px;
+ float: left;
+ }
+ .price-name-wr {
+ width: 102px;
+ float: left;
+ }
+ }
+ ul{
+ margin-bottom: 20px;
+ li{
+ margin-bottom: 10px;
+ &:before {
+ content: '';
+ height: 6px;
+ width: 6px;
+ background: $primary-color;
+ margin-right: 12px;
+ display: inline-block;
+ border-radius: 50%;
+ }
+ }
+ }
+ .flex-block-3{
+ text-align: center;
+ img{
+ display: inline-block;
+ }
+ }
+ }
+ h3{
+ font-size: 18px;
+ font-weight: 700;
+ border-bottom: 1px solid #b7b7b7;
+ margin-bottom: 10px;
+ text-transform: uppercase;
+ }
+}
+.section6{
+ text-align: center;
+ h3{
+ font-size: 24px;
+ color: $primary-color;
+ margin-bottom: 20px;
+ }
+ p{
+ font-size: 14px;
+ margin-bottom: 20px;
+ }
+
+ @include respond-to('md') {
+ background-image: url("../images/6/bg2.jpg");
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-attachment: fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover
+ }
+ .blue{
+ background: #f1f8fc;
+ padding: 20px 20px;
+ margin-bottom: 20px;
+ }
+ a.facebook{
+ // float: right;
+ padding-left: 60px;
+ background-image: url("../images/6/f.png");
+ background-repeat: no-repeat;
+ background-position: center left;
+ height: 48px;
+ text-align: left;
+ display: inline-block;
+ color: $primary-color;
+ font-weight: bold;
+ margin-left: 20px;
+ span{
+ position: relative;
+ text-decoration: underline;
+ top: 8px;
+ }
+ &:hover{
+ span{
+ text-decoration: none;
+ }
+ }
+ }
+ ul{
+ display: flex;
+ justify-content: center;
+ li{
+ font-weight: bold;
+ display: inline-block;
+ padding: 5px 20px;
+ text-align: center;
+ color: $primary-color;
+ }
+ li + li{
+ border-left: 1px solid #b7b7b7;
+ }
+ }
+}
+.section7{
+ background-image: url("../images/7/bg.jpg");
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-attachment: fixed;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+ transition: 0.5s;
+ padding-bottom: 40px;
+ h2{
+ color: white;
+ }
+ .flex-container{
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ &>.flex-block{
+ width: 200px;
+ height: 60px;
+ line-height: 68px;
+ text-align: center;
+ background: white;
+ padding: 5px;
+ margin: 0 20px 20px 20px;
+ }
+ }
+}
+.section8{
+ .container{
+ position: relative;
+ }
+ .gmap{
+ display: none;
+ @include respond-to('md') {
+ display: block;
+ }
+ width: 100%;
+ height: 500px;
+ }
+ .contacts{
+ background: white;
+ text-align: center;
+ margin: 50px 0;
+ .contacts-img{
+ display: none;
+ }
+ @include respond-to('md') {
+ display: block;
+ .contacts-tile{
+ padding: 10px 15px;
+ background: $primary-color;
+ color: white;
+ h2{
+ margin: 0;
+ }
+ }
+ .contacts-block{
+ padding: 10px 15px;
+ }
+ .contacts-img{
+ display: block;
+ width: 100%;
+ }
+ }
+ @include respond-to('md') {
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: calc(100%/4);
+ z-index: 3;
+ }
+ }
+}
+footer{
+ padding: 12px 0 6px;
+ background: #333333;
+ color: rgba(255, 255, 255, 1);
+ p{
+ font-size: 14px;
+ }
+ @include respond-to('sm') {
+ .flex-block-2:last-child{
+ text-align: right;
+ }
+ }
+ a{
+ text-decoration: underline;
+ color: rgba(255, 255, 255, 1);
+ display: inline-block;
+ img {
+ float: right;
+ margin-left: 10px;
+ }
+ &:hover{
+ text-decoration: none;
+ }
+ }
+}
diff --git a/frontend/web/favicon.ico b/frontend/web/favicon.ico
new file mode 100755
index 0000000..580ed73
Binary files /dev/null and b/frontend/web/favicon.ico differ
diff --git a/frontend/web/images/1/bg-1.jpg b/frontend/web/images/1/bg-1.jpg
new file mode 100755
index 0000000..dea0680
Binary files /dev/null and b/frontend/web/images/1/bg-1.jpg differ
diff --git a/frontend/web/images/1/bg-2.jpg b/frontend/web/images/1/bg-2.jpg
new file mode 100755
index 0000000..cbaaf79
Binary files /dev/null and b/frontend/web/images/1/bg-2.jpg differ
diff --git a/frontend/web/images/1/bg-3.jpg b/frontend/web/images/1/bg-3.jpg
new file mode 100755
index 0000000..d5332b6
Binary files /dev/null and b/frontend/web/images/1/bg-3.jpg differ
diff --git a/frontend/web/images/1/bg-4.jpg b/frontend/web/images/1/bg-4.jpg
new file mode 100755
index 0000000..cecf24f
Binary files /dev/null and b/frontend/web/images/1/bg-4.jpg differ
diff --git a/frontend/web/images/2/bg.jpg b/frontend/web/images/2/bg.jpg
new file mode 100755
index 0000000..9b12f65
Binary files /dev/null and b/frontend/web/images/2/bg.jpg differ
diff --git a/frontend/web/images/2/bg2.jpg b/frontend/web/images/2/bg2.jpg
new file mode 100755
index 0000000..5e44791
Binary files /dev/null and b/frontend/web/images/2/bg2.jpg differ
diff --git a/frontend/web/images/2/icon1.png b/frontend/web/images/2/icon1.png
new file mode 100755
index 0000000..3020d75
Binary files /dev/null and b/frontend/web/images/2/icon1.png differ
diff --git a/frontend/web/images/2/icon2.png b/frontend/web/images/2/icon2.png
new file mode 100755
index 0000000..5a92fa9
Binary files /dev/null and b/frontend/web/images/2/icon2.png differ
diff --git a/frontend/web/images/2/icon3.png b/frontend/web/images/2/icon3.png
new file mode 100755
index 0000000..59a412a
Binary files /dev/null and b/frontend/web/images/2/icon3.png differ
diff --git a/frontend/web/images/2/icon4.png b/frontend/web/images/2/icon4.png
new file mode 100755
index 0000000..f82a3da
Binary files /dev/null and b/frontend/web/images/2/icon4.png differ
diff --git a/frontend/web/images/2/icon5.png b/frontend/web/images/2/icon5.png
new file mode 100755
index 0000000..1ddc7b3
Binary files /dev/null and b/frontend/web/images/2/icon5.png differ
diff --git a/frontend/web/images/2/icon6.png b/frontend/web/images/2/icon6.png
new file mode 100755
index 0000000..517c97e
Binary files /dev/null and b/frontend/web/images/2/icon6.png differ
diff --git a/frontend/web/images/3/bg.jpg b/frontend/web/images/3/bg.jpg
new file mode 100755
index 0000000..2aa2bfd
Binary files /dev/null and b/frontend/web/images/3/bg.jpg differ
diff --git a/frontend/web/images/4/bg.jpg b/frontend/web/images/4/bg.jpg
new file mode 100755
index 0000000..cff5fb1
Binary files /dev/null and b/frontend/web/images/4/bg.jpg differ
diff --git a/frontend/web/images/4/bg2.jpg b/frontend/web/images/4/bg2.jpg
new file mode 100755
index 0000000..690b5cf
Binary files /dev/null and b/frontend/web/images/4/bg2.jpg differ
diff --git a/frontend/web/images/4/icon1.png b/frontend/web/images/4/icon1.png
new file mode 100755
index 0000000..587edc5
Binary files /dev/null and b/frontend/web/images/4/icon1.png differ
diff --git a/frontend/web/images/4/icon2.png b/frontend/web/images/4/icon2.png
new file mode 100755
index 0000000..21bbd7a
Binary files /dev/null and b/frontend/web/images/4/icon2.png differ
diff --git a/frontend/web/images/4/icon3.png b/frontend/web/images/4/icon3.png
new file mode 100755
index 0000000..0b6fe38
Binary files /dev/null and b/frontend/web/images/4/icon3.png differ
diff --git a/frontend/web/images/4/icon4.png b/frontend/web/images/4/icon4.png
new file mode 100755
index 0000000..3c2ee6c
Binary files /dev/null and b/frontend/web/images/4/icon4.png differ
diff --git a/frontend/web/images/4/icon5.png b/frontend/web/images/4/icon5.png
new file mode 100755
index 0000000..2e1b81a
Binary files /dev/null and b/frontend/web/images/4/icon5.png differ
diff --git a/frontend/web/images/4/icon6.png b/frontend/web/images/4/icon6.png
new file mode 100755
index 0000000..c0bc2fd
Binary files /dev/null and b/frontend/web/images/4/icon6.png differ
diff --git a/frontend/web/images/5/bg.jpg b/frontend/web/images/5/bg.jpg
new file mode 100644
index 0000000..de6db9f
Binary files /dev/null and b/frontend/web/images/5/bg.jpg differ
diff --git a/frontend/web/images/5/img-1.jpg b/frontend/web/images/5/img-1.jpg
new file mode 100755
index 0000000..d9c4678
Binary files /dev/null and b/frontend/web/images/5/img-1.jpg differ
diff --git a/frontend/web/images/5/img-2.jpg b/frontend/web/images/5/img-2.jpg
new file mode 100755
index 0000000..4db7092
Binary files /dev/null and b/frontend/web/images/5/img-2.jpg differ
diff --git a/frontend/web/images/5/img-3.jpg b/frontend/web/images/5/img-3.jpg
new file mode 100755
index 0000000..4867b1c
Binary files /dev/null and b/frontend/web/images/5/img-3.jpg differ
diff --git a/frontend/web/images/5/img-4.png b/frontend/web/images/5/img-4.png
new file mode 100755
index 0000000..e4473aa
Binary files /dev/null and b/frontend/web/images/5/img-4.png differ
diff --git a/frontend/web/images/6/bg.jpg b/frontend/web/images/6/bg.jpg
new file mode 100755
index 0000000..22c61f2
Binary files /dev/null and b/frontend/web/images/6/bg.jpg differ
diff --git a/frontend/web/images/6/bg2.jpg b/frontend/web/images/6/bg2.jpg
new file mode 100755
index 0000000..4dea419
Binary files /dev/null and b/frontend/web/images/6/bg2.jpg differ
diff --git a/frontend/web/images/6/f.png b/frontend/web/images/6/f.png
new file mode 100755
index 0000000..ad9aff2
Binary files /dev/null and b/frontend/web/images/6/f.png differ
diff --git a/frontend/web/images/7/bg.jpg b/frontend/web/images/7/bg.jpg
new file mode 100755
index 0000000..07efe55
Binary files /dev/null and b/frontend/web/images/7/bg.jpg differ
diff --git a/frontend/web/images/7/logo-1.png b/frontend/web/images/7/logo-1.png
new file mode 100755
index 0000000..c5e5981
Binary files /dev/null and b/frontend/web/images/7/logo-1.png differ
diff --git a/frontend/web/images/7/logo-2.png b/frontend/web/images/7/logo-2.png
new file mode 100755
index 0000000..8c4b756
Binary files /dev/null and b/frontend/web/images/7/logo-2.png differ
diff --git a/frontend/web/images/7/logo-3.png b/frontend/web/images/7/logo-3.png
new file mode 100755
index 0000000..03e4549
Binary files /dev/null and b/frontend/web/images/7/logo-3.png differ
diff --git a/frontend/web/images/7/logo-4.png b/frontend/web/images/7/logo-4.png
new file mode 100755
index 0000000..cfe9276
Binary files /dev/null and b/frontend/web/images/7/logo-4.png differ
diff --git a/frontend/web/images/8/bg-contacts.png b/frontend/web/images/8/bg-contacts.png
new file mode 100755
index 0000000..3f51151
Binary files /dev/null and b/frontend/web/images/8/bg-contacts.png differ
diff --git a/frontend/web/images/9/artweb.png b/frontend/web/images/9/artweb.png
new file mode 100755
index 0000000..066be5f
Binary files /dev/null and b/frontend/web/images/9/artweb.png differ
diff --git a/frontend/web/images/artweb-logo.png b/frontend/web/images/artweb-logo.png
new file mode 100755
index 0000000..d1044be
Binary files /dev/null and b/frontend/web/images/artweb-logo.png differ
diff --git a/frontend/web/images/bg-1.jpg b/frontend/web/images/bg-1.jpg
new file mode 100755
index 0000000..af0e010
Binary files /dev/null and b/frontend/web/images/bg-1.jpg differ
diff --git a/frontend/web/images/bg-2.jpg b/frontend/web/images/bg-2.jpg
new file mode 100755
index 0000000..4efd082
Binary files /dev/null and b/frontend/web/images/bg-2.jpg differ
diff --git a/frontend/web/images/bg-3.jpg b/frontend/web/images/bg-3.jpg
new file mode 100755
index 0000000..6ae546c
Binary files /dev/null and b/frontend/web/images/bg-3.jpg differ
diff --git a/frontend/web/images/bg-4-2.jpg b/frontend/web/images/bg-4-2.jpg
new file mode 100755
index 0000000..8f5d53e
Binary files /dev/null and b/frontend/web/images/bg-4-2.jpg differ
diff --git a/frontend/web/images/bg-4-3.jpg b/frontend/web/images/bg-4-3.jpg
new file mode 100755
index 0000000..d7401f5
Binary files /dev/null and b/frontend/web/images/bg-4-3.jpg differ
diff --git a/frontend/web/images/bg-4.jpg b/frontend/web/images/bg-4.jpg
new file mode 100755
index 0000000..7b329f1
Binary files /dev/null and b/frontend/web/images/bg-4.jpg differ
diff --git a/frontend/web/images/bg-4.png b/frontend/web/images/bg-4.png
new file mode 100755
index 0000000..c5cbbd8
Binary files /dev/null and b/frontend/web/images/bg-4.png differ
diff --git a/frontend/web/images/bg-5.jpg b/frontend/web/images/bg-5.jpg
new file mode 100755
index 0000000..1d16303
Binary files /dev/null and b/frontend/web/images/bg-5.jpg differ
diff --git a/frontend/web/images/bg-contacts.png b/frontend/web/images/bg-contacts.png
new file mode 100755
index 0000000..f709066
Binary files /dev/null and b/frontend/web/images/bg-contacts.png differ
diff --git a/frontend/web/images/calendar_arrows.png b/frontend/web/images/calendar_arrows.png
new file mode 100755
index 0000000..1e7c334
Binary files /dev/null and b/frontend/web/images/calendar_arrows.png differ
diff --git a/frontend/web/images/check.svg b/frontend/web/images/check.svg
new file mode 100755
index 0000000..d2b2040
--- /dev/null
+++ b/frontend/web/images/check.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/frontend/web/images/close-form.png b/frontend/web/images/close-form.png
new file mode 100755
index 0000000..6983455
Binary files /dev/null and b/frontend/web/images/close-form.png differ
diff --git a/frontend/web/images/ico-2/ico-1.png b/frontend/web/images/ico-2/ico-1.png
new file mode 100755
index 0000000..b3ad265
Binary files /dev/null and b/frontend/web/images/ico-2/ico-1.png differ
diff --git a/frontend/web/images/ico-2/ico-2.png b/frontend/web/images/ico-2/ico-2.png
new file mode 100755
index 0000000..aaadbf4
Binary files /dev/null and b/frontend/web/images/ico-2/ico-2.png differ
diff --git a/frontend/web/images/ico-2/ico-3.png b/frontend/web/images/ico-2/ico-3.png
new file mode 100755
index 0000000..ccac8b6
Binary files /dev/null and b/frontend/web/images/ico-2/ico-3.png differ
diff --git a/frontend/web/images/ico-2/ico-4.png b/frontend/web/images/ico-2/ico-4.png
new file mode 100755
index 0000000..a6aee58
Binary files /dev/null and b/frontend/web/images/ico-2/ico-4.png differ
diff --git a/frontend/web/images/ico-2/ico-5.png b/frontend/web/images/ico-2/ico-5.png
new file mode 100755
index 0000000..bd2bc8c
Binary files /dev/null and b/frontend/web/images/ico-2/ico-5.png differ
diff --git a/frontend/web/images/ico-2/ico-6.png b/frontend/web/images/ico-2/ico-6.png
new file mode 100755
index 0000000..2b8b834
Binary files /dev/null and b/frontend/web/images/ico-2/ico-6.png differ
diff --git a/frontend/web/images/ico-3/ico-1.png b/frontend/web/images/ico-3/ico-1.png
new file mode 100755
index 0000000..3b0f3f2
Binary files /dev/null and b/frontend/web/images/ico-3/ico-1.png differ
diff --git a/frontend/web/images/ico-3/img-1.jpg b/frontend/web/images/ico-3/img-1.jpg
new file mode 100755
index 0000000..823ba07
Binary files /dev/null and b/frontend/web/images/ico-3/img-1.jpg differ
diff --git a/frontend/web/images/ico-3/img-2.jpg b/frontend/web/images/ico-3/img-2.jpg
new file mode 100755
index 0000000..4b378b8
Binary files /dev/null and b/frontend/web/images/ico-3/img-2.jpg differ
diff --git a/frontend/web/images/ico-3/img-3.jpg b/frontend/web/images/ico-3/img-3.jpg
new file mode 100755
index 0000000..947eabb
Binary files /dev/null and b/frontend/web/images/ico-3/img-3.jpg differ
diff --git a/frontend/web/images/ico-3/img-3.png b/frontend/web/images/ico-3/img-3.png
new file mode 100755
index 0000000..6937245
Binary files /dev/null and b/frontend/web/images/ico-3/img-3.png differ
diff --git a/frontend/web/images/ico-3/img-4.png b/frontend/web/images/ico-3/img-4.png
new file mode 100755
index 0000000..bac990f
Binary files /dev/null and b/frontend/web/images/ico-3/img-4.png differ
diff --git a/frontend/web/images/ico-3/img-5.png b/frontend/web/images/ico-3/img-5.png
new file mode 100755
index 0000000..bc00de3
Binary files /dev/null and b/frontend/web/images/ico-3/img-5.png differ
diff --git a/frontend/web/images/ico/ico-1.png b/frontend/web/images/ico/ico-1.png
new file mode 100755
index 0000000..5722bd0
Binary files /dev/null and b/frontend/web/images/ico/ico-1.png differ
diff --git a/frontend/web/images/ico/ico-2.png b/frontend/web/images/ico/ico-2.png
new file mode 100755
index 0000000..c122ae4
Binary files /dev/null and b/frontend/web/images/ico/ico-2.png differ
diff --git a/frontend/web/images/ico/ico-3.png b/frontend/web/images/ico/ico-3.png
new file mode 100755
index 0000000..3af5ba3
Binary files /dev/null and b/frontend/web/images/ico/ico-3.png differ
diff --git a/frontend/web/images/ico/ico-4.png b/frontend/web/images/ico/ico-4.png
new file mode 100755
index 0000000..528b0f2
Binary files /dev/null and b/frontend/web/images/ico/ico-4.png differ
diff --git a/frontend/web/images/ico/ico-5.png b/frontend/web/images/ico/ico-5.png
new file mode 100755
index 0000000..0ffb6da
Binary files /dev/null and b/frontend/web/images/ico/ico-5.png differ
diff --git a/frontend/web/images/ico/ico-6.png b/frontend/web/images/ico/ico-6.png
new file mode 100755
index 0000000..0c32ab7
Binary files /dev/null and b/frontend/web/images/ico/ico-6.png differ
diff --git a/frontend/web/images/icons/first-arrow.png b/frontend/web/images/icons/first-arrow.png
new file mode 100755
index 0000000..489bcb1
Binary files /dev/null and b/frontend/web/images/icons/first-arrow.png differ
diff --git a/frontend/web/images/icons/menu-se.png b/frontend/web/images/icons/menu-se.png
new file mode 100755
index 0000000..09684bb
Binary files /dev/null and b/frontend/web/images/icons/menu-se.png differ
diff --git a/frontend/web/images/icons/menu-se2.png b/frontend/web/images/icons/menu-se2.png
new file mode 100755
index 0000000..d159ac2
Binary files /dev/null and b/frontend/web/images/icons/menu-se2.png differ
diff --git a/frontend/web/images/icons/slider_sep.png b/frontend/web/images/icons/slider_sep.png
new file mode 100755
index 0000000..8c4836f
Binary files /dev/null and b/frontend/web/images/icons/slider_sep.png differ
diff --git a/frontend/web/images/img-2.png b/frontend/web/images/img-2.png
new file mode 100755
index 0000000..468f07a
Binary files /dev/null and b/frontend/web/images/img-2.png differ
diff --git a/frontend/web/images/img-3.png b/frontend/web/images/img-3.png
new file mode 100755
index 0000000..bddaf2f
Binary files /dev/null and b/frontend/web/images/img-3.png differ
diff --git a/frontend/web/images/img-sl-1.jpg b/frontend/web/images/img-sl-1.jpg
new file mode 100755
index 0000000..5cad705
Binary files /dev/null and b/frontend/web/images/img-sl-1.jpg differ
diff --git a/frontend/web/images/img-sl-2.jpg b/frontend/web/images/img-sl-2.jpg
new file mode 100755
index 0000000..d772051
Binary files /dev/null and b/frontend/web/images/img-sl-2.jpg differ
diff --git a/frontend/web/images/img-sl-3.jpg b/frontend/web/images/img-sl-3.jpg
new file mode 100755
index 0000000..6635715
Binary files /dev/null and b/frontend/web/images/img-sl-3.jpg differ
diff --git a/frontend/web/images/img-sl-4.jpg b/frontend/web/images/img-sl-4.jpg
new file mode 100755
index 0000000..3ac35c3
Binary files /dev/null and b/frontend/web/images/img-sl-4.jpg differ
diff --git a/frontend/web/images/logo.png b/frontend/web/images/logo.png
new file mode 100755
index 0000000..65e0776
Binary files /dev/null and b/frontend/web/images/logo.png differ
diff --git a/frontend/web/images/logo2.png b/frontend/web/images/logo2.png
new file mode 100755
index 0000000..cc3c90d
Binary files /dev/null and b/frontend/web/images/logo2.png differ
diff --git a/frontend/web/images/mCSB_buttons.png b/frontend/web/images/mCSB_buttons.png
new file mode 100755
index 0000000..985a9b8
Binary files /dev/null and b/frontend/web/images/mCSB_buttons.png differ
diff --git a/frontend/web/images/map.jpg b/frontend/web/images/map.jpg
new file mode 100755
index 0000000..c3b273e
Binary files /dev/null and b/frontend/web/images/map.jpg differ
diff --git a/frontend/web/images/marker.png b/frontend/web/images/marker.png
new file mode 100755
index 0000000..6d80ed3
Binary files /dev/null and b/frontend/web/images/marker.png differ
diff --git a/frontend/web/images/markers/marker-we-9.png b/frontend/web/images/markers/marker-we-9.png
new file mode 100755
index 0000000..2a73d5f
Binary files /dev/null and b/frontend/web/images/markers/marker-we-9.png differ
diff --git a/frontend/web/images/nissan_leaf.png b/frontend/web/images/nissan_leaf.png
new file mode 100755
index 0000000..d14ea6c
Binary files /dev/null and b/frontend/web/images/nissan_leaf.png differ
diff --git a/frontend/web/images/partners/img-1.png b/frontend/web/images/partners/img-1.png
new file mode 100755
index 0000000..76d87b4
Binary files /dev/null and b/frontend/web/images/partners/img-1.png differ
diff --git a/frontend/web/images/partners/img-2.png b/frontend/web/images/partners/img-2.png
new file mode 100755
index 0000000..2ce407c
Binary files /dev/null and b/frontend/web/images/partners/img-2.png differ
diff --git a/frontend/web/images/partners/img-3.png b/frontend/web/images/partners/img-3.png
new file mode 100755
index 0000000..80a1fc8
Binary files /dev/null and b/frontend/web/images/partners/img-3.png differ
diff --git a/frontend/web/images/partners/img-4.png b/frontend/web/images/partners/img-4.png
new file mode 100755
index 0000000..367279e
Binary files /dev/null and b/frontend/web/images/partners/img-4.png differ
diff --git a/frontend/web/images/preload.gif b/frontend/web/images/preload.gif
new file mode 100755
index 0000000..01cb243
Binary files /dev/null and b/frontend/web/images/preload.gif differ
diff --git a/frontend/web/images/preload_min.gif b/frontend/web/images/preload_min.gif
new file mode 100755
index 0000000..aa2cf19
Binary files /dev/null and b/frontend/web/images/preload_min.gif differ
diff --git a/frontend/web/images/questions.png b/frontend/web/images/questions.png
new file mode 100755
index 0000000..d94d834
Binary files /dev/null and b/frontend/web/images/questions.png differ
diff --git a/frontend/web/images/sl_ec_01.jpg b/frontend/web/images/sl_ec_01.jpg
new file mode 100755
index 0000000..540b0fc
Binary files /dev/null and b/frontend/web/images/sl_ec_01.jpg differ
diff --git a/frontend/web/images/slider/bg-1.jpg b/frontend/web/images/slider/bg-1.jpg
new file mode 100755
index 0000000..dea0680
Binary files /dev/null and b/frontend/web/images/slider/bg-1.jpg differ
diff --git a/frontend/web/images/slider/bg-2.jpg b/frontend/web/images/slider/bg-2.jpg
new file mode 100755
index 0000000..cbaaf79
Binary files /dev/null and b/frontend/web/images/slider/bg-2.jpg differ
diff --git a/frontend/web/images/slider/bg-3.jpg b/frontend/web/images/slider/bg-3.jpg
new file mode 100755
index 0000000..d5332b6
Binary files /dev/null and b/frontend/web/images/slider/bg-3.jpg differ
diff --git a/frontend/web/images/slider/bg-4.jpg b/frontend/web/images/slider/bg-4.jpg
new file mode 100755
index 0000000..cecf24f
Binary files /dev/null and b/frontend/web/images/slider/bg-4.jpg differ
diff --git a/frontend/web/images/slider/big-bg-1.jpg b/frontend/web/images/slider/big-bg-1.jpg
new file mode 100755
index 0000000..d50a80e
Binary files /dev/null and b/frontend/web/images/slider/big-bg-1.jpg differ
diff --git a/frontend/web/images/slider/big-bg-2.jpg b/frontend/web/images/slider/big-bg-2.jpg
new file mode 100755
index 0000000..121141f
Binary files /dev/null and b/frontend/web/images/slider/big-bg-2.jpg differ
diff --git a/frontend/web/images/slider/big-bg-3.jpg b/frontend/web/images/slider/big-bg-3.jpg
new file mode 100755
index 0000000..ae97aea
Binary files /dev/null and b/frontend/web/images/slider/big-bg-3.jpg differ
diff --git a/frontend/web/images/slider/big-bg-4.jpg b/frontend/web/images/slider/big-bg-4.jpg
new file mode 100755
index 0000000..bf2b46e
Binary files /dev/null and b/frontend/web/images/slider/big-bg-4.jpg differ
diff --git a/frontend/web/images/storage/img-sl-11468507103.jpg b/frontend/web/images/storage/img-sl-11468507103.jpg
new file mode 100755
index 0000000..5cad705
Binary files /dev/null and b/frontend/web/images/storage/img-sl-11468507103.jpg differ
diff --git a/frontend/web/images/storage/img-sl-21468507579.jpg b/frontend/web/images/storage/img-sl-21468507579.jpg
new file mode 100755
index 0000000..d772051
Binary files /dev/null and b/frontend/web/images/storage/img-sl-21468507579.jpg differ
diff --git a/frontend/web/images/toggler.png b/frontend/web/images/toggler.png
new file mode 100755
index 0000000..f88c559
Binary files /dev/null and b/frontend/web/images/toggler.png differ
diff --git a/frontend/web/js/_script.js b/frontend/web/js/_script.js
new file mode 100644
index 0000000..75a83b3
--- /dev/null
+++ b/frontend/web/js/_script.js
@@ -0,0 +1,907 @@
+$(document).ready(function(){
+ // var w = screen.width,
+ // h = screen.height;
+ // alert(w + 'x' + h + '('+$(window).width()+'x'+$(window).height()+')')
+ //
+ // // alert($(window).width()+'x'+$(window).height())
+
+
+ startPreloader()
+ function startPreloader() {
+ $('body').append('
').attr('id', 'no-scroll')
+
+ }
+ window.onload = function () {
+ $('body, html').animate({scrollTop: 0}, 1)
+ resetPreloader()
+ setTimeout(function () {
+ // if(windowHeight>1199) {
+ // $('body').attr('id', '')
+ // } else {
+ //
+ // }
+ if (device.desktop()){
+
+ } else {
+ $('body').attr('id', '');
+ }
+
+
+
+ },1600)
+
+ }
+
+
+
+ function resetPreloader() {
+ $('#preload_').addClass('hide_')
+ setTimeout(function () {
+ $('#preload_').addClass('hide_up_')
+ }, 910)
+ setTimeout(function () {
+ $('#preload_').remove()
+ }, 1410)
+ }
+
+
+
+
+
+
+
+
+//глобалные перемнные
+ var sections = $('.sections')
+ var sectLength = sections.length
+
+ var windowHeight = $(window).height()
+ var windowWidth = $(window).width()
+
+
+ var timeDelay = 800;
+ var easy_name = 'easeOutExpo'
+ var modelcolor
+
+
+ function separatorColorAdd() {
+ $('.menu-line').addClass('black')
+ }
+ function separatorColorRemove() {
+ $('.menu-line').removeClass('black')
+ }
+
+ var logoImg = $('.logo')
+ var logoImgWhite = logoImg.attr('src')
+ var logoImgRed = logoImg.attr('data-red')
+ function logoBlueAdd() {
+ logoImg.attr('src',logoImgRed)
+ }
+ function logoBlueRemove() {
+ logoImg.attr('src',logoImgWhite)
+ }
+
+//end глобалные перемнные
+ imgBgWidth()
+
+
+
+ $(window).resize(function () {
+ windowHeight = $(window).height()
+ windowWidth = $(window).width()
+ sectionsWidth()
+ imgBgWidth()
+ })
+
+ sectionsWidth()
+ function sectionsWidth() {
+ sections.each(function () {
+ $(this).css({width:windowWidth})
+ })
+ }
+
+
+
+ var menuWrapper = $('.menu_wrapper')
+ function hideMenu() {
+ menuWrapper.addClass('hide_menu').removeClass('open-menu')
+ }
+ function addMenu() {
+ menuWrapper.removeClass('hide_menu')
+ }
+ $('.menu_wrapper').on('click',function () {
+ $(this).addClass('hide_menu')
+
+ })
+ $('.menu-line').on('click',function () {
+ $('.menu_wrapper').addClass('open-menu')
+ })
+
+ function imgBgWidth() {
+
+
+ }
+
+ onLoad()
+ function onLoad() {
+ // Функция для добавления обработчика событий
+ function addHandler(object, event, handler) {
+ if (object.addEventListener) {
+ object.addEventListener(event, handler, false);
+ }
+ else if (object.attachEvent) {
+ object.attachEvent('on' + event, handler);
+ }
+ // else alert("Обработчик не поддерживается");
+ }
+
+ // Добавляем обработчики для разных браузеров
+ addHandler(window, 'DOMMouseScroll', wheel);
+ addHandler(window, 'mousewheel', wheel);
+ // addHandler(document, 'mousewheel', wheel);
+ // Функция, обрабатывающая событие
+ function wheel(event) {
+ var delta; // Направление колёсика мыши
+
+ event = event || window.event;
+ //Opera и IE работают со свойством wheelDelta
+ if (event.wheelDelta) { // В Opera и IE
+ delta = event.wheelDelta / 120;
+ // В Опере значение wheelDelta такое же, но с противоположным знаком
+ if (window.opera) delta = -delta; // Дополнительно для Opera
+ }
+ else if (event.detail) { // Для Gecko
+ delta = -event.detail / 3;
+ }
+
+
+ //Запрещаем обработку события браузером по умолчанию
+ if (event.preventDefault) event.preventDefault();
+ event.returnValue = false;
+ //console.log(delta); // Выводим направление колёсика мыши
+
+
+
+ statusBlok();
+ function statusBlok() {
+
+ var statusScroll = $('#statusScroll')
+ var statusScrollData = statusScroll.attr('data-active');
+ var datascroll = 0;
+
+
+ //Arrow keys scroll update
+ $(document).keydown(function(e) {
+ switch(e.which) {
+ case 37: // left
+ break;
+
+ case 38:
+ if(statusScrollData>0) {
+ --statusScrollData
+ $('body, html').animate({scrollTop: windowHeight*statusScrollData}, timeDelay, easy_name, function () {
+ statusScroll.attr('data-scroll',0)
+ })
+ statusScrollData = statusScroll.attr('data-active', statusScrollData)
+ statusScroll.attr('data-scroll',1)
+ } // up
+ break;
+
+ case 39: // right
+ break;
+
+ case 40:
+ if(statusScrollData0) {
+ --statusScrollData
+ $('body, html').animate({scrollTop: windowHeight*statusScrollData}, timeDelay, easy_name, function () {
+ statusScroll.attr('data-scroll',0)
+ })
+ statusScrollData = statusScroll.attr('data-active', statusScrollData)
+ statusScroll.attr('data-scroll',1)
+ }
+
+ }
+
+ var navCrkl = $('#navi_circle li')
+ var navCrklIndex = statusScroll.attr('data-active')
+
+ if(navCrklIndex>0) {
+ $('#navi_circle li').removeClass('active')
+ $(navCrkl[navCrklIndex]).addClass('active')
+ $('#navi_circle').css({opacity:1})
+ // hideMenu()
+ } else {
+ $('#navi_circle').css({opacity:0})
+ $('#navi_circle li').removeClass('active')
+ if(device.mobile() || device.tablet()){
+
+ } else {
+ // addMenu()
+ }
+ }
+
+ var screenNum = $('#statusScroll').attr('data-active')
+
+ if(screenNum==0){
+ $('.menu_wrapper').removeClass('open-menu')
+ logoBlueRemove()
+ separatorColorRemove()
+ }
+ if(screenNum==1){
+ separatorColorAdd()
+ // logoBlueAdd()
+ if(($(window).width())<=1200){
+ logoBlueAdd()
+ } else {
+ logoBlueRemove()
+ }
+ }
+ if(screenNum>1) {
+ separatorColorRemove()
+ }
+ if(screenNum==2){
+
+ // logoBlueAdd()
+ logoBlueRemove()
+ }
+ if(screenNum==3){
+
+ // separatorColorAdd()
+ logoBlueAdd()
+ }
+ if(screenNum==4){
+
+ // logoBlueAdd()
+ logoBlueRemove()
+ }
+ if(screenNum==5){
+ logoBlueRemove()
+ }
+ if(screenNum==6){
+ logoBlueRemove()
+ }
+ if(screenNum==7){
+ logoBlueRemove()
+ }
+
+
+ var active = $('#menu_nav li');
+ $(active).removeClass('active')
+ $(active[(screenNum-1)]).addClass('active')
+
+ }
+
+
+
+ }
+ }
+
+ }
+
+
+
+
+
+ all();
+ function all() {
+
+
+
+ var height = $('.txt-1-wr').height()
+ $('.txt-1-wr').css({marginTop:-(height/2)})
+
+ for (var i = 0; i < sectLength; i++) {
+ $(sections[i]).attr('data-num', i)
+ }
+ $('body').append('
')
+ for (var i2=0;i2')
+ }
+ var newHeightNavi = (sectLength*(11+17)-17)+64
+ $('#navi_circle').css({height:newHeightNavi, marginTop:-(newHeightNavi/2),top:'50%'})
+
+ naviClick()
+ function naviClick() {
+ var statusScroll = $('#statusScroll')
+ var navi = $('#navi_circle li')
+
+
+ navi.click(function () {
+ if(statusScroll.attr('data-scroll')==0){
+
+ var thisIndex = $(this).index()
+
+ if(thisIndex==0){
+ logoBlueRemove()
+ separatorColorRemove()
+ }
+ if(thisIndex==1){
+ separatorColorAdd()
+
+ if(($(window).width())<=1200){
+ logoBlueAdd()
+ } else {
+ logoBlueRemove()
+ }
+ }
+ if(thisIndex>1){ separatorColorRemove()}
+ if(thisIndex==2){
+
+ logoBlueRemove()
+
+ }
+ if(thisIndex==3){
+
+ logoBlueAdd()
+ }
+ if(thisIndex>3){
+
+ logoBlueRemove()
+ }
+ if(thisIndex==4 || thisIndex==5){
+ separatorColorRemove()
+ logoBlueRemove()
+ }
+
+ if(thisIndex>0) {
+ navi.removeClass('active')
+ $(navi[thisIndex]).addClass('active')
+ // hideMenu()
+ } else {
+ $('#navi_circle').css({opacity:0})
+ navi.removeClass('active')
+ if(device.mobile() || device.tablet()){
+ // hideMenu()
+ } else {
+ // addMenu()
+ }
+ }
+
+ $('#statusScroll').attr('data-active', thisIndex)
+
+ var active = $('#menu_nav li');
+ $(active).removeClass('active')
+ $(active[(thisIndex-1)]).addClass('active')
+
+
+ $('body, html').animate({scrollTop: windowHeight*thisIndex}, timeDelay, easy_name, function () {
+ statusScroll.attr('data-scroll',0)
+ })
+
+
+ statusScroll.attr('data-scroll',1)
+
+
+ }
+
+ })
+
+ $('.circle-next').click(function () {
+ $('body, html').animate({scrollTop: windowHeight}, timeDelay, easy_name, function () {
+ statusScroll.attr('data-scroll',0)
+ })
+
+
+ $('#statusScroll').attr('data-active', 1)
+ statusScroll.attr('data-scroll',1)
+
+ $(navi[1]).addClass('active')
+ $('#navi_circle').css({opacity:1})
+
+ // hideMenu()
+
+ if(($(window).width())<=1200){
+ logoBlueAdd()
+ } else {
+ logoBlueRemove()
+ }
+ })
+
+ $('.btn_by_link ').click(function (e) {
+ e.preventDefault()
+ $('body, html').animate({scrollTop: windowHeight*2}, timeDelay, easy_name, function () {
+ statusScroll.attr('data-scroll',0)
+ })
+ $('#statusScroll').attr('data-active', 2)
+ statusScroll.attr('data-scroll',2)
+
+ $(navi[2]).addClass('active')
+ $('#navi_circle').css({opacity:1})
+ })
+
+ var menuNav = $('#menu_nav li')
+ menuNav.click(function () {
+ // hideMenu()
+
+ $(menuNav).removeClass('active')
+ $(this).addClass('active')
+
+ var lastMenuOneScreen = 5 //количество последних пунктов меню которые скроляться на один экран
+ if(statusScroll.attr('data-scroll')==0){
+
+ var indexMenuNav = $(this).index()+1
+ console.log(indexMenuNav)
+
+ if(indexMenuNav==0){
+ logoBlueRemove()
+ }
+ if(indexMenuNav==1){
+ logoBlueRemove()
+ }
+ if(indexMenuNav==2){
+ logoBlueRemove()
+ }
+ if(indexMenuNav==3){
+ logoBlueAdd()
+ }
+ if(indexMenuNav==4){
+ logoBlueRemove()
+ }
+ if(indexMenuNav==5){
+ logoBlueRemove()
+ }
+ if(indexMenuNav==6){
+ logoBlueRemove()
+ }
+ if(indexMenuNav==7){
+ logoBlueRemove()
+ }
+
+
+ if(indexMenuNav<=lastMenuOneScreen+1) {
+ navi.removeClass('active')
+ $(navi[indexMenuNav]).addClass('active')
+ $('body, html').animate({scrollTop: windowHeight*indexMenuNav}, timeDelay, easy_name, function () {
+ statusScroll.attr('data-scroll',0)
+ })
+ $('#statusScroll').attr('data-active', indexMenuNav)
+ $(navi[indexMenuNav]).addClass('active')
+ } else {
+ $('#navi_circle').css({opacity:0})
+ navi.removeClass('active')
+ $('body, html').animate({scrollTop: windowHeight*(menuNav.length-1)}, timeDelay, easy_name, function () {
+ statusScroll.attr('data-scroll',0)
+ })
+ $('#statusScroll').attr('data-active', menuNav.length-1)
+ $(navi[menuNav.length-1]).addClass('active')
+ }
+
+
+ $('#navi_circle').css({opacity:1})
+
+ statusScroll.attr('data-scroll',1)
+
+
+ }
+
+ })
+
+
+ }
+
+ firstScreenSlider()
+ function firstScreenSlider() {
+ var list1 = $('.list-1 li')
+ var list1FirstAct = $('.list-1 li.active').index()
+ $('.arr-txt1').html(list1FirstAct+1)
+ $('.arr-txt3').html(list1.length)
+
+ $('.arr-left').click(function () {
+ clickListprev()
+ })
+ $('.arr-right').click(function () {
+ clickListNext()
+ })
+ function clickListNext() {
+ var activeLi = ($('.list-1 li.active').index())+1
+ if (activeLi<=(list1.length-1)){
+ list1.removeClass('active')
+ $(list1[activeLi]).addClass('active')
+ $('.arr-txt1').html(activeLi+1)
+ } else {
+ list1.removeClass('active')
+ $(list1[0]).addClass('active')
+ $('.arr-txt1').html(1)
+ }
+
+ }
+ function clickListprev() {
+ var activeLi = ($('.list-1 li.active').index())-1
+ // console.log(activeLi)
+ if (activeLi>-1){
+ list1.removeClass('active')
+ $(list1[activeLi]).addClass('active')
+ $('.arr-txt1').html(activeLi+1)
+ } else {
+ list1.removeClass('active')
+ $(list1[list1.length-1]).addClass('active')
+ $('.arr-txt1').html(list1.length)
+
+ }
+ }
+
+
+
+
+
+ }
+
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sliderCar()
+function sliderCar() {
+ //при удачной подгрузке выполнять ф-цию removeLoadIco()
+
+ function addLoadIco() {$('.car-list').append('')}
+ function removeLoadIco(){$('.load_content').remove()}
+
+ $('.models_select ul li').click(function (e) {
+ e.preventDefault()
+ $('.models_select ul li').removeClass('active')
+ $(this).addClass('active')
+ removeLoadIco()
+ addLoadIco()
+ var link = $(this).find('a');
+ var model = link.data('model');
+ var year = link.data('year');
+ $('a.year-picker').data('model', model);
+ var data = {
+ 'CarSearch[model]': model, 'CarSearch[year]': year
+ };
+ data = $.param(data);
+ scrollDestroy();
+ $('#content-1').load('/?'+data+' #content-1 ul', { 'Car[model]': link.data('model'), 'Car[year]': link.data('year') }, function() {
+ removeLoadIco();
+ scrollInit();
+ });
+ })
+
+ $('.years_select ul li').click(function (e) {
+ e.preventDefault()
+ $('.years_select ul li').removeClass('active')
+ $(this).addClass('active')
+ removeLoadIco()
+ addLoadIco()
+ var link = $(this).find('a');
+ var model = link.data('model');
+ var year = link.data('year');
+ $('a.model-picker').data('year', year);
+ var data = {
+ 'CarSearch[model]': model, 'CarSearch[year]': year
+ };
+ data = $.param(data);
+ scrollDestroy();
+ $('#content-1').load('/?'+data+' #content-1 ul', { 'Car[model]': link.data('model'), 'Car[year]': link.data('year') }, function() {
+ removeLoadIco();
+ scrollInit();
+ });
+ })
+
+ scrollInit();
+
+}
+function scrollInit()
+{
+ var amount = Math.max.apply(
+ Math, $("#content-1 li").map(
+ function()
+ {
+ return $(this).outerWidth(true);
+ }
+ ).get()
+ );
+
+ $("#content-1").mCustomScrollbar(
+ {
+ axis : "x",
+ theme : "inset",
+ advanced : {
+ autoExpandHorizontalScroll : true
+ },
+ scrollButtons : {
+ enable : true,
+ scrollType : "stepped"
+ },
+ keyboard : {scrollType : "stepped"},
+ snapAmount : amount,
+ mouseWheel : {scrollAmount : amount}
+ }
+ );
+}
+
+ function scrollDestroy() {
+ $('#content-1').mCustomScrollbar('destroy');
+ }
+
+ scrollBlocks()
+ function scrollBlocks() {
+ $(".stock-txt-bl").mCustomScrollbar({
+ axis:"y",
+ theme:"inset",
+ advanced:{
+ autoExpandHorizontalScroll:true
+ },
+ scrollButtons:{
+ enable:true,
+ scrollType:"stepped"
+ },
+ keyboard:{scrollType:"stepped"}
+ });
+ }
+//после удачной отправки формы, запустить ф-цию success()
+ form()
+ function form() {
+ $('a.btn_test_drive').click( function(event){
+ event.preventDefault();
+
+ $('#overlay').fadeIn(400,
+ function(){
+ $('#modal_test_drive')
+ .css('display', 'block')
+ .animate({opacity: 1, top: '10%'}, 200);
+ });
+
+ });
+
+$(document).on('click', 'a.btn_buy', function(event){
+ event.preventDefault();
+
+ var modelName = $('.models_select li.active a').text()
+ var modelYear = $('.years_select li.active a').text()
+ var expr = new RegExp('.*<\/span>');
+ modelcolor = $(this).parent().parent().find(".style.specifications p:first").html().replace(expr,'');
+
+ $('._model_').empty()
+ $('._model_').html(modelName)
+ $('._year_').empty()
+ $('._year_').html(modelYear)
+
+ $('#overlay').fadeIn(400,
+ function(){
+ $('#modal_buy')
+ .css('display', 'block')
+ .animate({opacity: 1, top: '10%'}, 200);
+ });
+ });
+
+ $('a.btn-application').click( function(event){
+ event.preventDefault();
+
+ $('#overlay').fadeIn(400,
+ function(){
+ $('#modal_key_on_a_key')
+ .css('display', 'block')
+ .animate({opacity: 1, top: '10%'}, 200);
+ });
+
+ });
+
+ $('a.btn_reserved').click( function(event){
+ event.preventDefault();
+
+ $('#overlay').fadeIn(400,
+ function(){
+ $('#modal_book_cars')
+ .css('display', 'block')
+ .animate({opacity: 1, top: '10%'}, 200);
+ });
+
+ });
+
+ $('a.btn_questions').click( function(event){
+ event.preventDefault();
+
+ $('#overlay').fadeIn(400,
+ function(){
+ $('#modal_questions')
+ .css('display', 'block')
+ .animate({opacity: 1, top: '10%'}, 200);
+ });
+
+ });
+
+ $(document).on('click', '#modal_close, #overlay', function(){
+ $('.modal_form').animate({opacity: 0, top: '2%'}, 200,function(){
+ $(this).css('display', 'none');
+ $('#overlay').fadeOut(400);
+ });
+ $('#success_form').animate({opacity: 0, top: '0'}, 200,function(){
+ $(this).css('display', 'none');
+ $(this).css({top:'50%'});
+ });
+
+ });
+ }
+
+ // success()
+ function success() {
+ $('#modal_form').animate({opacity: 0, top: '2%'}, 200,function(){
+ $(this).css('display', 'none');
+ });
+ setTimeout(function () {
+ $('#success_form').css('display', 'block').animate({opacity: 1}, 700);
+ },400)
+ }
+
+ //
+
+ var all_phone = $("body").find(".form-group.field-orderform-phone");
+ if(all_phone.val() == '') {
+ all_phone.removeClass('has-success').addClass('has-error');
+ };
+
+ $(document).on('submit', "#form_buy", function(event){
+ var username = $(this).find("#orderform-username").val();
+ email = $(this).find("#orderform-email").val();
+ phonenum = $(this).find("#orderform-phone").val();
+ model_name = $(".models_select.style .active a").html();
+ model_year = $(".years_select.style .active a").html();
+ model_color = modelcolor;
+ action = $(this).attr('action');
+
+ event.preventDefault();
+ if($(this).find('.form-group').hasClass('has-error')){}
+ else{
+ $.post({
+ type: 'post',
+ url: action,
+ data: {
+ 'OrderForm[username]':username,
+ 'OrderForm[email]':email,
+ 'OrderForm[phone]':phonenum,
+ 'OrderForm[model_name]':model_name,
+ 'OrderForm[model_year]':model_year,
+ 'OrderForm[model_color]':model_color,
+ },
+ success: function(data){
+ console.log(data);
+ }
+ });
+ $("#modal_buy").animate({opacity: 0, top: '2%'}, 400);
+ success();
+ $(this)[0].reset();
+ }
+ });
+
+$(document).on('submit', "#form_testdrive", function(event){
+ event.preventDefault();
+ var username = $(this).find("#testdriveform-username").val();
+ email = $(this).find("#testdriveform-email").val();
+ phonenum = $(this).find("#testdriveform-phone").val();
+ action = $(this).attr('action');
+
+ if($(this).find('.form-group').hasClass('has-error')){}
+ else{
+ $.post({
+ type: 'post',
+ url: action,
+ data: {
+ 'TestdriveForm[username]':username,
+ 'TestdriveForm[email]':email,
+ 'TestdriveForm[phone]':phonenum,
+ },
+ success: function(data){
+ console.log(data);
+ }
+ });
+ $("#modal_test_drive").animate({opacity: 0, top: '2%'}, 400);
+ console.log(username+email+phonenum);
+ success();
+ $(this)[0].reset();
+ };
+ });
+ $("#orderform-phone").mask("+380 (999) 999-99-99");
+ $("#testdriveform-phone").mask("+380 (999) 999-99-99");
+
+
+
+
+ hoverMenu();
+ function hoverMenu() {
+ $('#menu_nav').hover(function () {
+
+ },function () {
+ $('#menuwrapper').removeClass('open-menu')
+ })
+ }
+
+ heightMap()
+
+ function heightMap() {
+ var box5Height = $('.box-5').height()
+ var box5Partn = $('.box-5 .container-wrapper').innerHeight()
+ var box5mapMerg = $('.box-5 .maps-contacts-wr').css('marginTop')
+ box5mapMerg = box5mapMerg.replace('px', '')
+ box5mapMerg = +box5mapMerg
+ var box5Stud = $('.box-5 .studio-copy-wr').height()
+ var mapHeight = box5Height - box5Partn - box5mapMerg - box5Stud
+ $('.maps-contacts-wr').css({
+ height: mapHeight
+ })
+ }
+ $(window).resize(function () {
+ heightMap()
+ })
+
+ datepicker()
+ function datepicker() {
+ $( ".date_first input" ).datepicker({
+ changeMonth: true,
+ changeYear: true,
+ numberOfMonths: 1,
+ dateFormat: 'dd.mm.yy',
+ closeText: 'Закрыть',
+ prevText: 'Пред',
+ nextText: 'След',
+ monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
+ monthNamesShort: ['Январь','Февраль','Март','Апрель','Май','Июнь', 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
+ dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
+ dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
+ dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
+ });
+ $( ".date_second input" ).datepicker({
+ changeMonth: true,
+ changeYear: true,
+ numberOfMonths: 1,
+ dateFormat: 'dd.mm.yy',
+ closeText: 'Закрыть',
+ prevText: 'Пред',
+ nextText: 'След',
+ monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
+ monthNamesShort: ['Январь','Февраль','Март','Апрель','Май','Июнь', 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
+ dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
+ dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
+ dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
+ });
+ }
+
+});
diff --git a/frontend/web/js/device.min.js b/frontend/web/js/device.min.js
new file mode 100755
index 0000000..492dbe3
--- /dev/null
+++ b/frontend/web/js/device.min.js
@@ -0,0 +1 @@
+(function(){var n,e,o,t,i,r,d,a,c,l;e=window.device,n={},window.device=n,t=window.document.documentElement,l=window.navigator.userAgent.toLowerCase(),n.ios=function(){return n.iphone()||n.ipod()||n.ipad()},n.iphone=function(){return!n.windows()&&i("iphone")},n.ipod=function(){return i("ipod")},n.ipad=function(){return i("ipad")},n.android=function(){return!n.windows()&&i("android")},n.androidPhone=function(){return n.android()&&i("mobile")},n.androidTablet=function(){return n.android()&&!i("mobile")},n.blackberry=function(){return i("blackberry")||i("bb10")||i("rim")},n.blackberryPhone=function(){return n.blackberry()&&!i("tablet")},n.blackberryTablet=function(){return n.blackberry()&&i("tablet")},n.windows=function(){return i("windows")},n.windowsPhone=function(){return n.windows()&&i("phone")},n.windowsTablet=function(){return n.windows()&&i("touch")&&!n.windowsPhone()},n.fxos=function(){return(i("(mobile;")||i("(tablet;"))&&i("; rv:")},n.fxosPhone=function(){return n.fxos()&&i("mobile")},n.fxosTablet=function(){return n.fxos()&&i("tablet")},n.meego=function(){return i("meego")},n.cordova=function(){return window.cordova&&"file:"===location.protocol},n.nodeWebkit=function(){return"object"==typeof window.process},n.mobile=function(){return n.androidPhone()||n.iphone()||n.ipod()||n.windowsPhone()||n.blackberryPhone()||n.fxosPhone()||n.meego()},n.tablet=function(){return n.ipad()||n.androidTablet()||n.blackberryTablet()||n.windowsTablet()||n.fxosTablet()},n.desktop=function(){return!n.tablet()&&!n.mobile()},n.television=function(){var n;for(television=["googletv","viera","smarttv","internet.tv","netcast","nettv","appletv","boxee","kylo","roku","dlnadoc","roku","pov_tv","hbbtv","ce-html"],n=0;n1},n.landscape=function(){return window.innerHeight/window.innerWidth<1},n.noConflict=function(){return window.device=e,this},i=function(n){return-1!==l.indexOf(n)},d=function(n){var e;return e=new RegExp(n,"i"),t.className.match(e)},o=function(n){var e=null;d(n)||(e=t.className.replace(/^\s+|\s+$/g,""),t.className=e+" "+n)},c=function(n){d(n)&&(t.className=t.className.replace(" "+n,""))},n.ios()?n.ipad()?o("ios ipad tablet"):n.iphone()?o("ios iphone mobile"):n.ipod()&&o("ios ipod mobile"):n.android()?o(n.androidTablet()?"android tablet":"android mobile"):n.blackberry()?o(n.blackberryTablet()?"blackberry tablet":"blackberry mobile"):n.windows()?o(n.windowsTablet()?"windows tablet":n.windowsPhone()?"windows mobile":"desktop"):n.fxos()?o(n.fxosTablet()?"fxos tablet":"fxos mobile"):n.meego()?o("meego mobile"):n.nodeWebkit()?o("node-webkit"):n.television()?o("television"):n.desktop()&&o("desktop"),n.cordova()&&o("cordova"),r=function(){n.landscape()?(c("portrait"),o("landscape")):(c("landscape"),o("portrait"))},a=Object.prototype.hasOwnProperty.call(window,"onorientationchange")?"orientationchange":"resize",window.addEventListener?window.addEventListener(a,r,!1):window.attachEvent?window.attachEvent(a,r):window[a]=r,r(),"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return n}):"undefined"!=typeof module&&module.exports?module.exports=n:window.device=n}).call(this);
\ No newline at end of file
diff --git a/frontend/web/js/firstSlider.js b/frontend/web/js/firstSlider.js
new file mode 100755
index 0000000..654cb6f
--- /dev/null
+++ b/frontend/web/js/firstSlider.js
@@ -0,0 +1,66 @@
+$(document).ready(function(){
+ firstSlider();
+ function firstSlider() {
+ var set_time = 8000;
+
+ function line_animation() {
+ $('.slide-ul li.active_n .time-bloks-line').animate({width:'100%'}, set_time, function() {
+ $(this).css({width:0});
+ });
+ }
+
+ line_animation();
+
+ function for_interval() {
+ var slide_active = $('.slide-ul').find('li.active_n');
+ slide_active.removeClass('active_n');
+ slide_active.next().addClass('active_n');
+ var lengs = $('.slide-ul li').index($('li.active_n'));
+
+ if (lengs == -1){
+ $('.slide-ul li:first-child').addClass('active_n')
+ }
+ var img_bg = $('.slide-ul li.active_n').find('img');
+ img_bg = img_bg.attr('src').split('/');
+ img_bg = img_bg[img_bg.length - 1];
+ if (device.mobile() || device.tablet()){
+
+ $('.slider-bg').attr('style', 'background-image: url("images/slider/big-' + img_bg + '")');
+ } else {
+ $('.slider-bg').attr('style', 'background-image: url("images/slider/big-' + img_bg + '")');
+ }
+
+
+ line_animation();
+
+ }
+ var stop_interval = setInterval(function(){
+ for_interval()
+ },set_time);
+
+ $('.slide-ul li').click(function(){
+ $('.slide-ul li.active_n .time-bloks-line').stop().css({width:0});
+ $('.slide-ul li').removeClass('active_n');
+ $(this).addClass('active_n');
+ var img_bg = $('.slide-ul li.active_n').find('img');
+ img_bg = img_bg.attr('src').split('/');
+ img_bg = img_bg[img_bg.length - 1];
+ if (device.mobile() || device.tablet()){
+
+ $('.slider-bg').attr('style', 'background-image: url("images/slider/big-' + img_bg + '")');
+ } else {
+ $('.slider-bg').attr('style', 'background-image: url("images/slider/big-' + img_bg + '")');
+ }
+ clearInterval(stop_interval);
+ stop_interval = setInterval(function(){
+ for_interval()
+ },set_time);
+
+ line_animation();
+ });
+ }
+});
+
+
+
+
diff --git a/frontend/web/js/jquery-2.2.0.min.js b/frontend/web/js/jquery-2.2.0.min.js
new file mode 100644
index 0000000..06ac263
--- /dev/null
+++ b/frontend/web/js/jquery-2.2.0.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v2.2.0 | (c) jQuery Foundation | jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="2.2.0",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!k.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=d.createElement("script"),b.text=a,d.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:h.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(d=e.call(arguments,2),f=function(){return a.apply(b||this,d.concat(e.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML=" ",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML=" ","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML=" ",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return h.call(b,a)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?void 0!==c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?h.call(n(a),this[0]):h.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||n.uniqueSort(e),D.test(a)&&e.reverse()),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.removeEventListener("DOMContentLoaded",J),a.removeEventListener("load",J),n.ready()}n.ready.promise=function(b){return I||(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(n.ready):(d.addEventListener("DOMContentLoaded",J),a.addEventListener("load",J))),I.promise(b)},n.ready.promise();var K=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)K(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},L=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function M(){this.expando=n.expando+M.uid++}M.uid=1,M.prototype={register:function(a,b){var c=b||{};return a.nodeType?a[this.expando]=c:Object.defineProperty(a,this.expando,{value:c,writable:!0,configurable:!0}),a[this.expando]},cache:function(a){if(!L(a))return{};var b=a[this.expando];return b||(b={},L(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[b]=c;else for(d in b)e[d]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=a[this.expando];if(void 0!==f){if(void 0===b)this.register(a);else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in f?d=[b,e]:(d=e,d=d in f?[d]:d.match(G)||[])),c=d.length;while(c--)delete f[d[c]]}(void 0===b||n.isEmptyObject(f))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!n.isEmptyObject(b)}};var N=new M,O=new M,P=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Q=/[A-Z]/g;function R(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Q,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:P.test(c)?n.parseJSON(c):c}catch(e){}O.set(a,b,c);
+}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:function(a,b,c){return O.access(a,b,c)},removeData:function(a,b){O.remove(a,b)},_data:function(a,b,c){return N.access(a,b,c)},_removeData:function(a,b){N.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=O.get(f),1===f.nodeType&&!N.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),R(f,d,e[d])));N.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){O.set(this,a)}):K(this,function(b){var c,d;if(f&&void 0===b){if(c=O.get(f,a)||O.get(f,a.replace(Q,"-$&").toLowerCase()),void 0!==c)return c;if(d=n.camelCase(a),c=O.get(f,d),void 0!==c)return c;if(c=R(f,d,void 0),void 0!==c)return c}else d=n.camelCase(a),this.each(function(){var c=O.get(this,d);O.set(this,d,b),a.indexOf("-")>-1&&void 0!==c&&O.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){O.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=N.get(a,b),c&&(!d||n.isArray(c)?d=N.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return N.get(a,c)||N.access(a,c,{empty:n.Callbacks("once memory").add(function(){N.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length",""],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};$.optgroup=$.option,$.tbody=$.tfoot=$.colgroup=$.caption=$.thead,$.th=$.td;function _(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function aa(a,b){for(var c=0,d=a.length;d>c;c++)N.set(a[c],"globalEval",!b||N.get(b[c],"globalEval"))}var ba=/<|?\w+;/;function ca(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],o=0,p=a.length;p>o;o++)if(f=a[o],f||0===f)if("object"===n.type(f))n.merge(m,f.nodeType?[f]:f);else if(ba.test(f)){g=g||l.appendChild(b.createElement("div")),h=(Y.exec(f)||["",""])[1].toLowerCase(),i=$[h]||$._default,g.innerHTML=i[1]+n.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;n.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",o=0;while(f=m[o++])if(d&&n.inArray(f,d)>-1)e&&e.push(f);else if(j=n.contains(f.ownerDocument,f),g=_(l.appendChild(f),"script"),j&&aa(g),c){k=0;while(f=g[k++])Z.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var da=/^key/,ea=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,fa=/^([^.]*)(?:\.(.+)|)/;function ga(){return!0}function ha(){return!1}function ia(){try{return d.activeElement}catch(a){}}function ja(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ja(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ha;else if(!e)return this;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return"undefined"!=typeof n&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(G)||[""],j=b.length;while(j--)h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.hasData(a)&&N.get(a);if(r&&(i=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&N.remove(a,"handle events")}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(N.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.rnamespace||a.rnamespace.test(g.namespace))&&(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,la=/