/*! modernizr 3.0.0 (Custom Build) | MIT * * http://modernizr.com/download/?-svg-svgasimg-touchevents !*/ !function(e,n,t){function o(e,n){return typeof e===n}function s(){var e,n,t,s,i,a,r;for(var l in u){if(e=[],n=u[l],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(t=0;t 0) || // future IE (navigator.msMaxTouchPoints > 0)); // current IE10 } // validates email function isEmailValid(email) { var re = /^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i; return re.test(email); } // validate input function isInputEmpty(inputElement) { return ($(inputElement).val()) ? true : false; } // validate recaptcha function isRecaptchaValid(recaptcha) { return ($(".single-page-contact-form").length > 0) || ($(recaptcha).val()) ? true : false; } // checks if computer has mouse function checkIfHasMouse() { // sets window var win = $(window); // mouse callback function onMouseMove(e) { win.off('mousemove', onMouseMove); hasMouse = true; } // registers mouse move callback win.on('mousemove', onMouseMove); } checkIfHasMouse();// vars var CLASS_NAVBAR_ITEM_LAYER_1 = 'item-layer-1'; var CLASS_NAVBAR_ITEM_LAYER_1_LINK = 'item-layer-1-link'; var CLASS_NAVBAR_ITEM_TOGGLE = 'btn-dropdown-toggle'; var CLASS_NAVBAR_ITEM_EXPANDED = 'expanded'; var CLASS_NAVBAR_ITEM_SEARCH = 'search-mode'; var CLASS_NAVBAR_ITEM_SEARCH_TRANSITION = CLASS_NAVBAR_ITEM_SEARCH + '-transition'; var CLASS_CURRENT_LANGUAGE = 'current-lang'; var ATTR_NAVBAR_ITEM_EXPANDED = 'data-expanded'; var TIMEOUT_NAVBAR_ITEM_EXPANDED = 100; // elements var body = $('body'); var navbar = $('#navbar'); var win = $(window); // expands function navbarItemExpand(item) { // sets expanded attribute item.attr(ATTR_NAVBAR_ITEM_EXPANDED, true); // sets expanded class item.addClass(CLASS_NAVBAR_ITEM_EXPANDED); } // hides expansion function navbarItemHideExpansion(item, timeoutDuration) { // handles duration timeoutDuration = timeoutDuration ? timeoutDuration : 0; // unsets expanded attribute item.attr(ATTR_NAVBAR_ITEM_EXPANDED, false); // timeouts expanded class removal setTimeout(function(){ // retrieves expanded attribute value var expandedValue = item.attr(ATTR_NAVBAR_ITEM_EXPANDED); // checks if item should be expanded if(expandedValue != "true") { // removes expanded class item.removeClass(CLASS_NAVBAR_ITEM_EXPANDED); } }, timeoutDuration); } // checks if hover should be ignored function shouldIgnoreHover() { // returns true if width is lower than ipad return win.width() <= ipadWidth; } // defines hover in function var navbarItemHoverInCallback = function() { // returns if touch screen if(shouldIgnoreHover()) return; // retrieves item var item = $(this); // expands item navbarItemExpand(item); }; // defines hover out function var navbarItemHoverOutCallback = function() { // returns if touch screen if(shouldIgnoreHover()) return; // retrieves item var item = $(this); // hides expansion navbarItemHideExpansion(item, TIMEOUT_NAVBAR_ITEM_EXPANDED); }; // dropdown toggle click callback var navbarItemDropdownToggleClickCallback = function() { // retrieves toggle var toggle = $(this); // retrieves item var item = toggle.closest('.' + CLASS_NAVBAR_ITEM_LAYER_1); // checks if item is expanded if(item.hasClass(CLASS_NAVBAR_ITEM_EXPANDED)) { // hides expansion navbarItemHideExpansion(item); } else { // expands navbarItemExpand(item); } }; // inits languages function initLanguages() { // finds language container var languageContainer = $('.languages-container'); var languageList = languageContainer.find('.languages-list'); var currentLang = $('.' + CLASS_CURRENT_LANGUAGE); // iterates over the current languages currentLang.each(function(index, element){ // retrieves language list var list = $(element).parent(); list.prepend($(element)); }); // finds list items var listItems = languageList.first().find('li'); // checks if there is less than two languages var minLanguagesNum = 2; if(listItems.length < minLanguagesNum) { // omits dropdown currentLang.addClass('omit-dropdown'); } // sets click callback $('.' + CLASS_CURRENT_LANGUAGE).click(function(e){ // prevents default e.preventDefault(); // checks if language container is expanded if(languageContainer.hasClass(CLASS_NAVBAR_ITEM_EXPANDED)) { // if expanded - hides expansion languageContainer.removeClass(CLASS_NAVBAR_ITEM_EXPANDED) } else { // if not expanded - expands languageContainer.addClass(CLASS_NAVBAR_ITEM_EXPANDED); } }); } // inits search function initSearch() { // retrieves elements var btnSearch = $('.btn-search'); var btnClose = $('.search-form-close'); var formButton = $('#searchsubmit'); var searchInput = $('#s'); // sets search callback btnSearch.click(function(){ // checks is search open if(navbar.hasClass(CLASS_NAVBAR_ITEM_SEARCH)) { // if true - set search mode formButton.click(); } else { // else - shows search navbar.addClass(CLASS_NAVBAR_ITEM_SEARCH); // focuses search input searchInput.focus(); } }); // sets close callback btnClose.click(function(){ // hides input navbar.addClass(CLASS_NAVBAR_ITEM_SEARCH_TRANSITION); // starts timeout setTimeout(function() { // removes search mode navbar.removeClass(CLASS_NAVBAR_ITEM_SEARCH); navbar.removeClass(CLASS_NAVBAR_ITEM_SEARCH_TRANSITION); searchInput.val(''); }, 210); }); } // initializes transparent navbar function initNavbar(navbar, toggleButtonSelector, classExpanded) { // handles default values toggleButtonSelector = toggleButtonSelector ? toggleButtonSelector : '.nav-toggle'; classExpanded = classExpanded ? classExpanded : 'expanded'; // defines body class var bodyClass = 'navbar-' + classExpanded; // finds toggle button var toggleButton = $(navbar).find(toggleButtonSelector); // unbind click before adding new click // NOTE: if you remove this click callback will rune twice toggleButton.unbind('click'); // click callback toggleButton.click(function() { console.log("toggleButton clicked"); // checks if navbar has class if($(navbar).hasClass(classExpanded) == true) { // if true - removes expanded class $(navbar).removeClass(classExpanded); body.removeClass(bodyClass); } else { // else - adds expanded class $(navbar).addClass(classExpanded); body.addClass(bodyClass); } }); // finds layer 1 items var items = navbar.find('.' + CLASS_NAVBAR_ITEM_LAYER_1); // sets hover callback items.hover(navbarItemHoverInCallback, navbarItemHoverOutCallback); // finds dropdown toggles var toggles = navbar.find('.' + CLASS_NAVBAR_ITEM_TOGGLE); // sets click calback toggles.click(navbarItemDropdownToggleClickCallback); // inits languages initLanguages(); // inits search initSearch(); } // document ready callback $(document).ready(function(){ // initializes navbar initNavbar(navbar); });// /admin-ajax.php?action=croz_newsletter_subscribe&email=info@email.com // vars var ATTR_NEWSLETTER_LABEL_LOADING = 'data-label-loading'; var ATTR_NEWSLETTER_LABEL_DEFAULT = 'data-label-default'; var ATTR_NEWSLETTER_MESSAGE_ERROR = 'data-message-error'; var ATTR_NEWSLETTER_MESSAGE_ERROR_EMAIL = 'data-message-error-email'; // elements var newsletterContainer = $('#newsletter-container'); var newsletterInput = newsletterContainer.find('#newsletter-input'); var newsletterBtn = newsletterContainer.find('.btn-subscribe'); // inits newsletter var initNewsletter = function(container, input, button) { // handles variables container = container ? container : newsletterContainer; input = input ? input : newsletterInput; button = button ? button : newsletterBtn; var successContainer = container.find('.success-message'); // start loading function function startLoading() { // sets loading var loadingMessage = button.attr(ATTR_NEWSLETTER_LABEL_LOADING); button.attr(ATTR_NEWSLETTER_LABEL_DEFAULT, button.html()); button.html(loadingMessage); // disables container container.prop('disabled', true); } // stop loading function function stopLoading() { // unsets loading var defaultValue = button.attr(ATTR_NEWSLETTER_LABEL_DEFAULT); button.html(defaultValue); // disables container container.prop('disabled', false); } // sets click callback button.click(function() { // retrieves email var email = input.val(); // checks email if(isEmailValid(email) == true) { // starts loading startLoading(); // prepares data var data = { action: 'croz_newsletter_subscribe', email: email }; // sends ajax request $.ajax({ method: "POST", url: WP_AJAX_URL, 'data': data, success: function(data) { // stops loading stopLoading(); // removes everything container.find('input, .divider, .btn').remove(); // shows success message successContainer.removeClass('hidden'); }, error: function(error) { // stops loading stopLoading(); // else - echoes message var message = button.attr(ATTR_NEWSLETTER_MESSAGE_ERROR); // alerts alert(message); } }); } else { // else - echoes message var message = button.attr(ATTR_NEWSLETTER_MESSAGE_ERROR_EMAIL); // alerts alert(message); } }); }; // calls init function initNewsletter();