You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
12 KiB
1 lines
12 KiB
var EXPO=EXPO||{};EXPO.common?console.warn("WARNING: EXPO.common is already defined!"):EXPO.common=function(){var e,t={},r=function(e,t){return(e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector).call(e,t)};t.opt={};var s=function(e){this.fields=[],this.allIsClear=!1,this.ajaxUrl=e.getAttribute("action"),this.DOM=e,this._initFields(),this._eventController()};return s.prototype={_eventController:function(){var e=this;this.DOM.addEventListener?this.DOM.addEventListener("submit",function(t){return e.validate(),t.preventDefault(),!1},!1):this.DOM.attachEvent&&this.DOM.attachEvent("onsubmit",function(t){return e.validate(),t.preventDefault(),!1})},_initFields:function(){},validate:function(){var t,r=this,s=$(r.DOM).serialize(),a={},i="err-message-box",o=r.DOM.querySelector("."+i),n=o.innerHTML,l=function(s){var i,l;if(t=s,r.unHighlightFields(),t.success)o&&EXPO.common.removeClass(o,"active"),$(r.DOM).attr("id")==EXPO.common.opt.registerFormId?(i=$("#"+EXPO.common.opt.successRegisterId),l=$.trim($("#id_email",r.DOM).val()),$("."+EXPO.common.opt.resendLetterClass,i).attr("data-email",l),$.fancybox.close(!0),$.fancybox("#"+EXPO.common.opt.successRegisterId)):("log_form"==$(r.DOM).attr("id")&&dataLayer.push({event:"logform"}),"end-reg-form"==$(r.DOM).attr("id")&&dataLayer.push({event:"endregform"}),window.location.reload());else{EXPO.common.removeClass(o,"active"),a={},r.fields=[];for(var c in t.errors)t.errors.hasOwnProperty(c)&&("__all__"!=c?(a={name:c,id:"id_"+c,errorText:t.errors[c]},r.fields.push(a)):o&&(EXPO.common.addClass(o,"active"),n.indexOf(t.errors[c])<0&&o.insertAdjacentHTML("beforeend",t.errors[c]+" ")));r.highliteFields()}e.hide()};r.unHighlightFields(),e.show(),EXPO.common.postRequest(s,r.ajaxUrl,l)},highliteFields:function(){for(var e,t,r=0;r<this.fields.length;r++)e=this.DOM.querySelector("#"+this.fields[r].id),t=e.parentNode,EXPO.common.addClass(t,"required"),EXPO.common.addClass(t,"err")},unHighlightFields:function(){for(var e,t,r=0;r<this.fields.length;r++)e=this.DOM.querySelector("#"+this.fields[r].id),t=e.parentNode,EXPO.common.removeClass(t,"required"),EXPO.common.removeClass(t,"err")},submit:function(){}},subscriptionInput=function(e){$("#id_subscription_country, #id_subscription_theme").select2({placeholder:$(this).attr("placeholder"),width:e}),$("#id_subscription_city").select2({placeholder:$(this).attr("placeholder"),multiple:!0,width:e,ajax:{url:"/city/get-city/",dataType:"json",quietMillis:200,data:function(e,t){return{term:e,page:t}},results:function(e){var t=[];return $.each(e,function(e,r){t.push({id:r.id,text:r.label})}),{results:t}}},initSelection:function(e,t){var r=$(e).val(),s=$(e).attr("data-init-text");t({id:r,text:s})}})},t.forms=[],$(function(){subscriptionInput("100%"),$("form.validate").each(function(){t.forms.push(new s(this))}),$("form.simple-validate").on("submit",function(e){e.preventDefault();var t=$(this),r=t.attr("action"),s=t.attr("id"),a=$(this).serialize(),i=t.attr("method"),o=function(e){if(e.success){if("advertise-form"==s&&dataLayer.push({event:"advertisingform"}),"callback-form"==s&&dataLayer.push({event:"callbackform"}),"subscribe-form"==s&&e.redirect)return void(window.location.href=e.redirect_url);$.fancybox.close(),$(".error",t).remove(),$(".required.err",t).removeClass("required err"),$("input:text",t).val("")}else $(".error",t).remove(),$(".required.err",t).removeClass("required err"),$.each(e.errors,function(e,r){var s=$("#id_"+e,t),a=$("<div/>").attr("class","error").append(r);s.parent().addClass("required err").prepend(a)})};"post"==i?$.post(r,a,o):$.get(r,a,o)}),$("form.simple-validate-register").on("submit",function(e){e.preventDefault();var t=$(this),r=t.attr("action"),s=$(this).serialize(),a=t.attr("method"),i=$("#pw-reg-complete"),o=$(".resend-letter",i),n=$.trim($("#id_email",t).val()),l=function(e){e.success?(dataLayer.push({event:"regform"}),$(".error",t).remove(),$(".required.err",t).removeClass("required err"),$("input:text",t).val(""),$(".pwf-line .msg-help",t).each(function(){var e=$(this),t=e.attr("data-default");""!=$.trim(t)&&e.html("").text(t)}),o.attr("data-email",n),$.fancybox.close(!0),$.fancybox("#pw-reg-complete")):($(".error",t).remove(),$(".required.err",t).removeClass("required err"),$(".has_error",t).removeClass("has_error"),$(".pwf-line .msg-help",t).each(function(){var e=$(this),t=e.attr("data-default");""!=$.trim(t)&&e.html("").text(t).hide()}),$.each(e.errors,function(e,r){var s=$("#id_"+e,t),a=$("<div/>").attr("class","error").append(r),i=s.closest(".pwf-line").find(".msg-help");s.parent().addClass("required err"),s.parents(".pwf-line").addClass("has_error"),i.attr("data-default",i.text()),i.text("").prepend(a),i.show()}))};"post"==a?$.post(r,s,l):$.get(r,s,l)});var e;$("form.simple-validate-register").on("keyup","input",function(t){t.preventDefault();var r=$(this).parents("form");clearTimeout(e),e=setTimeout(function(){$.post(r.data("validate-url"),r.serializeArray(),function(e){e.success?($(".error",r).remove(),$(".required.err",r).removeClass("required err"),$(".pwf-line .msg-help",r).each(function(){var e=$(this),t=e.attr("data-default");""!=$.trim(t)&&e.html("").text(t)})):($(".error",r).remove(),$(".required.err",r).removeClass("required err"),$(".has_error",r).removeClass("has_error"),$(".pwf-line .msg-help",r).each(function(){var e=$(this),t=e.attr("data-default");""!=$.trim(t)&&e.html("").text(t).hide()}),$.each(e.errors,function(e,t){var s=$("#id_"+e,r),a=$("<div/>").attr("class","error").append(t),i=s.closest(".pwf-line").find(".msg-help");$.trim(s.val()).length>0&&(s.parent().addClass("required err"),s.parents(".pwf-line").addClass("has_error"),i.attr("data-default",i.text()),i.text("").prepend(a),i.show())}))})},500)});var r=$(".review_trigger"),a=$(".site_review_form");r.on("click",function(e){e.preventDefault(),a.stop().fadeToggle(300)}),$(".close_review_form").on("click",function(e){e.preventDefault(),r.click()}),a.on("submit",function(e){e.preventDefault(),a.find(".error").removeClass("error"),$.ajax({url:a.attr("action"),type:a.attr("method"),data:a.serializeArray(),success:function(e){e.success&&(a[0].reset(),a.find(".form_data").hide(),a.find(".success_message").show(),setTimeout(function(){a.fadeOut(300,function(){a.find(".form_data").show(),a.find(".success_message").hide()})},2e3))},error:function(e){$.each(e.responseJSON,function(e){$("#id_"+e).addClass("error")})}})})}),$(function(){$.fancybox.helpers.overlay.overlay=$('<div class="fancybox-overlay"></div>').appendTo("body"),$.fn.customRadioCheck=function(){return $(this).each(function(){function e(){if("radio"==r){var e=t.attr("name"),s=$('input[type="radio"]').filter('[name="'+e+'"]');s.each(function(){var e=$(this).closest(".custom-radio");e.removeClass("checked"),$(this).is(":checked")&&e.addClass("checked"),ma})}else t.prop("checked")?a.addClass("checked"):a.removeClass("checked");t.trigger("blur")}var t=$(this),r=t.attr("type"),s=t.closest("label"),a=t.wrap("<span class='custom-"+r+"' />").parent();s.addClass("custom-radio-check"),e(),t.on("change",e)})},$("input[type='checkbox']:not(.default), input[type='radio']").customRadioCheck()}),function(e){e.fn.inlineStyle=function(t){var r,s=this.attr("style");return s&&s.split(";").forEach(function(s){var a=s.split(":");e.trim(a[0])===t&&(r=a[1])}),r}}(jQuery),t.init=function(t){$.extend(this.opt,t);var r,s=this,a=this.opt.addCalendarClass,i=this.opt.removeCalendarClass,o=this.opt.addCalendarText,n=this.opt.removeCalendarText,l=s.opt.staticValidation.errorClass,c=s.opt.staticValidation.containerClass;s.opt.staticValidation.blobClass;$(function(){r=$("."+l),e=$("#wait-ajax:not(.absolute)").css({"z-index":"8031"}),$("body").on("click","."+a+", ."+i,function(e){o=s.opt.addCalendarText,n=s.opt.removeCalendarText,e.preventDefault();var t=$(this),r=t.attr("href");$.get(r,function(e){e.not_authorized?$.fancybox.open("#"+s.opt.loginModalId):e.success&&(e["in"]?t.removeClass(a).addClass(i).text(n):t.removeClass(i).addClass(a).text(o))})}),r.length&&r.find("input:text").on("keyup",function(){""!=$.trim($(this).val())?$(this).closest("."+l).removeClass(l):$(this).closest("."+c).addClass(l)});for(var t=0;t<s.opt.httpFormIds.length;t++){var d=$("#"+s.opt.httpFormIds[t]);d.length&&($("input:text",d).on("focus",function(){var e=$(this),t=s.opt.socialInputMask;""==$.trim(e.val())&&e.val(t[0])}),$("input:text",d).on("keypress",function(){var e=$(this),t=s.opt.socialInputMask;""==$.trim(e.val())&&e.val(t[0])}),$("input:text",d).on("blur",function(){for(var e=$(this),t=s.opt.socialInputMask,r=0;r<t.length;r++)$.trim(e.val())==t[r]&&e.val("")}))}$("."+s.opt.seoLinksClass).each(function(){var e=$(this).attr("data-hash"),t=$(this).attr("data-url");EXPO.common.SEOhide.seoHrefs[e]=t}),EXPO.common.SEOhide.decode(s.opt.dataKey),$("."+s.opt.resendLetterClass).on("click",function(){var t=$(this).attr("data-email"),r=s.opt.resendLetterUrl;return e.show(),EXPO.common.getRequest({email:t},r,function(t){e.hide()}),!1}),$("#"+s.opt.socialFormId).on("focus","."+s.opt.requiredClass+"."+s.opt.errorClass+" input:text",function(){$(this).closest("."+s.opt.errorClass).addClass("disable-inner")}),$("#"+s.opt.socialFormId).on("blur","."+s.opt.requiredClass+"."+s.opt.errorClass+" input:text",function(){$(this).closest("."+s.opt.errorClass).removeClass("disable-inner")})})},t.hasClass=function(e,t){return e.classList?e.classList.contains(t):new RegExp("(^| )"+t+"( |$)","gi").test(el.className)},t.addClass=function(e,r){return t.hasClass(e,r)||(e.classList?e.classList.add(r):e.className+=" "+r),e},t.removeClass=function(e,r){var s=" "+e.className.replace(/[\t\r\n]/g," ")+" ";if(t.hasClass(e,r))if(e.classList)e.classList.remove(r);else{for(;s.indexOf(" "+r+" ")>=0;)s=s.replace(" "+r+" "," ");e.className=s.replace(/^\s+|\s+$/g," ")}return e},t.closest=function(e,r){for(var s=function(r){return t.hasClass(e,r)};e;){if(s(r))return e;e=e.parentNode}},t.children=function(e,t){for(var s,a=[],s=0,i=e.childNodes.length;i>s;++s)r(e.childNodes[s],t)&&a.push(e.childNodes[s]);return a},t.postRequest=function(e,t,r){e||(e=""),$.ajax({type:"POST",url:t,data:e,success:function(e){return"function"!=typeof r?e:(console.log("data recieved:"),console.log(e),console.log(JSON.stringify(e)),r(e),void 0)}})},t.getRequest=function(e,t,r){e||(e=""),$.ajax({type:"GET",url:t,data:e,success:function(e){return"function"!=typeof r?e:(console.log("data recieved:"),console.log(e),console.log(JSON.stringify(e)),r(e),void 0)}})},t.Modal=function(e){var t=this;this.id,this.opt=e,this.DOMwrap=document.getElementById(e.id),this.DOM=this.DOMwrap.querySelector("."+e.wrapClass),$(".modal-close",this.DOM).on("click",function(){t.close()}),$(".modals > *").on("click",function(e){$(e.target.parentNode).find(t.DOMwrap).length&&t.close()})},t.Modal.prototype={pullData:function(e){this.id=e.substr(1),$(e).show().siblings().hide(),this.refresh()},open:function(){$(this.DOMwrap).fadeIn(),t.addClass(document.body,"ov-hidden")},close:function(){$(this.DOMwrap).fadeOut(),t.removeClass(document.body,"ov-hidden")},refresh:function(){var e=this;e.DOM.style.width=e.opt.size[e.id].width+"px",e.DOM.style.minHeight=e.opt.size[e.id].height+"px",e.DOM.style.marginLeft=-(e.opt.size[e.id].width/2)+"px",e.DOM.style.marginTop=-(e.opt.size[e.id].height/2)+"px"}},t.SEOhide={seoContent:{},seoHrefs:{},decode:function(e){for(var t=$("["+e+"]"),r=0,s=t.length;s>r;r++){var a=t.eq(r),i=a.attr("data-hash");switch(a.data("type")){case"href":a.attr("href",Base64.decode(this.seoHrefs[i]));break;case"content":a.replaceWith(Base64.decode(this.seoContent[i]))}}}},t.nl2br=function(e,t){var r=t||"undefined"==typeof t?"<br />":"<br>";return(e+"").replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g,"$1"+r+"$2")},t}(); |