Commit 9cb25896 by jhrabal

wip

parent 497c0081
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="28" height="32" viewBox="0 0 28 32">
<path fill="#FFFFFF" d="M0.992 8.256h26.016c0.544 0 0.992-0.448 0.992-0.992v-2.528c0-0.544-0.448-0.992-0.992-0.992h-26.016c-0.544 0-0.992 0.448-0.992 0.992v2.528c0 0.544 0.448 0.992 0.992 0.992zM0.992 18.24h26.016c0.544 0 0.992-0.448 0.992-0.992v-2.496c0-0.544-0.448-0.992-0.992-0.992h-26.016c-0.544 0-0.992 0.448-0.992 0.992v2.496c0 0.544 0.448 0.992 0.992 0.992zM0.992 28.256h26.016c0.544 0 0.992-0.448 0.992-0.992v-2.528c0-0.544-0.448-0.992-0.992-0.992h-26.016c-0.544 0-0.992 0.448-0.992 0.992v2.528c0 0.544 0.448 0.992 0.992 0.992z"></path>
</svg>
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<title>envelope</title>
<path d="M31.392 11.936c0.256-0.192 0.608-0.032 0.608 0.288v12.768c0 1.664-1.344 3.008-3.008 3.008h-25.984c-1.664 0-3.008-1.344-3.008-3.008v-12.768c0-0.32 0.352-0.48 0.608-0.288 1.408 1.088 3.264 2.464 9.632 7.104 1.312 0.96 3.552 2.976 5.76 2.976 2.24 0 4.512-2.048 5.76-2.976 6.4-4.64 8.224-6.016 9.632-7.104zM16 20c1.44 0.032 3.552-1.824 4.576-2.592 8.32-6.016 8.928-6.528 10.848-8.032 0.352-0.288 0.576-0.736 0.576-1.184v-1.184c0-1.664-1.344-3.008-3.008-3.008h-25.984c-1.664 0-3.008 1.344-3.008 3.008v1.184c0 0.448 0.224 0.896 0.576 1.184 1.92 1.472 2.56 2.016 10.848 8.032 1.056 0.768 3.136 2.624 4.576 2.592z"></path>
</svg>
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="19" height="32" viewBox="0 0 19 32">
<path fill="#f79239" d="M18.624 13.216v11.392q0 1.024-1.024 1.024h-16.576q-1.024 0-1.024-1.024v-11.392q0-0.32 0.096-0.544t0.224-0.32 0.384-0.16 0.416-0.064 0.512 0 0.448 0.032v-4.064h0.032q0.288-2.784 2.368-4.512t4.896-1.696 4.832 1.984 2.272 4.864h0.032l0.064 3.424q0.128 0 0.48-0.032t0.48 0 0.416 0.064 0.384 0.16 0.192 0.32 0.096 0.544zM13.472 8.032q0-1.632-1.184-2.368t-2.912-0.736q-1.696 0-2.944 0.8t-1.248 2.464v3.968h8.288v-4.128z"></path>
</svg>
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<title>phone</title>
<path d="M30.848 1.536l-6.496-1.504c-0.736-0.16-1.44 0.224-1.728 0.864l-3.008 7.008c-0.075 0.172-0.118 0.373-0.118 0.584 0 0.475 0.22 0.898 0.563 1.173l0.003 0.002 3.776 3.104c-2.24 4.768-6.176 8.768-11.072 11.072l-3.104-3.776c-0.278-0.346-0.701-0.566-1.176-0.566-0.211 0-0.412 0.043-0.594 0.122l0.010-0.004-7.008 3.008c-0.64 0.288-1.024 0.992-0.864 1.696l1.504 6.528c0.16 0.672 0.768 1.152 1.472 1.152 16 0 28.992-12.96 28.992-28.992 0-0.704-0.48-1.312-1.152-1.472z"></path>
</svg>
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="28" height="32" viewBox="0 0 28 32">
<title>skype</title>
<path d="M26.56 18.72c0.16-0.864 0.288-1.792 0.288-2.72 0-7.104-5.76-12.832-12.832-12.832-0.928 0-1.856 0.096-2.752 0.288-1.184-0.928-2.656-1.472-4.256-1.472-3.872 0-7.008 3.136-7.008 7.008 0 1.6 0.544 3.072 1.472 4.256-0.192 0.896-0.32 1.824-0.32 2.752 0 7.104 5.76 12.832 12.832 12.832 0.928 0 1.856-0.096 2.752-0.288 1.184 0.896 2.656 1.44 4.256 1.44 3.872 0 7.008-3.136 7.008-6.976 0-1.6-0.544-3.104-1.44-4.288zM14.368 24.448c-4.096 0-7.52-1.824-7.52-4.064 0-0.992 0.576-1.92 1.856-1.92 1.952 0 2.112 2.816 5.504 2.816 1.6 0 2.624-0.704 2.624-1.632 0-1.184-0.992-1.344-2.624-1.76-3.904-0.96-7.36-1.376-7.36-5.44 0-3.712 3.68-5.088 6.816-5.088 3.456 0 6.944 1.376 6.944 3.488 0 1.056-0.704 1.984-1.888 1.984-1.792 0-1.824-2.112-4.704-2.112-1.6 0-2.624 0.448-2.624 1.408 0 1.248 1.312 1.376 4.32 2.080 2.592 0.576 5.664 1.664 5.664 4.832 0 3.712-3.552 5.408-7.008 5.408z"></path>
</svg>
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="cache-control" content="max-age=0">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="expires" content="Thu, 19 Jul 1984 7:15:00 GMT">
<meta http-equiv="pragma" content="no-cache">
<meta name="theme-color" content="#1287ed">
<meta name="msapplication-navbutton-color" content="#1287ed">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<link rel="stylesheet" type="text/css" href="p.css"/>
<title th:text="#{public.title}">Inodio</title>
<script type="text/javascript" th:utext="${_labels}">
window.__labels = [];
window.__labels['UsernameRequired'] = "Vyplňte prosím e-mail";
window.__labels['PasswordRequired'] = "Vyplňte prosím heslo";
window.__labels['UnexpectedError'] = "Došlo k neočekávané chybě";
window.__labels['UsernameTaken'] = "Uživatel již existuje. Zvolte prosím jiný e-mail";
window.__labels['BadUsername'] = "Neplatný e-mail";
window.__labels['BadPassword'] = "Neplatné heslo";
</script>
</head>
<body class="public-body with-top-menu">
<div class="jumbotron" id="link1">
<div class="container">
<!-- <span class="section-image-right" style="background-image:url('./images/dashboard.png');"></span> -->
<!-- background-position:center bottom; -->
<div class="content half pull-left">
<div class="jumbotron-main">
<h2 th:text="#{public.title}">Inodio</h2>
<p th:text="#{public.jumbotron.text}">Chytrý nástroj pro online správu živností a malých společností</p>
<a class="btn anim" href="signup" onclick="return handleScroll('signup');" th:text="#{public.cta}">Založit účet zdarma</a>
</div>
</div>
</div>
</div>
<div class="section section-1" id="link2">
<div class="container">
<span class="section-image-left" style="background-image:url('./images/dashboard.png');"></span>
<div class="content half pull-right content-350">
<h2 _th:text="#{public.section1.title}">Fusce consectetuer risus a nunc</h2>
<span class="full-content">
<span _th:text="#{public.section1.text}">Sed convallis magna eu sem. Fusce wisi. Morbi scelerisque luctus velit. Nullam lectus justo, vulputate eget mollis sed, tempor sed magna. Fusce nibh. Proin mattis lacinia justo. Nam sed tellus id magna elementum tincidunt.</span>
<!--
<ul _th:utext="#{public.section1.features}">
<li>Vystavovat a rozesílat <b>faktury</b></li>
<li>Sledovat své <b>příjmy a výdaje</b></li>
<li>Jednoduchou správu <b>daňových sazeb</b> a <b>DPH</b></li>
<li>Organizovat zakázky a náklady do <b>projektů</b></li>
<li>Spravovat informace o svých <b>zákaznících</b></li>
<li>Mít <b>přehled</b> o stavu své firmy prostřednictvím <b>reportů</b></li>
<li><b>Sdílet informace</b> se svými <b>účetními</b>
<li>Přístup <b>24 hodin denně</b></li>
<li>... a mnoho dalšího</li>
</ul>
-->
</span>
<a class="btn anim" href="signup" onclick="return handleScroll('signup');" th:text="#{public.cta}">Založit účet zdarma</a>
</div>
</div>
</div>
<!-- TODO line -->
<div class="section section-2" id="link3">
<div class="container">
<span class="section-image-right" style="background-image:url('./images/secondary.png');"></span>
<div class="content half pull-left content-350">
<h2 _th:text="#{public.section2.title}">Nulla accumsan, elit sit amet varius semper</h2>
<span class="full-content" _th:text="#{public.section2.text}">
Integer pellentesque quam vel velit. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
</span>
<a class="btn anim" href="signup" onclick="return handleScroll('signup');" th:text="#{public.cta}">Založit účet zdarma</a>
</div>
</div>
</div>
<!-- TODO line -->
<!--div class="section section-3">
<div class="container">
<div class="content center">
<h2 th:text="#{public.section3.title}">Testovací verze</h2>
<span class="full-content" th:utext="#{public.section3.text}">Naše řešení neustále vylepšujeme, aby bylo co <b>nejužitečnější</b> a práce s ním co <b>nejjednodušší</b> a <b>nejzábavnější</b>.<br/>Budeme rádi za Vaši zpětnou vazbu</span>
<br/>
<a class="btn anim" href="signup" onclick="return handleScroll('signup');" th:text="#{public.cta}">Založit účet zdarma</a>
</div>
</div>
</div-->
<div class="section section-prominent">
<div class="container" id="signup">
<div class="content pv0">
<div class="center pv25">
<h2 th:text="#{public.signupSection.title}">Začněte používat Inodio zdarma</h2>
<span th:text="#{public.signupSection.text}">Připojte se k různorodé komunitě živnostníků a podnikatelů a začněte používat Inodio během několika málo minut</span>
</div>
<form id="signupForm">
<div class="row-margin-10">
<div id="signupErrorId" class="p10 error-label"></div>
<div class="cell third form-field p10">
<input type="text" id="signupUsername" placeholder="E-mail" th:placeholder="#{public.signupSection.placeholder.email}"/>
<div id="signupUsernameError" class="error-label"></div>
</div>
<div class="cell third form-field p10">
<input type="password" id="signupPassword" placeholder="Password" th:placeholder="#{public.signupSection.placeholder.password}"/>
<div id="signupPasswordError" class="error-label"></div>
</div>
<span class="cell third form-button bottom p10">
<div class="auth-button-container">
<button id="signupButton" class="btn" th:text="#{public.signupSection.button}">Založit účet</button>
<div id="authActivityIndicator" class="activity-indicator-container" style="display:none;">
<div class="ball-pulse">
<div></div>
<div></div>
<div></div>
</div>
</div>
</div>
</span>
</div>
</form>
<div class="row-margin-10">
<div class="center terms-disclaimer" th:utext="#{public.signupSection.terms}">
<input class="checkbox-inline" type="checkbox" /> Založením a používáním účtu souhlasíte s <a href="./terms.html" target="_terms">podmínkami služby</a>.
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container center">
Copyright <a href="http://www.janhrabal.com" target="_blank">Jan Hrabal</a> &copy;2014-<span id="copyright-year">2018</span>
</div>
</div>
<div class="top-menu">
<div class="container">
<div class="top-menu-items pull-left left hidden-sm">
<a href="#link1" onclick="return handleScroll('link1');" th:text="#{public.menu.item1}">Domů</a>
<a href="#link2" onclick="return handleScroll('link2');" th:text="#{public.menu.item2}">Vlastnosti</a>
<a href="#link3" onclick="return handleScroll('link3');" th:text="#{public.menu.item3}">O Projektu</a>
<a href="#link3" onclick="return handleScroll('signup');" th:text="#{public.menu.item4}">Registrace</a>
</div>
<div class="top-menu-items pull-right right">
<a href="/auth/login">
<img src="./icons/login.svg" class="login-icon" />
<b th:text="#{public.menu.login}">Přihlášení</b>
</a>
</div>
</div>
</div>
<div id="side-menu">
<div>
<a href="#" class="menu-item" onclick="return handleScroll('link1', true);" th:text="#{public.menu.item1}">Domů</a>
<a href="#" class="menu-item" onclick="return handleScroll('link2', true);" th:text="#{public.menu.item2}">Vlastnosti</a>
<a href="#" class="menu-item" onclick="return handleScroll('link3', true);" th:text="#{public.menu.item3}">O Projektu</a>
<a href="#" class="menu-item" onclick="return handleScroll('signup', true);" th:text="#{public.menu.item4}">Registrace</a>
</div>
</div>
<a href="#" id="side-menu-button" class="side-menu-button pull-left visible-block-sm">
<img src="./icons/bars.svg"/>
</a>
<script type="text/javascript" src="./js/velocity.min.js"></script>
<script type="text/javascript" src="./js/public.js"></script>
<script type="text/javascript" src="./js/signup.js"></script>
<script type="text/javascript">
(function() {
var year = Math.max(2018, (new Date()).getFullYear());
document.getElementById("copyright-year").innerHTML = year;
})();
window.$ = function(id, nonnull) {
if (!id) {
return nonnull ? {} : null;
}
var el = document.getElementById(id);
return el || (nonnull ? {} : null);
}
function handleScroll(id, toggle) {
if (toggle) {
toggleSideMenu();
}
var el = $(id);
if (el) {
Velocity(el, 'scroll', { duration: 750, offset: -62 });
}
return false;
}
function toggleSideMenu() {
var menu = $("side-menu");
var button = $("side-menu-button");
if (!menu || !button) {
return;
}
var open = window.sideMenuOpen;
if (open) {
Velocity(menu, { translateX: ['-110%', '0%'] }, { duration: 250 });
window.sideMenuOpen = false;
} else {
Velocity(menu, { translateX: ['0%', '-110%'] }, { duration: 250 });
window.sideMenuOpen = true;
}
}
(function() {
var button = document.getElementById("side-menu-button");
if (!button) {
return;
}
button.onclick = function(e) {
var ev = e || event;
ev.preventDefault();
toggleSideMenu();
}
})();
</script>
<script type="text/javascript" defer="defer">
(function() { signup && signup.form() })();
</script>
</body>
</html>
\ No newline at end of file
window.login = {
login: function(user, opts) {
jh.post('/api/auth/login', user, function(status, data) {
if (status > 199 && status < 300) {
var user = data;
if (typeof opts.onSuccess == "function") {
opts.onSuccess(user);
}
} else {
if (typeof opts.onError == "function") {
var err = data;
if (err) {
if (!(err instanceof Array)) {
err = [err];
}
var errs = [];
var i = null;
for (i = 0; i < err.length; i++) {
errs.push(err[i] || { code: 'UnexpectedError' });
}
opts.onError(errs);
}
}
}
});
},
form: function(opts) {
if (!opts) {
opts = {};
}
var
that = this,
formId = opts.formId || "loginForm",
usernameId = opts.usernameId || "loginUsername",
passwordId = opts.passwordId || "loginPassword",
loginErrorId = opts.loginErrorId || "loginErrorId",
loginButtonId = opts.loginButtonId || "loginButton",
activityIndicatorId = opts.activityIndicatorId || "authActivityIndicator",
onSubmitHandler = typeof opts.onSubmitHandler == "function" ? opts.onSubmitHandler : function() {},
onSuccessHandler = typeof opts.onSuccessHandler == "function" ? opts.onSuccessHandler : function() {
window.location= '/';
},
onErrorHandler = typeof opts.onErrorHandler == "function" ? opts.onErrorHandler : function(errs) {
if (!errs || !errs.length) {
return;
}
var
e = null,
i = null,
el = null,
field = null,
errEl = null;
for (i = 0; i < errs.length; i++) {
e = errs[i];
if (e.field) {
if (e.field == "username") {
field = usernameId;
} else if (e.field == "password") {
field = passwordId;
}
}
if (field) {
el = jh.dom(field);
jh.addClass(el, "error");
errEl = jh.dom(field + 'Error');
errEl.innerHTML = e.label || e.error;
jh.show(errEl);
} else {
errEl = jh.dom(signupErrorId);
errEl.innerHTML = e.label || e.error;
jh.show(errEl);
}
}
},
clearErrors = typeof opts.clearErrors == "function" ? opts.clearErrors : function() {
clearError(usernameId + "Error");
clearError(passwordId + "Error");
clearError(loginErrorId);
},
clearError = typeof opts.clearError == "function" ? opts.clearError : function (id) {
var el = jh.dom(id);
el.innerHTML = "";
jh.hide(el);
},
disable = function() {
jh.disable(loginButtonId);
jh.disable(usernameId);
jh.disable(passwordId);
jh.show(activityIndicatorId);
},
enable = function() {
jh.enable(loginButtonId);
jh.enable(usernameId);
jh.enable(passwordId);
jh.hide(activityIndicatorId);
},
form = jh.dom(formId),
username = jh.dom(usernameId),
password = jh.dom(passwordId),
translate = typeof opts.translate === "function" ? opts.translate : function(key) {
if (window.__labels) {
return window.__labels[key] || key;
}
return key;
};
form.onsubmit = function() {
var
user = {};
user.username = username.value;
user.password = password.value;
disable();
clearErrors();
onSubmitHandler(user);
var errors = [];
if (!user.username) {
errors.push({
error: translate('UsernameRequired'),
field: "username"
});
}
if (!user.password) {
errors.push({
error: translate('PasswordRequired'),
field: "password"
});
}
if (errors.length) {
onErrorHandler(errors);
enable();
return false;
}
//clear errors
that.login(user, {
onSuccess: function(user) {
onSuccessHandler(user);
enable();
},
onError: function(errors) {
var
errs = [];
for (var i = 0; i < errors.length; i++) {
err = errors[i] || {};
var label = translate(err.code || 'UnexpectedError');
errs.push({
field: err.field,
label: label
});
}
onErrorHandler(errs);
enable();
}
});
return false;
};
}
};
//class list
if("document" in self&&!("classList" in document.createElement("_"))){(function(j){"use strict";if(!("Element" in j)){return}var a="classList",f="prototype",m=j.Element[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p<o;p++){if(p in this&&this[p]===q){return p}}return -1},n=function(o,p){this.name=o;this.code=DOMException[o];this.message=p},g=function(p,o){if(o===""){throw new n("SYNTAX_ERR","An invalid or illegal string was specified")}if(/\s/.test(o)){throw new n("INVALID_CHARACTER_ERR","String contains an invalid character")}return c.call(p,o)},d=function(s){var r=k.call(s.getAttribute("class")||""),q=r?r.split(/\s+/):[],p=0,o=q.length;for(;p<o;p++){this.push(q[p])}this._updateClassName=function(){s.setAttribute("class",this.toString())}},e=d[f]=[],i=function(){return new d(this)};n[f]=Error[f];e.item=function(o){return this[o]||null};e.contains=function(o){o+="";return g(this,o)!==-1};e.add=function(){var s=arguments,r=0,p=s.length,q,o=false;do{q=s[r]+"";if(g(this,q)===-1){this.push(q);o=true}}while(++r<p);if(o){this._updateClassName()}};e.remove=function(){var t=arguments,s=0,p=t.length,r,o=false;do{r=t[s]+"";var q=g(this,r);if(q!==-1){this.splice(q,1);o=true}}while(++s<p);if(o){this._updateClassName()}};e.toggle=function(p,q){p+="";var o=this.contains(p),r=o?q!==true&&"remove":q!==false&&"add";if(r){this[r](p)}return !o};e.toString=function(){return this.join(" ")};if(b.defineProperty){var l={get:i,enumerable:true,configurable:true};try{b.defineProperty(m,a,l)}catch(h){if(h.number===-2146823252){l.enumerable=false;b.defineProperty(m,a,l)}}}else{if(b[f].__defineGetter__){m.__defineGetter__(a,i)}}}(self))};
//inject jh plugin
if (!window.jh) {
window.jh = {
dom: function(id) {
return document.getElementById(id) || {};
},
_visibility: function(el, visible, method) {
if (el && el.style) {
if (visible) {
el.style.display = method || 'block';
} else {
el.style.display = 'none';
}
}
},
_dom: function(el) {
return typeof el === "string" ? this.dom(el) : el;
},
enable: function(el) {
var el = this._dom(el);
if (el) {
el.disabled = false;//!enabled;
}
},
disable: function(el) {
console.log(el);
var el = this._dom(el);
if (el) {
console.log("disabling", el);
el.disabled = true;//!enabled;
}
},
show: function(el, method) {
this._visibility(this._dom(el), true, method);
},
hide: function(el) {
this._visibility(this._dom(el), false);
},
html: function(el, html) {
el = this._dom(el);
if (el) {
el.innerHTML = html;
}
},
value: function(el) {
el = this._dom(el);
if (el) {
return el.value;
}
return;
},
addClass: function(el, clazz) {
el = this._dom(el);
if (el && el.classList) {
el.classList.add(clazz);
}
},
removeClass: function(el, clazz) {
el = this._dom(el);
if (el && el.classList) {
el.classList.remove(clazz);
}
},
toggleClass: function(el, clazz) {
el = this._dom(el);
if (el && el.classList) {
el.classList.toggle(clazz);
}
},
debounce: function(func, wait, immediate) {
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait || 100);
if (callNow) func.apply(context, args);
};
},
post: function(url, body, callback) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4) {
typeof callback === "function" && callback(xhttp.status, xhttp.response ? JSON.parse(xhttp.response) : null);
}
};
xhttp.open("POST", url, true);
xhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhttp.send(JSON.stringify(body));
}
};
}
window.reset = {
getParameter: function(parameterName) {
if (!location.search || !location.search.length) {
return null
}
var result = null,
tmp = [];
var items = location.search.substr(1).split("&");
for (var index = 0; index < items.length; index++) {
tmp = items[index].split("=");
if (tmp[0] === parameterName) {
result = decodeURIComponent(tmp[1]);
}
}
return result;
},
reset: function(user, opts) {
jh.post('/api/auth/resetPassword', user, function(status, data) {
if (status > 199 && status < 300) {
var user = data;
if (typeof opts.onSuccess == "function") {
opts.onSuccess(user);
}
} else {
if (typeof opts.onError == "function") {
var err = data;
if (err) {
if (!(err instanceof Array)) {
err = [err];
}
var errs = [];
var i = null;
for (i = 0; i < err.length; i++) {
errs.push(err[i] || { code: 'UnexpectedError' });
}
opts.onError(errs);
}
}
}
});
},
form: function(opts) {
if (!opts) {
opts = {};
}
var
that = this,
formId = opts.formId || "resetForm",
usernameId = opts.usernameId || "resetUsername",
passwordId = opts.passwordId || "resetPassword",
resetErrorId = opts.resetErrorId || "resetErrorId",
loginButtonId = opts.resetButtonId || "resetButton",
activityIndicatorId = opts.activityIndicatorId || "authActivityIndicator",
onSubmitHandler = typeof opts.onSubmitHandler == "function" ? opts.onSubmitHandler : function() {},
onSuccessHandler = typeof opts.onSuccessHandler == "function" ? opts.onSuccessHandler : function() {
window.location= '/';
},
onErrorHandler = typeof opts.onErrorHandler == "function" ? opts.onErrorHandler : function(errs) {
if (!errs || !errs.length) {
return;
}
var
e = null,
i = null,
el = null,
field = null,
errEl = null;
for (i = 0; i < errs.length; i++) {
e = errs[i];
if (e.field) {
if (e.field == "username") {
field = usernameId;
} else if (e.field == "password") {
field = passwordId;
}
}
if (field) {
el = jh.dom(field);
jh.addClass(el, "error");
errEl = jh.dom(field + 'Error');
errEl.innerHTML = e.label || e.error;
jh.show(errEl);
} else {
errEl = jh.dom(resetErrorId);
errEl.innerHTML = e.label || e.error;
jh.show(errEl);
}
}
},
disable = function() {
jh.disable(loginButtonId);
jh.disable(usernameId);
jh.disable(passwordId);
jh.show(activityIndicatorId);
},
enable = function() {
jh.enable(loginButtonId);
jh.enable(usernameId);
jh.enable(passwordId);
jh.hide(activityIndicatorId);
},
clearErrors = typeof opts.clearErrors == "function" ? opts.clearErrors : function() {
clearError(usernameId + "Error");
clearError(passwordId + "Error");
clearError(resetErrorId);
},
clearError = typeof opts.clearError == "function" ? opts.clearError : function (id) {
var el = jh.dom(id);
el.innerHTML = "";
jh.hide(el);
},
form = jh.dom(formId),
username = jh.dom(usernameId),
password = jh.dom(passwordId),
translate = typeof opts.translate === "function" ? opts.translate : function(key) {
if (window.__labels) {
return window.__labels[key] || key;
}
return key;
};
form.onsubmit = function() {
var
user = {};
user.username = username.value;
user.password = password.value;
user.token = that.getParameter("t");
disable();
clearErrors();
onSubmitHandler(user);
var errors = [];
if (!user.username) {
errors.push({
code: 'UsernameRequired',
label: translate('UsernameRequired'),
field: "username"
});
}
if (!user.password) {
errors.push({
code: 'PasswordRequired',
label: translate('PasswordRequired'),
field: "password"
});
}
if (errors.length) {
onErrorHandler(errors);
enable();
return false;
}
//clear errors
that.reset(user, {
onSuccess: function(user) {
onSuccessHandler(user);
},
onError: function(errors) {
var
errs = [];
for (var i = 0; i < errors.length; i++) {
err = errors[i] || {};
var label = translate(err.code || 'UnexpectedError');
errs.push({
field: err.field,
label: label,
code: err.code
});
}
onErrorHandler(errs);
enable();
}
});
return false;
};
}
};
window.signup = {
signup: function(user, opts) {
jh.post('/api/auth/signup', user, function(status, data) {
if (status > 199 && status < 300) {
var user = data;
if (typeof opts.onSuccess == "function") {
opts.onSuccess(user);
}
} else {
if (typeof opts.onError == "function") {
var err = data;
if (err) {
if (!(err instanceof Array)) {
err = [err];
}
var errs = [];
var i = null;
for (i = 0; i < err.length; i++) {
errs.push(err[i] || { code: 'UnexpectedError' });
}
opts.onError(errs);
}
}
}
});
},
form: function(opts) {
if (!opts) {
opts = {};
}
var
that = this,
formId = opts.formId || "signupForm",
usernameId = opts.usernameId || "signupUsername",
passwordId = opts.passwordId || "signupPassword",
signupErrorId = opts.signupErrorId || "signupErrorId",
loginButtonId = opts.signupButtonId || "signupButton",
activityIndicatorId = opts.activityIndicatorId || "authActivityIndicator",
onSubmitHandler = typeof opts.onSubmitHandler == "function" ? opts.onSubmitHandler : function() {},
onSuccessHandler = typeof opts.onSuccessHandler == "function" ? opts.onSuccessHandler : function() {
window.location= '/';
},
onErrorHandler = typeof opts.onErrorHandler == "function" ? opts.onErrorHandler : function(errs) {
if (!errs || !errs.length) {
return;
}
var
e = null,
i = null,
el = null,
field = null,
errEl = null;
for (i = 0; i < errs.length; i++) {
e = errs[i];
if (e.field) {
if (e.field == "username") {
field = usernameId;
} else if (e.field == "password") {
field = passwordId;
}
}
if (field) {
el = jh.dom(field);
jh.addClass(el, "error");
errEl = jh.dom(field + 'Error');
errEl.innerHTML = e.label || e.error;
jh.show(errEl);
} else {
errEl = jh.dom(signupErrorId);
errEl.innerHTML = e.label || e.error;
jh.show(errEl);
}
}
},
disable = function() {
jh.disable(loginButtonId);
jh.disable(usernameId);
jh.disable(passwordId);
jh.show(activityIndicatorId);
},
enable = function() {
jh.enable(loginButtonId);
jh.enable(usernameId);
jh.enable(passwordId);
jh.hide(activityIndicatorId);
},
clearErrors = typeof opts.clearErrors == "function" ? opts.clearErrors : function() {
clearError(usernameId + "Error");
clearError(passwordId + "Error");
clearError(signupErrorId);
},
clearError = typeof opts.clearError == "function" ? opts.clearError : function (id) {
var el = jh.dom(id);
el.innerHTML = "";
jh.hide(el);
},
form = jh.dom(formId),
username = jh.dom(usernameId),
password = jh.dom(passwordId),
translate = typeof opts.translate === "function" ? opts.translate : function(key) {
if (window.__labels) {
return window.__labels[key] || key;
}
return key;
};
form.onsubmit = function() {
var
user = {};
user.username = username.value;
user.password = password.value;
disable();
clearErrors();
onSubmitHandler(user);
var errors = [];
if (!user.username) {
errors.push({
code: 'UsernameRequired',
label: translate('UsernameRequired'),
field: "username"
});
}
if (!user.password) {
errors.push({
code: 'PasswordRequired',
label: translate('PasswordRequired'),
field: "password"
});
}
if (errors.length) {
onErrorHandler(errors);
enable();
return false;
}
//clear errors
that.signup(user, {
onSuccess: function(user) {
onSuccessHandler(user);
enable();
},
onError: function(errors) {
var
errs = [];
for (var i = 0; i < errors.length; i++) {
err = errors[i] || {};
var label = translate(err.code || 'UnexpectedError');
errs.push({
field: err.field,
label: label,
code: err.code
});
}
onErrorHandler(errs);
enable();
}
});
return false;
};
}
};
//class list
if("document" in self&&!("classList" in document.createElement("_"))){(function(j){"use strict";if(!("Element" in j)){return}var a="classList",f="prototype",m=j.Element[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p<o;p++){if(p in this&&this[p]===q){return p}}return -1},n=function(o,p){this.name=o;this.code=DOMException[o];this.message=p},g=function(p,o){if(o===""){throw new n("SYNTAX_ERR","An invalid or illegal string was specified")}if(/\s/.test(o)){throw new n("INVALID_CHARACTER_ERR","String contains an invalid character")}return c.call(p,o)},d=function(s){var r=k.call(s.getAttribute("class")||""),q=r?r.split(/\s+/):[],p=0,o=q.length;for(;p<o;p++){this.push(q[p])}this._updateClassName=function(){s.setAttribute("class",this.toString())}},e=d[f]=[],i=function(){return new d(this)};n[f]=Error[f];e.item=function(o){return this[o]||null};e.contains=function(o){o+="";return g(this,o)!==-1};e.add=function(){var s=arguments,r=0,p=s.length,q,o=false;do{q=s[r]+"";if(g(this,q)===-1){this.push(q);o=true}}while(++r<p);if(o){this._updateClassName()}};e.remove=function(){var t=arguments,s=0,p=t.length,r,o=false;do{r=t[s]+"";var q=g(this,r);if(q!==-1){this.splice(q,1);o=true}}while(++s<p);if(o){this._updateClassName()}};e.toggle=function(p,q){p+="";var o=this.contains(p),r=o?q!==true&&"remove":q!==false&&"add";if(r){this[r](p)}return !o};e.toString=function(){return this.join(" ")};if(b.defineProperty){var l={get:i,enumerable:true,configurable:true};try{b.defineProperty(m,a,l)}catch(h){if(h.number===-2146823252){l.enumerable=false;b.defineProperty(m,a,l)}}}else{if(b[f].__defineGetter__){m.__defineGetter__(a,i)}}}(self))};
//inject jh plugin
if (!window.jh) {
window.jh = {
dom: function(id) {
return document.getElementById(id) || {};
},
_visibility: function(el, visible, method) {
if (el && el.style) {
if (visible) {
el.style.display = method || 'block';
} else {
el.style.display = 'none';
}
}
},
_dom: function(el) {
return typeof el === "string" ? this.dom(el) : el;
},
enable: function(el) {
var el = this._dom(el);
if (el) {
el.disabled = false;//!enabled;
}
},
disable: function(el) {
console.log(el);
var el = this._dom(el);
if (el) {
console.log("disabling", el);
el.disabled = true;//!enabled;
}
},
show: function(el, method) {
this._visibility(this._dom(el), true, method);
},
hide: function(el) {
this._visibility(this._dom(el), false);
},
html: function(el, html) {
el = this._dom(el);
if (el) {
el.innerHTML = html;
}
},
value: function(el) {
el = this._dom(el);
if (el) {
return el.value;
}
return;
},
addClass: function(el, clazz) {
el = this._dom(el);
if (el && el.classList) {
el.classList.add(clazz);
}
},
removeClass: function(el, clazz) {
el = this._dom(el);
if (el && el.classList) {
el.classList.remove(clazz);
}
},
toggleClass: function(el, clazz) {
el = this._dom(el);
if (el && el.classList) {
el.classList.toggle(clazz);
}
},
debounce: function(func, wait, immediate) {
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait || 100);
if (callNow) func.apply(context, args);
};
},
post: function(url, body, callback) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4) {
typeof callback === "function" && callback(xhttp.status, xhttp.response ? JSON.parse(xhttp.response) : null);
}
};
xhttp.open("POST", url, true);
xhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhttp.send(JSON.stringify(body));
}
};
}
/*! VelocityJS.org (1.5.0). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */
/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */
!function(a){"use strict";function b(a){var b=a.length,d=c.type(a);return"function"!==d&&!c.isWindow(a)&&(!(1!==a.nodeType||!b)||("array"===d||0===b||"number"==typeof b&&b>0&&b-1 in a))}if(!a.jQuery){var c=function(a,b){return new c.fn.init(a,b)};c.isWindow=function(a){return a&&a===a.window},c.type=function(a){return a?"object"==typeof a||"function"==typeof a?e[g.call(a)]||"object":typeof a:a+""},c.isArray=Array.isArray||function(a){return"array"===c.type(a)},c.isPlainObject=function(a){var b;if(!a||"object"!==c.type(a)||a.nodeType||c.isWindow(a))return!1;try{if(a.constructor&&!f.call(a,"constructor")&&!f.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(d){return!1}for(b in a);return b===undefined||f.call(a,b)},c.each=function(a,c,d){var e=0,f=a.length,g=b(a);if(d){if(g)for(;e<f&&!1!==c.apply(a[e],d);e++);else for(e in a)if(a.hasOwnProperty(e)&&!1===c.apply(a[e],d))break}else if(g)for(;e<f&&!1!==c.call(a[e],e,a[e]);e++);else for(e in a)if(a.hasOwnProperty(e)&&!1===c.call(a[e],e,a[e]))break;return a},c.data=function(a,b,e){if(e===undefined){var f=a[c.expando],g=f&&d[f];if(b===undefined)return g;if(g&&b in g)return g[b]}else if(b!==undefined){var h=a[c.expando]||(a[c.expando]=++c.uuid);return d[h]=d[h]||{},d[h][b]=e,e}},c.removeData=function(a,b){var e=a[c.expando],f=e&&d[e];f&&(b?c.each(b,function(a,b){delete f[b]}):delete d[e])},c.extend=function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[i]||{},i++),"object"!=typeof h&&"function"!==c.type(h)&&(h={}),i===j&&(h=this,i--);i<j;i++)if(f=arguments[i])for(e in f)f.hasOwnProperty(e)&&(a=h[e],d=f[e],h!==d&&(k&&d&&(c.isPlainObject(d)||(b=c.isArray(d)))?(b?(b=!1,g=a&&c.isArray(a)?a:[]):g=a&&c.isPlainObject(a)?a:{},h[e]=c.extend(k,g,d)):d!==undefined&&(h[e]=d)));return h},c.queue=function(a,d,e){if(a){d=(d||"fx")+"queue";var f=c.data(a,d);return e?(!f||c.isArray(e)?f=c.data(a,d,function(a,c){var d=c||[];return a&&(b(Object(a))?function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;)a[e++]=b[d++];if(c!==c)for(;b[d]!==undefined;)a[e++]=b[d++];a.length=e}(d,"string"==typeof a?[a]:a):[].push.call(d,a)),d}(e)):f.push(e),f):f||[]}},c.dequeue=function(a,b){c.each(a.nodeType?[a]:a,function(a,d){b=b||"fx";var e=c.queue(d,b),f=e.shift();"inprogress"===f&&(f=e.shift()),f&&("fx"===b&&e.unshift("inprogress"),f.call(d,function(){c.dequeue(d,b)}))})},c.fn=c.prototype={init:function(a){if(a.nodeType)return this[0]=a,this;throw new Error("Not a DOM node.")},offset:function(){var b=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:b.top+(a.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:b.left+(a.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){var a=this[0],b=function(a){for(var b=a.offsetParent;b&&"html"!==b.nodeName.toLowerCase()&&b.style&&"static"===b.style.position.toLowerCase();)b=b.offsetParent;return b||document}(a),d=this.offset(),e=/^(?:body|html)$/i.test(b.nodeName)?{top:0,left:0}:c(b).offset();return d.top-=parseFloat(a.style.marginTop)||0,d.left-=parseFloat(a.style.marginLeft)||0,b.style&&(e.top+=parseFloat(b.style.borderTopWidth)||0,e.left+=parseFloat(b.style.borderLeftWidth)||0),{top:d.top-e.top,left:d.left-e.left}}};var d={};c.expando="velocity"+(new Date).getTime(),c.uuid=0;for(var e={},f=e.hasOwnProperty,g=e.toString,h="Boolean Number String Function Array Date RegExp Object Error".split(" "),i=0;i<h.length;i++)e["[object "+h[i]+"]"]=h[i].toLowerCase();c.fn.init.prototype=c.fn,a.Velocity={Utilities:c}}}(window),function(a){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a():"function"==typeof define&&define.amd?define(a):a()}(function(){"use strict";return function(a,b,c,d){function e(a){for(var b=-1,c=a?a.length:0,d=[];++b<c;){var e=a[b];e&&d.push(e)}return d}function f(a){return u.isWrapped(a)?a=s.call(a):u.isNode(a)&&(a=[a]),a}function g(a){var b=o.data(a,"velocity");return null===b?d:b}function h(a,b){var c=g(a);c&&c.delayTimer&&!c.delayPaused&&(c.delayRemaining=c.delay-b+c.delayBegin,c.delayPaused=!0,clearTimeout(c.delayTimer.setTimeout))}function i(a,b){var c=g(a);c&&c.delayTimer&&c.delayPaused&&(c.delayPaused=!1,c.delayTimer.setTimeout=setTimeout(c.delayTimer.next,c.delayRemaining))}function j(a){return function(b){return Math.round(b*a)*(1/a)}}function k(a,c,d,e){function f(a,b){return 1-3*b+3*a}function g(a,b){return 3*b-6*a}function h(a){return 3*a}function i(a,b,c){return((f(b,c)*a+g(b,c))*a+h(b))*a}function j(a,b,c){return 3*f(b,c)*a*a+2*g(b,c)*a+h(b)}function k(b,c){for(var e=0;e<p;++e){var f=j(c,a,d);if(0===f)return c;c-=(i(c,a,d)-b)/f}return c}function l(){for(var b=0;b<t;++b)x[b]=i(b*u,a,d)}function m(b,c,e){var f,g,h=0;do{g=c+(e-c)/2,f=i(g,a,d)-b,f>0?e=g:c=g}while(Math.abs(f)>r&&++h<s);return g}function n(b){for(var c=0,e=1,f=t-1;e!==f&&x[e]<=b;++e)c+=u;--e;var g=(b-x[e])/(x[e+1]-x[e]),h=c+g*u,i=j(h,a,d);return i>=q?k(b,h):0===i?h:m(b,c,c+u)}function o(){y=!0,a===c&&d===e||l()}var p=4,q=.001,r=1e-7,s=10,t=11,u=1/(t-1),v="Float32Array"in b;if(4!==arguments.length)return!1;for(var w=0;w<4;++w)if("number"!=typeof arguments[w]||isNaN(arguments[w])||!isFinite(arguments[w]))return!1;a=Math.min(a,1),d=Math.min(d,1),a=Math.max(a,0),d=Math.max(d,0);var x=v?new Float32Array(t):new Array(t),y=!1,z=function(b){return y||o(),a===c&&d===e?b:0===b?0:1===b?1:i(n(b),c,e)};z.getControlPoints=function(){return[{x:a,y:c},{x:d,y:e}]};var A="generateBezier("+[a,c,d,e]+")";return z.toString=function(){return A},z}function l(a,b){var c=a;return u.isString(a)?y.Easings[a]||(c=!1):c=u.isArray(a)&&1===a.length?j.apply(null,a):u.isArray(a)&&2===a.length?z.apply(null,a.concat([b])):!(!u.isArray(a)||4!==a.length)&&k.apply(null,a),!1===c&&(c=y.Easings[y.defaults.easing]?y.defaults.easing:x),c}function m(a){if(a){var b=y.timestamp&&!0!==a?a:r.now(),c=y.State.calls.length;c>1e4&&(y.State.calls=e(y.State.calls),c=y.State.calls.length);for(var f=0;f<c;f++)if(y.State.calls[f]){var h=y.State.calls[f],i=h[0],j=h[2],k=h[3],l=!k,q=null,s=h[5],t=h[6];if(k||(k=y.State.calls[f][3]=b-16),s){if(!0!==s.resume)continue;k=h[3]=Math.round(b-t-16),h[5]=null}t=h[6]=b-k;for(var v=Math.min(t/j.duration,1),w=0,x=i.length;w<x;w++){var z=i[w],B=z.element;if(g(B)){var D=!1;if(j.display!==d&&null!==j.display&&"none"!==j.display){if("flex"===j.display){var E=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];o.each(E,function(a,b){A.setPropertyValue(B,"display",b)})}A.setPropertyValue(B,"display",j.display)}j.visibility!==d&&"hidden"!==j.visibility&&A.setPropertyValue(B,"visibility",j.visibility);for(var F in z)if(z.hasOwnProperty(F)&&"element"!==F){var G,H=z[F],I=u.isString(H.easing)?y.Easings[H.easing]:H.easing;if(u.isString(H.pattern)){var J=1===v?function(a,b,c){var d=H.endValue[b];return c?Math.round(d):d}:function(a,b,c){var d=H.startValue[b],e=H.endValue[b]-d,f=d+e*I(v,j,e);return c?Math.round(f):f};G=H.pattern.replace(/{(\d+)(!)?}/g,J)}else if(1===v)G=H.endValue;else{var K=H.endValue-H.startValue;G=H.startValue+K*I(v,j,K)}if(!l&&G===H.currentValue)continue;if(H.currentValue=G,"tween"===F)q=G;else{var L;if(A.Hooks.registered[F]){L=A.Hooks.getRoot(F);var M=g(B).rootPropertyValueCache[L];M&&(H.rootPropertyValue=M)}var N=A.setPropertyValue(B,F,H.currentValue+(p<9&&0===parseFloat(G)?"":H.unitType),H.rootPropertyValue,H.scrollData);A.Hooks.registered[F]&&(A.Normalizations.registered[L]?g(B).rootPropertyValueCache[L]=A.Normalizations.registered[L]("extract",null,N[1]):g(B).rootPropertyValueCache[L]=N[1]),"transform"===N[0]&&(D=!0)}}j.mobileHA&&g(B).transformCache.translate3d===d&&(g(B).transformCache.translate3d="(0px, 0px, 0px)",D=!0),D&&A.flushTransformCache(B)}}j.display!==d&&"none"!==j.display&&(y.State.calls[f][2].display=!1),j.visibility!==d&&"hidden"!==j.visibility&&(y.State.calls[f][2].visibility=!1),j.progress&&j.progress.call(h[1],h[1],v,Math.max(0,k+j.duration-b),k,q),1===v&&n(f)}}y.State.isTicking&&C(m)}function n(a,b){if(!y.State.calls[a])return!1;for(var c=y.State.calls[a][0],e=y.State.calls[a][1],f=y.State.calls[a][2],h=y.State.calls[a][4],i=!1,j=0,k=c.length;j<k;j++){var l=c[j].element;b||f.loop||("none"===f.display&&A.setPropertyValue(l,"display",f.display),"hidden"===f.visibility&&A.setPropertyValue(l,"visibility",f.visibility));var m=g(l);if(!0!==f.loop&&(o.queue(l)[1]===d||!/\.velocityQueueEntryFlag/i.test(o.queue(l)[1]))&&m){m.isAnimating=!1,m.rootPropertyValueCache={};var n=!1;o.each(A.Lists.transforms3D,function(a,b){var c=/^scale/.test(b)?1:0,e=m.transformCache[b];m.transformCache[b]!==d&&new RegExp("^\\("+c+"[^.]").test(e)&&(n=!0,delete m.transformCache[b])}),f.mobileHA&&(n=!0,delete m.transformCache.translate3d),n&&A.flushTransformCache(l),A.Values.removeClass(l,"velocity-animating")}if(!b&&f.complete&&!f.loop&&j===k-1)try{f.complete.call(e,e)}catch(r){setTimeout(function(){throw r},1)}h&&!0!==f.loop&&h(e),m&&!0===f.loop&&!b&&(o.each(m.tweensContainer,function(a,b){if(/^rotate/.test(a)&&(parseFloat(b.startValue)-parseFloat(b.endValue))%360==0){var c=b.startValue;b.startValue=b.endValue,b.endValue=c}/^backgroundPosition/.test(a)&&100===parseFloat(b.endValue)&&"%"===b.unitType&&(b.endValue=0,b.startValue=100)}),y(l,"reverse",{loop:!0,delay:f.delay})),!1!==f.queue&&o.dequeue(l,f.queue)}y.State.calls[a]=!1;for(var p=0,q=y.State.calls.length;p<q;p++)if(!1!==y.State.calls[p]){i=!0;break}!1===i&&(y.State.isTicking=!1,delete y.State.calls,y.State.calls=[])}var o,p=function(){if(c.documentMode)return c.documentMode;for(var a=7;a>4;a--){var b=c.createElement("div");if(b.innerHTML="\x3c!--[if IE "+a+"]><span></span><![endif]--\x3e",b.getElementsByTagName("span").length)return b=null,a}return d}(),q=function(){var a=0;return b.webkitRequestAnimationFrame||b.mozRequestAnimationFrame||function(b){var c,d=(new Date).getTime();return c=Math.max(0,16-(d-a)),a=d+c,setTimeout(function(){b(d+c)},c)}}(),r=function(){var a=b.performance||{};if("function"!=typeof a.now){var c=a.timing&&a.timing.navigationStart?a.timing.navigationStart:(new Date).getTime();a.now=function(){return(new Date).getTime()-c}}return a}(),s=function(){var a=Array.prototype.slice;try{return a.call(c.documentElement),a}catch(b){return function(b,c){var d=this.length;if("number"!=typeof b&&(b=0),"number"!=typeof c&&(c=d),this.slice)return a.call(this,b,c);var e,f=[],g=b>=0?b:Math.max(0,d+b),h=c<0?d+c:Math.min(c,d),i=h-g;if(i>0)if(f=new Array(i),this.charAt)for(e=0;e<i;e++)f[e]=this.charAt(g+e);else for(e=0;e<i;e++)f[e]=this[g+e];return f}}}(),t=function(){return Array.prototype.includes?function(a,b){return a.includes(b)}:Array.prototype.indexOf?function(a,b){return a.indexOf(b)>=0}:function(a,b){for(var c=0;c<a.length;c++)if(a[c]===b)return!0;return!1}},u={isNumber:function(a){return"number"==typeof a},isString:function(a){return"string"==typeof a},isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},isFunction:function(a){return"[object Function]"===Object.prototype.toString.call(a)},isNode:function(a){return a&&a.nodeType},isWrapped:function(a){return a&&a!==b&&u.isNumber(a.length)&&!u.isString(a)&&!u.isFunction(a)&&!u.isNode(a)&&(0===a.length||u.isNode(a[0]))},isSVG:function(a){return b.SVGElement&&a instanceof b.SVGElement},isEmptyObject:function(a){for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}},v=!1;if(a.fn&&a.fn.jquery?(o=a,v=!0):o=b.Velocity.Utilities,p<=8&&!v)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(p<=7)return void(jQuery.fn.velocity=jQuery.fn.animate);var w=400,x="swing",y={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(b.navigator.userAgent),isAndroid:/Android/i.test(b.navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(b.navigator.userAgent),isChrome:b.chrome,isFirefox:/Firefox/i.test(b.navigator.userAgent),prefixElement:c.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[],delayedElements:{count:0}},CSS:{},Utilities:o,Redirects:{},Easings:{},Promise:b.Promise,defaults:{queue:"",duration:w,easing:x,begin:d,complete:d,progress:d,display:d,visibility:d,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0,promiseRejectEmpty:!0},init:function(a){o.data(a,"velocity",{isSVG:u.isSVG(a),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:5,patch:1},debug:!1,timestamp:!0,pauseAll:function(a){var b=(new Date).getTime();o.each(y.State.calls,function(b,c){if(c){if(a!==d&&(c[2].queue!==a||!1===c[2].queue))return!0;c[5]={resume:!1}}}),o.each(y.State.delayedElements,function(a,c){c&&h(c,b)})},resumeAll:function(a){var b=(new Date).getTime();o.each(y.State.calls,function(b,c){if(c){if(a!==d&&(c[2].queue!==a||!1===c[2].queue))return!0;c[5]&&(c[5].resume=!0)}}),o.each(y.State.delayedElements,function(a,c){c&&i(c,b)})}};b.pageYOffset!==d?(y.State.scrollAnchor=b,y.State.scrollPropertyLeft="pageXOffset",y.State.scrollPropertyTop="pageYOffset"):(y.State.scrollAnchor=c.documentElement||c.body.parentNode||c.body,y.State.scrollPropertyLeft="scrollLeft",y.State.scrollPropertyTop="scrollTop");var z=function(){function a(a){return-a.tension*a.x-a.friction*a.v}function b(b,c,d){var e={x:b.x+d.dx*c,v:b.v+d.dv*c,tension:b.tension,friction:b.friction};return{dx:e.v,dv:a(e)}}function c(c,d){var e={dx:c.v,dv:a(c)},f=b(c,.5*d,e),g=b(c,.5*d,f),h=b(c,d,g),i=1/6*(e.dx+2*(f.dx+g.dx)+h.dx),j=1/6*(e.dv+2*(f.dv+g.dv)+h.dv);return c.x=c.x+i*d,c.v=c.v+j*d,c}return function d(a,b,e){var f,g,h,i={x:-1,v:0,tension:null,friction:null},j=[0],k=0;for(a=parseFloat(a)||500,b=parseFloat(b)||20,e=e||null,i.tension=a,i.friction=b,f=null!==e,f?(k=d(a,b),g=k/e*.016):g=.016;;)if(h=c(h||i,g),j.push(1+h.x),k+=16,!(Math.abs(h.x)>1e-4&&Math.abs(h.v)>1e-4))break;return f?function(a){return j[a*(j.length-1)|0]}:k}}();y.Easings={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},spring:function(a){return 1-Math.cos(4.5*a*Math.PI)*Math.exp(6*-a)}},o.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(a,b){y.Easings[b[0]]=k.apply(null,b[1])});var A=y.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"],units:["%","em","ex","ch","rem","vw","vh","vmin","vmax","cm","mm","Q","in","pc","pt","px","deg","grad","rad","turn","s","ms"],colorNames:{aliceblue:"240,248,255",antiquewhite:"250,235,215",aquamarine:"127,255,212",aqua:"0,255,255",azure:"240,255,255",beige:"245,245,220",bisque:"255,228,196",black:"0,0,0",blanchedalmond:"255,235,205",blueviolet:"138,43,226",blue:"0,0,255",brown:"165,42,42",burlywood:"222,184,135",cadetblue:"95,158,160",chartreuse:"127,255,0",chocolate:"210,105,30",coral:"255,127,80",cornflowerblue:"100,149,237",cornsilk:"255,248,220",crimson:"220,20,60",cyan:"0,255,255",darkblue:"0,0,139",darkcyan:"0,139,139",darkgoldenrod:"184,134,11",darkgray:"169,169,169",darkgrey:"169,169,169",darkgreen:"0,100,0",darkkhaki:"189,183,107",darkmagenta:"139,0,139",darkolivegreen:"85,107,47",darkorange:"255,140,0",darkorchid:"153,50,204",darkred:"139,0,0",darksalmon:"233,150,122",darkseagreen:"143,188,143",darkslateblue:"72,61,139",darkslategray:"47,79,79",darkturquoise:"0,206,209",darkviolet:"148,0,211",deeppink:"255,20,147",deepskyblue:"0,191,255",dimgray:"105,105,105",dimgrey:"105,105,105",dodgerblue:"30,144,255",firebrick:"178,34,34",floralwhite:"255,250,240",forestgreen:"34,139,34",fuchsia:"255,0,255",gainsboro:"220,220,220",ghostwhite:"248,248,255",gold:"255,215,0",goldenrod:"218,165,32",gray:"128,128,128",grey:"128,128,128",greenyellow:"173,255,47",green:"0,128,0",honeydew:"240,255,240",hotpink:"255,105,180",indianred:"205,92,92",indigo:"75,0,130",ivory:"255,255,240",khaki:"240,230,140",lavenderblush:"255,240,245",lavender:"230,230,250",lawngreen:"124,252,0",lemonchiffon:"255,250,205",lightblue:"173,216,230",lightcoral:"240,128,128",lightcyan:"224,255,255",lightgoldenrodyellow:"250,250,210",lightgray:"211,211,211",lightgrey:"211,211,211",lightgreen:"144,238,144",lightpink:"255,182,193",lightsalmon:"255,160,122",lightseagreen:"32,178,170",lightskyblue:"135,206,250",lightslategray:"119,136,153",lightsteelblue:"176,196,222",lightyellow:"255,255,224",limegreen:"50,205,50",lime:"0,255,0",linen:"250,240,230",magenta:"255,0,255",maroon:"128,0,0",mediumaquamarine:"102,205,170",mediumblue:"0,0,205",mediumorchid:"186,85,211",mediumpurple:"147,112,219",mediumseagreen:"60,179,113",mediumslateblue:"123,104,238",mediumspringgreen:"0,250,154",mediumturquoise:"72,209,204",mediumvioletred:"199,21,133",midnightblue:"25,25,112",mintcream:"245,255,250",mistyrose:"255,228,225",moccasin:"255,228,181",navajowhite:"255,222,173",navy:"0,0,128",oldlace:"253,245,230",olivedrab:"107,142,35",olive:"128,128,0",orangered:"255,69,0",orange:"255,165,0",orchid:"218,112,214",palegoldenrod:"238,232,170",palegreen:"152,251,152",paleturquoise:"175,238,238",palevioletred:"219,112,147",papayawhip:"255,239,213",peachpuff:"255,218,185",peru:"205,133,63",pink:"255,192,203",plum:"221,160,221",powderblue:"176,224,230",purple:"128,0,128",red:"255,0,0",rosybrown:"188,143,143",royalblue:"65,105,225",saddlebrown:"139,69,19",salmon:"250,128,114",sandybrown:"244,164,96",seagreen:"46,139,87",seashell:"255,245,238",sienna:"160,82,45",silver:"192,192,192",skyblue:"135,206,235",slateblue:"106,90,205",slategray:"112,128,144",snow:"255,250,250",springgreen:"0,255,127",steelblue:"70,130,180",tan:"210,180,140",teal:"0,128,128",thistle:"216,191,216",tomato:"255,99,71",turquoise:"64,224,208",violet:"238,130,238",wheat:"245,222,179",whitesmoke:"245,245,245",white:"255,255,255",yellowgreen:"154,205,50",yellow:"255,255,0"}},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var a=0;a<A.Lists.colors.length;a++){var b="color"===A.Lists.colors[a]?"0 0 0 1":"255 255 255 1";A.Hooks.templates[A.Lists.colors[a]]=["Red Green Blue Alpha",b]}var c,d,e;if(p)for(c in A.Hooks.templates)if(A.Hooks.templates.hasOwnProperty(c)){d=A.Hooks.templates[c],e=d[0].split(" ");var f=d[1].match(A.RegEx.valueSplit);"Color"===e[0]&&(e.push(e.shift()),f.push(f.shift()),A.Hooks.templates[c]=[e.join(" "),f.join(" ")])}for(c in A.Hooks.templates)if(A.Hooks.templates.hasOwnProperty(c)){d=A.Hooks.templates[c],e=d[0].split(" ");for(var g in e)if(e.hasOwnProperty(g)){var h=c+e[g],i=g;A.Hooks.registered[h]=[c,i]}}},getRoot:function(a){var b=A.Hooks.registered[a];return b?b[0]:a},getUnit:function(a,b){var c=(a.substr(b||0,5).match(/^[a-z%]+/)||[])[0]||"";return c&&t(A.Lists.units,c)?c:""},fixColors:function(a){return a.replace(/(rgba?\(\s*)?(\b[a-z]+\b)/g,function(a,b,c){return A.Lists.colorNames.hasOwnProperty(c)?(b||"rgba(")+A.Lists.colorNames[c]+(b?"":",1)"):b+c})},cleanRootPropertyValue:function(a,b){return A.RegEx.valueUnwrap.test(b)&&(b=b.match(A.RegEx.valueUnwrap)[1]),A.Values.isCSSNullValue(b)&&(b=A.Hooks.templates[a][1]),b},extractValue:function(a,b){var c=A.Hooks.registered[a];if(c){var d=c[0],e=c[1];return b=A.Hooks.cleanRootPropertyValue(d,b),b.toString().match(A.RegEx.valueSplit)[e]}return b},injectValue:function(a,b,c){var d=A.Hooks.registered[a];if(d){var e,f=d[0],g=d[1];return c=A.Hooks.cleanRootPropertyValue(f,c),e=c.toString().match(A.RegEx.valueSplit),e[g]=b,e.join(" ")}return c}},Normalizations:{registered:{clip:function(a,b,c){switch(a){case"name":return"clip";case"extract":var d;return A.RegEx.wrappedValueAlreadyExtracted.test(c)?d=c:(d=c.toString().match(A.RegEx.valueUnwrap),d=d?d[1].replace(/,(\s+)?/g," "):c),d;case"inject":return"rect("+c+")"}},blur:function(a,b,c){switch(a){case"name":return y.State.isFirefox?"filter":"-webkit-filter";case"extract":var d=parseFloat(c);if(!d&&0!==d){var e=c.toString().match(/blur\(([0-9]+[A-z]+)\)/i);d=e?e[1]:0}return d;case"inject":return parseFloat(c)?"blur("+c+")":"none"}},opacity:function(a,b,c){if(p<=8)switch(a){case"name":return"filter";case"extract":var d=c.toString().match(/alpha\(opacity=(.*)\)/i);return c=d?d[1]/100:1;case"inject":return b.style.zoom=1,parseFloat(c)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(c),10)+")"}else switch(a){case"name":return"opacity";case"extract":case"inject":return c}}},register:function(){function a(a,b,c){if("border-box"===A.getPropertyValue(b,"boxSizing").toString().toLowerCase()===(c||!1)){var d,e,f=0,g="width"===a?["Left","Right"]:["Top","Bottom"],h=["padding"+g[0],"padding"+g[1],"border"+g[0]+"Width","border"+g[1]+"Width"];for(d=0;d<h.length;d++)e=parseFloat(A.getPropertyValue(b,h[d])),isNaN(e)||(f+=e);return c?-f:f}return 0}function b(b,c){return function(d,e,f){switch(d){case"name":return b;case"extract":return parseFloat(f)+a(b,e,c);case"inject":return parseFloat(f)-a(b,e,c)+"px"}}}p&&!(p>9)||y.State.isGingerbread||(A.Lists.transformsBase=A.Lists.transformsBase.concat(A.Lists.transforms3D));for(var c=0;c<A.Lists.transformsBase.length;c++)!function(){var a=A.Lists.transformsBase[c];A.Normalizations.registered[a]=function(b,c,e){switch(b){case"name":return"transform";case"extract":return g(c)===d||g(c).transformCache[a]===d?/^scale/i.test(a)?1:0:g(c).transformCache[a].replace(/[()]/g,"");case"inject":var f=!1;switch(a.substr(0,a.length-1)){case"translate":f=!/(%|px|em|rem|vw|vh|\d)$/i.test(e);break;case"scal":case"scale":y.State.isAndroid&&g(c).transformCache[a]===d&&e<1&&(e=1),f=!/(\d)$/i.test(e);break;case"skew":case"rotate":f=!/(deg|\d)$/i.test(e)}return f||(g(c).transformCache[a]="("+e+")"),g(c).transformCache[a]}}}();for(var e=0;e<A.Lists.colors.length;e++)!function(){var a=A.Lists.colors[e];A.Normalizations.registered[a]=function(b,c,e){switch(b){case"name":return a;case"extract":var f;if(A.RegEx.wrappedValueAlreadyExtracted.test(e))f=e;else{var g,h={black:"rgb(0, 0, 0)",blue:"rgb(0, 0, 255)",gray:"rgb(128, 128, 128)",green:"rgb(0, 128, 0)",red:"rgb(255, 0, 0)",white:"rgb(255, 255, 255)"};/^[A-z]+$/i.test(e)?g=h[e]!==d?h[e]:h.black:A.RegEx.isHex.test(e)?g="rgb("+A.Values.hexToRgb(e).join(" ")+")":/^rgba?\(/i.test(e)||(g=h.black),f=(g||e).toString().match(A.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g," ")}return(!p||p>8)&&3===f.split(" ").length&&(f+=" 1"),f;case"inject":return/^rgb/.test(e)?e:(p<=8?4===e.split(" ").length&&(e=e.split(/\s+/).slice(0,3).join(" ")):3===e.split(" ").length&&(e+=" 1"),(p<=8?"rgb":"rgba")+"("+e.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")")}}}();A.Normalizations.registered.innerWidth=b("width",!0),A.Normalizations.registered.innerHeight=b("height",!0),A.Normalizations.registered.outerWidth=b("width"),A.Normalizations.registered.outerHeight=b("height")}},Names:{camelCase:function(a){return a.replace(/-(\w)/g,function(a,b){return b.toUpperCase()})},SVGAttribute:function(a){var b="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(p||y.State.isAndroid&&!y.State.isChrome)&&(b+="|transform"),new RegExp("^("+b+")$","i").test(a)},prefixCheck:function(a){if(y.State.prefixMatches[a])return[y.State.prefixMatches[a],!0];for(var b=["","Webkit","Moz","ms","O"],c=0,d=b.length;c<d;c++){var e;if(e=0===c?a:b[c]+a.replace(/^\w/,function(a){return a.toUpperCase()}),u.isString(y.State.prefixElement.style[e]))return y.State.prefixMatches[a]=e,[e,!0]}return[a,!1]}},Values:{hexToRgb:function(a){var b,c=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,d=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return a=a.replace(c,function(a,b,c,d){return b+b+c+c+d+d}),b=d.exec(a),b?[parseInt(b[1],16),parseInt(b[2],16),parseInt(b[3],16)]:[0,0,0]},isCSSNullValue:function(a){return!a||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(a)},getUnitType:function(a){return/^(rotate|skew)/i.test(a)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(a)?"":"px"},getDisplayType:function(a){var b=a&&a.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(b)?"inline":/^(li)$/i.test(b)?"list-item":/^(tr)$/i.test(b)?"table-row":/^(table)$/i.test(b)?"table":/^(tbody)$/i.test(b)?"table-row-group":"block"},addClass:function(a,b){if(a)if(a.classList)a.classList.add(b);else if(u.isString(a.className))a.className+=(a.className.length?" ":"")+b;else{var c=a.getAttribute(p<=7?"className":"class")||"";a.setAttribute("class",c+(c?" ":"")+b)}},removeClass:function(a,b){if(a)if(a.classList)a.classList.remove(b);else if(u.isString(a.className))a.className=a.className.toString().replace(new RegExp("(^|\\s)"+b.split(" ").join("|")+"(\\s|$)","gi")," ");else{var c=a.getAttribute(p<=7?"className":"class")||"";a.setAttribute("class",c.replace(new RegExp("(^|s)"+b.split(" ").join("|")+"(s|$)","gi")," "))}}},getPropertyValue:function(a,c,e,f){function h(a,c){var e=0;if(p<=8)e=o.css(a,c);else{var i=!1;/^(width|height)$/.test(c)&&0===A.getPropertyValue(a,"display")&&(i=!0,A.setPropertyValue(a,"display",A.Values.getDisplayType(a)));var j=function(){i&&A.setPropertyValue(a,"display","none")};if(!f){if("height"===c&&"border-box"!==A.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var k=a.offsetHeight-(parseFloat(A.getPropertyValue(a,"borderTopWidth"))||0)-(parseFloat(A.getPropertyValue(a,"borderBottomWidth"))||0)-(parseFloat(A.getPropertyValue(a,"paddingTop"))||0)-(parseFloat(A.getPropertyValue(a,"paddingBottom"))||0);return j(),k}if("width"===c&&"border-box"!==A.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var l=a.offsetWidth-(parseFloat(A.getPropertyValue(a,"borderLeftWidth"))||0)-(parseFloat(A.getPropertyValue(a,"borderRightWidth"))||0)-(parseFloat(A.getPropertyValue(a,"paddingLeft"))||0)-(parseFloat(A.getPropertyValue(a,"paddingRight"))||0);return j(),l}}var m;m=g(a)===d?b.getComputedStyle(a,null):g(a).computedStyle?g(a).computedStyle:g(a).computedStyle=b.getComputedStyle(a,null),"borderColor"===c&&(c="borderTopColor"),e=9===p&&"filter"===c?m.getPropertyValue(c):m[c],""!==e&&null!==e||(e=a.style[c]),j()}if("auto"===e&&/^(top|right|bottom|left)$/i.test(c)){var n=h(a,"position");("fixed"===n||"absolute"===n&&/top|left/i.test(c))&&(e=o(a).position()[c]+"px")}return e}var i;if(A.Hooks.registered[c]){var j=c,k=A.Hooks.getRoot(j);e===d&&(e=A.getPropertyValue(a,A.Names.prefixCheck(k)[0])),A.Normalizations.registered[k]&&(e=A.Normalizations.registered[k]("extract",a,e)),i=A.Hooks.extractValue(j,e)}else if(A.Normalizations.registered[c]){var l,m;l=A.Normalizations.registered[c]("name",a),"transform"!==l&&(m=h(a,A.Names.prefixCheck(l)[0]),A.Values.isCSSNullValue(m)&&A.Hooks.templates[c]&&(m=A.Hooks.templates[c][1])),i=A.Normalizations.registered[c]("extract",a,m)}if(!/^[\d-]/.test(i)){var n=g(a);if(n&&n.isSVG&&A.Names.SVGAttribute(c))if(/^(height|width)$/i.test(c))try{i=a.getBBox()[c]}catch(q){i=0}else i=a.getAttribute(c);else i=h(a,A.Names.prefixCheck(c)[0])}return A.Values.isCSSNullValue(i)&&(i=0),y.debug>=2&&console.log("Get "+c+": "+i),i},setPropertyValue:function(a,c,d,e,f){var h=c;if("scroll"===c)f.container?f.container["scroll"+f.direction]=d:"Left"===f.direction?b.scrollTo(d,f.alternateValue):b.scrollTo(f.alternateValue,d);else if(A.Normalizations.registered[c]&&"transform"===A.Normalizations.registered[c]("name",a))A.Normalizations.registered[c]("inject",a,d),h="transform",d=g(a).transformCache[c];else{if(A.Hooks.registered[c]){var i=c,j=A.Hooks.getRoot(c);e=e||A.getPropertyValue(a,j),d=A.Hooks.injectValue(i,d,e),c=j}if(A.Normalizations.registered[c]&&(d=A.Normalizations.registered[c]("inject",a,d),c=A.Normalizations.registered[c]("name",a)),h=A.Names.prefixCheck(c)[0],p<=8)try{a.style[h]=d}catch(l){y.debug&&console.log("Browser does not support ["+d+"] for ["+h+"]")}else{var k=g(a);k&&k.isSVG&&A.Names.SVGAttribute(c)?a.setAttribute(c,d):a.style[h]=d}y.debug>=2&&console.log("Set "+c+" ("+h+"): "+d)}return[h,d]},flushTransformCache:function(a){var b="",c=g(a);if((p||y.State.isAndroid&&!y.State.isChrome)&&c&&c.isSVG){var d=function(b){return parseFloat(A.getPropertyValue(a,b))},e={translate:[d("translateX"),d("translateY")],skewX:[d("skewX")],skewY:[d("skewY")],scale:1!==d("scale")?[d("scale"),d("scale")]:[d("scaleX"),d("scaleY")],rotate:[d("rotateZ"),0,0]};o.each(g(a).transformCache,function(a){/^translate/i.test(a)?a="translate":/^scale/i.test(a)?a="scale":/^rotate/i.test(a)&&(a="rotate"),e[a]&&(b+=a+"("+e[a].join(" ")+") ",delete e[a])})}else{var f,h;o.each(g(a).transformCache,function(c){if(f=g(a).transformCache[c],"transformPerspective"===c)return h=f,!0;9===p&&"rotateZ"===c&&(c="rotate"),b+=c+f+" "}),h&&(b="perspective"+h+" "+b)}A.setPropertyValue(a,"transform",b)}};A.Hooks.register(),A.Normalizations.register(),y.hook=function(a,b,c){var e;return a=f(a),o.each(a,function(a,f){if(g(f)===d&&y.init(f),c===d)e===d&&(e=A.getPropertyValue(f,b));else{var h=A.setPropertyValue(f,b,c);"transform"===h[0]&&y.CSS.flushTransformCache(f),e=h}}),e};var B=function(){function a(){return k?z.promise||null:p}function e(a,e){function f(f){var k,n;if(i.begin&&0===D)try{i.begin.call(r,r)}catch(V){setTimeout(function(){throw V},1)}if("scroll"===G){var p,q,w,x=/^x$/i.test(i.axis)?"Left":"Top",B=parseFloat(i.offset)||0;i.container?u.isWrapped(i.container)||u.isNode(i.container)?(i.container=i.container[0]||i.container,p=i.container["scroll"+x],w=p+o(a).position()[x.toLowerCase()]+B):i.container=null:(p=y.State.scrollAnchor[y.State["scrollProperty"+x]],q=y.State.scrollAnchor[y.State["scrollProperty"+("Left"===x?"Top":"Left")]],w=o(a).offset()[x.toLowerCase()]+B),j={scroll:{rootPropertyValue:!1,startValue:p,currentValue:p,endValue:w,unitType:"",easing:i.easing,scrollData:{container:i.container,direction:x,alternateValue:q}},element:a},y.debug&&console.log("tweensContainer (scroll): ",j.scroll,a)}else if("reverse"===G){if(!(k=g(a)))return;if(!k.tweensContainer)return void o.dequeue(a,i.queue);"none"===k.opts.display&&(k.opts.display="auto"),"hidden"===k.opts.visibility&&(k.opts.visibility="visible"),k.opts.loop=!1,k.opts.begin=null,k.opts.complete=null,v.easing||delete i.easing,v.duration||delete i.duration,i=o.extend({},k.opts,i),n=o.extend(!0,{},k?k.tweensContainer:null);for(var E in n)if(n.hasOwnProperty(E)&&"element"!==E){var F=n[E].startValue;n[E].startValue=n[E].currentValue=n[E].endValue,n[E].endValue=F,u.isEmptyObject(v)||(n[E].easing=i.easing),y.debug&&console.log("reverse tweensContainer ("+E+"): "+JSON.stringify(n[E]),a)}j=n}else if("start"===G){k=g(a),k&&k.tweensContainer&&!0===k.isAnimating&&(n=k.tweensContainer);var H=function(e,f){var g,l=A.Hooks.getRoot(e),m=!1,p=f[0],q=f[1],r=f[2]
;if(!(k&&k.isSVG||"tween"===l||!1!==A.Names.prefixCheck(l)[1]||A.Normalizations.registered[l]!==d))return void(y.debug&&console.log("Skipping ["+l+"] due to a lack of browser support."));(i.display!==d&&null!==i.display&&"none"!==i.display||i.visibility!==d&&"hidden"!==i.visibility)&&/opacity|filter/.test(e)&&!r&&0!==p&&(r=0),i._cacheValues&&n&&n[e]?(r===d&&(r=n[e].endValue+n[e].unitType),m=k.rootPropertyValueCache[l]):A.Hooks.registered[e]?r===d?(m=A.getPropertyValue(a,l),r=A.getPropertyValue(a,e,m)):m=A.Hooks.templates[l][1]:r===d&&(r=A.getPropertyValue(a,e));var s,t,v,w=!1,x=function(a,b){var c,d;return d=(b||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(a){return c=a,""}),c||(c=A.Values.getUnitType(a)),[d,c]};if(r!==p&&u.isString(r)&&u.isString(p)){g="";var z=0,B=0,C=[],D=[],E=0,F=0,G=0;for(r=A.Hooks.fixColors(r),p=A.Hooks.fixColors(p);z<r.length&&B<p.length;){var H=r[z],I=p[B];if(/[\d\.-]/.test(H)&&/[\d\.-]/.test(I)){for(var J=H,K=I,L=".",N=".";++z<r.length;){if((H=r[z])===L)L="..";else if(!/\d/.test(H))break;J+=H}for(;++B<p.length;){if((I=p[B])===N)N="..";else if(!/\d/.test(I))break;K+=I}var O=A.Hooks.getUnit(r,z),P=A.Hooks.getUnit(p,B);if(z+=O.length,B+=P.length,O===P)J===K?g+=J+O:(g+="{"+C.length+(F?"!":"")+"}"+O,C.push(parseFloat(J)),D.push(parseFloat(K)));else{var Q=parseFloat(J),R=parseFloat(K);g+=(E<5?"calc":"")+"("+(Q?"{"+C.length+(F?"!":"")+"}":"0")+O+" + "+(R?"{"+(C.length+(Q?1:0))+(F?"!":"")+"}":"0")+P+")",Q&&(C.push(Q),D.push(0)),R&&(C.push(0),D.push(R))}}else{if(H!==I){E=0;break}g+=H,z++,B++,0===E&&"c"===H||1===E&&"a"===H||2===E&&"l"===H||3===E&&"c"===H||E>=4&&"("===H?E++:(E&&E<5||E>=4&&")"===H&&--E<5)&&(E=0),0===F&&"r"===H||1===F&&"g"===H||2===F&&"b"===H||3===F&&"a"===H||F>=3&&"("===H?(3===F&&"a"===H&&(G=1),F++):G&&","===H?++G>3&&(F=G=0):(G&&F<(G?5:4)||F>=(G?4:3)&&")"===H&&--F<(G?5:4))&&(F=G=0)}}z===r.length&&B===p.length||(y.debug&&console.error('Trying to pattern match mis-matched strings ["'+p+'", "'+r+'"]'),g=d),g&&(C.length?(y.debug&&console.log('Pattern found "'+g+'" -> ',C,D,"["+r+","+p+"]"),r=C,p=D,t=v=""):g=d)}g||(s=x(e,r),r=s[0],v=s[1],s=x(e,p),p=s[0].replace(/^([+-\/*])=/,function(a,b){return w=b,""}),t=s[1],r=parseFloat(r)||0,p=parseFloat(p)||0,"%"===t&&(/^(fontSize|lineHeight)$/.test(e)?(p/=100,t="em"):/^scale/.test(e)?(p/=100,t=""):/(Red|Green|Blue)$/i.test(e)&&(p=p/100*255,t="")));if(/[\/*]/.test(w))t=v;else if(v!==t&&0!==r)if(0===p)t=v;else{h=h||function(){var d={myParent:a.parentNode||c.body,position:A.getPropertyValue(a,"position"),fontSize:A.getPropertyValue(a,"fontSize")},e=d.position===M.lastPosition&&d.myParent===M.lastParent,f=d.fontSize===M.lastFontSize;M.lastParent=d.myParent,M.lastPosition=d.position,M.lastFontSize=d.fontSize;var g={};if(f&&e)g.emToPx=M.lastEmToPx,g.percentToPxWidth=M.lastPercentToPxWidth,g.percentToPxHeight=M.lastPercentToPxHeight;else{var h=k&&k.isSVG?c.createElementNS("http://www.w3.org/2000/svg","rect"):c.createElement("div");y.init(h),d.myParent.appendChild(h),o.each(["overflow","overflowX","overflowY"],function(a,b){y.CSS.setPropertyValue(h,b,"hidden")}),y.CSS.setPropertyValue(h,"position",d.position),y.CSS.setPropertyValue(h,"fontSize",d.fontSize),y.CSS.setPropertyValue(h,"boxSizing","content-box"),o.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(a,b){y.CSS.setPropertyValue(h,b,"100%")}),y.CSS.setPropertyValue(h,"paddingLeft","100em"),g.percentToPxWidth=M.lastPercentToPxWidth=(parseFloat(A.getPropertyValue(h,"width",null,!0))||1)/100,g.percentToPxHeight=M.lastPercentToPxHeight=(parseFloat(A.getPropertyValue(h,"height",null,!0))||1)/100,g.emToPx=M.lastEmToPx=(parseFloat(A.getPropertyValue(h,"paddingLeft"))||1)/100,d.myParent.removeChild(h)}return null===M.remToPx&&(M.remToPx=parseFloat(A.getPropertyValue(c.body,"fontSize"))||16),null===M.vwToPx&&(M.vwToPx=parseFloat(b.innerWidth)/100,M.vhToPx=parseFloat(b.innerHeight)/100),g.remToPx=M.remToPx,g.vwToPx=M.vwToPx,g.vhToPx=M.vhToPx,y.debug>=1&&console.log("Unit ratios: "+JSON.stringify(g),a),g}();var S=/margin|padding|left|right|width|text|word|letter/i.test(e)||/X$/.test(e)||"x"===e?"x":"y";switch(v){case"%":r*="x"===S?h.percentToPxWidth:h.percentToPxHeight;break;case"px":break;default:r*=h[v+"ToPx"]}switch(t){case"%":r*=1/("x"===S?h.percentToPxWidth:h.percentToPxHeight);break;case"px":break;default:r*=1/h[t+"ToPx"]}}switch(w){case"+":p=r+p;break;case"-":p=r-p;break;case"*":p*=r;break;case"/":p=r/p}j[e]={rootPropertyValue:m,startValue:r,currentValue:r,endValue:p,unitType:t,easing:q},g&&(j[e].pattern=g),y.debug&&console.log("tweensContainer ("+e+"): "+JSON.stringify(j[e]),a)};for(var I in s)if(s.hasOwnProperty(I)){var J=A.Names.camelCase(I),K=function(b,c){var d,f,g;return u.isFunction(b)&&(b=b.call(a,e,C)),u.isArray(b)?(d=b[0],!u.isArray(b[1])&&/^[\d-]/.test(b[1])||u.isFunction(b[1])||A.RegEx.isHex.test(b[1])?g=b[1]:u.isString(b[1])&&!A.RegEx.isHex.test(b[1])&&y.Easings[b[1]]||u.isArray(b[1])?(f=c?b[1]:l(b[1],i.duration),g=b[2]):g=b[1]||b[2]):d=b,c||(f=f||i.easing),u.isFunction(d)&&(d=d.call(a,e,C)),u.isFunction(g)&&(g=g.call(a,e,C)),[d||0,f,g]}(s[I]);if(t(A.Lists.colors,J)){var L=K[0],O=K[1],P=K[2];if(A.RegEx.isHex.test(L)){for(var Q=["Red","Green","Blue"],R=A.Values.hexToRgb(L),S=P?A.Values.hexToRgb(P):d,T=0;T<Q.length;T++){var U=[R[T]];O&&U.push(O),S!==d&&U.push(S[T]),H(J+Q[T],U)}continue}}H(J,K)}j.element=a}j.element&&(A.Values.addClass(a,"velocity-animating"),N.push(j),k=g(a),k&&(""===i.queue&&(k.tweensContainer=j,k.opts=i),k.isAnimating=!0),D===C-1?(y.State.calls.push([N,r,i,null,z.resolver,null,0]),!1===y.State.isTicking&&(y.State.isTicking=!0,m())):D++)}var h,i=o.extend({},y.defaults,v),j={};switch(g(a)===d&&y.init(a),parseFloat(i.delay)&&!1!==i.queue&&o.queue(a,i.queue,function(b,c){if(!0===c)return!0;y.velocityQueueEntryFlag=!0;var d=y.State.delayedElements.count++;y.State.delayedElements[d]=a;var e=function(a){return function(){y.State.delayedElements[a]=!1,b()}}(d);g(a).delayBegin=(new Date).getTime(),g(a).delay=parseFloat(i.delay),g(a).delayTimer={setTimeout:setTimeout(b,parseFloat(i.delay)),next:e}}),i.duration.toString().toLowerCase()){case"fast":i.duration=200;break;case"normal":i.duration=w;break;case"slow":i.duration=600;break;default:i.duration=parseFloat(i.duration)||1}if(!1!==y.mock&&(!0===y.mock?i.duration=i.delay=1:(i.duration*=parseFloat(y.mock)||1,i.delay*=parseFloat(y.mock)||1)),i.easing=l(i.easing,i.duration),i.begin&&!u.isFunction(i.begin)&&(i.begin=null),i.progress&&!u.isFunction(i.progress)&&(i.progress=null),i.complete&&!u.isFunction(i.complete)&&(i.complete=null),i.display!==d&&null!==i.display&&(i.display=i.display.toString().toLowerCase(),"auto"===i.display&&(i.display=y.CSS.Values.getDisplayType(a))),i.visibility!==d&&null!==i.visibility&&(i.visibility=i.visibility.toString().toLowerCase()),i.mobileHA=i.mobileHA&&y.State.isMobile&&!y.State.isGingerbread,!1===i.queue)if(i.delay){var k=y.State.delayedElements.count++;y.State.delayedElements[k]=a;var n=function(a){return function(){y.State.delayedElements[a]=!1,f()}}(k);g(a).delayBegin=(new Date).getTime(),g(a).delay=parseFloat(i.delay),g(a).delayTimer={setTimeout:setTimeout(f,parseFloat(i.delay)),next:n}}else f();else o.queue(a,i.queue,function(a,b){if(!0===b)return z.promise&&z.resolver(r),!0;y.velocityQueueEntryFlag=!0,f(a)});""!==i.queue&&"fx"!==i.queue||"inprogress"===o.queue(a)[0]||o.dequeue(a)}var j,k,p,q,r,s,v,x=arguments[0]&&(arguments[0].p||o.isPlainObject(arguments[0].properties)&&!arguments[0].properties.names||u.isString(arguments[0].properties));u.isWrapped(this)?(k=!1,q=0,r=this,p=this):(k=!0,q=1,r=x?arguments[0].elements||arguments[0].e:arguments[0]);var z={promise:null,resolver:null,rejecter:null};if(k&&y.Promise&&(z.promise=new y.Promise(function(a,b){z.resolver=a,z.rejecter=b})),x?(s=arguments[0].properties||arguments[0].p,v=arguments[0].options||arguments[0].o):(s=arguments[q],v=arguments[q+1]),!(r=f(r)))return void(z.promise&&(s&&v&&!1===v.promiseRejectEmpty?z.resolver():z.rejecter()));var C=r.length,D=0;if(!/^(stop|finish|finishAll|pause|resume)$/i.test(s)&&!o.isPlainObject(v)){var E=q+1;v={};for(var F=E;F<arguments.length;F++)u.isArray(arguments[F])||!/^(fast|normal|slow)$/i.test(arguments[F])&&!/^\d/.test(arguments[F])?u.isString(arguments[F])||u.isArray(arguments[F])?v.easing=arguments[F]:u.isFunction(arguments[F])&&(v.complete=arguments[F]):v.duration=arguments[F]}var G;switch(s){case"scroll":G="scroll";break;case"reverse":G="reverse";break;case"pause":var H=(new Date).getTime();return o.each(r,function(a,b){h(b,H)}),o.each(y.State.calls,function(a,b){var c=!1;b&&o.each(b[1],function(a,e){var f=v===d?"":v;return!0!==f&&b[2].queue!==f&&(v!==d||!1!==b[2].queue)||(o.each(r,function(a,d){if(d===e)return b[5]={resume:!1},c=!0,!1}),!c&&void 0)})}),a();case"resume":return o.each(r,function(a,b){i(b,H)}),o.each(y.State.calls,function(a,b){var c=!1;b&&o.each(b[1],function(a,e){var f=v===d?"":v;return!0!==f&&b[2].queue!==f&&(v!==d||!1!==b[2].queue)||(!b[5]||(o.each(r,function(a,d){if(d===e)return b[5].resume=!0,c=!0,!1}),!c&&void 0))})}),a();case"finish":case"finishAll":case"stop":o.each(r,function(a,b){g(b)&&g(b).delayTimer&&(clearTimeout(g(b).delayTimer.setTimeout),g(b).delayTimer.next&&g(b).delayTimer.next(),delete g(b).delayTimer),"finishAll"!==s||!0!==v&&!u.isString(v)||(o.each(o.queue(b,u.isString(v)?v:""),function(a,b){u.isFunction(b)&&b()}),o.queue(b,u.isString(v)?v:"",[]))});var I=[];return o.each(y.State.calls,function(a,b){b&&o.each(b[1],function(c,e){var f=v===d?"":v;if(!0!==f&&b[2].queue!==f&&(v!==d||!1!==b[2].queue))return!0;o.each(r,function(c,d){if(d===e)if((!0===v||u.isString(v))&&(o.each(o.queue(d,u.isString(v)?v:""),function(a,b){u.isFunction(b)&&b(null,!0)}),o.queue(d,u.isString(v)?v:"",[])),"stop"===s){var h=g(d);h&&h.tweensContainer&&!1!==f&&o.each(h.tweensContainer,function(a,b){b.endValue=b.currentValue}),I.push(a)}else"finish"!==s&&"finishAll"!==s||(b[2].duration=1)})})}),"stop"===s&&(o.each(I,function(a,b){n(b,!0)}),z.promise&&z.resolver(r)),a();default:if(!o.isPlainObject(s)||u.isEmptyObject(s)){if(u.isString(s)&&y.Redirects[s]){j=o.extend({},v);var J=j.duration,K=j.delay||0;return!0===j.backwards&&(r=o.extend(!0,[],r).reverse()),o.each(r,function(a,b){parseFloat(j.stagger)?j.delay=K+parseFloat(j.stagger)*a:u.isFunction(j.stagger)&&(j.delay=K+j.stagger.call(b,a,C)),j.drag&&(j.duration=parseFloat(J)||(/^(callout|transition)/.test(s)?1e3:w),j.duration=Math.max(j.duration*(j.backwards?1-a/C:(a+1)/C),.75*j.duration,200)),y.Redirects[s].call(b,b,j||{},a,C,r,z.promise?z:d)}),a()}var L="Velocity: First argument ("+s+") was not a property map, a known action, or a registered redirect. Aborting.";return z.promise?z.rejecter(new Error(L)):b.console&&console.log(L),a()}G="start"}var M={lastParent:null,lastPosition:null,lastFontSize:null,lastPercentToPxWidth:null,lastPercentToPxHeight:null,lastEmToPx:null,remToPx:null,vwToPx:null,vhToPx:null},N=[];o.each(r,function(a,b){u.isNode(b)&&e(b,a)}),j=o.extend({},y.defaults,v),j.loop=parseInt(j.loop,10);var O=2*j.loop-1;if(j.loop)for(var P=0;P<O;P++){var Q={delay:j.delay,progress:j.progress};P===O-1&&(Q.display=j.display,Q.visibility=j.visibility,Q.complete=j.complete),B(r,"reverse",Q)}return a()};y=o.extend(B,y),y.animate=B;var C=b.requestAnimationFrame||q;if(!y.State.isMobile&&c.hidden!==d){var D=function(){c.hidden?(C=function(a){return setTimeout(function(){a(!0)},16)},m()):C=b.requestAnimationFrame||q};D(),c.addEventListener("visibilitychange",D)}return a.Velocity=y,a!==b&&(a.fn.velocity=B,a.fn.velocity.defaults=y.defaults),o.each(["Down","Up"],function(a,b){y.Redirects["slide"+b]=function(a,c,e,f,g,h){var i=o.extend({},c),j=i.begin,k=i.complete,l={},m={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""};i.display===d&&(i.display="Down"===b?"inline"===y.CSS.Values.getDisplayType(a)?"inline-block":"block":"none"),i.begin=function(){0===e&&j&&j.call(g,g);for(var c in m)if(m.hasOwnProperty(c)){l[c]=a.style[c];var d=A.getPropertyValue(a,c);m[c]="Down"===b?[d,0]:[0,d]}l.overflow=a.style.overflow,a.style.overflow="hidden"},i.complete=function(){for(var b in l)l.hasOwnProperty(b)&&(a.style[b]=l[b]);e===f-1&&(k&&k.call(g,g),h&&h.resolver(g))},y(a,m,i)}}),o.each(["In","Out"],function(a,b){y.Redirects["fade"+b]=function(a,c,e,f,g,h){var i=o.extend({},c),j=i.complete,k={opacity:"In"===b?1:0};0!==e&&(i.begin=null),i.complete=e!==f-1?null:function(){j&&j.call(g,g),h&&h.resolver(g)},i.display===d&&(i.display="In"===b?"auto":"none"),y(this,k,i)}}),y}(window.jQuery||window.Zepto||window,window,window?window.document:undefined)});
\ No newline at end of file
#PUBLIC page
public.title=Inodio
public.menu.item1=Home
public.menu.item2=Features
public.menu.item3=About
public.menu.item4=Signup
public.menu.login=Login
public.jumbotron.text=Smart online bookkeeping service for freelancers and small businesses
public.cta=Create my free account
public.section1.title=Your enterprise, anywhere, anytime
public.section1.text=Inodio is an online bookkeeping service that allows its users to:
public.section1.features=<li>Issue and distribute invoices</li>\
<li> Keep track of earnings and spending </li>\
<li> Simple Tax and VAT Management </ li>\
<li> Organize orders and project costs </ li> \
<li> Manage customer information </ li> \
<li> Get an overview of your business status through reports </ li>\
<li> 24-hour access </ li>\
<li> ... and much more </ li>
public.section2.title=Created for freelancers and small businesses
public.section2.text=Being small entrepreneurs ourselves, we know very well how difficult business management can be, especially with limited resources. That's why we created Inodio - to help us, our friends and colleagues, to focus on what is really important - to deliver top-level services to our customers.
public.section3.title=Beta version
public.section3.text=We constantly improve our solution to make it as useful and as easy to work with as possible. We will appreciate your feedback
public.signupSection.title=Start using Inodio for free
public.signupSection.text=Join a diverse community of businessmen and entrepreneurs and start using Inodio in just a few minutes
public.signupSection.placeholder.email=E-Mail
public.signupSection.placeholder.password=Password
public.signupSection.button=Sign up
public.signupSection.terms=* By clicking “Sign up” button, you agree to our <a href="./terms.html" target="_terms">terms of service</a>.
public.invoice.title=Invoice {0}
public.invoice.pdf=Download PDF
public.invoice.print=Print
#PUBLIC page
public.title=Inodio
public.menu.item1=Domů
public.menu.item2=Vlastnosti
public.menu.item3=O Projektu
public.menu.item4=Registrace
public.menu.login=Přihlášení
public.jumbotron.text=Chytrý nástroj pro online správu živností a malých společností
public.cta=Založit účet zdarma
public.section1.title=Vaše podnikání, kdykoliv a kdekoliv
public.section1.text=Inodio je online účetní platforma, umožňující svým uživatelům:
public.section1.features=<li>Vystavovat a rozesílat <b>faktury</b></li>\
<li>Sledovat své <b>příjmy a výdaje</b></li>\
<li>Jednoduchou správu <b>daňových sazeb</b> a <b>DPH</b></li>\
<li>Organizovat zakázky a náklady do <b>projektů</b></li>\
<li>Spravovat informace o svých <b>zákaznících</b></li>\
<li>Mít <b>přehled</b> o stavu své firmy prostřednictvím <b>reportů</b></li>\
<li>Přístup <b>24 hodin denně</b></li>\
<li>... a mnoho dalšího</li>
public.section2.title=Stvořeno pro živnostníky a malé firmy
public.section2.text=Jako drobní podnikatelé a živnostníci sami moc dobře víme, jak náročná může správa podnikání být, obzvláště s omezenými zdroji. Proto jsme stvořili Inodio tak, aby nám, našim přátelům a kolegům každý den pomáhalo soustředit se na to opravdu důležité - na poskytování špičkových služeb svým zákazníkům.
public.section3.title=Testovací verze
public.section3.text=Naše řešení neustále vylepšujeme, aby bylo co <b>nejužitečnější</b> a práce s ním co <b>nejjednodušší</b> a <b>nejzábavnější</b>.<br/>Budeme rádi za Vaši zpětnou vazbu
public.signupSection.title=Začněte používat Inodio zdarma
public.signupSection.text=Připojte se k různorodé komunitě živnostníků a podnikatelů a začněte používat Inodio během několika málo minut
public.signupSection.placeholder.email=E-Mail
public.signupSection.placeholder.password=Heslo
public.signupSection.button=Založit účet
public.signupSection.terms=* Založením a používáním účtu souhlasíte s <a href="./terms.html" target="_terms">podmínkami služby</a>.
public.invoice.title=Faktura {0}
public.invoice.pdf=Stáhnout PDF
public.invoice.print=Vytisknout
@font-face {
font-family: 'Roboto';
src: url("./fonts/Roboto-Regular.ttf"); }
@font-face {
font-family: 'Roboto Slab';
src: url("./fonts/RobotoCondensed-Regular.ttf"); }
* {
font-family: "Roboto", sans-serif;
-webkit-font-smoothing: antialiased;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box; }
body, html {
background-color: #DADADA;
margin: 0px;
padding: 0px;
border: 0px; }
a {
text-decoration: none; }
.container {
position: relative;
width: 100%;
border: 0px;
margin: 0px auto;
overflow: hidden;
margin: 0px auto;
/*border: 1px solid red;*/ }
@media (max-width: 479px) {
.container {
width: 90%; } }
@media (min-width: 480px) {
.container {
width: 90%; } }
@media (min-width: 820px) {
.container {
width: 760px; } }
@media (min-width: 1200px) {
.container {
width: 1140px; } }
.container::after {
display: table;
content: " ";
clear: both; }
body.with-top-menu {
padding-top: 62px; }
.top-menu {
background-color: #1287ed;
opacity: 0.95;
position: fixed;
top: 0px;
width: 100%;
height: 62px; }
@media (max-width: 819px) {
.top-menu .container {
width: 100%; } }
.top-logo {
background-color: orange;
height: 62px; }
.top-menu-items {
height: 62px;
/*
margin-left:-25px;
margin-right:-25px;
*/ }
.top-menu-items a {
color: #FAFAFA;
font-size: 18px;
display: inline-block;
height: 62px;
vertical-align: middle;
line-height: 62px;
padding: 0px 25px; }
.top-menu-items a:hover {
color: #FFFFFF;
background-color: #419ff1; }
.top-menu-items .login-icon {
vertical-align: middle;
line-height: 62px;
margin: 0px 5px;
height: 20px;
width: auto; }
.jumbotron {
color: #FEFEFE;
background: url(images/cover-min.png) #0098ba no-repeat center center;
background-size: cover;
height: 520px; }
.jumbotron h2 {
color: #f79239;
font-size: 64px;
margin: 15px 0px;
font-weight: 900;
text-transform: uppercase; }
.jumbotron p {
font-family: 'Roboto Slab';
font-size: 28px;
margin: 15px 0px;
text-transform: uppercase;
font-weight: bolder; }
.jumbotron .btn,
.jumbotron .btn:visited {
color: #FEFEFE;
background-color: #0098ba; }
.jumbotron .btn:hover {
color: #0098ba;
background-color: #FEFEFE;
border-color: #FEFEFE; }
.jumbotron .jumbotron-main {
padding: 20px;
background-color: rgba(0, 69, 84, 0.1); }
@media (max-width: 819px) {
.jumbotron .jumbotron-main {
text-align: center; } }
.footer {
min-height: 65px;
padding: 20px 0px;
color: #454545;
background-color: #DADADA;
font-size: 15px; }
.footer a {
font-weight: bolder;
color: #454545; }
.footer a:hover {
color: #1287ed; }
.section {
width: 100%; }
.section span {
display: block; }
.section::after {
display: table;
content: " ";
clear: both; }
.section-1 {
color: #303030;
background-color: #FFFFFF; }
.section-1 .btn:visited,
.section-1 .btn {
color: #303030;
background-color: #FFFFFF; }
.section-1 .btn:hover {
color: #FFFFFF;
background-color: #303030;
border-color: #303030; }
.section-2 {
color: #FFFFFF;
background-color: #5D5F5D; }
.section-2 .btn:visited,
.section-2 .btn {
color: #FFFFFF;
background-color: #5D5F5D; }
.section-2 .btn:hover {
color: #5D5F5D;
background-color: #FFFFFF;
border-color: #FFFFFF; }
.section-3 {
color: #323232;
background-color: #F1F1F1; }
.section-3 .btn:visited,
.section-3 .btn {
color: #323232;
background-color: #F1F1F1; }
.section-3 .btn:hover {
color: #F1F1F1;
background-color: #323232;
border-color: #323232; }
.section-prominent {
color: #FFFFFF;
background-color: #f79239; }
.section-prominent .btn:visited,
.section-prominent .btn {
color: #FFFFFF;
background-color: #f79239; }
.section-prominent .btn:hover {
color: #FFFFFF;
background-color: #f79239;
border-color: #f79239; }
h1, h2, h3, h4, h5, h6 {
font-family: 'Roboto Slab', serif;
font-weight: 400;
text-transform: uppercase; }
.half {
width: 50%; }
.third {
width: 33.33333%; }
.quarter {
width: 25%; }
@media (max-width: 819px) {
.third,
.quarter,
.half {
width: 100%; }
.section-image-left {
display: none !important; }
.section-image-right {
display: none !important; } }
.content {
padding-top: 100px;
padding-bottom: 100px;
font-size: 20px; }
.content h2 {
font-size: 50px;
margin: 15px 0px; }
.content p.full-content {
width: 100%;
margin: 5px 0px;
font-size: 16px;
text-align: justify; }
.content-350 {
min-height: 350px; }
.pull-left {
float: left !important; }
.pull-right {
float: right !important; }
.cell {
display: inline-block;
float: left;
vertical-align: bottom; }
.left {
text-align: left; }
.center {
text-align: center; }
.right {
text-align: right; }
.anim {
-webkit-transition: all 0.1s ease-out 0.1s;
-moz-transition: all 0.1s ease-out 0.1s;
-o-transition: all 0.1s ease-out 0.1s;
transition: all 0.1s ease-out 0.1s; }
.btn {
display: inline-block;
text-align: center;
border-width: 2px;
border-style: solid;
background: none;
margin: 20px 0px;
padding: 10px 15px;
cursor: pointer; }
.section-image-left {
left: 0%;
height: 100%;
width: 50%;
position: absolute;
top: 0px;
bottom: 0px;
background-repeat: no-repeat;
background-size: 100% auto;
background-position: center center;
/*background-size: cover;*/ }
.section-image-right {
left: 50%;
height: 100%;
width: 50%;
position: absolute;
top: 0px;
bottom: 0px;
background-repeat: no-repeat;
background-size: 100% auto;
background-position: center center;
/*background-size: cover;*/ }
.container-margin-10 {
margin-left: -10px;
margin-right: -10px; }
.container-margin-25 {
margin-left: -25px;
margin-right: -25px; }
.p10 {
padding: 10px; }
.pv25 {
padding-top: 25px;
padding-bottom: 25px; }
.p25 {
padding: 50px 25px; }
.pv0 {
padding-top: 0px;
padding-bottom: 0px; }
.card h2 {
font-size: 20px;
font-weight: 600; }
.card span {
display: block;
padding: 10px 0px 5px 0px; }
.card .card-icon {
margin: 15px; }
.visible-block-sm {
display: none; }
a#side-menu-button {
display: none;
padding: 0px 10px;
position: fixed;
left: 0px;
top: 0px;
width: 50px;
height: 62px;
vertical-align: middle;
line-height: 62px;
cursor: pointer; }
a#side-menu-button img {
color: #FAFAFA;
fill: #FAFAFA;
vertical-align: middle;
line-height: 62px;
height: 28px;
width: auto; }
div#side-menu {
display: none;
background: #1287ed;
opacity: 0.95;
position: fixed;
min-width: 200px;
height: 100%;
left: 0px;
top: 0px;
bottom: 0px;
padding-top: 62px;
overflow: hidden;
transform: translateX(-105%);
-webkit-transform: translateX(-105%);
box-shadow: 0 5px 4px 4px rgba(0, 0, 0, 0.45); }
div#side-menu > div {
overflow-y: auto;
overflow-x: hidden; }
div#side-menu a.menu-item {
font-family: 'Roboto Slab', serif;
display: block;
padding: 10px 20px;
text-align: center;
color: #FAFAFA;
font-size: 18px;
vertical-align: middle; }
.row-margin-10 {
margin-left: -10px;
margin-right: -10px; }
.row-margin-10 > div {
padding-left: 10px;
padding-right: 10px; }
.row-margin-10::after {
display: table;
content: " ";
clear: both; }
@media (max-width: 819px) {
.visible-block-sm {
display: block; }
a#side-menu-button {
display: block; }
div#side-menu {
display: block; }
.center-sm {
text-align: center; }
.hidden-sm {
display: none; }
.section-prominent .btn {
width: 100%; } }
.form-field label {
display: block;
padding: 10px 0px 5px 8px; }
.form-field input {
width: 100%; }
.form-field .error-label {
display: none;
color: #c70000;
padding: 0px 2px; }
.error-label {
display: none;
color: #c70000; }
.section-prominent .cell {
position: relative;
top: 0px;
bottom: 0px;
/*border:1px solid red;*/ }
.section-prominent .btn,
.section-prominent .btn:visited {
color: #FFFFFF;
background-color: #1287ed;
border-color: #0e6cbe;
font-weight: 600;
width: 100%;
margin: 0px; }
.section-prominent .btn:hover {
color: #0b518e;
background-color: #71b7f4;
border-color: #0b518e; }
.section-prominent input:not([type=checkbox]) {
width: 100%;
border: 2px solid #f68520;
font-size: 18px;
padding: 8px; }
.section-prominent .terms-disclaimer {
padding: 0px 10px 40px 10px;
font-size: 0.9em; }
.section-prominent .terms-disclaimer a,
.section-prominent .terms-disclaimer a:visited {
color: #0b518e; }
.section-prominent .terms-disclaimer a:hover {
color: #1287ed; }
/* activity indicator */
.activity-indicator-container {
position: absolute;
z-index: 100;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
background-color: rgba(251, 251, 251, 0.4); }
.activity-indicator-container > .activity-indicator-bg,
.activity-indicator-container > .ball-pulse {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%); }
@keyframes scale {
0% {
transform: scale(1);
opacity: 1; }
45% {
transform: scale(0.1);
opacity: 0.7; }
80% {
transform: scale(1);
opacity: 1; } }
.ball-pulse > div:nth-child(1) {
-webkit-animation: scale 0.75s -0.24s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
animation: scale 0.75s -0.24s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); }
.ball-pulse > div:nth-child(2) {
-webkit-animation: scale 0.75s -0.12s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
animation: scale 0.75s -0.12s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); }
.ball-pulse > div:nth-child(3) {
-webkit-animation: scale 0.75s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
animation: scale 0.75s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); }
.ball-pulse > div {
width: 12px;
height: 12px;
-webkit-animation-fill-mode: both;
animation-fill-mode: both; }
.ball-pulse > div {
background-color: #ccc;
border-radius: 100%;
margin: 2px;
display: inline-block; }
.ball-pulse.big > div {
width: 16px;
height: 16px; }
.ball-pulse.huge > div {
width: 22px;
height: 22px; }
.auth-page {
width: 100%; }
@media (min-width: 480px) {
.auth-page {
padding: 8% 0 0;
width: 360px;
margin: auto; } }
.auth-signup-page {
width: 100%; }
@media (min-width: 480px) {
.auth-signup-page {
padding: 8% 0 0;
width: 450px;
margin: auto; } }
.auth-form {
position: relative;
z-index: 1;
background: #FFFFFF;
padding: 15px;
text-align: center; }
@media (min-width: 480px) {
.auth-form {
padding: 15px 45px 45px 45px;
margin: 0 auto 100px;
border: 2px solid #CECECE; } }
.auth-signup-form {
position: relative;
z-index: 1;
background: #FFFFFF;
padding: 15px;
text-align: center; }
@media (min-width: 480px) {
.auth-signup-form {
padding: 15px 45px 45px 45px;
max-width: 450px;
margin: 0 auto 100px;
border: 2px solid #CECECE; } }
.auth-form-input {
margin: 0 0 15px; }
.auth-form input,
.auth-form select {
outline: 0;
background: #f2f2f2;
width: 100%;
border: 0;
padding: 15px;
box-sizing: border-box;
font-size: 14px; }
.auth-form button {
text-transform: uppercase;
outline: 0;
background: #0098ba;
width: 100%;
border: 0;
padding: 15px;
color: #FFFFFF;
font-size: 14px;
-webkit-transition: all 0.3 ease;
transition: all 0.3 ease;
cursor: pointer; }
.auth-form button:hover, .auth-form button:active, .auth-form button:focus {
background: #0098ba; }
.auth-form .message {
margin: 15px 0 0;
color: #b3b3b3;
font-size: 12px; }
.auth-form .message a {
color: blue;
text-decoration: none; }
.auth-form .message a:hover {
color: blue; }
.auth-form .register-form {
display: none; }
.auth-container {
position: relative;
z-index: 1;
max-width: 300px;
margin: 0 auto; }
.auth-container:before, .auth-container:after {
content: "";
display: block;
clear: both; }
.auth-container .info span {
color: #4d4d4d;
font-size: 12px; }
.auth-container .info span a {
color: #000000;
text-decoration: none; }
.auth-container .info span a:hover {
color: blue; }
.auth-container .info span .fa {
color: #EF3B3A; }
.auth-form h1 {
margin-bottom: 25px; }
.auth-form-field-error {
color: red;
text-align: left; }
.auth-body {
background-color: #EFEFEF;
/*TODO*/
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
width: 100%;
height: 100%; }
.auth-button-bar::after {
display: table;
content: " ";
clear: both; }
.auth-button-bar button {
width: 50%; }
.auth-button-bar .button-left {
float: left;
color: #FEFEFE;
background-color: #0098ba; }
.auth-button-bar .button-left:hover {
color: #FEFEFE;
background-color: #0098ba; }
.auth-button-bar .button-right {
float: right; }
.checkbox-inline {
position: relative;
display: inline-block;
min-height: 18px;
padding-left: 20px;
margin-bottom: 0;
font-weight: 400;
vertical-align: middle;
cursor: pointer;
text-align: left;
color: #b3b3b3; }
.checkbox-inline input[type=checkbox] {
position: absolute;
left: 0px;
width: 16px;
height: 16px;
margin: 2px 0 0;
line-height: normal;
padding: 0px; }
.auth-button-container {
position: relative; }
.auth-button-container > .activity-indicator-container > .ball-pulse > div {
background-color: #FEFEFE; }
.auth-button-container button:disabled {
color: #989898;
background-color: #989898;
border-color: #989898; }
/* public invoice styles */
.public-invoice-body {
background-color: #FEFEFE; }
.public-invoice-bg-stripe {
background-color: #0098ba;
position: absolute;
width: 100%;
height: 285px; }
.public-invoice-container {
position: relative;
width: 100%; }
.public-invoice-container h1 {
color: #FEFEFE; }
.public-invoice-canvas {
position: relative;
max-width: 100%;
width: 770px;
background-color: #FFFFFF;
border: 2px solid #DEDEDE; }
.public-invoice-buttons {
position: relative;
text-align: center;
width: 100%; }
.public-invoice-buttons .btn:visited,
.public-invoice-buttons .btn {
color: #FEFEFE;
background-color: #0098ba;
margin: 15px 5px; }
.public-invoice-buttons .btn:hover {
color: #0098ba;
background-color: #FEFEFE;
border-color: #FEFEFE; }
@media (min-width: 770px) {
.public-invoice-container {
width: 770px;
margin: 0px auto; } }
.iframe-container {
position: relative;
top: 0px;
left: 0px;
width: 100%;
overflow-x: auto;
z-index: 0;
padding: 6px; }
.iframe-container iframe {
min-height: 285px; }
.public-invoice-title {
line-height: 56px;
font-size: 23px;
vertical-align: middle;
color: #FAFAFA; }
.public-invoice-copyright {
padding: 20px;
font-size: 14px;
color: #909090;
text-align: center; }
.public-invoice-copyright a, .public-invoice-copyright a:visited {
font-weight: bolder;
color: #808080; }
.public-invoice-copyright a:hover {
color: #f79239; }
@font-face {
font-family: 'fontello';
src: url('../font/fontello.eot?57173866');
src: url('../font/fontello.eot?57173866#iefix') format('embedded-opentype'),
url('../font/fontello.woff2?57173866') format('woff2'),
url('../font/fontello.woff?57173866') format('woff'),
url('../font/fontello.ttf?57173866') format('truetype'),
url('../font/fontello.svg?57173866#fontello') format('svg');
font-weight: normal;
font-style: normal;
}
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'fontello';
src: url('../font/fontello.svg?57173866#fontello') format('svg');
}
}
*/
[class^="icon-"]:before, [class*=" icon-"]:before {
font-family: "fontello";
font-style: normal;
font-weight: normal;
speak: none;
display: inline-block;
text-decoration: inherit;
width: 1em;
margin-right: .2em;
text-align: center;
/* opacity: .8; */
/* For safety - reset parent styles, that can break glyph codes*/
font-variant: normal;
text-transform: none;
/* fix buttons height, for twitter bootstrap */
line-height: 1em;
/* Animation center compensation - margins should be symmetric */
/* remove if not needed */
margin-left: .2em;
/* you can be more comfortable with increased icons size */
/* font-size: 120%; */
/* Font smoothing. That was taken from TWBS */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* Uncomment for 3D effect */
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}
.icon-uniF101:before { content: '\f101'; } /* '' */
.icon-uniF106:before { content: '\f106'; } /* '' */
.icon-uniF107:before { content: '\f107'; } /* '' */
.icon-uniF10A:before { content: '\f10a'; } /* '' */
.icon-uniF10B:before { content: '\f10b'; } /* '' */
.icon-uniF10E:before { content: '\f10e'; } /* '' */
.icon-uniF112:before { content: '\f112'; } /* '' */
.icon-uniF113:before { content: '\f113'; } /* '' */
.icon-uniF115:before { content: '\f115'; } /* '' */
.icon-uniF116:before { content: '\f116'; } /* '' */
.icon-uniF118:before { content: '\f118'; } /* '' */
.icon-uniF11B:before { content: '\f11b'; } /* '' */
.icon-uniF11C:before { content: '\f11c'; } /* '' */
.icon-uniF11D:before { content: '\f11d'; } /* '' */
.icon-uniF11E:before { content: '\f11e'; } /* '' */
.icon-uniF11F:before { content: '\f11f'; } /* '' */
.icon-uniF123:before { content: '\f123'; } /* '' */
.icon-uniF124:before { content: '\f124'; } /* '' */
.icon-uniF128:before { content: '\f128'; } /* '' */
.icon-uniF129:before { content: '\f129'; } /* '' */
.icon-uniF12A:before { content: '\f12a'; } /* '' */
.icon-uniF130:before { content: '\f130'; } /* '' */
\ No newline at end of file
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Copyright (C) 2017 by original authors @ fontello.com</metadata>
<defs>
<font id="fontello" horiz-adv-x="1000" >
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
<missing-glyph horiz-adv-x="1000" />
<glyph glyph-name="uniF101" unicode="&#xf101;" d="M433 326c0 45 27 66 60 76 18 4 39 5 60 5v-17c0-32 2-57-15-85-10-19-27-32-45-36-3 0-7-2-11-2-31 0-49 24-49 59z m67 524c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m32-309c11-16 10-39 10-58v-11c-18-2-39-3-60-6-32-4-65-10-91-22-52-21-87-66-87-132 0-82 53-124 120-124 23 0 41 3 58 7 26 8 49 24 75 52 16-21 20-31 46-54 7-2 14-2 20 2 17 14 46 39 61 53 7 6 6 14 2 21-15 19-31 36-31 74v126c0 53 4 102-35 138-32 30-82 41-121 41h-17c-72-4-147-35-164-123-3-11 6-16 11-17l79-10c8 2 12 9 14 16 7 30 32 46 60 48h5c17 0 35-7 45-21z m242-423c12 9 1 23-11 18-6-2-12-5-18-7-79-31-163-46-241-46-123 0-243 34-339 90-9 5-15-4-8-10 90-81 208-130 339-130 82 0 177 23 249 67 10 5 20 11 29 18z m66 45v4c0 5-2 10-3 12-6 7-52 14-92 2-11-3-20-8-29-14-7-5-6-11 1-10 8 1 17 2 28 3 25 2 53 3 60-6 10-12-11-63-20-86-3-6 3-9 10-4 31 26 44 74 45 99z" horiz-adv-x="1000" />
<glyph glyph-name="uniF106" unicode="&#xf106;" d="M500 850c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m-115-813l315 382h-200l98 281-297-402h164z" horiz-adv-x="1000" />
<glyph glyph-name="uniF107" unicode="&#xf107;" d="M500 850c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m174-744c99 0 180 81 180 181 0 99-81 180-180 180-4 0-7 0-11-1-16 84-89 148-177 148-100 0-180-81-180-181 0-2 0-5 0-7 0 0 0 0 0 0-88 0-160-72-160-160 0-85 67-154 151-159l-1 0h4c2 0 4-1 6-1s3 1 5 1h355v0c3 0 5-1 8-1z" horiz-adv-x="1000" />
<glyph glyph-name="uniF10A" unicode="&#xf10a;" d="M634 698c21-5 38-20 38-47 0-15-4-32-10-47-14-41-35-80-52-121-33-75-70-148-96-226-3-12-7-23-7-35-1-9 1-19 12-21l4-1c16 0 39 17 74 52 21 21 33 36 40 45 4 4 6 6 10 6 4 0 7-3 7-9 0-3-2-6-4-11-9-15-22-32-39-50-58-64-96-94-129-94-29 0-45 29-44 56 0 2 0 5 0 6l-6-7c-29-37-60-56-87-56-97 2-88 109-61 195 15 45 44 95 81 131 29 28 63 53 104 53 29 0 60-18 65-46l1-6 8 15c25 50 53 102 71 159 4 12 8 24 10 36 4 18 1 24 6 24z m-190-430c32 52 58 110 59 171 1 22-9 34-29 34-23 0-38-19-53-35-47-55-79-126-81-195-1-27 11-46 29-46 7 0 16 3 24 10 16 13 37 36 51 61z m56 582c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m241-315c5 13 11 32 11 53 1 19-6 35-17 46l-63 63c1 0 1-1 2-2-9 10-21 17-36 21-2 0-5 1-7 1-9 0-20-4-22-24-1-4-1-8-3-15-2-11-5-22-9-34-15-47-37-91-59-133l-2-5-3 3c1-1 2-2 3-3-17 19-43 29-67 29-51 0-91-33-116-58-37-37-69-88-86-138-18-58-32-136 1-183 3-4 6-7 10-11 0 0-1 1-1 1l62-63c17-17 39-25 68-26 25 0 52 13 78 37l19-19c10-10 23-17 40-17 44 0 87 39 143 100 18 21 32 38 42 55l1 3c2 4 4 9 4 15 0 8-3 15-7 19l-62 64c0-1 1-2 1-2-5 5-11 8-18 8-1 0-1 0-1 0 3 7 6 15 10 22 10 23 21 47 32 72 5 12 11 24 16 36 13 27 26 56 36 85z" horiz-adv-x="1000" />
<glyph glyph-name="uniF10B" unicode="&#xf10b;" d="M258 405c0 7 7 7 7 7h36v-110c0-8-7-7-7-7h-36v110z m302-103c0-8-7-7-7-7h-36v110c0 7 7 7 7 7h36v-110z m-60 548c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m-139-592c0 7 0 275 0 275h-53s-7 0-7-8v-69h-94s-7 0-7-7v-199h154s7 0 7 8z m77 0c0 1 0 198 0 198h-53s-6 1-6-7v-199h52s7 0 7 8z m0 238c0 7 0 37 0 37h-53s-6 0-6-8v-37h52s7 0 7 8z m181-309c0 7 0 269 0 269l-154 0s-6 0-6-7v-199h101v-26h-95s-6 0-6-8v-36h153s7 0 7 7z m181 0c0 7 0 269 0 269l-154 0s-7 0-7-7v-199h102v-26h-95s-7 0-7-8v-36h154s7 0 7 7z m-59 115c0-8-7-7-7-7h-36v110c0 7 7 7 7 7h36v-110z" horiz-adv-x="1000" />
<glyph glyph-name="uniF10E" unicode="&#xf10e;" d="M500 850c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m-308-729h615l-247 231-60-55-61 56-247-231v-1z m616 20v439h-616v-436l235 220-235 216 308-230 308 230-236-217z" horiz-adv-x="1000" />
<glyph glyph-name="uniF112" unicode="&#xf112;" d="M500 850c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m118-495l10 95h-86l1 47c0 25 2 38 37 38h48v95h-76c-91 0-123-46-123-123v-57h-57v-95h57v-275h113v275h76z" horiz-adv-x="1000" />
<glyph glyph-name="uniF113" unicode="&#xf113;" d="M500 850c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m-176-630c79 0 143 64 143 143 0 79-64 143-143 143-80 0-144-64-144-143 0-79 64-143 144-143z m353 0c79 0 143 64 143 143 0 79-64 143-143 143-80 0-144-64-144-143 0-79 64-143 144-143z" horiz-adv-x="1000" />
<glyph glyph-name="uniF115" unicode="&#xf115;" d="M500 850c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m311-556c31 31 31 81 0 112l-1 1-270-270c-11-12-27-18-43-18l-12 0-3 2c-11 2-21 8-29 16l-178 178c-11 12-18 27-18 44s7 32 18 43l53 53c11 11 27 17 43 18 17 0 32-7 44-19l82-82 174 174-116 116c-31 31-81 31-112 0l-256-256c-31-31-31-81 0-112l256-256c31-31 81-31 112 0z m19 190c8 8 8 22 0 31l-53 52c-4 5-9 7-15 7-6 0-12-2-16-6l-251-251-109 110c-4 4-10 6-16 6-6 0-11-2-16-6l-52-53c-9-8-9-22 0-31l178-178c3-4 8-6 13-6 0 0 1 0 2 0 0 0 0 0 0 0l0 0c6 0 12 2 16 6z" horiz-adv-x="1000" />
<glyph glyph-name="uniF116" unicode="&#xf116;" d="M501 230c38 0 69-19 69-42s-31-43-69-43c-37 0-68 19-68 43s31 42 68 42z m-9 327c26 0 47-26 47-59 0-32-21-58-47-58s-46 26-46 58c0 33 21 59 46 59z m8 293c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m125-352c0 13-2 26-5 37 15 6 34 14 34 14h0v82c-63-30-101-15-101-15-19 10-39 15-62 15-73 0-133-59-133-133 0-47 25-89 63-113-19-19-48-62 4-107-49-21-81-61-78-104 3-62 75-108 160-103 84 5 150 59 146 121-1 27-16 51-39 69l0 0c-3 3-7 5-12 8-11 7-23 12-37 16 0 1 0 1 0 1 0 0 0 0 0 0-8 2-16 4-25 6-7 2-13 3-18 5 0 0 0 0 0 0s-1 1-4 1c-6 3-9 4-9 4-15 8-34 25-15 63 73 2 131 61 131 133z" horiz-adv-x="1000" />
<glyph glyph-name="uniF118" unicode="&#xf118;" d="M437 282c15 0 29-3 42-7 36-25 65-40 72-69 1-5 2-11 2-17 0-50-32-89-124-89-66 0-114 41-114 91 0 49 56 92 122 91z m-19 319c44-1 82-49 90-107 7-58-18-95-62-94-44 2-86 42-94 100-7 58 22 102 66 101z m82 249c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m73-353c0 39-16 75-46 92h43l37 39h-164c-83 0-152-62-152-129 0-69 45-124 123-124 6 0 11 1 16 1-5-10-9-21-9-32 0-19 11-30 24-43-10 0-19 0-30 0-95 0-161-65-161-128 0-62 80-100 175-100 108 0 175 61 175 123 0 49-11 74-64 114-15 11-48 35-48 50 0 19 6 28 33 49 28 22 48 52 48 88z m160 10h75v38h-75v75h-38v-75h-75v-38h75v-76h38v76z" horiz-adv-x="1000" />
<glyph glyph-name="uniF11B" unicode="&#xf11b;" d="M500 850c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m-133-696v338h-112v-338h112z m-56 384c39 0 63 26 63 58 0 33-24 59-62 59s-64-26-64-59c0-32 24-58 62-58h1z m461-384v193c0 104-55 153-129 153-60 0-87-33-102-56v48h-112c2-32 0-338 0-338h113v188c0 10 0 21 3 28 8 20 27 41 58 41 40 0 57-31 57-77v-180h112z" horiz-adv-x="1000" />
<glyph glyph-name="uniF11C" unicode="&#xf11c;" d="M500 850c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m279-518c31 68 18 152-28 210-87 109-262 129-385 79-74-31-124-90-138-169-8-49-5-102 16-148 4-10 10-20 16-29 3-4 7-8 10-12 7 2 13 5 19 9 25 15 43 37 65 56-71 87 4 194 98 218 88 22 208-16 234-111 11-39 4-83-27-111-16-15-36-25-57-29-13-2-26-2-38-1-7 1-14 2-21 4-12 2-22 2-22 15v104 52c0 10 1 8-8 9-6 1-13 2-20 3-23 1-47 3-70-1-9-2-10-1-10-10v-24-58c0-58 5-117 2-175 0-17-1-58-19-67-22-10-40 11-60 16 3-29-15-87 18-102 29-13 63-18 94-7 66 23 87 100 79 162 100-31 209 21 252 117z" horiz-adv-x="1000" />
<glyph glyph-name="uniF11D" unicode="&#xf11d;" d="M441 396c-24 8-15 33-15 33l23 98s7 26 31 30c23 4 63 0 73-2 66-13 52-76 52-76-13-97-164-83-164-83z m59 454c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m-283-709c0 0-4-30 26-30h77s35-2 42 37l25 111s8 31 42 31c34 0 268-9 320 161 19 62 33 209-204 209h-171s-36 2-45-36z m577 258c11 38 21 108-28 156 25-44 17-97 7-128-52-170-287-161-321-161s-41-32-41-32l-26-110c-7-39-42-37-42-37h-76c-2 0-4 0-6 0 0-7 1-28 26-28h77s35-2 42 37l25 111s8 31 42 31c34 0 269-9 321 161z" horiz-adv-x="1000" />
<glyph glyph-name="uniF11E" unicode="&#xf11e;" d="M500 850c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m34-564l268-231-236 259 118 122-114-27-181 163v73l-191-191 86 5 155-186-18-100z" horiz-adv-x="1000" />
<glyph glyph-name="uniF11F" unicode="&#xf11f;" d="M500 850c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m46-652c110 0 184 100 184 233 0 102-86 196-216 196-162 0-244-116-244-213 0-59 22-111 70-131 8-3 15 0 17 9 2 6 5 21 7 27 2 9 1 12-5 19-14 17-22 38-22 67 0 86 64 164 168 164 91 0 142-56 142-131 0-98-44-181-109-181-35 0-62 29-53 65 10 43 30 90 30 121 0 28-15 52-46 52-37 0-66-38-66-89 0-32 11-54 11-54s-38-158-44-186c-6-26-7-54-6-78 0 0 38-14 40-15 13 21 27 47 35 73 4 16 24 94 24 94 11-22 46-42 83-42z" horiz-adv-x="1000" />
<glyph glyph-name="uniF123" unicode="&#xf123;" d="M500 850c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m-146-708c31 0 56 26 56 57 0 31-25 56-56 56-32 0-57-25-57-56 0-31 26-57 57-57h0z m165 1l77 0c-5 159-134 284-300 287l1-76c124-4 218-93 222-211z m161 0l77 1c-5 250-205 445-461 447l0-76c213-3 379-165 384-372z" horiz-adv-x="1000" />
<glyph glyph-name="uniF124" unicode="&#xf124;" d="M601 351c11-7 20-16 26-27 6-12 9-26 9-42 0-19-5-37-16-53-11-15-27-27-47-36-21-9-46-13-74-13-34 0-62 6-85 18-15 8-28 20-38 34-10 15-15 29-15 43 0 8 3 15 9 21 6 6 14 8 23 8 8 0 14-2 20-6 5-5 9-12 13-20 4-10 9-19 14-25 5-7 12-13 21-17 9-4 21-6 36-6 20 0 37 4 50 13 12 9 18 19 18 32 0 11-3 19-10 25-6 7-15 12-26 15-11 3-26 7-44 11-25 5-46 12-62 19-17 7-31 17-41 30-10 12-14 28-14 47 0 17 5 33 15 47 11 14 26 24 46 32 19 7 42 11 69 11 21 0 39-3 55-7 16-5 28-12 39-20 10-8 18-17 22-26 5-9 7-18 7-26 0-8-3-15-9-22-6-6-13-9-22-9-9 0-15 2-19 6-5 3-9 10-14 18-6 12-14 21-22 28-9 6-22 10-42 10-18 0-32-4-43-11-10-7-16-16-16-26 0-6 2-11 6-15 3-5 8-9 15-12 6-3 13-6 20-8 6-2 17-4 33-8 19-4 37-9 53-14 15-5 29-11 40-19z m-101 499c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m120-780c85 0 154 69 154 155 0 30-8 57-23 81 3 13 4 26 4 40 0 141-115 256-256 256-14 0-27-1-40-3-24 14-52 23-81 23-86 0-155-70-155-155 0-30 8-58 23-81-2-13-3-27-3-40 0-141 114-256 256-256 13 0 27 1 40 3 23-14 51-23 81-23z" horiz-adv-x="1000" />
<glyph glyph-name="uniF128" unicode="&#xf128;" d="M500 850c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m178-750v89c-29-19-57-28-86-28-16 0-30 4-43 11-9 6-18 16-21 25-4 9-3 28-3 61v145h130v101h-130v131h-81c-3-29-10-53-20-72-9-19-22-35-38-49-16-13-41-24-64-31v-80h77v-198c0-26 3-46 8-60 6-13 15-26 30-38 14-12 31-22 50-28 20-7 36-10 61-10 23 0 44 2 64 7 20 5 41 13 66 24z" horiz-adv-x="1000" />
<glyph glyph-name="uniF129" unicode="&#xf129;" d="M500 850c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m267-386c25 18 46 41 63 66-23-10-47-17-73-20 26 16 47 41 56 71-25-15-52-25-81-31-23 25-56 40-93 40-70 0-127-57-127-127 0-10 1-20 3-29-105 5-199 56-262 133-11-19-17-41-17-64 0-44 22-83 56-106-20 0-40 6-57 16v-2c0-62 44-113 102-125-11-3-22-4-34-4-8 0-16 1-24 2 17-50 64-87 119-88-43-34-98-55-158-55-10 0-20 1-30 2 56-36 123-57 195-57 234 0 362 194 362 362 0 6 0 11 0 16z" horiz-adv-x="1000" />
<glyph glyph-name="uniF12A" unicode="&#xf12a;" d="M500 850c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m257-389c3 71-23 107-79 109-76 2-128-40-154-127 13 5 27 8 40 8 28 0 40-15 37-46-2-19-14-46-37-82-23-36-40-54-51-54-15 0-28 28-41 83-4 17-11 58-22 125-10 62-36 91-78 87-18-2-45-18-81-49-26-24-52-47-79-71l25-33c25 17 39 26 43 26 19 0 37-30 53-88 14-54 29-108 44-162 22-59 49-88 81-88 51 0 114 48 188 144 72 92 109 165 111 218z" horiz-adv-x="1000" />
<glyph glyph-name="uniF130" unicode="&#xf130;" d="M458 197v116h33v-182h-32v18c-7-15-16-23-29-23-21 0-32 15-32 44v143h32v-119c0-10 0-17 1-21 2-7 6-11 12-11 7 0 11 4 13 12 2 4 2 12 2 23z m48 293c-9 0-14 8-16 25 0 2 0 14 0 37v17c0 16 0 27 1 31 2 12 7 18 15 18 8 0 13-7 15-21 1-4 1-15 1-33v-18c0-20 0-32-1-35-2-14-7-21-15-21z m73-172c16 0 27-12 32-36 3-11 4-32 4-61 0-28-1-49-4-61-6-23-16-34-33-34-14 0-23 8-28 24v-19h-31v242h32v-76c6 14 15 21 28 21z m3-132c0 3 0 15 0 35 0 21 0 33 0 36-2 17-7 25-15 25-9 0-14-9-16-28-1-3-1-17-1-40 0-18 1-29 1-33 2-14 8-20 16-20 8 0 13 8 15 25z m-314 147v40h114v-40h-40v-202h-34v202h-40z m417-15c17 0 30-7 38-21 6-11 10-33 10-67v-14h-64c0-2-1-6-1-12 0-13 1-23 2-29 3-11 7-17 15-17 11 0 16 11 16 35h31c0-1 0-2 0-3 0-2 0-3 0-4 0-21-4-36-12-46-8-9-20-14-36-14-17 0-29 6-36 17-6 10-10 23-12 41 0 8-1 22-1 44 0 17 1 29 1 37 2 15 5 26 10 34 8 12 21 19 39 19z m15-73v8c0 10-1 17-2 22-2 7-7 10-14 10-6 0-10-2-12-7-3-6-4-14-4-25l0-3c1-2 1-3 1-5h31z m-200 605c276 0 500-224 500-500s-224-500-500-500-500 224-500 500 224 500 500 500z m79-204v-144c0-29 11-44 32-44 13 0 23 8 29 23v-18h32v183h-32v-117c0-11-1-18-2-23-2-8-7-12-13-12-6 0-10 4-12 11-2 4-2 11-2 21v120h-32z m-116-25c-4-13-7-35-7-67 0-31 3-54 7-67 8-19 22-29 43-29 21 0 35 10 42 29 5 13 7 36 7 67 0 32-2 54-7 67-7 20-21 30-42 30-21 0-35-10-43-30z m-113 86h-38l49-141v-103h35v103l48 141h-37l-28-92z m439-556v187c0 53-44 97-97 97h-384c-53 0-97-44-97-97v-187c0-54 44-97 97-97h384c53 0 97 43 97 97z" horiz-adv-x="1000" />
</font>
</defs>
</svg>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<title>Inodio terms and conditions</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="p.css"/>
<style>
ol[type="A"] {
margin: 20px 0px;
}
ol[type="A"] > li > ol {
padding-left: 25px;
}
</style>
</head>
<body class="public-body with-top-menu">
<div class="container">
<div>
<p>By using the Inodio service you are
agreeing to be bound by the following terms and conditions ("Terms of Service"). IF YOU ARE
ENTERING INTO THIS AGREEMENT ON BEHALF OF A COMPANY OR OTHER LEGAL ENTITY, YOU REPRESENT THAT
YOU HAVE THE AUTHORITY TO BIND SUCH ENTITY, ITS AFFILIATES AND ALL USERS WHO ACCESS OUR SERVICES
THROUGH YOUR ACCOUNT TO THESE TERMS AND CONDITIONS, IN WHICH CASE THE TERMS "YOU" OR "YOUR"
SHALL REFER TO SUCH ENTITY, ITS AFFILIATES AND USERS ASSOCIATED WITH IT. IF YOU DO NOT HAVE SUCH
AUTHORITY, OR IF YOU DO NOT AGREE WITH THESE TERMS AND CONDITIONS, YOU MUST NOT ACCEPT THIS
AGREEMENT AND MAY NOT USE THE SERVICES.</p>
<p>Entity "JH" will further represent company "Jan Hrabal, Prostřední 2249, Zlín, Czech Republic. </p>
<p>If "JH" makes material changes to these Terms, we will notify you by email or by posting a
notice on our site before the changes are effective. Any new features that augment or enhance
the current Service, including the release of new tools and resources, shall be subject to the
Terms of Service. Continued use of the Service after any such changes shall constitute your
consent to such changes. You can review the most current version of the Terms of Service at any
time at: <a href="https://www.inodio.com/terms.html">https://www.inodio.com/terms.html</a></p>
<p>Violation of any of the terms below might result in the termination of your Account. While
"JH"
prohibits such conduct and Content on the Service, you understand and agree that "JH" cannot
be responsible for the Content posted on the Service and you nonetheless may be exposed to such
materials. You agree to use the Service at your own risk.</p>
<ol type="A">
<li><b>Account Terms</b>
<ol>
<li><p>You must be 13 years or older to use this Service.</p></li>
<li><p>You must be a human. Accounts registered by "bots" or other automated methods are not
permitted.</p></li>
<li><p>You must provide your name, a valid email address, and any other information requested in
order to complete the signup process.</p></li>
<li><p>You are responsible for maintaining the security of your account and password. "JH"
cannot and will not be liable for any loss or damage from your failure to comply with this
security obligation.</p></li>
<li><p>You are responsible for all Content posted and activity that occurs under your account
(even when Content is posted by others who have accounts under your account).</p></li>
<li><p>One person or legal entity may not maintain more than one free account.</p></li>
<li><p>You may not use the Service for any illegal or unauthorized purpose. You must not, in the
use of the Service, violate any laws in your jurisdiction (including but not limited to
copyright or trademark laws).</p></li>
</ol>
</li>
<li><b>API Terms</b>
<p>Customers may access their "JH" account data via an API (Application Program Interface). Any
use of the API, including use of the API through a third-party product that accesses "JH",
is
bound by these Terms of Service plus the following specific terms:</p>
<ol>
<li><p>You expressly understand and agree that "JH" shall not be liable for any direct,
indirect, incidental, special, consequential or exemplary damages, including but not limited
to, damages for loss of profits, goodwill, use, data or other intangible losses (even if
"JH" has been advised of the possibility of such damages), resulting from your use of
the
API or third-party products that access data via the API.</p></li>
<li><p>Abuse or excessively frequent requests to "JH" via the API may result in the
temporary
or permanent suspension of your account's access to the API. "JH", in its sole
discretion,
will determine abuse or excessive usage of the API. "JH" will make a reasonable attempt
via email to warn the account owner prior to suspension.</p></li>
<li><p>"JH" reserves the right at any time to modify or discontinue, temporarily or
permanently, your access to the API (or any part thereof) with or without notice.</p></li>
</ol>
</li>
<!--li><b>Payment, Refunds, Upgrading and Downgrading Terms</b>
<ol>
<li><p>All paid plans must enter a valid payment account. Free accounts are not required to
provide payment account information.</p></li>
<li><p><strong>An upgrade from the free plan to any paying plan will immediately bill
you.</strong></p></li>
<li><p>For monthly payment plans, <strong>the Service is billed in advance on a monthly basis
and is non-refundable. There will be no refunds or credits for partial months of service,
upgrade/downgrade refunds, or refunds for months unused with an open account. In order to
treat everyone equally, no exceptions will be made.</strong></p></li>
<li><p>All fees are exclusive of all taxes excluding EU VAT, levies, or duties imposed by taxing
authorities, and
you shall be responsible for payment of all such taxes, levies, or duties.</p></li>
<li><p>For any upgrade or downgrade in plan level while on a monthly billing cycle, the credit
card that you provided will automatically be charged the new rate on your next billing
cycle.</p></li>
<li><p>Downgrading your Service may cause the loss of Content, features, or capacity of your
Account. "JH" does not accept any liability for such loss.</p></li>
</ol>
</li-->
<li><b>Cancellation and Termination</b>
<ol>
<li><p><strong>You are solely responsible for properly canceling your account</strong>
</p></li>
<li><p>All of your Content will be immediately deleted from the Service upon cancellation. This
information can not be recovered once your account is cancelled.</p></li>
<!--li><p>If you cancel the Service before the end of your current paid up month, your cancellation
will take effect immediately and you will not be charged again.</p></li-->
<li><p>"JH", in its sole discretion, has the right to suspend or terminate your account and
refuse any and all current or future use of the Service, or any other "JH" service, for
any reason at any time. Such termination of the Service will result in the deactivation or
deletion of your Account or your access to your Account, and the forfeiture and
relinquishment of all Content in your Account. "JH" reserves the right to refuse service
to anyone for any reason at any time.</p></li>
</ol>
</li>
<li><b>Modifications to the Service<!-- and Prices--></b>
<ol>
<li><p>"JH" reserves the right at any time and from time to time to modify or discontinue,
temporarily or permanently, the Service (or any part thereof) with or without notice.</p>
</li>
<!--li><p>Prices of all Services, including but not limited to monthly subscription plan fees to
the Service, are subject to change upon 30 days notice from us. Such notice may be provided
at any time by posting the changes to the Inodio Site (<a href="https://www.inodio.com">www.indoio.com</a>)
or the Service itself.</p></li-->
<li><p>"JH" shall not be liable to you or to any third-party for any modification,<!-- price
change,--> suspension or discontinuance of the Service.</p></li>
</ol>
</li>
<li><b>Copyright and Content Ownership</b>
<ol>
<li><p>You shall defend "JH" against any claim, demand, suit or proceeding made or
brought
against "JH" by a third-party alleging that Your Content, or Your use of the
Service in
violation of this Agreement, infringes or misappropriates the intellectual property rights
of a third-party or violates applicable law, and shall indemnify "JH" for any
damages
finally awarded against, and for reasonable attorney’s fees incurred by, "JH" in
connection with any such claim, demand, suit or proceeding; provided, that "JH" (a)
promptly gives You written notice of the claim, demand, suit or proceeding; (b) gives You
sole control of the defense and settlement of the claim, demand, suit or proceeding
(provided that You may not settle any claim, demand, suit or proceeding unless the
settlement unconditionally releases "JH" of all liability); and (c) provides to You all
reasonable assistance, at Your expense.</p></li>
<li><p>The look and feel of the Service is copyright ©2014 "JH" Inc. All rights reserved.
You
may not duplicate, copy, or reuse any portion of the HTML/CSS, Javascript, or visual design
elements or concepts without express written permission from "JH".</p></li>
</ol>
</li>
<li><b>General Conditions</b>
<ol>
<li><p>Your use of the Service is at your sole risk. The service is provided on an "as is" and
"as available" basis.</p></li>
<li><p>Support for "JH" services is only available in English, via email.</p></li>
<li><p>You understand that "JH" uses third-party vendors and hosting partners to
provide the
necessary hardware, software, networking, storage, and related technology required to run
the Service.</p></li>
<li><p>You must not modify, adapt or hack the Service or modify another website so as to falsely
imply that it is associated with the Service, "JH", or any other "JH"
service.</p></li>
<li><p>You agree not to reproduce, duplicate, copy, sell, resell or exploit any portion of the
Service, use of the Service, or access to the Service without the express written permission
by "JH".</p></li>
<li><p>We may, but have no obligation to, remove Content and Accounts containing Content that we
determine in our sole discretion are unlawful, offensive, threatening, libelous, defamatory,
pornographic, obscene or otherwise objectionable or violates any party's intellectual
property or these Terms of Service.</p></li>
<li><p>Verbal, physical, written or other abuse (including threats of abuse or retribution) of
any "JH" customer, employee, member, or officer will result in immediate account
termination.</p></li>
<li><p>You understand that the technical processing and transmission of the Service, including
your Content, may be transferred unencrypted and involve (a) transmissions over various
networks; and (b) changes to conform and adapt to technical requirements of connecting
networks or devices.</p></li>
<li><p>You must not upload, post, host, or transmit unsolicited email, SMSs, or "spam"
messages.</p></li>
<li><p>You must not transmit any worms or viruses or any code of a destructive nature.</p></li>
<li><p>If your bandwidth usage significantly exceeds the average bandwidth usage (as determined
solely by "JH") of other "JH" customers, we reserve the right to immediately disable
your account or throttle your file hosting until you can reduce your bandwidth
consumption.</p></li>
<li><p>"JH" does not warrant that (i) the service will meet your specific requirements, (ii)
the service will be uninterrupted, timely, secure, or error-free, (iii) the results that may
be obtained from the use of the service will be accurate or reliable, (iv) the quality of
any products, services, information, or other material purchased or obtained by you through
the service will meet your expectations, and (v) any errors in the Service will be
corrected.</p></li>
<li><p>You expressly understand and agree that "JH" shall not be liable for any direct,
indirect, incidental, special, consequential or exemplary damages, including but not limited
to, damages for loss of profits, goodwill, use, data or other intangible losses (even if
"JH" has been advised of the possibility of such damages), resulting from: (i) the use
or
the inability to use the service; (ii) the cost of procurement of substitute goods and
services resulting from any goods, data, information or services purchased or obtained or
messages received or transactions entered into through or from the service; (iii)
unauthorized access to or alteration of your transmissions or data; (iv) statements or
conduct of any third-party on the service; (v) or any other matter relating to the
service.</p></li>
<li><p>The failure of "JH" to exercise or enforce any right or provision of the Terms of
Service shall not constitute a waiver of such right or provision. The Terms of Service
constitutes the entire agreement between you and "JH" and govern your use of the
Service,
superseding any prior agreements between you and "JH" (including, but not limited to,
any
prior versions of the Terms of Service). You agree that these Terms of Service and Your use
of the Service are governed under Czech law.</p></li>
</ol>
</li>
</ol>
</div>
</div>
<!-- TODO -->
<div class="top-menu">
<div class="container">
<span class="public-invoice-title p10">Inodio Terms of Service</span>
</div>
</div>
</body>
</html>
//class list
if("document" in self&&!("classList" in document.createElement("_"))){(function(j){"use strict";if(!("Element" in j)){return}var a="classList",f="prototype",m=j.Element[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p<o;p++){if(p in this&&this[p]===q){return p}}return -1},n=function(o,p){this.name=o;this.code=DOMException[o];this.message=p},g=function(p,o){if(o===""){throw new n("SYNTAX_ERR","An invalid or illegal string was specified")}if(/\s/.test(o)){throw new n("INVALID_CHARACTER_ERR","String contains an invalid character")}return c.call(p,o)},d=function(s){var r=k.call(s.getAttribute("class")||""),q=r?r.split(/\s+/):[],p=0,o=q.length;for(;p<o;p++){this.push(q[p])}this._updateClassName=function(){s.setAttribute("class",this.toString())}},e=d[f]=[],i=function(){return new d(this)};n[f]=Error[f];e.item=function(o){return this[o]||null};e.contains=function(o){o+="";return g(this,o)!==-1};e.add=function(){var s=arguments,r=0,p=s.length,q,o=false;do{q=s[r]+"";if(g(this,q)===-1){this.push(q);o=true}}while(++r<p);if(o){this._updateClassName()}};e.remove=function(){var t=arguments,s=0,p=t.length,r,o=false;do{r=t[s]+"";var q=g(this,r);if(q!==-1){this.splice(q,1);o=true}}while(++s<p);if(o){this._updateClassName()}};e.toggle=function(p,q){p+="";var o=this.contains(p),r=o?q!==true&&"remove":q!==false&&"add";if(r){this[r](p)}return !o};e.toString=function(){return this.join(" ")};if(b.defineProperty){var l={get:i,enumerable:true,configurable:true};try{b.defineProperty(m,a,l)}catch(h){if(h.number===-2146823252){l.enumerable=false;b.defineProperty(m,a,l)}}}else{if(b[f].__defineGetter__){m.__defineGetter__(a,i)}}}(self))};
//inject jh plugin
if (!window.jh) {
window.jh = {
dom: function(id) {
return document.getElementById(id) || {};
},
_visibility: function(el, visible, method) {
if (el && el.style) {
if (visible) {
el.style.display = method || 'block';
} else {
el.style.display = 'none';
}
}
},
_dom: function(el) {
return typeof el === "string" ? this.dom(el) : el;
},
enable: function(el) {
var el = this._dom(el);
if (el) {
el.disabled = false;//!enabled;
}
},
disable: function(el) {
var el = this._dom(el);
if (el) {
el.disabled = true;//!enabled;
}
},
show: function(el, method) {
this._visibility(this._dom(el), true, method);
},
hide: function(el) {
this._visibility(this._dom(el), false);
},
html: function(el, html) {
el = this._dom(el);
if (el) {
el.innerHTML = html;
}
},
value: function(el) {
el = this._dom(el);
if (el) {
return el.value;
}
return;
},
addClass: function(el, clazz) {
el = this._dom(el);
if (el && el.classList) {
el.classList.add(clazz);
}
},
removeClass: function(el, clazz) {
el = this._dom(el);
if (el && el.classList) {
el.classList.remove(clazz);
}
},
toggleClass: function(el, clazz) {
el = this._dom(el);
if (el && el.classList) {
el.classList.toggle(clazz);
}
},
debounce: function(func, wait, immediate) {
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait || 100);
if (callNow) func.apply(context, args);
};
},
post: function(url, body, callback) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4) {
typeof callback === "function" && callback(xhttp.status, xhttp.response ? JSON.parse(xhttp.response) : null);
}
};
xhttp.open("POST", url, true);
xhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhttp.send(JSON.stringify(body));
}
};
}
package com.jh.radegast;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.jh.common.i18n.ClasspathI18nSource;
import com.jh.common.i18n.I18nSource;
import com.jh.common.web.ReactApplicationContext;
/**
* The Class WebConfig.
*/
@Configuration
public class WebConfig extends ReactApplicationContext {
// /**
// * User info modifier.
// *
// * @return the client content modifier
// */
// @Bean
// public ClientContentModifier userInfoModifier() {
// return new UserInfoModifier();
// }
//
// /**
// * Unit info resolver.
// *
// * @return the inject unit argument resolver
// */
// @Bean
// public InjectUnitArgumentResolver unitInfoResolver() {
// return new InjectUnitArgumentResolver();
// }
//
// /**
// * @param argumentResolvers
// * @see com.jh.common.web.ReactApplicationContext#addArgumentResolvers(java.util.List)
// */
// @Override
// public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
// super.addArgumentResolvers(argumentResolvers);
// argumentResolvers.add(unitInfoResolver());
// }
/**
* @return
* @see com.jh.common.web.ReactApplicationContext#publicI18nSource()
*/
@Bean
@Override
public I18nSource publicI18nSource() {
return new ClasspathI18nSource("public/messages");
}
}
...@@ -11,7 +11,7 @@ logging.level.org.hibernate.SQL=ERROR ...@@ -11,7 +11,7 @@ logging.level.org.hibernate.SQL=ERROR
# server port config # server port config
server.port=7070 server.port=7071
# datasource # datasource
spring.datasource.jdbcUrl=jdbc:postgresql://postgresdb:5432/radegast spring.datasource.jdbcUrl=jdbc:postgresql://postgresdb:5432/radegast
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment