Initial commit
@@ -0,0 +1,160 @@
|
||||
/**
|
||||
*
|
||||
* Main container
|
||||
*
|
||||
*/
|
||||
#addToHomeScreen {
|
||||
z-index:9999;
|
||||
-webkit-user-select:none;
|
||||
user-select:none;
|
||||
-webkit-box-sizing:border-box;
|
||||
box-sizing:border-box;
|
||||
-webkit-touch-callout:none;
|
||||
touch-callout:none;
|
||||
width:240px;
|
||||
font-size:15px;
|
||||
padding:12px 14px;
|
||||
text-align:left;
|
||||
font-family:helvetica;
|
||||
background-image:-webkit-gradient(linear,0 0,0 100%,color-stop(0,#fff),color-stop(0.02,#eee),color-stop(0.98,#ccc),color-stop(1,#a3a3a3));
|
||||
border:1px solid #505050;
|
||||
-webkit-border-radius:8px;
|
||||
-webkit-background-clip:padding-box;
|
||||
color:#333;
|
||||
text-shadow:0 1px 0 rgba(255,255,255,0.75);
|
||||
line-height:130%;
|
||||
-webkit-box-shadow:0 0 4px rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
#addToHomeScreen.addToHomeIpad {
|
||||
width:268px;
|
||||
font-size:18px;
|
||||
padding:14px;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* The 'wide' class is added when the popup contains the touch icon
|
||||
*
|
||||
*/
|
||||
#addToHomeScreen.addToHomeWide {
|
||||
width:296px;
|
||||
}
|
||||
|
||||
#addToHomeScreen.addToHomeIpad.addToHomeWide {
|
||||
width:320px;
|
||||
font-size:18px;
|
||||
padding:14px;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* The balloon arrow
|
||||
*
|
||||
*/
|
||||
#addToHomeScreen .addToHomeArrow {
|
||||
position:absolute;
|
||||
background-image:-webkit-gradient(linear,0 0,100% 100%,color-stop(0,rgba(204,204,204,0)),color-stop(0.4,rgba(204,204,204,0)),color-stop(0.4,#ccc));
|
||||
border-width:0 1px 1px 0;
|
||||
border-style:solid;
|
||||
border-color:#505050;
|
||||
width:16px; height:16px;
|
||||
-webkit-transform:rotateZ(45deg);
|
||||
bottom:-9px; left:50%;
|
||||
margin-left:-8px;
|
||||
-webkit-box-shadow:inset -1px -1px 0 #a9a9a9;
|
||||
-webkit-border-bottom-right-radius:2px;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* The balloon arrow for iPad
|
||||
*
|
||||
*/
|
||||
#addToHomeScreen.addToHomeIpad .addToHomeArrow {
|
||||
-webkit-transform:rotateZ(-135deg);
|
||||
background-image:-webkit-gradient(linear,0 0,100% 100%,color-stop(0,rgba(238,238,238,0)),color-stop(0.4,rgba(238,238,238,0)),color-stop(0.4,#eee));
|
||||
-webkit-box-shadow:inset -1px -1px 0 #fff;
|
||||
top:-9px; bottom:auto; left:50%;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Close button
|
||||
*
|
||||
*/
|
||||
#addToHomeScreen .addToHomeClose {
|
||||
-webkit-box-sizing:border-box;
|
||||
position:absolute;
|
||||
right:4px;
|
||||
top:4px;
|
||||
width:18px;
|
||||
height:18px; line-height:14px;
|
||||
text-align:center;
|
||||
text-indent:1px;
|
||||
-webkit-border-radius:9px;
|
||||
background:rgba(0,0,0,0.12);
|
||||
color:#707070;
|
||||
-webkit-box-shadow:0 1px 0 #fff;
|
||||
font-size:16px;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* The '+' icon, displayed only on iOS < 4.2
|
||||
*
|
||||
*/
|
||||
#addToHomeScreen .addToHomePlus {
|
||||
font-weight:bold;
|
||||
font-size:1.3em;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* The 'share' icon, displayed only on iOS >= 4.2
|
||||
*
|
||||
*/
|
||||
#addToHomeScreen .addToHomeShare {
|
||||
display:inline-block;
|
||||
width:18px;
|
||||
height:15px;
|
||||
background-repeat:no-repeat;
|
||||
background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAeCAQAAADu6HTYAAADPElEQVR4Xq3TX2gcRRzA8e/M7mVv2+TSNpc/TZtrY6jUGqgaSAmEChKLrYK0YH0RFC2CSCkEfCghiKU04J8qNigq6os+iQV98MHWFwVBrQQRWs21lBw5cw3NNb1/udu72RGG5Y77IzXW77D7sAwf5scyYoL6BGXSDKFZwaGpLvIUaeoCkvX1MmsM0Ny6oRSQYOLuIS+YZOpfQdqslpUxcZrzTVAz4qPwW2O3CeIwC/RSzeY6Ow1QhUrkr+YOWfEKDkEP8Rij7CHKJmrFSDHBdwGEE5wiGChPN+PnT8VdRtEIl1d4gRj/1EVe5ZSBKGh8iqQpo/Fo5+3C/gz0MYg4zgwbqday1/Q4B8BGQ45d/Hi54lakCrU5obOcidJpu1+Lg9whjabyaOYLnrIBFFaRD+xe2ybMDWY66GmP/WA9cGfGp0CWhy0wkMN8inepFiH2rV1j0NQSNQbFLRQnS8/8YSDBBpadfv4CYDub2fmeHDNAsL1MBWUel0iA+Xik6eHcyvD3vAMSU1TGuA/YRS+dD7ovCQN43GKRFCU20Kd3V/avDVVyAZ5niTEuLA5/zBGWg9EEEhfJKN200Tat8CmRAQb9+wv7soPlHt2tQorsz1uPbr0HTY4sJwrH47zJZwABBAKLMBoQXepwgTwdHCo+fXMkQ4lrxEmQ5AaXipPqDY9V2vn09tgvTPI71EEGYxM+/uMJLJ4svpgaWGKOi/xKgmqLSUGSUd5f2vIVJ/CgBaTIUsZ7ZBsn0+NzfMOXLFCXQyTcybN6ep5ZZgUOHn7jpfUpsZshdugPGf+E5zjbyHTSRyQ8xfRPPM/s63RHeuknSoT22mjmmnAOIMkUZ6D1xSfPPAfd1WFKM3sO2CMaHx8M1NjnXKHaAGGkOW0C02WeYHUz4qMtx+w5gUDS8NckYe5lHsMYwCZEPyEEmjLDZFmAS7CDviMdxyTkMNVBKEmYLvbiQQBIBBbCQG04bGQvFWz6CfsCQLWCigILFwcfkGYBiOpbYuOizTAyYyDdCtrGaRG1LCkIgMYEFhI0WqQZoSlbGRyHKe4qOx7iv2bVQW9dp4dlM/x6kmwnWQcd/Q3FCqwTEiT5s+6D5v/pb0SSHyg7uhMWAAAAAElFTkSuQmCC);
|
||||
background-size:18px 15px;
|
||||
text-indent:-9999em;
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
#addToHomeScreen .addToHomeShare.addToHomeShareOS7 {
|
||||
width:11px;
|
||||
background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAA8CAYAAAAQTCjdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAASCQAAEgkB80sG3AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAKjSURBVGiB7dpPiFVVHMDxz7m9NCtMyI2bEJEC25WrEkzHUXCRraIwdNE8ZxfYIlcis1ZEbGEzT1QCF4XgH1CyWhUoJKIWNRGEiCNKmkSiYTzfcfGuOokx77x3ZlS8382959zfn+/invvn3RdijHIRBrwkOINCYXEcdjpb7VyiYdBsLScwt5y6IloYdzqXo36Ro0gY9IKWo+5JwmzBt2HQnBw9ehYNazyn5TBee8Dh+Vq+CWu92GufnkTDR6ab7gDeBNHouMM/l9tXTXM0fGBmL726Fg1Dam74EsvKqR8VNowL2Yzj5f7rnnE4DHq2235diYYhhTGfC94up35T0y+6di/ITU0rKVd+sEi0P7xr2pSJOu8zvF+OzqEv7vDH/WFxt7/cshy/ticsN8sXYUht0kXDOlsF9XJ4UaEvNoz9X3zc5bKaZThbyr5jzJ4wlNY7KTgM+ES0vhz+KeiPw36fKC/ucAF9uFBOrTZm26SJCtaV27+xIo7cXdkTEhvOoh+XyxprU1qnim7CQdGK2HAyKRexYVShT3RItDElN+mkjiP2Ym+S3f01hv2EVal5WW6hU0ElmptaqJuBpXg6MbeFH2LDpU6CQ93zWIKnEvs0cayGU3glMfkOo1jQYewZzOuyz7FC95Jwo5OgUFfgeg993hh/eTqCTxOSm/iuk8DY0Ap1b2GhtHXxsfZN4j/X0fOx4auEIknEhqv4OiUn1L13Z/+xWfWVaG4q0dxUormpRHNTieamEs1NJZqbJ1Q0jHvdiJo5S2cVjSNOCHZhn3/SnuYnIvl3yomIIz7MXZMn9hydRCrR3FSiualEc1OJ5qYSzU0lmptKNDePjWgwcPePT7/g+4cp8wCW4GXaryK3tL+mLdD5x62ppllgu7bso8q/2HIbzGWdNmWnSJwAAAAASUVORK5CYII=);
|
||||
background-size:11px 15px;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* The touch icon (if available)
|
||||
*
|
||||
*/
|
||||
#addToHomeScreen .addToHomeTouchIcon {
|
||||
display:block;
|
||||
float:left;
|
||||
-webkit-border-radius:6px;
|
||||
border-radius:6px;
|
||||
-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.5),
|
||||
inset 0 0 2px rgba(255,255,255,0.9);
|
||||
box-shadow:0 1px 3px rgba(0,0,0,0.5),
|
||||
inset 0 0 2px rgba(255,255,255,0.9);
|
||||
background-repeat:no-repeat;
|
||||
width:57px; height:57px;
|
||||
-webkit-background-size:57px 57px;
|
||||
background-size:57px 57px;
|
||||
margin:0 12px 0 0;
|
||||
border:1px solid #333;
|
||||
-webkit-background-clip:padding-box;
|
||||
background-clip:padding-box;
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,51 @@
|
||||
/**
|
||||
* Farbtastic Color Picker 1.2
|
||||
* © 2008 Steven Wittens
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
.farbtastic {
|
||||
position: relative;
|
||||
}
|
||||
.farbtastic * {
|
||||
position: absolute;
|
||||
cursor: crosshair;
|
||||
}
|
||||
.farbtastic, .farbtastic .wheel {
|
||||
width: 195px;
|
||||
height: 195px;
|
||||
}
|
||||
.farbtastic .color, .farbtastic .overlay {
|
||||
top: 47px;
|
||||
left: 47px;
|
||||
width: 101px;
|
||||
height: 101px;
|
||||
}
|
||||
.farbtastic .wheel {
|
||||
background: url(../img/wheel.png) no-repeat;
|
||||
width: 195px;
|
||||
height: 195px;
|
||||
}
|
||||
.farbtastic .overlay {
|
||||
background: url(../img/mask.png) no-repeat;
|
||||
}
|
||||
.farbtastic .marker {
|
||||
width: 17px;
|
||||
height: 17px;
|
||||
margin: -8px 0 0 -8px;
|
||||
overflow: hidden;
|
||||
background: url(../img/marker.png) no-repeat;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
.ui-timepicker-div .ui-widget-header { margin-bottom: 8px; }
|
||||
.ui-timepicker-div dl { text-align: left; }
|
||||
.ui-timepicker-div dl dt { height: 25px; margin-bottom: -25px; }
|
||||
.ui-timepicker-div dl dd { margin: 0 10px 10px 65px; }
|
||||
.ui-timepicker-div td { font-size: 90%; }
|
||||
.ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; }
|
||||
|
||||
.ui-timepicker-rtl{ direction: rtl; }
|
||||
.ui-timepicker-rtl dl { text-align: right; }
|
||||
.ui-timepicker-rtl dl dd { margin: 0 65px 10px 10px; }
|
||||
@@ -0,0 +1 @@
|
||||
.jGrowl{z-index:9999;color:#fff;font-size:12px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;position:fixed}.jGrowl.top-left{left:0;top:0}.jGrowl.top-right{right:0;top:0}.jGrowl.bottom-left{left:0;bottom:0}.jGrowl.bottom-right{right:0;bottom:0}.jGrowl.center{top:0;width:50%;left:25%}.jGrowl.center .jGrowl-closer,.jGrowl.center .jGrowl-notification{margin-left:auto;margin-right:auto}.jGrowl-notification{background-color:#000;opacity:.9;-ms-filter:alpha(90);filter:alpha(90);zoom:1;width:250px;padding:10px;margin:10px;text-align:left;display:none;border-radius:5px;min-height:40px}.jGrowl-notification .ui-state-highlight,.jGrowl-notification .ui-widget-content .ui-state-highlight,.jGrowl-notification .ui-widget-header .ui-state-highlight{border:1px solid #000;background:#000;color:#fff}.jGrowl-notification .jGrowl-header{font-weight:700;font-size:.85em}.jGrowl-notification .jGrowl-close{background-color:transparent;color:inherit;border:none;z-index:99;float:right;font-weight:700;font-size:1em;cursor:pointer}.jGrowl-closer{background-color:#000;opacity:.9;-ms-filter:alpha(90);filter:alpha(90);zoom:1;width:250px;padding:10px;margin:10px;display:none;border-radius:5px;padding-top:4px;padding-bottom:4px;cursor:pointer;font-size:.9em;font-weight:700;text-align:center}.jGrowl-closer .ui-state-highlight,.jGrowl-closer .ui-widget-content .ui-state-highlight,.jGrowl-closer .ui-widget-header .ui-state-highlight{border:1px solid #000;background:#000;color:#fff}@media print{.jGrowl{display:none}}
|
||||
@@ -0,0 +1,23 @@
|
||||
.ui-multiselect { padding:2px 0 2px 4px; text-align:left }
|
||||
.ui-multiselect span.ui-icon { float:right }
|
||||
.ui-multiselect-single .ui-multiselect-checkboxes input { position:absolute !important; top: auto !important; left:-9999px; }
|
||||
.ui-multiselect-single .ui-multiselect-checkboxes label { padding:5px !important }
|
||||
|
||||
.ui-multiselect-header { margin-bottom:3px; padding:3px 0 3px 4px }
|
||||
.ui-multiselect-header ul { font-size:0.9em }
|
||||
.ui-multiselect-header ul li { float:left; padding:0 10px 0 0 }
|
||||
.ui-multiselect-header a { text-decoration:none }
|
||||
.ui-multiselect-header a:hover { text-decoration:underline }
|
||||
.ui-multiselect-header span.ui-icon { float:left }
|
||||
.ui-multiselect-header li.ui-multiselect-close { float:right; text-align:right; padding-right:0 }
|
||||
|
||||
.ui-multiselect-menu { display:none; padding:3px; position:absolute; z-index:10000; text-align: left }
|
||||
.ui-multiselect-checkboxes { position:relative /* fixes bug in IE6/7 */; overflow-y:auto }
|
||||
.ui-multiselect-checkboxes label { cursor:default; display:block; border:1px solid transparent; padding:3px 1px }
|
||||
.ui-multiselect-checkboxes label input { position:relative; top:1px }
|
||||
.ui-multiselect-checkboxes li { clear:both; font-size:0.9em; padding-right:3px }
|
||||
.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label { text-align:center; font-weight:bold; border-bottom:1px solid }
|
||||
.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label a { display:block; padding:3px; margin:1px 0; text-decoration:none }
|
||||
|
||||
/* remove label borders in IE6 because IE6 does not support transparency */
|
||||
* html .ui-multiselect-checkboxes label { border:none }
|
||||
@@ -0,0 +1,3 @@
|
||||
.ui-multiselect-hasfilter ul { position:relative; top:2px }
|
||||
.ui-multiselect-filter { float:left; margin-right:10px; font-size:11px }
|
||||
.ui-multiselect-filter input { width:100px; font-size:10px; margin-left:5px; height:15px; padding:2px; border:1px solid #292929; -webkit-appearance:textfield; -webkit-box-sizing:content-box; }
|
||||
@@ -0,0 +1,100 @@
|
||||
/*** ESSENTIAL STYLES ***/
|
||||
.sf-menu {
|
||||
position: relative;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.sf-menu .sf-mega {
|
||||
position: absolute;
|
||||
display: none;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
z-index: 99;
|
||||
}
|
||||
.sf-menu > li {
|
||||
float: left;
|
||||
}
|
||||
.sf-menu li:hover > .sf-mega,
|
||||
.sf-menu li.sfHover > .sf-mega {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.sf-menu > li > a {
|
||||
display: block;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
||||
/*** DEMO SKIN ***/
|
||||
.sf-menu {
|
||||
float: left;
|
||||
margin-bottom: 1em;
|
||||
width: 100%;
|
||||
}
|
||||
.sf-menu .sf-mega {
|
||||
box-shadow: 2px 3px 6px rgba(0,0,0,.2);
|
||||
width: 100%; /* allow long menu items to determine submenu width */
|
||||
}
|
||||
.sf-menu > li > a {
|
||||
border-left: 1px solid #fff;
|
||||
border-top: 1px solid #dFeEFF; /* fallback colour must use full shorthand */
|
||||
border-top: 1px solid rgba(255,255,255,.5);
|
||||
padding: .75em 1em;
|
||||
text-decoration: none;
|
||||
zoom: 1; /* IE7 */
|
||||
color: #13a;
|
||||
}
|
||||
.sf-menu > li {
|
||||
background: #BDD2FF;
|
||||
-webkit-transition: background .2s;
|
||||
transition: background .2s;
|
||||
}
|
||||
.sf-menu > li:hover,
|
||||
.sf-menu > li.sfHover {
|
||||
background: #CFDEFF;
|
||||
/* only transition out, not in */
|
||||
-webkit-transition: none;
|
||||
transition: none;
|
||||
}
|
||||
|
||||
/*** mega menu dropdown ***/
|
||||
.sf-mega {
|
||||
background-color: #CFDEFF;
|
||||
padding: 1em;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
}
|
||||
.sf-mega-section {
|
||||
float: left;
|
||||
width: 8em; /* optional */
|
||||
padding: 0 1em 1em 0;
|
||||
margin-right: 1em;
|
||||
border-right: 1px solid #b4c8f5;
|
||||
}
|
||||
|
||||
|
||||
/*** arrows (for all except IE7) **/
|
||||
.sf-arrows .sf-with-ul {
|
||||
padding-right: 2.5em;
|
||||
*padding-right: 1em; /* no CSS arrows for IE7 (lack pseudo-elements) */
|
||||
}
|
||||
/* styling for both css and generated arrows */
|
||||
.sf-arrows .sf-with-ul:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 1em;
|
||||
margin-top: -3px;
|
||||
height: 0;
|
||||
width: 0;
|
||||
/* order of following 3 rules important for fallbacks to work */
|
||||
border: 5px solid transparent;
|
||||
border-top-color: #dFeEFF; /* edit this to suit design (no rgba in IE8) */
|
||||
border-top-color: rgba(255,255,255,.5);
|
||||
}
|
||||
.sf-arrows > li > .sf-with-ul:focus:after,
|
||||
.sf-arrows > li:hover > .sf-with-ul:after,
|
||||
.sf-arrows > .sfHover > .sf-with-ul:after {
|
||||
border-top-color: white; /* IE8 fallback colour */
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
/*** adding the class sf-navbar in addition to sf-menu creates an all-horizontal nav-bar menu ***/
|
||||
.sf-navbar {
|
||||
background: #BDD2FF;
|
||||
position: relative;
|
||||
margin-bottom: 5em;
|
||||
}
|
||||
/* provide background colour for submenu strip */
|
||||
/* you should just set the menu's container bg colour rather than use pseudo-elements */
|
||||
.sf-navbar:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
z-index: -1;
|
||||
background-color: #BDD2FF;
|
||||
height: 200%;
|
||||
width: 100%;
|
||||
}
|
||||
.sf-navbar ul {
|
||||
box-shadow: none;
|
||||
}
|
||||
.sf-navbar li {
|
||||
background: #AABDE6;
|
||||
position: static;
|
||||
}
|
||||
.sf-navbar > li > a,
|
||||
.sf-navbar > li > ul > li > a {
|
||||
border: none;
|
||||
}
|
||||
.sf-navbar > li > ul {
|
||||
min-width: 36em; /* set this to whatever suits your design */
|
||||
}
|
||||
.sf-navbar ul li {
|
||||
background: #BDD2FF;
|
||||
position: relative;
|
||||
}
|
||||
.sf-navbar ul ul {
|
||||
left: 0;
|
||||
top: 100%;
|
||||
}
|
||||
.sf-navbar ul ul li {
|
||||
width: 100%;
|
||||
}
|
||||
.sf-navbar > li > ul > li {
|
||||
float: left;
|
||||
}
|
||||
.sf-navbar li.current {
|
||||
background: #BDD2FF;
|
||||
}
|
||||
.sf-navbar li:hover,
|
||||
.sf-navbar li.sfHover,
|
||||
.sf-navbar ul li.current {
|
||||
background: #BDD2FF;
|
||||
}
|
||||
.sf-navbar ul li:hover,
|
||||
.sf-navbar ul li.sfHover,
|
||||
.sf-navbar ul ul li {
|
||||
background: #D1DFFF;
|
||||
}
|
||||
.sf-navbar ul ul li:hover,
|
||||
.sf-navbar ul ul li.sfHover,
|
||||
.sf-navbar ul ul li.current {
|
||||
background: #E6EEFF;
|
||||
}
|
||||
.sf-navbar ul li.current > a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/*** point all arrows down ***/
|
||||
.sf-arrows.sf-navbar ul .sf-with-ul:after {
|
||||
margin-top: -3px;
|
||||
margin-right: 0;
|
||||
border-color: transparent;
|
||||
border-top-color: #dFeEFF; /* edit this to suit design (no rgba in IE8) */
|
||||
border-top-color: rgba(255,255,255,.5);
|
||||
}
|
||||
|
||||
.sf-arrows.sf-navbar ul > li > .sf-with-ul:focus:after,
|
||||
.sf-arrows.sf-navbar ul > li:hover > .sf-with-ul:after,
|
||||
.sf-arrows.sf-navbar ul > .sfHover > .sf-with-ul:after {
|
||||
border-color: transparent;
|
||||
border-top-color: white;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
/* adding sf-vertical class in addition to sf-menu creates a vertical menu */
|
||||
/* eg. <ul class="sf-menu sf-vertical"> ... */
|
||||
.sf-vertical {
|
||||
width: 12em;
|
||||
/* If you want the width of the closed menu to expand to its
|
||||
widest top-level menu item (like its "Supersubs" submenus do),
|
||||
replace the width rule above with the following two rules. */
|
||||
|
||||
/*
|
||||
min-width: 12em;
|
||||
*width: 12em;
|
||||
*/
|
||||
}
|
||||
.sf-vertical ul {
|
||||
left: 100%;
|
||||
top: 0;
|
||||
}
|
||||
.sf-vertical > li {
|
||||
float: none;
|
||||
}
|
||||
.sf-vertical li {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/*** alter arrow directions ***/
|
||||
.sf-vertical.sf-arrows > li > .sf-with-ul:after {
|
||||
margin-top: -5px;
|
||||
margin-right: -3px;
|
||||
border-color: transparent;
|
||||
border-left-color: #dFeEFF; /* edit this to suit design (no rgba in IE8) */
|
||||
border-left-color: rgba(255,255,255,.5);
|
||||
}
|
||||
.sf-vertical.sf-arrows li > .sf-with-ul:focus:after,
|
||||
.sf-vertical.sf-arrows li:hover > .sf-with-ul:after,
|
||||
.sf-vertical.sf-arrows .sfHover > .sf-with-ul:after {
|
||||
border-left-color: white;
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
/*** ESSENTIAL STYLES ***/
|
||||
.sf-menu, .sf-menu * {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.sf-menu li {
|
||||
position: relative;
|
||||
transition: background-color 0.2s ease 0s;
|
||||
}
|
||||
.sf-menu ul {
|
||||
position: absolute;
|
||||
display: none;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
z-index: 99;
|
||||
}
|
||||
.sf-menu > li {
|
||||
float: left;
|
||||
}
|
||||
.sf-menu li:hover > ul,
|
||||
.sf-menu li.sfHover > ul {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.sf-menu a {
|
||||
display: block;
|
||||
position: relative;
|
||||
text-decoration: none;
|
||||
padding-left: 10px;
|
||||
border: none !important;
|
||||
color: inherit !important;
|
||||
}
|
||||
.sf-menu ul ul {
|
||||
top: 0;
|
||||
left: 100%;
|
||||
}
|
||||
|
||||
|
||||
/*** DEMO SKIN ***/
|
||||
.sf-menu {
|
||||
float: left;
|
||||
margin-bottom: 1em;
|
||||
height: 6px;
|
||||
}
|
||||
.sf-menu ul {
|
||||
min-width: 12em; /* allow long menu items to determine submenu width */
|
||||
*width: 12em; /* no auto sub width for IE7, see white-space comment below */
|
||||
}
|
||||
.sf-menu a {
|
||||
/* fallback colour must use full shorthand */
|
||||
text-decoration: none;
|
||||
zoom: 1; /* IE7 */
|
||||
padding-left: 10px;
|
||||
border: none !important;
|
||||
color: inherit !important;
|
||||
}
|
||||
.sf-menu a {
|
||||
color: inherit !important;
|
||||
text-decoration: none;
|
||||
padding-left: 10px;
|
||||
border: none !important;
|
||||
}
|
||||
.sf-menu li {
|
||||
/*background: #BDD2FF;*/
|
||||
white-space: nowrap; /* no need for Supersubs plugin */
|
||||
*white-space: normal; /* ...unless you support IE7 (let it wrap) */
|
||||
-webkit-transition: background .2s;
|
||||
transition: background-color 0.2s ease 0s;
|
||||
}
|
||||
.sf-menu ul li {
|
||||
/*background: #AABDE6;*/
|
||||
}
|
||||
.sf-menu ul ul li {
|
||||
/*background: #9AAEDB;*/
|
||||
}
|
||||
.sf-menu li:hover,
|
||||
.sf-menu li.sfHover {
|
||||
/*background: #CFDEFF;*/
|
||||
/* only transition out, not in */
|
||||
-webkit-transition: none;
|
||||
transition: none;
|
||||
}
|
||||
|
||||
/*** arrows (for all except IE7) **/
|
||||
.sf-arrows .sf-with-ul {
|
||||
padding-right: 1.5em;
|
||||
*padding-right: 1em; /* no CSS arrows for IE7 (lack pseudo-elements) */
|
||||
}
|
||||
/* styling for both css and generated arrows */
|
||||
.sf-arrows .sf-with-ul:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
right: 0.5em;
|
||||
margin-top: -3px;
|
||||
height: 0;
|
||||
width: 0;
|
||||
/* order of following 3 rules important for fallbacks to work */
|
||||
border: 5px solid transparent;
|
||||
border-top-color: #dFeEFF; /* edit this to suit design (no rgba in IE8) */
|
||||
border-top-color: rgba(255,255,255,.5);
|
||||
border-color: rgba(255, 255, 255, 0.5) transparent transparent;
|
||||
border-image: none;
|
||||
border-style: solid;
|
||||
border-width: 5px;
|
||||
top: 50%;
|
||||
}
|
||||
.sf-arrows > li > .sf-with-ul:focus:after,
|
||||
.sf-arrows > li:hover > .sf-with-ul:after,
|
||||
.sf-arrows > .sfHover > .sf-with-ul:after {
|
||||
border-top-color: white; /* IE8 fallback colour */
|
||||
}
|
||||
/* styling for right-facing arrows */
|
||||
.sf-arrows ul .sf-with-ul:after {
|
||||
margin-top: -5px;
|
||||
margin-right: -3px;
|
||||
border-color: transparent;
|
||||
border-left-color: #dFeEFF; /* edit this to suit design (no rgba in IE8) */
|
||||
border-left-color: rgba(255,255,255,.5);
|
||||
}
|
||||
.sf-arrows ul li > .sf-with-ul:focus:after,
|
||||
.sf-arrows ul li:hover > .sf-with-ul:after,
|
||||
.sf-arrows ul .sfHover > .sf-with-ul:after {
|
||||
border-left-color: white;
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 624 B |
|
After Width: | Height: | Size: 652 B |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 749 B |
|
After Width: | Height: | Size: 693 B |
|
After Width: | Height: | Size: 698 B |
|
After Width: | Height: | Size: 830 B |
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,342 @@
|
||||
/*!
|
||||
* Add to Homescreen v2.0.8 ~ Copyright (c) 2013 Matteo Spinelli, http://cubiq.org
|
||||
* Released under MIT license, http://cubiq.org/license
|
||||
*/
|
||||
var addToHome = (function (w) {
|
||||
var nav = w.navigator,
|
||||
isIDevice = 'platform' in nav && (/iphone|ipod|ipad/gi).test(nav.platform),
|
||||
isIPad,
|
||||
isRetina,
|
||||
isSafari,
|
||||
isStandalone,
|
||||
OSVersion,
|
||||
startX = 0,
|
||||
startY = 0,
|
||||
lastVisit = 0,
|
||||
isExpired,
|
||||
isSessionActive,
|
||||
isReturningVisitor,
|
||||
balloon,
|
||||
overrideChecks,
|
||||
|
||||
positionInterval,
|
||||
closeTimeout,
|
||||
|
||||
options = {
|
||||
autostart: true, // Automatically open the balloon
|
||||
returningVisitor: false, // Show the balloon to returning visitors only (setting this to true is highly recommended)
|
||||
animationIn: 'drop', // drop || bubble || fade
|
||||
animationOut: 'fade', // drop || bubble || fade
|
||||
startDelay: 2000, // 2 seconds from page load before the balloon appears
|
||||
lifespan: 15000, // 15 seconds before it is automatically destroyed
|
||||
bottomOffset: 14, // Distance of the balloon from bottom
|
||||
expire: 0, // Minutes to wait before showing the popup again (0 = always displayed)
|
||||
message: '', // Customize your message or force a language ('' = automatic)
|
||||
touchIcon: false, // Display the touch icon
|
||||
arrow: true, // Display the balloon arrow
|
||||
hookOnLoad: true, // Should we hook to onload event? (really advanced usage)
|
||||
closeButton: true, // Let the user close the balloon
|
||||
iterations: 100 // Internal/debug use
|
||||
},
|
||||
|
||||
intl = {
|
||||
ar: '<span dir="rtl">قم بتثبيت هذا التطبيق على <span dir="ltr">%device:</span>انقر<span dir="ltr">%icon</span> ،<strong>ثم اضفه الى الشاشة الرئيسية.</strong></span>',
|
||||
ca_es: 'Per instal·lar aquesta aplicació al vostre %device premeu %icon i llavors <strong>Afegir a pantalla d\'inici</strong>.',
|
||||
cs_cz: 'Pro instalaci aplikace na Váš %device, stiskněte %icon a v nabídce <strong>Přidat na plochu</strong>.',
|
||||
da_dk: 'Tilføj denne side til din %device: tryk på %icon og derefter <strong>Føj til hjemmeskærm</strong>.',
|
||||
de_de: 'Installieren Sie diese App auf Ihrem %device: %icon antippen und dann <strong>Zum Home-Bildschirm</strong>.',
|
||||
el_gr: 'Εγκαταστήσετε αυτήν την Εφαρμογή στήν συσκευή σας %device: %icon μετά πατάτε <strong>Προσθήκη σε Αφετηρία</strong>.',
|
||||
en_us: 'Install this web app on your %device: tap %icon and then <strong>Add to Home Screen</strong>.',
|
||||
es_es: 'Para instalar esta app en su %device, pulse %icon y seleccione <strong>Añadir a pantalla de inicio</strong>.',
|
||||
fi_fi: 'Asenna tämä web-sovellus laitteeseesi %device: paina %icon ja sen jälkeen valitse <strong>Lisää Koti-valikkoon</strong>.',
|
||||
fr_fr: 'Ajoutez cette application sur votre %device en cliquant sur %icon, puis <strong>Ajouter à l\'écran d\'accueil</strong>.',
|
||||
he_il: '<span dir="rtl">התקן אפליקציה זו על ה-%device שלך: הקש %icon ואז <strong>הוסף למסך הבית</strong>.</span>',
|
||||
hr_hr: 'Instaliraj ovu aplikaciju na svoj %device: klikni na %icon i odaberi <strong>Dodaj u početni zaslon</strong>.',
|
||||
hu_hu: 'Telepítse ezt a web-alkalmazást az Ön %device-jára: nyomjon a %icon-ra majd a <strong>Főképernyőhöz adás</strong> gombra.',
|
||||
it_it: 'Installa questa applicazione sul tuo %device: premi su %icon e poi <strong>Aggiungi a Home</strong>.',
|
||||
ja_jp: 'このウェブアプリをあなたの%deviceにインストールするには%iconをタップして<strong>ホーム画面に追加</strong>を選んでください。',
|
||||
ko_kr: '%device에 웹앱을 설치하려면 %icon을 터치 후 "홈화면에 추가"를 선택하세요',
|
||||
nb_no: 'Installer denne appen på din %device: trykk på %icon og deretter <strong>Legg til på Hjem-skjerm</strong>',
|
||||
nl_nl: 'Installeer deze webapp op uw %device: tik %icon en dan <strong>Voeg toe aan beginscherm</strong>.',
|
||||
pl_pl: 'Aby zainstalować tę aplikacje na %device: naciśnij %icon a następnie <strong>Dodaj jako ikonę</strong>.',
|
||||
pt_br: 'Instale este aplicativo em seu %device: aperte %icon e selecione <strong>Adicionar à Tela Inicio</strong>.',
|
||||
pt_pt: 'Para instalar esta aplicação no seu %device, prima o %icon e depois em <strong>Adicionar ao ecrã principal</strong>.',
|
||||
ru_ru: 'Установите это веб-приложение на ваш %device: нажмите %icon, затем <strong>Добавить в «Домой»</strong>.',
|
||||
sv_se: 'Lägg till denna webbapplikation på din %device: tryck på %icon och därefter <strong>Lägg till på hemskärmen</strong>.',
|
||||
th_th: 'ติดตั้งเว็บแอพฯ นี้บน %device ของคุณ: แตะ %icon และ <strong>เพิ่มที่หน้าจอโฮม</strong>',
|
||||
tr_tr: 'Bu uygulamayı %device\'a eklemek için %icon simgesine sonrasında <strong>Ana Ekrana Ekle</strong> düğmesine basın.',
|
||||
uk_ua: 'Встановіть цей веб сайт на Ваш %device: натисніть %icon, а потім <strong>На початковий екран</strong>.',
|
||||
zh_cn: '您可以将此应用程式安装到您的 %device 上。请按 %icon 然后点选<strong>添加至主屏幕</strong>。',
|
||||
zh_tw: '您可以將此應用程式安裝到您的 %device 上。請按 %icon 然後點選<strong>加入主畫面螢幕</strong>。'
|
||||
};
|
||||
|
||||
function init () {
|
||||
// Preliminary check, all further checks are performed on iDevices only
|
||||
if ( !isIDevice ) return;
|
||||
|
||||
var now = Date.now(),
|
||||
i;
|
||||
|
||||
// Merge local with global options
|
||||
if ( w.addToHomeConfig ) {
|
||||
for ( i in w.addToHomeConfig ) {
|
||||
options[i] = w.addToHomeConfig[i];
|
||||
}
|
||||
}
|
||||
if ( !options.autostart ) options.hookOnLoad = false;
|
||||
|
||||
isIPad = (/ipad/gi).test(nav.platform);
|
||||
isRetina = w.devicePixelRatio && w.devicePixelRatio > 1;
|
||||
isSafari = (/Safari/i).test(nav.appVersion) && !(/CriOS/i).test(nav.appVersion);
|
||||
isStandalone = nav.standalone;
|
||||
OSVersion = nav.appVersion.match(/OS (\d+_\d+)/i);
|
||||
OSVersion = OSVersion && OSVersion[1] ? +OSVersion[1].replace('_', '.') : 0;
|
||||
|
||||
lastVisit = +w.localStorage.getItem('addToHome');
|
||||
|
||||
isSessionActive = w.sessionStorage.getItem('addToHomeSession');
|
||||
isReturningVisitor = options.returningVisitor ? lastVisit && lastVisit + 28*24*60*60*1000 > now : true;
|
||||
|
||||
if ( !lastVisit ) lastVisit = now;
|
||||
|
||||
// If it is expired we need to reissue a new balloon
|
||||
isExpired = isReturningVisitor && lastVisit <= now;
|
||||
|
||||
if ( options.hookOnLoad ) w.addEventListener('load', loaded, false);
|
||||
else if ( !options.hookOnLoad && options.autostart ) loaded();
|
||||
}
|
||||
|
||||
function loaded () {
|
||||
w.removeEventListener('load', loaded, false);
|
||||
|
||||
if ( !isReturningVisitor ) w.localStorage.setItem('addToHome', Date.now());
|
||||
else if ( options.expire && isExpired ) w.localStorage.setItem('addToHome', Date.now() + options.expire * 60000);
|
||||
|
||||
if ( !overrideChecks && ( !isSafari || !isExpired || isSessionActive || isStandalone || !isReturningVisitor ) ) return;
|
||||
|
||||
var touchIcon = '',
|
||||
platform = nav.platform.split(' ')[0],
|
||||
language = nav.language.replace('-', '_');
|
||||
|
||||
balloon = document.createElement('div');
|
||||
balloon.id = 'addToHomeScreen';
|
||||
balloon.style.cssText += 'left:-9999px;-webkit-transition-property:-webkit-transform,opacity;-webkit-transition-duration:0;-webkit-transform:translate3d(0,0,0);position:' + (OSVersion < 5 ? 'absolute' : 'fixed');
|
||||
|
||||
// Localize message
|
||||
if ( options.message in intl ) { // You may force a language despite the user's locale
|
||||
language = options.message;
|
||||
options.message = '';
|
||||
}
|
||||
if ( options.message === '' ) { // We look for a suitable language (defaulted to en_us)
|
||||
options.message = language in intl ? intl[language] : intl['en_us'];
|
||||
}
|
||||
|
||||
if ( options.touchIcon ) {
|
||||
touchIcon = isRetina ?
|
||||
document.querySelector('head link[rel^=apple-touch-icon][sizes="114x114"],head link[rel^=apple-touch-icon][sizes="144x144"],head link[rel^=apple-touch-icon]') :
|
||||
document.querySelector('head link[rel^=apple-touch-icon][sizes="57x57"],head link[rel^=apple-touch-icon]');
|
||||
|
||||
if ( touchIcon ) {
|
||||
touchIcon = '<span style="background-image:url(' + touchIcon.href + ')" class="addToHomeTouchIcon"></span>';
|
||||
}
|
||||
}
|
||||
|
||||
balloon.className = (isIPad ? 'addToHomeIpad' : 'addToHomeIphone') + (touchIcon ? ' addToHomeWide' : '');
|
||||
balloon.innerHTML = touchIcon +
|
||||
options.message.replace('%device', platform).replace('%icon', OSVersion >= 4.2 ? '<span class="addToHomeShare' + (OSVersion >= 7 ? ' addToHomeShareOS7' : '') + '"></span>' : '<span class="addToHomePlus">+</span>') +
|
||||
(options.arrow ? '<span class="addToHomeArrow"></span>' : '') +
|
||||
(options.closeButton ? '<span class="addToHomeClose">\u00D7</span>' : '');
|
||||
|
||||
document.body.appendChild(balloon);
|
||||
|
||||
// Add the close action
|
||||
if ( options.closeButton ) balloon.addEventListener('click', clicked, false);
|
||||
|
||||
if ( !isIPad && OSVersion >= 6 ) window.addEventListener('orientationchange', orientationCheck, false);
|
||||
|
||||
setTimeout(show, options.startDelay);
|
||||
}
|
||||
|
||||
function show () {
|
||||
var duration,
|
||||
iPadXShift = 208;
|
||||
|
||||
// Set the initial position
|
||||
if ( isIPad ) {
|
||||
if ( OSVersion < 5 ) {
|
||||
startY = w.scrollY;
|
||||
startX = w.scrollX;
|
||||
} else if ( OSVersion < 6 ) {
|
||||
iPadXShift = 160;
|
||||
}
|
||||
|
||||
balloon.style.top = startY + options.bottomOffset + 'px';
|
||||
balloon.style.left = startX + iPadXShift - Math.round(balloon.offsetWidth / 2) + 'px';
|
||||
|
||||
switch ( options.animationIn ) {
|
||||
case 'drop':
|
||||
duration = '0.6s';
|
||||
balloon.style.webkitTransform = 'translate3d(0,' + -(w.scrollY + options.bottomOffset + balloon.offsetHeight) + 'px,0)';
|
||||
break;
|
||||
case 'bubble':
|
||||
duration = '0.6s';
|
||||
balloon.style.opacity = '0';
|
||||
balloon.style.webkitTransform = 'translate3d(0,' + (startY + 50) + 'px,0)';
|
||||
break;
|
||||
default:
|
||||
duration = '1s';
|
||||
balloon.style.opacity = '0';
|
||||
}
|
||||
} else {
|
||||
startY = w.innerHeight + w.scrollY;
|
||||
|
||||
if ( OSVersion < 5 ) {
|
||||
startX = Math.round((w.innerWidth - balloon.offsetWidth) / 2) + w.scrollX;
|
||||
balloon.style.left = startX + 'px';
|
||||
balloon.style.top = startY - balloon.offsetHeight - options.bottomOffset + 'px';
|
||||
} else {
|
||||
balloon.style.left = '50%';
|
||||
balloon.style.marginLeft = -Math.round(balloon.offsetWidth / 2) - ( w.orientation%180 && OSVersion >= 6 ? 40 : 0 ) + 'px';
|
||||
balloon.style.bottom = options.bottomOffset + 'px';
|
||||
}
|
||||
|
||||
switch (options.animationIn) {
|
||||
case 'drop':
|
||||
duration = '1s';
|
||||
balloon.style.webkitTransform = 'translate3d(0,' + -(startY + options.bottomOffset) + 'px,0)';
|
||||
break;
|
||||
case 'bubble':
|
||||
duration = '0.6s';
|
||||
balloon.style.webkitTransform = 'translate3d(0,' + (balloon.offsetHeight + options.bottomOffset + 50) + 'px,0)';
|
||||
break;
|
||||
default:
|
||||
duration = '1s';
|
||||
balloon.style.opacity = '0';
|
||||
}
|
||||
}
|
||||
|
||||
balloon.offsetHeight; // repaint trick
|
||||
balloon.style.webkitTransitionDuration = duration;
|
||||
balloon.style.opacity = '1';
|
||||
balloon.style.webkitTransform = 'translate3d(0,0,0)';
|
||||
balloon.addEventListener('webkitTransitionEnd', transitionEnd, false);
|
||||
|
||||
closeTimeout = setTimeout(close, options.lifespan);
|
||||
}
|
||||
|
||||
function manualShow (override) {
|
||||
if ( !isIDevice || balloon ) return;
|
||||
|
||||
overrideChecks = override;
|
||||
loaded();
|
||||
}
|
||||
|
||||
function close () {
|
||||
clearInterval( positionInterval );
|
||||
clearTimeout( closeTimeout );
|
||||
closeTimeout = null;
|
||||
|
||||
// check if the popup is displayed and prevent errors
|
||||
if ( !balloon ) return;
|
||||
|
||||
var posY = 0,
|
||||
posX = 0,
|
||||
opacity = '1',
|
||||
duration = '0';
|
||||
|
||||
if ( options.closeButton ) balloon.removeEventListener('click', clicked, false);
|
||||
if ( !isIPad && OSVersion >= 6 ) window.removeEventListener('orientationchange', orientationCheck, false);
|
||||
|
||||
if ( OSVersion < 5 ) {
|
||||
posY = isIPad ? w.scrollY - startY : w.scrollY + w.innerHeight - startY;
|
||||
posX = isIPad ? w.scrollX - startX : w.scrollX + Math.round((w.innerWidth - balloon.offsetWidth)/2) - startX;
|
||||
}
|
||||
|
||||
balloon.style.webkitTransitionProperty = '-webkit-transform,opacity';
|
||||
|
||||
switch ( options.animationOut ) {
|
||||
case 'drop':
|
||||
if ( isIPad ) {
|
||||
duration = '0.4s';
|
||||
opacity = '0';
|
||||
posY += 50;
|
||||
} else {
|
||||
duration = '0.6s';
|
||||
posY += balloon.offsetHeight + options.bottomOffset + 50;
|
||||
}
|
||||
break;
|
||||
case 'bubble':
|
||||
if ( isIPad ) {
|
||||
duration = '0.8s';
|
||||
posY -= balloon.offsetHeight + options.bottomOffset + 50;
|
||||
} else {
|
||||
duration = '0.4s';
|
||||
opacity = '0';
|
||||
posY -= 50;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
duration = '0.8s';
|
||||
opacity = '0';
|
||||
}
|
||||
|
||||
balloon.addEventListener('webkitTransitionEnd', transitionEnd, false);
|
||||
balloon.style.opacity = opacity;
|
||||
balloon.style.webkitTransitionDuration = duration;
|
||||
balloon.style.webkitTransform = 'translate3d(' + posX + 'px,' + posY + 'px,0)';
|
||||
}
|
||||
|
||||
|
||||
function clicked () {
|
||||
w.sessionStorage.setItem('addToHomeSession', '1');
|
||||
isSessionActive = true;
|
||||
close();
|
||||
}
|
||||
|
||||
function transitionEnd () {
|
||||
balloon.removeEventListener('webkitTransitionEnd', transitionEnd, false);
|
||||
|
||||
balloon.style.webkitTransitionProperty = '-webkit-transform';
|
||||
balloon.style.webkitTransitionDuration = '0.2s';
|
||||
|
||||
// We reached the end!
|
||||
if ( !closeTimeout ) {
|
||||
balloon.parentNode.removeChild(balloon);
|
||||
balloon = null;
|
||||
return;
|
||||
}
|
||||
|
||||
// On iOS 4 we start checking the element position
|
||||
if ( OSVersion < 5 && closeTimeout ) positionInterval = setInterval(setPosition, options.iterations);
|
||||
}
|
||||
|
||||
function setPosition () {
|
||||
var matrix = new WebKitCSSMatrix(w.getComputedStyle(balloon, null).webkitTransform),
|
||||
posY = isIPad ? w.scrollY - startY : w.scrollY + w.innerHeight - startY,
|
||||
posX = isIPad ? w.scrollX - startX : w.scrollX + Math.round((w.innerWidth - balloon.offsetWidth) / 2) - startX;
|
||||
|
||||
// Screen didn't move
|
||||
if ( posY == matrix.m42 && posX == matrix.m41 ) return;
|
||||
|
||||
balloon.style.webkitTransform = 'translate3d(' + posX + 'px,' + posY + 'px,0)';
|
||||
}
|
||||
|
||||
// Clear local and session storages (this is useful primarily in development)
|
||||
function reset () {
|
||||
w.localStorage.removeItem('addToHome');
|
||||
w.sessionStorage.removeItem('addToHomeSession');
|
||||
}
|
||||
|
||||
function orientationCheck () {
|
||||
balloon.style.marginLeft = -Math.round(balloon.offsetWidth / 2) - ( w.orientation%180 && OSVersion >= 6 ? 40 : 0 ) + 'px';
|
||||
}
|
||||
|
||||
// Bootstrap!
|
||||
init();
|
||||
|
||||
return {
|
||||
show: manualShow,
|
||||
close: close,
|
||||
reset: reset
|
||||
};
|
||||
})(window);
|
||||
@@ -0,0 +1,345 @@
|
||||
/**
|
||||
* Farbtastic Color Picker 1.2
|
||||
* © 2008 Steven Wittens
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
jQuery.fn.farbtastic = function (callback) {
|
||||
$.farbtastic(this, callback);
|
||||
return this;
|
||||
};
|
||||
|
||||
jQuery.farbtastic = function (container, callback) {
|
||||
var container = $(container).get(0);
|
||||
return container.farbtastic || (container.farbtastic = new jQuery._farbtastic(container, callback));
|
||||
}
|
||||
|
||||
jQuery._farbtastic = function (container, callback) {
|
||||
// Store farbtastic object
|
||||
var fb = this;
|
||||
|
||||
// Insert markup
|
||||
$(container).html('<div class="farbtastic"><div class="color"></div><div class="wheel"></div><div class="overlay"></div><div class="h-marker marker"></div><div class="sl-marker marker"></div></div>');
|
||||
var e = $('.farbtastic', container);
|
||||
fb.wheel = $('.wheel', container).get(0);
|
||||
// Dimensions
|
||||
fb.radius = 84;
|
||||
fb.square = 100;
|
||||
fb.width = 194;
|
||||
|
||||
// Fix background PNGs in IE6
|
||||
if (navigator.appVersion.match(/MSIE [0-6]\./)) {
|
||||
$('*', e).each(function () {
|
||||
if (this.currentStyle.backgroundImage != 'none') {
|
||||
var image = this.currentStyle.backgroundImage;
|
||||
image = this.currentStyle.backgroundImage.substring(5, image.length - 2);
|
||||
$(this).css({
|
||||
'backgroundImage': 'none',
|
||||
'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + image + "')"
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Link to the given element(s) or callback.
|
||||
*/
|
||||
fb.linkTo = function (callback) {
|
||||
// Unbind previous nodes
|
||||
if (typeof fb.callback == 'object') {
|
||||
$(fb.callback).unbind('keyup', fb.updateValue);
|
||||
}
|
||||
|
||||
// Reset color
|
||||
fb.color = null;
|
||||
|
||||
// Bind callback or elements
|
||||
if (typeof callback == 'function') {
|
||||
fb.callback = callback;
|
||||
}
|
||||
else if (typeof callback == 'object' || typeof callback == 'string') {
|
||||
fb.callback = $(callback);
|
||||
fb.callback.bind('keyup', fb.updateValue);
|
||||
if (fb.callback.get(0).value) {
|
||||
fb.setColor(fb.callback.get(0).value);
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
fb.updateValue = function (event) {
|
||||
if (this.value && this.value != fb.color) {
|
||||
fb.setColor(this.value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Change color with HTML syntax #123456
|
||||
*/
|
||||
fb.setColor = function (color) {
|
||||
var unpack = fb.unpack(color);
|
||||
if (fb.color != color && unpack) {
|
||||
fb.color = color;
|
||||
fb.rgb = unpack;
|
||||
fb.hsl = fb.RGBToHSL(fb.rgb);
|
||||
fb.updateDisplay();
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Change color with HSL triplet [0..1, 0..1, 0..1]
|
||||
*/
|
||||
fb.setHSL = function (hsl) {
|
||||
fb.hsl = hsl;
|
||||
fb.rgb = fb.HSLToRGB(hsl);
|
||||
fb.color = fb.pack(fb.rgb);
|
||||
fb.updateDisplay();
|
||||
return this;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* Retrieve the coordinates of the given event relative to the center
|
||||
* of the widget.
|
||||
*/
|
||||
fb.widgetCoords = function (event) {
|
||||
var x, y;
|
||||
var el = event.target || event.srcElement;
|
||||
var reference = fb.wheel;
|
||||
|
||||
if (typeof event.offsetX != 'undefined') {
|
||||
// Use offset coordinates and find common offsetParent
|
||||
var pos = { x: event.offsetX, y: event.offsetY };
|
||||
|
||||
// Send the coordinates upwards through the offsetParent chain.
|
||||
var e = el;
|
||||
while (e) {
|
||||
e.mouseX = pos.x;
|
||||
e.mouseY = pos.y;
|
||||
pos.x += e.offsetLeft;
|
||||
pos.y += e.offsetTop;
|
||||
e = e.offsetParent;
|
||||
}
|
||||
|
||||
// Look for the coordinates starting from the wheel widget.
|
||||
var e = reference;
|
||||
var offset = { x: 0, y: 0 }
|
||||
while (e) {
|
||||
if (typeof e.mouseX != 'undefined') {
|
||||
x = e.mouseX - offset.x;
|
||||
y = e.mouseY - offset.y;
|
||||
break;
|
||||
}
|
||||
offset.x += e.offsetLeft;
|
||||
offset.y += e.offsetTop;
|
||||
e = e.offsetParent;
|
||||
}
|
||||
|
||||
// Reset stored coordinates
|
||||
e = el;
|
||||
while (e) {
|
||||
e.mouseX = undefined;
|
||||
e.mouseY = undefined;
|
||||
e = e.offsetParent;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Use absolute coordinates
|
||||
var pos = fb.absolutePosition(reference);
|
||||
x = (event.pageX || 0*(event.clientX + $('html').get(0).scrollLeft)) - pos.x;
|
||||
y = (event.pageY || 0*(event.clientY + $('html').get(0).scrollTop)) - pos.y;
|
||||
}
|
||||
// Subtract distance to middle
|
||||
return { x: x - fb.width / 2, y: y - fb.width / 2 };
|
||||
}
|
||||
|
||||
/**
|
||||
* Mousedown handler
|
||||
*/
|
||||
fb.mousedown = function (event) {
|
||||
// Capture mouse
|
||||
if (!document.dragging) {
|
||||
$(document).bind('mousemove', fb.mousemove).bind('mouseup', fb.mouseup);
|
||||
document.dragging = true;
|
||||
}
|
||||
|
||||
// Check which area is being dragged
|
||||
var pos = fb.widgetCoords(event);
|
||||
fb.circleDrag = Math.max(Math.abs(pos.x), Math.abs(pos.y)) * 2 > fb.square;
|
||||
|
||||
// Process
|
||||
fb.mousemove(event);
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mousemove handler
|
||||
*/
|
||||
fb.mousemove = function (event) {
|
||||
// Get coordinates relative to color picker center
|
||||
var pos = fb.widgetCoords(event);
|
||||
|
||||
// Set new HSL parameters
|
||||
if (fb.circleDrag) {
|
||||
var hue = Math.atan2(pos.x, -pos.y) / 6.28;
|
||||
if (hue < 0) hue += 1;
|
||||
fb.setHSL([hue, fb.hsl[1], fb.hsl[2]]);
|
||||
}
|
||||
else {
|
||||
var sat = Math.max(0, Math.min(1, -(pos.x / fb.square) + .5));
|
||||
var lum = Math.max(0, Math.min(1, -(pos.y / fb.square) + .5));
|
||||
fb.setHSL([fb.hsl[0], sat, lum]);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mouseup handler
|
||||
*/
|
||||
fb.mouseup = function () {
|
||||
// Uncapture mouse
|
||||
$(document).unbind('mousemove', fb.mousemove);
|
||||
$(document).unbind('mouseup', fb.mouseup);
|
||||
document.dragging = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the markers and styles
|
||||
*/
|
||||
fb.updateDisplay = function () {
|
||||
// Markers
|
||||
var angle = fb.hsl[0] * 6.28;
|
||||
$('.h-marker', e).css({
|
||||
left: Math.round(Math.sin(angle) * fb.radius + fb.width / 2) + 'px',
|
||||
top: Math.round(-Math.cos(angle) * fb.radius + fb.width / 2) + 'px'
|
||||
});
|
||||
|
||||
$('.sl-marker', e).css({
|
||||
left: Math.round(fb.square * (.5 - fb.hsl[1]) + fb.width / 2) + 'px',
|
||||
top: Math.round(fb.square * (.5 - fb.hsl[2]) + fb.width / 2) + 'px'
|
||||
});
|
||||
|
||||
// Saturation/Luminance gradient
|
||||
$('.color', e).css('backgroundColor', fb.pack(fb.HSLToRGB([fb.hsl[0], 1, 0.5])));
|
||||
|
||||
// Linked elements or callback
|
||||
if (typeof fb.callback == 'object') {
|
||||
// Set background/foreground color
|
||||
$(fb.callback).css({
|
||||
backgroundColor: fb.color,
|
||||
color: fb.hsl[2] > 0.5 ? '#000' : '#fff'
|
||||
});
|
||||
|
||||
// Change linked value
|
||||
$(fb.callback).each(function() {
|
||||
if (this.value && this.value != fb.color) {
|
||||
this.value = fb.color;
|
||||
}
|
||||
});
|
||||
}
|
||||
else if (typeof fb.callback == 'function') {
|
||||
fb.callback.call(fb, fb.color);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get absolute position of element
|
||||
*/
|
||||
fb.absolutePosition = function (el) {
|
||||
var r = { x: el.offsetLeft, y: el.offsetTop };
|
||||
// Resolve relative to offsetParent
|
||||
if (el.offsetParent) {
|
||||
var tmp = fb.absolutePosition(el.offsetParent);
|
||||
r.x += tmp.x;
|
||||
r.y += tmp.y;
|
||||
}
|
||||
return r;
|
||||
};
|
||||
|
||||
/* Various color utility functions */
|
||||
fb.pack = function (rgb) {
|
||||
var r = Math.round(rgb[0] * 255);
|
||||
var g = Math.round(rgb[1] * 255);
|
||||
var b = Math.round(rgb[2] * 255);
|
||||
return '#' + (r < 16 ? '0' : '') + r.toString(16) +
|
||||
(g < 16 ? '0' : '') + g.toString(16) +
|
||||
(b < 16 ? '0' : '') + b.toString(16);
|
||||
}
|
||||
|
||||
fb.unpack = function (color) {
|
||||
if (color.length == 7) {
|
||||
return [parseInt('0x' + color.substring(1, 3)) / 255,
|
||||
parseInt('0x' + color.substring(3, 5)) / 255,
|
||||
parseInt('0x' + color.substring(5, 7)) / 255];
|
||||
}
|
||||
else if (color.length == 4) {
|
||||
return [parseInt('0x' + color.substring(1, 2)) / 15,
|
||||
parseInt('0x' + color.substring(2, 3)) / 15,
|
||||
parseInt('0x' + color.substring(3, 4)) / 15];
|
||||
}
|
||||
}
|
||||
|
||||
fb.HSLToRGB = function (hsl) {
|
||||
var m1, m2, r, g, b;
|
||||
var h = hsl[0], s = hsl[1], l = hsl[2];
|
||||
m2 = (l <= 0.5) ? l * (s + 1) : l + s - l*s;
|
||||
m1 = l * 2 - m2;
|
||||
return [this.hueToRGB(m1, m2, h+0.33333),
|
||||
this.hueToRGB(m1, m2, h),
|
||||
this.hueToRGB(m1, m2, h-0.33333)];
|
||||
}
|
||||
|
||||
fb.hueToRGB = function (m1, m2, h) {
|
||||
h = (h < 0) ? h + 1 : ((h > 1) ? h - 1 : h);
|
||||
if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;
|
||||
if (h * 2 < 1) return m2;
|
||||
if (h * 3 < 2) return m1 + (m2 - m1) * (0.66666 - h) * 6;
|
||||
return m1;
|
||||
}
|
||||
|
||||
fb.RGBToHSL = function (rgb) {
|
||||
var min, max, delta, h, s, l;
|
||||
var r = rgb[0], g = rgb[1], b = rgb[2];
|
||||
min = Math.min(r, Math.min(g, b));
|
||||
max = Math.max(r, Math.max(g, b));
|
||||
delta = max - min;
|
||||
l = (min + max) / 2;
|
||||
s = 0;
|
||||
if (l > 0 && l < 1) {
|
||||
s = delta / (l < 0.5 ? (2 * l) : (2 - 2 * l));
|
||||
}
|
||||
h = 0;
|
||||
if (delta > 0) {
|
||||
if (max == r && max != g) h += (g - b) / delta;
|
||||
if (max == g && max != b) h += (2 + (b - r) / delta);
|
||||
if (max == b && max != r) h += (4 + (r - g) / delta);
|
||||
h /= 6;
|
||||
}
|
||||
return [h, s, l];
|
||||
}
|
||||
|
||||
// Install mousedown handler (the others are set on the document on-demand)
|
||||
$('*', e).mousedown(fb.mousedown);
|
||||
|
||||
// Init color
|
||||
fb.setColor('#000000');
|
||||
|
||||
// Set linked elements/callback
|
||||
if (callback) {
|
||||
fb.linkTo(callback);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
/*
|
||||
* jQuery resize event - v1.1 - 3/14/2010
|
||||
* http://benalman.com/projects/jquery-resize-plugin/
|
||||
*
|
||||
* Copyright (c) 2010 "Cowboy" Ben Alman
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://benalman.com/about/license/
|
||||
*/
|
||||
(function($,h,c){var a=$([]),e=$.resize=$.extend($.resize,{}),i,k="setTimeout",j="resize",d=j+"-special-event",b="delay",f="throttleWindow";e[b]=250;e[f]=true;$.event.special[j]={setup:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.add(l);$.data(this,d,{w:l.width(),h:l.height()});if(a.length===1){g()}},teardown:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.not(l);l.removeData(d);if(!a.length){clearTimeout(i)}},add:function(l){if(!e[f]&&this[k]){return false}var n;function m(s,o,p){var q=$(this),r=$.data(this,d);r.w=o!==c?o:q.width();r.h=p!==c?p:q.height();n.apply(this,arguments)}if($.isFunction(l)){n=l;return m}else{n=l.handler;l.handler=m}}};function g(){i=h[k](function(){a.each(function(){var n=$(this),m=n.width(),l=n.height(),o=$.data(this,d);if(m!==o.w||l!==o.h){n.trigger(j,[o.w=m,o.h=l])}});g()},e[b])}})(jQuery,this);
|
||||
@@ -0,0 +1 @@
|
||||
"use strict";jQuery.base64=(function($){var _PADCHAR="=",_ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",_VERSION="1.0";function _getbyte64(s,i){var idx=_ALPHA.indexOf(s.charAt(i));if(idx===-1){throw"Cannot decode base64"}return idx}function _decode(s){var pads=0,i,b10,imax=s.length,x=[];s=String(s);if(imax===0){return s}if(imax%4!==0){throw"Cannot decode base64"}if(s.charAt(imax-1)===_PADCHAR){pads=1;if(s.charAt(imax-2)===_PADCHAR){pads=2}imax-=4}for(i=0;i<imax;i+=4){b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12)|(_getbyte64(s,i+2)<<6)|_getbyte64(s,i+3);x.push(String.fromCharCode(b10>>16,(b10>>8)&255,b10&255))}switch(pads){case 1:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12)|(_getbyte64(s,i+2)<<6);x.push(String.fromCharCode(b10>>16,(b10>>8)&255));break;case 2:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12);x.push(String.fromCharCode(b10>>16));break}return x.join("")}function _getbyte(s,i){var x=s.charCodeAt(i);if(x>255){throw"INVALID_CHARACTER_ERR: DOM Exception 5"}return x}function _encode(s){if(arguments.length!==1){throw"SyntaxError: exactly one argument required"}s=String(s);var i,b10,x=[],imax=s.length-s.length%3;if(s.length===0){return s}for(i=0;i<imax;i+=3){b10=(_getbyte(s,i)<<16)|(_getbyte(s,i+1)<<8)|_getbyte(s,i+2);x.push(_ALPHA.charAt(b10>>18));x.push(_ALPHA.charAt((b10>>12)&63));x.push(_ALPHA.charAt((b10>>6)&63));x.push(_ALPHA.charAt(b10&63))}switch(s.length-imax){case 1:b10=_getbyte(s,i)<<16;x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_PADCHAR+_PADCHAR);break;case 2:b10=(_getbyte(s,i)<<16)|(_getbyte(s,i+1)<<8);x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_ALPHA.charAt((b10>>6)&63)+_PADCHAR);break}return x.join("")}return{decode:_decode,encode:_encode,VERSION:_VERSION}}(jQuery));
|
||||
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
Input Mask plugin for jquery
|
||||
http://github.com/RobinHerbots/jquery.inputmask
|
||||
Copyright (c) 2010 - 2014 Robin Herbots
|
||||
Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
|
||||
Version: 2.5.8
|
||||
*/
|
||||
(function(e){if(void 0===e.fn.inputmask){var a=function(a){var c=document.createElement("input");a="on"+a;var d=a in c;d||(c.setAttribute(a,"return;"),d="function"==typeof c[a]);return d},f=function(a,c,d){return(a=d.aliases[a])?(a.alias&&f(a.alias,void 0,d),e.extend(!0,d,a),e.extend(!0,d,c),!0):!1},b=function(a){function c(d){a.numericInput&&(d=d.split("").reverse().join(""));var b=!1,f=0,g=a.greedy,x=a.repeat;"*"==x&&(g=!1);1==d.length&&!1==g&&0!=x&&(a.placeholder="");d=e.map(d.split(""),function(d,
|
||||
c){var e=[];if(d==a.escapeChar)b=!0;else if(d!=a.optionalmarker.start&&d!=a.optionalmarker.end||b){var g=a.definitions[d];if(g&&!b)for(var x=0;x<g.cardinality;x++)e.push(a.placeholder.charAt((f+x)%a.placeholder.length));else e.push(d),b=!1;f+=e.length;return e}});for(var h=d.slice(),T=1;T<x&&g;T++)h=h.concat(d.slice());return{mask:h,repeat:x,greedy:g}}function d(d){a.numericInput&&(d=d.split("").reverse().join(""));var c=!1,b=!1,f=!1;return e.map(d.split(""),function(d,e){var g=[];if(d==a.escapeChar)b=
|
||||
!0;else{if(d!=a.optionalmarker.start||b){if(d!=a.optionalmarker.end||b){var x=a.definitions[d];if(x&&!b){for(var h=x.prevalidator,T=h?h.length:0,l=1;l<x.cardinality;l++){var A=T>=l?h[l-1]:[],k=A.validator,A=A.cardinality;g.push({fn:k?"string"==typeof k?RegExp(k):new function(){this.test=k}:/./,cardinality:A?A:1,optionality:c,newBlockMarker:!0==c?f:!1,offset:0,casing:x.casing,def:x.definitionSymbol||d});!0==c&&(f=!1)}g.push({fn:x.validator?"string"==typeof x.validator?RegExp(x.validator):new function(){this.test=
|
||||
x.validator}:/./,cardinality:x.cardinality,optionality:c,newBlockMarker:f,offset:0,casing:x.casing,def:x.definitionSymbol||d})}else g.push({fn:null,cardinality:0,optionality:c,newBlockMarker:f,offset:0,casing:null,def:d}),b=!1;f=!1;return g}c=!1}else c=!0;f=!0}})}function f(d){for(var c=d.length,e=0;e<c&&d.charAt(e)!=a.optionalmarker.start;e++);var b=[d.substring(0,e)];e<c&&b.push(d.substring(e+1,c));return b}function b(l,k,m){for(var r=0,u=0,n=k.length,p=0;p<n&&!(k.charAt(p)==a.optionalmarker.start&&
|
||||
r++,k.charAt(p)==a.optionalmarker.end&&u++,0<r&&r==u);p++);r=[k.substring(0,p)];p<n&&r.push(k.substring(p+1,n));p=f(r[0]);1<p.length?(k=l+p[0]+(a.optionalmarker.start+p[1]+a.optionalmarker.end)+(1<r.length?r[1]:""),-1==e.inArray(k,h)&&""!=k&&(h.push(k),n=c(k),g.push({mask:k,_buffer:n.mask,buffer:n.mask.slice(),tests:d(k),lastValidPosition:-1,greedy:n.greedy,repeat:n.repeat,metadata:m})),k=l+p[0]+(1<r.length?r[1]:""),-1==e.inArray(k,h)&&""!=k&&(h.push(k),n=c(k),g.push({mask:k,_buffer:n.mask,buffer:n.mask.slice(),
|
||||
tests:d(k),lastValidPosition:-1,greedy:n.greedy,repeat:n.repeat,metadata:m})),1<f(p[1]).length&&b(l+p[0],p[1]+r[1],m),1<r.length&&1<f(r[1]).length&&(b(l+p[0]+(a.optionalmarker.start+p[1]+a.optionalmarker.end),r[1],m),b(l+p[0],r[1],m))):(k=l+r,-1==e.inArray(k,h)&&""!=k&&(h.push(k),n=c(k),g.push({mask:k,_buffer:n.mask,buffer:n.mask.slice(),tests:d(k),lastValidPosition:-1,greedy:n.greedy,repeat:n.repeat,metadata:m})))}var g=[],h=[];e.isFunction(a.mask)&&(a.mask=a.mask.call(this,a));e.isArray(a.mask)?
|
||||
e.each(a.mask,function(a,d){void 0!=d.mask?b("",d.mask.toString(),d):b("",d.toString())}):b("",a.mask.toString());return a.greedy?g:g.sort(function(a,d){return a.mask.length-d.mask.length})},g="function"===typeof ScriptEngineMajorVersion?ScriptEngineMajorVersion():10<=(new Function("/*@cc_on return @_jscript_version; @*/"))(),c=navigator.userAgent,h=null!==c.match(/iphone/i),k=null!==c.match(/android.*safari.*/i),m=null!==c.match(/android.*chrome.*/i),u=null!==c.match(/android.*firefox.*/i),M=/Kindle/i.test(c)||
|
||||
/Silk/i.test(c)||/KFTT/i.test(c)||/KFOT/i.test(c)||/KFJWA/i.test(c)||/KFJWI/i.test(c)||/KFSOWI/i.test(c)||/KFTHWA/i.test(c)||/KFTHWI/i.test(c)||/KFAPWA/i.test(c)||/KFAPWI/i.test(c),P=a("paste")?"paste":a("input")?"input":"propertychange",q=function(a,c,d,b){function f(){return a[c]}function q(){return f().tests}function t(){return f()._buffer}function l(){return f().buffer}function R(N,b,v){function y(a,c,f,N){for(var b=D(a),e=f?1:0,v="",da=c.buffer,y=c.tests[b].cardinality;y>e;y--)v+=H(da,b-(y-1));
|
||||
f&&(v+=f);return null!=c.tests[b].fn?c.tests[b].fn.test(v,da,a,N,d):f==H(c._buffer.slice(),a,!0)||f==d.skipOptionalPartCharacter?{refresh:!0,c:H(c._buffer.slice(),a,!0),pos:a}:!1}if(v=!0===v){var g=y(N,f(),b,v);!0===g&&(g={pos:N});return g}var h=[],g=!1,k=c,A=l().slice(),t=f().lastValidPosition;F(N);var m=[];e.each(a,function(a,d){if("object"==typeof d){c=a;var e=N,B=f().lastValidPosition,q;if(B==t){if(1<e-t)for(B=-1==B?0:B;B<e&&(q=y(B,f(),A[B],!0),!1!==q);B++)G(l(),B,A[B],!0),!0===q&&(q={pos:B}),
|
||||
q=q.pos||B,f().lastValidPosition<q&&(f().lastValidPosition=q);if(!r(e)&&!y(e,f(),b,v)){B=p(e)-e;for(q=0;q<B&&!1===y(++e,f(),b,v);q++);m.push(c)}}(f().lastValidPosition>=t||c==k)&&0<=e&&e<n()&&(g=y(e,f(),b,v),!1!==g&&(!0===g&&(g={pos:e}),q=g.pos||e,f().lastValidPosition<q&&(f().lastValidPosition=q)),h.push({activeMasksetIndex:a,result:g}))}});c=k;return function(c,d){var f=!1;e.each(d,function(a,d){if(f=-1==e.inArray(d.activeMasksetIndex,c)&&!1!==d.result)return!1});if(f)d=e.map(d,function(d,f){if(-1==
|
||||
e.inArray(d.activeMasksetIndex,c))return d;a[d.activeMasksetIndex].lastValidPosition=t});else{var v=-1,g=-1,h;e.each(d,function(a,d){-1!=e.inArray(d.activeMasksetIndex,c)&&!1!==d.result&(-1==v||v>d.result.pos)&&(v=d.result.pos,g=d.activeMasksetIndex)});d=e.map(d,function(d,f){if(-1!=e.inArray(d.activeMasksetIndex,c)){if(d.result.pos==v)return d;if(!1!==d.result){for(var k=N;k<v;k++)if(h=y(k,a[d.activeMasksetIndex],a[g].buffer[k],!0),!1===h){a[d.activeMasksetIndex].lastValidPosition=v-1;break}else G(a[d.activeMasksetIndex].buffer,
|
||||
k,a[g].buffer[k],!0),a[d.activeMasksetIndex].lastValidPosition=k;h=y(v,a[d.activeMasksetIndex],b,!0);!1!==h&&(G(a[d.activeMasksetIndex].buffer,v,b,!0),a[d.activeMasksetIndex].lastValidPosition=v);return d}}})}return d}(m,h)}function ba(){var d=c,b={activeMasksetIndex:0,lastValidPosition:-1,next:-1};e.each(a,function(a,d){"object"==typeof d&&(c=a,f().lastValidPosition>b.lastValidPosition?(b.activeMasksetIndex=a,b.lastValidPosition=f().lastValidPosition,b.next=p(f().lastValidPosition)):f().lastValidPosition==
|
||||
b.lastValidPosition&&(-1==b.next||b.next>p(f().lastValidPosition))&&(b.activeMasksetIndex=a,b.lastValidPosition=f().lastValidPosition,b.next=p(f().lastValidPosition)))});c=-1!=b.lastValidPosition&&a[d].lastValidPosition==b.lastValidPosition?d:b.activeMasksetIndex;d!=c&&(W(l(),p(b.lastValidPosition),n()),f().writeOutBuffer=!0);s.data("_inputmask").activeMasksetIndex=c}function r(a){a=D(a);a=q()[a];return void 0!=a?a.fn:!1}function D(a){return a%q().length}function n(){var a=t(),c=f().greedy,b=f().repeat,
|
||||
y=l();if(e.isFunction(d.getMaskLength))return d.getMaskLength(a,c,b,y,d);var g=a.length;c||("*"==b?g=y.length+1:1<b&&(g+=a.length*(b-1)));return g}function p(a){var d=n();if(a>=d)return d;for(;++a<d&&!r(a););return a}function F(a){if(0>=a)return 0;for(;0<--a&&!r(a););return a}function G(a,d,c,f){f&&(d=ca(a,d));f=q()[D(d)];var b=c;if(void 0!=b&&void 0!=f)switch(f.casing){case "upper":b=c.toUpperCase();break;case "lower":b=c.toLowerCase()}a[d]=b}function H(a,d,c){c&&(d=ca(a,d));return a[d]}function ca(a,
|
||||
d){for(var c;void 0==a[d]&&a.length<n();)for(c=0;void 0!==t()[c];)a.push(t()[c++]);return d}function I(a,d,c){a._valueSet(d.join(""));void 0!=c&&w(a,c)}function W(a,d,c,f){for(var b=n();d<c&&d<b;d++)!0===f?r(d)||G(a,d,""):G(a,d,H(t().slice(),d,!0))}function U(a,d){var c=D(d);G(a,d,H(t(),c))}function O(a){return d.placeholder.charAt(a%d.placeholder.length)}function J(d,b,v,g,h){g=void 0!=g?g.slice():X(d._valueGet()).split("");e.each(a,function(a,d){"object"==typeof d&&(d.buffer=d._buffer.slice(),d.lastValidPosition=
|
||||
-1,d.p=-1)});!0!==v&&(c=0);b&&d._valueSet("");n();e.each(g,function(a,c){if(!0===h){var g=f().p,g=-1==g?g:F(g),y=-1==g?a:p(g);-1==e.inArray(c,t().slice(g+1,y))&&V.call(d,void 0,!0,c.charCodeAt(0),b,v,a)}else V.call(d,void 0,!0,c.charCodeAt(0),b,v,a),v=v||0<a&&a>f().p});!0===v&&-1!=f().p&&(f().lastValidPosition=F(f().p))}function ea(a){return e.inputmask.escapeRegex.call(this,a)}function X(a){return a.replace(RegExp("("+ea(t().join(""))+")*$"),"")}function Y(a){var d=l(),c=d.slice(),f,b;for(b=c.length-
|
||||
1;0<=b;b--)if(f=D(b),q()[f].optionality)if(r(b)&&R(b,d[b],!0))break;else c.pop();else break;I(a,c)}function la(a,c){if(!q()||!0!==c&&a.hasClass("hasDatepicker"))return a[0]._valueGet();var f=e.map(l(),function(a,d){return r(d)&&R(d,a,!0)?a:null}),f=(z?f.reverse():f).join("");return e.isFunction(d.onUnMask)?d.onUnMask.call(a,l().join(""),f,d):f}function K(a){!z||"number"!=typeof a||d.greedy&&""==d.placeholder||(a=l().length-a);return a}function w(a,c,f){var b=a.jquery&&0<a.length?a[0]:a;if("number"==
|
||||
typeof c)c=K(c),f=K(f),e(b).is(":visible")&&(f="number"==typeof f?f:c,b.scrollLeft=b.scrollWidth,!1==d.insertMode&&c==f&&f++,b.setSelectionRange?(b.selectionStart=c,b.selectionEnd=f):b.createTextRange&&(a=b.createTextRange(),a.collapse(!0),a.moveEnd("character",f),a.moveStart("character",c),a.select()));else{if(!e(a).is(":visible"))return{begin:0,end:0};b.setSelectionRange?(c=b.selectionStart,f=b.selectionEnd):document.selection&&document.selection.createRange&&(a=document.selection.createRange(),
|
||||
c=0-a.duplicate().moveStart("character",-1E5),f=c+a.text.length);c=K(c);f=K(f);return{begin:c,end:f}}}function Q(f){if(e.isFunction(d.isComplete))return d.isComplete.call(s,f,d);if("*"!=d.repeat){var b=!1,g=0,y=c;e.each(a,function(a,d){if("object"==typeof d){c=a;var e=F(n());if(d.lastValidPosition>=g&&d.lastValidPosition==e){for(var y=!0,h=0;h<=e;h++){var k=r(h),l=D(h);if(k&&(void 0==f[h]||f[h]==O(h))||!k&&f[h]!=t()[l]){y=!1;break}}if(b=b||y)return!1}g=d.lastValidPosition}});c=y;return b}}function ma(a){a=
|
||||
e._data(a).events;e.each(a,function(a,d){e.each(d,function(a,d){if("inputmask"==d.namespace&&"setvalue"!=d.type){var c=d.handler;d.handler=function(a){if(this.readOnly||this.disabled)a.preventDefault;else return c.apply(this,arguments)}}})})}function na(a){function d(a){if(void 0==e.valHooks[a]||!0!=e.valHooks[a].inputmaskpatch){var c=e.valHooks[a]&&e.valHooks[a].get?e.valHooks[a].get:function(a){return a.value},f=e.valHooks[a]&&e.valHooks[a].set?e.valHooks[a].set:function(a,d){a.value=d;return a};
|
||||
e.valHooks[a]={get:function(a){var d=e(a);if(d.data("_inputmask")){if(d.data("_inputmask").opts.autoUnmask)return d.inputmask("unmaskedvalue");a=c(a);d=d.data("_inputmask");return a!=d.masksets[d.activeMasksetIndex]._buffer.join("")?a:""}return c(a)},set:function(a,d){var c=e(a),b=f(a,d);c.data("_inputmask")&&c.triggerHandler("setvalue.inputmask");return b},inputmaskpatch:!0}}}var c;Object.getOwnPropertyDescriptor&&(c=Object.getOwnPropertyDescriptor(a,"value"));if(c&&c.get){if(!a._valueGet){var f=
|
||||
c.get,b=c.set;a._valueGet=function(){return z?f.call(this).split("").reverse().join(""):f.call(this)};a._valueSet=function(a){b.call(this,z?a.split("").reverse().join(""):a)};Object.defineProperty(a,"value",{get:function(){var a=e(this),d=e(this).data("_inputmask"),c=d.masksets,b=d.activeMasksetIndex;return d&&d.opts.autoUnmask?a.inputmask("unmaskedvalue"):f.call(this)!=c[b]._buffer.join("")?f.call(this):""},set:function(a){b.call(this,a);e(this).triggerHandler("setvalue.inputmask")}})}}else document.__lookupGetter__&&
|
||||
a.__lookupGetter__("value")?a._valueGet||(f=a.__lookupGetter__("value"),b=a.__lookupSetter__("value"),a._valueGet=function(){return z?f.call(this).split("").reverse().join(""):f.call(this)},a._valueSet=function(a){b.call(this,z?a.split("").reverse().join(""):a)},a.__defineGetter__("value",function(){var a=e(this),d=e(this).data("_inputmask"),c=d.masksets,b=d.activeMasksetIndex;return d&&d.opts.autoUnmask?a.inputmask("unmaskedvalue"):f.call(this)!=c[b]._buffer.join("")?f.call(this):""}),a.__defineSetter__("value",
|
||||
function(a){b.call(this,a);e(this).triggerHandler("setvalue.inputmask")})):(a._valueGet||(a._valueGet=function(){return z?this.value.split("").reverse().join(""):this.value},a._valueSet=function(a){this.value=z?a.split("").reverse().join(""):a}),d(a.type))}function fa(a,d,c,b){var e=l();if(!1!==b)for(;!r(a)&&0<=a-1;)a--;for(b=a;b<d&&b<n();b++)if(r(b)){U(e,b);var g=p(b),h=H(e,g);if(h!=O(g))if(g<n()&&!1!==R(b,h,!0)&&q()[D(b)].def==q()[D(g)].def)G(e,b,h,!0);else if(r(b))break}else U(e,b);void 0!=c&&
|
||||
G(e,F(d),c);if(!1==f().greedy){d=X(e.join("")).split("");e.length=d.length;b=0;for(c=e.length;b<c;b++)e[b]=d[b];0==e.length&&(f().buffer=t().slice())}return a}function ga(a,d,c){var b=l();if(H(b,a,!0)!=O(a))for(var e=F(d);e>a&&0<=e;e--)if(r(e)){var g=F(e),h=H(b,g);h!=O(g)&&!1!==R(e,h,!0)&&q()[D(e)].def==q()[D(g)].def&&(G(b,e,h,!0),U(b,g))}else U(b,e);void 0!=c&&H(b,a)==O(a)&&G(b,a,c);a=b.length;if(!1==f().greedy){c=X(b.join("")).split("");b.length=c.length;e=0;for(g=b.length;e<g;e++)b[e]=c[e];0==
|
||||
b.length&&(f().buffer=t().slice())}return d-(a-b.length)}function ha(a,c,b){if(d.numericInput||z){switch(c){case d.keyCode.BACKSPACE:c=d.keyCode.DELETE;break;case d.keyCode.DELETE:c=d.keyCode.BACKSPACE}if(z){var e=b.end;b.end=b.begin;b.begin=e}}e=!0;b.begin==b.end?(e=c==d.keyCode.BACKSPACE?b.begin-1:b.begin,d.isNumeric&&""!=d.radixPoint&&l()[e]==d.radixPoint&&(b.begin=l().length-1==e?b.begin:c==d.keyCode.BACKSPACE?e:p(e),b.end=b.begin),e=!1,c==d.keyCode.BACKSPACE?b.begin--:c==d.keyCode.DELETE&&b.end++):
|
||||
1!=b.end-b.begin||d.insertMode||(e=!1,c==d.keyCode.BACKSPACE&&b.begin--);W(l(),b.begin,b.end);var g=n();if(!1==d.greedy&&(isNaN(d.repeat)||0<d.repeat))fa(b.begin,g,void 0,!z&&c==d.keyCode.BACKSPACE&&!e);else{for(var h=b.begin,k=b.begin;k<b.end;k++)if(r(k)||!e)h=fa(b.begin,g,void 0,!z&&c==d.keyCode.BACKSPACE&&!e);e||(b.begin=h)}c=p(-1);W(l(),b.begin,b.end,!0);J(a,!1,!1,l());f().lastValidPosition<c?(f().lastValidPosition=-1,f().p=c):f().p=b.begin}function Z(a){$=!1;var c=this,b=e(c),g=a.keyCode,k=w(c);
|
||||
g==d.keyCode.BACKSPACE||g==d.keyCode.DELETE||h&&127==g||a.ctrlKey&&88==g?(a.preventDefault(),88==g&&(L=l().join("")),ha(c,g,k),ba(),I(c,l(),f().p),c._valueGet()==t().join("")&&b.trigger("cleared"),d.showTooltip&&b.prop("title",f().mask)):g==d.keyCode.END||g==d.keyCode.PAGE_DOWN?setTimeout(function(){var b=p(f().lastValidPosition);d.insertMode||b!=n()||a.shiftKey||b--;w(c,a.shiftKey?k.begin:b,b)},0):g==d.keyCode.HOME&&!a.shiftKey||g==d.keyCode.PAGE_UP?w(c,0,a.shiftKey?k.begin:0):g==d.keyCode.ESCAPE||
|
||||
90==g&&a.ctrlKey?(J(c,!0,!1,L.split("")),b.click()):g!=d.keyCode.INSERT||a.shiftKey||a.ctrlKey?!1!=d.insertMode||a.shiftKey||(g==d.keyCode.RIGHT?setTimeout(function(){var a=w(c);w(c,a.begin)},0):g==d.keyCode.LEFT&&setTimeout(function(){var a=w(c);w(c,a.begin-1)},0)):(d.insertMode=!d.insertMode,w(c,d.insertMode||k.begin!=n()?k.begin:k.begin-1));b=w(c);!0===d.onKeyDown.call(this,a,l(),d)&&w(c,b.begin,b.end);ia=-1!=e.inArray(g,d.ignorables)}function V(b,g,h,k,A,t){if(void 0==h&&$)return!1;$=!0;var q=
|
||||
e(this);b=b||window.event;h=g?h:b.which||b.charCode||b.keyCode;if(!(!0===g||b.ctrlKey&&b.altKey)&&(b.ctrlKey||b.metaKey||ia))return!0;if(h){!0!==g&&46==h&&!1==b.shiftKey&&","==d.radixPoint&&(h=44);var m,s,r=String.fromCharCode(h);g?(h=A?t:f().lastValidPosition+1,m={begin:h,end:h}):m=w(this);t=z?1<m.begin-m.end||1==m.begin-m.end&&d.insertMode:1<m.end-m.begin||1==m.end-m.begin&&d.insertMode;var u=c;t&&(e.each(a,function(a,d){"object"==typeof d&&(c=a,f().undoBuffer=l().join(""))}),c=u,ha(this,d.keyCode.DELETE,
|
||||
m),d.insertMode||e.each(a,function(a,d){"object"==typeof d&&(c=a,ga(m.begin,n()),f().lastValidPosition=p(f().lastValidPosition))}),c=u);var S=l().join("").indexOf(d.radixPoint);d.isNumeric&&!0!==g&&-1!=S&&(d.greedy&&m.begin<=S?(m.begin=F(m.begin),m.end=m.begin):r==d.radixPoint&&(m.begin=S,m.end=m.begin));var C=m.begin;h=R(C,r,A);!0===A&&(h=[{activeMasksetIndex:c,result:h}]);var E=-1;e.each(h,function(a,b){c=b.activeMasksetIndex;f().writeOutBuffer=!0;var e=b.result;if(!1!==e){var g=!1,h=l();!0!==e&&
|
||||
(g=e.refresh,C=void 0!=e.pos?e.pos:C,r=void 0!=e.c?e.c:r);if(!0!==g){if(!0==d.insertMode){e=n();for(h=h.slice();H(h,e,!0)!=O(e)&&e>=C;)e=0==e?-1:F(e);e>=C?(ga(C,n(),r),h=f().lastValidPosition,e=p(h),e!=n()&&h>=C&&H(l().slice(),e,!0)!=O(e)&&(f().lastValidPosition=e)):f().writeOutBuffer=!1}else G(h,C,r,!0);if(-1==E||E>p(C))E=p(C)}else!A&&(h=C<n()?C+1:C,-1==E||E>h)&&(E=h);E>f().p&&(f().p=E)}});!0!==A&&(c=u,ba());if(!1!==k)if(e.each(h,function(a,d){if(d.activeMasksetIndex==c)return s=d,!1}),void 0!=s){var D=
|
||||
this;setTimeout(function(){d.onKeyValidation.call(D,s.result,d)},0);if(f().writeOutBuffer&&!1!==s.result){var J=l();k=g?void 0:d.numericInput?C>S?F(E):r==d.radixPoint?E-1:F(E-1):E;I(this,J,k);!0!==g&&setTimeout(function(){!0===Q(J)&&q.trigger("complete");aa=!0;q.trigger("input")},0)}else t&&(f().buffer=f().undoBuffer.split(""))}else t&&(f().buffer=f().undoBuffer.split(""));d.showTooltip&&q.prop("title",f().mask);b&&(b.preventDefault?b.preventDefault():b.returnValue=!1)}}function ja(a){var c=e(this),
|
||||
b=a.keyCode,f=l();d.onKeyUp.call(this,a,f,d);b==d.keyCode.TAB&&d.showMaskOnFocus&&(c.hasClass("focus.inputmask")&&0==this._valueGet().length?(f=t().slice(),I(this,f),w(this,0),L=l().join("")):(I(this,f),f.join("")==t().join("")&&-1!=e.inArray(d.radixPoint,f)?(w(this,K(0)),c.click()):w(this,K(0),K(n()))))}function ka(a){if(!0===aa&&"input"==a.type)return aa=!1,!0;var c=this,b=e(c);if("propertychange"==a.type&&c._valueGet().length<=n())return!0;setTimeout(function(){var a=e.isFunction(d.onBeforePaste)?
|
||||
d.onBeforePaste.call(c,c._valueGet(),d):c._valueGet();J(c,!1,!1,a.split(""),!0);I(c,l());!0===Q(l())&&b.trigger("complete");b.click()},0)}function oa(a){var c=e(this),b=w(this),f=this._valueGet(),f=f.replace(RegExp("("+ea(t().join(""))+")*"),"");b.begin>f.length&&(w(this,f.length),b=w(this));1!=l().length-f.length||f.charAt(b.begin)==l()[b.begin]||f.charAt(b.begin+1)==l()[b.begin]||r(b.begin)?(J(this,!1,!1,f.split("")),I(this,l()),!0===Q(l())&&c.trigger("complete"),c.click()):(a.keyCode=d.keyCode.BACKSPACE,
|
||||
Z.call(this,a));a.preventDefault()}function pa(b){s=e(b);if(s.is(":input")){s.data("_inputmask",{masksets:a,activeMasksetIndex:c,opts:d,isRTL:!1});d.showTooltip&&s.prop("title",f().mask);f().greedy=f().greedy?f().greedy:0==f().repeat;if(null!=s.attr("maxLength")){var h=s.prop("maxLength");-1<h&&e.each(a,function(a,d){"object"==typeof d&&"*"==d.repeat&&(d.repeat=h)});n()>=h&&-1<h&&(h<t().length&&(t().length=h),!1==f().greedy&&(f().repeat=Math.round(h/t().length)),s.prop("maxLength",2*n()))}na(b);d.numericInput&&
|
||||
(d.isNumeric=d.numericInput);("rtl"==b.dir||d.numericInput&&d.rightAlignNumerics||d.isNumeric&&d.rightAlignNumerics)&&s.css("text-align","right");if("rtl"==b.dir||d.numericInput){b.dir="ltr";s.removeAttr("dir");var A=s.data("_inputmask");A.isRTL=!0;s.data("_inputmask",A);z=!0}s.unbind(".inputmask");s.removeClass("focus.inputmask");s.closest("form").bind("submit",function(){L!=l().join("")&&s.change()}).bind("reset",function(){setTimeout(function(){s.trigger("setvalue")},0)});s.bind("mouseenter.inputmask",
|
||||
function(){!e(this).hasClass("focus.inputmask")&&d.showMaskOnHover&&this._valueGet()!=l().join("")&&I(this,l())}).bind("blur.inputmask",function(){var b=e(this),f=this._valueGet(),g=l();b.removeClass("focus.inputmask");L!=l().join("")&&b.change();d.clearMaskOnLostFocus&&""!=f&&(f==t().join("")?this._valueSet(""):Y(this));!1===Q(g)&&(b.trigger("incomplete"),d.clearIncomplete&&(e.each(a,function(a,d){"object"==typeof d&&(d.buffer=d._buffer.slice(),d.lastValidPosition=-1)}),c=0,d.clearMaskOnLostFocus?
|
||||
this._valueSet(""):(g=t().slice(),I(this,g))))}).bind("focus.inputmask",function(){var a=e(this),b=this._valueGet();d.showMaskOnFocus&&!a.hasClass("focus.inputmask")&&(!d.showMaskOnHover||d.showMaskOnHover&&""==b)&&this._valueGet()!=l().join("")&&I(this,l(),p(f().lastValidPosition));a.addClass("focus.inputmask");L=l().join("")}).bind("mouseleave.inputmask",function(){var a=e(this);d.clearMaskOnLostFocus&&(a.hasClass("focus.inputmask")||this._valueGet()==a.attr("placeholder")||(this._valueGet()==t().join("")||
|
||||
""==this._valueGet()?this._valueSet(""):Y(this)))}).bind("click.inputmask",function(){var a=this;setTimeout(function(){var b=w(a),c=l();if(b.begin==b.end){var b=z?K(b.begin):b.begin,g=f().lastValidPosition,c=d.isNumeric?!1===d.skipRadixDance&&""!=d.radixPoint&&-1!=e.inArray(d.radixPoint,c)?d.numericInput?p(e.inArray(d.radixPoint,c)):e.inArray(d.radixPoint,c):p(g):p(g);b<c?r(b)?w(a,b):w(a,p(b)):w(a,c)}},0)}).bind("dblclick.inputmask",function(){var a=this;setTimeout(function(){w(a,0,p(f().lastValidPosition))},
|
||||
0)}).bind(P+".inputmask dragdrop.inputmask drop.inputmask",ka).bind("setvalue.inputmask",function(){J(this,!0);L=l().join("");this._valueGet()==t().join("")&&this._valueSet("")}).bind("complete.inputmask",d.oncomplete).bind("incomplete.inputmask",d.onincomplete).bind("cleared.inputmask",d.oncleared);s.bind("keydown.inputmask",Z).bind("keypress.inputmask",V).bind("keyup.inputmask",ja);if(k||u||m||M)if(s.attr("autocomplete","off").attr("autocorrect","off").attr("autocapitalize","off").attr("spellcheck",
|
||||
!1),u||M)s.unbind("keydown.inputmask",Z).unbind("keypress.inputmask",V).unbind("keyup.inputmask",ja),"input"==P&&s.unbind(P+".inputmask"),s.bind("input.inputmask",oa);g&&s.bind("input.inputmask",ka);A=e.isFunction(d.onBeforeMask)?d.onBeforeMask.call(b,b._valueGet(),d):b._valueGet();J(b,!0,!1,A.split(""));L=l().join("");var q;try{q=document.activeElement}catch(S){}q===b?(s.addClass("focus.inputmask"),w(b,p(f().lastValidPosition))):d.clearMaskOnLostFocus?l().join("")==t().join("")?b._valueSet(""):Y(b):
|
||||
I(b,l());ma(b)}}var z=!1,L=l().join(""),s,$=!1,aa=!1,ia=!1;if(void 0!=b)switch(b.action){case "isComplete":return Q(b.buffer);case "unmaskedvalue":return z=b.$input.data("_inputmask").isRTL,la(b.$input,b.skipDatepickerCheck);case "mask":pa(b.el);break;case "format":return s=e({}),s.data("_inputmask",{masksets:a,activeMasksetIndex:c,opts:d,isRTL:d.numericInput}),d.numericInput&&(d.isNumeric=d.numericInput,z=!0),b=b.value.split(""),J(s,!1,!1,z?b.reverse():b,!0),z?l().reverse().join(""):l().join("");
|
||||
case "isValid":return s=e({}),s.data("_inputmask",{masksets:a,activeMasksetIndex:c,opts:d,isRTL:d.numericInput}),d.numericInput&&(d.isNumeric=d.numericInput,z=!0),b=b.value.split(""),J(s,!1,!0,z?b.reverse():b),Q(l())}};e.inputmask={defaults:{placeholder:"_",optionalmarker:{start:"[",end:"]"},quantifiermarker:{start:"{",end:"}"},groupmarker:{start:"(",end:")"},escapeChar:"\\",mask:null,oncomplete:e.noop,onincomplete:e.noop,oncleared:e.noop,repeat:0,greedy:!0,autoUnmask:!1,clearMaskOnLostFocus:!0,insertMode:!0,
|
||||
clearIncomplete:!1,aliases:{},onKeyUp:e.noop,onKeyDown:e.noop,onBeforeMask:void 0,onBeforePaste:void 0,onUnMask:void 0,showMaskOnFocus:!0,showMaskOnHover:!0,onKeyValidation:e.noop,skipOptionalPartCharacter:" ",showTooltip:!1,numericInput:!1,isNumeric:!1,radixPoint:"",skipRadixDance:!1,rightAlignNumerics:!0,definitions:{9:{validator:"[0-9]",cardinality:1,definitionSymbol:"*"},a:{validator:"[A-Za-z\u0410-\u044f\u0401\u0451]",cardinality:1,definitionSymbol:"*"},"*":{validator:"[A-Za-z\u0410-\u044f\u0401\u04510-9]",
|
||||
cardinality:1}},keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91},ignorables:[8,9,13,19,27,33,34,35,36,37,38,39,40,45,46,93,112,113,114,115,116,117,118,119,120,121,122,123],
|
||||
getMaskLength:void 0,isComplete:void 0},escapeRegex:function(a){return a.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\)","gim"),"\\$1")},format:function(a,c){var d=e.extend(!0,{},e.inputmask.defaults,c);f(d.alias,c,d);return q(b(d),0,d,{action:"format",value:a})},isValid:function(a,c){var d=e.extend(!0,{},e.inputmask.defaults,c);f(d.alias,c,d);return q(b(d),0,d,{action:"isValid",value:a})}};e.fn.inputmask=function(a,c){var d=e.extend(!0,{},e.inputmask.defaults,c),g,h=0;if("string"===
|
||||
typeof a)switch(a){case "mask":return f(d.alias,c,d),g=b(d),0==g.length?this:this.each(function(){q(e.extend(!0,{},g),0,d,{action:"mask",el:this})});case "unmaskedvalue":var k=e(this);return k.data("_inputmask")?(g=k.data("_inputmask").masksets,h=k.data("_inputmask").activeMasksetIndex,d=k.data("_inputmask").opts,q(g,h,d,{action:"unmaskedvalue",$input:k})):k.val();case "remove":return this.each(function(){var a=e(this);if(a.data("_inputmask")){g=a.data("_inputmask").masksets;h=a.data("_inputmask").activeMasksetIndex;
|
||||
d=a.data("_inputmask").opts;this._valueSet(q(g,h,d,{action:"unmaskedvalue",$input:a,skipDatepickerCheck:!0}));a.removeData("_inputmask");a.unbind(".inputmask");a.removeClass("focus.inputmask");var b;Object.getOwnPropertyDescriptor&&(b=Object.getOwnPropertyDescriptor(this,"value"));b&&b.get?this._valueGet&&Object.defineProperty(this,"value",{get:this._valueGet,set:this._valueSet}):document.__lookupGetter__&&this.__lookupGetter__("value")&&this._valueGet&&(this.__defineGetter__("value",this._valueGet),
|
||||
this.__defineSetter__("value",this._valueSet));try{delete this._valueGet,delete this._valueSet}catch(c){this._valueSet=this._valueGet=void 0}}});case "getemptymask":return this.data("_inputmask")?(g=this.data("_inputmask").masksets,h=this.data("_inputmask").activeMasksetIndex,g[h]._buffer.join("")):"";case "hasMaskedValue":return this.data("_inputmask")?!this.data("_inputmask").opts.autoUnmask:!1;case "isComplete":return g=this.data("_inputmask").masksets,h=this.data("_inputmask").activeMasksetIndex,
|
||||
d=this.data("_inputmask").opts,q(g,h,d,{action:"isComplete",buffer:this[0]._valueGet().split("")});case "getmetadata":if(this.data("_inputmask"))return g=this.data("_inputmask").masksets,h=this.data("_inputmask").activeMasksetIndex,g[h].metadata;break;default:return f(a,c,d)||(d.mask=a),g=b(d),0==g.length?this:this.each(function(){q(e.extend(!0,{},g),h,d,{action:"mask",el:this})})}else{if("object"==typeof a)return d=e.extend(!0,{},e.inputmask.defaults,a),f(d.alias,a,d),g=b(d),0==g.length?this:this.each(function(){q(e.extend(!0,
|
||||
{},g),h,d,{action:"mask",el:this})});if(void 0==a)return this.each(function(){var a=e(this).attr("data-inputmask");if(a&&""!=a)try{var a=a.replace(RegExp("'","g"),'"'),b=e.parseJSON("{"+a+"}");e.extend(!0,b,c);d=e.extend(!0,{},e.inputmask.defaults,b);f(d.alias,b,d);d.alias=void 0;e(this).inputmask(d)}catch(g){}})}}}})(jQuery);
|
||||
(function(e){e.extend(e.inputmask.defaults.definitions,{A:{validator:"[A-Za-z]",cardinality:1,casing:"upper"},"#":{validator:"[A-Za-z\u0410-\u044f\u0401\u04510-9]",cardinality:1,casing:"upper"}});e.extend(e.inputmask.defaults.aliases,{url:{mask:"ir",placeholder:"",separator:"",defaultPrefix:"http://",regex:{urlpre1:/[fh]/,urlpre2:/(ft|ht)/,urlpre3:/(ftp|htt)/,urlpre4:/(ftp:|http|ftps)/,urlpre5:/(ftp:\/|ftps:|http:|https)/,urlpre6:/(ftp:\/\/|ftps:\/|http:\/|https:)/,urlpre7:/(ftp:\/\/|ftps:\/\/|http:\/\/|https:\/)/,
|
||||
urlpre8:/(ftp:\/\/|ftps:\/\/|http:\/\/|https:\/\/)/},definitions:{i:{validator:function(a,f,b,e,c){return!0},cardinality:8,prevalidator:function(){for(var a=[],f=0;8>f;f++)a[f]=function(){var a=f;return{validator:function(f,c,e,k,m){if(m.regex["urlpre"+(a+1)]){var u=f;0<a+1-f.length&&(u=c.join("").substring(0,a+1-f.length)+""+u);f=m.regex["urlpre"+(a+1)].test(u);if(!k&&!f){e-=a;for(k=0;k<m.defaultPrefix.length;k++)c[e]=m.defaultPrefix[k],e++;for(k=0;k<u.length-1;k++)c[e]=u[k],e++;return{pos:e}}return f}return!1},
|
||||
cardinality:a}}();return a}()},r:{validator:".",cardinality:50}},insertMode:!1,autoUnmask:!1},ip:{mask:["[[x]y]z.[[x]y]z.[[x]y]z.x[yz]","[[x]y]z.[[x]y]z.[[x]y]z.[[x]y][z]"],definitions:{x:{validator:"[012]",cardinality:1,definitionSymbol:"i"},y:{validator:function(a,f,b,e,c){a=-1<b-1&&"."!=f[b-1]?f[b-1]+a:"0"+a;return/2[0-5]|[01][0-9]/.test(a)},cardinality:1,definitionSymbol:"i"},z:{validator:function(a,f,b,e,c){-1<b-1&&"."!=f[b-1]?(a=f[b-1]+a,a=-1<b-2&&"."!=f[b-2]?f[b-2]+a:"0"+a):a="00"+a;return/25[0-5]|2[0-4][0-9]|[01][0-9][0-9]/.test(a)},
|
||||
cardinality:1,definitionSymbol:"i"}}}})})(jQuery);
|
||||
(function(e){e.extend(e.inputmask.defaults.definitions,{h:{validator:"[01][0-9]|2[0-3]",cardinality:2,prevalidator:[{validator:"[0-2]",cardinality:1}]},s:{validator:"[0-5][0-9]",cardinality:2,prevalidator:[{validator:"[0-5]",cardinality:1}]},d:{validator:"0[1-9]|[12][0-9]|3[01]",cardinality:2,prevalidator:[{validator:"[0-3]",cardinality:1}]},m:{validator:"0[1-9]|1[012]",cardinality:2,prevalidator:[{validator:"[01]",cardinality:1}]},y:{validator:"(19|20)\\d{2}",cardinality:4,prevalidator:[{validator:"[12]",
|
||||
cardinality:1},{validator:"(19|20)",cardinality:2},{validator:"(19|20)\\d",cardinality:3}]}});e.extend(e.inputmask.defaults.aliases,{"dd/mm/yyyy":{mask:"1/2/y",placeholder:"dd/mm/yyyy",regex:{val1pre:/[0-3]/,val1:/0[1-9]|[12][0-9]|3[01]/,val2pre:function(a){a=e.inputmask.escapeRegex.call(this,a);return RegExp("((0[1-9]|[12][0-9]|3[01])"+a+"[01])")},val2:function(a){a=e.inputmask.escapeRegex.call(this,a);return RegExp("((0[1-9]|[12][0-9])"+a+"(0[1-9]|1[012]))|(30"+a+"(0[13-9]|1[012]))|(31"+a+"(0[13578]|1[02]))")}},
|
||||
leapday:"29/02/",separator:"/",yearrange:{minyear:1900,maxyear:2099},isInYearRange:function(a,f,b){var e=parseInt(a.concat(f.toString().slice(a.length)));a=parseInt(a.concat(b.toString().slice(a.length)));return(isNaN(e)?!1:f<=e&&e<=b)||(isNaN(a)?!1:f<=a&&a<=b)},determinebaseyear:function(a,f,b){var e=(new Date).getFullYear();if(a>e)return a;if(f<e){for(var e=f.toString().slice(0,2),c=f.toString().slice(2,4);f<e+b;)e--;f=e+c;return a>f?a:f}return e},onKeyUp:function(a,f,b){f=e(this);a.ctrlKey&&a.keyCode==
|
||||
b.keyCode.RIGHT&&(a=new Date,f.val(a.getDate().toString()+(a.getMonth()+1).toString()+a.getFullYear().toString()))},definitions:{1:{validator:function(a,f,b,e,c){var h=c.regex.val1.test(a);return e||h||a.charAt(1)!=c.separator&&-1=="-./".indexOf(a.charAt(1))||!(h=c.regex.val1.test("0"+a.charAt(0)))?h:(f[b-1]="0",{pos:b,c:a.charAt(0)})},cardinality:2,prevalidator:[{validator:function(a,f,b,e,c){var h=c.regex.val1pre.test(a);return e||h||!(h=c.regex.val1.test("0"+a))?h:(f[b]="0",b++,{pos:b})},cardinality:1}]},
|
||||
2:{validator:function(a,f,b,e,c){var h=f.join("").substr(0,3);-1!=h.indexOf(c.placeholder[0])&&(h="01"+c.separator);var k=c.regex.val2(c.separator).test(h+a);return e||k||a.charAt(1)!=c.separator&&-1=="-./".indexOf(a.charAt(1))||!(k=c.regex.val2(c.separator).test(h+"0"+a.charAt(0)))?k:(f[b-1]="0",{pos:b,c:a.charAt(0)})},cardinality:2,prevalidator:[{validator:function(a,f,b,e,c){var h=f.join("").substr(0,3);-1!=h.indexOf(c.placeholder[0])&&(h="01"+c.separator);var k=c.regex.val2pre(c.separator).test(h+
|
||||
a);return e||k||!(k=c.regex.val2(c.separator).test(h+"0"+a))?k:(f[b]="0",b++,{pos:b})},cardinality:1}]},y:{validator:function(a,f,b,e,c){if(c.isInYearRange(a,c.yearrange.minyear,c.yearrange.maxyear)){if(f.join("").substr(0,6)!=c.leapday)return!0;a=parseInt(a,10);return 0===a%4?0===a%100?0===a%400?!0:!1:!0:!1}return!1},cardinality:4,prevalidator:[{validator:function(a,f,b,e,c){var h=c.isInYearRange(a,c.yearrange.minyear,c.yearrange.maxyear);if(!e&&!h){e=c.determinebaseyear(c.yearrange.minyear,c.yearrange.maxyear,
|
||||
a+"0").toString().slice(0,1);if(h=c.isInYearRange(e+a,c.yearrange.minyear,c.yearrange.maxyear))return f[b++]=e[0],{pos:b};e=c.determinebaseyear(c.yearrange.minyear,c.yearrange.maxyear,a+"0").toString().slice(0,2);if(h=c.isInYearRange(e+a,c.yearrange.minyear,c.yearrange.maxyear))return f[b++]=e[0],f[b++]=e[1],{pos:b}}return h},cardinality:1},{validator:function(a,f,b,e,c){var h=c.isInYearRange(a,c.yearrange.minyear,c.yearrange.maxyear);if(!e&&!h){e=c.determinebaseyear(c.yearrange.minyear,c.yearrange.maxyear,
|
||||
a).toString().slice(0,2);if(h=c.isInYearRange(a[0]+e[1]+a[1],c.yearrange.minyear,c.yearrange.maxyear))return f[b++]=e[1],{pos:b};e=c.determinebaseyear(c.yearrange.minyear,c.yearrange.maxyear,a).toString().slice(0,2);c.isInYearRange(e+a,c.yearrange.minyear,c.yearrange.maxyear)?f.join("").substr(0,6)!=c.leapday?h=!0:(c=parseInt(a,10),h=0===c%4?0===c%100?0===c%400?!0:!1:!0:!1):h=!1;if(h)return f[b-1]=e[0],f[b++]=e[1],f[b++]=a[0],{pos:b}}return h},cardinality:2},{validator:function(a,f,b,e,c){return c.isInYearRange(a,
|
||||
c.yearrange.minyear,c.yearrange.maxyear)},cardinality:3}]}},insertMode:!1,autoUnmask:!1},"mm/dd/yyyy":{placeholder:"mm/dd/yyyy",alias:"dd/mm/yyyy",regex:{val2pre:function(a){a=e.inputmask.escapeRegex.call(this,a);return RegExp("((0[13-9]|1[012])"+a+"[0-3])|(02"+a+"[0-2])")},val2:function(a){a=e.inputmask.escapeRegex.call(this,a);return RegExp("((0[1-9]|1[012])"+a+"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])"+a+"30)|((0[13578]|1[02])"+a+"31)")},val1pre:/[01]/,val1:/0[1-9]|1[012]/},leapday:"02/29/",onKeyUp:function(a,
|
||||
f,b){f=e(this);a.ctrlKey&&a.keyCode==b.keyCode.RIGHT&&(a=new Date,f.val((a.getMonth()+1).toString()+a.getDate().toString()+a.getFullYear().toString()))}},"yyyy/mm/dd":{mask:"y/1/2",placeholder:"yyyy/mm/dd",alias:"mm/dd/yyyy",leapday:"/02/29",onKeyUp:function(a,f,b){f=e(this);a.ctrlKey&&a.keyCode==b.keyCode.RIGHT&&(a=new Date,f.val(a.getFullYear().toString()+(a.getMonth()+1).toString()+a.getDate().toString()))},definitions:{2:{validator:function(a,f,b,e,c){var h=f.join("").substr(5,3);-1!=h.indexOf(c.placeholder[5])&&
|
||||
(h="01"+c.separator);var k=c.regex.val2(c.separator).test(h+a);if(!(e||k||a.charAt(1)!=c.separator&&-1=="-./".indexOf(a.charAt(1)))&&(k=c.regex.val2(c.separator).test(h+"0"+a.charAt(0))))return f[b-1]="0",{pos:b,c:a.charAt(0)};if(k){if(f.join("").substr(4,4)+a!=c.leapday)return!0;a=parseInt(f.join("").substr(0,4),10);return 0===a%4?0===a%100?0===a%400?!0:!1:!0:!1}return k},cardinality:2,prevalidator:[{validator:function(a,f,b,e,c){var h=f.join("").substr(5,3);-1!=h.indexOf(c.placeholder[5])&&(h="01"+
|
||||
c.separator);var k=c.regex.val2pre(c.separator).test(h+a);return e||k||!(k=c.regex.val2(c.separator).test(h+"0"+a))?k:(f[b]="0",b++,{pos:b})},cardinality:1}]}}},"dd.mm.yyyy":{mask:"1.2.y",placeholder:"dd.mm.yyyy",leapday:"29.02.",separator:".",alias:"dd/mm/yyyy"},"dd-mm-yyyy":{mask:"1-2-y",placeholder:"dd-mm-yyyy",leapday:"29-02-",separator:"-",alias:"dd/mm/yyyy"},"mm.dd.yyyy":{mask:"1.2.y",placeholder:"mm.dd.yyyy",leapday:"02.29.",separator:".",alias:"mm/dd/yyyy"},"mm-dd-yyyy":{mask:"1-2-y",placeholder:"mm-dd-yyyy",
|
||||
leapday:"02-29-",separator:"-",alias:"mm/dd/yyyy"},"yyyy.mm.dd":{mask:"y.1.2",placeholder:"yyyy.mm.dd",leapday:".02.29",separator:".",alias:"yyyy/mm/dd"},"yyyy-mm-dd":{mask:"y-1-2",placeholder:"yyyy-mm-dd",leapday:"-02-29",separator:"-",alias:"yyyy/mm/dd"},datetime:{mask:"1/2/y h:s",placeholder:"dd/mm/yyyy hh:mm",alias:"dd/mm/yyyy",regex:{hrspre:/[012]/,hrs24:/2[0-9]|1[3-9]/,hrs:/[01][0-9]|2[0-3]/,ampm:/^[a|p|A|P][m|M]/},timeseparator:":",hourFormat:"24",definitions:{h:{validator:function(a,f,b,e,
|
||||
c){var h=c.regex.hrs.test(a);return e||h||a.charAt(1)!=c.timeseparator&&-1=="-.:".indexOf(a.charAt(1))||!(h=c.regex.hrs.test("0"+a.charAt(0)))?h&&"24"!==c.hourFormat&&c.regex.hrs24.test(a)?(a=parseInt(a,10),f[b+5]=24==a?"a":"p",f[b+6]="m",a-=12,10>a?(f[b]=a.toString(),f[b-1]="0"):(f[b]=a.toString().charAt(1),f[b-1]=a.toString().charAt(0)),{pos:b,c:f[b]}):h:(f[b-1]="0",f[b]=a.charAt(0),b++,{pos:b})},cardinality:2,prevalidator:[{validator:function(a,f,b,e,c){var h=c.regex.hrspre.test(a);return e||h||
|
||||
!(h=c.regex.hrs.test("0"+a))?h:(f[b]="0",b++,{pos:b})},cardinality:1}]},t:{validator:function(a,e,b,g,c){return c.regex.ampm.test(a+"m")},casing:"lower",cardinality:1}},insertMode:!1,autoUnmask:!1},datetime12:{mask:"1/2/y h:s t\\m",placeholder:"dd/mm/yyyy hh:mm xm",alias:"datetime",hourFormat:"12"},"hh:mm t":{mask:"h:s t\\m",placeholder:"hh:mm xm",alias:"datetime",hourFormat:"12"},"h:s t":{mask:"h:s t\\m",placeholder:"hh:mm xm",alias:"datetime",hourFormat:"12"},"hh:mm:ss":{mask:"h:s:s",autoUnmask:!1},
|
||||
"hh:mm":{mask:"h:s",autoUnmask:!1},date:{alias:"dd/mm/yyyy"},"mm/yyyy":{mask:"1/y",placeholder:"mm/yyyy",leapday:"donotuse",separator:"/",alias:"mm/dd/yyyy"}})})(jQuery);
|
||||
(function(e){e.extend(e.inputmask.defaults.aliases,{decimal:{mask:"~",placeholder:"",repeat:"*",greedy:!1,numericInput:!1,isNumeric:!0,digits:"*",groupSeparator:"",radixPoint:".",groupSize:3,autoGroup:!1,allowPlus:!0,allowMinus:!0,integerDigits:"*",defaultValue:"",prefix:"",suffix:"",getMaskLength:function(a,f,b,g,c){var h=a.length;f||("*"==b?h=g.length+1:1<b&&(h+=a.length*(b-1)));a=e.inputmask.escapeRegex.call(this,c.groupSeparator);c=e.inputmask.escapeRegex.call(this,c.radixPoint);g=g.join("");
|
||||
c=g.replace(RegExp(a,"g"),"").replace(RegExp(c),"");return h+(g.length-c.length)},postFormat:function(a,f,b,g){if(""==g.groupSeparator)return f;var c=a.slice();e.inArray(g.radixPoint,a);b||c.splice(f,0,"?");c=c.join("");if(g.autoGroup||b&&-1!=c.indexOf(g.groupSeparator)){for(var h=e.inputmask.escapeRegex.call(this,g.groupSeparator),c=c.replace(RegExp(h,"g"),""),h=c.split(g.radixPoint),c=h[0],k=RegExp("([-+]?[\\d?]+)([\\d?]{"+g.groupSize+"})");k.test(c);)c=c.replace(k,"$1"+g.groupSeparator+"$2"),c=
|
||||
c.replace(g.groupSeparator+g.groupSeparator,g.groupSeparator);1<h.length&&(c+=g.radixPoint+h[1])}a.length=c.length;g=0;for(h=c.length;g<h;g++)a[g]=c.charAt(g);c=e.inArray("?",a);b||a.splice(c,1);return b?f:c},regex:{number:function(a){var f=e.inputmask.escapeRegex.call(this,a.radixPoint),b=isNaN(a.digits)?a.digits:"{0,"+a.digits+"}",g=isNaN(a.integerDigits)?a.integerDigits:"{1,"+a.integerDigits+"}";return RegExp("^"+(a.allowPlus||a.allowMinus?"["+(a.allowPlus?"+":"")+(a.allowMinus?"-":"")+"]?":"")+
|
||||
"\\d"+g+"("+f+"\\d"+b+")?$")}},onKeyDown:function(a,f,b){var g=e(this);if(a.keyCode==b.keyCode.TAB){if(a=e.inArray(b.radixPoint,f),-1!=a){for(var c=g.data("_inputmask").masksets,g=g.data("_inputmask").activeMasksetIndex,h=1;h<=b.digits&&h<b.getMaskLength(c[g]._buffer,c[g].greedy,c[g].repeat,f,b);h++)if(void 0==f[a+h]||""==f[a+h])f[a+h]="0";this._valueSet(f.join(""))}}else if(a.keyCode==b.keyCode.DELETE||a.keyCode==b.keyCode.BACKSPACE)return b.postFormat(f,0,!0,b),this._valueSet(f.join("")),!0},definitions:{"~":{validator:function(a,
|
||||
f,b,g,c){var h=e.extend({},c,{digits:g?"*":c.digits});if(""==a)return!1;if(!g&&1>=b&&"0"===f[0]&&/[\d-]/.test(a)&&1==f.join("").length)return f[0]="",{pos:0};var k=g?f.slice(0,b):f.slice();k.splice(b,0,a);var k=k.join(""),m=e.inputmask.escapeRegex.call(this,c.groupSeparator),k=k.replace(RegExp(m,"g"),"");g&&k.lastIndexOf(c.radixPoint)==k.length-1&&(m=e.inputmask.escapeRegex.call(this,c.radixPoint),k=k.replace(RegExp(m,"g"),""));if(!g&&""==k)return!1;m=c.regex.number(h).test(k);if(!m&&(k+="0",m=c.regex.number(h).test(k),
|
||||
!m)){m=k.lastIndexOf(c.groupSeparator);for(m=k.length-m;3>=m;m++)k+="0";m=c.regex.number(h).test(k);if(!m&&!g&&a==c.radixPoint&&(m=c.regex.number(h).test("0"+k+"0")))return f[b]="0",b++,{pos:b}}return!1==m||g||a==c.radixPoint?m:{pos:c.postFormat(f,b,"-"==a||"+"==a?!0:!1,c)}},cardinality:1,prevalidator:null}},insertMode:!0,autoUnmask:!1},integer:{regex:{number:function(a){var f=e.inputmask.escapeRegex.call(this,a.groupSeparator);return RegExp("^"+(a.allowPlus||a.allowMinus?"["+(a.allowPlus?"+":"")+
|
||||
(a.allowMinus?"-":"")+"]?":"")+"(\\d+|\\d{1,"+a.groupSize+"}(("+f+"\\d{"+a.groupSize+"})?)+)$")}},alias:"decimal"}})})(jQuery);
|
||||
(function(e){e.extend(e.inputmask.defaults.aliases,{Regex:{mask:"r",greedy:!1,repeat:"*",regex:null,regexTokens:null,tokenizer:/\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g,quantifierFilter:/[0-9]+[^,]/,isComplete:function(a,e){return RegExp(e.regex).test(a.join(""))},definitions:{r:{validator:function(a,e,b,g,c){function h(a,b){this.matches=
|
||||
[];this.isGroup=a||!1;this.isQuantifier=b||!1;this.quantifier={min:1,max:1};this.repeaterPart=void 0}function k(){var a=new h,b,e=[];for(c.regexTokens=[];b=c.tokenizer.exec(c.regex);)switch(b=b[0],b.charAt(0)){case "(":e.push(new h(!0));break;case ")":var d=e.pop();0<e.length?e[e.length-1].matches.push(d):a.matches.push(d);break;case "{":case "+":case "*":var f=new h(!1,!0);b=b.replace(/[{}]/g,"");d=b.split(",");b=isNaN(d[0])?d[0]:parseInt(d[0]);d=1==d.length?b:isNaN(d[1])?d[1]:parseInt(d[1]);f.quantifier=
|
||||
{min:b,max:d};if(0<e.length){var g=e[e.length-1].matches;b=g.pop();b.isGroup||(d=new h(!0),d.matches.push(b),b=d);g.push(b);g.push(f)}else b=a.matches.pop(),b.isGroup||(d=new h(!0),d.matches.push(b),b=d),a.matches.push(b),a.matches.push(f);break;default:0<e.length?e[e.length-1].matches.push(b):a.matches.push(b)}0<a.matches.length&&c.regexTokens.push(a)}function m(a,b){var c=!1;b&&(u+="(",M++);for(var d=0;d<a.matches.length;d++){var e=a.matches[d];if(!0==e.isGroup)c=m(e,!0);else if(!0==e.isQuantifier){var f=
|
||||
a.matches.indexOf(e),f=a.matches[f-1],h=u;if(isNaN(e.quantifier.max)){for(;e.repeaterPart&&e.repeaterPart!=u&&e.repeaterPart.length>u.length&&!(c=m(f,!0)););(c=c||m(f,!0))&&(e.repeaterPart=u);u=h+e.quantifier.max}else{for(var g=0,k=e.quantifier.max-1;g<k&&!(c=m(f,!0));g++);u=h+"{"+e.quantifier.min+","+e.quantifier.max+"}"}}else if(void 0!=e.matches)for(f=0;f<e.length&&!(c=m(e[f],b));f++);else{if("["==e[0]){c=u;c+=e;for(g=0;g<M;g++)c+=")";c=RegExp("^("+c+")$");c=c.test(P)}else for(f=0,h=e.length;f<
|
||||
h;f++)if("\\"!=e[f]){c=u;c+=e.substr(0,f+1);c=c.replace(/\|$/,"");for(g=0;g<M;g++)c+=")";c=RegExp("^("+c+")$");if(c=c.test(P))break}u+=e}if(c)break}b&&(u+=")",M--);return c}null==c.regexTokens&&k();g=e.slice();var u="";e=!1;var M=0;g.splice(b,0,a);var P=g.join("");for(a=0;a<c.regexTokens.length&&!(h=c.regexTokens[a],e=m(h,h.isGroup));a++);return e},cardinality:1}}}})})(jQuery);
|
||||
(function(e){e.extend(e.inputmask.defaults.aliases,{phone:{url:"phone-codes/phone-codes.json",mask:function(a){a.definitions={p:{validator:function(){return!1},cardinality:1},"#":{validator:"[0-9]",cardinality:1}};var f=[];e.ajax({url:a.url,async:!1,dataType:"json",success:function(a){f=a}});f.splice(0,0,"+p(ppp)ppp-pppp");return f}}})})(jQuery);
|
||||
@@ -0,0 +1,174 @@
|
||||
/* jshint forin:true, noarg:true, noempty:true, eqeqeq:true, boss:true, undef:true, curly:true, browser:true, jquery:true */
|
||||
/*
|
||||
* jQuery MultiSelect UI Widget Filtering Plugin 1.5pre
|
||||
* Copyright (c) 2012 Eric Hynds
|
||||
*
|
||||
* http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/
|
||||
*
|
||||
* Depends:
|
||||
* - jQuery UI MultiSelect widget
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
*/
|
||||
(function($) {
|
||||
var rEscape = /[\-\[\]{}()*+?.,\\\^$|#\s]/g;
|
||||
|
||||
$.widget('ech.multiselectfilter', {
|
||||
|
||||
options: {
|
||||
label: 'Filter:',
|
||||
width: null, /* override default width set in css file (px). null will inherit */
|
||||
placeholder: 'Enter keywords',
|
||||
autoReset: false
|
||||
},
|
||||
|
||||
_create: function() {
|
||||
var opts = this.options;
|
||||
var elem = $(this.element);
|
||||
|
||||
// get the multiselect instance
|
||||
var instance = (this.instance = (elem.data('echMultiselect') || elem.data("multiselect") || elem.data("ech-multiselect")));
|
||||
|
||||
// store header; add filter class so the close/check all/uncheck all links can be positioned correctly
|
||||
var header = (this.header = instance.menu.find('.ui-multiselect-header').addClass('ui-multiselect-hasfilter'));
|
||||
|
||||
// wrapper elem
|
||||
var wrapper = (this.wrapper = $('<div class="ui-multiselect-filter">' + (opts.label.length ? opts.label : '') + '<input placeholder="'+opts.placeholder+'" type="search"' + (/\d/.test(opts.width) ? 'style="width:'+opts.width+'px"' : '') + ' /></div>').prependTo(this.header));
|
||||
|
||||
// reference to the actual inputs
|
||||
this.inputs = instance.menu.find('input[type="checkbox"], input[type="radio"]');
|
||||
|
||||
// build the input box
|
||||
this.input = wrapper.find('input').bind({
|
||||
keydown: function(e) {
|
||||
// prevent the enter key from submitting the form / closing the widget
|
||||
if(e.which === 13) {
|
||||
e.preventDefault();
|
||||
}
|
||||
},
|
||||
keyup: $.proxy(this._handler, this),
|
||||
click: $.proxy(this._handler, this)
|
||||
});
|
||||
|
||||
// cache input values for searching
|
||||
this.updateCache();
|
||||
|
||||
// rewrite internal _toggleChecked fn so that when checkAll/uncheckAll is fired,
|
||||
// only the currently filtered elements are checked
|
||||
instance._toggleChecked = function(flag, group) {
|
||||
var $inputs = (group && group.length) ? group : this.labels.find('input');
|
||||
var _self = this;
|
||||
|
||||
// do not include hidden elems if the menu isn't open.
|
||||
var selector = instance._isOpen ? ':disabled, :hidden' : ':disabled';
|
||||
|
||||
$inputs = $inputs
|
||||
.not(selector)
|
||||
.each(this._toggleState('checked', flag));
|
||||
|
||||
// update text
|
||||
this.update();
|
||||
|
||||
// gather an array of the values that actually changed
|
||||
var values = $inputs.map(function() {
|
||||
return this.value;
|
||||
}).get();
|
||||
|
||||
// select option tags
|
||||
this.element.find('option').filter(function() {
|
||||
if(!this.disabled && $.inArray(this.value, values) > -1) {
|
||||
_self._toggleState('selected', flag).call(this);
|
||||
}
|
||||
});
|
||||
|
||||
// trigger the change event on the select
|
||||
if($inputs.length) {
|
||||
this.element.trigger('change');
|
||||
}
|
||||
};
|
||||
|
||||
// rebuild cache when multiselect is updated
|
||||
var doc = $(document).bind('multiselectrefresh', $.proxy(function() {
|
||||
this.updateCache();
|
||||
this._handler();
|
||||
}, this));
|
||||
|
||||
// automatically reset the widget on close?
|
||||
if(this.options.autoReset) {
|
||||
doc.bind('multiselectclose', $.proxy(this._reset, this));
|
||||
}
|
||||
},
|
||||
|
||||
// thx for the logic here ben alman
|
||||
_handler: function(e) {
|
||||
var term = $.trim(this.input[0].value.toLowerCase()),
|
||||
|
||||
// speed up lookups
|
||||
rows = this.rows, inputs = this.inputs, cache = this.cache;
|
||||
|
||||
if(!term) {
|
||||
rows.show();
|
||||
} else {
|
||||
rows.hide();
|
||||
|
||||
var regex = new RegExp(term.replace(rEscape, "\\$&"), 'gi');
|
||||
|
||||
this._trigger("filter", e, $.map(cache, function(v, i) {
|
||||
if(v.search(regex) !== -1) {
|
||||
rows.eq(i).show();
|
||||
return inputs.get(i);
|
||||
}
|
||||
|
||||
return null;
|
||||
}));
|
||||
}
|
||||
|
||||
// show/hide optgroups
|
||||
this.instance.menu.find(".ui-multiselect-optgroup-label").each(function() {
|
||||
var $this = $(this);
|
||||
var isVisible = $this.nextUntil('.ui-multiselect-optgroup-label').filter(function() {
|
||||
return $.css(this, "display") !== 'none';
|
||||
}).length;
|
||||
|
||||
$this[isVisible ? 'show' : 'hide']();
|
||||
});
|
||||
},
|
||||
|
||||
_reset: function() {
|
||||
this.input.val('').trigger('keyup');
|
||||
},
|
||||
|
||||
updateCache: function() {
|
||||
// each list item
|
||||
this.rows = this.instance.menu.find(".ui-multiselect-checkboxes li:not(.ui-multiselect-optgroup-label)");
|
||||
|
||||
// cache
|
||||
this.cache = this.element.children().map(function() {
|
||||
var elem = $(this);
|
||||
|
||||
// account for optgroups
|
||||
if(this.tagName.toLowerCase() === "optgroup") {
|
||||
elem = elem.children();
|
||||
}
|
||||
|
||||
return elem.map(function() {
|
||||
return this.innerHTML.toLowerCase();
|
||||
}).get();
|
||||
}).get();
|
||||
},
|
||||
|
||||
widget: function() {
|
||||
return this.wrapper;
|
||||
},
|
||||
|
||||
destroy: function() {
|
||||
$.Widget.prototype.destroy.call(this);
|
||||
this.input.val('').trigger("keyup");
|
||||
this.wrapper.remove();
|
||||
}
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,11 @@
|
||||
/*
|
||||
* jQuery UI Touch Punch 0.2.2
|
||||
*
|
||||
* Copyright 2011, Dave Furfero
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
*
|
||||
* Depends:
|
||||
* jquery.ui.widget.js
|
||||
* jquery.ui.mouse.js
|
||||
*/
|
||||
(function(b){b.support.touch="ontouchend" in document;if(!b.support.touch){return;}var c=b.ui.mouse.prototype,e=c._mouseInit,a;function d(g,h){if(g.originalEvent.touches.length>1){return;}g.preventDefault();var i=g.originalEvent.changedTouches[0],f=document.createEvent("MouseEvents");f.initMouseEvent(h,true,true,window,1,i.screenX,i.screenY,i.clientX,i.clientY,false,false,false,false,0,null);g.target.dispatchEvent(f);}c._touchStart=function(g){var f=this;if(a||!f._mouseCapture(g.originalEvent.changedTouches[0])){return;}a=true;f._touchMoved=false;d(g,"mouseover");d(g,"mousemove");d(g,"mousedown");};c._touchMove=function(f){if(!a){return;}this._touchMoved=true;d(f,"mousemove");};c._touchEnd=function(f){if(!a){return;}d(f,"mouseup");d(f,"mouseout");if(!this._touchMoved){d(f,"click");}a=false;};c._mouseInit=function(){var f=this;f.element.bind("touchstart",b.proxy(f,"_touchStart")).bind("touchmove",b.proxy(f,"_touchMove")).bind("touchend",b.proxy(f,"_touchEnd"));e.call(f);};})(jQuery);
|
||||
@@ -0,0 +1,74 @@
|
||||
/*!
|
||||
* jQuery WakeUp plugin
|
||||
*
|
||||
* A JQuery plugin that will help detecting waking up from sleep and/or
|
||||
* hibernation and executing assigned functions.
|
||||
*
|
||||
* Based on code provided by Andrew Mu:
|
||||
* http://stackoverflow.com/questions/4079115
|
||||
*
|
||||
* Copyright (c) 2013, Paul Okopny <paul.okopny@gmail.com>
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
*/
|
||||
(function ($, document, undefined) {
|
||||
var default_wakeup_interval = 5000;
|
||||
var wake_up_ids = new Array();
|
||||
// returns intervalId, which can be used to cancel future waking
|
||||
$.wakeUp = function (on_wakeup, params, interval) {
|
||||
|
||||
if ((!interval) || typeof(interval) !== 'number' ) {
|
||||
interval = default_wakeup_interval;
|
||||
}
|
||||
// on_wakeup should be a function
|
||||
if (typeof(on_wakeup) !== "function") {
|
||||
return null;
|
||||
}
|
||||
var lastTime = (new Date()).getTime();
|
||||
var intervalId = setInterval(function() {
|
||||
var currentTime = (new Date()).getTime();
|
||||
if (currentTime > (lastTime + interval + 5000)) { //
|
||||
var sleepTime = currentTime - lastTime;
|
||||
lastTime = currentTime;
|
||||
if (params) {
|
||||
on_wakeup(sleepTime, params);
|
||||
} else {
|
||||
on_wakeup(sleepTime);
|
||||
}
|
||||
} else {
|
||||
lastTime = currentTime;
|
||||
}
|
||||
}, interval);
|
||||
//add interval id to wake_up_ids array
|
||||
wake_up_ids.push(intervalId);
|
||||
return intervalId;
|
||||
};
|
||||
|
||||
$.ignoreBell = function (interval_id) {
|
||||
if (interval_id) {
|
||||
// delete only one wakeUp call
|
||||
wake_up_ids.splice($.inArray(interval_id, wake_up_ids),1);
|
||||
clearInterval(interval_id);
|
||||
}
|
||||
};
|
||||
|
||||
$.dreamOn = function() {
|
||||
// delete all current wake Up calls
|
||||
$.each(wake_up_ids, function (index_of, interval_id) {
|
||||
clearInterval(interval_id)
|
||||
});
|
||||
wake_up_ids = [];
|
||||
};
|
||||
|
||||
})(jQuery, document);
|
||||
@@ -0,0 +1,468 @@
|
||||
/*!
|
||||
* jQuery UI Selectmenu @VERSION
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright 2013 jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/selectmenu
|
||||
*
|
||||
* Depends:
|
||||
* jquery.ui.core.js
|
||||
* jquery.ui.widget.js
|
||||
* jquery.ui.position.js
|
||||
* jquery.ui.menu.js
|
||||
*/
|
||||
(function( $, undefined ) {
|
||||
|
||||
$.widget( "ui.selectmenu", {
|
||||
version: "@VERSION",
|
||||
defaultElement: "<select>",
|
||||
options: {
|
||||
appendTo: null,
|
||||
icons: {
|
||||
button: "ui-icon-triangle-1-s"
|
||||
},
|
||||
position: {
|
||||
my: "left top",
|
||||
at: "left bottom",
|
||||
collision: "none"
|
||||
},
|
||||
|
||||
// callbacks
|
||||
change: null,
|
||||
close: null,
|
||||
focus: null,
|
||||
open: null,
|
||||
select: null
|
||||
},
|
||||
|
||||
_create: function() {
|
||||
var selectmenuId = this.element.uniqueId().attr( "id" );
|
||||
this.ids = { id: selectmenuId, button: selectmenuId + "-button", menu: selectmenuId + "-menu" };
|
||||
|
||||
this._drawButton();
|
||||
this._drawMenu();
|
||||
|
||||
this._on( document, this._documentClick );
|
||||
|
||||
if ( this.options.disabled ) {
|
||||
this.disable();
|
||||
}
|
||||
},
|
||||
|
||||
_drawButton: function() {
|
||||
var tabindex = this.element.attr( "tabindex" );
|
||||
|
||||
// fix existing label
|
||||
this.label = $( "label[for='" + this.ids.id + "']" ).attr( "for", this.ids.button );
|
||||
this._on( this.label, {
|
||||
"click": function( event ) {
|
||||
this.button.focus();
|
||||
event.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
// hide original select tag
|
||||
this.element.hide();
|
||||
|
||||
// create button
|
||||
this.button = $( "<span>", {
|
||||
"class": "ui-selectmenu-button ui-widget ui-state-default ui-corner-all",
|
||||
tabindex: ( tabindex ? tabindex : this.options.disabled ? -1 : 0 ),
|
||||
id: this.ids.button,
|
||||
width: this.element.outerWidth(),
|
||||
role: "combobox",
|
||||
"aria-expanded": false,
|
||||
"aria-autocomplete": "list",
|
||||
"aria-owns": this.ids.menu,
|
||||
"aria-haspopup": true
|
||||
})
|
||||
.insertAfter( this.element );
|
||||
|
||||
this.button.prepend( $( "<span>", {
|
||||
"class": "ui-icon " + this.options.icons.button
|
||||
}));
|
||||
|
||||
this.buttonText = $( "<span>", {
|
||||
"class": "ui-selectmenu-text"
|
||||
})
|
||||
.appendTo( this.button );
|
||||
this._setText( this.buttonText, this.element.find( "option:selected" ).text() );
|
||||
|
||||
this._on( this.button, this._buttonEvents );
|
||||
this._hoverable( this.button );
|
||||
this._focusable( this.button );
|
||||
},
|
||||
|
||||
_drawMenu: function() {
|
||||
var menuInstance,
|
||||
that = this;
|
||||
|
||||
// create menu portion, append to body
|
||||
this.menu = $( "<ul>", {
|
||||
"aria-hidden": true,
|
||||
"aria-labelledby": this.ids.button,
|
||||
id: this.ids.menu
|
||||
});
|
||||
|
||||
// wrap menu
|
||||
this.menuWrap = $( "<div>", {
|
||||
"class": "ui-selectmenu-menu",
|
||||
width: this.button.outerWidth()
|
||||
})
|
||||
.append( this.menu )
|
||||
.appendTo( this._appendTo() );
|
||||
|
||||
// init menu widget
|
||||
menuInstance = this.menu.menu({
|
||||
select: function( event, ui ) {
|
||||
var item = ui.item.data( "ui-selectmenu-item" );
|
||||
|
||||
that._select( item, event );
|
||||
|
||||
if ( that.isOpen ) {
|
||||
event.preventDefault();
|
||||
that.close( event );
|
||||
}
|
||||
},
|
||||
focus: function( event, ui ) {
|
||||
var item = ui.item.data( "ui-selectmenu-item" );
|
||||
// prevent inital focus from firing and checks if its a newly focused item
|
||||
if ( !that.isOpen && that.focus !== undefined && item.index !== that.focus ) {
|
||||
that._trigger( "focus", event, { item: item } );
|
||||
if ( !that.isOpen ) {
|
||||
that._select( item, event );
|
||||
}
|
||||
}
|
||||
that.focus = item.index;
|
||||
|
||||
// Set ARIA active descendant
|
||||
that.button.attr( "aria-activedescendant", that.menuItems.eq( item.index ).attr( "id" ) );
|
||||
},
|
||||
// set ARIA role
|
||||
role: "listbox"
|
||||
})
|
||||
.menu( "instance" );
|
||||
|
||||
// adjust border radius
|
||||
this.menu.addClass( "ui-corner-bottom" ).removeClass( "ui-corner-all" );
|
||||
|
||||
// make sure focus stays on selected item
|
||||
menuInstance.delay = 999999999;
|
||||
// unbind uneeded Menu events
|
||||
menuInstance._off( this.menu, "mouseleave" );
|
||||
},
|
||||
|
||||
refresh: function() {
|
||||
this.menu.empty();
|
||||
|
||||
var item,
|
||||
options = this.element.find( "option" );
|
||||
if ( options.length ) {
|
||||
this._readOptions( options );
|
||||
this._renderMenu( this.menu, this.items );
|
||||
|
||||
this.menu.menu( "refresh" );
|
||||
this.menuItems = this.menu.find( "li" ).not( ".ui-selectmenu-optgroup" ).find( "a" );
|
||||
|
||||
item = this._getSelectedItem();
|
||||
// make sure menu is selected item aware
|
||||
this.menu.menu( "focus", null, item );
|
||||
this._setAria( item.data( "ui-selectmenu-item" ) );
|
||||
|
||||
// set disabled state
|
||||
this._setOption( "disabled", this._getCreateOptions().disabled );
|
||||
}
|
||||
},
|
||||
|
||||
open: function( event ) {
|
||||
if ( this.options.disabled ) {
|
||||
return;
|
||||
}
|
||||
if ( !this.menuItems ) {
|
||||
this.refresh();
|
||||
}
|
||||
|
||||
this.isOpen = true;
|
||||
this._toggleAttr();
|
||||
this.menuWrap.position( $.extend( { of: this.button }, this.options.position ) );
|
||||
|
||||
this._trigger( "open", event );
|
||||
},
|
||||
|
||||
close: function( event ) {
|
||||
if ( !this.isOpen ) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.isOpen = false;
|
||||
this._toggleAttr();
|
||||
|
||||
// check if we have an item to select
|
||||
if ( this.menuItems ) {
|
||||
this.menu.menu( "focus", null, this._getSelectedItem() );
|
||||
}
|
||||
|
||||
this._trigger( "close", event );
|
||||
},
|
||||
|
||||
widget: function() {
|
||||
return this.button;
|
||||
},
|
||||
|
||||
menuWidget: function() {
|
||||
return this.menu;
|
||||
},
|
||||
|
||||
_renderMenu: function( ul, items ) {
|
||||
var that = this,
|
||||
currentOptgroup = "";
|
||||
|
||||
$.each( items, function( index, item ) {
|
||||
if ( item.optgroup !== currentOptgroup ) {
|
||||
$( "<li>", {
|
||||
"class": "ui-selectmenu-optgroup" + ( item.element.parent( "optgroup" ).attr( "disabled" ) ? " ui-state-disabled" : "" ),
|
||||
text: item.optgroup
|
||||
}).appendTo( ul );
|
||||
currentOptgroup = item.optgroup;
|
||||
}
|
||||
that._renderItem( ul, item );
|
||||
});
|
||||
},
|
||||
|
||||
_renderItem: function( ul, item ) {
|
||||
var li = $( "<li>" ).data( "ui-selectmenu-item", item ),
|
||||
a = $( "<a>", { href: "#" });
|
||||
|
||||
if ( item.disabled ) {
|
||||
li.addClass( "ui-state-disabled" );
|
||||
}
|
||||
this._setText( a, item.label );
|
||||
|
||||
return li.append( a ).appendTo( ul );
|
||||
},
|
||||
|
||||
_setText: function( element, value ) {
|
||||
if ( value ) {
|
||||
element.text( value );
|
||||
} else {
|
||||
element.html( " " );
|
||||
}
|
||||
},
|
||||
|
||||
_move: function( direction, event ) {
|
||||
if ( direction === "first" || direction === "last" ) {
|
||||
// set focus manually for first or last item
|
||||
this.menu.menu( "focus", event, this.menuItems[ direction ]() );
|
||||
} else {
|
||||
// move to and focus next or prev item
|
||||
this.menu.menu( direction, event );
|
||||
}
|
||||
},
|
||||
|
||||
_getSelectedItem: function() {
|
||||
return this.menuItems.eq( this.element[ 0 ].selectedIndex ).parent( "li" );
|
||||
},
|
||||
|
||||
_toggle: function( event ) {
|
||||
if ( this.isOpen ) {
|
||||
this.close( event );
|
||||
} else {
|
||||
this.open( event );
|
||||
}
|
||||
},
|
||||
|
||||
_documentClick: {
|
||||
click: function( event ) {
|
||||
if ( this.isOpen && !$( event.target ).closest( "li.ui-state-disabled, li.ui-selectmenu-optgroup, #" + this.ids.button ).length ) {
|
||||
this.close( event );
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_buttonEvents: {
|
||||
focus: function() {
|
||||
// init Menu on first focus
|
||||
this.refresh();
|
||||
// reset focus class as its removed by ui.widget._setOption
|
||||
this.button.addClass( "ui-state-focus" );
|
||||
this._off( this.button, "focus" );
|
||||
},
|
||||
click: function( event ) {
|
||||
this._toggle( event );
|
||||
event.preventDefault();
|
||||
},
|
||||
keydown: function( event ) {
|
||||
var prevDef = true;
|
||||
switch ( event.keyCode ) {
|
||||
case $.ui.keyCode.TAB:
|
||||
case $.ui.keyCode.ESCAPE:
|
||||
if ( this.isOpen ) {
|
||||
this.close( event );
|
||||
}
|
||||
prevDef = false;
|
||||
break;
|
||||
case $.ui.keyCode.ENTER:
|
||||
if ( this.isOpen ) {
|
||||
this.menu.menu( "select", event );
|
||||
}
|
||||
break;
|
||||
case $.ui.keyCode.UP:
|
||||
if ( event.altKey ) {
|
||||
this._toggle( event );
|
||||
} else {
|
||||
this._move( "previous", event );
|
||||
}
|
||||
break;
|
||||
case $.ui.keyCode.DOWN:
|
||||
if ( event.altKey ) {
|
||||
this._toggle( event );
|
||||
} else {
|
||||
this._move( "next", event );
|
||||
}
|
||||
break;
|
||||
case $.ui.keyCode.SPACE:
|
||||
if ( this.isOpen ) {
|
||||
this.menu.menu( "select", event );
|
||||
} else {
|
||||
this._toggle( event );
|
||||
}
|
||||
break;
|
||||
case $.ui.keyCode.LEFT:
|
||||
this._move( "previous", event );
|
||||
break;
|
||||
case $.ui.keyCode.RIGHT:
|
||||
this._move( "next", event );
|
||||
break;
|
||||
case $.ui.keyCode.HOME:
|
||||
case $.ui.keyCode.PAGE_UP:
|
||||
this._move( "first", event );
|
||||
break;
|
||||
case $.ui.keyCode.END:
|
||||
case $.ui.keyCode.PAGE_DOWN:
|
||||
this._move( "last", event );
|
||||
break;
|
||||
default:
|
||||
this.menu.trigger( event );
|
||||
prevDef = false;
|
||||
}
|
||||
if ( prevDef ) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_select: function( item, event ) {
|
||||
var oldIndex = this.element[ 0 ].selectedIndex;
|
||||
// change native select element
|
||||
this.element[ 0 ].selectedIndex = item.index;
|
||||
this._setText( this.buttonText, item.label );
|
||||
this._setAria( item );
|
||||
this._trigger( "select", event, { item: item } );
|
||||
|
||||
if ( item.index !== oldIndex ) {
|
||||
this._trigger( "change", event, { item: item } );
|
||||
}
|
||||
},
|
||||
|
||||
_setAria: function( item ) {
|
||||
var link = this.menuItems.eq( item.index ),
|
||||
id = link.attr( "id" );
|
||||
|
||||
// change ARIA attr
|
||||
this.button.attr({
|
||||
"aria-labelledby": id,
|
||||
"aria-activedescendant": id
|
||||
});
|
||||
this.menu.attr( "aria-activedescendant", id );
|
||||
},
|
||||
|
||||
_setOption: function( key, value ) {
|
||||
if ( key === "icons" ) {
|
||||
this.button.find( "span.ui-icon" )
|
||||
.removeClass( this.options.icons.button )
|
||||
.addClass( value.button );
|
||||
}
|
||||
|
||||
this._super( key, value );
|
||||
|
||||
if ( key === "appendTo" ) {
|
||||
this.menuWrap.appendTo( this._appendTo() );
|
||||
}
|
||||
if ( key === "disabled" ) {
|
||||
this.menu.menu( "option", "disabled", value );
|
||||
this.button
|
||||
.toggleClass( "ui-state-disabled", !!value )
|
||||
.attr( "aria-disabled", value );
|
||||
|
||||
if ( value ) {
|
||||
this.element.attr( "disabled", "disabled" );
|
||||
this.button.attr( "tabindex", -1 );
|
||||
this.close();
|
||||
} else {
|
||||
this.element.removeAttr( "disabled" );
|
||||
this.button.attr( "tabindex", 0 );
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_appendTo: function() {
|
||||
var element = this.options.appendTo;
|
||||
|
||||
if ( element ) {
|
||||
element = element.jquery || element.nodeType ?
|
||||
$( element ) :
|
||||
this.document.find( element ).eq( 0 );
|
||||
}
|
||||
|
||||
if ( !element ) {
|
||||
element = this.element.closest( ".ui-front" );
|
||||
}
|
||||
|
||||
if ( !element.length ) {
|
||||
element = this.document[0].body;
|
||||
}
|
||||
|
||||
return element;
|
||||
},
|
||||
|
||||
_toggleAttr: function(){
|
||||
this.button.toggleClass( "ui-corner-top", this.isOpen ).toggleClass( "ui-corner-all", !this.isOpen );
|
||||
this.menuWrap.toggleClass( "ui-selectmenu-open", this.isOpen );
|
||||
this.menu.attr( "aria-hidden", !this.isOpen);
|
||||
this.button.attr( "aria-expanded", this.isOpen);
|
||||
},
|
||||
|
||||
_getCreateOptions: function() {
|
||||
return { disabled: !!this.element.attr( "disabled" ) };
|
||||
},
|
||||
|
||||
_readOptions: function( options ) {
|
||||
var data = [];
|
||||
options.each( function( index, item ) {
|
||||
var option = $( item ),
|
||||
optgroup = option.parent( "optgroup" );
|
||||
data.push({
|
||||
element: option,
|
||||
index: index,
|
||||
value: option.attr( "value" ),
|
||||
label: option.text(),
|
||||
optgroup: optgroup.attr( "label" ) || "",
|
||||
disabled: optgroup.attr( "disabled" ) || option.attr( "disabled" )
|
||||
});
|
||||
});
|
||||
this.items = data;
|
||||
},
|
||||
|
||||
_destroy: function() {
|
||||
this.menuWrap.remove();
|
||||
this.button.remove();
|
||||
this.element.show();
|
||||
this.element.removeUniqueId();
|
||||
this.label.attr( "for", this.ids.id );
|
||||
}
|
||||
});
|
||||
|
||||
}( jQuery ));
|
||||
@@ -0,0 +1,2 @@
|
||||
// // Copyright (c) 2012 Florian H., https://github.com/js-coder https://github.com/js-coder/lostorage.js
|
||||
!function(e,t){var n={isArray:Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"},isPlainObj:function(e){return e===Object(e)},toArray:function(e){return Array.prototype.slice.call(e)},prepareArgs:function(e,t){return e=n.toArray(e),e.unshift(t),e},getObjKeyByValue:function(e,t){for(var n in e)if(e.hasOwnProperty(n)&&e[n]===t)return n},prepareReturn:function(t){return e[n.getObjKeyByValue(o,t)]},retrieve:function(e,n){return e==t?n:e},serialize:function(e){return JSON.stringify(e)},unserialize:function(e){return e==t?t:JSON.parse(e)}},r=function(){return r.get.apply(this,arguments)},i={storage:function(){return storage.get.apply(storage,arguments)},session:function(){return session.get.apply(session,arguments)}};r.set=function(e,t,r){if(n.isPlainObj(t))for(var i in t)t.hasOwnProperty(i)&&e.setItem(i,n.serialize(t[i]));else e.setItem(t,n.serialize(r));return n.prepareReturn(e)},r.invert=function(e,t){return this.set(e,t,!this.get(e,t))},r.add=function(e,t,n){return this.set(e,t,this.get(e,t)+parseInt(n,10))},r.increase=function(e,t,r){return this.add(e,t,n.retrieve(r,1))},r.decrease=function(e,t,r){return this.add(e,t,-n.retrieve(r,1))},r.concat=function(e,t,n){return this.set(e,t,this.get(e,t)+n)},r.push=function(e,t,r){var i=n.toArray(arguments),s=this.get(e,t,[]);return i.splice(0,2),s.push.apply(s,i),this.set(e,t,s)},r.extend=function(e,t,r,i){var s=this.get(e,t,{});if(n.isPlainObj(r))for(var o in r)r.hasOwnProperty(o)&&(s[o]=r[o]);else s[r]=i;return this.set(e,t,s)},r.remove=function(e,t){t=n.isArray(t)?t:n.toArray(arguments);for(var r=0,i=t.length;r<i;r++)delete e[t[r]];return n.prepareReturn(e)},r.empty=function(e){return e.clear(),n.prepareReturn(e)},r.get=function(e,r,i){i=i||t;if(n.isArray(r)){var s={};for(var o=0,u=r.length;o<u;o++){var a=r[o];s[a]=this.get(e,a,i)}return s}return n.retrieve(n.unserialize(e.getItem(r)),i)},r.all=function(e){var t={};for(var r=0,i=e.length;r<i;r++){var s=e.key(r);t[s]=n.unserialize(e.getItem(s))}return t};var s="set invert add increase decrease concat push extend remove empty get all".split(" "),o={storage:localStorage,session:sessionStorage};for(var u=0,a=s.length;u<a;u++){var f=s[u];for(var l in o){if(!o.hasOwnProperty(l))continue;var c=o[l];i[l][f]=function(e,t){return function(){var i=n.prepareArgs(arguments,t);return r[e].apply(r,i)}}(f,c)}}var h={storage:i.storage,session:i.session};typeof define=="function"&&define.amd?define(function(){return h}):typeof exports!="undefined"?module.exports=h:(e.storage=i.storage,e.session=i.session)}(window);
|
||||
@@ -0,0 +1,219 @@
|
||||
/*
|
||||
* Superclick v1.0.0 - jQuery menu widget
|
||||
* Copyright (c) 2013 Joel Birch
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
"use strict";
|
||||
|
||||
var methods = (function () {
|
||||
// private properties and methods go here
|
||||
var c = {
|
||||
bcClass: 'sf-breadcrumb',
|
||||
menuClass: 'sf-js-enabled',
|
||||
anchorClass: 'sf-with-ul',
|
||||
menuArrowClass: 'sf-arrows'
|
||||
},
|
||||
outerClick = (function () {
|
||||
$(window).load(function () {
|
||||
$('body').children().on('click.superclick', function () {
|
||||
var $allMenus = $('.sf-js-enabled');
|
||||
$allMenus.superclick('reset');
|
||||
});
|
||||
});
|
||||
})(),
|
||||
toggleMenuClasses = function ($menu, o) {
|
||||
var classes = c.menuClass;
|
||||
if (o.cssArrows) {
|
||||
classes += ' ' + c.menuArrowClass;
|
||||
}
|
||||
$menu.toggleClass(classes);
|
||||
},
|
||||
setPathToCurrent = function ($menu, o) {
|
||||
return $menu.find('li.' + o.pathClass).slice(0, o.pathLevels)
|
||||
.addClass(o.activeClass + ' ' + c.bcClass)
|
||||
.filter(function () {
|
||||
return ($(this).children(o.popUpSelector).hide().show().length);
|
||||
}).removeClass(o.pathClass);
|
||||
},
|
||||
toggleAnchorClass = function ($li) {
|
||||
$li.children('a').toggleClass(c.anchorClass);
|
||||
},
|
||||
toggleTouchAction = function ($menu) {
|
||||
var touchAction = $menu.css('ms-touch-action');
|
||||
touchAction = (touchAction === 'pan-y') ? 'auto' : 'pan-y';
|
||||
$menu.css('ms-touch-action', touchAction);
|
||||
},
|
||||
clickHandler = function (e) {
|
||||
var $this = $(this),
|
||||
$popUp = $this.siblings(e.data.popUpSelector),
|
||||
func;
|
||||
|
||||
if ($popUp.length) {
|
||||
func = ($popUp.is(':hidden')) ? over : out;
|
||||
$.proxy(func, $this.parent('li'))();
|
||||
return false;
|
||||
}
|
||||
},
|
||||
over = function () {
|
||||
var $this = $(this),
|
||||
o = getOptions($this);
|
||||
$this.siblings().superclick('hide').end().superclick('show');
|
||||
},
|
||||
out = function () {
|
||||
var $this = $(this),
|
||||
o = getOptions($this);
|
||||
$.proxy(close, $this, o)();
|
||||
},
|
||||
close = function (o) {
|
||||
o.retainPath = ($.inArray(this[0], o.$path) > -1);
|
||||
this.superclick('hide');
|
||||
|
||||
if (!this.parents('.' + o.activeClass).length) {
|
||||
o.onIdle.call(getMenu(this));
|
||||
if (o.$path.length) {
|
||||
$.proxy(over, o.$path)();
|
||||
}
|
||||
}
|
||||
},
|
||||
getMenu = function ($el) {
|
||||
return $el.closest('.' + c.menuClass);
|
||||
},
|
||||
getOptions = function ($el) {
|
||||
return getMenu($el).data('sf-options');
|
||||
};
|
||||
|
||||
return {
|
||||
// public methods
|
||||
hide: function (instant) {
|
||||
if (this.length) {
|
||||
var $this = this,
|
||||
o = getOptions($this);
|
||||
if (!o) {
|
||||
return this;
|
||||
}
|
||||
var not = (o.retainPath === true) ? o.$path : '',
|
||||
$popUp = $this.find('li.' + o.activeClass).add(this).not(not).removeClass(o.activeClass).children(o.popUpSelector),
|
||||
speed = o.speedOut;
|
||||
|
||||
if (instant) {
|
||||
$popUp.show();
|
||||
speed = 0;
|
||||
}
|
||||
o.retainPath = false;
|
||||
o.onBeforeHide.call($popUp);
|
||||
$popUp.stop(true, true).animate(o.animationOut, speed, function () {
|
||||
var $this = $(this);
|
||||
o.onHide.call($this);
|
||||
});
|
||||
}
|
||||
return this;
|
||||
},
|
||||
show: function () {
|
||||
var o = getOptions(this);
|
||||
if (!o) {
|
||||
return this;
|
||||
}
|
||||
var $this = this.addClass(o.activeClass),
|
||||
$popUp = $this.children(o.popUpSelector);
|
||||
|
||||
o.onBeforeShow.call($popUp);
|
||||
$popUp.stop(true, true).animate(o.animation, o.speed, function () {
|
||||
o.onShow.call($popUp);
|
||||
});
|
||||
return this;
|
||||
},
|
||||
destroy: function () {
|
||||
return this.each(function () {
|
||||
var $this = $(this),
|
||||
o = $this.data('sf-options'),
|
||||
$hasPopUp;
|
||||
if (!o) {
|
||||
return false;
|
||||
}
|
||||
$hasPopUp = $this.find(o.popUpSelector).parent('li');
|
||||
toggleMenuClasses($this, o);
|
||||
toggleAnchorClass($hasPopUp);
|
||||
toggleTouchAction($this);
|
||||
// remove event handlers
|
||||
$this.off('.superclick');
|
||||
// clear animation's inline display style
|
||||
$hasPopUp.children(o.popUpSelector).attr('style', function (i, style) {
|
||||
return style.replace(/display[^;]+;?/g, '');
|
||||
});
|
||||
// reset 'current' path classes
|
||||
o.$path.removeClass(o.activeClass + ' ' + c.bcClass).addClass(o.pathClass);
|
||||
$this.find('.' + o.activeClass).removeClass(o.activeClass);
|
||||
o.onDestroy.call($this);
|
||||
$this.removeData('sf-options');
|
||||
});
|
||||
},
|
||||
reset: function () {
|
||||
return this.each(function () {
|
||||
var $menu = $(this),
|
||||
o = getOptions($menu),
|
||||
$openLis = $($menu.find('.' + o.activeClass).toArray().reverse());
|
||||
$openLis.children('a').trigger('click');
|
||||
});
|
||||
},
|
||||
init: function (op) {
|
||||
return this.each(function () {
|
||||
var $this = $(this);
|
||||
if ($this.data('sf-options')) {
|
||||
return false;
|
||||
}
|
||||
var o = $.extend({}, $.fn.superclick.defaults, op),
|
||||
$hasPopUp = $this.find(o.popUpSelector).parent('li');
|
||||
o.$path = setPathToCurrent($this, o);
|
||||
|
||||
$this.data('sf-options', o);
|
||||
|
||||
toggleMenuClasses($this, o);
|
||||
toggleAnchorClass($hasPopUp);
|
||||
toggleTouchAction($this);
|
||||
$this.on('click.superclick', 'a', o, clickHandler);
|
||||
|
||||
$hasPopUp.not('.' + c.bcClass).superclick('hide', true);
|
||||
|
||||
o.onInit.call(this);
|
||||
});
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
||||
$.fn.superclick = function (method, args) {
|
||||
if (methods[method]) {
|
||||
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
|
||||
}
|
||||
else if (typeof method === 'object' || ! method) {
|
||||
return methods.init.apply(this, arguments);
|
||||
}
|
||||
else {
|
||||
return $.error('Method ' + method + ' does not exist on jQuery.fn.superclick');
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.superclick.defaults = {
|
||||
popUpSelector: 'ul,.sf-mega', // within menu context
|
||||
activeClass: 'sfHover', // keep 'hover' in classname for compatibility reasons
|
||||
pathClass: 'overrideThisToUse',
|
||||
pathLevels: 1,
|
||||
animation: {opacity: 'show'},
|
||||
animationOut: {opacity: 'hide'},
|
||||
speed: 'normal',
|
||||
speedOut: 'fast',
|
||||
cssArrows: true,
|
||||
onInit: $.noop,
|
||||
onBeforeShow: $.noop,
|
||||
onShow: $.noop,
|
||||
onBeforeHide: $.noop,
|
||||
onHide: $.noop,
|
||||
onIdle: $.noop,
|
||||
onDestroy: $.noop
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,119 @@
|
||||
var systemLang = 'en';
|
||||
var systemDictionary = {};
|
||||
|
||||
function translateWord(text, lang, dictionary) {
|
||||
if (!text) return '';
|
||||
lang = lang || systemLang;
|
||||
dictionary = dictionary || systemDictionary;
|
||||
|
||||
if (dictionary[text]) {
|
||||
var newText = dictionary[text][lang];
|
||||
if (newText) {
|
||||
return newText;
|
||||
} else if (lang != 'en') {
|
||||
newText = dictionary[text].en;
|
||||
if (newText) {
|
||||
return newText;
|
||||
}
|
||||
}
|
||||
} else if (typeof text == 'string' && !text.match(/_tooltip$/)) {
|
||||
console.log('"' + text + '": {"en": "' + text + '", "de": "' + text + '", "ru": "' + text + '"},');
|
||||
} else if (typeof text !== 'string') {
|
||||
console.warn('Trying to translate non-text:' + text);
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
function translateAll(lang, dictionary) {
|
||||
lang = lang || systemLang;
|
||||
dictionary = dictionary || systemDictionary;
|
||||
|
||||
|
||||
// translate <div class="translate">textToTranslate</div>
|
||||
$(".translate").each(function (idx) {
|
||||
var text = $(this).attr('data-lang');
|
||||
if (!text) {
|
||||
text = $(this).html();
|
||||
$(this).attr('data-lang', text);
|
||||
}
|
||||
|
||||
var transText = translateWord(text, lang, dictionary);
|
||||
if (transText) {
|
||||
$(this).html(transText);
|
||||
}
|
||||
});
|
||||
// translate <input type="button" class="translateV" value="textToTranslate">
|
||||
$(".translateV").each(function (idx) {
|
||||
var text = $(this).attr('data-lang');
|
||||
if (!text) {
|
||||
text = $(this).attr('value');
|
||||
$(this).attr('data-lang', text);
|
||||
}
|
||||
|
||||
var transText = translateWord(text, lang, dictionary);
|
||||
if (transText) {
|
||||
$(this).attr('value', transText);
|
||||
}
|
||||
});
|
||||
$(".translateB").each(function (idx) {
|
||||
//<span class="ui-button-text" >Save</span>
|
||||
var text = $(this).attr('data-lang');
|
||||
if (!text) {
|
||||
text = $(this).html().match(/\>([\w ]+)\</);
|
||||
if (text && text.length > 1) {
|
||||
text = text[1];
|
||||
} else {
|
||||
text = $(this).html();
|
||||
$(this).attr('data-lang-pure', true);
|
||||
}
|
||||
$(this).attr('data-lang', text);
|
||||
}
|
||||
var transText = translateWord(text, lang, dictionary);
|
||||
if (transText) {
|
||||
if ($(this).attr('data-lang-pure')) {
|
||||
$(this).html(transText);
|
||||
} else {
|
||||
$(this).html($(this).html().replace(/>[\w ]+</, '>' + transText + '<'));
|
||||
}
|
||||
}
|
||||
});
|
||||
$(".translateT").each(function (idx) {
|
||||
//<span class="ui-button-text translateT" title="TextToTranslate">Save</span>
|
||||
var text = $(this).attr('data-lang');
|
||||
if (!text) {
|
||||
text = $(this).attr('title');
|
||||
$(this).attr('data-lang', text);
|
||||
}
|
||||
var transText = translateWord(text, lang, dictionary);
|
||||
if (transText) {
|
||||
$(this).attr('title', transText);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// make possible _('words to translate')
|
||||
var _ = function (text, arg1, arg2, arg3) {
|
||||
text = translateWord(text);
|
||||
|
||||
var pos = text.indexOf('%s');
|
||||
if (pos != -1) {
|
||||
text = text.replace('%s', arg1);
|
||||
} else {
|
||||
return text;
|
||||
}
|
||||
|
||||
pos = text.indexOf('%s');
|
||||
if (pos != -1) {
|
||||
text = text.replace('%s', arg2);
|
||||
} else {
|
||||
return text;
|
||||
}
|
||||
|
||||
pos = text.indexOf('%s');
|
||||
if (pos != -1) {
|
||||
text = text.replace('%s', arg3);
|
||||
}
|
||||
|
||||
return text;
|
||||
};
|
||||
|
||||