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
7.3 KiB

var EXPO=EXPO||{};EXPO.common?console.warn("WARNING: EXPO.common is already defined!"):EXPO.common=function(){var t,e={},s=function(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector).call(t,e)};e.opt={};var o=function(t){this.fields=[],this.allIsClear=!1,this.ajaxUrl=t.getAttribute("action"),this.DOM=t,this._initFields(),this._eventController()};return o.prototype={_eventController:function(){var t=this;this.DOM.addEventListener?this.DOM.addEventListener("submit",function(e){return t.validate(),e.preventDefault(),!1},!1):this.DOM.attachEvent&&this.DOM.attachEvent("onsubmit",function(e){return t.validate(),e.preventDefault(),!1})},_initFields:function(){},validate:function(){var e,s=this,o=$(s.DOM).serialize(),i={},a="err-message-box",n=s.DOM.querySelector("."+a),r=n.innerHTML,l=function(o){var a,l;if(e=o,s.unHighlightFields(),e.success)n&&EXPO.common.removeClass(n,"active"),$(s.DOM).attr("id")==EXPO.common.opt.registerFormId?(a=$("#"+EXPO.common.opt.successRegisterId),l=$.trim($("#id_email",s.DOM).val()),$("."+EXPO.common.opt.resendLetterClass,a).attr("data-email",l),$.fancybox.close(!0),$.fancybox("#"+EXPO.common.opt.successRegisterId)):window.location.reload();else{EXPO.common.removeClass(n,"active"),i={},s.fields=[];for(var c in e.errors)e.errors.hasOwnProperty(c)&&("__all__"!=c?(i={name:c,id:"id_"+c,errorText:e.errors[c]},s.fields.push(i)):n&&(EXPO.common.addClass(n,"active"),r.indexOf(e.errors[c])<0&&n.insertAdjacentHTML("beforeend",e.errors[c]+" ")));s.highliteFields()}t.hide()};s.unHighlightFields(),t.show(),EXPO.common.postRequest(o,s.ajaxUrl,l)},highliteFields:function(){for(var t,e,s=0;s<this.fields.length;s++)t=this.DOM.querySelector("#"+this.fields[s].id),e=t.parentNode,EXPO.common.addClass(e,"required"),EXPO.common.addClass(e,"err")},unHighlightFields:function(){for(var t,e,s=0;s<this.fields.length;s++)t=this.DOM.querySelector("#"+this.fields[s].id),e=t.parentNode,EXPO.common.removeClass(e,"required"),EXPO.common.removeClass(e,"err")},submit:function(){}},e.forms=[],$(function(){$("form.validate").each(function(){e.forms.push(new o(this))})}),$(function(){$.fancybox.helpers.overlay.overlay=$('<div class="fancybox-overlay"></div>').appendTo("body"),$.fn.customRadioCheck=function(){return $(this).each(function(){function t(){if("radio"==s){var t=e.attr("name"),o=$('input[type="radio"]').filter('[name="'+t+'"]');o.each(function(){var t=$(this).closest(".custom-radio");t.removeClass("checked"),$(this).is(":checked")&&t.addClass("checked")})}else e.prop("checked")?i.addClass("checked"):i.removeClass("checked");e.trigger("blur")}var e=$(this),s=e.attr("type"),o=e.closest("label"),i=e.wrap("<span class='custom-"+s+"' />").parent();o.addClass("custom-radio-check"),t(),e.on("change",t)})},$("input[type='checkbox'], input[type='radio']").customRadioCheck()}),function(t){t.fn.inlineStyle=function(e){var s,o=this.attr("style");return o&&o.split(";").forEach(function(o){var i=o.split(":");t.trim(i[0])===e&&(s=i[1])}),s}}(jQuery),e.init=function(e){$.extend(this.opt,e);{var s,o=this,i=this.opt.addCalendarClass,a=this.opt.removeCalendarClass,n=this.opt.addCalendarText,r=this.opt.removeCalendarText,l=o.opt.staticValidation.errorClass,c=o.opt.staticValidation.containerClass;o.opt.staticValidation.blobClass}$(function(){s=$("."+l),t=$("#wait-ajax:not(.absolute)").css({"z-index":"8031"}),$("."+i+", ."+a).on("click",function(t){n=o.opt.addCalendarText,r=o.opt.removeCalendarText,t.preventDefault();var e=$(this),s=e.attr("href");$.get(s,function(t){t.not_authorized?$.fancybox.open("#"+o.opt.loginModalId):t.success&&(t.in?e.removeClass(i).addClass(a).text(r):e.removeClass(a).addClass(i).text(n))})}),s.length&&s.find("input:text").on("keyup",function(){""!=$.trim($(this).val())?$(this).closest("."+l).removeClass(l):$(this).closest("."+c).addClass(l)});for(var e=0;e<o.opt.httpFormIds.length;e++){var d=$("#"+o.opt.httpFormIds[e]);d.length&&($("input:text",d).on("focus",function(){var t=$(this),e=o.opt.socialInputMask;""==$.trim(t.val())&&t.val(e[0])}),$("input:text",d).on("keypress",function(){var t=$(this),e=o.opt.socialInputMask;""==$.trim(t.val())&&t.val(e[0])}),$("input:text",d).on("blur",function(){for(var t=$(this),e=o.opt.socialInputMask,s=0;s<e.length;s++)$.trim(t.val())==e[s]&&t.val("")}))}$("."+o.opt.seoLinksClass).each(function(){var t=$(this).attr("data-hash"),e=$(this).attr("data-url");EXPO.common.SEOhide.seoHrefs[t]=e}),EXPO.common.SEOhide.decode(o.opt.dataKey),$("."+o.opt.resendLetterClass).on("click",function(){var e=$(this).attr("data-email"),s=o.opt.resendLetterUrl;return t.show(),EXPO.common.getRequest({email:e},s,function(){t.hide()}),!1}),$("#"+o.opt.socialFormId).on("focus","."+o.opt.requiredClass+"."+o.opt.errorClass+" input:text",function(){$(this).closest("."+o.opt.errorClass).addClass("disable-inner")}),$("#"+o.opt.socialFormId).on("blur","."+o.opt.requiredClass+"."+o.opt.errorClass+" input:text",function(){$(this).closest("."+o.opt.errorClass).removeClass("disable-inner")})})},e.hasClass=function(t,e){return t.classList?t.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(el.className)},e.addClass=function(t,s){return e.hasClass(t,s)||(t.classList?t.classList.add(s):t.className+=" "+s),t},e.removeClass=function(t,s){var o=" "+t.className.replace(/[\t\r\n]/g," ")+" ";if(e.hasClass(t,s))if(t.classList)t.classList.remove(s);else{for(;o.indexOf(" "+s+" ")>=0;)o=o.replace(" "+s+" "," ");t.className=o.replace(/^\s+|\s+$/g," ")}return t},e.closest=function(t,s){for(var o=function(s){return e.hasClass(t,s)};t;){if(o(s))return t;t=t.parentNode}},e.children=function(t,e){for(var o,i=[],o=0,a=t.childNodes.length;a>o;++o)s(t.childNodes[o],e)&&i.push(t.childNodes[o]);return i},e.postRequest=function(t,e,s){t||(t=""),$.ajax({type:"POST",url:e,data:t,success:function(t){return"function"!=typeof s?t:(console.log("data recieved:"),console.log(t),console.log(JSON.stringify(t)),s(t),void 0)}})},e.getRequest=function(t,e,s){t||(t=""),$.ajax({type:"GET",url:e,data:t,success:function(t){return"function"!=typeof s?t:(console.log("data recieved:"),console.log(t),console.log(JSON.stringify(t)),s(t),void 0)}})},e.Modal=function(t){var e=this;this.id,this.opt=t,this.DOMwrap=document.getElementById(t.id),this.DOM=this.DOMwrap.querySelector("."+t.wrapClass),$(".modal-close",this.DOM).on("click",function(){e.close()}),$(".modals > *").on("click",function(t){$(t.target.parentNode).find(e.DOMwrap).length&&e.close()})},e.Modal.prototype={pullData:function(t){this.id=t.substr(1),$(t).show().siblings().hide(),this.refresh()},open:function(){$(this.DOMwrap).fadeIn(),e.addClass(document.body,"ov-hidden")},close:function(){$(this.DOMwrap).fadeOut(),e.removeClass(document.body,"ov-hidden")},refresh:function(){var t=this;t.DOM.style.width=t.opt.size[t.id].width+"px",t.DOM.style.minHeight=t.opt.size[t.id].height+"px",t.DOM.style.marginLeft=-(t.opt.size[t.id].width/2)+"px",t.DOM.style.marginTop=-(t.opt.size[t.id].height/2)+"px"}},e.SEOhide={seoContent:{},seoHrefs:{},decode:function(t){for(var e=$("["+t+"]"),s=0,o=e.length;o>s;s++){var i=e.eq(s),a=i.attr("data-hash");switch(i.data("type")){case"href":i.attr("href",Base64.decode(this.seoHrefs[a]));break;case"content":i.replaceWith(Base64.decode(this.seoContent[a]))}}}},e.nl2br=function(t,e){var s=e||"undefined"==typeof e?"<br />":"<br>";return(t+"").replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g,"$1"+s+"$2")},e}();