{"version":3,"sources":["main.js","breakpoints.js","carousel.js","customSlick.js","forms.js","getPagedData.js","helper.is.js","helper.js","native-validation.js","popup.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"app.min.js","sourcesContent":["/*\n *\n * Application Main\n *\n */\n!(function(APP) {\n 'use strict';\n\n\n var breakpoint = 768;\n\n $('#navbar').on('show.bs.collapse', function () {\n // do something…\n $('.language').css({ visibility: 'visible' });\n $('.navbar-expand-md').css({ 'border-left': '1px solid #323232' });\n });\n\n $('#navbar').on('hide.bs.collapse', function () {\n // do something…\n $('.language').css({ visibility: 'hidden' });\n $('.navbar-expand-md').css({ 'border-left': 'none' });\n });\n\n $.extend(true, APP, {\n breakpoint: breakpoint,\n init: {\n headerFix: function() {\n\n // function check() {\n // if (window.pageYOffset > sticky.offsetTop) {\n // header.classList.add('sticky');\n // } else {\n // header.classList.remove('sticky');\n // }\n // }\n\n // window.onscroll = APP.Helper.throttle(check, 250);\n // var header = document.getElementById('header');\n // var sticky = document.querySelector('.navbar');\n },\n autoPost: function() {\n\n $('select.autopost').each(function(i, element) {\n\n var $form = $(element).closest('form');\n\n $(element).on('change', function() {\n $form.submit();\n });\n });\n },\n select2: function() {\n $('select.select2').select2({\n minimumResultsForSearch: Infinity\n });\n },\n map: function(opts) {\n\n // burda çok güzel bir özellik var ama haritaya para vermemek için kaldırıldı.\n if (opts === 987654321) {\n // should always return;\n return;\n }\n var map = document.getElementById('map');\n if (!map) {\n return;\n }\n\n var mapObj = {\n settings: {\n el: map,\n map: null,\n template: document.getElementById('template-dagitim-bolgeleri').innerHTML,\n compiledTemplate: null,\n markers: [],\n form: null,\n contentPane: document.getElementById('dagitim-bolgeleri'),\n data: {\n Status: true,\n Latitude: 41.015137,\n Longitude: 28.979530,\n LatLng: {}\n }\n },\n elements: {},\n init: function () {\n this.moduleCache();\n this.getGeoLocation();\n this.eventListener();\n },\n moduleCache: function () {\n this.elements.$map = $(this.settings.el);\n this.elements.form = $('#map-form');\n this.settings.compiledTemplate = Handlebars.compile(this.settings.template); // eslint-disable-line\n },\n getData: function (cb) {\n var _self = this;\n\n APP.Helper.sendRequest(_self.elements.form, {\n method: opts.method,\n url: opts.url\n }, null).done(function (response) {\n if (response.Result) {\n if (response.Data.length > 0) {\n _self.settings.data.Latitude = null;\n _self.settings.data.Longitude = null;\n }\n $('#map').prev('.alert.alert-danger').remove();\n _self.renderMarkers(response.Data, cb || function() {});\n } else {\n $('
' + response.Error + '
').insertBefore($('#map'));\n }\n }).catch(function() {\n // TODO: LOG HERE\n });\n },\n eventListener: function () {\n var _self = this;\n var getDataFnWdebounce = APP.Helper.debounce(function() {\n _self.getData();\n }, 350);\n\n _self.elements.form.on('submit', function(e) {\n e.preventDefault();\n getDataFnWdebounce();\n });\n },\n currentLocation: function () {\n var _self = this;\n if (_self.settings.map) {\n var panPoint = new google.maps.LatLng(_self.settings.data.Latitude, _self.settings.data.Longitude);\n _self.settings.map.setZoom(13);\n _self.settings.map.panTo(panPoint);\n }\n },\n getGeoLocation: function () {\n var _self = this;\n _self.mapInit();\n _self.render();\n },\n render: function (cb) {\n\n var _self = this;\n _self.getData(function() {\n cb ? cb() : '';\n });\n },\n renderMarkers: function (markersArr, cb) {\n\n var _self = this;\n _self.settings.markers.forEach(function(marker) {\n marker.setMap(null);\n });\n _self.settings.markers = [];\n var marker;\n _self.settings.bounds = new google.maps.LatLngBounds();\n\n var html = '';\n $.each(markersArr, function (i) {\n var LatLng = {\n lat: parseFloat(this.lat.toString().replace(',', '.')),\n lng: parseFloat(this.lng.toString().replace(',', '.'))\n };\n\n var icon = {\n url: './assets/img/marker.svg',\n size: new google.maps.Size(24, 24),\n scaledSize: new google.maps.Size(24, 24),\n origin: new google.maps.Point(0, 0),\n anchor: new google.maps.Point(0, 24)\n };\n\n marker = new google.maps.Marker({\n position: LatLng,\n lat: LatLng.lat.toString().replace(',', '.'),\n lng: LatLng.lng.toString().replace(',', '.'),\n map: _self.settings.map,\n icon: icon,\n id: i,\n title: this.title,\n address: this.address,\n phone: this.phone\n });\n\n var contentString = '
' +\n '
' +\n '
' + this.title + '
' +\n '

' + this.address + '

' +\n '

Tel: ' + this.phone + '

' +\n '
';\n\n // 'Yol Tarifi Al' +\n\n _self.settings.bounds.extend(marker.getPosition());\n google.maps.event.addListener(_self.elements.infowindow, 'domready', function () {\n jQuery('.gm-style-iw').prev('div').remove();\n jQuery('.gm-style-iw').next('div').remove();\n jQuery('.gm-style-iw').next('button').remove();\n jQuery('.gm-ui-hover-effect').remove();\n });\n\n google.maps.event.addListener(marker, 'click', (function (marker) {\n return function () {\n _self.settings.map.setCenter(marker.getPosition());\n _self.elements.infowindow.setContent(contentString);\n _self.elements.infowindow.open(_self.settings.map, marker);\n jQuery('.gm-style .gm-style-iw-a').addClass(marker.type);\n };\n })(marker));\n _self.settings.markers.push(marker);\n\n html += _self.settings.compiledTemplate(this);\n });\n\n _self.settings.contentPane.innerHTML = html;\n\n _self.settings.map.addListener('click', function () {\n _self.elements.infowindow.close();\n });\n\n if (_self.settings.markers.length > 0) {\n if (_self.settings.data.Latitude) {\n _self.currentLocation();\n } else {\n _self.settings.map.setCenter(_self.settings.bounds.getCenter());\n\n if (_self.settings.markers.length > 1) {\n _self.settings.map.fitBounds(_self.settings.bounds);\n }\n\n _self.settings.map.setZoom(_self.settings.map.getZoom());\n }\n } else {\n var lat = _self.settings.data.Latitude,\n long = _self.settings.data.Longitude;\n\n if (lat !== null && long !== null) {\n _self.settings.map.setCenter(new google.maps.LatLng(lat, long));\n }\n }\n cb.call(_self);\n },\n mapInit: function () {\n var _self = this;\n\n var $data = _self.settings.data;\n _self.elements.infowindow = new google.maps.InfoWindow({ minWidth: 260, maxWidth: 400 });\n _self.settings.bounds = new google.maps.LatLngBounds();\n _self.settings.map = new google.maps.Map(_self.elements.$map[0], {\n zoom: 10,\n minZoom: 4,\n center: { lat: $data.Latitude, lng: $data.Longitude },\n /* styles: mapStyle, */\n scrollwheel: true,\n mapTypeControl: false,\n panControl: false,\n streetViewControl: false,\n zoomControl: true,\n contextmenu: true,\n disableDefaultUI: true,\n fullscreenControl: true\n });\n }\n };\n\n mapObj.init();\n },\n popUp: function() {\n var value = localStorage.getItem('popUp');\n if (value !== '1') {\n var $content = $('#popup-content');\n var $opts = $content.data('options');\n\n if ( !$content.length ) {\n return;\n }\n\n var options = $.extend({\n src: '#popup-content',\n type: 'inline'\n }, $opts);\n\n $.fancybox.open(options);\n }\n },\n popUpControl: function() {\n var acceptbtn = document.getElementById('onay');\n if (acceptbtn) {\n acceptbtn.onclick = function() {\n localStorage.setItem('popUp', '1');\n $.fancybox.close();\n };\n }\n },\n carouselControl: function () {\n $('[data-bs-toggle=\"tab\"]').on('shown.bs.tab', function (e) {\n $($(e.target).attr('href') + ' .slick-initialized').slick('slickGoTo', 0);\n $('.slick-initialized').slick('refresh');\n });\n }\n },\n\n INIT: function(options) {\n // APP init\n\n options = options || {};\n\n var fn;\n\n for (var i in this.init) {\n if ( Object.prototype.hasOwnProperty.call(this.init, i) && i.charAt(0) !== '_' && typeof(fn = this.init[i]) === 'function' ) {\n fn.call(this, options && options[i] || options);\n }\n }\n\n return this;\n }\n });\n\n})(window.APP = window.APP || {});\n\n$(function() {\n 'use strict';\n\n APP.browser = (function() {\n\n var is = APP.Helper.is,\n val, tmp,\n userAgent = APP.sanitizeXss(navigator.userAgent);\n\n var browser = {\n mobile: !!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile/i.test(userAgent),\n ios: !!/iPhone|iPad|iPod/i.test(userAgent),\n ie: (tmp = userAgent.toLowerCase().match(/MSIE ([^;]+)|rv:(11)\\.[0-9]+/i)) ? parseInt(tmp[1] || tmp[2], 10) : false,\n edge: (tmp = userAgent.indexOf('Edge/')) > 0 ? parseInt(userAgent.substring(tmp + 5, userAgent.indexOf('.', tmp)), 10) : false,\n bp: function() {\n return $(window).width() < APP.breakpoint;\n }\n };\n\n var $el = $('html'); // document.documentElement\n\n for (var k in browser ) {\n if ( Object.prototype.hasOwnProperty.call(browser, k) ) {\n val = browser[k];\n\n if ( val && !is.function(val) ) {\n $el.addClass(k);\n if ( !is.boolean(val) ) {\n $el.addClass(k + val);\n }\n }\n }\n }\n\n APP.browser = browser;\n\n return browser;\n }());\n\n APP.scriptPath = APP.Helper.getScriptPath(['app.js', 'app.min.js', 'main.js']);\n\n APP.Helper.loadScript(APP.scriptPath + 'config.js', {\n success: function() {\n APP.INIT(CONFIG);\n },\n failed: function() {\n APP.INIT();\n }\n });\n});\n","/*\n *\n * Application Breakpoints Plugin\n * 2017-11-03\n *\n * Copyright 2017 Medyasoft\n * Licensed under the MIT license\n *\n */\n!(function(root, factory) {\n 'use strict';\n\n if ( typeof define === 'function' && define.amd ) {\n // AMD. Register as an anonymous module.\n define(['app', 'jquery'], factory);\n } else if ( typeof exports === 'object' ) {\n // Node/CommonJS\n module.exports = factory(require('app'), require('jquery'));\n } else {\n // Browser globals\n root.APP = root.APP || {};\n factory(root.APP, root.jQuery);\n }\n}(this, function(APP, $) {\n 'use strict';\n\n var breakpoints = (function() {\n\n var MODULE = {};\n\n var DEFAULTS = {\n attachOnInit: true,\n bps: {\n md: 480,\n sm: 320,\n xs: 0\n }\n };\n\n var Helper = {\n isString: function(obj) {\n return $.type(obj) === 'string';\n },\n isElement: function(obj) {\n return !!$.type(obj).match(/^html([a-z]*)element$/);\n },\n isInteger: function(obj) {\n return Number(obj) === obj && obj % 1 === 0;\n },\n debounce: function(func, wait, immediate) {\n\n var timeout;\n\n return function() {\n\n var args = [],\n len = arguments.length;\n\n while ( len-- ) {\n args[ len ] = arguments[len];\n }\n\n\n var context = this;\n\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n\n timeout = null;\n\n if ( !immediate ) {\n func.apply(context, args);\n }\n }, wait);\n\n if ( immediate && !timeout ) {\n func.apply(context, args);\n }\n };\n }\n };\n\n var options = {},\n currentSize = null,\n currentPoint = null;\n\n var getSize = function() {\n\n return $(window).width();\n };\n\n var getPoint = function(point) {\n\n var bps = options.bps;\n\n var s = getSize(),\n c = '',\n v, b;\n\n\n for (var k in bps) {\n\n if ( Object.prototype.hasOwnProperty.call(bps, k) ) {\n\n v = bps[k];\n b = bps[c] || 0;\n\n if (v >= b && s >= v) {\n c = k;\n }\n }\n }\n\n return Helper.isString(point) && Helper.isNumeric(bps[point]) ? point === c : c;\n };\n\n var event = {\n resize: function(size, winDim) {\n\n $(MODULE).trigger({\n type: 'resize.viewport',\n payload: {\n size: size,\n winDim: winDim\n }\n });\n },\n change: function(size, point) {\n\n size = size || currentSize;\n point = point || currentPoint;\n\n $(MODULE).trigger({\n type: 'change.viewport',\n payload: {\n size: size,\n point: point\n }\n });\n }\n };\n\n var update = function(/* e */) {\n\n var newPoint = getPoint(),\n isChanged = currentPoint !== newPoint;\n\n currentPoint = newPoint;\n currentSize = getSize();\n\n isChanged && event.change(currentSize, currentPoint);\n event.resize(currentSize, {\n w: currentSize,\n h: $(window).height()\n });\n };\n\n var init = function(opts) {\n\n options = $.extend(true, DEFAULTS, opts);\n\n currentPoint = getPoint();\n currentSize = getSize();\n\n options.attachOnInit && $(window).on('resize', Helper.debounce(update, 50));\n };\n\n\n $.extend(MODULE, {\n DEFAULTS: DEFAULTS,\n init: init,\n getSize: getSize,\n getPoint: getPoint,\n update: update,\n getCurrentSize: function() {\n return currentSize;\n },\n getCurrentPoint: function() {\n return currentPoint;\n }\n });\n\n return MODULE;\n }());\n\n\n $.extend(true, APP, {\n breakpoints: breakpoints\n });\n\n return breakpoints;\n}));\n","/*\n *\n * jQuery Carousel Plugins\n * 2021-24-03\n *\n * Licensed under the MIT license\n *\n */\n!(function(root, factory) {\n 'use strict';\n\n if ( typeof define === 'function' && define.amd ) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if ( typeof exports === 'object' ) {\n // Node/CommonJS\n module.exports = factory(require('jquery'));\n } else {\n // Browser globals\n factory(root.jQuery);\n }\n}(this, function($) {\n 'use strict';\n\n APP.carousel = {\n defaults: {\n base: {\n arrows: false,\n lazyLoad: 'ondemand',\n fade: false\n },\n main: {\n autoplay: true,\n autoplaySpeed: 7000,\n slidesToShow: 1,\n slidesToScroll: 1,\n arrows: true,\n dots: true,\n responsive: [\n {\n breakpoint: APP.breakpoint,\n settings: {\n dots: true,\n arrows: false,\n autoplay: false\n }\n }\n ]\n },\n ournews: {\n slidesToShow: 1,\n slidesToScroll: 1,\n arrows: true,\n dots: true,\n responsive: [\n {\n breakpoint: 600,\n settings: {\n dots: true,\n arrows: false,\n autoplay: false\n }\n }\n ]\n },\n mainproducts: {\n slidesToShow: 5,\n slidesToScroll: 1,\n arrows: true,\n dots: true,\n responsive: [\n {\n breakpoint: APP.breakpoint,\n settings: {\n dots: true,\n arrows: false,\n autoplay: false\n }\n },\n {\n breakpoint: 700,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1\n }\n },\n {\n breakpoint: 1000,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 1\n }\n }\n ]\n }\n },\n getOptions: function($slick, $carousel) {\n\n var root = APP.carousel,\n appOptions = root.options;\n\n var typeData = APP.sanitizeXss($slick.data('slickType')),\n types = typeData ? typeData.split(',') : [],\n options = $.extend(true, {}, root.defaults.base),\n type;\n\n while ( types.length ) {\n\n type = types.shift();\n\n if ( root.defaults[type] ) {\n $.extend(true, options, root.defaults[type]);\n }\n }\n\n if ( appOptions && appOptions[type] ) {\n $.extend(true, options, appOptions[type]);\n }\n\n $.extend(true, options, {\n prevArrow: $carousel.find('.slick-prev'),\n nextArrow: $carousel.find('.slick-next')\n });\n\n if ( options.dots && $carousel.find('.dots').length > 0) {\n $.extend(options, {\n appendDots: $carousel.find('.dots')\n });\n }\n\n return options;\n },\n types: {\n linked: function($carousel) {\n\n var root = APP.carousel;\n\n var $slickFor = $carousel.find('[data-slick-role=for]').eq(0),\n $slickNav = $carousel.find('[data-slick-role=nav]').eq(0);\n\n $slickNav.on('click', function(e) {\n e.preventDefault();\n });\n\n var slickForOpts = root.getOptions($slickFor, $carousel),\n slickNavOpts = root.getOptions($slickNav, $carousel);\n\n $.extend(slickForOpts, {\n asNavFor: $slickNav,\n prevArrow: $carousel.find('.slick-prev'),\n nextArrow: $carousel.find('.slick-next')\n });\n\n $.extend(slickNavOpts, {\n asNavFor: $slickFor\n });\n\n $slickFor.slick(slickForOpts);\n $slickNav.slick(slickNavOpts);\n },\n indexed: function($carousel) {\n\n if ( APP.browser.bp() ) {\n return;\n }\n\n var root = APP.carousel,\n sliderCounter;\n\n var $slickFor = $carousel.find('[data-slick-role=for]').eq(0),\n $slickNav = $carousel.find('[data-slick-role=nav]').eq(0);\n\n var slickForOpts = root.getOptions($slickFor, $carousel),\n slickNavOpts = root.getOptions($slickNav, $carousel);\n\n var groupIndex,\n slickNavObj,\n slickForObj,\n lastVals = {\n nav: {\n slideIndex: 0,\n change: false\n },\n for: {\n slideIndex: 0,\n change: false\n }\n };\n\n $.extend(slickNavOpts, {\n prevArrow: $slickNav.parent().find('.slick-prev'),\n nextArrow: $slickNav.parent().find('.slick-next')\n });\n\n $.extend(slickForOpts, {\n prevArrow: $slickFor.parent().find('.slick-prev'),\n nextArrow: $slickFor.parent().find('.slick-next')\n });\n\n function getGroup() {\n\n var slick = $slickFor.slick('getSlick'),\n slides = slick.$slides,\n group = [],\n groupIndex = [],\n groupIndexWithEl = [];\n\n slides.each(function(i, el) {\n\n var $el = $(el),\n index = APP.sanitizeXss($el.data('groupIndex')) || APP.sanitizeXss($el.find('[data-group-index]').data('groupIndex').toString());\n\n index = parseInt(index, 10);\n\n if ( group.indexOf(index) < 0 ) {\n group.push(index);\n groupIndex.push(i);\n }\n\n groupIndexWithEl.push([i, index]);\n });\n\n return [group, groupIndex, groupIndexWithEl];\n }\n\n function beforeChange(event, slick, currentSlide, nextSlide) { // Alt\n\n if ( !lastVals.nav.change ) {\n\n var gotoIndex = groupIndex[2][nextSlide][1];\n\n lastVals.for.change = true;\n\n if (slickNavOpts.rows && slickNavOpts.rows > 1) {\n var oneSlideCount = slickNavOpts.rows * slickNavOpts.slidesPerRow;\n\n var slideIndex = parseInt(groupIndex[2][nextSlide][1] / oneSlideCount, 10);\n\n gotoIndex = slideIndex;\n slickNavObj.$slider.find('[data-group-index]').removeClass('active').eq(groupIndex[2][nextSlide][1]).addClass('active');\n }\n\n slickNavObj.slickGoTo(gotoIndex);\n lastVals.nav.slideIndex = gotoIndex;\n\n lastVals.nav.change = false;\n } else {\n lastVals.nav.change = false;\n }\n }\n\n function beforeChangeNav(event, slick, currentSlide, nextSlide) { // Üst\n\n if ( !lastVals.for.change ) {\n lastVals.nav.change = true;\n slickForObj.slickGoTo(groupIndex[1][nextSlide]);\n }\n\n lastVals.for.change = false;\n }\n\n function updateSliderCounter(slick) {\n $(sliderCounter).text((slick.slickCurrentSlide() + 1) + ' / ' + slick.slideCount);\n }\n\n if (slickNavOpts.centerMode && $slickNav.children().length < slickNavOpts.slidesToShow) {\n slickNavOpts.centerMode = false;\n slickNavOpts.init = function() {\n slickNavObj.$slides.on('click', function() {\n var index = APP.sanitizeXss($(this).data('slickIndex'));\n\n lastVals.for.change = false;\n beforeChangeNav(null, slickNavObj, -1, index);\n });\n };\n }\n\n if (slickNavOpts.counter) {\n $carousel.append($('
'));\n sliderCounter = $carousel.find('.slick-counter');\n\n $slickFor.on('init', function(event, slick) {\n updateSliderCounter(slick);\n });\n\n $slickFor.on('afterChange', function(event, slick, currentSlide) {\n updateSliderCounter(slick, currentSlide);\n });\n }\n\n $slickNav.slick(slickNavOpts);\n $slickFor.slick(slickForOpts);\n\n $slickFor.on('beforeChange', beforeChange);\n\n if (!(slickNavOpts.rows && slickNavOpts.rows > 0)) {\n $slickNav.on('beforeChange', beforeChangeNav);\n }\n\n slickNavObj = $slickNav.slick('getSlick');\n slickForObj = $slickFor.slick('getSlick');\n groupIndex = getGroup();\n\n slickNavObj.$slider.find('[data-group-index]').on('click', function() {\n\n var index = APP.sanitizeXss($(this).data('groupIndex'));\n\n slickForObj.slickGoTo(index);\n });\n\n if (slickNavOpts.rows && slickNavOpts.rows > 1) {\n slickNavObj.$slider.find('[data-group-index]').eq(0).trigger('click');\n }\n }\n },\n init: function() {\n\n var root = APP.carousel;\n\n var $carousel = $(this),\n carouselType = APP.sanitizeXss($carousel.data('carouselType'));\n\n if ( $.isFunction(root.types[carouselType]) ) {\n root.types[carouselType]($carousel);\n return;\n }\n\n var $slick = $carousel.find('[data-slick]').eq(0),\n options = root.getOptions($slick, $carousel);\n\n $carousel.addClass( 'slider-' + $slick.data('slickType').split(',')[0] );\n\n if (APP.sanitizeXss($slick.data('initbreakpoint'))) {\n if (APP.browser.bp()) { // Mobile\n $slick.slick(options);\n }\n } else {\n $slick.slick(options);\n }\n }\n };\n\n APP.init.carousel = function(opts) {\n\n var root = APP.carousel;\n\n root.options = $.extend({}, opts);\n\n $('.carousel').on('click', '.slick-prev, .slick-next', function(e) {\n e.preventDefault();\n }).each(root.init);\n };\n}));\n","if ($(window).width() < 768) {\n $('.carousel-date').slick({\n infinite: true,\n slidesToShow: 6,\n slidesToScroll: 3,\n arrows: false,\n dots: false,\n responsive: [\n {\n breakpoint: 768,\n settings: {\n slidesToShow: 2.85,\n slidesToScroll: 3\n }\n }\n ]\n });\n}\n\n","/*\n *\n * jQuery Form Plugins\n * 2015-11-09\n *\n * Copyright 2015 Bogac Bokeer\n * Licensed under the MIT license\n *\n */\n!(function(root, factory) {\n 'use strict';\n\n if ( typeof define === 'function' && define.amd ) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if ( typeof exports === 'object' ) {\n // Node/CommonJS\n module.exports = factory(require('jquery'));\n } else {\n // Browser globals\n factory(root.jQuery);\n }\n}(this, function($) {\n 'use strict';\n\n $.extend($.fn, {\n radiobox: function(opts) {\n\n var PLUGIN_NAME = 'radiobox';\n\n var options = $.extend({\n activeClass: 'active',\n disabledClass: 'disabled'\n }, opts);\n\n var updateTrigger = function($item) {\n\n if ( !$item ) {\n return;\n }\n\n var $label = $item.closest('label');\n\n $label.toggleClass(options.disabledClass, $item.prop('disabled') || $item.is(':disabled'));\n $label.toggleClass(options.activeClass, $item.prop('checked') || $item.is(':checked'));\n };\n\n function onChange($item/* , e */) {\n\n if ( !$item.data(PLUGIN_NAME) ) {\n return;\n }\n\n if ( $item.is('[name]') ) {\n\n var $itemGroup = $('input[type=radio][name=\"' + $item.attr('name') + '\"]');\n\n $itemGroup.filter(function() {\n return !!$(this).data(PLUGIN_NAME);\n }).each(function() {\n updateTrigger($(this));\n });\n } else {\n updateTrigger($item);\n }\n }\n\n var $container = this,\n selector = 'input[type=radio]';\n\n $container.on('change', selector, function(e) {\n\n return onChange($(this), e);\n\n }).on('update.radiobox', selector, function(/* e */) {\n\n updateTrigger($(this));\n\n }).find(selector).data(PLUGIN_NAME, true).trigger('update.radiobox');\n\n\n return this;\n },\n checkbox: function(opts) {\n\n var PLUGIN_NAME = 'checkbox';\n\n var options = $.extend({\n activeClass: 'active',\n disabledClass: 'disabled'\n }, opts);\n\n\n var updateTrigger = function($item) {\n\n if ( !$item ) {\n return;\n }\n\n var $label = $item.closest('label');\n\n $label.toggleClass(options.disabledClass, $item.prop('disabled') || $item.is(':disabled'));\n $label.toggleClass(options.activeClass, $item.prop('checked') || $item.is(':checked'));\n };\n\n function onChange($item/* , e */) {\n\n if ( !$item.data(PLUGIN_NAME) ) {\n return true;\n }\n\n updateTrigger($item);\n\n return true;\n }\n\n\n var $container = this,\n selector = 'input[type=checkbox]';\n\n $container.on('change', selector, function(e) {\n\n return onChange($(this), e);\n\n }).on('update.checkbox', selector, function(/* , e */) {\n\n updateTrigger($(this));\n }).find(selector).data(PLUGIN_NAME, true).trigger('update.checkbox');\n\n\n return this;\n }\n });\n\n APP.init.forms = function(/* opts */) {\n\n var $container = $('body');\n\n $container.radiobox();\n $container.checkbox();\n };\n}));\n","/*\n * Get Paged Data Plugin\n *\n * HandleBars required!\n */\n/* eslint-disable */\n!(function (root, factory) {\n 'use strict';\n\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['app', 'jquery'], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS\n module.exports = factory(require('app'), require('jquery'));\n } else {\n // Browser globals\n\n root.APP = root.APP || {};\n root.APP.init = root.APP.init || {};\n\n factory(root.APP, root.jQuery);\n }\n}(this, function (APP, $) {\n 'use strict';\n\n APP.init.getPagedData = function (opts) {\n var options = $.extend({}, opts);\n\n function showMore(target, template, settings) {\n\n var isExtend = false;\n var currentPageIndex = 2;\n var container = $(target);\n var showMoreBtn = $('[data-target=\"' + APP.sanitizeXss(target.data('showmore')) + '\"]');\n var showMoreBtnInnerHtml = showMoreBtn.html();\n\n var tmpl = $(template).html();\n var compiled = Handlebars.compile(tmpl); // eslint-disable-line\n\n function setItem(data) {\n if (!data.result) {\n container.append('
' + data.errorMessage + '
');\n showMoreBtn.addClass('d-none');\n return;\n }\n\n currentPageIndex++;\n\n for (var i = 0; i < data.items.length; i++) {\n var compiledHtml = compiled(data.items[i]);\n\n compiledHtml = compiledHtml.replace('class=\"', 'class=\"fadeInDown ');\n container.append(compiledHtml);\n }\n\n if (isExtend === false && currentPageIndex > 1) {\n isExtend = true;\n showMoreBtn.removeClass('d-none');\n }\n\n // no data fix\n\n if (!APP.Helper.is.undefined(data.nextData)) {\n showMoreBtn[data.nextData !== true ? 'addClass' : 'removeClass']('d-none');\n }\n }\n\n function sendViaAjax() {\n var dt = { page: currentPageIndex },\n form = $(settings.toForm || APP.sanitizeXss(showMoreBtn.data('form')));\n\n showMoreBtn.prop('disabled', true).html(options.btnLoadingText);\n\n var formData = APP.Helper.getFormData(form);\n\n if (formData.page) {\n dt.page = formData.page;\n currentPageIndex = formData.page;\n }\n\n return APP.Helper.sendRequest(form, settings, dt).done(function (data) {\n setItem(data);\n\n showMoreBtn.prop('disabled', false).html(showMoreBtnInnerHtml);\n\n APP.init.popups(CONFIG.popups);\n }).catch(function () {\n // TODO: LOG HERE\n });\n }\n\n showMoreBtn.click(function (e) {\n e.preventDefault();\n sendViaAjax();\n });\n }\n\n $('[data-showmore]').each(function (i, e) {\n var $this = $(e);\n var $data = $this.data();\n var type = APP.sanitizeXss($data.showmore),\n opts = options[type] || {},\n template = APP.sanitizeXss($data.template);\n\n var data = APP.sanitizeXss($data.url || '').split('|');\n \n opts.url = !opts.url ? data[0] : opts.url;\n opts.method = !opts.method ? data[1] || 'GET' : opts.method;\n\n showMore($this, template, opts);\n });\n }\n\n}));\n","/*\n *\n * Application Helper.is Functions\n * 2017-01-20\n *\n * Copyright 2017 Medyasoft\n * Licensed under the MIT license\n *\n */\n!(function(root, factory) {\n 'use strict';\n\n if ( typeof define === 'function' && define.amd ) {\n // AMD. Register as an anonymous module.\n define(['app', 'jquery'], factory);\n } else if ( typeof exports === 'object' ) {\n // Node/CommonJS\n module.exports = factory(require('app'), require('jquery'));\n } else {\n // Browser globals\n root.APP = root.APP || {};\n factory(root.APP, root.jQuery);\n }\n}(this, function(APP, $) {\n 'use strict';\n\n var is = {\n string: function(obj) {\n return Object.prototype.toString.call(obj) === '[object String]';\n },\n number: function(obj) {\n return Object.prototype.toString.call(obj) === '[object Number]';\n },\n integer: function(obj) {\n return parseFloat(obj) === parseInt(obj, 10) && !isNaN(obj);\n },\n boolean: function(obj) {\n return typeof obj === 'boolean' && obj.constructor === Boolean;\n },\n float: function(value) {\n return value === +value && value !== (value | 0);\n },\n array: $.isArray,\n function: $.isFunction,\n plainObject: $.isPlainObject,\n object: function(obj) {\n return obj && obj.constructor && obj instanceof Object;\n },\n objectLike: function(value) {\n return typeof value === 'object' && value !== null;\n },\n arguments: function(obj) {\n return !!(obj && Object.prototype.hasOwnProperty.call(obj, 'callee'));\n },\n regexp: function(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n },\n element: function(obj) {\n\n var result;\n\n try {\n result = obj instanceof HTMLElement;\n } catch (e) {\n result = typeof obj === 'object' && obj.nodeType === 1 && typeof obj.style === 'object' && typeof obj.ownerDocument === 'object';\n }\n\n return result;\n },\n date: function(obj) {\n return Object.prototype.toString.call(obj) === '[object Date]';\n },\n 'undefined': function(obj) { // eslint-disable-line quote-props\n return typeof obj === 'undefined';\n },\n empty: function(obj) {\n\n if ( obj === null ) {\n return true;\n }\n\n if ( this.is.array(obj) || this.is.string(obj)) {\n return obj.length === 0;\n }\n\n for (var key in obj) {\n if ( Object.prototype.hasOwnProperty.call(obj, key) ) {\n return false;\n }\n }\n\n return true;\n },\n exists: function(what, ns, typed) {\n\n if ( !what || typeof what !== 'string' ) {\n return null;\n }\n\n ns = ns || window;\n typed = typed || null;\n what = what.split('.');\n\n var isExists = false,\n subns;\n\n while ( what.length > 1 && typeof ns === 'object' ) {\n subns = what.shift();\n ns = ns[subns];\n }\n\n if ( typeof ns === 'object' ) {\n what = what.shift();\n what = ns[what];\n isExists = typed ? typeof what === typed : typeof what !== 'undefined';\n }\n\n this.exists.lastValue = isExists ? what : null;\n\n return isExists;\n }\n };\n\n APP.Helper = APP.Helper || {};\n\n $.extend(true, APP.Helper, {\n is: is\n });\n\n return is;\n}));\n","/*\n *\n * Application Helper Functions\n * 2017-01-20\n *\n * Copyright 2017 Bogac Bokeer\n * Licensed under the MIT license\n *\n */\n!(function(root, factory) {\n 'use strict';\n\n if ( typeof define === 'function' && define.amd ) {\n // AMD. Register as an anonymous module.\n define(['app', 'jquery'], factory);\n } else if ( typeof exports === 'object' ) {\n // Node/CommonJS\n module.exports = factory(require('app'), require('jquery'));\n } else {\n // Browser globals\n root.APP = root.APP || {};\n factory(root.APP, root.jQuery);\n }\n}(this, function(APP, $) {\n 'use strict';\n\n var antiForgeryToken = $('input[name=\"__RequestVerificationToken\"]');\n\n var Helper = {\n getScriptPath: function(scriptName) {\n\n if ( typeof scriptName === 'string' ) {\n scriptName = [scriptName];\n }\n\n var scripts = document.getElementsByTagName('script'),\n script, src, pos;\n\n for (var idx = 0, l = scripts.length; idx < l; idx++) {\n\n script = scripts[idx];\n\n if ( src = script.getAttribute('src') ) { // eslint-disable-line no-cond-assign\n pos = src.lastIndexOf('/');\n var n = src.substring(pos + 1).split('?')[0];\n\n if ( scriptName.indexOf(n) > -1 ) {\n return src.replace(/\\/js(.*)/, '/js') + '/';\n }\n }\n }\n\n return '';\n },\n loadStylesheet: function(url, id) {\n\n if ( !url ) {\n return;\n }\n\n id = id || 'theme-styles';\n\n var s = document.createElement('link');\n\n s.id = id;\n s.rel = 'stylesheet';\n s.type = 'text/css';\n s.media = 'all';\n s.href = url;\n\n document.getElementsByTagName('head')[0].appendChild(s);\n },\n loadScript: function(url, cb) {\n\n var js = document.createElement('script');\n\n js.type = 'text/javascript';\n // js.async = true;\n\n js.addEventListener('load', cb.success);\n js.addEventListener('error', cb.failed);\n\n js.src = url;\n\n document.body.appendChild(js);\n\n return js;\n },\n throttle: function(fn, threshhold, scope) {\n\n threshhold || (threshhold = 250);\n\n var last,\n deferTimer;\n\n return function() {\n\n var context = scope || this;\n\n var now = +new Date(),\n args = arguments;\n\n if ( last && now < last + threshhold ) {\n // hold on to it\n clearTimeout(deferTimer);\n deferTimer = setTimeout(function() {\n last = now;\n fn.apply(context, args);\n }, threshhold);\n } else {\n last = now;\n fn.apply(context, args);\n }\n };\n },\n debounce: function(func, wait, immediate) {\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n\n var timeout;\n\n return function() {\n\n var context = this,\n args = arguments;\n var later = function() {\n timeout = null;\n if ( !immediate ) {\n func.apply(context, args);\n }\n };\n var callNow = immediate && !timeout;\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n },\n curry: function(fn) {\n\n var slice = Array.prototype.slice,\n storedArgs = slice.call(arguments, 1);\n\n return function() {\n\n var newArgs = slice.call(arguments),\n args = storedArgs.concat(newArgs);\n\n return fn.apply(null, args);\n };\n },\n tmpl: function(tmpl, obj) {\n\n var result = tmpl,\n re;\n\n for (var k in obj ) {\n if ( Object.prototype.hasOwnProperty.call(obj, k) ) {\n re = new RegExp('{{(' + k + ')}}', 'g');\n result = result.replace(re, obj[k]);\n re = null;\n }\n }\n\n return result;\n },\n formatDate: function(d, f) {\n\n var is = this.is;\n\n if ( !is.date(d) ) {\n throw new Error('The first parametre must be a date');\n }\n\n f = f || 'dd.mm.yyyy';\n\n if ( !is.string(f) ) {\n throw new Error('The format parametre must be a string');\n }\n\n var currDate = d.getDate(),\n currMonth = d.getMonth() + 1,\n currYear = d.getFullYear();\n\n var currDate2 = currDate.toString().length < 2 ? '0' + currDate : currDate,\n currMonth2 = currMonth.toString().length < 2 ? '0' + currMonth : currMonth;\n\n return f.replace('yyyy', currYear)\n .replace('dd', currDate2)\n // .replace(\"mmmm\", Names.get(\"months\")[currMonth])\n .replace('mm', currMonth2)\n .replace('d', currDate)\n .replace('m', currMonth);\n },\n getSlug: function (url) {\n\n url = url || APP.sanitizeXss(window.location.pathname);\n\n return url.split('/').reverse()[0];\n },\n getFormData: function (form, extraData) {\n var data = {};\n\n if (form) {\n if (form.attr('enctype') === 'multipart/form-data') {\n var formData = new FormData(form[0]);\n\n Object.keys(extraData || {}).forEach(function(key) {\n formData.append(key, extraData[key]);\n });\n return formData;\n }\n data = form.serializeArray().reduce(function (acc, v) {\n acc[v.name] = v.value;\n return acc;\n }, {});\n }\n return $.extend(data, extraData);\n },\n sendRequest: function (form, service, extraData, reqOpts) {\n var data = $.extend({\n langId: UNIGATE.current.langId || '',\n language: UNIGATE.current.language || '',\n slug: APP.Helper.getSlug()\n }, extraData);\n\n if (antiForgeryToken.length) {\n data.__RequestVerificationToken = APP.sanitizeXss(antiForgeryToken.val()); // eslint-disable-line\n }\n\n var formData = APP.Helper.getFormData(form, data);\n\n return $.ajax($.extend({\n method: service.method,\n url: APP.sanitizeXss(service.url),\n dataType: 'JSON',\n cache: false,\n data: formData\n }, reqOpts));\n }\n };\n\n var typeofs = ['number', 'boolean', 'object'],\n sanitizeXssReg = new RegExp(/(\\b)(on\\S+)(\\s*)=|javascript|(<\\s*)(\\/*)script/ig);\n\n $.extend(true, APP, {\n Helper: Helper,\n sanitizeXss: function(val) {\n\n if (val) {\n\n if (typeofs.indexOf(typeof val) === -1) {\n\n val = val.replace(sanitizeXssReg, '');\n return val;\n } else if (typeof val !== 'function') {\n\n return val;\n }\n return '';\n }\n return val;\n }\n });\n\n return Helper;\n}));\n","/*\n * Native validation Plugin\n *\n * Fancybox required!\n */\n/* eslint-disable */\n!(function (root, factory) {\n 'use strict';\n\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['app', 'jquery'], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS\n module.exports = factory(require('app'), require('jquery'));\n } else {\n // Browser globals\n\n root.APP = root.APP || {};\n root.APP.init = root.APP.init || {};\n\n factory(root.APP, root.jQuery);\n }\n}(this, function (APP, $) {\n 'use strict';\n\n APP.init.nativeValidation = function (opts) {\n var forms = document.getElementsByClassName('needs-validation');\n var validateClassName = 'was-validated';\n\n function checkValidate(form, event) {\n var result = form.checkValidity();\n\n if (result === false) {\n event.preventDefault();\n event.stopPropagation();\n form.classList.remove(validateClassName);\n }\n form.classList.add(validateClassName);\n return result;\n }\n\n Array.prototype.filter.call(forms, function (form) {\n\n var $form = $(form);\n var reCaptcha = $form.find('.g-recaptcha');\n var template = $form.data('template');\n var tmpl,\n compiled,\n contentTextPlaceholder;\n var steps = $form.find('fieldset.step'),\n stepIndex = 0,\n hasAjax = $form.hasClass('send-ajax');\n\n if (template) {\n tmpl = $(template).html();\n compiled = Handlebars.compile(tmpl); // eslint-disable-line\n contentTextPlaceholder = $($(template).data('to'));\n }\n\n function goToStep(val) {\n $form.removeClass(validateClassName);\n if (val !== -1) {\n steps.eq(stepIndex + val).removeClass('d-none').removeAttr('disabled');\n steps.eq(stepIndex).addClass('d-none');\n } else {\n steps.eq(stepIndex + val).removeClass('d-none');\n steps.eq(stepIndex).addClass('d-none').attr('disabled', 'disabled');\n }\n \n if (val === 0) {\n steps.addClass('d-none').attr('disabled', 'disabled');\n } else {\n stepIndex += val;\n }\n\n document.documentElement.scrollTop = steps.eq(stepIndex).offset().top;\n }\n\n form.addEventListener('submit', function (event) {\n var result = checkValidate(form, event),\n hasNextStep = false;\n\n if ($form.hasClass('form-wizard')) {\n var step = steps.filter(':not(.d-none)'),\n index = step.index();\n\n if (hasNextStep = index < (steps.length - 1)) { // eslint-disable-line\n hasNextStep = true;\n if (result) {\n event.preventDefault();\n event.stopPropagation();\n goToStep(1);\n }\n }\n }\n\n if (reCaptcha.length > 0) {\n try {\n event.preventDefault();\n event.stopPropagation();\n var reCaptchaResult = grecaptcha.getResponse(reCaptcha[0].grecaptcha) !== \"\";\n if (result) {\n result = reCaptchaResult;\n }\n \n reCaptcha.toggleClass('is-invalid', !reCaptchaResult);\n } catch (eroor) { }\n }\n\n if (result && !hasNextStep && hasAjax) {\n event.preventDefault();\n event.stopPropagation();\n\n $form.find('[type=submit]:last').prop('disabled', true);\n $form.find('.loading').addClass('show');\n APP.Helper.sendRequest($form, {\n url: APP.sanitizeXss(form.action),\n method: form.method\n },\n {},\n {\n processData: false,\n contentType: false\n }).done(function (e) {\n if (e.Result) {\n $form.removeClass(validateClassName);\n form.reset();\n while (stepIndex > 0) {\n goToStep(-1);\n }\n\n if (template) {\n contentTextPlaceholder.append(compiled(e.Data));\n var modal = APP.sanitizeXss($form.data('target'));\n $(modal).removeClass('d-none');\n\n goToStep(0);\n } else {\n var modal = APP.sanitizeXss($form.data('target'));\n var options = {\n src: modal,\n type: 'inline'\n };\n \n $.fancybox.open(options);\n }\n } else {\n $.fancybox.open('
' + APP.sanitizeXss(e.ErrorMessage) + '
');\n }\n\n $form.find('.loading').removeClass('show');\n $form.find('[type=submit]:last').prop('disabled', false);\n }).fail(function() {\n $form.find('.loading').removeClass('show');\n $form.find('[type=submit]:last').prop('disabled', false);\n });\n }\n\n }, false);\n\n $form.find('[data-prev=\"true\"]').on('click', function () {\n goToStep(-1);\n });\n });\n }\n\n}));\n","/*\n *\n * Application Popup Plugin\n * using fancybox\n *\n */\n!(function(root, factory) {\n 'use strict';\n\n if ( typeof define === 'function' && define.amd ) {\n // AMD. Register as an anonymous module.\n define(['app', 'jquery'], factory);\n } else if ( typeof exports === 'object' ) {\n // Node/CommonJS\n module.exports = factory(require('app'), require('jquery'));\n } else {\n // Browser globals\n root.APP = root.APP || {};\n root.APP.init = root.APP.init || {};\n factory(root.APP, root.jQuery);\n }\n}(this, function(APP, $) {\n 'use strict';\n\n var _defaults = {\n base: {\n padding: 0,\n openEffect: 'ease',\n closeEffect: 'ease',\n smallBtn: true,\n toolbar: false,\n helpers: {\n media: {}\n }\n },\n gallery: {\n nextEffect: 'fade',\n prevEffect: 'fade',\n closeClick: true,\n openSpeed: 150,\n closeSpeed: 150,\n helpers: {\n title: null\n }\n },\n galleryMedia: {\n rel: 'gallery'\n },\n pageLoad: {\n autoSize: false,\n height: 'auto',\n openEffect: 'none',\n closeEffect: 'none',\n width: '70%',\n maxWidth: '100%',\n padding: 20,\n wrapCSS: 'popup-noscroll',\n helpers: {\n title: null\n }\n }\n };\n\n function getOptions(section, extras) {\n\n section = section || '';\n\n return $.extend({}, _defaults.base, _defaults[section] || {}, extras);\n }\n\n\n var _$ = {\n popup: function(opts) {\n\n var options = getOptions('base', $.extend({}, _defaults.base, opts.base));\n\n if (localStorage.getItem('popup') === '1') {\n return;\n }\n\n $('.fancy-box').fancybox(options);\n\n $('.fancy-close-button').on('click', function() {\n $.fancybox.close();\n });\n },\n galleryMedia: function() {\n\n var options = $.extend({}, _defaults.base, getOptions('galleryMedia'), { selector: '.gallery-box' });\n\n $().fancybox(options);\n },\n gallery: function(opts) {\n\n var options = $.extend({}, {\n cache: false,\n url: null,\n type: 'POST',\n dataType: 'json'\n }, opts);\n\n $('.popup-gallery').on('click', function(e) {\n\n e.preventDefault();\n\n var rel = $(this).attr('rel');\n\n if ( rel ) {\n $.ajax($.extend({}, options, {\n data: {\n gallery: rel\n }\n })).then(function(data) {\n $.fancybox.open(data, getOptions('gallery'));\n }).fail(function(/* err */) {\n // console.log(err);\n });\n }\n });\n },\n pageLoad: function(opts) {\n\n var $content = $('#popup-content');\n var $opts = $content.data('options');\n\n if ( !$content.length ) {\n return;\n }\n\n var options = $.extend(getOptions('pageLoad'), opts, {\n src: '#popup-content',\n type: 'inline'\n }, $opts);\n\n $.fancybox.open(options);\n }\n };\n\n APP.init.popups = function(opts) {\n\n $.extend($.fancybox.defaults, opts.base);\n opts = $.extend({}, _defaults, opts);\n\n _$.popup(opts);\n _$.galleryMedia(opts.galleryMedia);\n _$.gallery(opts.gallery);\n // _$.pageLoad(opts.pageLoad);\n };\n}));\n"]}