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
5.1 KiB
1 lines
5.1 KiB
var EXPO=EXPO||{};EXPO.common?console.warn("WARNING: EXPO.common is already defined!"):EXPO.common=function(){var e={},t=function(e,t){return(e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector).call(e,t)};e.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 e,t=this,s=$(t.DOM).serialize(),i={},o="err-message-box",n=t.DOM.querySelector("."+o),a=n.innerHTML,r=function(s){if(e=s,t.unHighlightFields(),e.success)n&&EXPO.common.removeClass(n,"active"),window.location.reload();else{EXPO.common.removeClass(n,"active"),i={},t.fields=[];for(var o in e.errors)e.errors.hasOwnProperty(o)&&("__all__"!=o?(i={name:o,id:"id_"+o,errorText:e.errors[o]},t.fields.push(i)):n&&(EXPO.common.addClass(n,"active"),a.indexOf(e.errors[o])<0&&n.insertAdjacentHTML("beforeend",e.errors[o]+" ")));t.highliteFields()}};t.unHighlightFields(),EXPO.common.postRequest(s,t.ajaxUrl,r)},highliteFields:function(){for(var e,t,s=0;s<this.fields.length;s++)e=this.DOM.querySelector("#"+this.fields[s].id),t=e.parentNode,EXPO.common.addClass(t,"required"),EXPO.common.addClass(t,"err")},unHighlightFields:function(){for(var e,t,s=0;s<this.fields.length;s++)e=this.DOM.querySelector("#"+this.fields[s].id),t=e.parentNode,EXPO.common.removeClass(t,"required"),EXPO.common.removeClass(t,"err")},submit:function(){}},e.forms=[],$(function(){$("form.validate").each(function(){e.forms.push(new s(this))})}),$(function(){$.fn.customRadioCheck=function(){return $(this).each(function(){function e(){if("radio"==s){var e=t.attr("name"),i=$('input[type="radio"]').filter('[name="'+e+'"]');i.each(function(){var e=$(this).closest(".custom-radio");e.removeClass("checked"),$(this).is(":checked")&&e.addClass("checked")})}else t.prop("checked")?o.addClass("checked"):o.removeClass("checked");t.trigger("blur")}var t=$(this),s=t.attr("type"),i=t.closest("label"),o=t.wrap("<span class='custom-"+s+"' />").parent();i.addClass("custom-radio-check"),e(),t.on("change",e)})},$("input[type='checkbox'], input[type='radio']").customRadioCheck()}),e.init=function(e){$.extend(this.opt,e);{var t,s=this,i=this.opt.addCalendarClass,o=this.opt.removeCalendarClass,n=this.opt.addCalendarText,a=this.opt.removeCalendarText,r=s.opt.staticValidation.errorClass,l=s.opt.staticValidation.containerClass;s.opt.staticValidation.blobClass}$(function(){t=$("."+r),$("."+i+", ."+o).on("click",function(e){n=s.opt.addCalendarText,a=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(i).addClass(o).text(a):t.removeClass(o).addClass(i).text(n))})}),t.length&&t.find("input:text").on("keyup",function(){""!=$.trim($(this).val())?$(this).closest("."+r).removeClass(r):$(this).closest("."+l).addClass(r)})})},e.hasClass=function(e,t){return e.classList?e.classList.contains(t):new RegExp("(^| )"+t+"( |$)","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 i=" "+t.className.replace(/[\t\r\n]/g," ")+" ";if(e.hasClass(t,s))if(t.classList)t.classList.remove(s);else{for(;i.indexOf(" "+s+" ")>=0;)i=i.replace(" "+s+" "," ");t.className=i.replace(/^\s+|\s+$/g," ")}return t},e.closest=function(t,s){for(var i=function(s){return e.hasClass(t,s)};t;){if(i(s))return t;t=t.parentNode}},e.children=function(e,s){for(var i,o=[],i=0,n=e.childNodes.length;n>i;++i)t(e.childNodes[i],s)&&o.push(e.childNodes[i]);return o},e.postRequest=function(e,t,s){e||(e=""),$.ajax({type:"POST",url:t,data:e,success:function(e){return"function"!=typeof s?e:(console.log("data recieved:"),console.log(e),console.log(JSON.stringify(e)),s(e),void 0)}})},e.getRequest=function(e,t,s){e||(e=""),$.ajax({type:"GET",url:t,data:e,success:function(e){return"function"!=typeof s?e:(console.log("data recieved:"),console.log(e),console.log(JSON.stringify(e)),s(e),void 0)}})},e.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()})},e.Modal.prototype={pullData:function(e){this.id=e.substr(1),$(e).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 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"}},e}(); |