1;window.pwebForms=window.pwebForms||[];jQuery(function($){window.pwebContact=function(options){this.init(options);};window.pwebContact.prototype=(function(){return{constructor:window.pwebContact,defaults:{id:'',selector:'#pwebcontact',selectorClass:'.pwebcontact',debug:false,basePath:'',baseUrl:'',ajaxUrl:'',reloadToken:false,openAuto:false,openDelay:0,maxAutoOpen:0,closeAuto:false,closeDelay:0,closeOther:true,reset:1,redirectURL:'',redirectDelay:3,layout:'slidebox',position:'left',offsetPosition:'top',tooltips:3,msgScroll:true,msgPosition:'after',msgCloseDelay:10,rulesModal:false,togglerNameOpen:'',togglerNameClose:'',slideWidth:0,slideDuration:400,slideTransition:'swing',accordionDuration:500,accordionEaseIn:'easeInBack',accordionEaseOut:'easeOutBounce',modalBackdrop:true,modalClass:null,modalClose:true,modalStyle:'default',modalEffect:'square',modalEffectDuration:400,modalEaseIn:'easeInCubic',modalEaseOut:'easeOutCubic',cookieLifetime:30,cookiePath:'/',cookieDomain:'',onLoad:null,onOpen:null,onClose:null,onComplete:null,onError:null,uploadAcceptFileTypes:'gif|jpe?g|png|docx?|odt|txt|pdf|zip',uploadMaxSize:1024*1024,uploadFilesLimit:5,uploadAutoStart:true,validatorRules:[],calendars:[],calendarFirstDay:0,captcha:null},options:null,status:0,hidden:true,timer:false,validator:false,tooltip:false,uploader:false,uploadQueue:0,dropTimeout:null,init:function(options){let that=this;this.options=$.extend({},this.defaults,options);this.options.baseUrl='//'+document.location.host+this.options.basePath+'/';this.options.ajaxUrl=this.options.baseUrl+this.options.ajaxUrl;this.options.selector=this.options.selector+this.options.id;this.options.selectorClass=this.options.selectorClass+this.options.id;this.options.modalClass='pwebcontact' 2+this.options.id 3+'_modal-open pweb-modal-open pweb-modal-' 4+this.options.modalStyle;this.$element=$(this.options.selector);this.$message=$(this.options.selector+'_msg');this.$form=$(this.options.selector+'_form');this.$send=$(this.options.selector+'_send');this.$toggler=$(this.options.selector+'_toggler');this.$box=$(this.options.selector+'_box');this.$container=$(this.options.selector+'_container');this.$token=$(this.options.selector+'_token');this.$modal=null;this.$element.data('pwebcontact',this);if(this.$form.length){this.$form[0].reset();} 5$('a[href="'+this.options.selector+'_toggler"]').addClass((this.options.selector.replace('#',''))+'_toggler');this.$form.on('submit',function(e){e.preventDefault();});switch(this.options.layout){case'slidebox':this.$element.appendTo(document.body);this.initSlidebox();break;case'modal':this.$element.appendTo(document.body);this.initModal();break;case'accordion':this.initAccordion();break;} 6if(typeof this.options.onLoad==='function'){this.options.onLoad.apply(this);this.$element.trigger('onLoad');} 7if($(this.options.selector+'_form input').css('font-size').slice(0,-2)>=20){$(this.options.selector+'_box input, '+this.options.selector+'_box select').css('height','auto');} 8let openOnLoad=false;if(document.location.hash.indexOf(this.options.selector+':')!==-1){let data=document.location.hash.replace(this.options.selector+':','');if(data.indexOf('open')===0&&(typeof data[4]==='undefined'||data[4]===':')){data=data.replace(/open(:)?/i,'');openOnLoad=true;} 9if(data){this.preloadFields(data);}} 10if(this.options.tooltips){this.initTooltips();} 11this.initTextareaCounters();this.initSelectFields();if(this.options.rulesModal){this.initModalRules();} 12if(this.$form.find('.pweb-uploader').length){this.initUploader();} 13if(this.$box.hasClass('pweb-labels-over')){this.initLabelsOverFields();} 14if(this.options.layout!=='static'){if(this.options.togglerNameClose){this.options.togglerNameOpen=this.$toggler.find('.pweb-text').text();} 15$(this.options.selectorClass+'_toggler').on('click',function(e){e.preventDefault();that.toggleForm(-1,-1,this);});if(this.options.closeOther){pwebForms.push(this);} 16if(openOnLoad){this.autoPopupOnPageLoad();}else if(this.options.openAuto){if(this.options.maxAutoOpen>0){if(!this.initAutoPopupCookie()){this.options.openAuto=false;}} 17switch(this.options.openAuto){case 1:this.autoPopupOnPageLoad();break;case 2:this.autoPopupOnPageScroll();break;}}} 18this.initHiddenFields();this.initValidator();
18this.$send.on('click',function(){that.submitForm();});if(this.options.reset===3){this.ButtonReset=$(this.options.selector+'_reset');this.ButtonReset.click(function(){$(this).hide();that.resetForm();});} 19if(typeof navigator.cookieEnabled!=='undefined'&&navigator.cookieEnabled===false){this.displayMsg(Joomla.JText._('MOD_PWEBCONTACT_COOKIES_ERR'),'error');}else{this.displayMsg();} 20return this;},initSlidebox:function(){let that=this;this.options.togglerSlide=this.$box.hasClass('pweb-toggler-slide');this.options.togglerHidden=this.$box.hasClass('pweb-toggler-hidden');this.options.slidePos=this.$element.css('position');if(!this.options.slideWidth){this.options.slideWidth=parseInt(this.$box.css('max-width'));} 21this.$box.css('width',this.options.slideWidth);if(this.options.position==='left'||this.options.position==='right'){this.$box.css(this.options.position,-this.options.slideWidth);this.options.togglerWidth=this.options.togglerSlide?this.$toggler.outerWidth():0;this.options.togglerHeight=this.options.togglerSlide?parseInt(this.$box.css('top')):0;this.options.slideOffset=parseInt(this.$element.css('top'));if(this.options.togglerSlide){this.$toggler.css(this.options.position==='left'?'right':'left',-this.$toggler.outerWidth());}}else{setTimeout(function(){that.$box.css(that.options.position,-that.$box.height());},100);this.options.togglerWidth=0;this.options.togglerHeight=this.options.togglerSlide?this.$toggler.outerHeight():0;this.options.slideOffset=0;if(this.options.togglerSlide){this.$toggler.css(this.options.position==='top'?'bottom':'top',-this.$toggler.outerHeight());}} 22this.$box.addClass('pweb-closed');setTimeout(function(){that.$box.removeClass('pweb-init');},100);if(this.options.togglerHidden){this.$toggler.fadeOut(0).removeClass('pweb-closed').addClass('pweb-opened');if(this.options.togglerNameClose){this.$toggler.find('.pweb-text').text(this.options.togglerNameClose);}} 23this.isFF=navigator.userAgent.indexOf('Gecko')!==-1;$(window).scroll(function(){if(!that.hidden&&that.$element.css('position')==='absolute'&&that.options.slidePos==='fixed'){let offset=$(this).scrollTop();if(that.options.position==='bottom'){offset=offset+$(this).height();if(offset>that.$element.offset().top){if(that.isFF){that.$element.css('top',offset);}else{that.$element.stop().animate({top:offset},250,'linear');}}}else{offset=offset+that.options.slideOffset;if(offset<that.$element.offset().top){if(that.isFF){that.$element.css('top',offset);}else{that.$element.stop().animate({top:offset},250,'linear');}}}}});$(window).resize(function(){if(!that.hidden){let css={width:that.options.slideWidth},maxWidth=$(window).width();if(that.options.position==='left'||that.options.position==='right'){if(that.options.slideWidth+that.options.togglerWidth>maxWidth){css.width=maxWidth-that.options.togglerWidth;}}else{let offset=that.$element.offset().left;if(that.options.offsetPosition==='right'){offset=$(document).width()-offset;} 24if(that.options.slideWidth+offset>maxWidth){css.width=maxWidth-offset;}} 25that.$box.css(css);if(that.options.slidePos==='fixed'){let css={position:'absolute'};if(that.options.position==='left'||that.options.position==='right'){css.top=that.$element.offset().top;if(that.$box.height()+that.options.togglerHeight+css.top-$(window).scrollTop()<=$(window).height()){css.position='fixed';css.top=that.options.slideOffset;}}else if(that.$box.height()+that.options.togglerHeight>$(window).height()){css.top=that.$element.offset().top;if(that.options.position==='bottom'){css.bottom='auto';}}else{css.position='fixed';css[that.options.position]=0;if(that.options.position==='bottom')css.top='auto';} 26that.$element.css(css);}}});},initModal:function(){let that=this;this.$modal=$(this.options.selector+'_modal');this.$modal.appendTo(document.body).modal({show:false,keyboard:false,backdrop:!this.options.modalClose&&this.options.modalBackdrop?'static':this.options.modalBackdrop}).on('hidden.bs.modal',function(evt){evt.stopPropagation();if(evt.target===evt.currentTarget){that.toggleForm(0);$(document.body).removeClass(that.options.modalClass);that.$box.addClass('pweb-closed');}}).on('show.bs.modal',function(evt){evt.stopPropagation();if(evt.target===evt.currentTarget){$(document.body).addClass(that.options.modalClass);that.$box.removeClass('pweb-closed');}}).on('click',function(evt){if(evt.target===evt.currentTarget&&that.options.modalClose){that.toggleForm(0);}});if(this.options.modalEffect!=='default'){this.initGenie();}},initModalRules:function(){let that=this,$links=this.$form.find('.pweb-modal-url');if($links.length===0||typeof $.fn.modal!=='function'){return;} 27$links.on('click',function(evt){evt.preventDefault();let href=this.getAttribute('href'),$content=null;if(href.indexOf('#')===0){let $href=$(href);if($href.length){$content=$href.children();}else{return;}}else{$content=$('<iframe/>',{style:'width: 100%; height: 100%; border:none;',allowtransparency:'true',src:href});} 28if($content.length){let $modal=$('<div>',{class:'pweb-modal pweb-modal-rules modal fade',role:'dialog'}),$dialog=$('<div>',{class:'modal-dialog'}),$cWrapper=$('<div>',{class:'modal-content'}),$body=$('<div>',{class:'modal-body pweb-progress',}
28),$closeButton=$('<button>',{type:'button',class:'pweb-button-close','data-dismiss':'modal','data-bs-dismiss':'modal','aria-hidden':'true'}).html('×');if(that.$box.hasClass('pweb-rtl')){$modal.addClass('pweb-rtl');} 29$modal.append($dialog);$dialog.append($cWrapper);$cWrapper.append($body);$cWrapper.append($closeButton);$body.append($content);if($content.is('iframe')){$modal.on('shown.bs.modal',function(){$content.height($(this).height());});$content.on('load',function(){$(this).parent().removeClass('pweb-progress');});$body.css({'width':'auto','height':'100%','padding':'0','overflow':'hidden'})} 30$modal.appendTo(document.body).modal({backdrop:true,show:false,}).on('hidden.bs.modal',function(){$(document.body).removeClass(that.options.modalClass);$(this).remove();});$(document.body).addClass(that.options.modalClass);$modal.modal('show');}});},initGenie:function(){let that=this,bgColorClass=this.$box.prop('class').match(/pweb-bg-[a-z]+/i);this.options.modalGenieClass='pweb-genie pweb-'+this.options.modalEffect+'-' 31+(this.options.position==='static'?'bottom':this.options.position) 32+' pwebcontact'+this.options.id+'-genie' 33+(this.$box.hasClass('pweb-radius')?' pweb-radius':'') 34+(this.$box.hasClass('pweb-shadow')?' pweb-shadow':'') 35+(bgColorClass?' '+bgColorClass[0]:'') 36if(this.options.modalEffect==='smooth'){this.options.modalEaseIn='easeInQuart';this.options.modalEaseOut='easeOutQuart';}else if(this.options.modalEffect==='rotate'){this.options.modalEaseIn='easeInQuint';this.options.modalEaseOut='easeOutQuint';} 37this.$modal.on('show.bs.modal',function(e){e.stopPropagation();if(e.target!==e.currentTarget){return;} 38if(typeof that.eventSource!=='undefined'&&$(that.eventSource).length){that.$container.css({visibility:'hidden'});}}).on('shown.bs.modal',function(e){e.stopPropagation();if(e.target!==e.currentTarget){return;} 39if(typeof that.eventSource!=='undefined'&&$(that.eventSource).length){$(that.eventSource).trigger('modalOpen');}});$(this.options.selectorClass+'_toggler').on('modalOpen',function(){$(this).effect({effect:'transfer',to:that.$container,duration:that.options.modalEffectDuration,easing:that.options.modalEaseIn,className:'pweb-genie-show '+that.options.modalGenieClass,complete:function(){that.$container.css({visibility:'visible'});}});});this.$container.on('modalClose',function(){$(this).css({visibility:'hidden'}).effect({effect:'transfer',to:$(that.eventSource),duration:that.options.modalEffectDuration,easing:that.options.modalEaseOut,className:'pweb-genie-hide '+that.options.modalGenieClass,complete:function(){that.$modal.modal('hide');}});});},initAccordion:function(){let that=this;$(this.options.selectorClass+'_toggler').on('openAccordion',function(){that.$box.removeClass('pweb-closed').slideDown({duration:that.options.accordionDuration,easing:that.options.accordionEaseOut,complete:function(){let winHeight=$(window).height(),eleHeight=that.$element.outerHeight(),eleTop=that.$element.offset().top;if(eleTop+eleHeight>$(window).scrollTop()+winHeight){if(eleHeight<winHeight){eleTop=eleTop+eleHeight-winHeight;} 40$('html,body').animate({scrollTop:parseInt(eleTop)},500);}}});});$(this.options.selectorClass+'_toggler').on('closeAccordion',function(){that.$box.slideUp({duration:that.options.accordionDuration,easing:that.options.accordionEaseIn,complete:function(){that.$box.addClass('pweb-closed');}});});this.$box.css('display','none').removeClass('pweb-init');},initTooltips:function(){this.tooltip=typeof $.fn.tooltip==='function';if(this.tooltip){this.$form.find('input.pweb-input.pweb-tooltip,select.pweb-tooltip,textarea.pweb-tooltip').tooltip({trigger:this.options.tooltips===2?'manual':'focus',html:true});this.$form.find('fieldset.pweb-tooltip,.pweb-field-checkbox label.pweb-tooltip,.fileinput-button.pweb-tooltip').tooltip({trigger:this.options.tooltips===2?'manual':'hover',html:true});return true;}else{this.debug('Bootstrap Tooltip Plugin is not loaded');} 41return false;},initLabelsOverFields:function(){this.$form.find('input.pweb-input,.pweb-field textarea').on('focus',function(){$('#'+$(this).prop('id')+'-lbl').parent().hide();}).on('blur',function(){if(!this.value){$('#'+$(this).prop('id')+'-lbl').parent().show();}}).each(function(){let $label=$('#'+$(this).prop('id')+'-lbl').parent();$label.parent().addClass('pweb-label-over');if(this.value){$label.hide();}});this.$form.find('select').each(function(){let label=document.querySelector('[for="'+this.id+'"]');if(label){label.parentNode.style.display='none';}});return true;},initTextareaCounters:function(){this.$form.find('textarea[maxlength]').on('input keyup change paste',function(){let $this=$(this),limit=parseInt($this.prop('maxlength')),text=$this.val();if(text.length>=limit){text=text.substring(0,limit);$this.val(text);} 42$('#'+$this.prop('id')+'-limit').text(limit-text.length);}).trigger('input');return true;},initSelectFields:function(){this.$form.find('.pweb-multiple select').each(function(){let input=this.parentNode.querySelector('input');input.dataset.placeholder=input.getAttribute('placeholder');input.dataset.minWidth=input.style.minWidth;this.addEventListener('change',function(){if(this.value){input.setAttribute('placeholder','');}else{input.setAttribute('placeholder',input.dataset.placeholder);input.style.minWidth=input.dataset.minWidth;}});});},initHiddenFields:function(){$('<input/>
42',{type:'hidden',name:'title',value:document.title}).appendTo(this.$form);$('<input/>',{type:'hidden',name:'url',value:document.location.href}).appendTo(this.$form);$('<input/>',{type:'hidden',name:'screen_resolution',value:screen.width+'x'+screen.height}).appendTo(this.$form);if(this.options.debug){$('<input/>',{type:'hidden',name:'debug',value:1}).appendTo(this.$form);} 43return true;},initUploader:function(){let that=this;if(typeof $.blueimp.fileupload!=='function'){this.debug('jQuery File Upload Plugin is not loaded');return false;} 44this.files=[];this.uploader=$(this.options.selector+'_uploader_container').fileupload({url:this.options.ajaxUrl+'uploader',type:'POST',dataType:'json',dataFilter:this.ajaxResponseDataFilter,accepts:"application/json; charset=utf-8",headers:{Accept:"application/json; charset=utf-8"},converters:{'text json':function(result){result=$.parseJSON(result);if(typeof result.data!=='undefined'&&result.data){result=result.data;} 45return result;},'iframe json':function(iframe){iframe=$.parseJSON(iframe);if(typeof iframe.data!=='undefined'&&iframe.data){iframe=iframe.data;} 46return iframe;}},formData:function(form){return $.merge(form.serializeArray(),[{name:'format',value:'json'},{name:'mid',value:that.options.id},{name:'ignoreMessages',value:true}]);},autoUpload:this.options.uploadAutoStart===true,acceptFileTypes:eval('/([./])(%s)$/i'.replace('%s',this.options.uploadAcceptFileTypes)),maxFileSize:this.options.uploadMaxSize,maxNumberOfFiles:parseInt(this.options.uploadFilesLimit,10),getNumberOfFiles:function(){return this.filesContainer.children('.pweb-upload-success, .pweb-upload-ready').length;},messages:{uploadedBytes:Joomla.JText._('MOD_PWEBCONTACT_UPLOAD_BYTES_ERR'),maxNumberOfFiles:Joomla.JText._('MOD_PWEBCONTACT_UPLOAD_LIMIT_ERR'),acceptFileTypes:Joomla.JText._('MOD_PWEBCONTACT_UPLOAD_TYPE_ERR'),maxFileSize:Joomla.JText._('MOD_PWEBCONTACT_UPLOAD_SIZE_ERR')},dropZone:this.$box,pasteZone:null,uploadTemplateId:null,downloadTemplateId:null,uploadTemplate:function(o){let rows=$();$.each(o.files,function(index,file){let row=that.uploader.find('.templates .template-upload').clone();row.find('.name').text(file.name);row.find('.cancel').bind('click',function(){if(row.hasClass('pweb-upload-ready')){that.uploadQueue--;} 47if(that.status===0){that.displayMsg();}});rows=rows.add(row);});return rows;},downloadTemplate:function(o){let rows=$();$.each(o.files,function(index,file){let row=that.uploader.find('.templates .template-download').clone();row.find('.size').text(o.formatFileSize(file.size));row.find('.name').text(file.name);let btn=row.find('.delete').bind('click',function(){let index=$.inArray(file.name,that.files);if(index>-1)that.files.splice(index,1);if(that.status===0)that.displayMsg();});if(file.name){let query={file:file.name,mid:that.options.id,format:'json',ignoreMessages:true};if(file.deleteType==='POST'){query._method='DELETE';btn.data('type','POST');} 48query[that.$token.prop('name')]=1;btn.data('url',that.options.ajaxUrl+'uploader'+'&'+decodeURIComponent($.param(query)));} 49if(file.error){row.find('.success').remove();row.find('.error').text(file.error);}else{row.find('.warning, .error').remove();row.addClass('pweb-upload-success');that.files.push(file.name);} 50rows=rows.add(row);});return rows;}}).on('fileuploadadd',function(){if(that.options.reloadToken&&that.status===0&&that.options.uploadAutoStart){that.ajaxCall('getToken',false)}}).on('fileuploadprocessdone',function(e,data){that.uploadQueue++;data.context.addClass('pweb-upload-ready').find('.warning,.error').remove();}).on('fileuploadprocessfail',function(e,data){data.context.each(function(){let $this=$(this);$this.find('.ready,.progress').remove();let cancelBtn=$this.find('.cancel');setTimeout(function(){cancelBtn.click();},3000);});}).on('fileuploadstart',function(){if(that.options.uploadAutoStart){if(that.status===0){that.displayMsg();} 51that.status=2;}}).on('fileuploaddone',function(e,data){that.uploadQueue--;if(!(data.getFilesFromResponse(data)).length){that.displayMsg(Joomla.JText._('MOD_PWEBCONTACT_UPLOAD_ERR') 52+(typeof data.result.message==='undefined'?'':'. '+data.result.message),'error');if(data.autoUpload===false){that.status=5;}}}).on('fileuploadfail',function(e,data){that.displayMsg(Joomla.JText._('MOD_PWEBCONTACT_UPLOAD_ERR'),'error');if(data.autoUpload===false){that.status=5;}}).on('fileuploadalways',function(e,data){if(data.textStatus==='parsererror'){that.debug(data.jqXHR.responseText);}else if(that.options.debug&&data.result&&typeof data.result.debug!=='undefined'&&data.result.debug){that.debug(data.result.debug,data.result.status);}}).on('fileuploadfinished',function(e,data){if(that.uploadQueue===0){if(data.autoUpload||that.status===5){that.
52status=0;}else if(that.status===1){that.ajaxCall('sendEmail');}}});this.$box.bind('dragenter',function(){if(that.dropTimeout){return;} 53that.dropTimeout=setTimeout(function(){that.dropTimeout=null;that.$box.addClass('pweb-dragged');that.$box.find('.pweb-dropzone').css({width:that.$box.width(),height:that.$box.height()});},100);}).bind('dragleave',function(){if(that.dropTimeout){return;} 54$(this).removeClass('pweb-dragged');}).on('fileuploaddrop',function(){that.$box.removeClass('pweb-dragged');});if(this.tooltip){this.uploader.find('.fileinput-button').click(function(){let $this=$(this);if($this.hasClass('pweb-tooltip')){$this.tooltip('hide');}});} 55$(window).on('unload',function(){if(that.files.length){that.uploader.find('.files .delete').click();}});return true;},initValidator:function(){let that=this;if(typeof $.fn.validate==='function'){$.each(this.options.validatorRules,function(key,rule){let delimeter=rule.regexp.charAt(0),parts=rule.regexp.split(delimeter);if(parts.length>=3){try{let ruleRegexp=new RegExp(parts[1],parts[2]);$.validator.addMethod('pweb'+that.options.id+'-validate-'+rule.name,function(value,element){return this.optional(element)||ruleRegexp.test(value);},'');}catch(error){alert('['+rule.name+'] '+error.message);}}});if(this.uploader){$.validator.addMethod('pweb-validate-uploader',function(value,element){return $(element).closest('.pweb-uploader').find('.files .pweb-upload-success,.files .pweb-upload-ready').length;},'');} 56let ignore=['.chzn-container input','.choices input'];this.$form.get(0).querySelectorAll('input:not([name])').forEach(function(element){ignore.push('#'+element.id);});this.validator=this.$form.validate({debug:this.options.debug,ignore:ignore.join(','),onsubmit:false,errorClass:'invalid',showErrors:function(errorMap,errorList){for(let i=0;errorList[i];i++){let $element=$(errorList[i].element);this.settings.highlight.call(this,$element,this.settings.errorClass,this.settings.validClass);if($element.hasClass('pweb-fieldset')){$element=$element.parents('fieldset');} 57$('#'+$element[0].id+'-lbl').addClass(this.settings.errorClass);if(i===0&&that.$element.css('position')!=='fixed'){if(that.options.layout==='modal'){let maxPos=that.$box.outerHeight()-$(window).height();if(maxPos>0){let pos=$element.parent().parent().offset().top-that.$box.offset().top;if(pos>maxPos){pos=maxPos;} 58that.$modal.animate({scrollTop:parseInt(pos)},500);}}else if(that.$element.css('position')!=='fixed'){let $window=$(window),pos=$element.parent().parent().offset().top-10,winTop=$window.scrollTop(),winHeight=$window.height();if(pos<winTop+50||pos>winTop+winHeight-50){pos=pos-winHeight / 2;$('html,body').animate({scrollTop:parseInt(pos)},500);}}} 59if(that.tooltip&&that.options.tooltips>=2){if($element.hasClass('pweb-single-checkbox')){if($element.next().hasClass('pweb-tooltip')){$element.next().tooltip('show');}}else if($element.hasClass('pweb-tooltip')){$element.tooltip('show');}}} 60for(let i=0,elements=this.validElements();elements[i];i++){this.settings.unhighlight.call(this,elements[i],this.settings.errorClass,this.settings.validClass);let $element=$(elements[i]);if($element.hasClass('pweb-fieldset')){$element=$element.parents('fieldset');} 61$('#'+$element[0].id+'-lbl').removeClass(this.settings.errorClass);if(that.tooltip&&that.options.tooltips>=2){if($element.hasClass('pweb-single-checkbox')){if($element.next().hasClass('pweb-tooltip')){$element.next().tooltip('hide');}}else if($element.hasClass('pweb-tooltip')){$element.tooltip('hide');}}}}});return true;}else{this.debug('jQuery Validate Plugin is not loaded');} 62return false;},preloadFields:function(data){let that=this;try{let fields=data.split('/');$.each(fields,function(key,field){field=field.split('=');if(field.length>=2){field[1]=decodeURIComponent(field[1]);let $element=$(that.options.selector+'_field-'+field[0]),tag=$element.prop('tagName').toLowerCase();switch(tag){case'fieldset':$element.find('input').val(field[1].split(';'));break;case'select':if($element.prop('multiple')){$element.val(field[1].split(';')).trigger('focus').trigger('blur');} 63break;case'inout':if($element.prop('type')==='checkbox'){$element.prop('checked',field[1]!==0);} 64break;default:$element.val(field[1]).trigger('focus').trigger('blur');if(tag==='textarea'){$element.trigger('keyup');} 65break;}}});}catch(error){console.log(error);}},close:function(){this.toggleForm(0);},toggleForm:function(state,recipient,bind){let that=this;if(typeof state==='undefined')state=-1;if(!this.hidden&&(state===-1||state===0)){this.hidden=true;if(this.$toggler.length&&!this.options.togglerHidden){this.$toggler.removeClass('pweb-opened').addClass('pweb-closed');if(this.options.togglerNameClose){this.$toggler.find('.pweb-text').text(this.options.togglerNameOpen);}} 66if(this.options.openAuto===false&&this.timer){clearTimeout(this.timer);} 67switch(this.options.layout){case'slidebox':let css={};css[this.options.position]=(this.options.position==='left'||this.options.position==='right')?-this.$box.width():-this.$box.height();
67this.$box.stop(true,false).animate(css,this.options.slideDuration,this.options.slideTransition,function(){that.$box.addClass('pweb-closed');if(that.$element.css('position')==='absolute'&&that.options.slidePos==='fixed'){let css={position:'fixed'};if(that.options.position==='left'||that.options.position==='right'){css.top=that.options.slideOffset;}else{css[that.options.position]=0;if(that.options.position==='bottom'){css.top='auto';}} 68that.$element.css(css);}});if(this.options.togglerHidden){this.$toggler.fadeOut(this.options.slideDuration);} 69break;case'modal':if(this.options.modalEffect!=='default'&&typeof this.eventSource!=='undefined'){this.$container.trigger('modalClose');}else{this.$modal.modal('hide');} 70break;case'accordion':$(bind).trigger('closeAccordion');break;} 71if(typeof this.options.onClose==='function'){this.options.onClose.apply(this);this.$element.trigger('onClose');} 72if(this.options.reset===2){this.resetForm();}}else if(this.hidden&&(state===-1||state===1)){if(this.options.closeOther){pwebForms.forEach(function(form){if(form.options.id!==that.options.id&&typeof form.close==='function'){form.close();}});} 73if(this.options.openAuto===1||this.options.openAuto===2){this.options.openAuto=false;if(this.timer){clearTimeout(this.timer);}} 74if(typeof recipient==='number'&&recipient>=0){let select=$(this.options.selector+'_mailto');if(select.length){select[0].selectedIndex=parseInt(recipient);if(this.$box.hasClass('pweb-labels-over'))select.trigger('focus').trigger('blur');}} 75if($(bind).length){if($(bind).data('pwebcontact-fields')){this.preloadFields($(bind).data('pwebcontact-fields'));} 76if($(bind).data('pwebcontact-fields-once')){this.preloadFields($(bind).data('pwebcontact-fields-once'));$(bind).data('pwebcontact-fields-once','');}} 77this.hidden=false;if(this.$toggler.length&&!this.options.togglerHidden){this.$toggler.removeClass('pweb-closed').addClass('pweb-opened');if(this.options.togglerNameClose){this.$toggler.find('.pweb-text').text(this.options.togglerNameClose);}} 78switch(this.options.layout){case'slidebox':let $window=$(window),css={width:this.options.slideWidth},maxWidth=$window.width();css[this.options.position]=0;if(this.options.position==='left'||this.options.position==='right'){if(this.options.slideWidth+this.options.togglerWidth>maxWidth){css.width=maxWidth-this.options.togglerWidth;}}else{let offset=this.$element.offset().left;if(this.options.offsetPosition==='right'){offset=$(document).width()-offset;} 79if(this.options.slideWidth+offset>maxWidth){css.width=maxWidth-offset;}} 80this.$box.stop(true,false).animate(css,this.options.slideDuration,this.options.slideTransition,function(){if(that.options.slidePos==='fixed'){let css={position:'absolute'};if(that.options.position==='left'||that.options.position==='right'){css.top=that.$element.offset().top;if(that.$box.height()+that.options.togglerHeight+css.top-$window.scrollTop()>$window.height()){css.top=that.$element.offset().top;that.$element.css(css);}}else if(that.$box.height()+that.options.togglerHeight>$window.height()){css.top=that.$element.offset().top;if(that.options.position==='bottom'){css.bottom='auto';} 81that.$element.css(css);}}}).css('overflow','visible').removeClass('pweb-closed');if(this.options.togglerHidden){this.$toggler.fadeIn(this.options.slideDuration);} 82break;case'modal':if(this.options.modalEffect!=='default'&&$(bind).length){this.eventSource=bind;} 83this.$modal.modal('show');break;case'accordion':$(bind).trigger('openAccordion');break;} 84if(typeof this.options.onOpen==='function'){this.options.onOpen.apply(this);this.$element.trigger('onOpen');}}},resetForm:function(){if(this.status===3){let that=this;setTimeout(function(){that.status=0;that.resetCaptcha();},5000);this.status=4;this.displayMsg();if(!this.options.redirectURL){this.ajaxCall('getToken');} 85this.$send.show();this.$form.find('textarea.pweb-charslimit').each(function(){$('#'+$(this).prop('id')+'-charsleft').text(parseInt($(this).prop('maxlength')));});if(this.validator){this.validator.resetForm();} 86if(this.$form.length){this.$form[0].reset();} 87this.$form.find('.invalid').removeClass('invalid');if(this.$box.hasClass('pweb-labels-over')){this.$form.find('input.pweb-input,textarea,select').trigger('focus').trigger('blur');} 88if(this.uploader){let files=this.uploader.find('.files');files.find('.cancel,.delete').click();files.empty();this.files=[];this.uploadQueue=0;}}},submitForm:function(){if([1,2,3,5].indexOf(this.status)>=0||(this.validator&&this.validator.form()===false)){return false;} 89if(this.status===4){let msg=Joomla.JText._('MOD_PWEBCONTACT_SEND_ERR');if(this.options.msgPosition==='popup'){this.displayAlert(msg,'error');}else{this.scrollToMsg();this.displayMsg(msg,'error');} 90return false;} 91this.status=1;this.scrollToMsg();if(this.options.reloadToken){this.ajaxCall('getToken',false);} 92if(this.uploader&&!this.options.uploadAutoStart){let uploads=this.uploader.find('.files .pweb-upload-ready');if(uploads.length){this.displayMsg(Joomla.JText._('MOD_PWEBCONTACT_UPLOADING'),'progress');uploads.each(function(){let data=$(this).data('data');if(typeof data.submit==='function'){data.submit();}});return true;}} 93if(this.status===1){this.ajaxCall('sendEmail');}},resetCaptcha:function(){let fieldId='#pwebcontact%s_captcha'.replace('%s',this.options.id),captcha=document.querySelector(fieldId);if(captcha){if(typeof grecaptcha!=='undefined'){let recaptchaId=captcha.dataset.recaptchaWidgetId,response=document.querySelector(fieldId+' textarea');if(typeof recaptchaId!=='undefined'){switch(this.options.captcha){case'recaptcha':grecaptcha.reset(recaptchaId);break;case'recaptcha_invisible':grecaptcha.execute(recaptchaId).then(function(token){response.value=token;});break;default:this.debug('Unrecognized Google reCAPTCHA: '+this.options.captcha);break;}}}}},ajaxCall:function(method,async){let that=this,query={mid:this.options.id,format:'json',ignoreMessages:true};if(method==='sendEmail'){if(this.uploader&&this.files.length&&method==='sendEmail'){query.attachments=this.files;} 94query=decodeURIComponent($.param(query))+'&'+this.$form.serialize();} 95if(typeof async==='undefined'){async=true;} 96$.ajax({url:this.options.ajaxUrl+method,type:'POST',cache:false,async:async,data:query,dataType:'json',dataFilter:this.ajaxResponseDataFilter,beforeSend:function(){if(method==='sendEmail'||!async){that.displayMsg(Joomla.JText._('MOD_PWEBCONTACT_SENDING'),'progress');}}}).done(function(response){if(response.success===false){that.displayError(response.message);return;} 97let data=response.data;if(!async){that.displayMsg();} 98if(method==='getToken'){that.options.reloadToken=false;that.$token.prop('name',data.token);}else{if(data.debug){that.debug(data.debug,data.status);} 99if(typeof data.deleted!=='undefined'&&!that.options.reset&&data.deleted&&that.uploader){that.uploader.find('.files').empty();that.files=[];that.uploadQueue=0;} 100if(data.status>
1000&&data.status<200){if(method==='sendEmail'){that.status=3;if(typeof that.options.onComplete==='function'){that.options.onComplete.apply(that,[data]);that.$element.trigger('onComplete');} 101if(that.uploader){that.uploader.find('.files .pweb-upload-success .delete').remove();} 102switch(that.options.reset){case 1:that.resetForm();break;case 2:that.$send.hide();break;case 3:that.$send.hide();that.ButtonReset.show();break;default:that.status=4;setTimeout(function(){that.status=0;},5000);break;} 103if(that.options.msgPosition==='popup'){that.displayAlert(data.msg,'success');data.msg='';}else{that.displayMsg(data.msg,'success');} 104if(that.options.closeAuto){that.autoCloseOnSuccess();} 105if(that.options.redirectURL){that.redirectOnSuccess();}}}else{if(typeof data.invalid!=='undefined'){that.$form.find('.invalid').removeClass('invalid');$.each(data.invalid,function(key,field){let el=$(that.options.selector+'_'+field);if(el.is('input,textarea,select'))el.addClass('invalid');$(that.options.selector+'_'+field+'-lbl').addClass('invalid');});} 106if(typeof that.options.onError==='function'){that.options.onError.apply(that,[data]);that.$element.trigger('onError');} 107that.status=0;if(that.options.msgPosition==='popup'){that.displayAlert(data.msg,'error');that.displayMsg()}else{that.displayMsg(data.msg,'error');}}}}).fail(function(jqXHR,textStatus,errorThrown){that.displayError(jqXHR.status+' '+errorThrown,jqXHR.responseText.indexOf('<html')===-1?jqXHR.responseText:'');});},ajaxResponseDataFilter:function(data,type){if(type==='iframe json'&&data&&typeof data==='object'){data=$(data[0].body).text();} 108if(type.indexOf('json')!==-1&&typeof data==='string'&&(data.indexOf('{')!==0||data[data.length-1]!=='}')){let json=data.match(/{"success":.+{"status":[0-9]+(,"[a-z]+":.+)+}}/i);if(json){if(typeof JSON.stringify==='function'){let result=$.parseJSON(json[0]);if(typeof result.data.debug==='undefined'||!result.data.debug){result.data.debug=[];} 109result.data.debug.push(data.replace(json[0],' '));data=JSON.stringify(result);}else{data=json[0];}}} 110return data;},scrollToMsg:function(){if(this.options.msgScroll&&(this.options.msgPosition==='before'||this.options.msgPosition==='after')){if(this.options.layout==='modal'){let pos=this.options.msgPosition==='after'?this.$box.outerHeight()-$(window).height():0;if(pos>=0)this.$modal.animate({scrollTop:pos},500);}else if(this.$element.css('position')!=='fixed'){let msgTopOffset=this.$message.offset().top,msgHeight=this.$message.height(),winScrollTop=$(window).scrollTop(),wndHeight=$(window).height();if(msgTopOffset<winScrollTop||msgTopOffset+msgHeight>winScrollTop+wndHeight){let pos;if(this.options.msgPosition==='before'){pos=msgTopOffset-100;}else{pos=msgTopOffset+msgHeight+100-wndHeight;} 111$('html,body').animate({scrollTop:parseInt(pos)},500);}}}},initAutoPopupCookie:function(){if(typeof Cookies==='undefined'){this.debug('jQuery Cookie Plugin is not loaded');}else{let cookieName='pwebcontact'+this.options.id+'_openauto',counter=parseInt(Cookies.get(cookieName));counter=isNaN(counter)?1:counter+1;if(counter<=this.options.maxAutoOpen){Cookies.set(cookieName,counter,{domain:this.options.cookieDomain,path:this.options.cookiePath,expires:this.options.cookieLifetime});return true;}} 112return false;},autoPopupOnPageLoad:function(){if(this.options.openDelay){this.timer=this.delay(this.toggleForm,this.options.openDelay,this,[1]);}else{this.toggleForm(1);}},autoPopupOnPageScroll:function(){let that=this;this.autoOpen=true;$(window).scroll(function(){if(that.autoOpen){that.autoOpen=false;if(that.options.openDelay){that.timer=that.delay(that.toggleForm,that.options.openDelay,that,[1]);}else{that.toggleForm(1);}}});},autoCloseOnSuccess:function(){if(this.options.closeDelay){this.timer=this.delay(this.toggleForm,this.options.closeDelay,this,[0]);}else{this.toggleForm(0);}},redirectOnSuccess:function(){let that=this;setTimeout(function(){document.location=that.options.redirectURL;},this.options.redirectDelay*1000);},delay:function(element,delay,bind,args){return setTimeout(function(){return element.apply(bind,args||arguments);},delay);},displayError:function(text,debugHtml){if(this.options.debug===false){this.status=5;this.$send.hide();}else{this.status=0;} 113let msg=Joomla.JText._('MOD_PWEBCONTACT_REQUEST_ERR')+text;if(this.options.msgPosition==='popup'){this.displayAlert(msg,'error');}else{this.displayMsg(msg,'error');} 114if(debugHtml){this.debug(debugHtml);}},displayMsg:function(html,type){this.$message.html(html?html:' ').prop('class',(type?'pweb-'+type:''));},alertElement:null,displayAlert:function(html,type,heading){if(typeof $.fn.dialog==='function'){if(this.alertElement){this.alertElement.dialog('close');} 115this.alertElement=$('<div>').html(html).dialog({width:560,maxHeight:400,closeText:'',title:heading,classes:{'ui-dialog':'pweb-alert alert alert-block '+(type?'alert-'+type:''),'ui-dialog-title':'alert-heading','ui-dialog-titlebar-close':'close fa fa-window-close'},resizable:false,modal:true});}else{alert(html.replace('<br>','\r\n'));}},debugAlert:null,debug:function(html,code){if(this.options.debug){if($.isArray(html)){html=html.join('<br>');} 116if(typeof code!=='undefined'){html=html+'<br>Response code: '+code;} 117if(this.debugAlert){this.debugAlert.alert('close');} 118this.displayAlert(html,'debug','Shack Forms Pro Debug');this.debugAlert=this.alertElement;this.alertElement=null;}}};})();});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.