Crelly Slider - Version 0.6.5

Version Description

  • Initial release.
Download this release

Release Info

Developer fabiorino
Plugin Icon 128x128 Crelly Slider
Version 0.6.5
Comparing to
See all releases

Version 0.6.5

crellyslider.php ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Plugin Name: Crelly Slider
5
+ * Plugin URI: http://fabiorino1.altervista.org/projects/crellyslider
6
+ * Description: The first free WordPress slider with elements animations.
7
+ * Version: 0.6.5
8
+ * Author: fabiorino
9
+ * Author URI: http://fabiorino1.altervista.org
10
+ * License: GPL2
11
+ */
12
+
13
+ /*************/
14
+ /** GLOBALS **/
15
+ /*************/
16
+
17
+ define('CS_VERSION', '0.6.5');
18
+ define('CS_PATH', plugin_dir_path(__FILE__));
19
+ define('CS_PLUGIN_URL', plugins_url() . '/crellyslider');
20
+
21
+ require_once CS_PATH . 'wordpress/common.php';
22
+ require_once CS_PATH . 'wordpress/tables.php';
23
+ require_once CS_PATH . 'wordpress/frontend.php';
24
+
25
+ // Create (or remove) 3 tables: the sliders settings, the slides settings and the elements proprieties. We will also store the current version of the plugin
26
+ register_activation_hook(__FILE__, array('CrellySliderTables', 'setVersion'));
27
+ register_activation_hook(__FILE__, array('CrellySliderTables', 'setTables'));
28
+ register_uninstall_hook(__FILE__, array('CrellySliderTables', 'removeVersion'));
29
+ register_uninstall_hook(__FILE__, array('CrellySliderTables', 'dropTables'));
30
+
31
+ // Languages
32
+ load_plugin_textdomain('crellyslider', false, basename(dirname(__FILE__)) . 'wordpress/languages');
33
+
34
+ /****************/
35
+ /** COMMON CODE**/
36
+ /****************/
37
+
38
+ // CSS and Javascript
39
+ CrellySliderCommon::setEnqueues();
40
+
41
+ CrellySliderFrontend::addShortcode();
42
+
43
+ /****************/
44
+ /* BACKEND CODE */
45
+ /****************/
46
+
47
+ if(is_admin()) {
48
+ require_once CS_PATH . 'wordpress/admin.php';
49
+
50
+ // Tables
51
+ if(CS_VERSION != get_option('cs_version')) {
52
+ CrellySliderTables::setVersion();
53
+ CrellySliderTables::setTables();
54
+ }
55
+
56
+ CrellySliderAdmin::setEnqueues();
57
+ CrellySliderAdmin::showSettings();
58
+
59
+ // Ajax functions
60
+ require_once CS_PATH . 'wordpress/ajax.php';
61
+ }
62
+
63
+ ?>
css/crellyslider.css ADDED
@@ -0,0 +1,132 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .crellyslider {
2
+ margin: 0 auto;
3
+ position: relative;
4
+ background-color: #f8f8f8;
5
+ white-space: nowrap;
6
+ overflow: hidden;
7
+ }
8
+
9
+ .crellyslider > .cs-preloader {
10
+ width: 100%;
11
+ height: 100%;
12
+ z-index: 999;
13
+ }
14
+
15
+ .crellyslider > .cs-preloader > .cs-loader {
16
+ width: 20px;
17
+ height: 20px;
18
+ position: absolute;
19
+ top: 50%;
20
+ left: 50%;
21
+ margin-top: -10px;
22
+ margin-left: -10px;
23
+ border: solid 2px #fff;
24
+ }
25
+
26
+ .crellyslider > .cs-controls,
27
+ .crellyslider > .cs-navigation {
28
+ z-index: 999;
29
+ -webkit-transition: all 0.2s;
30
+ opacity: 0;
31
+ }
32
+
33
+ .crellyslider:hover > .cs-controls,
34
+ .crellyslider:hover > .cs-navigation {
35
+ opacity: 1;
36
+ }
37
+
38
+ .crellyslider > .cs-slides {
39
+ list-style: none;
40
+ margin: 0;
41
+ padding: 0;
42
+ }
43
+
44
+ .crellyslider > .cs-slides > .cs-slide {
45
+ margin: 0;
46
+ padding: 0;
47
+ position: absolute;
48
+ overflow: hidden;
49
+ }
50
+
51
+ .crellyslider > .cs-slides > .cs-slide > * {
52
+ margin: 0;
53
+ padding: 0;
54
+ position: absolute;
55
+ display: block;
56
+ }
57
+
58
+ .crellyslider > .cs-slides > .cs-slide > img {
59
+ max-width: none !important;
60
+ }
61
+
62
+ .crellyslider > .cs-controls {
63
+ position: absolute;
64
+ width: 100%;
65
+ top: 50%;
66
+ margin-top: -9px;
67
+ z-index: 999;
68
+ }
69
+
70
+ .crellyslider > .cs-controls > .cs-previous,
71
+ .crellyslider > .cs-controls > .cs-next {
72
+ display: block;
73
+ width: 18px;
74
+ height: 18px;
75
+ position: absolute;
76
+ cursor: pointer;
77
+ background-image: url('../images/controls.png');
78
+ }
79
+
80
+ .crellyslider > .cs-controls > .cs-previous {
81
+ background-position: 0 0;
82
+ left: 30px;
83
+ }
84
+
85
+ .crellyslider > .cs-controls > .cs-next {
86
+ background-position: 18px 0;
87
+ right: 30px;
88
+ }
89
+
90
+ .crellyslider > .cs-navigation {
91
+ position: absolute;
92
+ width: 100%;
93
+ bottom: 0;
94
+ text-align: center;
95
+ }
96
+
97
+ .crellyslider > .cs-navigation > .cs-slide-link {
98
+ display: inline-block;
99
+ width: 7px;
100
+ height: 7px;
101
+ margin: 5px;
102
+ cursor: pointer;
103
+ border: solid 1px rgba(20, 20, 20, .5);
104
+ background-color: rgba(20, 20, 20, .5);
105
+ }
106
+
107
+ .crellyslider > .cs-navigation > .cs-slide-link.cs-active {
108
+ border: solid 1px #fff;
109
+ background-color: rgba(255, 255, 255, .5);
110
+ }
111
+
112
+ .crellyslider > .cs-progress-bar {
113
+ width: 0%;
114
+ height: 4px;
115
+ position: absolute;
116
+ top: 0;
117
+ background-color: rgba(255, 255, 255, .5);
118
+ z-index: 999;
119
+ }
120
+
121
+ .crellyslider > .cs-progress-bar.cs-progress-bar-hidden {
122
+ opacity: 0;
123
+ filter: alpha(opacity=0);
124
+ }
125
+
126
+ .cs-caption {
127
+ background-color: #333;
128
+ color: white;
129
+ font-weight: bold;
130
+ padding: 10px 20px;
131
+ border-radius: 3px;
132
+ }
demo/demo.html ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html>
3
+
4
+ <head>
5
+ <meta charset="utf-8" />
6
+ <meta name="viewport" content="width=device-width" />
7
+
8
+ <title>Crelly Slider - Free jQuery Slider</title>
9
+ <meta name="description" content="The first Free Wordpress Slider that supports animations" />
10
+
11
+ <link rel="stylesheet" type="text/css" href="../css/crellyslider.css" />
12
+
13
+ <link href='http://fonts.googleapis.com/css?family=Rokkitt' rel='stylesheet' type='text/css'>
14
+ <style type="text/css">
15
+ @font-face {font-family:"Bender";src:url("fonts/Bender.eot?") format("eot"),url("fonts/Bender.woff") format("woff"),url("fonts/Bender.ttf") format("truetype"),url("fonts/Bender.svg#Bender") format("svg");font-weight:normal;font-style:normal;}
16
+ body {
17
+ margin: 0;
18
+ padding: 0;
19
+ font-family: arial;
20
+ font-size: 14px;
21
+ line-height: 1.5em;
22
+ vertical-align: baseline;
23
+ }
24
+ </style>
25
+
26
+ <script type="text/javascript" src="../js/jquery-1.11.0.min.js"></script>
27
+ <script type="text/javascript" src="../js/jquery.crellyslider.min.js"></script>
28
+
29
+ <script type="text/javascript">
30
+ jQuery(document).ready(function($) {
31
+ $('.demo-1').crellySlider({
32
+ layout : 'fixed',
33
+ slidesTime : 5000,
34
+ slidesEaseIn : 400,
35
+ slidesEaseOut : 400,
36
+ });
37
+ });
38
+ </script>
39
+ </head>
40
+
41
+ <body>
42
+ <br />
43
+
44
+ <div class="demo-1">
45
+ <ul>
46
+ <li style="background: url('images/bg1.png'); background-size: cover;" data-in="fade" data-out="slideLeft">
47
+ <p style="font-size: 48px; color: #fff; font-family: 'Rokkitt', serif;" data-top="190" data-left="60" data-in="slideRight" data-out="slideLeft" data-ease-in="300" data-ease-out="200" data-delay="800" data-time="all">Crelly Slider</p>
48
+ <p style="font-size: 22px; line-height: 26px; color: #fff; font-family: 'Rokkitt', serif;" data-top="245" data-left="60" data-in="slideRight" data-out="slideLeft" data-ease-in="300" data-ease-out="200" data-delay="1100" data-time="all">Is the first FREE Wordpress slider<br />with layers animations!</p>
49
+ <img alt="" src="images/house.png" data-top="149" data-left="837" data-in="slideLeft" data-out="slideRight" data-ease-in="200" data-ease-out="200" data-delay="400" data-time="all" />
50
+ <img alt="" src="images/hill.png" data-top="254" data-left="0" data-in="slideUp" data-out="slideDown" data-ease-in="200" data-ease-out="200" data-delay="0" data-time="all" />
51
+ <img alt="" src="images/airplane.png" data-top="44" data-left="1170" data-in="slideRight" data-out="slideUp" data-ease-in="10800" data-ease-out="200" data-delay="0" data-time="all" />
52
+ </li>
53
+ <li style="background: url('images/bg2.png');" data-in="slideLeft" data-out="slideLeft" data-time="5000">
54
+ <p style="font-size: 24px; color: #fff; font-family: 'Bender', 'Rokkitt', serif;" data-top="105" data-left="385" data-in="slideUp" data-out="slideLeft" data-ease-in="300" data-ease-out="200" data-delay="600" data-time="all">IT'S FREE</p>
55
+ <img alt="" src="images/and.png" data-top="82" data-left="505" data-in="slideUp" data-out="slideLeft" data-ease-in="300" data-ease-out="200" data-delay="600" data-time="all" />
56
+ <p style="font-size: 24px; color: #fff; font-family: 'Bender', 'Rokkitt', serif;" data-top="105" data-left="578" data-in="slideUp" data-out="slideLeft" data-ease-in="300" data-ease-out="200" data-delay="600" data-time="all">IT'S OPEN - SOURCE</p>
57
+ <img alt="" src="images/code.png" data-top="216" data-left="60" data-in="slideUp" data-out="slideLeft" data-ease-in="300" data-ease-out="200" data-delay="800" data-time="all" />
58
+ <img alt="" src="images/magic.png" data-top="323" data-left="705" data-in="slideUp" data-out="slideLeft" data-ease-in="300" data-ease-out="200" data-delay="1100" data-time="all" />
59
+ <img alt="" src="images/arrow-UpRight.png" data-top="249" data-left="798" data-in="fade" data-out="slideUp" data-ease-in="300" data-ease-out="200" data-delay="1400" data-time="all" />
60
+ <img alt="" src="images/arrow-right.png" data-top="349" data-left="798" data-in="fade" data-out="slideUp" data-ease-in="300" data-ease-out="200" data-delay="1700" data-time="all" />
61
+ <img alt="" src="images/arrow-downRight.png" data-top="409" data-left="798" data-in="fade" data-out="slideUp" data-ease-in="300" data-ease-out="200" data-delay="2000" data-time="all" />
62
+ <img alt="" src="images/document.png" data-top="259" data-left="940" data-in="fadeSmallLeft" data-out="slideLeft" data-ease-in="300" data-ease-out="200" data-delay="2300" data-time="all" />
63
+ <p style="font-size: 14px; color: #fff;" data-top="258" data-left="976" data-in="fadeSmallLeft" data-out="slideLeft" data-ease-in="300" data-ease-out="200" data-delay="2300" data-time="all">Well Documented</p>
64
+ <img alt="" src="images/tick.png" data-top="349" data-left="940" data-in="fadeSmallLeft" data-out="slideLeft" data-ease-in="300" data-ease-out="200" data-delay="2300" data-time="all" />
65
+ <p style="font-size: 14px; color: #fff;" data-top="348" data-left="976" data-in="fadeSmallLeft" data-out="slideLeft" data-ease-in="300" data-ease-out="200" data-delay="2300" data-time="all">Clear Code</p>
66
+ <img alt="" src="images/heart.png" data-top="439" data-left="940" data-in="fadeSmallLeft" data-out="slideLeft" data-ease-in="300" data-ease-out="200" data-delay="2300" data-time="all" />
67
+ <p style="font-size: 14px; color: #fff;" data-top="438" data-left="976" data-in="fadeSmallLeft" data-out="slideLeft" data-ease-in="300" data-ease-out="200" data-delay="2300" data-time="all">Done with Love</p>
68
+ </li>
69
+ </ul>
70
+ </div>
71
+
72
+ </body>
73
+
74
+ </html>
demo/fonts/Bender.eot ADDED
Binary file
demo/fonts/Bender.svg ADDED
@@ -0,0 +1,436 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg>
4
+ <metadata>
5
+ Created by FontForge 20110222 at Mon Mar 7 13:18:46 2011
6
+ By www-data
7
+ Copyright (c) 2009 by Oleg Zhuravlev, Gladkikh Ivan. All rights reserved.
8
+ </metadata>
9
+ <defs>
10
+ <font id="Bender" horiz-adv-x="561" >
11
+ <font-face
12
+ font-family="Bender"
13
+ font-weight="400"
14
+ font-stretch="normal"
15
+ units-per-em="1000"
16
+ panose-1="2 0 5 3 2 0 0 2 0 4"
17
+ ascent="800"
18
+ descent="-200"
19
+ x-height="533"
20
+ cap-height="700"
21
+ bbox="-70 -275 1011 955"
22
+ underline-thickness="50"
23
+ underline-position="-50"
24
+ stemh="65"
25
+ stemv="65"
26
+ unicode-range="U+0020-2122"
27
+ />
28
+ <missing-glyph />
29
+ <glyph glyph-name="quotedbl" unicode="&#x22;" horiz-adv-x="275"
30
+ d="M41 447l-11 253h70l-11 -253h-48zM186 447l-11 253h70l-11 -253h-48z" />
31
+ <glyph glyph-name="numbersign" unicode="#" horiz-adv-x="734"
32
+ d="M127 0h-67l76 192h-136v65h160l75 186h-133v65h157l77 192h67l-76 -192h203l77 192h67l-76 -192h136v-65h-161l-74 -186h133v-65h-158l-76 -192h-67l76 192h-204zM302 443l-73 -186h202l75 186h-204z" />
33
+ <glyph glyph-name="dollar" unicode="$" horiz-adv-x="544"
34
+ d="M150 65h225l64 64v95l-14 26l-358 174l-27 56v118l102 102h98v70h65v-70h99l98 -33l-20 -60l-90 28h-223l-64 -64v-72l12 -25l356 -173l31 -58v-141l-102 -102h-98v-70h-65v70h-96l-101 34l21 61z" />
35
+ <glyph glyph-name="percent" unicode="%" horiz-adv-x="701"
36
+ d="M61 28l529 685l49 -38l-528 -686zM463 290h126l82 -82v-126l-82 -82h-126l-82 82v126zM562 225h-72l-44 -44v-72l44 -44h72l44 44v72zM112 700h126l82 -82v-126l-82 -82h-126l-82 82v126zM211 635h-72l-44 -44v-72l44 -44h72l44 44v72z" />
37
+ <glyph glyph-name="ampersand" unicode="&#x26;" horiz-adv-x="605"
38
+ d="M547 -12l-96 107l-95 -95h-223l-103 102v138l154 152l-86 96v110l103 102h204l103 -103v-95h-65v68l-65 65h-150l-65 -65v-57l290 -323l91 90l46 -46l-93 -93l98 -110zM160 65h170l78 78l-181 201l-132 -131v-83z" />
39
+ <glyph glyph-name="quotesingle" unicode="'" horiz-adv-x="130"
40
+ d="M41 447l-11 253h70l-11 -253h-48z" />
41
+ <glyph glyph-name="parenleft" unicode="(" horiz-adv-x="250"
42
+ d="M105 544v-552l47 -74l98 -36l-22 -60l-117 42l-71 114v580l71 114l117 42l22 -60l-98 -36z" />
43
+ <glyph glyph-name="parenright" unicode=")" horiz-adv-x="250"
44
+ d="M145 -8v552l-47 74l-98 36l22 60l117 -42l71 -114v-580l-71 -114l-117 -42l-22 60l98 36z" />
45
+ <glyph glyph-name="asterisk" unicode="*" horiz-adv-x="377"
46
+ d="M156 592v108h65v-108l92 54l34 -57l-93 -55l93 -55l-34 -57l-92 54v-108h-65v108l-92 -54l-34 57l93 55l-93 55l34 57z" />
47
+ <glyph glyph-name="plus" unicode="+" horiz-adv-x="470"
48
+ d="M202 560h65v-183h183v-65h-183v-182h-65v182h-182v65h182v183z" />
49
+ <glyph glyph-name="comma" unicode="," horiz-adv-x="150"
50
+ d="M0 -180l55 240h75l-85 -240h-45z" />
51
+ <glyph glyph-name="hyphen" unicode="-" horiz-adv-x="450"
52
+ d="M20 312v65h410v-65h-410z" />
53
+ <glyph glyph-name="period" unicode="." horiz-adv-x="150"
54
+ d="M54 -10l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
55
+ <glyph glyph-name="slash" unicode="/" horiz-adv-x="506"
56
+ d="M0 20l453 692l53 -33l-453 -693z" />
57
+ <glyph glyph-name="zero" unicode="0" horiz-adv-x="604"
58
+ d="M125 125l305 497l-14 13h-226l-65 -64v-446zM479 575l-305 -497l14 -13h226l65 64v446zM442 700l102 -102v-496l-103 -102h-279l-102 102v496l103 102h279z" />
59
+ <glyph glyph-name="one" unicode="1" horiz-adv-x="360"
60
+ d="M340 0h-297v65h116v544l-93 -93l-46 46l139 139h65v-636h116v-65z" />
61
+ <glyph glyph-name="two" unicode="2" horiz-adv-x="546"
62
+ d="M128 635l-88 -28l-20 61l103 32h281l102 -103v-181l-93 -93l-327 -214v-44h420v-65h-485v144l347 227l73 74v126l-63 64h-250z" />
63
+ <glyph glyph-name="three" unicode="3" horiz-adv-x="535"
64
+ d="M111 0l-101 34l21 61l87 -30h248l64 63v154l-63 63h-216v69l250 221h-380v65h474v-66l-254 -224h152l102 -102v-206l-103 -102h-281z" />
65
+ <glyph glyph-name="four" unicode="4" horiz-adv-x="556"
66
+ d="M473 236h73v-65h-73v-171h-65v171h-398v88l398 443h65v-466zM408 236v366l-329 -366h329z" />
67
+ <glyph glyph-name="five" unicode="5" horiz-adv-x="559"
68
+ d="M59 700h460v-65h-395v-217h293l102 -102v-214l-103 -102h-265l-101 34l21 61l87 -30h230l66 65v158l-65 65h-330v347z" />
69
+ <glyph glyph-name="six" unicode="6" horiz-adv-x="585"
70
+ d="M60 103v494l102 103h282l98 -33l-22 -61l-89 29h-243l-63 -64v-157l33 11h284l103 -105v-218l-103 -102h-279zM415 360h-257l-33 -11v-219l65 -65h225l65 65v163z" />
71
+ <glyph glyph-name="seven" unicode="7" horiz-adv-x="505"
72
+ d="M249 175v-175h-65v191l236 401v43h-410v65h475v-125z" />
73
+ <glyph glyph-name="eight" unicode="8" horiz-adv-x="603"
74
+ d="M478 268l-64 64h-224l-65 -65v-138l65 -64h222l66 65v138zM410 635h-217l-63 -63v-115l61 -60h221l61 60v112zM440 0h-277l-103 102v193l70 70l-65 64v169l102 102h273l98 -102v-169l-65 -64l70 -70v-193z" />
75
+ <glyph glyph-name="nine" unicode="9" horiz-adv-x="585"
76
+ d="M525 597v-494l-102 -103h-282l-98 33l22 61l89 -29h243l63 64v157l-33 -11h-284l-103 105v218l103 102h279zM170 340h257l33 11v219l-65 65h-225l-65 -65v-163z" />
77
+ <glyph glyph-name="colon" unicode=":" horiz-adv-x="150"
78
+ d="M54 -10l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM54 378l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
79
+ <glyph glyph-name="semicolon" unicode=";" horiz-adv-x="156"
80
+ d="M60 378l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM0 -180l55 240h75l-85 -240h-45z" />
81
+ <glyph glyph-name="less" unicode="&#x3c;" horiz-adv-x="349"
82
+ d="M20 240v46l276 237l43 -49l-245 -211l245 -211l-43 -49z" />
83
+ <glyph glyph-name="equal" unicode="=" horiz-adv-x="450"
84
+ d="M20 403v65h410v-65h-410zM20 222v65h410v-65h-410z" />
85
+ <glyph glyph-name="greater" unicode="&#x3e;" horiz-adv-x="349"
86
+ d="M329 286v-46l-276 -237l-43 49l245 211l-245 211l43 49z" />
87
+ <glyph glyph-name="question" unicode="?" horiz-adv-x="544"
88
+ d="M145 635l-98 -98l-47 46l118 117h284l102 -102v-184l-215 -180v-109h-65v144l215 180v122l-64 64h-230zM235 -12l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
89
+ <glyph glyph-name="at" unicode="@" horiz-adv-x="879"
90
+ d="M809 578v-429l-83 -82h-147l-16 50l-54 -54h-176l-83 82v110l83 82h216v72l-45 44h-134l-87 -30l-21 61l101 34h168l83 -82v-264l13 -40h72l45 44v374l-95 85h-419l-95 -85v-514l95 -85h446v-65h-470l-136 122v570l136 122h467zM481 128l68 66v78h-189l-45 -44v-56
91
+ l45 -44h121z" />
92
+ <glyph glyph-name="A" unicode="A" horiz-adv-x="578"
93
+ d="M155 212l-72 -222l-63 20l223 690h92l223 -690l-63 -20l-72 222h-268zM176 277h226l-113 350z" />
94
+ <glyph glyph-name="B" unicode="B" horiz-adv-x="615"
95
+ d="M495 370l70 -71v-196l-103 -103h-382v700h381l83 -83v-198zM500 273l-63 64h-292v-272h292l63 63v145zM145 635v-233h290l44 44v145l-44 44h-290z" />
96
+ <glyph glyph-name="C" unicode="C" horiz-adv-x="579"
97
+ d="M426 65l76 76l47 -46l-95 -95h-291l-103 103v494l103 103h279l103 -103v-112h-65v85l-65 65h-225l-65 -65v-440l65 -65h236z" />
98
+ <glyph glyph-name="D" unicode="D" horiz-adv-x="626"
99
+ d="M80 700h383l103 -104v-492l-103 -104h-383v700zM501 569l-65 66h-291v-570h291l65 66v438z" />
100
+ <glyph glyph-name="E" unicode="E" horiz-adv-x="533"
101
+ d="M80 0v700h433v-65h-368v-232h326v-65h-326v-273h368v-65h-433z" />
102
+ <glyph glyph-name="F" unicode="F" horiz-adv-x="523"
103
+ d="M80 0v700h433v-65h-368v-240h326v-65h-326v-330h-65z" />
104
+ <glyph glyph-name="G" unicode="G" horiz-adv-x="605"
105
+ d="M545 598v-113h-65v86l-63 64h-229l-63 -64v-442l63 -64h229l63 64v167h-168v65h233v-259l-102 -102h-281l-102 102v496l102 102h281z" />
106
+ <glyph glyph-name="H" unicode="H" horiz-adv-x="645"
107
+ d="M500 396v304h65v-700h-65v331h-355v-331h-65v700h65v-304h355z" />
108
+ <glyph glyph-name="I" unicode="I" horiz-adv-x="357"
109
+ d="M327 0h-297v65h116v570h-116v65h297v-65h-116v-570h116v-65z" />
110
+ <glyph glyph-name="J" unicode="J" horiz-adv-x="527"
111
+ d="M117 0l-117 117l47 46l99 -98h181l65 65v505h-168v65h233v-597l-103 -103h-237z" />
112
+ <glyph glyph-name="K" unicode="K" horiz-adv-x="563"
113
+ d="M314 409l249 -384l-54 -35l-241 371l-123 -129v-232h-65v700h65v-374l365 384l47 -45z" />
114
+ <glyph glyph-name="L" unicode="L" horiz-adv-x="513"
115
+ d="M80 0v700h65v-635h368v-65h-433z" />
116
+ <glyph glyph-name="M" unicode="M" horiz-adv-x="832"
117
+ d="M444 166h-56l-243 415v-581h-65v700h72l264 -451l264 451h72v-700h-65v581z" />
118
+ <glyph glyph-name="N" unicode="N" horiz-adv-x="646"
119
+ d="M493 0l-348 587v-587h-65v700h73l348 -587v587h65v-700h-73z" />
120
+ <glyph glyph-name="O" unicode="O" horiz-adv-x="635"
121
+ d="M173 700h289l113 -103v-494l-113 -103h-289l-113 103v494zM510 570l-72 65h-241l-72 -65v-440l72 -65h241l72 65v440z" />
122
+ <glyph glyph-name="P" unicode="P" horiz-adv-x="605"
123
+ d="M145 267v-267h-65v700h382l103 -102v-229l-103 -102h-317zM434 635h-289v-303h289l66 65v173z" />
124
+ <glyph glyph-name="Q" unicode="Q" horiz-adv-x="635"
125
+ d="M285 0h-112l-113 103v494l113 103h289l113 -103v-494l-113 -103h-112v-138h-65v138zM350 65h88l72 65v440l-72 65h-241l-72 -65v-440l72 -65h88v60h65v-60z" />
126
+ <glyph glyph-name="R" unicode="R" horiz-adv-x="605"
127
+ d="M145 274v-274h-65v700h382l103 -102v-222l-103 -102h-141l242 -242l-46 -47l-288 289h-84zM434 635h-289v-296h289l66 65v166z" />
128
+ <glyph glyph-name="S" unicode="S" horiz-adv-x="544"
129
+ d="M392 635h-223l-64 -64v-72l12 -25l356 -173l31 -58v-141l-102 -102h-259l-101 34l21 61l87 -30h225l64 64v95l-14 26l-358 174l-27 56v118l102 102h262l98 -33l-20 -60z" />
130
+ <glyph glyph-name="T" unicode="T" horiz-adv-x="505"
131
+ d="M285 635v-635h-65v635h-220v65h505v-65h-220z" />
132
+ <glyph glyph-name="U" unicode="U" horiz-adv-x="625"
133
+ d="M173 0l-103 102v598h65v-570l66 -65h223l66 65v570h65v-598l-103 -102h-279z" />
134
+ <glyph glyph-name="V" unicode="V" horiz-adv-x="586"
135
+ d="M337 0h-88l-229 689l63 21l210 -631l210 631l63 -21z" />
136
+ <glyph glyph-name="W" unicode="W" horiz-adv-x="908"
137
+ d="M418 679h72l163 -566l171 597l64 -18l-198 -692h-74l-162 564l-162 -564h-74l-198 692l64 18l171 -597z" />
138
+ <glyph glyph-name="X" unicode="X" horiz-adv-x="544"
139
+ d="M75 710l197 -300l197 300l55 -36l-213 -324l211 -324l-55 -36l-195 300l-195 -300l-55 36l211 324l-213 324z" />
140
+ <glyph glyph-name="Y" unicode="Y" horiz-adv-x="560"
141
+ d="M312 0h-65v264l-237 412l58 34l212 -368l212 368l58 -34l-238 -413v-263z" />
142
+ <glyph glyph-name="Z" unicode="Z" horiz-adv-x="515"
143
+ d="M106 65h384v-65h-470v62l389 573h-384v65h470v-64z" />
144
+ <glyph glyph-name="bracketleft" unicode="[" horiz-adv-x="224"
145
+ d="M224 -168h-184v868h184v-65h-119v-738h119v-65z" />
146
+ <glyph glyph-name="backslash" unicode="\" horiz-adv-x="506"
147
+ d="M53 712l453 -692l-53 -34l-453 693z" />
148
+ <glyph glyph-name="bracketright" unicode="]" horiz-adv-x="224"
149
+ d="M184 700v-868h-184v65h119v738h-119v65h184z" />
150
+ <glyph glyph-name="asciicircum" unicode="^" horiz-adv-x="470"
151
+ d="M212 700h46l212 -288l-52 -38l-183 247l-183 -247l-52 38z" />
152
+ <glyph glyph-name="underscore" unicode="_" horiz-adv-x="446"
153
+ d="M0 -65v65h446v-65h-446z" />
154
+ <glyph glyph-name="grave" unicode="`" horiz-adv-x="200"
155
+ d="M69 700l141 -220h-56l-164 220h79z" />
156
+ <glyph glyph-name="a" unicode="a" horiz-adv-x="551"
157
+ d="M473 451v-331l28 -113l-62 -15l-16 64l-56 -56h-234l-83 82v145l83 82h275v115l-45 44h-192l-87 -30l-21 61l101 34h226zM341 65l67 67v112h-248l-45 -44v-91l45 -44h181z" />
158
+ <glyph glyph-name="b" unicode="b"
159
+ d="M144 501l32 32h243l82 -82v-369l-82 -82h-258l-82 82v517l-29 88l61 20l33 -101v-105zM144 408v-300l43 -43h206l43 43v317l-43 43h-189z" />
160
+ <glyph glyph-name="c" unicode="c" horiz-adv-x="514"
161
+ d="M376 65l88 28l20 -61l-102 -32h-240l-82 83v367l82 83h258l82 -83v-110h-65v86l-43 42h-206l-43 -42v-319l43 -42h208z" />
162
+ <glyph glyph-name="d" unicode="d" horiz-adv-x="560"
163
+ d="M417 408l-60 60h-189l-43 -43v-317l43 -43h182l67 67v276zM417 501v199h65v-580l28 -113l-62 -15l-16 64l-56 -56h-235l-81 81v371l81 81h244z" />
164
+ <glyph glyph-name="e" unicode="e" horiz-adv-x="524"
165
+ d="M376 65l88 28l20 -61l-102 -32h-240l-82 82v369l82 82h258l82 -82v-147l-82 -81h-275v-114l44 -44h207zM169 468l-44 -44v-136h248l44 44v92l-44 44h-204z" />
166
+ <glyph glyph-name="f" unicode="f" horiz-adv-x="373"
167
+ d="M105 402h-85v65h85v151l83 82h133l102 -34l-22 -61l-87 30h-101l-43 -43v-125h169v-65h-169v-402h-65v402z" />
168
+ <glyph glyph-name="g" unicode="g" horiz-adv-x="518"
169
+ d="M155 125l-20 19l-16 -16v-46l23 -23h278l60 -60v-107l-60 -60h-295l-75 73l44 46l56 -54h242l23 23v51l-23 23h-279l-60 60v102l35 35l-35 35v225l82 82h225l113 28l15 -62l-63 -16l55 -55v-221l-82 -82h-243zM348 468h-186l-44 -44v-171l63 -63h190l44 44v167z" />
170
+ <glyph glyph-name="h" unicode="h" horiz-adv-x="560"
171
+ d="M144 408v-408h-65v599l-29 88l61 20l33 -101v-105l32 32h242l82 -82v-451h-65v425l-43 43h-188z" />
172
+ <glyph glyph-name="i" unicode="i" horiz-adv-x="216"
173
+ d="M79 433l-29 88l61 20l33 -101v-440h-65v433zM90 605l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
174
+ <glyph glyph-name="j" unicode="j" horiz-adv-x="214"
175
+ d="M91 -127l-140 -51l-21 61l116 40l31 45v465l-29 88l61 20l33 -101v-486zM88 605l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
176
+ <glyph glyph-name="k" unicode="k" horiz-adv-x="493"
177
+ d="M144 606v-329l301 266l43 -48l-208 -184l213 -282l-52 -39l-210 278l-87 -76v-192h-65v599l-29 88l61 20z" />
178
+ <glyph glyph-name="l" unicode="l" horiz-adv-x="204"
179
+ d="M144 606v-606h-65v599l-29 88l61 20z" />
180
+ <glyph glyph-name="m" unicode="m" horiz-adv-x="831"
181
+ d="M78 0v413l-28 113l62 15l16 -64l56 56h192l49 -49l49 49h215l82 -83v-450h-65v423l-45 45h-160l-44 -44v-424h-65v423l-45 45h-137l-67 -67v-401h-65z" />
182
+ <glyph glyph-name="n" unicode="n"
183
+ d="M78 0v413l-28 113l62 15l16 -64l56 56h235l82 -82v-451h-65v423l-45 45h-181l-67 -67v-401h-65z" />
184
+ <glyph glyph-name="o" unicode="o" horiz-adv-x="547"
185
+ d="M487 83l-82 -83h-263l-82 83v367l82 83h263l82 -83v-367zM169 65h209l44 45v313l-44 45h-209l-44 -45v-313z" />
186
+ <glyph glyph-name="p" unicode="p" horiz-adv-x="560"
187
+ d="M143 125l60 -60h189l43 43v317l-43 43h-182l-67 -67v-276zM143 32v-200h-65v581l-28 113l62 15l16 -64l56 56h235l81 -81v-371l-81 -81h-244z" />
188
+ <glyph glyph-name="q" unicode="q" horiz-adv-x="551"
189
+ d="M417 32l-32 -32h-243l-82 82v369l82 82h258l82 -82v-517l29 -88l-61 -20l-33 101v105zM417 125v300l-43 43h-206l-43 -43v-317l43 -43h189z" />
190
+ <glyph glyph-name="r" unicode="r" horiz-adv-x="459"
191
+ d="M335 468h-125l-67 -67v-401h-65v413l-28 113l62 15l16 -64l56 56h178l97 -95l-45 -47z" />
192
+ <glyph glyph-name="s" unicode="s" horiz-adv-x="477"
193
+ d="M380 170l-11 22l-306 108l-31 60v91l82 82h232l101 -34l-21 -61l-87 30h-197l-45 -45v-47l11 -23l306 -108l31 -59v-104l-82 -82h-232l-101 32l20 62l89 -29h196l45 45v60z" />
194
+ <glyph glyph-name="t" unicode="t" horiz-adv-x="428"
195
+ d="M115 445h-95v65h95v160h65v-160h170v-65h-170v-336l44 -44h94l90 28l20 -61l-102 -32h-129l-82 82v363z" />
196
+ <glyph glyph-name="u" unicode="u"
197
+ d="M483 533v-413l28 -113l-62 -15l-16 64l-56 -56h-235l-82 82v451h65v-423l45 -45h181l67 67v401h65z" />
198
+ <glyph glyph-name="v" unicode="v" horiz-adv-x="500"
199
+ d="M283 0h-66l-207 519l60 24l180 -453l180 453l60 -24z" />
200
+ <glyph glyph-name="w" unicode="w" horiz-adv-x="728"
201
+ d="M329 511h70l128 -400l128 432l63 -19l-156 -524h-68l-130 406l-130 -406h-68l-156 524l63 19l128 -432z" />
202
+ <glyph glyph-name="x" unicode="x" horiz-adv-x="452"
203
+ d="M226 323l163 220l53 -39l-176 -238l175 -237l-53 -39l-162 219l-162 -219l-53 39l175 237l-176 238l53 39z" />
204
+ <glyph glyph-name="y" unicode="y" horiz-adv-x="493"
205
+ d="M214 -168h-128v65h103l27 27l25 76h-18l-213 518l62 25l193 -471l157 471l61 -20l-210 -632z" />
206
+ <glyph glyph-name="z" unicode="z" horiz-adv-x="452"
207
+ d="M346 468h-324v65h410v-65l-326 -403h324v-65h-410v64z" />
208
+ <glyph glyph-name="braceleft" unicode="{" horiz-adv-x="319"
209
+ d="M108 169l-88 77v44l88 77v207l69 109l127 31l15 -62l-103 -25l-43 -66v-225l-78 -68l78 -68v-225l43 -66l103 -25l-15 -62l-127 31l-69 109v207z" />
210
+ <glyph glyph-name="bar" unicode="|" horiz-adv-x="226"
211
+ d="M146 -168h-66v868h66v-868z" />
212
+ <glyph glyph-name="braceright" unicode="}" horiz-adv-x="319"
213
+ d="M299 246l-88 -77v-207l-69 -109l-127 -31l-15 62l103 25l43 66v225l78 68l-78 68v225l-43 66l-103 25l15 62l127 -31l69 -109v-207l88 -77v-44z" />
214
+ <glyph glyph-name="asciitilde" unicode="~" horiz-adv-x="624"
215
+ d="M377 363l-103 -103h-137l-117 117l47 46l99 -98h81l103 103h137l117 -117l-47 -46l-99 98h-81z" />
216
+ <glyph glyph-name="quotesinglbase" unicode="&#x201a;" horiz-adv-x="140"
217
+ d="M10 -180l55 240h75l-85 -240h-45z" />
218
+ <glyph glyph-name="quotedblbase" unicode="&#x201e;" horiz-adv-x="275"
219
+ d="M10 -180l55 240h75l-85 -240h-45zM145 -180l55 240h75l-85 -240h-45z" />
220
+ <glyph glyph-name="ellipsis" unicode="&#x2026;" horiz-adv-x="450"
221
+ d="M54 -10l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM204 -10l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM354 -10l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
222
+ <glyph glyph-name="dagger" unicode="&#x2020;" horiz-adv-x="410"
223
+ d="M0 405v65h172v230h66v-230h172v-65h-172v-573h-66v573h-172z" />
224
+ <glyph glyph-name="daggerdbl" unicode="&#x2021;" horiz-adv-x="410"
225
+ d="M0 405v65h172v230h66v-230h172v-65h-172v-278h172v-65h-172v-230h-66v230h-172v65h172v278h-172z" />
226
+ <glyph glyph-name="Euro" unicode="&#x20ac;" horiz-adv-x="579"
227
+ d="M0 380v60h60v157l103 103h279l103 -103v-112h-65v85l-65 65h-225l-65 -65v-130h295v-60h-295v-60h285v-60h-285v-130l65 -65h236l76 76l47 -46l-95 -95h-291l-103 103v157h-70v60h70v60h-60z" />
228
+ <glyph glyph-name="perthousand" unicode="&#x2030;" horiz-adv-x="1041"
229
+ d="M61 28l529 685l49 -38l-528 -686zM463 290h126l82 -82v-126l-82 -82h-126l-82 82v126zM562 225h-72l-44 -44v-72l44 -44h72l44 44v72zM112 700h126l82 -82v-126l-82 -82h-126l-82 82v126zM211 635h-72l-44 -44v-72l44 -44h72l44 44v72zM803 290h126l82 -82v-126l-82 -82
230
+ h-126l-82 82v126zM902 225h-72l-44 -44v-72l44 -44h72l44 44v72z" />
231
+ <glyph glyph-name="guilsinglleft" unicode="&#x2039;" horiz-adv-x="349"
232
+ d="M20 240v46l276 237l43 -49l-245 -211l245 -211l-43 -49z" />
233
+ <glyph glyph-name="quoteleft" unicode="&#x2018;" horiz-adv-x="140"
234
+ d="M130 700l-55 -240h-75l85 240h45z" />
235
+ <glyph glyph-name="quoteright" unicode="&#x2019;" horiz-adv-x="140"
236
+ d="M10 460l55 240h75l-85 -240h-45z" />
237
+ <glyph glyph-name="quotedblleft" unicode="&#x201c;" horiz-adv-x="275"
238
+ d="M265 700l-55 -240h-75l85 240h45zM130 700l-55 -240h-75l85 240h45z" />
239
+ <glyph glyph-name="quotedblright" unicode="&#x201d;" horiz-adv-x="275"
240
+ d="M10 460l55 240h75l-85 -240h-45zM145 460l55 240h75l-85 -240h-45z" />
241
+ <glyph glyph-name="bullet" unicode="&#x2022;" horiz-adv-x="390"
242
+ d="M132 495h126l82 -82v-126l-82 -82h-126l-82 82v126z" />
243
+ <glyph glyph-name="endash" unicode="&#x2013;" horiz-adv-x="526"
244
+ d="M20 267v66h486v-66h-486z" />
245
+ <glyph glyph-name="emdash" unicode="&#x2014;" horiz-adv-x="712"
246
+ d="M20 267v66h672v-66h-672z" />
247
+ <glyph glyph-name="trademark" unicode="&#x2122;" horiz-adv-x="729"
248
+ d="M0 700h305v-65h-120v-265h-65v265h-120v65zM535 454h-56l-79 126v-210h-65v330h69l104 -165l103 165h68v-330h-65v210z" />
249
+ <glyph glyph-name="guilsinglright" unicode="&#x203a;" horiz-adv-x="349"
250
+ d="M329 286v-46l-276 -237l-43 49l245 211l-245 211l43 49z" />
251
+ <glyph glyph-name="currency" unicode="&#xa4;" horiz-adv-x="579"
252
+ d="M404 635h-289v-250h289l66 65v120zM394 295l81 -223l69 -23l-21 -62l-102 34l-79 219h-227v-240h-65v240h-50v55h50v35h-50v55h50v315h382l103 -102v-176l-93 -92h-327v-35h279z" />
253
+ <glyph glyph-name="brokenbar" unicode="&#xa6;" horiz-adv-x="226"
254
+ d="M146 700v-372h-66v372h66zM146 -168h-66v372h66v-372z" />
255
+ <glyph glyph-name="section" unicode="&#xa7;" horiz-adv-x="513"
256
+ d="M110 237l12 -22l206 -94l75 82v93l-12 22l-207 93l-74 -81v-93zM45 223v132l78 84l-32 15l-31 58v106l82 82h230l101 -34l-21 -61l-87 30h-196l-44 -45v-65l13 -22l299 -135l31 -58v-132l-77 -84l31 -15l31 -58v-107l-82 -82h-230l-101 34l21 61l87 -30h196l44 45v65
257
+ l-13 23l-299 135z" />
258
+ <glyph glyph-name="copyright" unicode="&#xa9;" horiz-adv-x="859"
259
+ d="M799 577v-454l-136 -123h-467l-136 123v454l136 123h467zM734 153v394l-98 88h-413l-98 -88v-394l98 -88h413zM494 210l88 28l20 -61l-102 -32h-165l-82 83v244l82 83h184l82 -83v-75h-65v49l-43 44h-132l-43 -44v-192l43 -44h133z" />
260
+ <glyph glyph-name="guillemotleft" unicode="&#xab;" horiz-adv-x="597"
261
+ d="M544 3l-303 260l303 260l43 -49l-245 -211l245 -211zM323 3l-303 260l303 260l43 -49l-245 -211l245 -211z" />
262
+ <glyph glyph-name="logicalnot" unicode="&#xac;" horiz-adv-x="410"
263
+ d="M324 212v100h-304v65h370v-165h-66z" />
264
+ <glyph glyph-name="uni00AD" unicode="&#xad;" horiz-adv-x="450"
265
+ d="M20 312v65h410v-65h-410z" />
266
+ <glyph glyph-name="registered" unicode="&#xae;" horiz-adv-x="859"
267
+ d="M552 449l-42 41h-178v-129h178c15 15 26 26 42 41v47zM617 473v-95l-83 -82h-42l123 -123l-46 -47l-170 170h-67v-151h-65v410h267zM799 577v-454l-136 -123h-467l-136 123v454l136 123h467zM734 153v394l-98 88h-413l-98 -88v-394l98 -88h413z" />
268
+ <glyph glyph-name="degree" unicode="&#xb0;" horiz-adv-x="350"
269
+ d="M112 700h126l82 -82v-126l-82 -82h-126l-82 82v126zM211 635h-72l-44 -44v-72l44 -44h72l44 44v72z" />
270
+ <glyph glyph-name="plusminus" unicode="&#xb1;" horiz-adv-x="470"
271
+ d="M202 560h65v-163h183v-65h-183v-162h-65v162h-182v65h182v163zM30 70v60h410v-60h-410z" />
272
+ <glyph glyph-name="mu" unicode="&#xb5;"
273
+ d="M483 533v-413l28 -113l-62 -15l-16 64l-56 -56h-235l-17 17v-185h-65v701h65v-423l45 -45h181l67 67v401h65z" />
274
+ <glyph glyph-name="paragraph" unicode="&#xb6;" horiz-adv-x="521"
275
+ d="M314 -168h-65v350h-116l-103 105v311l103 102h181v-868zM441 -168h-65v868h65v-868z" />
276
+ <glyph glyph-name="periodcentered" unicode="&#xb7;" horiz-adv-x="300"
277
+ d="M129 305l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
278
+ <glyph glyph-name="guillemotright" unicode="&#xbb;" horiz-adv-x="597"
279
+ d="M356 263l-303 -260l-43 49l245 211l-245 211l43 49zM577 263l-303 -260l-43 49l245 211l-245 211l43 49z" />
280
+ <glyph glyph-name="afii10035" unicode="&#x421;" horiz-adv-x="579"
281
+ d="M426 65l76 76l47 -46l-95 -95h-291l-103 103v494l103 103h279l103 -103v-112h-65v85l-65 65h-225l-65 -65v-440l65 -65h236z" />
282
+ <glyph glyph-name="afii10084" unicode="&#x442;" horiz-adv-x="421"
283
+ d="M0 533h421v-65h-178v-468h-65v468h-178v65z" />
284
+ <glyph glyph-name="afii10085" unicode="&#x443;" horiz-adv-x="493"
285
+ d="M214 -168h-128v65h103l27 27l25 76h-18l-213 518l62 25l193 -471l157 471l61 -20l-210 -632z" />
286
+ <glyph glyph-name="space" unicode=" " horiz-adv-x="300"
287
+ />
288
+ <glyph glyph-name="odieresis" unicode="&#xf6;" horiz-adv-x="547"
289
+ d="M487 83l-82 -83h-263l-82 83v367l82 83h263l82 -83v-367zM169 65h209l44 45v313l-44 45h-209l-44 -45v-313zM162 605l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM342 605l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
290
+ <glyph glyph-name="udieresis" unicode="&#xfc;"
291
+ d="M483 533v-413l28 -113l-62 -15l-16 64l-56 -56h-235l-82 82v451h65v-423l45 -45h181l67 67v401h65zM160 585l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM340 585l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
292
+ <glyph glyph-name="Odieresis" unicode="&#xd6;" horiz-adv-x="635"
293
+ d="M173 700h289l113 -103v-494l-113 -103h-289l-113 103v494zM510 570l-72 65h-241l-72 -65v-440l72 -65h241l72 65v440zM207 788l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM387 788l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
294
+ <glyph glyph-name="Udieresis" unicode="&#xdc;" horiz-adv-x="625"
295
+ d="M173 0l-103 102v598h65v-570l66 -65h223l66 65v570h65v-598l-103 -102h-279zM202 768l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM382 768l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
296
+ <glyph glyph-name="Adieresis" unicode="&#xc4;" horiz-adv-x="578"
297
+ d="M155 212l-72 -222l-63 20l223 690h92l223 -690l-63 -20l-72 222h-268zM176 277h226l-113 350zM178 768l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM358 768l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
298
+ <glyph glyph-name="adieresis" unicode="&#xe4;" horiz-adv-x="551"
299
+ d="M473 451v-331l28 -113l-62 -15l-16 64l-56 -56h-234l-83 82v145l83 82h275v115l-45 44h-192l-87 -30l-21 61l101 34h226zM341 65l67 67v112h-248l-45 -44v-91l45 -44h181zM168 605l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM348 605l-24 24v42l24 24h42l24 -24v-42
300
+ l-24 -24h-42z" />
301
+ <glyph glyph-name="Edieresis" unicode="&#xcb;" horiz-adv-x="533"
302
+ d="M80 0v700h433v-65h-368v-232h326v-65h-326v-273h368v-65h-433zM190 788l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM370 788l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
303
+ <glyph glyph-name="edieresis" unicode="&#xeb;" horiz-adv-x="524"
304
+ d="M376 65l88 28l20 -61l-102 -32h-240l-82 82v369l82 82h258l82 -82v-147l-82 -81h-275v-114l44 -44h207zM169 468l-44 -44v-136h248l44 44v92l-44 44h-204zM160 605l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM340 605l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
305
+ <glyph glyph-name="Aacute" unicode="&#xc1;" horiz-adv-x="578"
306
+ d="M155 212l-72 -222l-63 20l223 690h92l223 -690l-63 -20l-72 222h-268zM176 277h226l-113 350zM243 745l128 200h79l-151 -200h-56z" />
307
+ <glyph glyph-name="Eacute" unicode="&#xc9;" horiz-adv-x="533"
308
+ d="M80 0v700h433v-65h-368v-232h326v-65h-326v-273h368v-65h-433zM266 755l128 200h79l-151 -200h-56z" />
309
+ <glyph glyph-name="Iacute" unicode="&#xcd;" horiz-adv-x="357"
310
+ d="M327 0h-297v65h116v570h-116v65h297v-65h-116v-570h116v-65zM142 755l128 200h79l-151 -200h-56z" />
311
+ <glyph glyph-name="Oacute" unicode="&#xd3;" horiz-adv-x="635"
312
+ d="M173 700h289l113 -103v-494l-113 -103h-289l-113 103v494zM510 570l-72 65h-241l-72 -65v-440l72 -65h241l72 65v440zM281 755l128 200h79l-151 -200h-56z" />
313
+ <glyph glyph-name="Uacute" unicode="&#xda;" horiz-adv-x="625"
314
+ d="M173 0l-103 102v598h65v-570l66 -65h223l66 65v570h65v-598l-103 -102h-279zM275 735l128 200h79l-151 -200h-56z" />
315
+ <glyph glyph-name="Yacute" unicode="&#xdd;" horiz-adv-x="560"
316
+ d="M312 0h-65v264l-237 412l58 34l212 -368l212 368l58 -34l-238 -413v-263zM244 735l128 200h79l-151 -200h-56z" />
317
+ <glyph glyph-name="aacute" unicode="&#xe1;" horiz-adv-x="551"
318
+ d="M473 451v-331l28 -113l-62 -15l-16 64l-56 -56h-234l-83 82v145l83 82h275v115l-45 44h-192l-87 -30l-21 61l101 34h226zM341 65l67 67v112h-248l-45 -44v-91l45 -44h181zM237 578l128 200h79l-151 -200h-56z" />
319
+ <glyph glyph-name="eacute" unicode="&#xe9;" horiz-adv-x="524"
320
+ d="M376 65l88 28l20 -61l-102 -32h-240l-82 82v369l82 82h258l82 -82v-147l-82 -81h-275v-114l44 -44h207zM169 468l-44 -44v-136h248l44 44v92l-44 44h-204zM238 578l128 200h79l-151 -200h-56z" />
321
+ <glyph glyph-name="iacute" unicode="&#xed;" horiz-adv-x="216"
322
+ d="M79 433l-29 88l61 20l33 -101v-440h-65v433zM50 578l128 200h79l-151 -200h-56z" />
323
+ <glyph glyph-name="oacute" unicode="&#xf3;" horiz-adv-x="547"
324
+ d="M487 83l-82 -83h-263l-82 83v367l82 83h263l82 -83v-367zM169 65h209l44 45v313l-44 45h-209l-44 -45v-313zM246 578l128 200h79l-151 -200h-56z" />
325
+ <glyph glyph-name="uacute" unicode="&#xfa;"
326
+ d="M483 533v-413l28 -113l-62 -15l-16 64l-56 -56h-235l-82 82v451h65v-423l45 -45h181l67 67v401h65zM243 558l128 200h79l-151 -200h-56z" />
327
+ <glyph glyph-name="yacute" unicode="&#xfd;" horiz-adv-x="493"
328
+ d="M214 -168h-128v65h103l27 27l25 76h-18l-213 518l62 25l193 -471l157 471l61 -20l-210 -632zM214 558l128 200h79l-151 -200h-56z" />
329
+ <glyph glyph-name="Ohungarumlaut" unicode="&#x150;" horiz-adv-x="635"
330
+ d="M173 700h289l113 -103v-494l-113 -103h-289l-113 103v494zM510 570l-72 65h-241l-72 -65v-440l72 -65h241l72 65v440zM208 755l128 200h79l-151 -200h-56zM354 755l128 200h79l-151 -200h-56z" />
331
+ <glyph glyph-name="Scaron" unicode="&#x160;" horiz-adv-x="544"
332
+ d="M392 635h-223l-64 -64v-72l12 -25l356 -173l31 -58v-141l-102 -102h-259l-101 34l21 61l87 -30h225l64 64v95l-14 26l-358 174l-27 56v118l102 102h262l98 -33l-20 -60zM246 745l-120 135h56l98 -93l99 93h56l-120 -135h-69z" />
333
+ <glyph glyph-name="Zcaron" unicode="&#x17d;" horiz-adv-x="515"
334
+ d="M106 65h384v-65h-470v62l389 573h-384v65h470v-64zM231 745l-120 135h56l98 -93l99 93h56l-120 -135h-69z" />
335
+ <glyph glyph-name="scaron" unicode="&#x161;" horiz-adv-x="477"
336
+ d="M380 170l-11 22l-306 108l-31 60v91l82 82h232l101 -34l-21 -61l-87 30h-197l-45 -45v-47l11 -23l306 -108l31 -59v-104l-82 -82h-232l-101 32l20 62l89 -29h196l45 45v60zM206 578l-120 135h56l98 -93l99 93h56l-120 -135h-69z" />
337
+ <glyph glyph-name="zcaron" unicode="&#x17e;" horiz-adv-x="452"
338
+ d="M346 468h-324v65h410v-65l-326 -403h324v-65h-410v64zM196 578l-120 135h56l98 -93l99 93h56l-120 -135h-69z" />
339
+ <glyph glyph-name="ocircumflex" unicode="&#xf4;" horiz-adv-x="547"
340
+ d="M487 83l-82 -83h-263l-82 83v367l82 83h263l82 -83v-367zM169 65h209l44 45v313l-44 45h-209l-44 -45v-313zM124 578l120 135h69l120 -135h-56l-99 93l-98 -93h-56z" />
341
+ <glyph glyph-name="icircumflex" unicode="&#xee;" horiz-adv-x="216"
342
+ d="M79 433l-29 88l61 20l33 -101v-440h-65v433zM-43 578l120 135h69l120 -135h-56l-99 93l-98 -93h-56z" />
343
+ <glyph glyph-name="acircumflex" unicode="&#xe2;" horiz-adv-x="551"
344
+ d="M473 451v-331l28 -113l-62 -15l-16 64l-56 -56h-234l-83 82v145l83 82h275v115l-45 44h-192l-87 -30l-21 61l101 34h226zM341 65l67 67v112h-248l-45 -44v-91l45 -44h181zM124 578l120 135h69l120 -135h-56l-99 93l-98 -93h-56z" />
345
+ <glyph glyph-name="Ocircumflex" unicode="&#xd4;" horiz-adv-x="635"
346
+ d="M462 700l113 -103v-494l-113 -103h-289l-113 103v494l113 103h289zM438 635h-241l-72 -65v-440l72 -65h241l72 65v440zM167 745l120 135v-75l-64 -60h-56zM420 745l-64 60v75l120 -135h-56z" />
347
+ <glyph glyph-name="Icircumflex" unicode="&#xce;" horiz-adv-x="357"
348
+ d="M327 0h-297v65h116v570h-116v65h297v-65h-116v-570h116v-65zM24 745l120 135v-75l-64 -60h-56zM277 745l-64 60v75l120 -135h-56z" />
349
+ <glyph glyph-name="Acircumflex" unicode="&#xc2;" horiz-adv-x="578"
350
+ d="M155 212l-72 -222l-63 20l223 690h92l223 -690l-63 -20l-72 222h-268zM176 277h226l-113 350zM134 745l120 135v-75l-64 -60h-56zM387 745l-64 60v75l120 -135h-56z" />
351
+ <glyph glyph-name="Agrave" unicode="&#xc0;" horiz-adv-x="578"
352
+ d="M155 212l-72 -222l-63 20l223 690h92l223 -690l-63 -20l-72 222h-268zM176 277h226l-113 350zM206 945l128 -200h-56l-151 200h79z" />
353
+ <glyph glyph-name="Egrave" unicode="&#xc8;" horiz-adv-x="533"
354
+ d="M80 0v700h433v-65h-368v-232h326v-65h-326v-273h368v-65h-433zM230 955l128 -200h-56l-151 200h79z" />
355
+ <glyph glyph-name="Ecircumflex" unicode="&#xca;" horiz-adv-x="533"
356
+ d="M80 0v700h433v-65h-368v-232h326v-65h-326v-273h368v-65h-433zM144 745l120 135v-75l-64 -60h-56zM397 745l-64 60v75l120 -135h-56z" />
357
+ <glyph glyph-name="Igrave" unicode="&#xcc;" horiz-adv-x="357"
358
+ d="M327 0h-297v65h116v570h-116v65h297v-65h-116v-570h116v-65zM96 955l128 -200h-56l-151 200h79z" />
359
+ <glyph glyph-name="Idieresis" unicode="&#xcf;" horiz-adv-x="357"
360
+ d="M327 0h-297v65h116v570h-116v65h297v-65h-116v-570h116v-65zM68 775l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM248 775l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
361
+ <glyph glyph-name="idieresis" unicode="&#xef;" horiz-adv-x="216"
362
+ d="M8 605l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM172 605l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM79 433l-29 88l61 20l33 -101v-440h-65v433z" />
363
+ <glyph glyph-name="Ograve" unicode="&#xd2;" horiz-adv-x="635"
364
+ d="M173 700h289l113 -103v-494l-113 -103h-289l-113 103v494zM510 570l-72 65h-241l-72 -65v-440l72 -65h241l72 65v440zM244 955l128 -200h-56l-151 200h79z" />
365
+ <glyph glyph-name="Ugrave" unicode="&#xd9;" horiz-adv-x="625"
366
+ d="M173 0l-103 102v598h65v-570l66 -65h223l66 65v570h65v-598l-103 -102h-279zM258 935l128 -200h-56l-151 200h79z" />
367
+ <glyph glyph-name="Ucircumflex" unicode="&#xdb;" horiz-adv-x="625"
368
+ d="M173 0l-103 102v598h65v-570l66 -65h223l66 65v570h65v-598l-103 -102h-279zM158 745l120 135v-75l-64 -60h-56zM411 745l-64 60v75l120 -135h-56z" />
369
+ <glyph glyph-name="agrave" unicode="&#xe0;" horiz-adv-x="551"
370
+ d="M473 451v-331l28 -113l-62 -15l-16 64l-56 -56h-234l-83 82v145l83 82h275v115l-45 44h-192l-87 -30l-21 61l101 34h226zM341 65l67 67v112h-248l-45 -44v-91l45 -44h181zM197 778l128 -200h-56l-151 200h79z" />
371
+ <glyph glyph-name="egrave" unicode="&#xe8;" horiz-adv-x="524"
372
+ d="M376 65l88 28l20 -61l-102 -32h-240l-82 82v369l82 82h258l82 -82v-147l-82 -81h-275v-114l44 -44h207zM169 468l-44 -44v-136h248l44 44v92l-44 44h-204zM182 778l128 -200h-56l-151 200h79z" />
373
+ <glyph glyph-name="ecircumflex" unicode="&#xea;" horiz-adv-x="524"
374
+ d="M376 65l88 28l20 -61l-102 -32h-240l-82 82v369l82 82h258l82 -82v-147l-82 -81h-275v-114l44 -44h207zM169 468l-44 -44v-136h248l44 44v92l-44 44h-204zM116 578l120 135h69l120 -135h-56l-99 93l-98 -93h-56z" />
375
+ <glyph glyph-name="igrave" unicode="&#xec;" horiz-adv-x="216"
376
+ d="M79 433l-29 88l61 20l33 -101v-440h-65v433zM23 778l128 -200h-56l-151 200h79z" />
377
+ <glyph glyph-name="ograve" unicode="&#xf2;" horiz-adv-x="547"
378
+ d="M487 83l-82 -83h-263l-82 83v367l82 83h263l82 -83v-367zM169 65h209l44 45v313l-44 45h-209l-44 -45v-313zM180 778l128 -200h-56l-151 200h79z" />
379
+ <glyph glyph-name="ugrave" unicode="&#xf9;"
380
+ d="M483 533v-413l28 -113l-62 -15l-16 64l-56 -56h-235l-82 82v451h65v-423l45 -45h181l67 67v401h65zM197 758l128 -200h-56l-151 200h79z" />
381
+ <glyph glyph-name="ucircumflex" unicode="&#xfb;"
382
+ d="M483 533v-413l28 -113l-62 -15l-16 64l-56 -56h-235l-82 82v451h65v-423l45 -45h181l67 67v401h65zM117 578l120 135h69l120 -135h-56l-99 93l-98 -93h-56z" />
383
+ <glyph glyph-name="ydieresis" unicode="&#xff;" horiz-adv-x="493"
384
+ d="M214 -168h-128v65h103l27 27l25 76h-18l-213 518l62 25l193 -471l157 471l61 -20l-210 -632zM138 585l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM318 585l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
385
+ <glyph glyph-name="Ydieresis" unicode="&#x178;" horiz-adv-x="560"
386
+ d="M312 0h-65v264l-237 412l58 34l212 -368l212 368l58 -34l-238 -413v-263zM169 768l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM349 768l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
387
+ <glyph glyph-name="Ccedilla" unicode="&#xc7;" horiz-adv-x="579"
388
+ d="M260 -89v89h-97l-103 103v494l103 103h279l103 -103v-112h-65v85l-65 65h-225l-65 -65v-440l65 -65h236l76 76l47 -46l-95 -95h-129v-24h35l62 -62v-80l-62 -62h-115v65h88l24 24v26l-24 24h-73z" />
389
+ <glyph glyph-name="ccedilla" unicode="&#xe7;" horiz-adv-x="514"
390
+ d="M235 -89v89h-93l-82 83v367l82 83h258l82 -83v-110h-65v86l-43 42h-206l-43 -42v-319l43 -42h208l88 28l20 -61l-102 -32h-82v-24h35l62 -62v-80l-62 -62h-115v65h88l24 24v26l-24 24h-73z" />
391
+ <glyph glyph-name="divide" unicode="&#xf7;" horiz-adv-x="470"
392
+ d="M20 377h430v-65h-430v65zM213 160l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42zM213 440l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
393
+ <glyph glyph-name="multiply" unicode="&#xd7;" horiz-adv-x="389"
394
+ d="M19 474l46 46l130 -130l129 130l46 -46l-129 -130l128 -128l-46 -46l-128 128l-129 -128l-46 46l129 128z" />
395
+ <glyph glyph-name="Atilde" unicode="&#xc3;" horiz-adv-x="578"
396
+ d="M155 212l-72 -222l-63 20l223 690h92l223 -690l-63 -20l-72 222h-268zM176 277h226l-113 350zM335 815l-76 -70h-61l-84 84l47 46l66 -65h11l76 70h61l84 -84l-47 -46l-66 65h-11z" />
397
+ <glyph glyph-name="Ntilde" unicode="&#xd1;" horiz-adv-x="646"
398
+ d="M493 0l-348 587v-587h-65v700h73l348 -587v587h65v-700h-73zM373 815l-76 -70h-61l-84 84l47 46l66 -65h11l76 70h61l84 -84l-47 -46l-66 65h-11z" />
399
+ <glyph glyph-name="Otilde" unicode="&#xd5;" horiz-adv-x="635"
400
+ d="M173 700h289l113 -103v-494l-113 -103h-289l-113 103v494zM510 570l-72 65h-241l-72 -65v-440l72 -65h241l72 65v440zM373 815l-76 -70h-61l-84 84l47 46l66 -65h11l76 70h61l84 -84l-47 -46l-66 65h-11z" />
401
+ <glyph glyph-name="atilde" unicode="&#xe3;" horiz-adv-x="551"
402
+ d="M473 451v-331l28 -113l-62 -15l-16 64l-56 -56h-234l-83 82v145l83 82h275v115l-45 44h-192l-87 -30l-21 61l101 34h226zM341 65l67 67v112h-248l-45 -44v-91l45 -44h181zM316 648l-76 -70h-61l-84 84l47 46l66 -65h11l76 70h61l84 -84l-47 -46l-66 65h-11z" />
403
+ <glyph glyph-name="ntilde" unicode="&#xf1;"
404
+ d="M78 0v413l-28 113l62 15l16 -64l56 56h235l82 -82v-451h-65v423l-45 45h-181l-67 -67v-401h-65zM344 648l-76 -70h-61l-84 84l47 46l66 -65h11l76 70h61l84 -84l-47 -46l-66 65h-11z" />
405
+ <glyph glyph-name="otilde" unicode="&#xf5;" horiz-adv-x="547"
406
+ d="M487 83l-82 -83h-263l-82 83v367l82 83h263l82 -83v-367zM169 65h209l44 45v313l-44 45h-209l-44 -45v-313zM333 648l-76 -70h-61l-84 84l47 46l66 -65h11l76 70h61l84 -84l-47 -46l-66 65h-11z" />
407
+ <glyph glyph-name="ncommaaccent" unicode="&#x146;"
408
+ d="M78 0v413l-28 113l62 15l16 -64l56 56h235l82 -82v-451h-65v423l-45 45h-181l-67 -67v-401h-65zM209 -275l55 240h75l-85 -240h-45z" />
409
+ <glyph glyph-name="aring" unicode="&#xe5;" horiz-adv-x="551"
410
+ d="M473 451v-331l28 -113l-62 -15l-16 64l-56 -56h-234l-83 82v145l83 82h275v115l-45 44h-192l-87 -30l-21 61l101 34h226zM341 65l67 67v112h-248l-45 -44v-91l45 -44h181zM231 783h81l62 -62v-81l-62 -62h-81l-62 62v81zM290 723h-37l-24 -24v-37l24 -24h37l24 24v37z
411
+ " />
412
+ <glyph glyph-name="Aring" unicode="&#xc5;" horiz-adv-x="578"
413
+ d="M248 845h81l62 -62v-81l-43 -43l210 -649l-63 -20l-72 222h-268l-72 -222l-63 20l209 648l-43 44v81zM176 277h226l-113 350zM307 785h-37l-24 -24v-37l24 -24h37l24 24v37z" />
414
+ <glyph glyph-name="ae" unicode="&#xe6;" horiz-adv-x="832"
415
+ d="M684 65l88 28l20 -61l-102 -32h-220l-62 61l-61 -61h-214l-83 82v135l83 82h255v125l-45 44h-172l-87 -30l-21 61l101 34h206l50 -50l50 50h238l82 -82v-136l-82 -81h-255v-125l44 -44h187zM497 468l-44 -44v-125h228l44 44v81l-44 44h-184zM321 65l67 67v102h-228
416
+ l-45 -44v-81l45 -44h161z" />
417
+ <glyph glyph-name="AE" unicode="&#xc6;" horiz-adv-x="858"
418
+ d="M435 0v212h-252l-114 -222l-59 30l348 680h480v-65h-338v-232h296v-65h-296v-273h338v-65h-403zM399 635l-183 -358h219v358h-36z" />
419
+ <glyph glyph-name="oe" unicode="&#x153;" horiz-adv-x="846"
420
+ d="M698 65l88 28l20 -61l-102 -32h-220l-50 50l-49 -50h-243l-82 83v367l82 83h243l49 -50l50 50h238l82 -82v-147l-82 -81h-255v-114l44 -44h187zM169 65h189l44 45v313l-44 45h-189l-44 -45v-313zM511 468l-44 -44v-136h228l44 44v92l-44 44h-184z" />
421
+ <glyph glyph-name="OE" unicode="&#x152;" horiz-adv-x="913"
422
+ d="M173 0l-113 103v494l113 103h720v-65h-368v-232h326v-65h-326v-273h368v-65h-720zM125 130l72 -65h263v570h-263l-72 -65v-440z" />
423
+ <glyph glyph-name="germandbls" unicode="&#xdf;" horiz-adv-x="605"
424
+ d="M145 591v-591h-65v617l83 83h278l83 -83v-101l-130 -114v-47l11 -23l119 -42l31 -59v-149l-82 -82h-162l-101 32l20 62l89 -29h126l45 45v105l-11 22l-119 42l-31 60v91l130 114v47l-44 44h-226z" />
425
+ <glyph glyph-name="Oslash" unicode="&#xd8;" horiz-adv-x="635"
426
+ d="M65 20l32 49l-37 34v494l113 103h289l30 -28l26 40l53 -33l-32 -49l36 -33v-494l-113 -103h-289l-29 26l-26 -40zM125 570v-440l7 -7l324 495l-18 17h-241zM510 570l-7 6l-324 -496l18 -15h241l72 65v440z" />
427
+ <glyph glyph-name="oslash" unicode="&#xf8;" horiz-adv-x="547"
428
+ d="M50 28l28 36l-18 19v367l82 83h263l19 -20l23 30l50 -38l-29 -37l19 -18v-367l-82 -83h-263l-20 19l-22 -29zM169 65h209l44 45v298l-260 -337zM125 423v-298l259 336l-6 7h-209z" />
429
+ <glyph glyph-name="cent" unicode="&#xa2;" horiz-adv-x="514"
430
+ d="M310 533h90l82 -83v-110h-65v86l-43 42h-206l-43 -42v-319l43 -42h208l88 28l20 -61l-102 -32h-73v-70h-65v70h-102l-82 83v367l82 83h103v70h65v-70z" />
431
+ <glyph glyph-name="yen" unicode="&#xa5;" horiz-adv-x="560"
432
+ d="M85 263v65h125l-200 348l58 34l212 -368l212 368l58 -34l-201 -348h125v-65h-162v-48h162v-65h-162v-150h-65v150h-162v65h162v48h-162z" />
433
+ <glyph glyph-name="exclam" unicode="!" horiz-adv-x="250"
434
+ d="M91 125l-1 575h70l-1 -575h-68zM104 -10l-24 24v42l24 24h42l24 -24v-42l-24 -24h-42z" />
435
+ </font>
436
+ </defs></svg>
demo/fonts/Bender.ttf ADDED
Binary file
demo/fonts/Bender.woff ADDED
Binary file
demo/images/airplane.png ADDED
Binary file
demo/images/and.png ADDED
Binary file
demo/images/arrow-downRight.png ADDED
Binary file
demo/images/arrow-right.png ADDED
Binary file
demo/images/arrow-upRight.png ADDED
Binary file
demo/images/bg1.png ADDED
Binary file
demo/images/bg2.png ADDED
Binary file
demo/images/code.png ADDED
Binary file
demo/images/document.png ADDED
Binary file
demo/images/heart.png ADDED
Binary file
demo/images/hill.png ADDED
Binary file
demo/images/house.png ADDED
Binary file
demo/images/magic.png ADDED
Binary file
demo/images/tick.png ADDED
Binary file
images/controls.png ADDED
Binary file
js/jquery-1.11.0.min.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ /*! jQuery v1.11.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
2
+ !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k="".trim,l={},m="1.11.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 d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},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!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));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||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(l.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},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,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}: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):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||n.guid++,e):void 0},now:function(){return+new Date},support:l}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"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="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=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)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(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 mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(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 typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="<select t=''><option selected=''></option></select>",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.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},z=b?function(a,b){if(a===b)return j=!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===e||a.ownerDocument===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.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=db.selectors={cacheLength:50,createPseudo:fb,match:V,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(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===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]||db.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]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(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(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.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+" ").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(),t=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(t&&((l[s]||(l[s]={}))[a]=[u,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(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),!c.pop()}}),has:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?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===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.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 X.test(a.nodeName)},input:function(a){return W.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:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=jb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=kb(b);function nb(){}nb.prototype=d.filters=d.pseudos,d.setFilters=new nb;function ob(a,b){var c,e,f,g,h,i,j,k=x[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=Q.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?db.error(a):x(a,i).slice(0)}function pb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;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=[u,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(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 sb(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 tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(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?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(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(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>=0!==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=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=a.document,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:A.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=z.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return y.find(a);this.length=1,this[0]=d}return this.context=z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};B.prototype=n.fn,y=n(z);var C=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!n(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.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.unique(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function E(a,b){do a=a[b];while(a&&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 n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return E(a,"nextSibling")},prev:function(a){return E(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document: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&&(D[a]||(e=n.unique(e)),C.test(a)&&(e=e.reverse())),this.pushStack(e)}});var F=/\S+/g,G={};function H(a){var b=G[a]={};return n.each(a.match(F)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?G[a]||H(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&n.each(arguments,function(a,c){var d;while((d=n.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},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().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?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=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var 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){if(a===!0?!--n.readyWait:!n.isReady){if(!z.body)return setTimeout(n.ready);n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(z,[n]),n.fn.trigger&&n(z).trigger("ready").off("ready"))}}});function J(){z.addEventListener?(z.removeEventListener("DOMContentLoaded",K,!1),a.removeEventListener("load",K,!1)):(z.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(z.addEventListener||"load"===event.type||"complete"===z.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===z.readyState)setTimeout(n.ready);else if(z.addEventListener)z.addEventListener("DOMContentLoaded",K,!1),a.addEventListener("load",K,!1);else{z.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&z.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!n.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}J(),n.ready()}}()}return I.promise(b)};var L="undefined",M;for(M in n(l))break;l.ownLast="0"!==M,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c=z.getElementsByTagName("body")[0];c&&(a=z.createElement("div"),a.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",b=z.createElement("div"),c.appendChild(a).appendChild(b),typeof b.style.zoom!==L&&(b.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1",(l.inlineBlockNeedsLayout=3===b.offsetWidth)&&(c.style.zoom=1)),c.removeChild(a),a=b=null)}),function(){var a=z.createElement("div");if(null==l.deleteExpando){l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}}a=null}(),n.acceptData=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(n.acceptData(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f
3
+ }}function S(a,b,c){if(n.acceptData(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),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=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d]));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(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._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=n._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=["Top","Right","Bottom","Left"],V=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},W=n.access=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)n.access(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},X=/^(?:checkbox|radio)$/i;!function(){var a=z.createDocumentFragment(),b=z.createElement("div"),c=z.createElement("input");if(b.setAttribute("className","t"),b.innerHTML=" <link/><table></table><a href='/a'>a</a>",l.leadingWhitespace=3===b.firstChild.nodeType,l.tbody=!b.getElementsByTagName("tbody").length,l.htmlSerialize=!!b.getElementsByTagName("link").length,l.html5Clone="<:nav></:nav>"!==z.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,a.appendChild(c),l.appendChecked=c.checked,b.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,a.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){l.noCloneEvent=!1}),b.cloneNode(!0).click()),null==l.deleteExpando){l.deleteExpando=!0;try{delete b.test}catch(d){l.deleteExpando=!1}}a=b=c=null}(),function(){var b,c,d=z.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),l[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var Y=/^(?:input|select|textarea)$/i,Z=/^key/,$=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;function bb(){return!0}function cb(){return!1}function db(){try{return z.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof n===L||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(F)||[""],h=b.length;while(h--)f=ab.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=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(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(F)||[""],j=b.length;while(j--)if(h=ab.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=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,m,o=[d||z],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||z,3!==d.nodeType&&8!==d.nodeType&&!_.test(p+n.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[n.expando]?b:new n.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),k=n.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!n.isWindow(d)){for(i=k.delegateType||p,_.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||z)&&o.push(l.defaultView||l.parentWindow||a)}m=0;while((h=o[m++])&&!b.isPropagationStopped())b.type=m>1?i:k.bindType||p,f=(n._data(h,"events")||{})[b.type]&&n._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&n.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&n.acceptData(d)&&g&&d[p]&&!n.isWindow(d)){l=d[g],l&&(d[g]=null),n.event.triggered=p;try{d[p]()}catch(r){}n.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(n._data(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,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((n.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?n(c,this).index(i)>=0:n.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=$.test(e)?this.mouseHooks:Z.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||z),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||z,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==db()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===db()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return n.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=z.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===L&&(a[d]=null),a.detachEvent(d,c))},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&(a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault())?bb:cb):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:cb,isPropagationStopped:cb,isImmediatePropagationStopped:cb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=bb,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=bb,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),l.submitBubbles||(n.event.special.submit={setup:function(){return n.nodeName(this,"form")?!1:void n.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=n.nodeName(b,"input")||n.nodeName(b,"button")?b.form:void 0;c&&!n._data(c,"submitBubbles")&&(n.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),n._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&n.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return n.nodeName(this,"form")?!1:void n.event.remove(this,"._submit")}}),l.changeBubbles||(n.event.special.change={setup:function(){return Y.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(n.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),n.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),n.event.simulate("change",this,a,!0)})),!1):void n.event.add(this,"beforeactivate._change",function(a){var b=a.target;Y.test(b.nodeName)&&!n._data(b,"changeBubbles")&&(n.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||n.event.simulate("change",this.parentNode,a,!0)}),n._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return n.event.remove(this,"._change"),!Y.test(this.nodeName)}}),l.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=n._data(d,b);e||d.addEventListener(a,c,!0),n._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=n._data(d,b)-1;e?n._data(d,b,e):(d.removeEventListener(a,c,!0),n._removeData(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=cb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return n().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=cb),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});function eb(a){var b=fb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var fb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gb=/ jQuery\d+="(?:null|\d+)"/g,hb=new RegExp("<(?:"+fb+")[\\s/>]","i"),ib=/^\s+/,jb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/<tbody/i,mb=/<|&#?\w+;/,nb=/<(?:script|style|link)/i,ob=/checked\s*(?:[^=]|=\s*.checked.)/i,pb=/^$|\/(?:java|ecma)script/i,qb=/^true\/(.*)/,rb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,sb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},tb=eb(z),ub=tb.appendChild(z.createElement("div"));sb.optgroup=sb.option,sb.tbody=sb.tfoot=sb.colgroup=sb.caption=sb.thead,sb.th=sb.td;function vb(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==L?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==L?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,vb(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function wb(a){X.test(a.type)&&(a.defaultChecked=a.checked)}function xb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function yb(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function zb(a){var b=qb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ab(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}function Bb(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Cb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(yb(b).text=a.text,zb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&X.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}n.extend({clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!hb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ub.innerHTML=a.outerHTML,ub.removeChild(f=ub.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=vb(f),h=vb(a),g=0;null!=(e=h[g]);++g)d[g]&&Cb(e,d[g]);if(b)if(c)for(h=h||vb(a),d=d||vb(f),g=0;null!=(e=h[g]);g++)Bb(e,d[g]);else Bb(a,f);return d=vb(f,"script"),d.length>0&&Ab(d,!i&&vb(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k,m=a.length,o=eb(b),p=[],q=0;m>q;q++)if(f=a[q],f||0===f)if("object"===n.type(f))n.merge(p,f.nodeType?[f]:f);else if(mb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(kb.exec(f)||["",""])[1].toLowerCase(),k=sb[i]||sb._default,h.innerHTML=k[1]+f.replace(jb,"<$1></$2>")+k[2],e=k[0];while(e--)h=h.lastChild;if(!l.leadingWhitespace&&ib.test(f)&&p.push(b.createTextNode(ib.exec(f)[0])),!l.tbody){f="table"!==i||lb.test(f)?"<table>"!==k[1]||lb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)n.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}n.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),l.appendChecked||n.grep(vb(p,"input"),wb),q=0;while(f=p[q++])if((!d||-1===n.inArray(f,d))&&(g=n.contains(f.ownerDocument,f),h=vb(o.appendChild(f),"script"),g&&Ab(h),c)){e=0;while(f=h[e++])pb.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.deleteExpando,m=n.event.special;null!=(d=a[h]);h++)if((b||n.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k?delete d[i]:typeof d.removeAttribute!==L?d.removeAttribute(i):d[i]=null,c.push(f))}}}),n.fn.extend({text:function(a){return W(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||z).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(vb(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&Ab(vb(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(vb(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return W(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(gb,""):void 0;if(!("string"!=typeof a||nb.test(a)||!l.htmlSerialize&&hb.test(a)||!l.leadingWhitespace&&ib.test(a)||sb[(kb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(jb,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(vb(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(vb(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,k=this.length,m=this,o=k-1,p=a[0],q=n.isFunction(p);if(q||k>1&&"string"==typeof p&&!l.checkClone&&ob.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(k&&(i=n.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=n.map(vb(i,"script"),yb),f=g.length;k>j;j++)d=i,j!==o&&(d=n.clone(d,!0,!0),f&&n.merge(g,vb(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,n.map(g,zb),j=0;f>j;j++)d=g[j],pb.test(d.type||"")&&!n._data(d,"globalEval")&&n.contains(h,d)&&(d.src?n._evalUrl&&n._evalUrl(d.src):n.globalEval((d.text||d.textContent||d.innerHTML||"").replace(rb,"")));i=c=null}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],g=n(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Db,Eb={};function Fb(b,c){var d=n(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:n.css(d[0],"display");return d.detach(),e}function Gb(a){var b=z,c=Eb[a];return c||(c=Fb(a,b),"none"!==c&&c||(Db=(Db||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Db[0].contentWindow||Db[0].contentDocument).document,b.write(),b.close(),c=Fb(a,b),Db.detach()),Eb[a]=c),c}!function(){var a,b,c=z.createElement("div"),d="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";c.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.getElementsByTagName("a")[0],a.style.cssText="float:left;opacity:.5",l.opacity=/^0.5/.test(a.style.opacity),l.cssFloat=!!a.style.cssFloat,c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===c.style.backgroundClip,a=c=null,l.shrinkWrapBlocks=function(){var a,c,e,f;if(null==b){if(a=z.getElementsByTagName("body")[0],!a)return;f="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",c=z.createElement("div"),e=z.createElement("div"),a.appendChild(c).appendChild(e),b=!1,typeof e.style.zoom!==L&&(e.style.cssText=d+";width:1px;padding:1px;zoom:1",e.innerHTML="<div></div>",e.firstChild.style.width="5px",b=3!==e.offsetWidth),a.removeChild(c),a=c=e=null}return b}}();var Hb=/^margin/,Ib=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Jb,Kb,Lb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Jb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Kb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Jb(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),Ib.test(g)&&Hb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):z.documentElement.currentStyle&&(Jb=function(a){return a.currentStyle},Kb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Jb(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Ib.test(g)&&!Lb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Mb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h=z.createElement("div"),i="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",j="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";h.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",b=h.getElementsByTagName("a")[0],b.style.cssText="float:left;opacity:.5",l.opacity=/^0.5/.test(b.style.opacity),l.cssFloat=!!b.style.cssFloat,h.style.backgroundClip="content-box",h.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===h.style.backgroundClip,b=h=null,n.extend(l,{reliableHiddenOffsets:function(){if(null!=c)return c;var a,b,d,e=z.createElement("div"),f=z.getElementsByTagName("body")[0];if(f)return e.setAttribute("className","t"),e.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=z.createElement("div"),a.style.cssText=i,f.appendChild(a).appendChild(e),e.innerHTML="<table><tr><td></td><td>t</td></tr></table>",b=e.getElementsByTagName("td"),b[0].style.cssText="padding:0;margin:0;border:0;display:none",d=0===b[0].offsetHeight,b[0].style.display="",b[1].style.display="none",c=d&&0===b[0].offsetHeight,f.removeChild(a),e=f=null,c},boxSizing:function(){return null==d&&k(),d},boxSizingReliable:function(){return null==e&&k(),e},pixelPosition:function(){return null==f&&k(),f},reliableMarginRight:function(){var b,c,d,e;if(null==g&&a.getComputedStyle){if(b=z.getElementsByTagName("body")[0],!b)return;c=z.createElement("div"),d=z.createElement("div"),c.style.cssText=i,b.appendChild(c).appendChild(d),e=d.appendChild(z.createElement("div")),e.style.cssText=d.style.cssText=j,e.style.marginRight=e.style.width="0",d.style.width="1px",g=!parseFloat((a.getComputedStyle(e,null)||{}).marginRight),b.removeChild(c)}return g}});function k(){var b,c,h=z.getElementsByTagName("body")[0];h&&(b=z.createElement("div"),c=z.createElement("div"),b.style.cssText=i,h.appendChild(b).appendChild(c),c.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;display:block;padding:1px;border:1px;width:4px;margin-top:1%;top:1%",n.swap(h,null!=h.style.zoom?{zoom:1}:{},function(){d=4===c.offsetWidth}),e=!0,f=!1,g=!0,a.getComputedStyle&&(f="1%"!==(a.getComputedStyle(c,null)||{}).top,e="4px"===(a.getComputedStyle(c,null)||{width:"4px"}).width),h.removeChild(b),c=h=null)}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Nb=/alpha\([^)]*\)/i,Ob=/opacity\s*=\s*([^)]*)/,Pb=/^(none|table(?!-c[ea]).+)/,Qb=new RegExp("^("+T+")(.*)$","i"),Rb=new RegExp("^([+-])=("+T+")","i"),Sb={position:"absolute",visibility:"hidden",display:"block"},Tb={letterSpacing:0,fontWeight:400},Ub=["Webkit","O","Moz","ms"];function Vb(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Ub.length;while(e--)if(b=Ub[e]+c,b in a)return b;return d}function Wb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=n._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&V(d)&&(f[g]=n._data(d,"olddisplay",Gb(d.nodeName)))):f[g]||(e=V(d),(c&&"none"!==c||!e)&&n._data(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Xb(a,b,c){var d=Qb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Yb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+U[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+U[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+U[f]+"Width",!0,e))):(g+=n.css(a,"padding"+U[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+U[f]+"Width",!0,e)));return g}function Zb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Jb(a),g=l.boxSizing()&&"border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Kb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Ib.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Yb(a,b,c||(g?"border":"content"),d,f)+"px"}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Kb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":l.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;if(b=n.cssProps[h]||(n.cssProps[h]=Vb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Rb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]="",i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Vb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Kb(a,b,d)),"normal"===f&&b in Tb&&(f=Tb[b]),""===c||c?(e=parseFloat(f),c===!0||n.isNumeric(e)?e||0:f):f}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?0===a.offsetWidth&&Pb.test(n.css(a,"display"))?n.swap(a,Sb,function(){return Zb(a,b,d)}):Zb(a,b,d):void 0},set:function(a,c,d){var e=d&&Jb(a);return Xb(a,c,d?Yb(a,b,d,l.boxSizing()&&"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),l.opacity||(n.cssHooks.opacity={get:function(a,b){return Ob.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=n.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===n.trim(f.replace(Nb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Nb.test(f)?f.replace(Nb,e):f+" "+e)}}),n.cssHooks.marginRight=Mb(l.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},Kb,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+U[d]+b]=f[d]||f[d-2]||f[0];return e}},Hb.test(a)||(n.cssHooks[a+b].set=Xb)}),n.fn.extend({css:function(a,b){return W(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Jb(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)
4
+ },a,b,arguments.length>1)},show:function(){return Wb(this,!0)},hide:function(){return Wb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){V(this)?n(this).show():n(this).hide()})}});function $b(a,b,c,d,e){return new $b.prototype.init(a,b,c,d,e)}n.Tween=$b,$b.prototype={constructor:$b,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=$b.propHooks[this.prop];return a&&a.get?a.get(this):$b.propHooks._default.get(this)},run:function(a){var b,c=$b.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):$b.propHooks._default.set(this),this}},$b.prototype.init.prototype=$b.prototype,$b.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},$b.propHooks.scrollTop=$b.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=$b.prototype.init,n.fx.step={};var _b,ac,bc=/^(?:toggle|show|hide)$/,cc=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),dc=/queueHooks$/,ec=[jc],fc={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=cc.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&cc.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function gc(){return setTimeout(function(){_b=void 0}),_b=n.now()}function hc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=U[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function ic(a,b,c){for(var d,e=(fc[b]||[]).concat(fc["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function jc(a,b,c){var d,e,f,g,h,i,j,k,m=this,o={},p=a.style,q=a.nodeType&&V(a),r=n._data(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,m.always(function(){m.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=n.css(a,"display"),k=Gb(a.nodeName),"none"===j&&(j=k),"inline"===j&&"none"===n.css(a,"float")&&(l.inlineBlockNeedsLayout&&"inline"!==k?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",l.shrinkWrapBlocks()||m.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],bc.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||n.style(a,d)}if(!n.isEmptyObject(o)){r?"hidden"in r&&(q=r.hidden):r=n._data(a,"fxshow",{}),f&&(r.hidden=!q),q?n(a).show():m.done(function(){n(a).hide()}),m.done(function(){var b;n._removeData(a,"fxshow");for(b in o)n.style(a,b,o[b])});for(d in o)g=ic(q?r[d]:0,d,m),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function kc(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function lc(a,b,c){var d,e,f=0,g=ec.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=_b||gc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:_b||gc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(kc(k,j.opts.specialEasing);g>f;f++)if(d=ec[f].call(j,a,k,j.opts))return d;return n.map(k,ic,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(lc,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],fc[c]=fc[c]||[],fc[c].unshift(b)},prefilter:function(a,b){b?ec.unshift(a):ec.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(V).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=lc(this,n.extend({},a),f);(e||n._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=n._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&dc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=n._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(hc(b,!0),a,d,e)}}),n.each({slideDown:hc("show"),slideUp:hc("hide"),slideToggle:hc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=n.timers,c=0;for(_b=n.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||n.fx.stop(),_b=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){ac||(ac=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(ac),ac=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e=z.createElement("div");e.setAttribute("className","t"),e.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=e.getElementsByTagName("a")[0],c=z.createElement("select"),d=c.appendChild(z.createElement("option")),b=e.getElementsByTagName("input")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==e.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=d.selected,l.enctype=!!z.createElement("form").enctype,c.disabled=!0,l.optDisabled=!d.disabled,b=z.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value,a=b=c=d=e=null}();var mc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(mc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.text(a)}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(l.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)if(d=e[g],n.inArray(n.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var nc,oc,pc=n.expr.attrHandle,qc=/^(?:checked|selected)$/i,rc=l.getSetAttribute,sc=l.input;n.fn.extend({attr:function(a,b){return W(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===L?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?oc:nc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(F);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?sc&&rc||!qc.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(rc?c:d)},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),oc={set:function(a,b,c){return b===!1?n.removeAttr(a,c):sc&&rc||!qc.test(c)?a.setAttribute(!rc&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=pc[b]||n.find.attr;pc[b]=sc&&rc||!qc.test(b)?function(a,b,d){var e,f;return d||(f=pc[b],pc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,pc[b]=f),e}:function(a,b,c){return c?void 0:a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),sc&&rc||(n.attrHooks.value={set:function(a,b,c){return n.nodeName(a,"input")?void(a.defaultValue=b):nc&&nc.set(a,b,c)}}),rc||(nc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},pc.id=pc.name=pc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:nc.set},n.attrHooks.contenteditable={set:function(a,b,c){nc.set(a,""===b?!1:b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var tc=/^(?:input|select|textarea|button|object)$/i,uc=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return W(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):tc.test(a.nodeName)||uc.test(a.nodeName)&&a.href?0:-1}}}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var vc=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(F)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(F)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(F)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===L||"boolean"===c)&&(this.className&&n._data(this,"__className__",this.className),this.className=this.className||a===!1?"":n._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(vc," ").indexOf(b)>=0)return!0;return!1}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var wc=n.now(),xc=/\?/,yc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(yc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var zc,Ac,Bc=/#.*$/,Cc=/([?&])_=[^&]*/,Dc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Ec=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Fc=/^(?:GET|HEAD)$/,Gc=/^\/\//,Hc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ic={},Jc={},Kc="*/".concat("*");try{Ac=location.href}catch(Lc){Ac=z.createElement("a"),Ac.href="",Ac=Ac.href}zc=Hc.exec(Ac.toLowerCase())||[];function Mc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(F)||[];if(n.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nc(a,b,c,d){var e={},f=a===Jc;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Oc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Pc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Qc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ac,type:"GET",isLocal:Ec.test(zc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Oc(Oc(a,n.ajaxSettings),b):Oc(n.ajaxSettings,a)},ajaxPrefilter:Mc(Ic),ajaxTransport:Mc(Jc),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Dc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||Ac)+"").replace(Bc,"").replace(Gc,zc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(F)||[""],null==k.crossDomain&&(c=Hc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===zc[1]&&c[2]===zc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(zc[3]||("http:"===zc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),Nc(Ic,k,b,v),2===t)return v;h=k.global,h&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Fc.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(xc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Cc.test(e)?e.replace(Cc,"$1_="+wc++):e+(xc.test(e)?"&":"?")+"_="+wc++)),k.ifModified&&(n.lastModified[e]&&v.setRequestHeader("If-Modified-Since",n.lastModified[e]),n.etag[e]&&v.setRequestHeader("If-None-Match",n.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Kc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Nc(Jc,k,b,v)){v.readyState=1,h&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Pc(k,v,c)),u=Qc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(n.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var b=n(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!l.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||n.css(a,"display"))},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var Rc=/%20/g,Sc=/\[\]$/,Tc=/\r?\n/g,Uc=/^(?:submit|button|image|reset|file)$/i,Vc=/^(?:input|select|textarea|keygen)/i;function Wc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||Sc.test(a)?d(a,e):Wc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Wc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Wc(c,a[c],b,e);return d.join("&").replace(Rc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Vc.test(this.nodeName)&&!Uc.test(a)&&(this.checked||!X.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(Tc,"\r\n")}}):{name:b.name,value:c.replace(Tc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&$c()||_c()}:$c;var Xc=0,Yc={},Zc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Yc)Yc[a](void 0,!0)}),l.cors=!!Zc&&"withCredentials"in Zc,Zc=l.ajax=!!Zc,Zc&&n.ajaxTransport(function(a){if(!a.crossDomain||l.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Xc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Yc[g],b=void 0,f.onreadystatechange=n.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Yc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function $c(){try{return new a.XMLHttpRequest}catch(b){}}function _c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=z.head||n("head")[0]||z.documentElement;return{send:function(d,e){b=z.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var ad=[],bd=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=ad.pop()||n.expando+"_"+wc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(bd.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&bd.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(bd,"$1"+e):b.jsonp!==!1&&(b.url+=(xc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,ad.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||z;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var cd=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&cd)return cd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=a.slice(h,a.length),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&n.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var dd=a.document.documentElement;function ed(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?(typeof e.getBoundingClientRect!==L&&(d=e.getBoundingClientRect()),c=ed(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||dd;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||dd})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return W(this,function(a,d,e){var f=ed(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Mb(l.pixelPosition,function(a,c){return c?(c=Kb(a,b),Ib.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return W(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var fd=a.jQuery,gd=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=gd),b&&a.jQuery===n&&(a.jQuery=fd),n},typeof b===L&&(a.jQuery=a.$=n),n});
js/jquery-1.11.0.min.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"file":"jquery-1.11.0.min.js","sources":["jquery-1.11.0.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","deletedIds","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","trim","support","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","call","get","num","pushStack","elems","ret","merge","prevObject","each","callback","args","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","src","copyIsArray","copy","name","options","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","Array","isWindow","isNumeric","parseFloat","isEmptyObject","key","nodeType","e","ownLast","globalEval","data","execScript","camelCase","string","nodeName","toLowerCase","value","isArraylike","text","makeArray","arr","results","Object","inArray","max","second","grep","invert","callbackInverse","matches","callbackExpect","arg","guid","proxy","tmp","now","Date","split","Sizzle","Expr","getText","isXML","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","strundefined","MAX_NEGATIVE","pop","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","childNodes","els","seed","match","m","groups","old","nid","newContext","newSelector","ownerDocument","exec","getElementById","parentNode","id","getElementsByTagName","getElementsByClassName","qsa","test","tokenize","getAttribute","setAttribute","toSelector","testContext","join","querySelectorAll","qsaError","removeAttribute","select","keys","cache","cacheLength","shift","markFunction","assert","div","createElement","removeChild","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","doc","parent","defaultView","top","addEventListener","attachEvent","className","appendChild","createComment","innerHTML","firstChild","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo","relative",">","dir"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","group","contexts","token","div1","defaultValue","unique","isXMLDoc","rneedsContext","rsingleTag","risSimple","winnow","qualifier","self","is","rootjQuery","charAt","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","next","prev","until","sibling","n","r","targets","closest","l","pos","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","contentWindow","reverse","rnotwhite","optionsCache","createOptions","object","flag","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","list","stack","once","fire","stopOnFalse","disable","remove","lock","locked","fireWith","Deferred","func","tuples","state","promise","always","deferred","fail","then","fns","newDefer","tuple","returned","resolve","reject","progress","notify","pipe","stateString","when","subordinate","resolveValues","remaining","updateFunc","values","progressValues","notifyWith","resolveWith","progressContexts","resolveContexts","readyList","readyWait","holdReady","hold","wait","body","setTimeout","trigger","off","detach","removeEventListener","completed","detachEvent","event","readyState","frameElement","doScroll","doScrollCheck","inlineBlockNeedsLayout","container","style","cssText","zoom","offsetWidth","deleteExpando","acceptData","noData","rbrace","rmultiDash","dataAttr","parseJSON","isEmptyDataObject","internalData","pvt","thisCache","internalKey","isNode","toJSON","internalRemoveData","cleanData","applet ","embed ","object ","hasData","removeData","_data","_removeData","queue","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","cssExpand","isHidden","el","css","access","chainable","emptyGet","raw","bulk","rcheckableType","fragment","createDocumentFragment","leadingWhitespace","tbody","htmlSerialize","html5Clone","cloneNode","outerHTML","appendChecked","noCloneChecked","checkClone","noCloneEvent","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","types","events","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","prop","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","props","srcElement","metaKey","original","which","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","getPreventDefault","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","orig","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","one","origFn","triggerHandler","createSafeFragment","nodeNames","safeFrag","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","getAll","found","fixDefaultChecked","defaultChecked","manipulationTarget","content","disableScript","restoreScript","setGlobalEval","refElements","cloneCopyEvent","dest","oldData","curData","fixCloneNodeIssues","defaultSelected","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","scripts","selection","wrap","safe","nodes","createTextNode","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","appendTo","prependTo","insertAfter","replaceAll","insert","iframe","elemdisplay","actualDisplay","display","getDefaultComputedStyle","defaultDisplay","write","close","shrinkWrapBlocksVal","divReset","opacity","cssFloat","backgroundClip","clearCloneStyle","shrinkWrapBlocks","containerStyles","width","rmargin","rnumnonpx","getStyles","curCSS","rposition","getComputedStyle","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","addGetHookIf","conditionFn","hookFn","condition","reliableHiddenOffsetsVal","boxSizingVal","boxSizingReliableVal","pixelPositionVal","reliableMarginRightVal","reliableHiddenOffsets","tds","isSupported","offsetHeight","boxSizing","computeStyleTests","boxSizingReliable","pixelPosition","reliableMarginRight","marginDiv","marginRight","swap","ralpha","ropacity","rdisplayswap","rnumsplit","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","vendorPropName","capName","origName","showHide","show","hidden","setPositiveNumber","subtract","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","cssHooks","cssNumber","columnCount","fillOpacity","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","prefix","suffix","expand","expanded","parts","hide","toggle","Tween","easing","unit","propHooks","run","percent","eased","duration","step","tween","fx","linear","p","swing","cos","PI","fxNow","timerId","rfxtypes","rfxnum","rrun","animationPrefilters","defaultPrefilter","tweeners","*","createTween","scale","maxIterations","createFxNow","genFx","includeWidth","height","animation","collection","opts","oldfire","dDisplay","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","Animation","properties","stopped","tick","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","rejectWith","timer","complete","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","parseInt","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","JSON","parse","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","ActiveXObject","async","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","transports","allTypes","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","responseFields","dataFilter","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","cacheURL","responseHeadersString","timeoutTimer","fireGlobals","transport","responseHeaders","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","status","abort","statusText","finalText","success","method","crossDomain","traditional","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","modified","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","v","encodeURIComponent","serialize","serializeArray","xhr","createStandardXHR","createActiveXHR","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","XMLHttpRequest","script","text script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","getWindow","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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"}
js/jquery.crellyslider.js ADDED
@@ -0,0 +1,1263 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Plugin Name: Crelly Slider
3
+ * Plugin URI: http://fabiorino1.altervista.org/projects/crellyslider
4
+ * Description: The first free WordPress slider with elements animations.
5
+ * Version: 0.6.5
6
+ * Author: fabiorino
7
+ * Author URI: http://fabiorino1.altervista.org
8
+ * License: GPL2
9
+ */
10
+
11
+ (function($) {
12
+
13
+ /*******************/
14
+ /** CRELLY SLIDER **/
15
+ /*******************/
16
+
17
+ var CrellySlider = function(target, settings) {
18
+
19
+ /**********************/
20
+ /** USEFUL VARIABLES **/
21
+ /**********************/
22
+
23
+ // HTML classes of the slider
24
+ var SLIDER = $(target);
25
+ var CRELLY = 'div.crellyslider';
26
+ var SLIDES = 'ul.cs-slides';
27
+ var SLIDE = 'li.cs-slide';
28
+ var ELEMENTS = '> *';
29
+
30
+ var total_slides;
31
+ var current_slide = 0;
32
+
33
+ var paused = false, wants_to_pause = false;
34
+ var slide_ease_in_completed = false; // This seems to be unnecessary anymore
35
+ var slide_progress = 0;
36
+
37
+ var scale = 1;
38
+
39
+ /********************/
40
+ /** INITIALIZATION **/
41
+ /********************/
42
+
43
+ init();
44
+
45
+ // The slider constructor: runs automatically only the first time, sets the basic needs of the slider and the preloader then runs Crelly Slider
46
+ function init() {
47
+ // Add wrappers and classes
48
+ SLIDER.wrapInner('<div class="crellyslider" />');
49
+ SLIDER.find(CRELLY + ' > ul').addClass('cs-slides');
50
+ SLIDER.find(CRELLY + ' ' + SLIDES + ' > li').addClass('cs-slide');
51
+
52
+ // Set total_slides
53
+ total_slides = $(SLIDER).find(CRELLY).find(SLIDES).find(SLIDE).length;
54
+
55
+ // If the slider is empty, stop
56
+ if(total_slides == 0) {
57
+ return false;
58
+ }
59
+
60
+ // If there is only a slide, clone it
61
+ if(total_slides == 1) {
62
+ var clone = SLIDER.find(CRELLY).find(SLIDES).find(SLIDE + ':eq(0)');
63
+ var prepend = SLIDER.find(CRELLY).find(SLIDES);
64
+ clone.clone().prependTo(prepend);
65
+ total_slides++;
66
+ }
67
+
68
+ // Show controls (previous and next arrows)
69
+ if(settings.showControls) {
70
+ SLIDER.find(CRELLY).append('<div class="cs-controls"><span class="cs-next"></span><span class="cs-previous"></span></div>');
71
+ }
72
+
73
+ // Show navigation
74
+ if(settings.showNavigation) {
75
+ var nav = '<div class="cs-navigation">';
76
+ for(var i = 0; i < total_slides; i++) {
77
+ nav += '<span class="cs-slide-link"></span>';
78
+ }
79
+ nav += '</div>';
80
+ SLIDER.find(CRELLY).append(nav);
81
+ }
82
+
83
+ // Show progress bar. This is not going to disappear if the user doesn't want it but it will just be hidden using opacity: 0. This because the progress bar is used to get the current progress percentage of the displayed slide
84
+ if(settings.showProgressBar) {
85
+ SLIDER.find(CRELLY).append('<div class="cs-progress-bar"></div>');
86
+ }
87
+ else {
88
+ SLIDER.find(CRELLY).append('<div class="cs-progress-bar cs-progress-bar-hidden"></div>');
89
+ }
90
+
91
+ // Previous control click
92
+ SLIDER.find(CRELLY).find('.cs-controls > .cs-previous').click(function() {
93
+ paused = false;
94
+ changeSlide(getPreviousSlide());
95
+ });
96
+
97
+ // Next Control click
98
+ SLIDER.find(CRELLY).find('.cs-controls > .cs-next').click(function() {
99
+ paused = false;
100
+ changeSlide(getNextSlide());
101
+ });
102
+
103
+ // Navigation link click
104
+ SLIDER.find(CRELLY).find('.cs-navigation > .cs-slide-link').click(function() {
105
+ if($(this).index() != current_slide) {
106
+ paused = false;
107
+ changeSlide($(this).index());
108
+ }
109
+ });
110
+
111
+ // Pause on hover
112
+ if(settings.pauseOnHover) {
113
+ SLIDER.find(CRELLY).find(SLIDES).hover(function() {
114
+ pause();
115
+ });
116
+
117
+ SLIDER.find(CRELLY).find(SLIDES).mouseleave(function() {
118
+ resume();
119
+ });
120
+ }
121
+
122
+ // Make responsive
123
+ if(settings.responsive) {
124
+ $(window).resize(function() {
125
+ setResponsive();
126
+ });
127
+ }
128
+
129
+ // Set layout
130
+ setLayout();
131
+
132
+ // Set preloader
133
+ setPreloader();
134
+
135
+ if(document.readyState != 'complete') {
136
+ $(window).load(function() {
137
+ loadedWindow();
138
+ });
139
+ }
140
+ else {
141
+ loadedWindow();
142
+ }
143
+ }
144
+
145
+ // Do operations after window.load is complete. Need to do it as a function for back-end compatibility
146
+ function loadedWindow() {
147
+ // Hide preloader
148
+ unsetPreloader();
149
+
150
+ // Store original elements values then hide all the slides and elements
151
+ SLIDER.find(CRELLY).find(SLIDES).find(SLIDE).each(function(){
152
+ $(this).find(ELEMENTS).each(function() {
153
+ var element = $(this);
154
+ element.data('width', parseFloat(element.width()));
155
+ element.data('height', parseFloat(element.height()));
156
+ element.data('line-height', parseFloat(element.css('line-height')));
157
+ element.data('letter-spacing', parseFloat(element.css('letter-spacing')));
158
+ element.data('font-size', parseFloat(element.css('font-size')));
159
+ element.data('padding-top', parseFloat(element.css('padding-top')));
160
+ element.data('padding-right', parseFloat(element.css('padding-right')));
161
+ element.data('padding-bottom', parseFloat(element.css('padding-bottom')));
162
+ element.data('padding-left', parseFloat(element.css('padding-left')));
163
+ element.css('display', 'none');
164
+ });
165
+ $(this).css({
166
+ 'display' : 'none',
167
+ });
168
+ });
169
+
170
+ // Positions and responsive dimensions then run.
171
+ if(settings.responsive) {
172
+ setResponsive();
173
+ }
174
+ else {
175
+ play();
176
+ }
177
+ }
178
+
179
+ // Preloader functions
180
+ function setPreloader() {
181
+ SLIDER.find(CRELLY).find(SLIDES).css('display', 'none');
182
+ SLIDER.find(CRELLY).find('.cs-progress-bar').css('display', 'none');
183
+ SLIDER.find(CRELLY).find('.cs-navigation').css('display', 'none');
184
+ SLIDER.find(CRELLY).find('.cs-controls').css('display', 'none');
185
+ SLIDER.find(CRELLY).append('<div class="cs-preloader"><div class="cs-loader"></div></div>');
186
+ }
187
+
188
+ function unsetPreloader() {
189
+ SLIDER.find(CRELLY).find(SLIDES).css('display', 'block');
190
+ SLIDER.find(CRELLY).find('.cs-progress-bar').css('display', 'block');
191
+ SLIDER.find(CRELLY).find('.cs-navigation').css('display', 'block');
192
+ SLIDER.find(CRELLY).find('.cs-controls').css('display', 'block');
193
+ SLIDER.find(CRELLY).find('.cs-preloader').remove();
194
+ }
195
+
196
+ /*******************************/
197
+ /** LAYOUT AND RESPONSIVENESS **/
198
+ /*******************************/
199
+
200
+ // Set initial slider dimensions
201
+ function setLayout() {
202
+ var layout = settings.layout;
203
+ var width, height;
204
+ switch(layout) {
205
+ case 'fixed':
206
+ width = settings.startWidth;
207
+ height = settings.startHeight;
208
+ SLIDER.find(CRELLY).css({
209
+ 'width' : getScaled(width),
210
+ 'height' : getScaled(height),
211
+ });
212
+ SLIDER.find(CRELLY).find(SLIDES).find(SLIDE).css({
213
+ 'width' : getScaled(width),
214
+ 'height' : getScaled(height),
215
+ });
216
+ break;
217
+ case 'full-width':
218
+ width = SLIDER.width();
219
+ height = settings.startHeight;
220
+ SLIDER.find(CRELLY).css({
221
+ 'width' : width,
222
+ 'height' : getScaled(height),
223
+ });
224
+ SLIDER.find(CRELLY).find(SLIDES).find(SLIDE).css({
225
+ 'width' : width,
226
+ 'height' : getScaled(height),
227
+ });
228
+ break;
229
+ default:
230
+ return false;
231
+ break;
232
+ }
233
+ }
234
+
235
+ // Returns the element top end left gaps (when the slider is full-width is very useful)
236
+ function getLayoutGaps(element) {
237
+ var top_gap = (getHeight() - settings.startHeight) / 2;
238
+ var left_gap = (getWidth() - settings.startWidth) / 2;
239
+
240
+ var new_top = 0;
241
+ var new_left = 0;
242
+
243
+ if(top_gap > 0) {
244
+ new_top = top_gap;
245
+ }
246
+ if(left_gap > 0) {
247
+ new_left = left_gap;
248
+ }
249
+
250
+ return {
251
+ top: new_top,
252
+ left: new_left,
253
+ };
254
+ }
255
+
256
+ // Scale every element to make it responsive. It automatically stops and plays the slider
257
+ function setResponsive() {
258
+ var slides = SLIDER.find(CRELLY).find(SLIDES).find(SLIDE);
259
+
260
+ stop();
261
+
262
+ setScale();
263
+ setLayout();
264
+
265
+ slides.each(function() {
266
+ var elements = $(this).find(ELEMENTS);
267
+ elements.each(function() {
268
+ var element = $(this);
269
+
270
+ // Standard element
271
+ element.css({
272
+ 'width' : getScaled(getItemData(element, 'width')),
273
+ 'height' : getScaled(getItemData(element, 'height')),
274
+ 'top' : getScaled(getItemData(element, 'top') + getLayoutGaps(element).top),
275
+ 'left' : getScaled(getItemData(element, 'left') + getLayoutGaps(element).left),
276
+ 'padding-top' : getScaled(getItemData(element, 'padding-top')),
277
+ 'padding-right' : getScaled(getItemData(element, 'padding-right')),
278
+ 'padding-bottom' : getScaled(getItemData(element, 'padding-bottom')),
279
+ 'padding-left' : getScaled(getItemData(element, 'padding-left')),
280
+ });
281
+
282
+ // Element contains text
283
+ if(element.text() != '') {
284
+ element.css({
285
+ 'width' : 'auto',
286
+ 'height' : 'auto',
287
+ 'line-height' : getScaled(getItemData(element, 'line-height')) + 'px',
288
+ 'letter-spacing' : getScaled(getItemData(element, 'letter-spacing')),
289
+ 'font-size' : getScaled(getItemData(element, 'font-size')),
290
+ });
291
+ if(element.width() > 0) {
292
+ element.css('width', element.width());
293
+ }
294
+ if(element.height() > 0) {
295
+ element.css('height', element.height());
296
+ }
297
+ }
298
+ });
299
+ });
300
+
301
+ play();
302
+ }
303
+
304
+ // Using the start dimensions, sets how the slider and it's elements should be scaled
305
+ function setScale() {
306
+ var slider_width = SLIDER.width();
307
+ var start_width = settings.startWidth;
308
+
309
+ if(slider_width >= start_width) {
310
+ scale = 1;
311
+ }
312
+ else {
313
+ scale = slider_width / start_width;
314
+ }
315
+ }
316
+
317
+ // Using the current scale variable, returns the value that receives correctly scaled. Remember to always use getScaled() to get positions & dimensions of the elements
318
+ function getScaled(value) {
319
+ return value * scale;
320
+ }
321
+
322
+ /*********************/
323
+ /** SLIDER COMMANDS **/
324
+ /*********************/
325
+
326
+ // Run Crelly from the current slide
327
+ function play() {
328
+ if(settings.automaticSlide) {
329
+ loopSlides();
330
+ }
331
+ else {
332
+ runSlide(current_slide);
333
+ }
334
+ }
335
+
336
+ // Stops the current slide and the loop
337
+ function stop() {
338
+ var slide = SLIDER.find(CRELLY).find(SLIDES).find(SLIDE + ':eq(' + current_slide + ')');
339
+ var elements = slide.find(ELEMENTS);
340
+
341
+ // Stop all the animations of the slides and the progress bar.
342
+ SLIDER.find(CRELLY).find(SLIDES).find(SLIDE).each(function() {
343
+ var temp_slide = $(this);
344
+ temp_slide.finish();
345
+ temp_slide.find(ELEMENTS).each(function() {
346
+ var temp_element = $(this);
347
+ temp_element.finish();
348
+ });
349
+ });
350
+ resetProgressBar();
351
+ slide_ease_in_completed = false;
352
+ }
353
+
354
+ function pause() {
355
+ // Stop progress bar
356
+ var progress_bar = SLIDER.find(CRELLY).find('.cs-progress-bar');
357
+ progress_bar.stop(true);
358
+
359
+ wants_to_pause = true;
360
+
361
+ // If can be paused, pause
362
+ if(! paused /*&& slide_ease_in_completed*/) {
363
+ var slide = SLIDER.find(CRELLY).find(SLIDES).find(SLIDE + ':eq(' + current_slide + ')');
364
+ var elements = slide.children();
365
+
366
+ slide.finish();
367
+
368
+ paused = true;
369
+ }
370
+ // Else try until you can pause
371
+ else {
372
+ var i = setInterval(function() {
373
+ if(wants_to_pause && ! paused /*&& slide_ease_in_completed*/) {
374
+ clearInterval(i);
375
+ wants_to_pause = false;
376
+ pause();
377
+ return;
378
+ }
379
+ if(! wants_to_pause) {
380
+ clearInterval(i);
381
+ return;
382
+ }
383
+ });
384
+ }
385
+ }
386
+
387
+ function resume() {
388
+ wants_to_pause = false;
389
+
390
+ var slide = SLIDER.find(CRELLY).find(SLIDES).find(SLIDE + ':eq(' + current_slide + ')');
391
+ var progress_bar = SLIDER.find(CRELLY).find('.cs-progress-bar');
392
+
393
+ var animation_time = getAnimationTime(slide);
394
+ var remained_delay = animation_time - getPercentage(animation_time, slide_progress);
395
+
396
+ // Animate until the end the progress bar then execute the next slide
397
+ progress_bar.animate({
398
+ 'width' : '100%'
399
+ }, {
400
+ duration: remained_delay,
401
+ step: function(currentWidth) {
402
+ slide_progress = currentWidth;
403
+ },
404
+ complete: function() {
405
+ changeSlide(getNextSlide());
406
+ },
407
+ easing: 'linear'
408
+ });
409
+
410
+ paused = false;
411
+ }
412
+
413
+ /****************************************/
414
+ /** SLIDER OR SLIDES DATAS / UTILITIES **/
415
+ /****************************************/
416
+
417
+ // Returns the Crelly Slider container width
418
+ function getWidth() {
419
+ return SLIDER.find(CRELLY).width();
420
+ }
421
+
422
+ // Returns the Crelly Slider container height
423
+ function getHeight() {
424
+ return SLIDER.find(CRELLY).height();
425
+ }
426
+
427
+ // Returns the index of the next slide
428
+ function getNextSlide() {
429
+ if(current_slide + 1 == total_slides) {
430
+ return 0;
431
+ }
432
+ return current_slide + 1;
433
+ }
434
+
435
+ // Returns the index of the previous slide
436
+ function getPreviousSlide() {
437
+ if(current_slide - 1 < 0) {
438
+ return total_slides - 1;
439
+ }
440
+ return current_slide - 1;
441
+ }
442
+
443
+ // Returns a "data" of an item (slide or element). If is an integer || float, returns the parseInt() || parseFloat() of it. If the element has no data returns the default value
444
+ function getItemData(item, data) {
445
+ var is_slide;
446
+
447
+ if(item.parent('ul').hasClass('cs-slides')) {
448
+ is_slide = true;
449
+ }
450
+ else {
451
+ is_slide = false;
452
+ }
453
+
454
+ switch(data) {
455
+ case 'ease-in':
456
+ if(is_slide) {
457
+ return isNaN(parseInt(item.data(data))) ? settings.slidesEaseIn : parseInt(item.data(data));
458
+ }
459
+ else {
460
+ return isNaN(parseInt(item.data(data))) ? settings.elementsEaseIn : parseInt(item.data(data));
461
+ }
462
+ break;
463
+
464
+ case 'ease-out':
465
+ if(is_slide) {
466
+ return isNaN(parseInt(item.data(data))) ? settings.slidesEaseOut : parseInt(item.data(data));
467
+ }
468
+ else {
469
+ return isNaN(parseInt(item.data(data))) ? settings.elementsEaseOut : parseInt(item.data(data));
470
+ }
471
+ break;
472
+
473
+ case 'delay':
474
+ // The slide delay does not exist. Only elements can have delay
475
+ return isNaN(parseInt(item.data(data))) ? settings.elementsDelay : parseInt(item.data(data));
476
+
477
+ break;
478
+
479
+ case 'time':
480
+ if(is_slide) {
481
+ return isNaN(parseInt(item.data(data))) ? settings.slidesTime : parseInt(item.data(data));
482
+ }
483
+ else {
484
+ if(item.data(data) == 'all') {
485
+ return 'all';
486
+ }
487
+ else {
488
+ return isNaN(parseInt(item.data(data))) ? settings.itemsTime : parseInt(item.data(data));
489
+ }
490
+ }
491
+ break;
492
+
493
+ case 'top' :
494
+ case 'left':
495
+ case 'width':
496
+ case 'height':
497
+ case 'padding-top':
498
+ case 'padding-right':
499
+ case 'padding-bottom':
500
+ case 'padding-left':
501
+ case 'line-height':
502
+ case 'letter-spacing':
503
+ case 'font-size':
504
+ return isNaN(parseFloat(item.data(data))) ? 0 : parseFloat(item.data(data));
505
+ break;
506
+
507
+ case 'in':
508
+ case 'out':
509
+ return item.data(data); // The default value for the animations is directly in the function
510
+ break;
511
+
512
+ default:
513
+ return false;
514
+ break;
515
+ }
516
+ }
517
+
518
+ // Returns the time of a slide + ease in
519
+ function getAnimationTime(slide) {
520
+ return getItemData(slide, 'time') + getItemData(slide, 'ease-in');
521
+ }
522
+
523
+ // Returns a percentage of a number
524
+ function getPercentage(number, percentage) {
525
+ return (percentage / 100) * number;
526
+ }
527
+
528
+ /*****************/
529
+ /** SLIDER CORE **/
530
+ /*****************/
531
+
532
+ // Loop trough the slides
533
+ function loopSlides() {
534
+ executeSlide(current_slide).done(function() {
535
+ if(! paused) {
536
+ current_slide = getNextSlide();
537
+ stop();
538
+ loopSlides();
539
+ }
540
+ });
541
+ }
542
+
543
+ // Resets the progress bar and draw the new progress bar for the received slide
544
+ function drawProgressBar(slide) {
545
+ var animation_time = getAnimationTime(slide);
546
+ var progress_bar = SLIDER.find(CRELLY).find('.cs-progress-bar');
547
+
548
+ resetProgressBar();
549
+
550
+ progress_bar.animate({
551
+ 'width' : '100%'
552
+ }, {
553
+ duration: animation_time,
554
+ step: function(currentWidth) {
555
+ slide_progress = currentWidth;
556
+ },
557
+ easing: 'linear'
558
+ });
559
+ }
560
+
561
+ // Resets the progress bar animation and CSS
562
+ function resetProgressBar() {
563
+ var progress_bar = SLIDER.find(CRELLY).find('.cs-progress-bar');
564
+
565
+ slide_progress = 0;
566
+
567
+ progress_bar.stop();
568
+ progress_bar.css({'width' : '0%'});
569
+ }
570
+
571
+ // Sets the right HTML classes of the navigation class
572
+ function setNavigationLink() {
573
+ var nav = SLIDER.find(CRELLY).find('.cs-navigation');
574
+ var links = nav.find('> .cs-slide-link');
575
+
576
+ links.each(function() {
577
+ var link = $(this);
578
+ if(link.index() == current_slide) {
579
+ link.addClass('cs-active');
580
+ }
581
+ else {
582
+ link.removeClass('cs-active');
583
+ }
584
+ });
585
+ }
586
+
587
+ // Finishes the current slide (animations out of elements and slide) and runs a new slide. If automatic loop == true, run the loop (starting from the new slide).
588
+ function changeSlide(slide_index) {
589
+ var slide = SLIDER.find(CRELLY).find(SLIDES).find(SLIDE + ':eq(' + current_slide + ')');
590
+ var elements = slide.children();
591
+
592
+ stop();
593
+
594
+ // Do animations out
595
+ finishSlide(current_slide, false);
596
+
597
+ // Change slide and execute Crelly Slider
598
+ current_slide = slide_index;
599
+
600
+ play();
601
+ }
602
+
603
+ // Execute a slide
604
+ function executeSlide(slide_index) {
605
+ var slide = SLIDER.find(CRELLY).find(SLIDES).find(SLIDE + ':eq(' + slide_index +')');
606
+
607
+ var def = new $.Deferred();
608
+
609
+ drawProgressBar(slide);
610
+ setNavigationLink();
611
+
612
+ runSlide(slide_index).done(function() {
613
+ slide_ease_in_completed = true;
614
+ });
615
+ finishSlide(slide_index, true).done(function() {
616
+ def.resolve();
617
+ });
618
+
619
+ return def.promise();
620
+ }
621
+
622
+ // Executes the in animation of the slide and it's elements
623
+ function runSlide(slide_index) {
624
+ var slide = SLIDER.find(CRELLY).find(SLIDES).find(SLIDE + ':eq(' + slide_index +')');
625
+ var elements = slide.children();
626
+
627
+ var res = 0;
628
+ var def = new $.Deferred();
629
+
630
+ in_dealy = false;
631
+
632
+ // Do slide in animation
633
+ slideIn(slide).done(function() {
634
+ res++;
635
+ if(res == 2) {
636
+ def.resolve();
637
+ }
638
+ });
639
+
640
+ // Do elements in animation
641
+ elements.each(function() {
642
+ var element = $(this);
643
+ elementIn(element);
644
+ }).promise().done(function() {
645
+ res++;
646
+ if(res == 2) {
647
+ def.resolve();
648
+ }
649
+ });
650
+
651
+ return def.promise();
652
+ }
653
+
654
+ // Executes the time and the out animations of the slide and it's elements
655
+ function finishSlide(slide_index, execute_time) {
656
+ var slide = SLIDER.find(CRELLY).find(SLIDES).find(SLIDE + ':eq(' + slide_index +')');
657
+ var elements = slide.children();
658
+ var data_time = getItemData(slide, 'time');
659
+
660
+ var def = new $.Deferred();
661
+
662
+ if(execute_time) {
663
+ // Do elements time (wait)
664
+ elements.each( function() {
665
+ var element = $(this);
666
+ var time = getItemData(element, 'time');
667
+ if(time != 'all') {
668
+ element.delay(time).queue(function() {
669
+ $(this).dequeue();
670
+ elementOut(element);
671
+ });
672
+ }
673
+ });
674
+
675
+ // Execute slide time (wait)
676
+ slide.delay(data_time).queue(function() {
677
+ $(this).dequeue();
678
+ slide_ease_in_completed = false;
679
+ def.resolve();
680
+
681
+ // Do slide out animation
682
+ slideOut(slide).done(function() { });
683
+
684
+ // Do elements out animation with 'all' duration
685
+ elements.each( function() {
686
+ var element = $(this);
687
+ var time = getItemData(element, 'time');
688
+ if(time == 'all') {
689
+ element.delay(time).queue(function() {
690
+ $(this).dequeue();
691
+ elementOut(element);
692
+ });
693
+ }
694
+ });
695
+ });
696
+ }
697
+ else {
698
+ def.resolve();
699
+ // Do elements out animation
700
+ elements.each(function() {
701
+ var element = $(this);
702
+ elementOut(element);
703
+ });
704
+
705
+ // Do slide out animation
706
+ slideOut(slide).done(function() { });
707
+ }
708
+
709
+ return def.promise();
710
+ }
711
+
712
+ /****************/
713
+ /** ANIMATIONS **/
714
+ /****************/
715
+
716
+ // Slide in animations
717
+ function slideIn(slide) {
718
+ var data_in = getItemData(slide, 'in');
719
+ var data_ease_in = getItemData(slide, 'ease-in');
720
+
721
+ var def = new $.Deferred();
722
+
723
+ switch(data_in) {
724
+ case 'fade' :
725
+ slide.css({
726
+ 'display' : 'block',
727
+ 'top' : 0,
728
+ 'left' : 0,
729
+ 'opacity' : 0,
730
+ });
731
+ slide.animate({
732
+ 'opacity' : 1,
733
+ }, data_ease_in, function() { def.resolve(); });
734
+ break;
735
+ case 'fadeLeft' :
736
+ slide.css({
737
+ 'display' : 'block',
738
+ 'top' : 0,
739
+ 'left' : getWidth(),
740
+ 'opacity' : 0,
741
+ });
742
+ slide.animate({
743
+ 'opacity' : 1,
744
+ 'left' : 0,
745
+ }, data_ease_in, function() { def.resolve(); });
746
+ break;
747
+ case 'fadeRight' :
748
+ slide.css({
749
+ 'display' : 'block',
750
+ 'top' : 0,
751
+ 'left' : -getWidth(),
752
+ 'opacity' : 0,
753
+ });
754
+ slide.animate({
755
+ 'opacity' : 1,
756
+ 'left' : 0,
757
+ }, data_ease_in, function() { def.resolve(); });
758
+ break;
759
+ case 'slideLeft' :
760
+ slide.css({
761
+ 'display' : 'block',
762
+ 'top' : 0,
763
+ 'left' : getWidth(),
764
+ });
765
+ slide.animate({
766
+ 'left' : 0,
767
+ }, data_ease_in, function() { def.resolve(); });
768
+ break;
769
+ case 'slideRight' :
770
+ slide.css({
771
+ 'display' : 'block',
772
+ 'top' : 0,
773
+ 'left' : -getWidth(),
774
+ });
775
+ slide.animate({
776
+ 'left' : 0,
777
+ }, data_ease_in, function() { def.resolve(); });
778
+ break;
779
+ case 'slideUp' :
780
+ slide.css({
781
+ 'display' : 'block',
782
+ 'top' : getHeight(),
783
+ 'left' : 0,
784
+ });
785
+ slide.animate({
786
+ 'top' : 0,
787
+ }, data_ease_in, function() { def.resolve(); });
788
+ break;
789
+ case 'slideDown' :
790
+ slide.css({
791
+ 'display' : 'block',
792
+ 'top' : -getHeight(),
793
+ 'left' : 0,
794
+ });
795
+ slide.animate({
796
+ 'top' : 0,
797
+ }, data_ease_in, function() { def.resolve(); });
798
+ break;
799
+ default:
800
+ slide.css({
801
+ 'display' : 'block',
802
+ 'top' : 0,
803
+ 'left' : 0,
804
+ });
805
+ def.resolve();
806
+ break;
807
+ }
808
+
809
+ return def.promise();
810
+ }
811
+
812
+ // Slide out animations
813
+ function slideOut(slide) {
814
+ var data_out = getItemData(slide, 'out');
815
+ var data_ease_out = getItemData(slide, 'ease-out');
816
+
817
+ var def = new $.Deferred();
818
+
819
+ switch(data_out) {
820
+ case 'fade':
821
+ slide.animate({
822
+ 'opacity' : 0,
823
+ }, data_ease_out,
824
+ function() {
825
+ slide.css({
826
+ 'display' : 'none',
827
+ 'opacity' : 1,
828
+ });
829
+ def.resolve();
830
+ });
831
+ break;
832
+ case 'fadeLeft':
833
+ slide.animate({
834
+ 'opacity' : 0,
835
+ 'left' : -getWidth(),
836
+ }, data_ease_out,
837
+ function() {
838
+ slide.css({
839
+ 'display' : 'none',
840
+ 'opacity' : 1,
841
+ 'left' : 0,
842
+ });
843
+ def.resolve();
844
+ });
845
+ break;
846
+ case 'fadeRight':
847
+ slide.animate({
848
+ 'opacity' : 0,
849
+ 'left' : getWidth(),
850
+ }, data_ease_out,
851
+ function() {
852
+ slide.css({
853
+ 'display' : 'none',
854
+ 'opacity' : 1,
855
+ 'left' : 0,
856
+ });
857
+ def.resolve();
858
+ });
859
+ break;
860
+ case 'slideLeft':
861
+ slide.animate({
862
+ 'left' : -getWidth(),
863
+ }, data_ease_out,
864
+ function() {
865
+ slide.css({
866
+ 'display' : 'none',
867
+ 'left' : 0,
868
+ });
869
+ def.resolve();
870
+ });
871
+ break;
872
+ case 'slideRight':
873
+ slide.animate({
874
+ 'left' : getWidth(),
875
+ }, data_ease_out,
876
+ function() {
877
+ slide.css({
878
+ 'display' : 'none',
879
+ 'left' : 0,
880
+ });
881
+ def.resolve();
882
+ });
883
+ break;
884
+ case 'slideUp':
885
+ slide.animate({
886
+ 'top' : -getHeight(),
887
+ }, data_ease_out,
888
+ function() {
889
+ slide.css({
890
+ 'display' : 'none',
891
+ 'top' : 0,
892
+ });
893
+ def.resolve();
894
+ });
895
+ break;
896
+ case 'slideDown':
897
+ slide.animate({
898
+ 'top' : getHeight(),
899
+ }, data_ease_out,
900
+ function() {
901
+ slide.css({
902
+ 'display' : 'none',
903
+ 'top' : 0,
904
+ });
905
+ def.resolve();
906
+ });
907
+ break;
908
+ default:
909
+ slide.css({
910
+ 'display' : 'none',
911
+ });
912
+ def.resolve();
913
+ break;
914
+ }
915
+
916
+ return def.promise();
917
+ }
918
+
919
+ // Element in animations
920
+ function elementIn(element) {
921
+ var element_width = element.outerWidth();
922
+ var element_height = element.outerHeight();
923
+ var data_in = getItemData(element, 'in');
924
+ var data_ease_in = getItemData(element, 'ease-in');
925
+ var data_delay = getItemData(element, 'delay');
926
+ var data_top = getItemData(element, 'top');
927
+ var data_left = getItemData(element, 'left');
928
+
929
+ switch(data_in) {
930
+ case 'slideDown':
931
+ element.delay(data_delay).css({
932
+ 'display' : 'block',
933
+ 'top' : -element_height,
934
+ 'left' : getScaled(data_left + getLayoutGaps(element).left),
935
+ }).animate({
936
+ 'top' : getScaled(data_top + getLayoutGaps(element).top),
937
+ }, data_ease_in);
938
+ break;
939
+ case 'slideUp':
940
+ element.delay(data_delay).css({
941
+ 'display' : 'block',
942
+ 'top' : getHeight(),
943
+ 'left' : getScaled(data_left + getLayoutGaps(element).left),
944
+ }).animate({
945
+ 'top' : getScaled(data_top + getLayoutGaps(element).top),
946
+ }, data_ease_in);
947
+ break;
948
+ case 'slideLeft':
949
+ element.delay(data_delay).css({
950
+ 'display' : 'block',
951
+ 'top' : getScaled(data_top + getLayoutGaps(element).top),
952
+ 'left' : getWidth(),
953
+ }).animate({
954
+ 'left' : getScaled(data_left + getLayoutGaps(element).left),
955
+ }, data_ease_in);
956
+ break;
957
+ case 'slideRight':
958
+ element.delay(data_delay).css({
959
+ 'display' : 'block',
960
+ 'top' : getScaled(data_top + getLayoutGaps(element).top),
961
+ 'left' : -element_width,
962
+ }).animate({
963
+ 'left' : getScaled(data_left + getLayoutGaps(element).left),
964
+ }, data_ease_in);
965
+ break;
966
+ case 'fade':
967
+ element.delay(data_delay).css({
968
+ 'display' : 'block',
969
+ 'top' : getScaled(data_top + getLayoutGaps(element).top),
970
+ 'left' : getScaled(data_left + getLayoutGaps(element).left),
971
+ 'opacity' : 0,
972
+ }).animate({
973
+ 'opacity' : 1,
974
+ }, data_ease_in);
975
+ break;
976
+ case 'fadeDown':
977
+ element.delay(data_delay).css({
978
+ 'display' : 'block',
979
+ 'top' : -element_height,
980
+ 'left' : getScaled(data_left + getLayoutGaps(element).left),
981
+ 'opacity' : 0,
982
+ }).animate({
983
+ 'top' : getScaled(data_top + getLayoutGaps(element).top),
984
+ 'opacity' : 1,
985
+ }, data_ease_in);
986
+ break;
987
+ case 'fadeUp':
988
+ element.delay(data_delay).css({
989
+ 'display' : 'block',
990
+ 'top' : getHeight(),
991
+ 'left' : getScaled(data_left + getLayoutGaps(element).left),
992
+ 'opacity' : 0,
993
+ }).animate({
994
+ 'top' : getScaled(data_top + getLayoutGaps(element).top),
995
+ 'opacity' : 1,
996
+ }, data_ease_in);
997
+ break;
998
+ case 'fadeLeft':
999
+ element.delay(data_delay).css({
1000
+ 'display' : 'block',
1001
+ 'top' : getScaled(data_top + getLayoutGaps(element).top),
1002
+ 'left' : getWidth(),
1003
+ 'opacity' : 0,
1004
+ }).animate({
1005
+ 'left' : getScaled(data_left + getLayoutGaps(element).left),
1006
+ 'opacity' : 1,
1007
+ }, data_ease_in);
1008
+ break;
1009
+ case 'fadeRight':
1010
+ element.delay(data_delay).css({
1011
+ 'display' : 'block',
1012
+ 'top' : getScaled(data_top + getLayoutGaps(element).top),
1013
+ 'left' : -element_width,
1014
+ 'opacity' : 0,
1015
+ }).animate({
1016
+ 'left' : getScaled(data_left + getLayoutGaps(element).left),
1017
+ 'opacity' : 1,
1018
+ }, data_ease_in);
1019
+ break;
1020
+ case 'fadeSmallDown':
1021
+ element.delay(data_delay).css({
1022
+ 'display' : 'block',
1023
+ 'top' : getScaled(data_top + getLayoutGaps(element).top -30),
1024
+ 'left' : getScaled(data_left + getLayoutGaps(element).left),
1025
+ 'opacity' : 0,
1026
+ }).animate({
1027
+ 'top' : getScaled(data_top + getLayoutGaps(element).top),
1028
+ 'opacity' : 1,
1029
+ }, data_ease_in);
1030
+ break;
1031
+ case 'fadeSmallUp':
1032
+ element.delay(data_delay).css({
1033
+ 'display' : 'block',
1034
+ 'top' : getScaled(data_top + getLayoutGaps(element).top + 30),
1035
+ 'left' : getScaled(data_left + getLayoutGaps(element).left),
1036
+ 'opacity' : 0,
1037
+ }).animate({
1038
+ 'top' : getScaled(data_top + getLayoutGaps(element).top),
1039
+ 'opacity' : 1,
1040
+ }, data_ease_in);
1041
+ break;
1042
+ case 'fadeSmallLeft':
1043
+ element.delay(data_delay).css({
1044
+ 'display' : 'block',
1045
+ 'top' : getScaled(data_top + getLayoutGaps(element).top),
1046
+ 'left' : getScaled(data_left + getLayoutGaps(element).left + 30),
1047
+ 'opacity' : 0,
1048
+ }).animate({
1049
+ 'left' : getScaled(data_left + getLayoutGaps(element).left),
1050
+ 'opacity' : 1,
1051
+ }, data_ease_in);
1052
+ break;
1053
+ case 'fadeSmallRight':
1054
+ element.delay(data_delay).css({
1055
+ 'display' : 'block',
1056
+ 'top' : getScaled(data_top + getLayoutGaps(element).top),
1057
+ 'left' : getScaled(data_left + getLayoutGaps(element).left - 30),
1058
+ 'opacity' : 0,
1059
+ }).animate({
1060
+ 'left' : getScaled(data_left + getLayoutGaps(element).left),
1061
+ 'opacity' : 1,
1062
+ }, data_ease_in);
1063
+ break;
1064
+ // None, unset parameter, invalid parameter should already be in the correct position
1065
+ }
1066
+ }
1067
+
1068
+ // Element out animations
1069
+ function elementOut(element) {
1070
+ var element_width = element.outerWidth();
1071
+ var element_height = element.outerHeight();
1072
+ var data_top = getItemData(element, 'top');
1073
+ var data_left = getItemData(element, 'left');
1074
+ var data_out = getItemData(element, 'out');
1075
+ var data_ease_out = getItemData(element, 'ease-out');
1076
+
1077
+ switch(data_out) {
1078
+ case 'slideDown':
1079
+ element.animate({
1080
+ 'top' : getHeight(),
1081
+ }, data_ease_out,
1082
+ function() {
1083
+ element.css({
1084
+ 'display' : 'none',
1085
+ });
1086
+ });
1087
+ break;
1088
+ case 'slideUp':
1089
+ element.animate({
1090
+ 'top' : - element_height,
1091
+ }, data_ease_out,
1092
+ function() {
1093
+ element.css({
1094
+ 'display' : 'none',
1095
+ });
1096
+ });
1097
+ break;
1098
+ case 'slideLeft':
1099
+ element.animate({
1100
+ 'left' : - element_width,
1101
+ }, data_ease_out,
1102
+ function() {
1103
+ element.css({
1104
+ 'display' : 'none',
1105
+ });
1106
+ });
1107
+ break;
1108
+ case 'slideRight':
1109
+ element.animate({
1110
+ 'left' : getWidth(),
1111
+ }, data_ease_out,
1112
+ function() {
1113
+ element.css({
1114
+ 'display' : 'none',
1115
+ });
1116
+ });
1117
+ break;
1118
+ case 'fade':
1119
+ element.animate({
1120
+ 'opacity' : 0,
1121
+ }, data_ease_out,
1122
+ function() {
1123
+ element.css({
1124
+ 'display' : 'none',
1125
+ 'opacity' : 1,
1126
+ });
1127
+ });
1128
+ break;
1129
+ case 'fadeDown':
1130
+ element.animate({
1131
+ 'top' : getHeight(),
1132
+ 'opacity' : 0,
1133
+ }, data_ease_out,
1134
+ function() {
1135
+ element.css({
1136
+ 'display' : 'none',
1137
+ 'opacity' : 1,
1138
+ });
1139
+ });
1140
+ break;
1141
+ case 'fadeUp':
1142
+ element.animate({
1143
+ 'top' : - element_height,
1144
+ 'opacity' : 0,
1145
+ }, data_ease_out,
1146
+ function() {
1147
+ element.css({
1148
+ 'display' : 'none',
1149
+ 'opacity' : 1,
1150
+ });
1151
+ });
1152
+ break;
1153
+ case 'fadeLeft':
1154
+ element.animate({
1155
+ 'left' : - element_width,
1156
+ 'opacity' : 0,
1157
+ }, data_ease_out,
1158
+ function() {
1159
+ element.css({
1160
+ 'display' : 'none',
1161
+ 'opacity' : 1,
1162
+ });
1163
+ });
1164
+ break;
1165
+ case 'fadeRight':
1166
+ element.animate({
1167
+ 'left' : getWidth(),
1168
+ 'opacity' : 0,
1169
+ }, data_ease_out,
1170
+ function() {
1171
+ element.css({
1172
+ 'display' : 'none',
1173
+ 'opacity' : 1,
1174
+ });
1175
+ });
1176
+ break;
1177
+ case 'fadeSmallDown':
1178
+ element.animate({
1179
+ 'top' : getScaled(getItemData(element, 'top') + getLayoutGaps(element).top + 30),
1180
+ 'opacity' : 0,
1181
+ }, data_ease_out,
1182
+ function() {
1183
+ element.css({
1184
+ 'display' : 'none',
1185
+ 'opacity' : 1,
1186
+ });
1187
+ });
1188
+ break;
1189
+ case 'fadeSmallUp':
1190
+ element.animate({
1191
+ 'top' : getScaled(getItemData(element, 'top') + getLayoutGaps(element).top - 30),
1192
+ 'opacity' : 0,
1193
+ }, data_ease_out,
1194
+ function() {
1195
+ element.css({
1196
+ 'display' : 'none',
1197
+ 'opacity' : 1,
1198
+ });
1199
+ });
1200
+ break;
1201
+ case 'fadeSmallLeft':
1202
+ element.animate({
1203
+ 'left' : getScaled(getItemData(element, 'left') + getLayoutGaps(element).left - 30),
1204
+ 'opacity' : 0,
1205
+ }, data_ease_out,
1206
+ function() {
1207
+ element.css({
1208
+ 'display' : 'none',
1209
+ 'opacity' : 1,
1210
+ });
1211
+ });
1212
+ break;
1213
+ case 'fadeSmallRight':
1214
+ element.animate({
1215
+ 'left' : getScaled(getItemData(element, 'left') + getLayoutGaps(element).left + 30),
1216
+ 'opacity' : 0,
1217
+ }, data_ease_out,
1218
+ function() {
1219
+ element.css({
1220
+ 'display' : 'none',
1221
+ 'opacity' : 1,
1222
+ });
1223
+ });
1224
+ break;
1225
+ // None, unset parameter, invalid parameter should already be in the correct position
1226
+ }
1227
+ }
1228
+
1229
+ };
1230
+
1231
+ /**************************/
1232
+ /** CRELLY SLIDER PLUGIN **/
1233
+ /**************************/
1234
+
1235
+ // Plugin
1236
+ $.fn.crellySlider = function(options) {
1237
+ var settings = $.extend({
1238
+ layout : 'fixed',
1239
+ responsive : true,
1240
+ startWidth : 1170,
1241
+ startHeight : 500,
1242
+ pauseOnHover : true,
1243
+
1244
+ automaticSlide : true,
1245
+ showControls : true,
1246
+ showNavigation : true,
1247
+ showProgressBar : true,
1248
+
1249
+ slidesTime : 3000,
1250
+ elementsDelay : 0,
1251
+ elementsTime : 'all',
1252
+ slidesEaseIn : 300,
1253
+ elementsEaseIn : 300,
1254
+ slidesEaseOut : 300,
1255
+ elementsEaseOut : 300,
1256
+ }, options);
1257
+
1258
+ return this.each(function() {
1259
+ new CrellySlider(this, settings);
1260
+ });
1261
+ };
1262
+
1263
+ })(jQuery);
js/jquery.crellyslider.min.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Plugin Name: Crelly Slider
3
+ * Plugin URI: http://fabiorino1.altervista.org/projects/crellyslider
4
+ * Description: The first free WordPress slider with elements animations.
5
+ * Version: 0.6.5
6
+ * Author: fabiorino
7
+ * Author URI: http://fabiorino1.altervista.org
8
+ * License: GPL2
9
+ */
10
+
11
+ (function(e){var t=function(t,n){function v(){r.wrapInner('<div class="crellyslider" />');r.find(i+" > ul").addClass("cs-slides");r.find(i+" "+s+" > li").addClass("cs-slide");a=e(r).find(i).find(s).find(o).length;if(a==0){return false}if(a==1){var t=r.find(i).find(s).find(o+":eq(0)");var u=r.find(i).find(s);t.clone().prependTo(u);a++}if(n.showControls){r.find(i).append('<div class="cs-controls"><span class="cs-next"></span><span class="cs-previous"></span></div>')}if(n.showNavigation){var c='<div class="cs-navigation">';for(var h=0;h<a;h++){c+='<span class="cs-slide-link"></span>'}c+="</div>";r.find(i).append(c)}if(n.showProgressBar){r.find(i).append('<div class="cs-progress-bar"></div>')}else{r.find(i).append('<div class="cs-progress-bar cs-progress-bar-hidden"></div>')}r.find(i).find(".cs-controls > .cs-previous").click(function(){l=false;I(M())});r.find(i).find(".cs-controls > .cs-next").click(function(){l=false;I(O())});r.find(i).find(".cs-navigation > .cs-slide-link").click(function(){if(e(this).index()!=f){l=false;I(e(this).index())}});if(n.pauseOnHover){r.find(i).find(s).hover(function(){C()});r.find(i).find(s).mouseleave(function(){k()})}if(n.responsive){e(window).resize(function(){E()})}b();g();if(document.readyState!="complete"){e(window).load(function(){m()})}else{m()}}function m(){y();r.find(i).find(s).find(o).each(function(){e(this).find(u).each(function(){var t=e(this);t.data("width",parseFloat(t.width()));t.data("height",parseFloat(t.height()));t.data("line-height",parseFloat(t.css("line-height")));t.data("letter-spacing",parseFloat(t.css("letter-spacing")));t.data("font-size",parseFloat(t.css("font-size")));t.data("padding-top",parseFloat(t.css("padding-top")));t.data("padding-right",parseFloat(t.css("padding-right")));t.data("padding-bottom",parseFloat(t.css("padding-bottom")));t.data("padding-left",parseFloat(t.css("padding-left")));t.css("display","none")});e(this).css({display:"none"})});if(n.responsive){E()}else{T()}}function g(){r.find(i).find(s).css("display","none");r.find(i).find(".cs-progress-bar").css("display","none");r.find(i).find(".cs-navigation").css("display","none");r.find(i).find(".cs-controls").css("display","none");r.find(i).append('<div class="cs-preloader"><div class="cs-loader"></div></div>')}function y(){r.find(i).find(s).css("display","block");r.find(i).find(".cs-progress-bar").css("display","block");r.find(i).find(".cs-navigation").css("display","block");r.find(i).find(".cs-controls").css("display","block");r.find(i).find(".cs-preloader").remove()}function b(){var e=n.layout;var t,u;switch(e){case"fixed":t=n.startWidth;u=n.startHeight;r.find(i).css({width:x(t),height:x(u)});r.find(i).find(s).find(o).css({width:x(t),height:x(u)});break;case"full-width":t=r.width();u=n.startHeight;r.find(i).css({width:t,height:x(u)});r.find(i).find(s).find(o).css({width:t,height:x(u)});break;default:return false;break}}function w(e){var t=(A()-n.startHeight)/2;var r=(L()-n.startWidth)/2;var i=0;var s=0;if(t>0){i=t}if(r>0){s=r}return{top:i,left:s}}function E(){var t=r.find(i).find(s).find(o);N();S();b();t.each(function(){var t=e(this).find(u);t.each(function(){var t=e(this);t.css({width:x(_(t,"width")),height:x(_(t,"height")),top:x(_(t,"top")+w(t).top),left:x(_(t,"left")+w(t).left),"padding-top":x(_(t,"padding-top")),"padding-right":x(_(t,"padding-right")),"padding-bottom":x(_(t,"padding-bottom")),"padding-left":x(_(t,"padding-left"))});if(t.text()!=""){t.css({width:"auto",height:"auto","line-height":x(_(t,"line-height"))+"px","letter-spacing":x(_(t,"letter-spacing")),"font-size":x(_(t,"font-size"))});if(t.width()>0){t.css("width",t.width())}if(t.height()>0){t.css("height",t.height())}}})});T()}function S(){var e=r.width();var t=n.startWidth;if(e>=t){d=1}else{d=e/t}}function x(e){return e*d}function T(){if(n.automaticSlide){H()}else{R(f)}}function N(){var t=r.find(i).find(s).find(o+":eq("+f+")");var n=t.find(u);r.find(i).find(s).find(o).each(function(){var t=e(this);t.finish();t.find(u).each(function(){var t=e(this);t.finish()})});j();h=false}function C(){var e=r.find(i).find(".cs-progress-bar");e.stop(true);c=true;if(!l){var t=r.find(i).find(s).find(o+":eq("+f+")");var n=t.children();t.finish();l=true}else{var u=setInterval(function(){if(c&&!l){clearInterval(u);c=false;C();return}if(!c){clearInterval(u);return}})}}function k(){c=false;var e=r.find(i).find(s).find(o+":eq("+f+")");var t=r.find(i).find(".cs-progress-bar");var n=D(e);var u=n-P(n,p);t.animate({width:"100%"},{duration:u,step:function(e){p=e},complete:function(){I(O())},easing:"linear"});l=false}function L(){return r.find(i).width()}function A(){return r.find(i).height()}function O(){if(f+1==a){return 0}return f+1}function M(){if(f-1<0){return a-1}return f-1}function _(e,t){var r;if(e.parent("ul").hasClass("cs-slides")){r=true}else{r=false}switch(t){case"ease-in":if(r){return isNaN(parseInt(e.data(t)))?n.slidesEaseIn:parseInt(e.data(t))}else{return isNaN(parseInt(e.data(t)))?n.elementsEaseIn:parseInt(e.data(t))}break;case"ease-out":if(r){return isNaN(parseInt(e.data(t)))?n.slidesEaseOut:parseInt(e.data(t))}else{return isNaN(parseInt(e.data(t)))?n.elementsEaseOut:parseInt(e.data(t))}break;case"delay":return isNaN(parseInt(e.data(t)))?n.elementsDelay:parseInt(e.data(t));break;case"time":if(r){return isNaN(parseInt(e.data(t)))?n.slidesTime:parseInt(e.data(t))}else{if(e.data(t)=="all"){return"all"}else{return isNaN(parseInt(e.data(t)))?n.itemsTime:parseInt(e.data(t))}}break;case"top":case"left":case"width":case"height":case"padding-top":case"padding-right":case"padding-bottom":case"padding-left":case"line-height":case"letter-spacing":case"font-size":return isNaN(parseFloat(e.data(t)))?0:parseFloat(e.data(t));break;case"in":case"out":return e.data(t);break;default:return false;break}}function D(e){return _(e,"time")+_(e,"ease-in")}function P(e,t){return t/100*e}function H(){q(f).done(function(){if(!l){f=O();N();H()}})}function B(e){var t=D(e);var n=r.find(i).find(".cs-progress-bar");j();n.animate({width:"100%"},{duration:t,step:function(e){p=e},easing:"linear"})}function j(){var e=r.find(i).find(".cs-progress-bar");p=0;e.stop();e.css({width:"0%"})}function F(){var t=r.find(i).find(".cs-navigation");var n=t.find("> .cs-slide-link");n.each(function(){var t=e(this);if(t.index()==f){t.addClass("cs-active")}else{t.removeClass("cs-active")}})}function I(e){var t=r.find(i).find(s).find(o+":eq("+f+")");var n=t.children();N();U(f,false);f=e;T()}function q(t){var n=r.find(i).find(s).find(o+":eq("+t+")");var u=new e.Deferred;B(n);F();R(t).done(function(){h=true});U(t,true).done(function(){u.resolve()});return u.promise()}function R(t){var n=r.find(i).find(s).find(o+":eq("+t+")");var u=n.children();var a=0;var f=new e.Deferred;in_dealy=false;z(n).done(function(){a++;if(a==2){f.resolve()}});u.each(function(){var t=e(this);X(t)}).promise().done(function(){a++;if(a==2){f.resolve()}});return f.promise()}function U(t,n){var u=r.find(i).find(s).find(o+":eq("+t+")");var a=u.children();var f=_(u,"time");var l=new e.Deferred;if(n){a.each(function(){var t=e(this);var n=_(t,"time");if(n!="all"){t.delay(n).queue(function(){e(this).dequeue();V(t)})}});u.delay(f).queue(function(){e(this).dequeue();h=false;l.resolve();W(u).done(function(){});a.each(function(){var t=e(this);var n=_(t,"time");if(n=="all"){t.delay(n).queue(function(){e(this).dequeue();V(t)})}})})}else{l.resolve();a.each(function(){var t=e(this);V(t)});W(u).done(function(){})}return l.promise()}function z(t){var n=_(t,"in");var r=_(t,"ease-in");var i=new e.Deferred;switch(n){case"fade":t.css({display:"block",top:0,left:0,opacity:0});t.animate({opacity:1},r,function(){i.resolve()});break;case"fadeLeft":t.css({display:"block",top:0,left:L(),opacity:0});t.animate({opacity:1,left:0},r,function(){i.resolve()});break;case"fadeRight":t.css({display:"block",top:0,left:-L(),opacity:0});t.animate({opacity:1,left:0},r,function(){i.resolve()});break;case"slideLeft":t.css({display:"block",top:0,left:L()});t.animate({left:0},r,function(){i.resolve()});break;case"slideRight":t.css({display:"block",top:0,left:-L()});t.animate({left:0},r,function(){i.resolve()});break;case"slideUp":t.css({display:"block",top:A(),left:0});t.animate({top:0},r,function(){i.resolve()});break;case"slideDown":t.css({display:"block",top:-A(),left:0});t.animate({top:0},r,function(){i.resolve()});break;default:t.css({display:"block",top:0,left:0});i.resolve();break}return i.promise()}function W(t){var n=_(t,"out");var r=_(t,"ease-out");var i=new e.Deferred;switch(n){case"fade":t.animate({opacity:0},r,function(){t.css({display:"none",opacity:1});i.resolve()});break;case"fadeLeft":t.animate({opacity:0,left:-L()},r,function(){t.css({display:"none",opacity:1,left:0});i.resolve()});break;case"fadeRight":t.animate({opacity:0,left:L()},r,function(){t.css({display:"none",opacity:1,left:0});i.resolve()});break;case"slideLeft":t.animate({left:-L()},r,function(){t.css({display:"none",left:0});i.resolve()});break;case"slideRight":t.animate({left:L()},r,function(){t.css({display:"none",left:0});i.resolve()});break;case"slideUp":t.animate({top:-A()},r,function(){t.css({display:"none",top:0});i.resolve()});break;case"slideDown":t.animate({top:A()},r,function(){t.css({display:"none",top:0});i.resolve()});break;default:t.css({display:"none"});i.resolve();break}return i.promise()}function X(e){var t=e.outerWidth();var n=e.outerHeight();var r=_(e,"in");var i=_(e,"ease-in");var s=_(e,"delay");var o=_(e,"top");var u=_(e,"left");switch(r){case"slideDown":e.delay(s).css({display:"block",top:-n,left:x(u+w(e).left)}).animate({top:x(o+w(e).top)},i);break;case"slideUp":e.delay(s).css({display:"block",top:A(),left:x(u+w(e).left)}).animate({top:x(o+w(e).top)},i);break;case"slideLeft":e.delay(s).css({display:"block",top:x(o+w(e).top),left:L()}).animate({left:x(u+w(e).left)},i);break;case"slideRight":e.delay(s).css({display:"block",top:x(o+w(e).top),left:-t}).animate({left:x(u+w(e).left)},i);break;case"fade":e.delay(s).css({display:"block",top:x(o+w(e).top),left:x(u+w(e).left),opacity:0}).animate({opacity:1},i);break;case"fadeDown":e.delay(s).css({display:"block",top:-n,left:x(u+w(e).left),opacity:0}).animate({top:x(o+w(e).top),opacity:1},i);break;case"fadeUp":e.delay(s).css({display:"block",top:A(),left:x(u+w(e).left),opacity:0}).animate({top:x(o+w(e).top),opacity:1},i);break;case"fadeLeft":e.delay(s).css({display:"block",top:x(o+w(e).top),left:L(),opacity:0}).animate({left:x(u+w(e).left),opacity:1},i);break;case"fadeRight":e.delay(s).css({display:"block",top:x(o+w(e).top),left:-t,opacity:0}).animate({left:x(u+w(e).left),opacity:1},i);break;case"fadeSmallDown":e.delay(s).css({display:"block",top:x(o+w(e).top-30),left:x(u+w(e).left),opacity:0}).animate({top:x(o+w(e).top),opacity:1},i);break;case"fadeSmallUp":e.delay(s).css({display:"block",top:x(o+w(e).top+30),left:x(u+w(e).left),opacity:0}).animate({top:x(o+w(e).top),opacity:1},i);break;case"fadeSmallLeft":e.delay(s).css({display:"block",top:x(o+w(e).top),left:x(u+w(e).left+30),opacity:0}).animate({left:x(u+w(e).left),opacity:1},i);break;case"fadeSmallRight":e.delay(s).css({display:"block",top:x(o+w(e).top),left:x(u+w(e).left-30),opacity:0}).animate({left:x(u+w(e).left),opacity:1},i);break}}function V(e){var t=e.outerWidth();var n=e.outerHeight();var r=_(e,"top");var i=_(e,"left");var s=_(e,"out");var o=_(e,"ease-out");switch(s){case"slideDown":e.animate({top:A()},o,function(){e.css({display:"none"})});break;case"slideUp":e.animate({top:-n},o,function(){e.css({display:"none"})});break;case"slideLeft":e.animate({left:-t},o,function(){e.css({display:"none"})});break;case"slideRight":e.animate({left:L()},o,function(){e.css({display:"none"})});break;case"fade":e.animate({opacity:0},o,function(){e.css({display:"none",opacity:1})});break;case"fadeDown":e.animate({top:A(),opacity:0},o,function(){e.css({display:"none",opacity:1})});break;case"fadeUp":e.animate({top:-n,opacity:0},o,function(){e.css({display:"none",opacity:1})});break;case"fadeLeft":e.animate({left:-t,opacity:0},o,function(){e.css({display:"none",opacity:1})});break;case"fadeRight":e.animate({left:L(),opacity:0},o,function(){e.css({display:"none",opacity:1})});break;case"fadeSmallDown":e.animate({top:x(_(e,"top")+w(e).top+30),opacity:0},o,function(){e.css({display:"none",opacity:1})});break;case"fadeSmallUp":e.animate({top:x(_(e,"top")+w(e).top-30),opacity:0},o,function(){e.css({display:"none",opacity:1})});break;case"fadeSmallLeft":e.animate({left:x(_(e,"left")+w(e).left-30),opacity:0},o,function(){e.css({display:"none",opacity:1})});break;case"fadeSmallRight":e.animate({left:x(_(e,"left")+w(e).left+30),opacity:0},o,function(){e.css({display:"none",opacity:1})});break}}var r=e(t);var i="div.crellyslider";var s="ul.cs-slides";var o="li.cs-slide";var u="> *";var a;var f=0;var l=false,c=false;var h=false;var p=0;var d=1;v()};e.fn.crellySlider=function(n){var r=e.extend({layout:"fixed",responsive:true,startWidth:1170,startHeight:500,pauseOnHover:true,automaticSlide:true,showControls:true,showNavigation:true,showProgressBar:true,slidesTime:3e3,elementsDelay:0,elementsTime:"all",slidesEaseIn:300,elementsEaseIn:300,slidesEaseOut:300,elementsEaseOut:300},n);return this.each(function(){new t(this,r)})}})(jQuery)
readme.txt ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Crelly Slider ===
2
+ Contributors: fabiorino
3
+ Donate link: http://fabiorino1.altervista.org/projects/crellyslider/contribute-and-support/
4
+ Tags: slider, slides, animations, drag & drop, drag and drop, layers, elements
5
+ Requires at least: 3.0.1
6
+ Tested up to: 3.9
7
+ Stable tag: 0.6.5
8
+ License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
+
11
+ The first FREE WP Slider with elements animations
12
+
13
+ == Description ==
14
+
15
+ Crelly Slider is a Free / Open Source WordPress slider with a powerful Drag & Drop Builder. You can add Texts and Images using animations and transitions. It's perfect to display your creative content in posts and pages. With it's tons of features, Crelly Slider is the best free solution for your online WebSite.
16
+ <br />
17
+ <br />
18
+ <a href="http://fabiorino1.altervista.org/projects/crellyslider/">Official WebSite (with live demo)</a>
19
+ <br />
20
+ <a href="http://fabiorino1.altervista.org/projects/crellyslider/documentation">Documentation</a>
21
+
22
+ == Installation ==
23
+
24
+ Download this plugin directly from your Wordpress Admin Page.
25
+ <br />
26
+ Click Install.
27
+ <br />
28
+ Click Activate.
29
+ <br />
30
+ You can find the documentation <a href="http://fabiorino1.altervista.org/projects/crellyslider/documentation/">here</a>.
31
+
32
+ == Changelog ==
33
+
34
+ = 0.6.5 =
35
+ * Initial release.
wordpress/admin.php ADDED
@@ -0,0 +1,183 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class CrellySliderAdmin {
4
+
5
+ // Creates the menu and the admin panel
6
+ public static function showSettings() {
7
+ add_action('admin_menu', 'CrellySliderAdmin::pluginMenus');
8
+ }
9
+
10
+ public static function pluginMenus() {
11
+ add_menu_page('Crelly Slider', 'Crelly Slider', 'manage_options', 'crellyslider', 'CrellySliderAdmin::displayPage');
12
+ //add_submenu_page('crellyslider', 'View Sliders', 'View Sliders', 'manage_options', 'crellyslider', 'CrellySliderAdmin::displayHome');
13
+ //add_submenu_page('crellyslider', 'Add Slider', 'Add Slider', 'manage_options', 'cs_slider', 'CrellySliderAdmin::displaySlider');
14
+ }
15
+
16
+ // Go to the correct page
17
+ public static function displayPage() {
18
+ if(!isset($_GET['view'])) {
19
+ $index = 'home';
20
+ }
21
+ else {
22
+ $index = $_GET['view'];
23
+ }
24
+
25
+ global $wpdb;
26
+
27
+ // Check what the user is doing: is it adding or modifying a slider?
28
+ if(isset($_GET['view']) && $_GET['view'] == 'add') {
29
+ $edit = false;
30
+ $id = NULL;
31
+ }
32
+ else {
33
+ $edit = true;
34
+ $id = isset($_GET['id']) ? $_GET['id'] : NULL;
35
+ if(isset($id))
36
+ $slider = $wpdb->get_row('SELECT * FROM ' . $wpdb->prefix . 'crellyslider_sliders WHERE id = ' . $id);
37
+ }
38
+
39
+ ?>
40
+ <div
41
+ class="wrap cs-admin"
42
+ <?php if($edit && isset($slider)): ?>
43
+ style="width: <?php echo $slider->startWidth; ?>px;"
44
+ <?php else: ?>
45
+ style="width: 1170px;"
46
+ <?php endif; ?>
47
+ >
48
+
49
+ <noscript class="cs-no-js">
50
+ <div class="cs-message cs-message-error" style="display: block;"><?php _e('JavaScript must be enabled to view this page correctly.', 'crellyslider'); ?></div>
51
+ </noscript>
52
+
53
+ <div class="cs-message cs-message-ok"><?php _e('Operation completed successfully.', 'crellyslider'); ?></div>
54
+ <div class="cs-message cs-message-error"><?php _e('Something went wrong.', 'crellyslider'); ?></div>
55
+
56
+ <h2 class="cs-logo" title="Crelly Slider">
57
+ <a href="?page=crellyslider">
58
+ <img src="<?php echo CS_PLUGIN_URL . '/wordpress/images/logo2.png' ?>" alt="Crelly Slider" />
59
+ </a>
60
+ </h2>
61
+
62
+ <br />
63
+ <br />
64
+
65
+ <?php
66
+
67
+ switch($index) {
68
+ case 'home':
69
+ self::displayHome();
70
+ break;
71
+
72
+ case 'add':
73
+ case 'edit':
74
+ self::displaySlider();
75
+ break;
76
+ }
77
+
78
+ ?>
79
+
80
+ </div>
81
+ <?php
82
+ }
83
+
84
+ // Displays the main plugin page
85
+ public static function displayHome() {
86
+ ?>
87
+ <div class="cs-home">
88
+ <?php require_once CS_PATH . 'wordpress/home.php'; ?>
89
+ </div>
90
+ <?php
91
+ }
92
+
93
+ // Displays the slider page in wich you can add or modify sliders, slides and elements
94
+ public static function displaySlider() {
95
+ global $wpdb;
96
+
97
+ // Check what the user is doing: is it adding or modifying a slider?
98
+ if($_GET['view'] == 'add') {
99
+ $edit = false;
100
+ $id = NULL; //This variable will be used in other files. It contains the ID of the SLIDER that the user is editing
101
+ }
102
+ else {
103
+ $edit = true;
104
+ $id = isset($_GET['id']) ? $_GET['id'] : NULL;
105
+ $slider = $wpdb->get_row('SELECT * FROM ' . $wpdb->prefix . 'crellyslider_sliders WHERE id = ' . $id);
106
+ $slides = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'crellyslider_slides WHERE slider_parent = ' . $id . ' ORDER BY position');
107
+ // The elements variable are updated in the foreachh() loop directly in the "slides.php" file
108
+ }
109
+ ?>
110
+
111
+ <div class="cs-slider <?php echo $edit ? 'cs-edit-slider' : 'cs-add-slider' ?>">
112
+ <div class="cs-tabs cs-tabs-fade cs-tabs-switch-interface">
113
+ <?php if($edit): ?>
114
+ <ul>
115
+
116
+ <li>
117
+ <span class="cs-icon icon-settings"></span>
118
+ <a href="#cs-slider-settings"><?php _e('Slider Settings', 'crellyslider'); ?></a>
119
+ </li>
120
+ <li>
121
+ <span class="cs-icon icon-edit"></span>
122
+ <a href="#cs-slides"><?php _e('Edit Slides', 'crellyslider'); ?></a>
123
+ </li>
124
+ </ul>
125
+
126
+ <br />
127
+ <br />
128
+ <br />
129
+ <?php endif; ?>
130
+
131
+ <?php require_once CS_PATH . 'wordpress/slider.php'; ?>
132
+ <?php
133
+ if($edit) {
134
+ require_once CS_PATH . 'wordpress/elements.php';
135
+ require_once CS_PATH . 'wordpress/slides.php';
136
+ }
137
+ ?>
138
+ </div>
139
+
140
+ <br />
141
+
142
+ <a class="cs-button cs-is-primary cs-save-settings" data-id="<?php echo $id; ?>" href="#"><?php _e('Save Settings', 'crellyslider'); ?></a>
143
+
144
+ </div>
145
+
146
+ <?php
147
+ }
148
+
149
+ // Include CSS and JavaScript
150
+ public static function enqueues() {
151
+ wp_enqueue_script('jquery-ui-draggable');
152
+ wp_enqueue_script('jquery-ui-tabs');
153
+ wp_enqueue_script('jquery-ui-sortable');
154
+ wp_enqueue_style('wp-color-picker');
155
+ wp_enqueue_media();
156
+
157
+ wp_register_script('crellyslider-admin', CS_PLUGIN_URL . '/wordpress/js/admin.js', array('wp-color-picker'), CS_VERSION, true);
158
+
159
+ self::localization();
160
+
161
+ wp_enqueue_style('crellyslider-admin', CS_PLUGIN_URL . '/wordpress/css/admin.css', array(), CS_VERSION);
162
+ wp_enqueue_script('crellyslider-admin');
163
+ }
164
+
165
+ public static function setEnqueues() {
166
+ add_action('admin_enqueue_scripts', 'CrellySliderAdmin::enqueues');
167
+ }
168
+
169
+ public static function localization() {
170
+ // Here the translations for the admin.js file
171
+ $crellyslider_translations = array(
172
+ 'slide' => __('Slide', 'crellyslider'),
173
+ 'slide_delete_confirm' => __('The slide will be deleted. Are you sure?', 'crellyslider'),
174
+ 'text_element_default_html' => __('Text element', 'crellyslider'),
175
+ 'slide_live_preview' => __('Live preview', 'crellyslider'),
176
+ 'slide_stop_preview' => __('Stop preview', 'crellyslider'),
177
+ );
178
+ wp_localize_script('crellyslider-admin', 'crellyslider_translations', $crellyslider_translations);
179
+ }
180
+
181
+ }
182
+
183
+ ?>
wordpress/ajax.php ADDED
@@ -0,0 +1,265 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /********************/
3
+ /** AJAX CALLBACKS **/
4
+ /********************/
5
+
6
+ // Add slider
7
+ add_action('wp_ajax_crellyslider_addSlider', 'crellyslider_addSlider_callback');
8
+ function crellyslider_addSlider_callback() {
9
+ global $wpdb;
10
+ $options = $_POST['datas'];
11
+ $table_name = $wpdb->prefix . 'crellyslider_sliders';
12
+
13
+ $output = true;
14
+ $output = $wpdb->insert(
15
+ $table_name,
16
+ array(
17
+ 'name' => $options['name'],
18
+ 'alias' => $options['alias'],
19
+ 'layout' => $options['layout'],
20
+ 'responsive' => $options['responsive'],
21
+ 'startWidth' => $options['startWidth'],
22
+ 'startHeight' => $options['startHeight'],
23
+ 'automaticSlide' => $options['automaticSlide'],
24
+ 'showControls' => $options['showControls'],
25
+ 'showNavigation' => $options['showNavigation'],
26
+ 'showProgressBar' => $options['showProgressBar'],
27
+ 'pauseOnHover' => $options['pauseOnHover']
28
+ ),
29
+ array(
30
+ '%s',
31
+ '%s',
32
+ '%s',
33
+ '%d',
34
+ '%d',
35
+ '%d',
36
+ '%d',
37
+ '%d',
38
+ '%d',
39
+ '%d',
40
+ '%d'
41
+ )
42
+ );
43
+
44
+ // Returning
45
+ $output = json_encode($wpdb->insert_id);
46
+ if(is_array($output)) print_r($output);
47
+ else echo $output;
48
+
49
+ die();
50
+ }
51
+
52
+ // Edit slider
53
+ add_action('wp_ajax_crellyslider_editSlider', 'crellyslider_editSlider_callback');
54
+ function crellyslider_editSlider_callback() {
55
+ global $wpdb;
56
+ $options = $_POST['datas'];
57
+ $table_name = $wpdb->prefix . 'crellyslider_sliders';
58
+
59
+ $output = $wpdb->update(
60
+ $table_name,
61
+ array(
62
+ 'name' => $options['name'],
63
+ 'alias' => $options['alias'],
64
+ 'layout' => $options['layout'],
65
+ 'responsive' => $options['responsive'],
66
+ 'startWidth' => $options['startWidth'],
67
+ 'startHeight' => $options['startHeight'],
68
+ 'automaticSlide' => $options['automaticSlide'],
69
+ 'showControls' => $options['showControls'],
70
+ 'showNavigation' => $options['showNavigation'],
71
+ 'showProgressBar' => $options['showProgressBar'],
72
+ 'pauseOnHover' => $options['pauseOnHover'],
73
+ ),
74
+ array('id' => $options['id']),
75
+ array(
76
+ '%s',
77
+ '%s',
78
+ '%s',
79
+ '%d',
80
+ '%d',
81
+ '%d',
82
+ '%d',
83
+ '%d',
84
+ '%d',
85
+ '%d',
86
+ '%d',
87
+ ),
88
+ array('%d')
89
+ );
90
+
91
+ // Returning
92
+ $output = json_encode($output);
93
+ if(is_array($output)) print_r($output);
94
+ else echo $output;
95
+
96
+ die();
97
+ }
98
+
99
+ // Edit slides. Receives an array with all the slides options. Delete al the old slides then recreate them
100
+ add_action('wp_ajax_crellyslider_editSlides', 'crellyslider_editSlides_callback');
101
+ function crellyslider_editSlides_callback() {
102
+ global $wpdb;
103
+ $options = $_POST['datas'];
104
+ $table_name = $wpdb->prefix . 'crellyslider_slides';
105
+
106
+ // Remove all the old slides
107
+ $wpdb->delete($table_name, array('slider_parent' => $options[0]['slider_parent']), array('%d'));
108
+
109
+ // Insert row per row
110
+ $output = true;
111
+ foreach($options as $option) {
112
+ $output = $wpdb->insert(
113
+ $table_name,
114
+ array(
115
+ 'slider_parent' => $option['slider_parent'],
116
+ 'position' => $option['position'],
117
+ 'background_type_image' => $option['background_type_image'],
118
+ 'background_type_color' => $option['background_type_color'],
119
+ 'background_propriety_position_x' => $option['background_propriety_position_x'],
120
+ 'background_propriety_position_y' => $option['background_propriety_position_y'],
121
+ 'background_repeat' => $option['background_repeat'],
122
+ 'background_propriety_size' => $option['background_propriety_size'],
123
+ 'data_in' => $option['data_in'],
124
+ 'data_out' => $option['data_out'],
125
+ 'data_time' => $option['data_time'],
126
+ 'data_easeIn' => $option['data_easeIn'],
127
+ 'data_easeOut' => $option['data_easeOut'],
128
+ 'custom_css' => stripslashes_deep($option['custom_css']),
129
+ ),
130
+ array(
131
+ '%d',
132
+ '%d',
133
+ '%s',
134
+ '%s',
135
+ '%s',
136
+ '%s',
137
+ '%s',
138
+ '%s',
139
+ '%s',
140
+ '%s',
141
+ '%d',
142
+ '%d',
143
+ '%d',
144
+ '%s',
145
+ )
146
+ );
147
+
148
+ if($output === false) {
149
+ break;
150
+ }
151
+ }
152
+
153
+ // Returning
154
+ $output = json_encode($output);
155
+ if(is_array($output)) print_r($output);
156
+ else echo $output;
157
+
158
+ die();
159
+ }
160
+
161
+ // Edit elements. Receives an array with all the elements options. Delete al the old elements then recreate them
162
+ add_action('wp_ajax_crellyslider_editElements', 'crellyslider_editElements_callback');
163
+ function crellyslider_editElements_callback() {
164
+ global $wpdb;
165
+ $options = $_POST['datas'];
166
+ $table_name = $wpdb->prefix . 'crellyslider_elements';
167
+
168
+ // Remove all the old elements
169
+ $wpdb->delete($table_name, array('slider_parent' => $options[0]['slider_parent']), array('%d'));
170
+
171
+ // Insert row per row
172
+ $output = true;
173
+ foreach($options as $option) {
174
+ $output = $wpdb->insert(
175
+ $table_name,
176
+ array(
177
+ 'slider_parent' => $option['slider_parent'],
178
+ 'slide_parent' => $option['slide_parent'],
179
+ 'position' => $option['position'],
180
+ 'type' => $option['type'],
181
+ 'inner_html' => $option['inner_html'],
182
+ 'image_src' => $option['image_src'],
183
+ 'image_alt' => $option['image_alt'],
184
+ 'data_left' => $option['data_left'],
185
+ 'data_top' => $option['data_top'],
186
+ 'z_index' => $option['z_index'],
187
+ 'data_delay' => $option['data_delay'],
188
+ 'data_time' => $option['data_time'],
189
+ 'data_in' => $option['data_in'],
190
+ 'data_out' => $option['data_out'],
191
+ 'data_easeIn' => $option['data_easeIn'],
192
+ 'data_easeOut' => $option['data_easeOut'],
193
+ 'custom_css' => $option['custom_css'],
194
+ ),
195
+ array(
196
+ '%d',
197
+ '%d',
198
+ '%d',
199
+ '%s',
200
+ '%s',
201
+ '%s',
202
+ '%s',
203
+ '%d',
204
+ '%d',
205
+ '%d',
206
+ '%d',
207
+ '%s',
208
+ '%s',
209
+ '%s',
210
+ '%d',
211
+ '%d',
212
+ '%s',
213
+ )
214
+ );
215
+
216
+ if($output === false) {
217
+ break;
218
+ }
219
+ }
220
+
221
+ // Returning
222
+ $output = json_encode($output);
223
+ if(is_array($output)) print_r($output);
224
+ else echo $output;
225
+
226
+ die();
227
+ }
228
+
229
+ // Delete slider and its content
230
+ add_action('wp_ajax_crellyslider_deleteSlider', 'crellyslider_deleteSlider_callback');
231
+ function crellyslider_deleteSlider_callback() {
232
+ global $wpdb;
233
+ $options = $_POST['datas'];
234
+
235
+ $real_output = true;
236
+
237
+ // Delete slider
238
+ $table_name = $wpdb->prefix . 'crellyslider_sliders';
239
+ $output = $wpdb->delete($table_name, array('id' => $options['id']), array('%d'));
240
+ if($output === false) {
241
+ $real_output = false;
242
+ }
243
+
244
+ // Delete slides
245
+ $table_name = $wpdb->prefix . 'crellyslider_slides';
246
+ $output = $wpdb->delete($table_name, array('slider_parent' => $options['id']), array('%d'));
247
+ if($output === false) {
248
+ $real_output = false;
249
+ }
250
+
251
+ // Delete elements
252
+ $table_name = $wpdb->prefix . 'crellyslider_elements';
253
+ $output = $wpdb->delete($table_name, array('slider_parent' => $options['id']), array('%d'));
254
+ if($output === false) {
255
+ $real_output = false;
256
+ }
257
+
258
+ // Returning
259
+ $real_output = json_encode($real_output);
260
+ if(is_array($real_output)) print_r($real_output);
261
+ else echo $real_output;
262
+
263
+ die();
264
+ }
265
+ ?>
wordpress/common.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class CrellySliderCommon {
4
+
5
+ // Include CSS and JavaScript
6
+ public static function enqueues() {
7
+ wp_enqueue_script('jquery');
8
+ wp_enqueue_script('jquery-ui-core');
9
+ wp_enqueue_style('crellyslider', CS_PLUGIN_URL . '/css/crellyslider.css', array(), CS_VERSION);
10
+ wp_enqueue_script('jquery.crellyslider.min', CS_PLUGIN_URL . '/js/jquery.crellyslider.min.js', array(), CS_VERSION, false);
11
+ }
12
+
13
+ public static function setEnqueues() {
14
+ add_action('wp_enqueue_scripts', 'CrellySliderCommon::enqueues');
15
+ add_action('admin_enqueue_scripts', 'CrellySliderCommon::enqueues');
16
+ }
17
+
18
+ }
19
+
20
+ ?>
wordpress/css/admin.css ADDED
@@ -0,0 +1,443 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .cs-admin {
2
+ margin: 10px auto 0 auto;
3
+ padding-right: 20px;
4
+ min-width: 960px;
5
+ }
6
+
7
+ .cs-admin a {
8
+ text-decoration: none;
9
+ outline: none;
10
+ cursor: pointer;
11
+ }
12
+
13
+ .cs-admin .cs-close {
14
+ display: inline-block;
15
+ width: 13px;
16
+ height: 13px;
17
+ background-image: url('../images/close.png');
18
+ cursor: pointer;
19
+ }
20
+
21
+ .cs-admin .cs-button {
22
+ position: relative;
23
+ display: inline-block;
24
+ -webkit-box-sizing: border-box;
25
+ -moz-box-sizing: border-box;
26
+ box-sizing: border-box;
27
+ margin: 0;
28
+ padding: 5px 14px;
29
+ border: 1px solid transparent;
30
+ border-radius: 2px;
31
+ background-color: transparent;
32
+ color: inherit;
33
+ vertical-align: middle;
34
+ text-align: center;
35
+ text-decoration: none;
36
+ text-transform: none;
37
+ white-space: normal;
38
+ font-weight: 400;
39
+ font-style: normal;
40
+ font-size: 13px;
41
+ line-height: 20px;
42
+ cursor: pointer;
43
+ -webkit-transition: all .15s ease;
44
+ transition: all .15s ease;
45
+ -webkit-user-select: none;
46
+ -moz-user-select: none;
47
+ -ms-user-select: none;
48
+ user-select: none;
49
+ -webkit-appearance: none;
50
+ -webkit-font-smoothing: antialiased;
51
+ text-rendering: optimizeLegibility;
52
+ }
53
+
54
+ .cs-admin .cs-button:hover,.cs-button:focus {
55
+ outline: 0;
56
+ text-decoration: none;
57
+ }
58
+
59
+ .cs-admin .cs-button:active,.cs-button.cs-is-active {
60
+ -webkit-box-shadow: none;
61
+ box-shadow: none;
62
+ text-decoration: none;
63
+ }
64
+
65
+ .cs-admin .cs-button[disabled],
66
+ .cs-admin .cs-button.cs-is-disabled {
67
+ opacity: 0.7;
68
+ filter: alpha(opacity=70);
69
+ cursor: not-allowed;
70
+ pointer-events: none;
71
+ }
72
+
73
+ .cs-admin .cs-button.cs-is-default {
74
+ border-color: #656d78;
75
+ background-color: #f5f7fa;
76
+ color: #434a54;
77
+ }
78
+
79
+ .cs-admin .cs-button.cs-is-default:hover,.cs-button.cs-is-default:focus {
80
+ border-color: #737c89;
81
+ background-color: #FFF;
82
+ }
83
+
84
+ .cs-admin .cs-button.cs-is-default:active,
85
+ .cs-admin .cs-button.cs-is-default.cs-is-active {
86
+ border-color: #575e67;
87
+ background-color: #e1e7f0;
88
+ }
89
+
90
+ .cs-admin .cs-button.cs-is-primary {
91
+ border-color: #2494be;
92
+ background-color: #3bafda;
93
+ color: #FFF;
94
+ }
95
+
96
+ .cs-admin .cs-button.cs-is-primary:hover,
97
+ .cs-admin .cs-button.cs-is-primary:focus {
98
+ border-color: #2aa8d7;
99
+ background-color: #55badf;
100
+ }
101
+
102
+ .cs-admin .cs-button.cs-is-primary:active,
103
+ .cs-admin .cs-button.cs-is-primary.cs-is-active {
104
+ border-color: #1f80a4;
105
+ background-color: #27a2cf;
106
+ }
107
+
108
+ .cs-admin .cs-button.cs-is-secondary {
109
+ border-color: #7652d1;
110
+ background-color: #967adc;
111
+ color: #FFF;
112
+ }
113
+
114
+ .cs-admin .cs-button.cs-is-secondary:hover,
115
+ .cs-admin .cs-button.cs-is-secondary:focus {
116
+ border-color: #896ad7;
117
+ background-color: #a992e2;
118
+ }
119
+
120
+ .cs-admin .cs-button.cs-is-secondary:active,
121
+ .cs-admin .cs-button.cs-is-secondary.cs-is-active {
122
+ border-color: #633acb;
123
+ background-color: #8362d6;
124
+ }
125
+
126
+ .cs-admin .cs-button.cs-is-success {
127
+ border-color: #72a53b;
128
+ background-color: #8cc152;
129
+ color: #FFF;
130
+ }
131
+
132
+ .cs-admin .cs-button.cs-is-success:hover,
133
+ .cs-admin .cs-button.cs-is-success:focus {
134
+ border-color: #82bc43;
135
+ background-color: #9bc969;
136
+ }
137
+
138
+ .cs-admin .cs-button.cs-is-success:active,
139
+ .cs-admin .cs-button.cs-is-success.cs-is-active {
140
+ border-color: #628e33;
141
+ background-color: #7db440;
142
+ }
143
+
144
+ .cs-admin .cs-button.cs-is-warning {
145
+ border-color: #f4a911;
146
+ background-color: #f6bb42;
147
+ color: #FFF;
148
+ }
149
+
150
+ .cs-admin .cs-button.cs-is-warning:hover,
151
+ .cs-admin .cs-button.cs-is-warning:focus {
152
+ border-color: #f5b42e;
153
+ background-color: #f7c65f;
154
+ }
155
+
156
+ .cs-admin .cs-button.cs-is-warning:active,
157
+ .cs-admin .cs-button.cs-is-warning.cs-is-active {
158
+ border-color: #dc970a;
159
+ background-color: #f5b025;
160
+ }
161
+
162
+ .cs-admin .cs-button.cs-is-danger {
163
+ border-color: #c42737;
164
+ background-color: #da4453;
165
+ color: #FFF;
166
+ }
167
+
168
+ .cs-admin .cs-button.cs-is-danger:hover,
169
+ .cs-admin .cs-button.cs-is-danger:focus {
170
+ border-color: #d63344;
171
+ background-color: #df5e6a;
172
+ }
173
+
174
+ .cs-admin .cs-button.cs-is-danger:active,
175
+ .cs-admin .cs-button.cs-is-danger.cs-is-active {
176
+ border-color: #aa2230;
177
+ background-color: #d52a3c;
178
+ }
179
+
180
+ .cs-admin .cs-button.cs-is-inverse {
181
+ border-color: #434a54;
182
+ background-color: #656d78;
183
+ color: #FFF;
184
+ }
185
+
186
+ .cs-admin .cs-button.cs-is-inverse:hover,
187
+ .cs-admin .cs-button.cs-is-inverse:focus {
188
+ border-color: #515965;
189
+ background-color: #737c89;
190
+ }
191
+
192
+ .cs-admin .cs-button.cs-is-inverse:active,
193
+ .cs-admin .cs-button.cs-is-inverse.cs-is-active {
194
+ border-color: #353b43;
195
+ background-color: #575e67;
196
+ }
197
+
198
+ .cs-admin .cs-table {
199
+ overflow:hidden;
200
+ border:1px solid #d3d3d3;
201
+ background:#fefefe;
202
+ -moz-border-radius:5px;
203
+ -webkit-border-radius:5px;
204
+ border-radius:5px;
205
+ width: 100%;
206
+ border-spacing: 0px;
207
+ border-collapse: separate;
208
+ }
209
+
210
+ .cs-admin .cs-table th,
211
+ .cs-admin .cs-table td {
212
+ padding:15px 28px;
213
+ }
214
+
215
+ .cs-admin .cs-table th {
216
+ padding-top: 15px;
217
+ text-shadow: 1px 1px 1px #fff;
218
+ background: #e8eaeb;
219
+ }
220
+
221
+ .cs-admin .cs-table td {
222
+ border-top: 1px solid #e0e0e0;
223
+ border-right: 1px solid #e0e0e0;
224
+ }
225
+ .cs-admin .cs-table td:last-child {
226
+ border-right: none;
227
+ }
228
+
229
+ .cs-admin .cs-table tr.odd-row td {
230
+ background: #f6f6f6;
231
+ }
232
+
233
+ .cs-admin .cs-table td.first,
234
+ .cs-admin .cs-table th.first {
235
+ text-align: left;
236
+ }
237
+
238
+ .cs-admin .cs-table td.last {
239
+ border-right: none;
240
+ }
241
+
242
+ .cs-admin .cs-table tr.odd-row td {
243
+ background: -moz-linear-gradient(100% 25% 90deg, #f6f6f6, #f1f1f1);
244
+ background: -webkit-gradient(linear, 0% 0%, 0% 25%, from(#f1f1f1), to(#f6f6f6));
245
+ }
246
+
247
+ .cs-admin .cs-table th {
248
+ background: -moz-linear-gradient(100% 20% 90deg, #e8eaeb, #ededed);
249
+ background: -webkit-gradient(linear, 0% 0%, 0% 20%, from(#ededed), to(#e8eaeb));
250
+ }
251
+
252
+ .cs-admin .cs-table tr:first-child th.first {
253
+ -moz-border-radius-topleft: 5px;
254
+ -webkit-border-top-left-radius: 5px;
255
+ }
256
+
257
+ .cs-admin .cs-table tr:first-child th.last {
258
+ -moz-border-radius-topright: 5px;
259
+ -webkit-border-top-right-radius: 5px;
260
+ }
261
+
262
+ .cs-admin .cs-table tr:last-child td.first {
263
+ -moz-border-radius-bottomleft: 5px;
264
+ -webkit-border-bottom-left-radius: 5px;
265
+ }
266
+
267
+ .cs-admin .cs-table tr:last-child td.last {
268
+ -moz-border-radius-bottomright: 5px;
269
+ -webkit-border-bottom-right-radius: 5px;
270
+ }
271
+
272
+ .cs-admin .cs-table .cs-table-header {
273
+ text-align: center;
274
+ font-weight: bold;
275
+ }
276
+
277
+ .cs-admin #cs-slider-name {
278
+ width: 100%;
279
+ padding: 10px;
280
+ }
281
+
282
+ .cs-admin .cs-message {
283
+ display: none;
284
+ padding: 15px;
285
+ border-radius: 4px;
286
+ border: solid 1px;
287
+ margin-top: 15px;
288
+ margin-bottom: 25px;
289
+ }
290
+
291
+ .cs-admin .cs-message.cs-message-ok {
292
+ background-color: #dff0d8;
293
+ border-color: #72a53b;
294
+ color: #3c763d;
295
+ }
296
+
297
+ .cs-admin .cs-message.cs-message-error {
298
+ background-color: #f2dede;
299
+ border-color: #c42737;
300
+ color: #a94442;
301
+ }
302
+
303
+ .cs-admin .cs-slides .cs-slide-build {
304
+ border: solid 1px #ddd;
305
+ }
306
+
307
+ .cs-admin .cs-tabs .ui-tabs-nav {
308
+ width: auto;
309
+ }
310
+
311
+ .cs-admin .cs-tabs > ul {
312
+ margin: 0;
313
+ }
314
+
315
+ .cs-admin .cs-tabs .ui-tabs-nav li {
316
+ float: left;
317
+ margin-bottom: 0;
318
+ padding-right: 20px;
319
+ margin-right: 20px;
320
+ border-right: solid 1px #ddd;
321
+ text-transform: uppercase;
322
+ font-weight: bold;
323
+ outline: none;
324
+ }
325
+
326
+ .cs-admin .cs-tabs.cs-tabs-border .ui-tabs-nav li {
327
+ border-top: solid 1px #ddd;
328
+ margin-right: 0;
329
+ padding-top: 10px;
330
+ padding-bottom: 10px;
331
+ padding-left: 20px;
332
+ }
333
+
334
+ .cs-admin .cs-tabs .ui-tabs-nav li a {
335
+ margin-left: 5px;
336
+ }
337
+
338
+ .cs-admin .cs-tabs .ui-tabs-nav li .cs-close {
339
+ margin-left: 10px;
340
+ vertical-align: middle;
341
+ }
342
+
343
+ .cs-admin .cs-tabs.cs-tabs-border .ui-tabs-nav li:first-child {
344
+ border-left: solid 1px #ddd;
345
+ }
346
+
347
+ .cs-admin .cs-tabs.cs-tabs-border .ui-tabs-nav li:last-child {
348
+ border-right: solid 1px #ddd;
349
+ }
350
+
351
+ .cs-admin .cs-tabs .ui-tabs-nav li:last-child {
352
+ border-right: none;
353
+ }
354
+
355
+ .cs-admin .cs-icon {
356
+ display: inline-block;
357
+ width: 13px;
358
+ height: 13px;
359
+ }
360
+
361
+ .cs-admin .cs-icon.icon-settings {
362
+ background-image: url('../images/settings.png');
363
+ }
364
+ .cs-admin .cs-icon.icon-edit {
365
+ background-image: url('../images/edit.png');
366
+ }
367
+
368
+ .cs-admin .cs-slide-build {
369
+ margin: 0 auto;
370
+ }
371
+
372
+ .cs-admin .cs-slide,
373
+ .cs-admin .cs-void-slide {
374
+ display: none;
375
+ }
376
+
377
+ .cs-admin #cs-slides .cs-slides-list .cs-slide-settings-list form {
378
+ display: inline;
379
+ }
380
+
381
+ .cs-admin #cs-slides .cs-slides-list .cs-slide-settings-list .cs-slide-background_type_color-picker-input {
382
+ display: none !important;
383
+ }
384
+
385
+ .cs-admin .cs-slide .cs-slide-editing-area{
386
+ position: relative;
387
+ background-color: #fff;
388
+ -moz-border-radius: 4px;
389
+ border-radius: 4px;
390
+ margin: 0 auto;
391
+ }
392
+ .cs-admin .cs-slide .cs-slide-editing-area:before,
393
+ .cs-admin .cs-slide .cs-slide-editing-area:after{
394
+ z-index: -1;
395
+ position: absolute;
396
+ content: "";
397
+ bottom: 15px;
398
+ left: 10px;
399
+ width: 50%;
400
+ top: 80%;
401
+ max-width:300px;
402
+ background: rgba(0, 0, 0, 0.7);
403
+ -webkit-box-shadow: 0 15px 10px rgba(0,0,0, 0.4);
404
+ -moz-box-shadow: 0 15px 10px rgba(0, 0, 0, 0.4);
405
+ box-shadow: 0 15px 10px rgba(0, 0, 0, 0.4);
406
+ -webkit-transform: rotate(-3deg);
407
+ -moz-transform: rotate(-3deg);
408
+ -o-transform: rotate(-3deg);
409
+ -ms-transform: rotate(-3deg);
410
+ transform: rotate(-3deg);
411
+ }
412
+ .cs-admin .cs-slide .cs-slide-editing-area:after{
413
+ -webkit-transform: rotate(3deg);
414
+ -moz-transform: rotate(3deg);
415
+ -o-transform: rotate(3deg);
416
+ -ms-transform: rotate(3deg);
417
+ transform: rotate(3deg);
418
+ right: 10px;
419
+ left: auto;
420
+ }
421
+
422
+ .cs-admin .cs-slide .cs-elements .cs-elements-actions {
423
+ text-align: center;
424
+ }
425
+
426
+ .cs-admin .cs-slide .cs-elements .cs-void-element-settings {
427
+ display: none;
428
+ }
429
+
430
+ .cs-admin .cs-slide .cs-slide-editing-area .cs-element {
431
+ position: absolute;
432
+ margin: 0;
433
+ padding: 0;
434
+ left: 0;
435
+ top: 0;
436
+ cursor: move;
437
+ }
438
+
439
+ .cs-admin .cs-slide .cs-slide-editing-area .cs-element.active {
440
+ -webkit-box-shadow: 0px 0px 0px 2px rgba(50, 50, 50, 0.75);
441
+ -moz-box-shadow: 0px 0px 0px 2px rgba(50, 50, 50, 0.75);
442
+ box-shadow: 0px 0px 0px 2px rgba(50, 50, 50, 0.75);
443
+ }
wordpress/elements.php ADDED
@@ -0,0 +1,514 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ function crellyslider_printElements($edit, $slider, $slide, $elements) {
3
+ ?>
4
+ <div class="cs-elements">
5
+
6
+ <div
7
+ class="cs-slide-editing-area"
8
+ <?php if($edit && $slide): ?>
9
+ <?php
10
+ if($slide->background_type_image != 'none') {
11
+ echo 'data-background-image-src="' . $slide->background_type_image . '"';
12
+ }
13
+ ?>
14
+ style="
15
+ width: <?php echo $slider->startWidth; ?>px;
16
+ height: <?php echo $slider->startHeight; ?>px;
17
+ background-image: url('<?php echo $slide->background_type_image; ?>');
18
+ background-color: <?php echo $slide->background_type_color == 'transparent' ? 'rgb(255, 255, 255)' : $slide->background_type_color; ?>;
19
+ background-position-x: <?php echo $slide->background_propriety_position_x; ?>;
20
+ background-position-y: <?php echo $slide->background_propriety_position_y; ?>;
21
+ background-repeat: <?php echo $slide->background_repeat; ?>;
22
+ background-size: <?php echo $slide->background_propriety_size; ?>;
23
+ <?php echo stripslashes($slide->custom_css); ?>
24
+ "
25
+ <?php endif; ?>
26
+ >
27
+ <?php
28
+ if($edit && $elements != NULL) {
29
+ foreach($elements as $element) {
30
+ switch($element->type) {
31
+ case 'text':
32
+ ?>
33
+ <p
34
+ class="cs-element cs-text-element"
35
+ style="
36
+ <?php
37
+ echo 'z-index: ' . $element->z_index . ';';
38
+ echo 'left: ' . $element->data_left . 'px;';
39
+ echo 'top: ' . $element->data_top . 'px;';
40
+ echo stripslashes($element->custom_css);
41
+ ?>
42
+ "
43
+ data-delay="<?php echo $element->data_delay; ?>"
44
+ data-easeIn="<?php echo $element->data_easeIn; ?>"
45
+ data-easeOut="<?php echo $element->data_easeOut; ?>"
46
+ data-in="<?php echo $element->data_in; ?>"
47
+ data-out="<?php echo $element->data_out; ?>"
48
+ data-top="<?php echo $element->data_top; ?>"
49
+ data-left="<?php echo $element->data_left; ?>"
50
+ data-time="<?php echo $element->data_time; ?>"
51
+ >
52
+ <?php echo stripslashes($element->inner_html); ?>
53
+ </p>
54
+ <?php
55
+ break;
56
+ case 'image':
57
+ ?>
58
+ <img
59
+ class="cs-element cs-image-element"
60
+ src="<?php echo $element->image_src; ?>"
61
+ style="
62
+ <?php
63
+ echo 'z-index: ' . $element->z_index . ';';
64
+ echo 'left: ' . $element->data_left . 'px;';
65
+ echo 'top: ' . $element->data_top . 'px;';
66
+ echo stripslashes($element->custom_css);
67
+ ?>
68
+ "
69
+ data-delay="<?php echo $element->data_delay; ?>"
70
+ data-easeIn="<?php echo $element->data_easeIn; ?>"
71
+ data-easeOut="<?php echo $element->data_easeOut; ?>"
72
+ data-in="<?php echo $element->data_in; ?>"
73
+ data-out="<?php echo $element->data_out; ?>"
74
+ data-top="<?php echo $element->data_top; ?>"
75
+ data-left="<?php echo $element->data_left; ?>"
76
+ data-time="<?php echo $element->data_time; ?>"
77
+ />
78
+ <?php
79
+ break;
80
+ }
81
+ }
82
+ }
83
+ ?>
84
+ </div>
85
+
86
+ <br />
87
+ <br />
88
+
89
+ <div class="cs-elements-actions">
90
+ <div style="float: left;">
91
+ <a class="cs-add-text-element cs-button cs-is-warning"><?php _e('Add text', 'crellyslider'); ?></a>
92
+ <a class="cs-add-image-element cs-button cs-is-warning"><?php _e('Add image', 'crellyslider'); ?></a>
93
+ </div>
94
+ <div style="float: right;">
95
+ <a class="cs-live-preview cs-button cs-is-success"><?php _e('Live preview', 'crellyslider'); ?></a>
96
+ <a class="cs-delete-element cs-button cs-is-danger cs-is-disabled"><?php _e('Delete element', 'crellyslider'); ?></a>
97
+ <a class="cs-duplicate-element cs-button cs-is-primary cs-is-disabled"><?php _e('Duplicate element', 'crellyslider'); ?></a>
98
+ </div>
99
+ <div style="clear: both;"></div>
100
+ </div>
101
+
102
+ <br />
103
+ <br />
104
+
105
+ <div class="cs-elements-list">
106
+ <?php
107
+ if($edit && $elements != NULL) {
108
+ foreach($elements as $element) {
109
+ switch($element->type) {
110
+ case 'text':
111
+ echo '<div class="cs-element-settings cs-text-element-settings" style="display: none;">';
112
+ crellyslider_printTextElement($element);
113
+ echo '</div>';
114
+ break;
115
+ case 'image':
116
+ echo '<div class="cs-element-settings cs-image-element-settings" style="display: none;">';
117
+ crellyslider_printImageElement($element);
118
+ echo '</div>';
119
+ break;
120
+ }
121
+ }
122
+ }
123
+ echo '<div class="cs-void-element-settings cs-void-text-element-settings cs-element-settings cs-text-element-settings">';
124
+ crellyslider_printTextElement(false);
125
+ echo '</div>';
126
+ echo '<div class="cs-void-element-settings cs-void-image-element-settings cs-element-settings cs-image-element-settings">';
127
+ crellyslider_printImageElement(false);
128
+ echo '</div>';
129
+ ?>
130
+ </div>
131
+
132
+ </div>
133
+ <?php
134
+ }
135
+
136
+ function crellyslider_printTextElement($element) {
137
+ $void = !$element ? true : false;
138
+
139
+ $animations = array(
140
+ 'slideDown' => array(__('Slide down', 'crellyslider'), false),
141
+ 'slideUp' => array(__('Slide up', 'crellyslider'), false),
142
+ 'slideLeft' => array(__('Slide left', 'crellyslider'), false),
143
+ 'slideRight' => array(__('Slide right', 'crellyslider'), false),
144
+ 'fade' => array(__('Fade', 'crellyslider'), true),
145
+ 'fadeDown' => array(__('Fade down', 'crellyslider'), false),
146
+ 'fadeUp' => array(__('Fade up', 'crellyslider'), false),
147
+ 'fadeLeft' => array(__('Fade left', 'crellyslider'), false),
148
+ 'fadeRight' => array(__('Fade right', 'crellyslider'), false),
149
+ 'fadeSmallDown' => array(__('Fade small down', 'crellyslider'), false),
150
+ 'fadeSmallUp' => array(__('Fade small up', 'crellyslider'), false),
151
+ 'fadeSmallLeft' => array(__('Fade small left', 'crellyslider'), false),
152
+ 'fadeSmallRight' => array(__('Fade small right', 'crellyslider'), false),
153
+ );
154
+
155
+ ?>
156
+ <table class="cs-element-settings-list cs-text-element-settings-list cs-table">
157
+ <thead>
158
+ <tr class="odd-row">
159
+ <th colspan="3"><?php _e('Element Options', 'crellyslider'); ?></th>
160
+ </tr>
161
+ </thead>
162
+
163
+ <tbody>
164
+ <tr class="cs-table-header">
165
+ <td><?php _e('Option', 'crellyslider'); ?></td>
166
+ <td><?php _e('Parameter', 'crellyslider'); ?></td>
167
+ <td><?php _e('Description', 'crellyslider'); ?></td>
168
+ </tr>
169
+ <tr>
170
+ <td class="cs-name"><?php _e('Text', 'crellyslider'); ?></td>
171
+ <td class="cs-content">
172
+ <?php
173
+ if($void) echo '<input class="cs-element-inner_html" type="text" value="' . __('Text element', 'crellyslider') . '" />';
174
+ else echo '<input class="cs-element-inner_html" type="text" value="' . stripslashes($element->inner_html) .'" />';
175
+ ?>
176
+ </td>
177
+ <td class="cs-description">
178
+ <?php _e('Write the text or the HTML.', 'crellyslider'); ?>
179
+ </td>
180
+ </tr>
181
+ <tr>
182
+ <td class="cs-name"><?php _e('Left', 'crellyslider'); ?></td>
183
+ <td class="cs-content">
184
+ <?php
185
+ if($void) echo '<input class="cs-element-data_left" type="text" value="0" />';
186
+ else echo '<input class="cs-element-data_left" type="text" value="' . $element->data_left .'" />';
187
+ ?>
188
+ px
189
+ </td>
190
+ <td class="cs-description">
191
+ <?php _e('Left distance in px from the start width.', 'crellyslider'); ?>
192
+ </td>
193
+ </tr>
194
+ <tr>
195
+ <td class="cs-name"><?php _e('Top', 'crellyslider'); ?></td>
196
+ <td class="cs-content">
197
+ <?php
198
+ if($void) echo '<input class="cs-element-data_top" type="text" value="0" />';
199
+ else echo '<input class="cs-element-data_top" type="text" value="' . $element->data_top .'" />';
200
+ ?>
201
+ px
202
+ </td>
203
+ <td class="cs-description">
204
+ <?php _e('Top distance in px from the start height.', 'crellyslider'); ?>
205
+ </td>
206
+ </tr>
207
+ <tr>
208
+ <td class="cs-name"><?php _e('Z - index', 'crellyslider'); ?></td>
209
+ <td class="cs-content">
210
+ <?php
211
+ if($void) echo '<input class="cs-element-z_index" type="text" value="1" />';
212
+ else echo '<input class="cs-element-z_index" type="text" value="' . $element->z_index .'" />';
213
+ ?>
214
+ </td>
215
+ <td class="cs-description">
216
+ <?php _e('An element with an high z-index will cover an element with a lower z-index if they overlap.', 'crellyslider'); ?>
217
+ </td>
218
+ </tr>
219
+ <tr>
220
+ <td class="cs-name"><?php _e('Delay', 'crellyslider'); ?></td>
221
+ <td class="cs-content">
222
+ <?php
223
+ if($void) echo '<input class="cs-element-data_delay" type="text" value="0" />';
224
+ else echo '<input class="cs-element-data_delay" type="text" value="' . $element->data_delay .'" />';
225
+ ?>
226
+ ms
227
+ </td>
228
+ <td class="cs-description">
229
+ <?php _e('How long will the element wait before the entrance.', 'crellyslider'); ?>
230
+ </td>
231
+ </tr>
232
+ <tr>
233
+ <td class="cs-name"><?php _e('Time', 'crellyslider'); ?></td>
234
+ <td class="cs-content">
235
+ <?php
236
+ if($void) echo '<input class="cs-element-data_time" type="text" value="all" />';
237
+ else echo '<input class="cs-element-data_time" type="text" value="' . $element->data_time .'" />';
238
+ ?>
239
+ ms
240
+ </td>
241
+ <td class="cs-description">
242
+ <?php _e('How long will the element be displayed during the slide execution. Write "all" to set the entire time.', 'crellyslider'); ?>
243
+ </td>
244
+ </tr>
245
+ <tr>
246
+ <td class="cs-name"><?php _e('In animation', 'crellyslider'); ?></td>
247
+ <td class="cs-content">
248
+ <select class="cs-element-data_in">
249
+ <?php
250
+ foreach($animations as $key => $value) {
251
+ echo '<option value="' . $key . '"';
252
+ if(($void && $value[1]) || (!$void && $element->data_in == $key)) {
253
+ echo ' selected';
254
+ }
255
+ echo '>' . $value[0] . '</option>';
256
+ }
257
+ ?>
258
+ </select>
259
+ </td>
260
+ <td class="cs-description">
261
+ <?php _e('The in animation of the element.', 'crellyslider'); ?>
262
+ </td>
263
+ </tr>
264
+ <tr>
265
+ <td class="cs-name"><?php _e('Out animation', 'crellyslider'); ?></td>
266
+ <td class="cs-content">
267
+ <select class="cs-element-data_out">
268
+ <?php
269
+ foreach($animations as $key => $value) {
270
+ echo '<option value="' . $key . '"';
271
+ if(($void && $value[1]) || (!$void && $element->data_out == $key)) {
272
+ echo ' selected';
273
+ }
274
+ echo '>' . $value[0] . '</option>';
275
+ }
276
+ ?>
277
+ </select>
278
+ </td>
279
+ <td class="cs-description">
280
+ <?php _e('The out animation of the element.', 'crellyslider'); ?>
281
+ </td>
282
+ </tr>
283
+ <tr>
284
+ <td class="cs-name"><?php _e('Ease in', 'crellyslider'); ?></td>
285
+ <td class="cs-content">
286
+ <?php
287
+ if($void) echo '<input class="cs-element-data_easeIn" type="text" value="300" />';
288
+ else echo '<input class="cs-element-data_easeIn" type="text" value="' . $element->data_easeIn .'" />';
289
+ ?>
290
+ ms
291
+ </td>
292
+ <td class="cs-description">
293
+ <?php _e('How long will the in animation take.', 'crellyslider'); ?>
294
+ </td>
295
+ </tr>
296
+ <tr>
297
+ <td class="cs-name"><?php _e('Ease out', 'crellyslider'); ?></td>
298
+ <td class="cs-content">
299
+ <?php
300
+ if($void) echo '<input class="cs-element-data_easeOut" type="text" value="300" />';
301
+ else echo '<input class="cs-element-data_easeOut" type="text" value="' . $element->data_easeOut .'" />';
302
+ ?>
303
+ ms
304
+ </td>
305
+ <td class="cs-description">
306
+ <?php _e('How long will the out animation take.', 'crellyslider'); ?>
307
+ </td>
308
+ </tr>
309
+ <tr>
310
+ <td class="cs-name"><?php _e('Custom CSS', 'crellyslider'); ?></td>
311
+ <td class="cs-content">
312
+ <?php
313
+ if($void) echo '<textarea class="cs-element-custom_css"></textarea>';
314
+ else echo '<textarea class="cs-element-custom_css">' . stripslashes($element->custom_css) . '</textarea>';
315
+ ?>
316
+ </td>
317
+ <td class="cs-description">
318
+ <?php _e('Style the element.', 'crellyslider'); ?>
319
+ </td>
320
+ </tr>
321
+ </tbody>
322
+ </table>
323
+ <?php
324
+ }
325
+
326
+ function crellyslider_printImageElement($element) {
327
+ $void = !$element ? true : false;
328
+
329
+ $animations = array(
330
+ 'slideDown' => array(__('Slide down', 'crellyslider'), false),
331
+ 'slideUp' => array(__('Slide up', 'crellyslider'), false),
332
+ 'slideLeft' => array(__('Slide left', 'crellyslider'), false),
333
+ 'slideRight' => array(__('Slide right', 'crellyslider'), false),
334
+ 'fade' => array(__('Fade', 'crellyslider'), true),
335
+ 'fadeDown' => array(__('Fade down', 'crellyslider'), false),
336
+ 'fadeUp' => array(__('Fade up', 'crellyslider'), false),
337
+ 'fadeLeft' => array(__('Fade left', 'crellyslider'), false),
338
+ 'fadeRight' => array(__('Fade right', 'crellyslider'), false),
339
+ 'fadeSmallDown' => array(__('Fade small down', 'crellyslider'), false),
340
+ 'fadeSmallUp' => array(__('Fade small up', 'crellyslider'), false),
341
+ 'fadeSmallLeft' => array(__('Fade small left', 'crellyslider'), false),
342
+ 'fadeSmallRight' => array(__('Fade small right', 'crellyslider'), false),
343
+ );
344
+
345
+ ?>
346
+ <table class="cs-element-settings-list cs-image-element-settings-list cs-table">
347
+ <thead>
348
+ <tr class="odd-row">
349
+ <th colspan="3"><?php _e('Element Options', 'crellyslider'); ?></th>
350
+ </tr>
351
+ </thead>
352
+ <tbody>
353
+ <tr class="cs-table-header">
354
+ <td><?php _e('Option', 'crellyslider'); ?></td>
355
+ <td><?php _e('Parameter', 'crellyslider'); ?></td>
356
+ <td><?php _e('Description', 'crellyslider'); ?></td>
357
+ </tr>
358
+ <tr>
359
+ <td class="cs-name"><?php _e('Upload image', 'crellyslider'); ?></td>
360
+ <td class="cs-content">
361
+ <?php
362
+ if($void) echo '<input class="cs-image-element-upload-button cs-button cs-is-default" type="button" value="' . __('Select image', 'crellyslider') . '" />';
363
+ else echo '<input data-src="' . $element->image_src . '" data-alt="' . $element->image_alt . '" class="cs-image-element-upload-button cs-button cs-is-default" type="button" value="' . __('Select image', 'crellyslider') . '" />';
364
+ ?>
365
+ </td>
366
+ <td class="cs-description">
367
+ <?php _e('Upload the image you want to insert.', 'crellyslider'); ?>
368
+ </td>
369
+ </tr>
370
+ <tr>
371
+ <td class="cs-name"><?php _e('Left', 'crellyslider'); ?></td>
372
+ <td class="cs-content">
373
+ <?php
374
+ if($void) echo '<input class="cs-element-data_left" type="text" value="0" />';
375
+ else echo '<input class="cs-element-data_left" type="text" value="' . $element->data_left .'" />';
376
+ ?>
377
+ px
378
+ </td>
379
+ <td class="cs-description">
380
+ <?php _e('Left distance in px from the start width.', 'crellyslider'); ?>
381
+ </td>
382
+ </tr>
383
+ <tr>
384
+ <td class="cs-name"><?php _e('Top', 'crellyslider'); ?></td>
385
+ <td class="cs-content">
386
+ <?php
387
+ if($void) echo '<input class="cs-element-data_top" type="text" value="0" />';
388
+ else echo '<input class="cs-element-data_top" type="text" value="' . $element->data_top .'" />';
389
+ ?>
390
+ px
391
+ </td>
392
+ <td class="cs-description">
393
+ <?php _e('Top distance in px from the start height.', 'crellyslider'); ?>
394
+ </td>
395
+ </tr>
396
+ <tr>
397
+ <td class="cs-name"><?php _e('Z - index', 'crellyslider'); ?></td>
398
+ <td class="cs-content">
399
+ <?php
400
+ if($void) echo '<input class="cs-element-z_index" type="text" value="1" />';
401
+ else echo '<input class="cs-element-z_index" type="text" value="' . $element->z_index .'" />';
402
+ ?>
403
+ </td>
404
+ <td class="cs-description">
405
+ <?php _e('An element with an high z-index will cover an element with a lower z-index if they overlap.', 'crellyslider'); ?>
406
+ </td>
407
+ </tr>
408
+ <tr>
409
+ <td class="cs-name"><?php _e('Delay', 'crellyslider'); ?></td>
410
+ <td class="cs-content">
411
+ <?php
412
+ if($void) echo '<input class="cs-element-data_delay" type="text" value="0" />';
413
+ else echo '<input class="cs-element-data_delay" type="text" value="' . $element->data_delay .'" />';
414
+ ?>
415
+ ms
416
+ </td>
417
+ <td class="cs-description">
418
+ <?php _e('How long will the element wait before the entrance.', 'crellyslider'); ?>
419
+ </td>
420
+ </tr>
421
+ <tr>
422
+ <td class="cs-name"><?php _e('Time', 'crellyslider'); ?></td>
423
+ <td class="cs-content">
424
+ <?php
425
+ if($void) echo '<input class="cs-element-data_time" type="text" value="all" />';
426
+ else echo '<input class="cs-element-data_time" type="text" value="' . $element->data_time .'" />';
427
+ ?>
428
+ ms
429
+ </td>
430
+ <td class="cs-description">
431
+ <?php _e('How long will the element be displayed during the slide execution. Write "all" to set the entire time.', 'crellyslider'); ?>
432
+ </td>
433
+ </tr>
434
+ <tr>
435
+ <td class="cs-name"><?php _e('In animation', 'crellyslider'); ?></td>
436
+ <td class="cs-content">
437
+ <select class="cs-element-data_in">
438
+ <?php
439
+ foreach($animations as $key => $value) {
440
+ echo '<option value="' . $key . '"';
441
+ if(($void && $value[1]) || (!$void && $element->data_in == $key)) {
442
+ echo ' selected';
443
+ }
444
+ echo '>' . $value[0] . '</option>';
445
+ }
446
+ ?>
447
+ </select>
448
+ </td>
449
+ <td class="cs-description">
450
+ <?php _e('The in animation of the element.', 'crellyslider'); ?>
451
+ </td>
452
+ </tr>
453
+ <tr>
454
+ <td class="cs-name"><?php _e('Out animation', 'crellyslider'); ?></td>
455
+ <td class="cs-content">
456
+ <select class="cs-element-data_out">
457
+ <?php
458
+ foreach($animations as $key => $value) {
459
+ echo '<option value="' . $key . '"';
460
+ if(($void && $value[1]) || (!$void && $element->data_out == $key)) {
461
+ echo ' selected';
462
+ }
463
+ echo '>' . $value[0] . '</option>';
464
+ }
465
+ ?>
466
+ </select>
467
+ </td>
468
+ <td class="cs-description">
469
+ <?php _e('The out animation of the element.', 'crellyslider'); ?>
470
+ </td>
471
+ </tr>
472
+ <tr>
473
+ <td class="cs-name"><?php _e('Ease in', 'crellyslider'); ?></td>
474
+ <td class="cs-content">
475
+ <?php
476
+ if($void) echo '<input class="cs-element-data_easeIn" type="text" value="300" />';
477
+ else echo '<input class="cs-element-data_easeIn" type="text" value="' . $element->data_easeIn .'" />';
478
+ ?>
479
+ ms
480
+ </td>
481
+ <td class="cs-description">
482
+ <?php _e('How long will the in animation take.', 'crellyslider'); ?>
483
+ </td>
484
+ </tr>
485
+ <tr>
486
+ <td class="cs-name"><?php _e('Ease out', 'crellyslider'); ?></td>
487
+ <td class="cs-content">
488
+ <?php
489
+ if($void) echo '<input class="cs-element-data_easeOut" type="text" value="300" />';
490
+ else echo '<input class="cs-element-data_easeOut" type="text" value="' . $element->data_easeOut .'" />';
491
+ ?>
492
+ ms
493
+ </td>
494
+ <td class="cs-description">
495
+ <?php _e('How long will the out animation take.', 'crellyslider'); ?>
496
+ </td>
497
+ </tr>
498
+ <tr>
499
+ <td class="cs-name"><?php _e('Custom CSS', 'crellyslider'); ?></td>
500
+ <td class="cs-content">
501
+ <?php
502
+ if($void) echo '<textarea class="cs-element-custom_css"></textarea>';
503
+ else echo '<textarea class="cs-element-custom_css">' . stripslashes($element->custom_css) . '</textarea>';
504
+ ?>
505
+ </td>
506
+ <td class="cs-description">
507
+ <?php _e('Style the element.', 'crellyslider'); ?>
508
+ </td>
509
+ </tr>
510
+ </tbody>
511
+ </table>
512
+ <?php
513
+ }
514
+ ?>
wordpress/frontend.php ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Code output
4
+ function crellySlider($alias) {
5
+ CrellySliderFrontend::output($alias, true);
6
+ }
7
+
8
+ function getCrellySlider($alias) {
9
+ CrellySliderFrontend::output($alias, false);
10
+ }
11
+
12
+ class CrellySliderFrontend {
13
+
14
+ // Shortcode
15
+ public static function shortcode($atts) {
16
+ $a = shortcode_atts( array(
17
+ 'alias' => false,
18
+ ), $atts );
19
+
20
+ if(! $a['alias']) {
21
+ return __('You have to insert a valid alias in the shortcode', 'crellyslider');
22
+ }
23
+ else {
24
+ return CrellySliderFrontend::output($a['alias'], false);
25
+ }
26
+ }
27
+
28
+ public static function addShortcode() {
29
+ add_shortcode('crellyslider', array( __CLASS__, 'shortcode'));
30
+ }
31
+
32
+ public static function output($alias, $echo) {
33
+ global $wpdb;
34
+
35
+ $slider = $wpdb->get_row('SELECT * FROM ' . $wpdb->prefix . 'crellyslider_sliders WHERE alias = \'' . $alias . '\'');
36
+
37
+ if(! $slider) {
38
+ if($echo) {
39
+ _e('The slider hasn\'t been found', 'crellyslider');
40
+ return;
41
+ }
42
+ else {
43
+ return __('The slider hasn\'t been found', 'crellyslider');
44
+ }
45
+ }
46
+
47
+ $slider_id = $slider->id;
48
+ $slides = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'crellyslider_slides WHERE slider_parent = ' . $slider_id . ' ORDER BY position');
49
+
50
+ $output = '';
51
+
52
+ $output .= '<div class="crellyslider-slider crellyslider-slider-' . $slider->layout . ' crellyslider-slider-' . $alias . '" id="crellyslider-' . $slider_id . '">' . "\n";
53
+ $output .= '<ul>' . "\n";
54
+ foreach($slides as $slide) {
55
+ $background_type_image = $slide->background_type_image == 'undefined' || $slide->background_type_image == 'none' ? 'none;' : 'url(\'' . $slide->background_type_image . '\');';
56
+ $output .= '<li' . "\n" .
57
+ 'style="' . "\n" .
58
+ 'background-color: ' . $slide->background_type_color . ';' . "\n" .
59
+ 'background-image: ' . $background_type_image . "\n" .
60
+ 'background-position-x: ' . $slide->background_propriety_position_x . ';' . "\n" .
61
+ 'background-position-y: ' . $slide->background_propriety_position_y . ';' . "\n" .
62
+ 'background-repeat: ' . $slide->background_repeat . ';' . "\n" .
63
+ 'background-size: ' . $slide->background_propriety_size . ';' . "\n" .
64
+ stripslashes($slide->custom_css) . "\n" .
65
+ '"' . "\n" .
66
+
67
+ 'data-in="' . $slide->data_in . '"' . "\n" .
68
+ 'data-ease-in="' . $slide->data_easeIn . '"' . "\n" .
69
+ 'data-out="' . $slide->data_out . '"' . "\n" .
70
+ 'data-ease-out="' . $slide->data_easeOut . '"' . "\n" .
71
+ 'data-time="' . $slide->data_time . '"' . "\n" .
72
+ '>' . "\n";
73
+
74
+ $slide_parent = $slide->position;
75
+ $elements = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'crellyslider_elements WHERE slider_parent = ' . $slider_id . ' AND slide_parent = ' . $slide_parent);
76
+
77
+ foreach($elements as $element) {
78
+ switch($element->type) {
79
+ case 'text':
80
+ $output .= '<p' . "\n" .
81
+ 'style="' .
82
+ 'z-index: ' . $element->z_index . ';' . "\n" .
83
+ stripslashes($element->custom_css) . "\n" .
84
+ '"' . "\n" .
85
+ 'data-delay="' . $element->data_delay . '"' . "\n" .
86
+ 'data-ease-in="' . $element->data_easeIn . '"' . "\n" .
87
+ 'data-ease-out="' . $element->data_easeOut . '"' . "\n" .
88
+ 'data-in="' . $element->data_in . '"' . "\n" .
89
+ 'data-out="' . $element->data_out . '"' . "\n" .
90
+ 'data-top="' . $element->data_top . '"' . "\n" .
91
+ 'data-left="' . $element->data_left . '"' . "\n" .
92
+ 'data-time="' . $element->data_time . '"' . "\n" .
93
+ '>' . "\n" .
94
+ stripslashes($element->inner_html) . "\n" .
95
+ '</p>' . "\n";
96
+ break;
97
+ case 'image':
98
+ $output .= '<img' . "\n" .
99
+ 'src="' . $element->image_src . '"' . "\n" .
100
+ 'alt="' . $element->image_alt . '"' . "\n" .
101
+ 'style="' . "\n" .
102
+ 'z-index: ' . $element->z_index . ';' . "\n" .
103
+ stripslashes($element->custom_css) . "\n" .
104
+ '"' . "\n" .
105
+ 'data-delay="' . $element->data_delay . '"' . "\n" .
106
+ 'data-ease-in="' . $element->data_easeIn . '"' . "\n" .
107
+ 'data-ease-out="' . $element->data_easeOut . '"' . "\n" .
108
+ 'data-in="' . $element->data_in . '"' . "\n" .
109
+ 'data-out="' . $element->data_out . '"' . "\n" .
110
+ 'data-top="' . $element->data_top . '"' . "\n" .
111
+ 'data-left="' . $element->data_left . '"' . "\n" .
112
+ 'data-time="' . $element->data_time . '"' . "\n" .
113
+ '/>' . "\n";
114
+ break;
115
+ }
116
+ }
117
+
118
+ $output .= '</li>' . "\n";
119
+ }
120
+ $output .= '</ul>' . "\n";
121
+ $output .= '</div>' . "\n";
122
+
123
+ $output .= '<script type="text/javascript">' . "\n";
124
+ $output .= 'jQuery(document).ready(function($) {' . "\n";
125
+ $output .= '$("#crellyslider-' . $slider_id . '").crellySlider({' . "\n";
126
+ $output .= 'layout: \'' . $slider->layout . '\',' . "\n";
127
+ $output .= 'responsive: ' . $slider->responsive . ',' . "\n";
128
+ $output .= 'startWidth: ' . $slider->startWidth . ',' . "\n";
129
+ $output .= 'startHeight: ' . $slider->startHeight . ',' . "\n";
130
+ $output .= 'automaticSlide: ' . $slider->automaticSlide . ',' . "\n";
131
+ $output .= 'showControls: ' . $slider->showControls . ',' . "\n";
132
+ $output .= 'showNavigation: ' . $slider->showNavigation . ',' . "\n";
133
+ $output .= 'showProgressBar: ' . $slider->showProgressBar . ',' . "\n";
134
+ $output .= 'pauseOnHover: ' . $slider->pauseOnHover . ',' . "\n";
135
+ $output .= '});' . "\n";
136
+ $output .= '});' . "\n";
137
+ $output .= '</script>' . "\n";
138
+
139
+ if($echo) {
140
+ echo $output;
141
+ }
142
+ else {
143
+ return $output;
144
+ }
145
+ }
146
+
147
+ }
wordpress/home.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ global $wpdb;
3
+ $sliders = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'crellyslider_sliders');
4
+
5
+ if(!$sliders) {
6
+ echo '<div class="cs-no-sliders">';
7
+ _e('No Sliders found. Please add a new one.', 'crellyslider');
8
+ echo '</div>';
9
+ echo '<br /><br />';
10
+ }
11
+ else {
12
+ ?>
13
+
14
+ <table class="cs-sliders-list cs-table">
15
+ <thead>
16
+ <tr>
17
+ <th colspan="5"><?php _e('Sliders List', 'crellyslider'); ?></th>
18
+ </tr>
19
+ </thead>
20
+ <tbody>
21
+ <tr class="cs-table-header">
22
+ <td><?php _e('ID', 'crellyslider'); ?></td>
23
+ <td><?php _e('Name', 'crellyslider'); ?></td>
24
+ <td><?php _e('Alias', 'crellyslider'); ?></td>
25
+ <td><?php _e('Shortcode', 'crellyslider'); ?></td>
26
+ <td><?php _e('Actions', 'crellyslider'); ?></td>
27
+ </tr>
28
+ <?php
29
+ foreach($sliders as $slider) {
30
+ echo '<tr>';
31
+ echo '<td>' . $slider->id . '</td>';
32
+ echo '<td><a href="?page=crellyslider&view=edit&id=' . $slider->id . '">' . $slider->name . '</a></td>';
33
+ echo '<td>' . $slider->alias . '</td>';
34
+ echo '<td>[crellyslider alias="' . $slider->alias . '"]</td>';
35
+ echo '<td>
36
+ <a class="cs-edit-slider cs-button cs-button cs-is-success" href="?page=crellyslider&view=edit&id=' . $slider->id . '">' . __('Edit Slider', 'crellyslider') . '</a>
37
+ <a class="cs-delete-slider cs-button cs-button cs-is-danger" href="javascript:void(0)" data-delete="' . $slider->id . '">' . __('Delete Slider', 'crellyslider') . '</a>
38
+ </td>';
39
+ echo '</tr>';
40
+ }
41
+ ?>
42
+ </tbody>
43
+ </table>
44
+ <?php
45
+ }
46
+ ?>
47
+
48
+ <br />
49
+ <a class="cs-button cs-is-primary cs-add-slider" href="?page=crellyslider&view=add"><?php _e('Add Slider', 'crellyslider'); ?></a>
wordpress/images/close.png ADDED
Binary file
wordpress/images/edit.png ADDED
Binary file
wordpress/images/logo2.png ADDED
Binary file
wordpress/images/settings.png ADDED
Binary file
wordpress/js/admin.js ADDED
@@ -0,0 +1,1024 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function($) {
2
+ $(window).load(function() {
3
+
4
+ // Run tabs
5
+ $('.cs-tabs').tabs({
6
+ show: function(event, ui) {
7
+ var $target = $(ui.panel);
8
+ if(target.hasClass('cs-tabs-fade')) {
9
+ $('.content:visible').effect(
10
+ 'explode',
11
+ {},
12
+ 1500,
13
+ function(){
14
+ $target.fadeIn(300);
15
+ }
16
+ );
17
+ }
18
+ }
19
+ });
20
+
21
+ // Run draggables
22
+ crellyslider_draggableElements();
23
+
24
+ function crellyslider_showSuccess() {
25
+ var target = $('.cs-admin .cs-message.cs-message-ok');
26
+ target.css({
27
+ 'display' : 'block',
28
+ 'opacity' : 0,
29
+ });
30
+ target.animate({
31
+ 'opacity' : 1,
32
+ }, 300)
33
+ .delay(2000)
34
+ .animate({
35
+ 'opacity' : 0,
36
+ }, 300, function() {
37
+ target.css('display', 'none');
38
+ });
39
+ }
40
+
41
+ function crellyslider_showError() {
42
+ var target = $('.cs-admin .cs-message.cs-message-error');
43
+ target.css({
44
+ 'display' : 'block',
45
+ 'opacity' : 0,
46
+ });
47
+ target.animate({
48
+ 'opacity' : 1,
49
+ }, 300)
50
+ .delay(2000)
51
+ .animate({
52
+ 'opacity' : 0,
53
+ }, 300, function() {
54
+ target.css('display', 'none');
55
+ });
56
+ }
57
+
58
+ /*************/
59
+ /** SLIDERS **/
60
+ /*************/
61
+
62
+ // Set Alias
63
+ $('.cs-slider').find('#cs-slider-name').keyup(function() {
64
+ var alias = crellyslider_getAlias();
65
+ $('.cs-slider').find('#cs-slider-alias').text(alias);
66
+ });
67
+
68
+ // Set shortcode
69
+ $('.cs-slider').find('#cs-slider-name').keyup(function() {
70
+ var alias = crellyslider_getAlias();
71
+ var shortcode = '';
72
+ shortcode += '[crellyslider alias="';
73
+ shortcode += alias;
74
+ shortcode += '"]';
75
+ if(alias != '') {
76
+ $('.cs-slider').find('#cs-slider-shortcode').text(shortcode);
77
+ }
78
+ else {
79
+ $('.cs-slider').find('#cs-slider-shortcode').text('');
80
+ }
81
+ });
82
+
83
+ // Set the new sizes of the editing area and of the slider if changing values
84
+ $('.cs-admin #cs-slider-settings .cs-slider-settings-list #cs-slider-startWidth').keyup(function() {
85
+ crellyslider_setSlidesEditingAreaSizes();
86
+ });
87
+ $('.cs-admin #cs-slider-settings .cs-slider-settings-list #cs-slider-startHeight').keyup(function() {
88
+ crellyslider_setSlidesEditingAreaSizes();
89
+ });
90
+
91
+ // Get the alias starting form the name
92
+ function crellyslider_getAlias() {
93
+ var slider_name = $('.cs-slider').find('#cs-slider-name').val();
94
+ var slider_alias = slider_name.toLowerCase();
95
+ slider_alias = slider_alias.replace(/ /g, '_');
96
+ return slider_alias;
97
+ }
98
+
99
+ /************/
100
+ /** SLIDES **/
101
+ /************/
102
+
103
+ var slides_number = $('.cs-admin #cs-slides .cs-slide-tabs ul li').length - 1;
104
+
105
+ // Run sortable
106
+ var slide_before; // Contains the index before the sorting
107
+ var slide_after; // Contains the index after the sorting
108
+ $('.cs-slide-tabs .cs-sortable').sortable({
109
+ items: 'li:not(.ui-state-disabled)',
110
+ cancel: '.ui-state-disabled',
111
+
112
+ // Store the actual index
113
+ start: function(event, ui) {
114
+ slide_before = $(ui.item).index();
115
+ },
116
+
117
+ // Change the .cs-slide order based on the new index and rename the tabs
118
+ update: function(event, ui) {
119
+ // Store the new index
120
+ slide_after = $(ui.item).index();
121
+
122
+ // Change the slide position
123
+ var slide = $('.cs-admin #cs-slides .cs-slides-list .cs-slide:eq(' + slide_before + ')');
124
+ var after = $('.cs-admin #cs-slides .cs-slides-list .cs-slide:eq(' + slide_after + ')');
125
+ if(slide_before < slide_after) {
126
+ slide.insertAfter(after);
127
+ }
128
+ else {
129
+ slide.insertBefore(after);
130
+ }
131
+
132
+ // Rename all the tabs
133
+ $('.cs-admin #cs-slides .cs-slide-tabs ul li').each(function() {
134
+ var temp = $(this);
135
+ if(!temp.find('a').hasClass('cs-add-new')) {
136
+ temp.find('a').text(crellyslider_translations.slide + (temp.index() + 1));
137
+ }
138
+ });
139
+ }
140
+ });
141
+ $('.cs-slide-tabs .cs-sortable li').disableSelection();
142
+
143
+ // Show the slide when clicking on the link
144
+ $('.cs-admin #cs-slides .cs-slide-tabs ul li a').live('click', function() {
145
+ // Do only if is not click add new
146
+ if($(this).parent().index() != slides_number) {
147
+ // Hide all tabs
148
+ $('.cs-admin #cs-slides .cs-slides-list .cs-slide').css('display', 'none');
149
+ var tab = $(this).parent().index();
150
+ $('.cs-admin #cs-slides .cs-slides-list .cs-slide:eq(' + tab + ')').css('display', 'block');
151
+
152
+ // Active class
153
+ $('.cs-admin #cs-slides .cs-slide-tabs ul li').removeClass('active');
154
+ $(this).parent().addClass('active');
155
+ }
156
+ });
157
+
158
+ // Add new
159
+ function crellyslider_addSlide() {
160
+ var add_btn = $('.cs-admin #cs-slides .cs-add-new');
161
+
162
+ var void_slide = $('.cs-admin #cs-slides .cs-void-slide').html();
163
+ // Insert the link at the end of the list
164
+ add_btn.parent().before('<li class="ui-state-default"><a>' + crellyslider_translations.slide + ' <span class="cs-slide-index">' + (slides_number + 1) + '</span></a><span class="cs-close"></span></li>');
165
+ // jQuery UI tabs are not working here. For now, just use a manual created tab
166
+ $('.cs-admin #cs-slides .cs-slide-tab').tabs('refresh');
167
+ // Create the slide
168
+ $('.cs-admin #cs-slides .cs-slides-list').append('<div class="cs-slide">' + void_slide + '</div>');
169
+ slides_number++;
170
+
171
+ // Open the tab just created
172
+ var tab_index = add_btn.parent().index() - 1;
173
+ $('.cs-admin #cs-slides .cs-slide-tabs ul li').eq(tab_index).find('a').click();
174
+
175
+ // Active class
176
+ $('.cs-admin #cs-slides .cs-slide-tabs ul li').removeClass('active');
177
+ $('.cs-admin #cs-slides .cs-slide-tabs ul li').eq(tab_index).addClass('active');
178
+
179
+ // Set editing area sizes
180
+ crellyslider_setSlidesEditingAreaSizes();
181
+
182
+ crellyslider_slidesColorPicker();
183
+ }
184
+
185
+ // Add new on click
186
+ $('.cs-admin #cs-slides .cs-add-new').click(function() {
187
+ crellyslider_addSlide();
188
+ });
189
+ // Also add a new slide if slides_number == 0
190
+ if(slides_number == 0) {
191
+ crellyslider_addSlide();
192
+ }
193
+ else {
194
+ $('.cs-admin #cs-slides .cs-slide-tabs ul li').eq(0).find('a').click();
195
+ }
196
+
197
+ // Delete
198
+ $('.cs-admin #cs-slides .cs-slide-tabs ul li .cs-close').live('click', function() {
199
+ var confirm = window.confirm(crellyslider_translations.slide_delete_confirm);
200
+ if(!confirm) {
201
+ return;
202
+ }
203
+
204
+ slides_number--;
205
+
206
+ var slide_index = $(this).parent().index();
207
+
208
+ // If is deleting the current viewing slide, set the first as active
209
+ if($('.cs-admin #cs-slides .cs-slide-tabs ul li').eq(slide_index).hasClass('active') && slides_number != 0) {
210
+ $('.cs-admin #cs-slides .cs-slide-tabs ul li').eq(0).addClass('active');
211
+ $('.cs-admin #cs-slides .cs-slides-list .cs-slide').css('display', 'none');
212
+ $('.cs-admin #cs-slides .cs-slides-list .cs-slide').eq(0).css('display', 'block');
213
+ }
214
+
215
+ // Remove the anchor
216
+ $(this).parent().remove();
217
+ // Remove the slide itself
218
+ $('.cs-admin #cs-slides .cs-slides-list .cs-slide').eq(slide_index).remove();
219
+
220
+ // Scale back all the slides text
221
+ for(var i = slide_index; i < slides_number; i++) {
222
+ var slide = $('.cs-admin #cs-slides .cs-slide-tabs ul li').eq(i);
223
+ var indx = parseInt(slide.find('.cs-slide-index').text());
224
+ slide.find('.cs-slide-index').text(indx - 1);
225
+ }
226
+ });
227
+
228
+ // Set correct size for the editing area
229
+ function crellyslider_setSlidesEditingAreaSizes() {
230
+ var width = parseInt($('.cs-admin #cs-slider-settings .cs-slider-settings-list #cs-slider-startWidth').val());
231
+ var height = parseInt($('.cs-admin #cs-slider-settings .cs-slider-settings-list #cs-slider-startHeight').val());
232
+
233
+ $('.cs-admin #cs-slides .cs-slide .cs-slide-editing-area').css({
234
+ 'width' : width,
235
+ 'height' : height,
236
+ });
237
+
238
+ $('.cs-admin').css({
239
+ 'width' : width,
240
+ });
241
+ }
242
+
243
+ crellyslider_slidesColorPicker();
244
+
245
+ // Run background color picker
246
+ function crellyslider_slidesColorPicker() {
247
+ $('.cs-admin #cs-slides .cs-slides-list .cs-slide-settings-list .cs-slide-background_type_color-picker-input').wpColorPicker({
248
+ // a callback to fire whenever the color changes to a valid color
249
+ change: function(event, ui){
250
+ // Change only if the color picker is the user choice
251
+ var btn = $(this);
252
+ if(btn.closest('.cs-content').find('input[name="cs-slide-background_type_color"]:checked').val() == '1') {
253
+ var area = btn.closest('.cs-slide').find('.cs-elements .cs-slide-editing-area');
254
+ area.css('background-color', ui.color.toString());
255
+ }
256
+ },
257
+ // a callback to fire when the input is emptied or an invalid color
258
+ clear: function() {},
259
+ // hide the color picker controls on load
260
+ hide: true,
261
+ // show a group of common colors beneath the square
262
+ // or, supply an array of colors to customize further
263
+ palettes: true
264
+ });
265
+ }
266
+
267
+ // Set background color (transparent or color-picker)
268
+ $('.cs-admin #cs-slides').on('change', '.cs-slides-list .cs-slide-settings-list input[name="cs-slide-background_type_color"]:radio', function() {
269
+ var btn = $(this);
270
+ var area = btn.closest('.cs-slide').find('.cs-elements .cs-slide-editing-area');
271
+
272
+ if(btn.val() == '0') {
273
+ area.css('background-color', '#fff');
274
+ }
275
+ else {
276
+ var color_picker_value = btn.closest('.cs-content').find('.wp-color-result').css('background-color');
277
+ area.css('background-color', color_picker_value);
278
+ }
279
+ });
280
+
281
+ // Set background image (none or image)
282
+ $('.cs-admin #cs-slides').on('change', '.cs-slides-list .cs-slide-settings-list input[name="cs-slide-background_type_image"]:radio', function() {
283
+ var btn = $(this);
284
+ var area = btn.closest('.cs-slide').find('.cs-elements .cs-slide-editing-area');
285
+
286
+ if(btn.val() == '0') {
287
+ area.css('background-image', 'none');
288
+ }
289
+ else {
290
+ var slide_parent = $(this).closest('.cs-slide');
291
+ crellyslider_addSlideImageBackground(slide_parent);
292
+ }
293
+ });
294
+
295
+ // Set Background image (the upload function)
296
+ $('.cs-admin #cs-slides').on('click', '.cs-slides-list .cs-slide-settings-list .cs-slide-background_type_image-upload-button', function() {
297
+ var btn = $(this);
298
+ if(btn.closest('.cs-content').find('input[name="cs-slide-background_type_image"]:checked').val() == '1') {
299
+ var slide_parent = $(this).closest('.cs-slide');
300
+ crellyslider_addSlideImageBackground(slide_parent);
301
+ }
302
+ });
303
+ function crellyslider_addSlideImageBackground(slide_parent) {
304
+ var area = slide_parent.find('.cs-slide-editing-area');
305
+
306
+ // Upload
307
+ var file_frame;
308
+ event.preventDefault();
309
+
310
+ // If the media frame already exists, reopen it.
311
+ if ( file_frame ) {
312
+ file_frame.open();
313
+ return;
314
+ }
315
+
316
+ // Create the media frame.
317
+ file_frame = wp.media.frames.file_frame = wp.media({
318
+ title: jQuery( this ).data( 'uploader_title' ),
319
+ button: {
320
+ text: jQuery( this ).data( 'uploader_button_text' ),
321
+ },
322
+ multiple: false // Set to true to allow multiple files to be selected
323
+ });
324
+
325
+ // When an image is selected, run a callback.
326
+ file_frame.on( 'select', function() {
327
+ // We set multiple to false so only get one image from the uploader
328
+ attachment = file_frame.state().get('selection').first().toJSON();
329
+
330
+ // Do something with attachment.id and/or attachment.url here
331
+ var image_src = attachment.url;
332
+ var image_alt = attachment.alt;
333
+
334
+ // Set background
335
+ area.css('background-image', 'url("' + image_src + '")');
336
+ // I add a data with the src because, is not like images (when there is only the src link), the background contains the url('') string that is very annoying when we will get the content
337
+ area.data('background-image-src', image_src);
338
+ });
339
+
340
+ // Finally, open the modal
341
+ file_frame.open();
342
+ }
343
+
344
+ // Background propriety: repeat or no-repeat
345
+ $('.cs-admin #cs-slides').on('change', '.cs-slides-list .cs-slide-settings-list input[name="cs-slide-background_repeat"]:radio', function() {
346
+ var btn = $(this);
347
+ var area = btn.closest('.cs-slide').find('.cs-elements .cs-slide-editing-area');
348
+
349
+ if(btn.val() == '0') {
350
+ area.css('background-repeat', 'no-repeat');
351
+ }
352
+ else {
353
+ area.css('background-repeat', 'repeat');
354
+ }
355
+ });
356
+
357
+ // Background propriety: positions x and y
358
+ $('.cs-admin #cs-slides').on('keyup', '.cs-slides-list .cs-slide-settings-list .cs-slide-background_propriety_position_x', function() {
359
+ var text = $(this);
360
+ var val = text.val();
361
+ var area = text.closest('.cs-slide').find('.cs-elements .cs-slide-editing-area');
362
+
363
+ area.css('background-position-x', val);
364
+ });
365
+ $('.cs-admin #cs-slides').on('keyup', '.cs-slides-list .cs-slide-settings-list .cs-slide-background_propriety_position_y', function() {
366
+ var text = $(this);
367
+ var val = text.val();
368
+ var area = text.closest('.cs-slide').find('.cs-elements .cs-slide-editing-area');
369
+
370
+ area.css('background-position-y', val);
371
+ });
372
+
373
+ // Background propriety: size
374
+ $('.cs-admin #cs-slides').on('keyup', '.cs-slides-list .cs-slide-settings-list .cs-slide-background_propriety_size', function() {
375
+ var text = $(this);
376
+ var val = text.val();
377
+ var area = text.closest('.cs-slide').find('.cs-elements .cs-slide-editing-area');
378
+
379
+ area.css('background-size', val);
380
+ });
381
+
382
+ // Apply custom CSS
383
+ $('.cs-admin #cs-slides').on('keyup', '.cs-slides-list .cs-slide-settings-list .cs-slide-custom_css', function() {
384
+ var text = $(this);
385
+ var area = text.closest('.cs-slide').find('.cs-elements .cs-slide-editing-area');
386
+ var css = text.val();
387
+
388
+ // Save current styles
389
+ var width = area.css('width');
390
+ var height = area.css('height');
391
+ var background_image = area.css('background-image');
392
+ var background_color = area.css('background-color');
393
+ var background_position_x = area.css('background-position-x');
394
+ var background_position_y = area.css('background-position-y');
395
+ var background_repeat = area.css('background-repeat');
396
+ var background_size = area.css('background-size');
397
+
398
+ // Apply CSS
399
+ area.attr('style', css);
400
+ area.css({
401
+ 'width' : width,
402
+ 'height' : height,
403
+ 'background-image' : background_image,
404
+ 'background-color' : background_color,
405
+ 'background-position-x' : background_position_x,
406
+ 'background-position-y' : background_position_y,
407
+ 'background-repeat' : background_repeat,
408
+ 'background-size' : background_size
409
+ });
410
+ });
411
+
412
+ /**************/
413
+ /** ELEMENTS **/
414
+ /**************/
415
+
416
+ // GENERAL
417
+
418
+ // Make draggable
419
+ function crellyslider_draggableElements() {
420
+ $('.cs-admin .cs-elements .cs-element').draggable({
421
+ 'containment' : 'parent',
422
+
423
+ start: function() {
424
+ // Select when dragging
425
+ crellyslider_selectElement($(this));
426
+ },
427
+
428
+ drag: function(){
429
+ // Set left and top positions on drag to the textbox
430
+ var position = $(this).position();
431
+ var left = position.left;
432
+ var top = position.top;
433
+ var index = $(this).index();
434
+
435
+ $(this).closest('.cs-elements').find('.cs-elements-list .cs-element-settings:eq(' + index + ') .cs-element-data_left').val(left);
436
+ $(this).closest('.cs-elements').find('.cs-elements-list .cs-element-settings:eq(' + index + ') .cs-element-data_top').val(top);
437
+ },
438
+ });
439
+ }
440
+
441
+ // Selects an element, shows its options and makes the delete element button available
442
+ $('.cs-admin #cs-slides').on('click', '.cs-slide .cs-elements .cs-slide-editing-area .cs-element', function(e) {
443
+ // Do not click the editing-area
444
+ e.stopPropagation();
445
+
446
+ crellyslider_selectElement($(this));
447
+ });
448
+ function crellyslider_selectElement(element) {
449
+ var index = element.index();
450
+ var slide = element.closest('.cs-slide');
451
+ var options = slide.find('.cs-elements .cs-elements-list');
452
+
453
+ // Hide all options - .active class
454
+ options.find('.cs-element-settings').css('display', 'none');
455
+ options.find('.cs-element-settings').removeClass('active');
456
+
457
+ // Show the correct options + .active class
458
+ options.find('.cs-element-settings:eq(' + index + ')').css('display', 'block');
459
+ options.find('.cs-element-settings:eq(' + index + ')').addClass('active');
460
+
461
+ // Add .active class to the element in the editing area
462
+ element.parent().children().removeClass('active');
463
+ element.addClass('active');
464
+
465
+ // Make the delete and the duplicate buttons working
466
+ slide.find('.cs-elements-actions .cs-delete-element').removeClass('cs-is-disabled');
467
+ slide.find('.cs-elements-actions .cs-duplicate-element').removeClass('cs-is-disabled');
468
+ }
469
+
470
+ // Deselect elements
471
+ $('.cs-admin').on('click', '.cs-slide .cs-elements .cs-slide-editing-area', function() {
472
+ crellyslider_deselectElements();
473
+ });
474
+ function crellyslider_deselectElements() {
475
+ $('.cs-admin .cs-slide .cs-elements .cs-slide-editing-area .cs-element').removeClass('active');
476
+ $('.cs-admin .cs-slide .cs-elements .cs-elements-list .cs-element-settings').removeClass('active');
477
+ $('.cs-admin .cs-slide .cs-elements .cs-elements-list .cs-element-settings').css('display', 'none');
478
+
479
+ // Hide delete and duplicate element btns
480
+ $('.cs-admin .cs-slide .cs-elements-actions .cs-delete-element').addClass('cs-is-disabled');
481
+ $('.cs-admin .cs-slide .cs-elements-actions .cs-duplicate-element').addClass('cs-is-disabled');
482
+ }
483
+
484
+ // Delete element. Remember that the button should be enabled / disabled somewhere else
485
+ function crellyslider_deleteElement(element) {
486
+ var index = element.index('.cs-element');
487
+ var slide_parent = element.closest('.cs-slide');
488
+
489
+ element.remove();
490
+ var element_options = slide_parent.find('.cs-elements-list .cs-element-settings:eq(' + index + ')');
491
+ element_options.remove();
492
+ crellyslider_deselectElements();
493
+ }
494
+ $('.cs-admin #cs-slides').on('click', '.cs-slide .cs-elements .cs-elements-actions .cs-delete-element', function() {
495
+ // Click only if an element is selected
496
+ if($(this).hasClass('.cs-is-disabled')) {
497
+ return;
498
+ }
499
+
500
+ var slide_parent = $(this).closest('.cs-slide');
501
+ var element = slide_parent.find('.cs-elements .cs-slide-editing-area .cs-element.active');
502
+ crellyslider_deleteElement(element);
503
+ });
504
+
505
+ function crellyslider_duplicateElement(element) {
506
+ var index = element.index('.cs-element');
507
+ var slide_parent = element.closest('.cs-slide');
508
+
509
+ element.clone().appendTo(element.parent());
510
+ var element_options = slide_parent.find('.cs-elements-list .cs-element-settings:eq(' + index + ')');
511
+ element_options.clone().insertBefore(element_options.parent().find('.cs-void-text-element-settings'));
512
+
513
+ crellyslider_deselectElements();
514
+ crellyslider_selectElement(element.parent().find('.cs-element').last());
515
+
516
+ // Make draggable
517
+ crellyslider_draggableElements();
518
+ }
519
+ $('.cs-admin #cs-slides').on('click', '.cs-slide .cs-elements .cs-elements-actions .cs-duplicate-element', function() {
520
+ // Click only if an element is selected
521
+ if($(this).hasClass('.cs-is-disabled')) {
522
+ return;
523
+ }
524
+
525
+ var slide_parent = $(this).closest('.cs-slide');
526
+ var element = slide_parent.find('.cs-elements .cs-slide-editing-area .cs-element.active');
527
+ crellyslider_duplicateElement(element);
528
+ });
529
+
530
+ // Modify left position
531
+ $('.cs-admin').on('keyup', '.cs-elements .cs-elements-list .cs-element-settings .cs-element-data_left', function() {
532
+ var index = $(this).closest('.cs-element-settings').index();
533
+ $(this).closest('.cs-elements').find('.cs-slide-editing-area .cs-element:eq(' + index + ')').css('left', parseFloat($(this).val()));
534
+ });
535
+
536
+ // Modify top position
537
+ $('.cs-admin').on('keyup', '.cs-elements .cs-elements-list .cs-element-settings .cs-element-data_top', function() {
538
+ var index = $(this).closest('.cs-element-settings').index();
539
+ $(this).closest('.cs-elements').find('.cs-slide-editing-area .cs-element:eq(' + index + ')').css('top', parseFloat($(this).val()));
540
+ });
541
+
542
+ // Modify z-index
543
+ $('.cs-admin').on('keyup', '.cs-elements .cs-elements-list .cs-element-settings .cs-element-z_index', function() {
544
+ var index = $(this).closest('.cs-element-settings').index();
545
+ $(this).closest('.cs-elements').find('.cs-slide-editing-area .cs-element:eq(' + index + ')').css('z-index', parseFloat($(this).val()));
546
+ });
547
+
548
+ // Apply custom CSS
549
+ $('.cs-admin').on('keyup', '.cs-elements .cs-elements-list .cs-element-settings .cs-element-custom_css', function() {
550
+ var index = $(this).closest('.cs-element-settings').index();
551
+ // Save current positions
552
+ var left = $(this).closest('.cs-elements').find('.cs-slide-editing-area .cs-element:eq(' + index + ')').css('left');
553
+ var top = $(this).closest('.cs-elements').find('.cs-slide-editing-area .cs-element:eq(' + index + ')').css('top');
554
+ var z_index = $(this).closest('.cs-elements').find('.cs-slide-editing-area .cs-element:eq(' + index + ')').css('z-index');
555
+
556
+ // Apply CSS
557
+ $(this).closest('.cs-elements').find('.cs-slide-editing-area .cs-element:eq(' + index + ')').attr('style', $(this).val());
558
+ $(this).closest('.cs-elements').find('.cs-slide-editing-area .cs-element:eq(' + index + ')').css('top', top);
559
+ $(this).closest('.cs-elements').find('.cs-slide-editing-area .cs-element:eq(' + index + ')').css('left', left);
560
+ $(this).closest('.cs-elements').find('.cs-slide-editing-area .cs-element:eq(' + index + ')').css('z-index', z_index);
561
+ });
562
+
563
+ // TEXT ELEMENTS
564
+
565
+ // Add text click
566
+ $('.cs-admin #cs-slides').on('click', '.cs-slide .cs-elements .cs-elements-actions .cs-add-text-element', function() {
567
+ var slide_parent = $(this).closest('.cs-slide');
568
+ crellyslider_addTextElement(slide_parent);
569
+ });
570
+
571
+ // Add text. Receives the slide as object
572
+ function crellyslider_addTextElement(slide_parent) {
573
+ var area = slide_parent.find('.cs-slide-editing-area');
574
+ var settings_div = slide_parent.find('.cs-elements .cs-elements-list .cs-void-text-element-settings');
575
+ var settings = '<div class="cs-element-settings cs-text-element-settings">' + $('.cs-admin .cs-slide .cs-elements .cs-void-text-element-settings').html() + '</div>';
576
+
577
+ // Insert in editing area
578
+ area.append('<p class="cs-element cs-text-element" style="z-index: 1;">' + crellyslider_translations.text_element_default_html + '</p>');
579
+
580
+ // Insert the options
581
+ settings_div.before(settings);
582
+
583
+ // Make draggable
584
+ crellyslider_draggableElements();
585
+
586
+ // Display settings
587
+ crellyslider_selectElement(area.find('.cs-element').last());
588
+ }
589
+
590
+ // Modify text
591
+ $('.cs-admin').on('keyup', '.cs-elements .cs-elements-list .cs-element-settings .cs-element-inner_html', function() {
592
+ var index = $(this).closest('.cs-element-settings').index();
593
+ $(this).closest('.cs-elements').find('.cs-slide-editing-area .cs-element:eq(' + index + ')').html($(this).val());
594
+ });
595
+
596
+ // IMAGE ELEMENTS
597
+
598
+ // Add images click
599
+ $('.cs-admin #cs-slides').on('click', '.cs-slide .cs-elements .cs-elements-actions .cs-add-image-element', function() {
600
+ var slide_parent = $(this).closest('.cs-slide');
601
+ crellyslider_addImageElement(slide_parent);
602
+ });
603
+
604
+ // Upload click
605
+ $('.cs-admin').on('click', '.cs-elements .cs-elements-list .cs-image-element-settings .cs-image-element-upload-button', function() {
606
+ var slide_parent = $(this).closest('.cs-slide');
607
+ crellySliderUploadImageElement(slide_parent);
608
+ });
609
+
610
+ // Add image. Receives the slide as object
611
+ function crellyslider_addImageElement(slide_parent) {
612
+ var area = slide_parent.find('.cs-slide-editing-area');
613
+ var settings_div = slide_parent.find('.cs-elements .cs-elements-list .cs-void-text-element-settings');
614
+ var settings = '<div class="cs-element-settings cs-image-element-settings">' + $('.cs-admin .cs-slide .cs-elements .cs-void-image-element-settings').html() + '</div>';
615
+
616
+ // Temporarily insert an element with no src and alt
617
+ // Add the image into the editing area.
618
+ area.append('<img class="cs-element cs-image-element" style="z-index: 1;" />');
619
+
620
+ // Insert the options
621
+ settings_div.before(settings);
622
+
623
+ // Make draggable
624
+ crellyslider_draggableElements();
625
+
626
+ // Display settings
627
+ crellyslider_selectElement(area.find('.cs-element').last());
628
+
629
+ // Upload
630
+ crellySliderUploadImageElement(slide_parent);
631
+ }
632
+
633
+ function crellySliderUploadImageElement(slide_parent) {
634
+ var area = slide_parent.find('.cs-slide-editing-area');
635
+ var settings_div = slide_parent.find('.cs-elements .cs-elements-list .cs-void-text-element-settings');
636
+ var settings = '<div class="cs-element-settings cs-image-element-settings">' + $('.cs-admin .cs-slide .cs-elements .cs-void-image-element-settings').html() + '</div>';
637
+
638
+ var file_frame;
639
+ event.preventDefault();
640
+
641
+ // If the media frame already exists, reopen it.
642
+ if ( file_frame ) {
643
+ file_frame.open();
644
+ return;
645
+ }
646
+
647
+ // Create the media frame.
648
+ file_frame = wp.media.frames.file_frame = wp.media({
649
+ title: jQuery( this ).data( 'uploader_title' ),
650
+ button: {
651
+ text: jQuery( this ).data( 'uploader_button_text' ),
652
+ },
653
+ multiple: false // Set to true to allow multiple files to be selected
654
+ });
655
+
656
+ // When an image is selected, run a callback.
657
+ file_frame.on( 'select', function() {
658
+ // We set multiple to false so only get one image from the uploader
659
+ attachment = file_frame.state().get('selection').first().toJSON();
660
+
661
+ // Do something with attachment.id and/or attachment.url here
662
+ var image_src = attachment.url;
663
+ var image_alt = attachment.alt;
664
+
665
+ // Set attributes
666
+ var image = area.find('.cs-element').last();
667
+ image.attr('src', image_src);
668
+ image.attr('alt', image_alt);
669
+
670
+ // Set data (will be used in tha ajax call)
671
+ settings_div.parent().find('.cs-element-settings.active .cs-image-element-upload-button').data('src', image_src);
672
+ settings_div.parent().find('.cs-element-settings.active .cs-image-element-upload-button').data('alt', image_alt);
673
+ });
674
+
675
+ // Finally, open the modal
676
+ file_frame.open();
677
+ }
678
+
679
+ /******************/
680
+ /** LIVE PREVIEW **/
681
+ /******************/
682
+
683
+ // Live preview click
684
+ $('.cs-admin #cs-slides').on('click', '.cs-slide .cs-elements .cs-elements-actions .cs-live-preview', function() {
685
+ var btn = $(this);
686
+ var slide_parent = btn.closest('.cs-slide');
687
+
688
+ if(! btn.hasClass('cs-live-preview-running')) {
689
+ btn.addClass('cs-live-preview-running');
690
+ btn.text(crellyslider_translations.slide_stop_preview);
691
+ crellyslider_startLivePreview(slide_parent);
692
+ }
693
+ else {
694
+ btn.removeClass('cs-live-preview-running');
695
+ btn.text(crellyslider_translations.slide_live_preview);
696
+ crellyslider_stopLivePreview(slide_parent);
697
+ }
698
+ });
699
+
700
+ function crellyslider_startLivePreview(slide_parent) {
701
+ crellyslider_deselectElements();
702
+
703
+ var area = slide_parent.find('.cs-slide-editing-area');
704
+
705
+ area.clone().addClass('cs-slide-live-preview-area').insertAfter(area);
706
+ var prev = slide_parent.find('.cs-slide-live-preview-area');
707
+
708
+ area.css('display', 'none');
709
+
710
+ // Set elements data and styles
711
+ var elements = prev.find('.cs-element');
712
+ var original_elements = area.closest('.cs-slide').find('.cs-elements .cs-element-settings');
713
+ var i = 0;
714
+ elements.each(function() {
715
+ var element = $(this);
716
+
717
+ element.attr({
718
+ 'data-left' : parseInt(original_elements.eq(i).find('.cs-element-data_left').val()),
719
+ 'data-top' : parseInt(original_elements.eq(i).find('.cs-element-data_top').val()),
720
+ 'data-delay' : parseInt(original_elements.eq(i).find('.cs-element-data_delay').val()),
721
+ 'data-time' : original_elements.eq(i).find('.cs-element-data_time').val(),
722
+ 'data-in' : original_elements.eq(i).find('.cs-element-data_in').val(),
723
+ 'data-out' : original_elements.eq(i).find('.cs-element-data_out').val(),
724
+ 'data-ease-in' : parseInt(original_elements.eq(i).find('.cs-element-data_easeIn').val()),
725
+ 'data-ease-out' : parseInt(original_elements.eq(i).find('.cs-element-data_easeOut').val()),
726
+ });
727
+
728
+ element.removeAttr('style');
729
+ element.attr('style', original_elements.eq(i).find('.cs-element-custom_css').val());
730
+ element.css({
731
+ 'z-index' : parseInt(original_elements.eq(i).find('.cs-element-z_index').val()),
732
+ });
733
+
734
+ element.removeAttr('class');
735
+
736
+ i++;
737
+ });
738
+
739
+ // Prepare HTML structure
740
+ prev.wrapInner('<li />');
741
+ prev.wrapInner('<ul />');
742
+
743
+ // Set slide data and styles
744
+ var slide = prev.find('ul > li');
745
+ var original_slide = area.closest('.cs-slide');
746
+ var content = original_slide.find('.cs-slide-settings-list');
747
+ slide.attr({
748
+ 'data-in' : content.find('.cs-slide-data_in').val(),
749
+ 'data-out' : content.find('.cs-slide-data_out').val(),
750
+ 'data-time' : parseInt(content.find('.cs-slide-data_time').val()),
751
+ 'data-ease-in' : parseInt(content.find('.cs-slide-data_easeIn').val()),
752
+ 'data-ease-out' : parseInt(content.find('.cs-slide-data_easeOut').val()),
753
+ });
754
+
755
+ slide.attr('style', content.find('.cs-slide-custom_css').val());
756
+ slide.css({
757
+ 'background-image' : area.css('background-image') ,
758
+ 'background-color' : area.css('background-color') + "",
759
+ 'background-position-x' : content.find('.cs-slide-background_propriety_position_x').val(),
760
+ 'background-position-y' : content.find('.cs-slide-background_propriety_position_y').val(),
761
+ 'background-repeat' : content.find('input[name="cs-slide-background_repeat"]:checked').val() == '0' ? 'no-repeat' : 'repeat',
762
+ 'background-size' : content.find('.cs-slide-background_propriety_size').val(),
763
+ });
764
+
765
+ var slider = $('.cs-admin .cs-slider #cs-slider-settings');
766
+
767
+ // Run Crelly Slider
768
+ prev.crellySlider({
769
+ 'layout' : 'fixed',
770
+ 'responsive' : false,
771
+ 'startWidth' : parseInt(slider.find('#cs-slider-startWidth').val()),
772
+ 'startHeight' : parseInt(slider.find('#cs-slider-startHeight').val()),
773
+
774
+ 'automaticSlide' : true,
775
+ 'showControls' : false,
776
+ 'showNavigation' : false,
777
+ 'showProgressBar' : false,
778
+ 'pauseOnHover' : false,
779
+ });
780
+ }
781
+
782
+ function crellyslider_stopLivePreview(slide_parent) {
783
+ var area = slide_parent.find('.cs-slide-editing-area');
784
+ var prev = slide_parent.find('.cs-slide-live-preview-area');
785
+
786
+ prev.remove();
787
+ area.css('display', 'block');
788
+ }
789
+
790
+ /****************/
791
+ /** AJAX CALLS **/
792
+ /****************/
793
+
794
+ // Save or update the new slider in the database
795
+ $('.cs-admin .cs-slider .cs-save-settings').click(function() {
796
+ crellyslider_saveSlider();
797
+ });
798
+
799
+ // Delete slider
800
+ $('.cs-admin .cs-home .cs-sliders-list .cs-delete-slider').click(function() {
801
+ crellyslider_deleteSlider($(this));
802
+ });
803
+
804
+ // Sends an array with the new or current slider options
805
+ function crellyslider_saveSlider() {
806
+ var content = $('.cs-admin .cs-slider #cs-slider-settings');
807
+ var options = {
808
+ id : parseInt($('.cs-admin .cs-slider .cs-save-settings').data('id')),
809
+ name : content.find('#cs-slider-name').val(),
810
+ alias : content.find('#cs-slider-alias').text(),
811
+ layout : content.find('#cs-slider-layout').val(),
812
+ responsive : parseInt(content.find('#cs-slider-responsive').val()),
813
+ startWidth : parseInt(content.find('#cs-slider-startWidth').val()),
814
+ startHeight : parseInt(content.find('#cs-slider-startHeight').val()),
815
+ automaticSlide : parseInt(content.find('#cs-slider-automaticSlide').val()),
816
+ showControls : parseInt(content.find('#cs-slider-showControls').val()),
817
+ showNavigation : parseInt(content.find('#cs-slider-showNavigation').val()),
818
+ showProgressBar : parseInt(content.find('#cs-slider-showProgressBar').val()),
819
+ pauseOnHover : parseInt(content.find('#cs-slider-pauseOnHover').val()),
820
+ };
821
+
822
+ // Do the ajax call
823
+ jQuery.ajax({
824
+ type : 'POST',
825
+ dataType : 'json',
826
+ url : ajaxurl,
827
+ data : {
828
+ // Is it saving or updating?
829
+ action: $('.cs-admin .cs-slider').hasClass('cs-add-slider') ? 'crellyslider_addSlider' : 'crellyslider_editSlider',
830
+ datas : options,
831
+ },
832
+ success: function(response) {
833
+ //alert('Save slider response: ' + response);
834
+ // If adding a new slider, response will be the generated id, else will be the number of rows modified
835
+ if(response !== false) {
836
+ // If is adding a slider, redirect
837
+ if($('.cs-admin .cs-slider').hasClass('cs-add-slider')) {
838
+ window.location.href = '?page=crellyslider&view=edit&id=' + response;
839
+ return;
840
+ }
841
+
842
+ crellyslider_saveSlides();
843
+ }
844
+ else {
845
+ crellyslider_showError();
846
+ }
847
+ },
848
+
849
+ error: function(XMLHttpRequest, textStatus, errorThrown) {
850
+ alert("Status: " + textStatus); alert("Error: " + errorThrown);
851
+ crellyslider_showError();
852
+ }
853
+ });
854
+ }
855
+
856
+ // Sends an array with all the slides options
857
+ function crellyslider_saveSlides() {
858
+ var slides = $('.cs-admin .cs-slider #cs-slides .cs-slide');
859
+ var i = 0;
860
+ var final_options = new Array();
861
+
862
+ slides.each(function() {
863
+ var slide = $(this);
864
+ var content = slide.find('.cs-slide-settings-list');
865
+
866
+ var options = {
867
+ slider_parent : parseInt($('.cs-admin .cs-save-settings').data('id')),
868
+ position : i,
869
+
870
+ background_type_image : slide.find('.cs-slide-editing-area').css('background-image') == 'none' ? 'none' : slide.find('.cs-slide-editing-area').data('background-image-src') + "",
871
+ background_type_color : content.find('input[name="cs-slide-background_type_color"]:checked').val() == '0' ? 'transparent' : slide.find('.cs-slide-editing-area').css('background-color') + "",
872
+ background_propriety_position_x : content.find('.cs-slide-background_propriety_position_x').val(),
873
+ background_propriety_position_y : content.find('.cs-slide-background_propriety_position_y').val(),
874
+ background_repeat : content.find('input[name="cs-slide-background_repeat"]:checked').val() == '0' ? 'no-repeat' : 'repeat',
875
+ background_propriety_size : content.find('.cs-slide-background_propriety_size').val(),
876
+ data_in : content.find('.cs-slide-data_in').val(),
877
+ data_out : content.find('.cs-slide-data_out').val(),
878
+ data_time : parseInt(content.find('.cs-slide-data_time').val()),
879
+ data_easeIn : parseInt(content.find('.cs-slide-data_easeIn').val()),
880
+ data_easeOut : parseInt(content.find('.cs-slide-data_easeOut').val()),
881
+ custom_css : content.find('.cs-slide-custom_css').val(),
882
+ };
883
+
884
+ final_options[i] = options;
885
+
886
+ i++;
887
+ });
888
+
889
+ // Do the ajax call
890
+ jQuery.ajax({
891
+ type : 'POST',
892
+ dataType : 'json',
893
+ url : ajaxurl,
894
+ data : {
895
+ action: 'crellyslider_editSlides',
896
+ datas : final_options,
897
+ },
898
+ success: function(response) {
899
+ //alert('Save slides response: ' + response);
900
+ if(response !== false) {
901
+ crellyslider_saveElements();
902
+ }
903
+ else {
904
+ crellyslider_showError();
905
+ }
906
+ },
907
+
908
+ error: function(XMLHttpRequest, textStatus, errorThrown) {
909
+ alert("Status: " + textStatus); alert("Error: " + errorThrown);
910
+ crellyslider_showError();
911
+ }
912
+ });
913
+ }
914
+
915
+ // Sends an array with all the elements options of each slide
916
+ function crellyslider_saveElements() {
917
+ var slides = $('.cs-admin .cs-slider #cs-slides .cs-slide');
918
+ var i = 0, j = 0;
919
+ var final_options = new Array();
920
+
921
+ slides.each(function() {
922
+ var slide = $(this);
923
+ var elements = slide.find('.cs-elements .cs-element-settings');
924
+
925
+ elements.each(function() {
926
+ var element = $(this);
927
+
928
+ // Stop each loop when reach the void element
929
+ if(element.hasClass('cs-void-element-settings')) {
930
+ return;
931
+ }
932
+
933
+ var options = {
934
+ slider_parent : parseInt($('.cs-admin .cs-save-settings').data('id')),
935
+ slide_parent : i,
936
+ position : element.index(),
937
+ type : element.hasClass('cs-text-element-settings') ? 'text' : element.hasClass('cs-image-element-settings') ? 'image' : '',
938
+
939
+ inner_html : element.hasClass('cs-text-element-settings') ? element.find('.cs-element-inner_html').val() : '',
940
+ image_src : element.hasClass('cs-image-element-settings') ? element.find('.cs-image-element-upload-button').data('src') : '',
941
+ image_alt : element.hasClass('cs-image-element-settings') ? element.find('.cs-image-element-upload-button').data('alt') : '',
942
+ data_left : parseInt(element.find('.cs-element-data_left').val()),
943
+ data_top : parseInt(element.find('.cs-element-data_top').val()),
944
+ z_index : parseInt(element.find('.cs-element-z_index').val()),
945
+ data_delay : parseInt(element.find('.cs-element-data_delay').val()),
946
+ data_time : element.find('.cs-element-data_time').val(),
947
+ data_in : element.find('.cs-element-data_in').val(),
948
+ data_out : element.find('.cs-element-data_out').val(),
949
+ data_easeIn : parseInt(element.find('.cs-element-data_easeIn').val()),
950
+ data_easeOut : parseInt(element.find('.cs-element-data_easeOut').val()),
951
+ custom_css : element.find('.cs-element-custom_css').val(),
952
+ };
953
+
954
+ final_options[j] = options;
955
+
956
+ //console.log(final_options[j]);
957
+
958
+ j++;
959
+ });
960
+
961
+ i++;
962
+ });
963
+
964
+ // Do the ajax call
965
+ jQuery.ajax({
966
+ type : 'POST',
967
+ dataType : 'json',
968
+ url : ajaxurl,
969
+ data : {
970
+ action: 'crellyslider_editElements',
971
+ datas : final_options,
972
+ },
973
+ success: function(response) {
974
+ //alert('Save elements response: ' + response);
975
+ if(response !== false) {
976
+ crellyslider_showSuccess();
977
+ }
978
+ else {
979
+ crellyslider_showError();
980
+ }
981
+ },
982
+
983
+ error: function(XMLHttpRequest, textStatus, errorThrown) {
984
+ alert("Status: " + textStatus); alert("Error: " + errorThrown);
985
+ crellyslider_showError();
986
+ }
987
+ });
988
+ }
989
+
990
+ function crellyslider_deleteSlider(content) {
991
+ // Get options
992
+ var options = {
993
+ id : parseInt(content.data('delete')),
994
+ };
995
+
996
+ // Do the ajax call
997
+ jQuery.ajax({
998
+ type : 'POST',
999
+ dataType : 'json',
1000
+ url : ajaxurl,
1001
+ data : {
1002
+ action: 'crellyslider_deleteSlider',
1003
+ datas : options,
1004
+ },
1005
+ success: function(response) {
1006
+ //alert('Delete slider response: ' + response);
1007
+ if(response !== false) {
1008
+ content.parent().parent().remove();
1009
+ crellyslider_showSuccess();
1010
+ }
1011
+ else {
1012
+ crellyslider_showError();
1013
+ }
1014
+ },
1015
+
1016
+ error: function(XMLHttpRequest, textStatus, errorThrown) {
1017
+ alert("Status: " + textStatus); alert("Error: " + errorThrown);
1018
+ crellyslider_showError();
1019
+ },
1020
+ });
1021
+ }
1022
+
1023
+ });
1024
+ });
wordpress/slider.php ADDED
@@ -0,0 +1,224 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="cs-slider-settings">
2
+ <?php
3
+ // Contains the key, the display name and a boolean: true if is the default option
4
+ $slider_select_options = array(
5
+ 'layout' => array(
6
+ 'full-width' => array(__('Full Width', 'crellyslider'), false),
7
+ 'fixed' => array(__('Fixed', 'crellyslider'), true),
8
+ ),
9
+ 'boolean' => array(
10
+ 1 => array(__('Yes', 'crellyslider'), true),
11
+ 0 => array(__('No', 'crellyslider'), false),
12
+ ),
13
+ );
14
+ ?>
15
+
16
+ <?php if($edit) { ?>
17
+ <input type="text" id="cs-slider-name" placeholder="<?php _e('Slider Name', 'crellyslider'); ?>" value="<?php echo $slider->name; ?>" />
18
+ <?php
19
+ }
20
+ else { ?>
21
+ <input type="text" id="cs-slider-name" placeholder="<?php _e('Slider Name', 'crellyslider'); ?>" />
22
+ <?php } ?>
23
+
24
+ <br />
25
+ <br />
26
+
27
+ <strong><?php _e('Alias:', 'crellyslider'); ?></strong>
28
+ <?php if($edit) { ?>
29
+ <span id="cs-slider-alias"><?php echo $slider->alias; ?></span>
30
+ <?php
31
+ }
32
+ else { ?>
33
+ <span id="cs-slider-alias"></span>
34
+ <?php } ?>
35
+
36
+ <br />
37
+ <br />
38
+
39
+ <strong><?php _e('Shortcode:', 'crellyslider'); ?></strong>
40
+ <?php if($edit) { ?>
41
+ <span id="cs-slider-shortcode">[crellyslider alias="<?php echo $slider->alias; ?>"]</span>
42
+ <?php
43
+ }
44
+ else { ?>
45
+ <span id="cs-slider-shortcode"></span>
46
+ <?php } ?>
47
+
48
+ <br />
49
+ <br />
50
+
51
+ <table class="cs-slider-settings-list cs-table">
52
+ <thead>
53
+ <tr class="odd-row">
54
+ <th colspan="3"><?php _e('Slider General Options', 'crellyslider'); ?></th>
55
+ </tr>
56
+ </thead>
57
+ <tbody>
58
+ <tr class="cs-table-header">
59
+ <td><?php _e('Option', 'crellyslider'); ?></td>
60
+ <td><?php _e('Parameter', 'crellyslider'); ?></td>
61
+ <td><?php _e('Description', 'crellyslider'); ?></td>
62
+ </tr>
63
+ <tr>
64
+ <td class="cs-name"><?php _e('Layout', 'crellyslider'); ?></td>
65
+ <td class="cs-content">
66
+ <select id="cs-slider-layout">
67
+ <?php
68
+ foreach($slider_select_options['layout'] as $key => $value) {
69
+ echo '<option value="' . $key . '"';
70
+ if((!$edit && $value[1]) || ($edit && $slider->layout == $key)) {
71
+ echo ' selected';
72
+ }
73
+ echo '>' . $value[0] . '</option>';
74
+ }
75
+ ?>
76
+ </select>
77
+ </td>
78
+ <td class="cs-description">
79
+ <?php _e('Modify the layout type of the slider.', 'crellyslider'); ?>
80
+ </td>
81
+ </tr>
82
+ <tr>
83
+ <td class="cs-name"><?php _e('Responsive', 'crellyslider'); ?></td>
84
+ <td class="cs-content">
85
+ <select id="cs-slider-responsive">
86
+ <?php
87
+ foreach($slider_select_options['boolean'] as $key => $value) {
88
+ echo '<option value="' . $key . '"';
89
+ if((!$edit && $value[1]) || ($edit && $slider->responsive == $key)) {
90
+ echo ' selected';
91
+ }
92
+ echo '>' . $value[0] . '</option>';
93
+ }
94
+ ?>
95
+ </select>
96
+ </td>
97
+ <td class="cs-description">
98
+ <?php _e('The slider will be adapted to the screen size.', 'crellyslider'); ?>
99
+ </td>
100
+ </tr>
101
+ <tr>
102
+ <td class="cs-name"><?php _e('Start Width', 'crellyslider'); ?></td>
103
+ <td class="cs-content">
104
+ <?php
105
+ if(!$edit) echo '<input id="cs-slider-startWidth" type="text" value="1170" />';
106
+ else echo '<input id="cs-slider-startWidth" type="text" value="' . $slider->startWidth .'" />';
107
+ ?>
108
+ px
109
+ </td>
110
+ <td class="cs-description">
111
+ <?php _e('The content initial width of the slider.', 'crellyslider'); ?>
112
+ </td>
113
+ </tr>
114
+ <tr>
115
+ <td class="cs-name"><?php _e('Start Height', 'crellyslider'); ?></td>
116
+ <td class="cs-content">
117
+ <?php
118
+ if(!$edit) echo '<input id="cs-slider-startHeight" type="text" value="500" />';
119
+ else echo '<input id="cs-slider-startHeight" type="text" value="' . $slider->startHeight .'" />';
120
+ ?>
121
+ px
122
+ </td>
123
+ <td class="cs-description">
124
+ <?php _e('The content initial height of the slider.', 'crellyslider'); ?>
125
+ </td>
126
+ </tr>
127
+ <tr>
128
+ <td class="cs-name"><?php _e('Automatic Slide', 'crellyslider'); ?></td>
129
+ <td class="cs-content">
130
+ <select id="cs-slider-automaticSlide">
131
+ <?php
132
+ foreach($slider_select_options['boolean'] as $key => $value) {
133
+ echo '<option value="' . $key . '"';
134
+ if((!$edit && $value[1]) || ($edit && $slider->automaticSlide == $key)) {
135
+ echo ' selected';
136
+ }
137
+ echo '>' . $value[0] . '</option>';
138
+ }
139
+ ?>
140
+ </select>
141
+ </td>
142
+ <td class="cs-description">
143
+ <?php _e('The slides loop is automatic.', 'crellyslider'); ?>
144
+ </td>
145
+ </tr>
146
+ <tr>
147
+ <td class="cs-name"><?php _e('Show Controls', 'crellyslider'); ?></td>
148
+ <td class="cs-content">
149
+ <select id="cs-slider-showControls">
150
+ <?php
151
+ foreach($slider_select_options['boolean'] as $key => $value) {
152
+ echo '<option value="' . $key . '"';
153
+ if((!$edit && $value[1]) || ($edit && $slider->showControls == $key)) {
154
+ echo ' selected';
155
+ }
156
+ echo '>' . $value[0] . '</option>';
157
+ }
158
+ ?>
159
+ </select>
160
+ </td>
161
+ <td class="cs-description">
162
+ <?php _e('Show the previous and next arrows.', 'crellyslider'); ?>
163
+ </td>
164
+ </tr>
165
+ <tr>
166
+ <td class="cs-name"><?php _e('Show Navigation', 'crellyslider'); ?></td>
167
+ <td class="cs-content">
168
+ <select id="cs-slider-showNavigation">
169
+ <?php
170
+ foreach($slider_select_options['boolean'] as $key => $value) {
171
+ echo '<option value="' . $key . '"';
172
+ if((!$edit && $value[1]) || ($edit && $slider->showNavigation == $key)) {
173
+ echo ' selected';
174
+ }
175
+ echo '>' . $value[0] . '</option>';
176
+ }
177
+ ?>
178
+ </select>
179
+ </td>
180
+ <td class="cs-description">
181
+ <?php _e('Show the circular links.', 'crellyslider'); ?>
182
+ </td>
183
+ </tr>
184
+ <tr>
185
+ <td class="cs-name"><?php _e('Show Progress Bar', 'crellyslider'); ?></td>
186
+ <td class="cs-content">
187
+ <select id="cs-slider-showProgressBar">
188
+ <?php
189
+ foreach($slider_select_options['boolean'] as $key => $value) {
190
+ echo '<option value="' . $key . '"';
191
+ if((!$edit && $value[1]) || ($edit && $slider->showProgressBar == $key)) {
192
+ echo ' selected';
193
+ }
194
+ echo '>' . $value[0] . '</option>';
195
+ }
196
+ ?>
197
+ </select>
198
+ </td>
199
+ <td class="cs-description">
200
+ <?php _e('Draw the progress bar during the slide execution.', 'crellyslider'); ?>
201
+ </td>
202
+ </tr>
203
+ <tr>
204
+ <td class="cs-name"><?php _e('Pause on Hover', 'crellyslider'); ?></td>
205
+ <td class="cs-content">
206
+ <select id="cs-slider-pauseOnHover">
207
+ <?php
208
+ foreach($slider_select_options['boolean'] as $key => $value) {
209
+ echo '<option value="' . $key . '"';
210
+ if((!$edit && $value[1]) || ($edit && $slider->pauseOnHover == $key)) {
211
+ echo ' selected';
212
+ }
213
+ echo '>' . $value[0] . '</option>';
214
+ }
215
+ ?>
216
+ </select>
217
+ </td>
218
+ <td class="cs-description">
219
+ <?php _e('Pause the current slide when hovered.', 'crellyslider'); ?>
220
+ </td>
221
+ </tr>
222
+ </tbody>
223
+ </table>
224
+ </div>
wordpress/slides.php ADDED
@@ -0,0 +1,289 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="cs-slides">
2
+ <div class="cs-slide-tabs cs-tabs cs-tabs-border">
3
+ <ul class="cs-sortable">
4
+ <?php
5
+ if($edit) {
6
+ $j = 0;
7
+ $slides_num = count($slides);
8
+ foreach($slides as $slide) {
9
+ if($j == $slides_num - 1) {
10
+ echo '<li class="ui-state-default active">';
11
+ }
12
+ else {
13
+ echo '<li class="ui-state-default">';
14
+ }
15
+ echo '<a>' . __('Slide', 'crellyslider') . ' <span class="cs-slide-index">' . (($slide->position) + 1) . '</span></a>';
16
+ echo '<span class="cs-close"></span>';
17
+ echo '</li>';
18
+
19
+ $j++;
20
+ }
21
+ }
22
+ ?>
23
+ <li class="ui-state-default ui-state-disabled"><a class="cs-add-new"><?php _e('Add Slide', 'crellyslider'); ?></a></li>
24
+ </ul>
25
+
26
+ <br />
27
+ <br />
28
+ <br />
29
+
30
+ <div class="cs-slides-list">
31
+ <?php
32
+ if($edit) {
33
+ foreach($slides as $slide) {
34
+ echo '<div class="cs-slide">';
35
+ crellyslider_printSlide($slider, $slide, $edit);
36
+ echo '</div>';
37
+ }
38
+ }
39
+ ?>
40
+ </div>
41
+ <div class="cs-void-slide"><?php crellyslider_printSlide($slider, false, $edit); ?></div>
42
+
43
+ <div style="clear: both"></div>
44
+ </div>
45
+ </div>
46
+
47
+ <?php
48
+ // Prints a slide. If the ID is not false, prints the values from MYSQL database, else prints a slide with default values. It has to receive the $edit variable because the elements.php file has to see it
49
+ function crellyslider_printSlide($slider, $slide, $edit) {
50
+ $void = !$slide ? true : false;
51
+
52
+ $animations = array(
53
+ 'fade' => array(__('Fade', 'crellyslider'), true),
54
+ 'fadeLeft' => array(__('Fade left', 'crellyslider'), false),
55
+ 'fadeRight' => array(__('Fade right', 'crellyslider'), false),
56
+ 'slideLeft' => array(__('Slide left', 'crellyslider'), false),
57
+ 'slideRight' => array(__('Slide right', 'crellyslider'), false),
58
+ 'slideUp' => array(__('Slide up', 'crellyslider'), false),
59
+ 'slideDown' => array(__('Slide down', 'crellyslider'), false),
60
+ );
61
+ ?>
62
+
63
+ <table class="cs-slide-settings-list cs-table">
64
+ <thead>
65
+ <tr class="odd-row">
66
+ <th colspan="3"><?php _e('Slides General Options', 'crellyslider'); ?></th>
67
+ </tr>
68
+ </thead>
69
+
70
+ <tbody>
71
+ <tr class="cs-table-header">
72
+ <td><?php _e('Option', 'crellyslider'); ?></td>
73
+ <td><?php _e('Parameter', 'crellyslider'); ?></td>
74
+ <td><?php _e('Description', 'crellyslider'); ?></td>
75
+ </tr>
76
+ <tr>
77
+ <td class="cs-name"><?php _e('Background', 'crellyslider'); ?></td>
78
+ <td class="cs-content">
79
+ <?php
80
+ if($void): ?>
81
+ <?php _e('Background image:', 'crellyslider'); ?> &nbsp;
82
+ <form>
83
+ <input type="radio" value="0" name="cs-slide-background_type_image" checked /> <?php _e('None', 'crellyslider'); ?> &nbsp;
84
+ <input type="radio" value="1" name="cs-slide-background_type_image" /> <input class="cs-slide-background_type_image-upload-button cs-button cs-is-default" type="button" value="<?php _e('Select image', 'crellyslider'); ?>" />
85
+ </form>
86
+
87
+ <br />
88
+ <br />
89
+
90
+ <?php _e('Background color:', 'crellyslider'); ?> &nbsp;
91
+ <form>
92
+ <input type="radio" value="0" name="cs-slide-background_type_color" checked /> <?php _e('Transparent', 'crellyslider'); ?> &nbsp;
93
+ <input type="radio" value="1" name="cs-slide-background_type_color" /> <input class="cs-slide-background_type_color-picker-input cs-button cs-is-default" type="text" value="rgb(255, 255, 255)" />
94
+ </form>
95
+
96
+ <br />
97
+ <br />
98
+
99
+ <?php _e('Background position-x:', 'crellyslider'); ?> &nbsp;
100
+ <input type="text" value="0" class="cs-slide-background_propriety_position_x" />
101
+ <br />
102
+ <?php _e('Background position-y:', 'crellyslider'); ?> &nbsp;
103
+ <input type="text" value="0" class="cs-slide-background_propriety_position_y" />
104
+
105
+ <br />
106
+ <br />
107
+
108
+ <?php _e('Background repeat:', 'crellyslider'); ?> &nbsp;
109
+ <form>
110
+ <input type="radio" value="1" name="cs-slide-background_repeat" checked /> <?php _e('Repeat', 'crellyslider'); ?> &nbsp;
111
+ <input type="radio" value="0" name="cs-slide-background_repeat" /> <?php _e('No repeat', 'crellyslider'); ?>
112
+ </form>
113
+
114
+ <br />
115
+ <br />
116
+
117
+ <?php _e('Background size:', 'crellyslider'); ?> &nbsp;
118
+ <input type="text" value="auto" class="cs-slide-background_propriety_size" />
119
+ <?php else: ?>
120
+ <?php _e('Background image:', 'crellyslider'); ?> &nbsp;
121
+ <form>
122
+ <?php if($slide->background_type_image == 'none' || $slide->background_type_image == 'undefined'): ?>
123
+ <input type="radio" value="0" name="cs-slide-background_type_image" checked /> <?php _e('None', 'crellyslider'); ?> &nbsp;
124
+ <input type="radio" value="1" name="cs-slide-background_type_image" /> <input class="cs-slide-background_type_image-upload-button cs-button cs-is-default" type="button" value="<?php _e('Select image', 'crellyslider'); ?>" />
125
+ <?php else: ?>
126
+ <input type="radio" value="0" name="cs-slide-background_type_image" /> <?php _e('None', 'crellyslider'); ?> &nbsp;
127
+ <input type="radio" value="1" name="cs-slide-background_type_image" checked /> <input class="cs-slide-background_type_image-upload-button cs-button cs-is-default" type="button" value="<?php _e('Select image', 'crellyslider'); ?>" />
128
+ <?php endif; ?>
129
+ </form>
130
+
131
+ <br />
132
+ <br />
133
+
134
+ <?php _e('Background color:', 'crellyslider'); ?> &nbsp;
135
+ <form>
136
+ <?php if($slide->background_type_color == 'transparent'): ?>
137
+ <input type="radio" value="0" name="cs-slide-background_type_color" checked /> <?php _e('Transparent', 'crellyslider'); ?> &nbsp;
138
+ <input type="radio" value="1" name="cs-slide-background_type_color" /> <input class="cs-slide-background_type_color-picker-input cs-button cs-is-default" type="text" value="rgb(255, 255, 255)" />
139
+ <?php else: ?>
140
+ <input type="radio" value="0" name="cs-slide-background_type_color" /> <?php _e('Transparent', 'crellyslider'); ?> &nbsp;
141
+ <input type="radio" value="1" name="cs-slide-background_type_color" checked /> <input class="cs-slide-background_type_color-picker-input cs-button cs-is-default" type="text" value="<?php echo $slide->background_type_color; ?>" />
142
+ <?php endif; ?>
143
+ </form>
144
+
145
+ <br />
146
+ <br />
147
+
148
+ <?php _e('Background position-x:', 'crellyslider'); ?> &nbsp;
149
+ <input type="text" value="<?php echo $slide->background_propriety_position_x; ?>" class="cs-slide-background_propriety_position_x" />
150
+ <br />
151
+ <?php _e('Background position-y:', 'crellyslider'); ?> &nbsp;
152
+ <input type="text" value="<?php echo $slide->background_propriety_position_y; ?>" class="cs-slide-background_propriety_position_y" />
153
+
154
+ <br />
155
+ <br />
156
+
157
+ <?php _e('Background repeat:', 'crellyslider'); ?> &nbsp;
158
+ <form>
159
+ <?php if($slide->background_repeat == 'repeat'): ?>
160
+ <input type="radio" value="1" name="cs-slide-background_repeat" checked /> <?php _e('Repeat', 'crellyslider'); ?> &nbsp;
161
+ <input type="radio" value="0" name="cs-slide-background_repeat" /> <?php _e('No repeat', 'crellyslider'); ?>
162
+ <?php else: ?>
163
+ <input type="radio" value="1" name="cs-slide-background_repeat" /> <?php _e('Repeat', 'crellyslider'); ?> &nbsp;
164
+ <input type="radio" value="0" name="cs-slide-background_repeat" checked /> <?php _e('No repeat', 'crellyslider'); ?>
165
+ <?php endif; ?>
166
+ </form>
167
+
168
+ <br />
169
+ <br />
170
+
171
+ <?php _e('Background size:', 'crellyslider'); ?> &nbsp;
172
+ <input type="text" value="<?php echo $slide->background_propriety_size; ?>" class="cs-slide-background_propriety_size" />
173
+ <?php endif; ?>
174
+ </td>
175
+ <td class="cs-description">
176
+ <?php _e('The background of the slide and its proprieties.', 'crellyslider'); ?>
177
+ </td>
178
+ </tr>
179
+ <tr>
180
+ <td class="cs-name"><?php _e('In animation', 'crellyslider'); ?></td>
181
+ <td class="cs-content">
182
+ <select class="cs-slide-data_in">
183
+ <?php
184
+ foreach($animations as $key => $value) {
185
+ echo '<option value="' . $key . '"';
186
+ if(($void && $value[1]) || (!$void && $slide->data_in == $key)) {
187
+ echo ' selected';
188
+ }
189
+ echo '>' . $value[0] . '</option>';
190
+ }
191
+ ?>
192
+ </select>
193
+ </td>
194
+ <td class="cs-description">
195
+ <?php _e('The in animation of the slide.', 'crellyslider'); ?>
196
+ </td>
197
+ </tr>
198
+ <tr>
199
+ <td class="cs-name"><?php _e('Out animation', 'crellyslider'); ?></td>
200
+ <td class="cs-content">
201
+ <select class="cs-slide-data_out">
202
+ <?php
203
+ foreach($animations as $key => $value) {
204
+ echo '<option value="' . $key . '"';
205
+ if(($void && $value[1]) || (!$void && $slide->data_in == $key)) {
206
+ echo ' selected';
207
+ }
208
+ echo '>' . $value[0] . '</option>';
209
+ }
210
+ ?>
211
+ </select>
212
+ </td>
213
+ <td class="cs-description">
214
+ <?php _e('The out animation of the slide.', 'crellyslider'); ?>
215
+ </td>
216
+ </tr>
217
+ <tr>
218
+ <td class="cs-name"><?php _e('Time', 'crellyslider'); ?></td>
219
+ <td class="cs-content">
220
+ <?php
221
+ if($void) echo '<input class="cs-slide-data_time" type="text" value="3000" />';
222
+ else echo '<input class="cs-slide-data_time" type="text" value="' . $slide->data_time .'" />';
223
+ ?>
224
+ ms
225
+ </td>
226
+ <td class="cs-description">
227
+ <?php _e('The time that the slide will remain on the screen.', 'crellyslider'); ?>
228
+ </td>
229
+ </tr>
230
+ <tr>
231
+ <td class="cs-name"><?php _e('Ease In', 'crellyslider'); ?></td>
232
+ <td class="cs-content">
233
+ <?php
234
+ if($void) echo '<input class="cs-slide-data_easeIn" type="text" value="300" />';
235
+ else echo '<input class="cs-slide-data_easeIn" type="text" value="' . $slide->data_easeIn .'" />';
236
+ ?>
237
+ ms
238
+ </td>
239
+ <td class="cs-description">
240
+ <?php _e('The time that the slide will take to get in.', 'crellyslider'); ?>
241
+ </td>
242
+ </tr>
243
+ <tr>
244
+ <td class="cs-name"><?php _e('Ease Out', 'crellyslider'); ?></td>
245
+ <td class="cs-content">
246
+ <?php
247
+ if($void) echo '<input class="cs-slide-data_easeOut" type="text" value="300" />';
248
+ else echo '<input class="cs-slide-data_easeOut" type="text" value="' . $slide->data_easeOut .'" />';
249
+ ?>
250
+ ms
251
+ </td>
252
+ <td class="cs-description">
253
+ <?php _e('The time that the slide will take to get out.', 'crellyslider'); ?>
254
+ </td>
255
+ </tr>
256
+ <tr>
257
+ <td class="cs-name"><?php _e('Custom CSS', 'crellyslider'); ?></td>
258
+ <td class="cs-content">
259
+ <?php
260
+ if($void) echo '<textarea class="cs-slide-custom_css"></textarea>';
261
+ else echo '<textarea class="cs-slide-custom_css">' . stripslashes($slide->custom_css) . '</textarea>';
262
+ ?>
263
+ </td>
264
+ <td class="cs-description">
265
+ <?php _e('Apply CSS to the slide.', 'crellyslider'); ?>
266
+ </td>
267
+ </tr>
268
+ </tbody>
269
+ </table>
270
+
271
+ <br />
272
+ <br />
273
+
274
+ <?php
275
+ // If the slide is not void, select her elements
276
+ if(!$void) {
277
+ global $wpdb;
278
+ $id = isset($_GET['id']) ? $_GET['id'] : NULL;
279
+ $slide_parent = $slide->position;
280
+ $elements = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'crellyslider_elements WHERE slider_parent = ' . $id . ' AND slide_parent = ' . $slide_parent);
281
+ }
282
+ else {
283
+ $slide_id = NULL;
284
+ $elements = NULL;
285
+ }
286
+
287
+ crellyslider_printElements($edit, $slider, $slide, $elements);
288
+ }
289
+ ?>
wordpress/tables.php ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class CrellySliderTables {
4
+
5
+ // Update the current Crelly Slider version in the database
6
+ public static function setVersion() {
7
+ update_option('cs_version', CS_VERSION);
8
+ }
9
+
10
+ public static function removeVersion() {
11
+ delete_option('cs_version');
12
+ }
13
+
14
+ // Creates or updates all the tables
15
+ public static function setTables() {
16
+ self::setSlidersTable();
17
+ self::setSlidesTable();
18
+ self::setElementsTable();
19
+ }
20
+
21
+ public static function setSlidersTable(){
22
+ global $wpdb;
23
+ $table_name = $wpdb->prefix . 'crellyslider_sliders';
24
+
25
+ $sql = "CREATE TABLE $table_name (
26
+ id mediumint(9) NOT NULL AUTO_INCREMENT,
27
+ name VARCHAR(100) CHARACTER SET utf8,
28
+ alias VARCHAR(100) CHARACTER SET utf8,
29
+ layout VARCHAR(100) CHARACTER SET utf8,
30
+ responsive INT,
31
+ startWidth INT,
32
+ startHeight INT,
33
+ automaticSlide INT,
34
+ showControls INT,
35
+ showNavigation INT,
36
+ showProgressBar INT,
37
+ pauseOnHover INT,
38
+ UNIQUE KEY id (id)
39
+ );";
40
+
41
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
42
+ dbDelta($sql);
43
+ }
44
+
45
+ // Warning: the time variable is a varchar because it could contain the 'all' word
46
+ public static function setSlidesTable(){
47
+ global $wpdb;
48
+ $table_name = $wpdb->prefix . 'crellyslider_slides';
49
+
50
+ $sql = "CREATE TABLE $table_name (
51
+ id mediumint(9) NOT NULL AUTO_INCREMENT,
52
+ slider_parent mediumint(9),
53
+ position INT,
54
+ background_type_image VARCHAR(100) CHARACTER SET utf8,
55
+ background_type_color VARCHAR(100) CHARACTER SET utf8,
56
+ background_propriety_position_x VARCHAR(100) CHARACTER SET utf8,
57
+ background_propriety_position_y VARCHAR(100) CHARACTER SET utf8,
58
+ background_repeat VARCHAR(100) CHARACTER SET utf8,
59
+ background_propriety_size VARCHAR(100) CHARACTER SET utf8,
60
+ data_in VARCHAR(100) CHARACTER SET utf8,
61
+ data_out VARCHAR(100) CHARACTER SET utf8,
62
+ data_time INT,
63
+ data_easeIn INT,
64
+ data_easeOut INT,
65
+ custom_css TEXT CHARACTER SET utf8,
66
+ UNIQUE KEY id (id)
67
+ );";
68
+
69
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
70
+ dbDelta($sql);
71
+ }
72
+
73
+ public static function setElementsTable(){
74
+ global $wpdb;
75
+ $table_name = $wpdb->prefix . 'crellyslider_elements';
76
+
77
+ $sql = "CREATE TABLE $table_name (
78
+ id mediumint(9) NOT NULL AUTO_INCREMENT,
79
+ slider_parent mediumint(9),
80
+ slide_parent mediumint(9),
81
+ position INT,
82
+ type VARCHAR(100) CHARACTER SET utf8,
83
+ data_easeIn INT,
84
+ data_easeOut INT,
85
+ data_delay INT,
86
+ data_time VARCHAR(100) CHARACTER SET utf8,
87
+ data_top FLOAT,
88
+ data_left FLOAT,
89
+ z_index INT,
90
+ data_in VARCHAR(100) CHARACTER SET utf8,
91
+ data_out VARCHAR(100) CHARACTER SET utf8,
92
+ custom_css VARCHAR(100) CHARACTER SET utf8,
93
+ inner_html TEXT CHARACTER SET utf8,
94
+ image_src TEXT CHARACTER SET utf8,
95
+ image_alt TEXT CHARACTER SET utf8,
96
+ UNIQUE KEY id (id)
97
+ );";
98
+
99
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
100
+ dbDelta($sql);
101
+ }
102
+
103
+ // Drops all the slider tables
104
+ public static function dropTables() {
105
+ global $wpdb;
106
+
107
+ self::dropTable($wpdb->prefix . 'crellyslider_sliders');
108
+ self::dropTable($wpdb->prefix . 'crellyslider_slides');
109
+ self::dropTable($wpdb->prefix . 'crellyslider_elements');
110
+ }
111
+
112
+ public static function dropTable($table_name) {
113
+ global $wpdb;
114
+
115
+ $sql = 'DROP TABLE ' . $table_name . ';';
116
+ $wpdb->query($sql);
117
+ }
118
+
119
+ }
120
+
121
+ ?>