$(function () { // SideNav Initialization //$('.button-collapse').sideNav(); // Geolocation //getLocation(); /* $('body').scrollspy({ target: '.nav-categories', offset: 50 }); */ /* //OK SI ACTIVAR $('.nav-categories').sticky({ topSpacing: 0, zIndex: 10, stopper: "#YourStopperId" }); */ /* $('.col-info .col-inner').sticky({ topSpacing: 80, zIndex: 10, stopper: '.full-width-wrapper' }); */ /* $('.items-site').sticky({ topSpacing: 80, zIndex: 10, stopper: '.full-width-wrapper' }); */ /* //OK SI ACTIVAR $('.sticky').sticky({ topSpacing: 80, zIndex: 10, stopper: '.full-width-wrapper' }); */ // Tooltips Initialization // $('[data-toggle="tooltip"]').tooltip(); //return; //loadNavbarExplorer(); setLazyJS(); setItemsBehavior(''); setItemSlides(); setTooltip(); a11y_tools(); setShopCartBehaviour(); setRefreshPage(); setSignupControls(); $('.nav-categories .nav-title').on('click', function () { window.scrollTo(0, 0); }); setGalleryEvents(); initResponsiveDivs(); //BN POPUP $('#popup-bn .close').off(); $('#popup-bn .close').on('click', function (e) { e.preventDefault(); //$(this).parent().remove(); $('#popup-bn').remove(); }); setShareLinks(); //setAdSpaces(); function socialWindow(url) { var left = (screen.width - 570) / 2; var top = (screen.height - 570) / 2; var params = 'menubar=no,toolbar=no,status=no,width=570,height=570,top=' + top + ',left=' + left; // Setting 'params' to an empty string will launch // content in a new tab or window rather than a pop-up. // params = ""; window.open(url, 'NewSocialWindow', params); } function setShareLinks() { var pageUrl = encodeURIComponent(document.URL); var title = encodeURIComponent($('meta[property="og:title"]').attr('content')); var image = encodeURIComponent($('meta[property="og:image"]').attr('content')); var description = encodeURIComponent($('meta[property="og:description"]').attr('content')); var baseDiv = '#item-sharer '; $(baseDiv + '.facebook').on('click', function () { url = 'https://www.facebook.com/sharer.php?u=' + pageUrl; socialWindow(url); }); $(baseDiv + '.twitter').on('click', function () { url = 'https://twitter.com/intent/tweet?url=' + pageUrl + '&text=' + title; socialWindow(url); }); $(baseDiv + '.whatsapp').on('click', function () { //url = 'https://api.whatsapp.com/send?text=' + pageUrl + '&text=' + tweet; url = 'https://api.whatsapp.com/send?text=' + title + ' ' + pageUrl; socialWindow(url); }); $(baseDiv + '.pinterest').on('click', function () { url = 'https://pinterest.com/pin/create/bookmarklet/?media=' + image + '&url=' + pageUrl + '&url=' + title + '&description=' + description; socialWindow(url); }); $(baseDiv + '.linkedin').on('click', function () { url = 'https://www.linkedin.com/shareArticle?mini=true&ro=true&trk=GoRaymi&title=' + title + '&url=' + pageUrl; socialWindow(url); }); $(baseDiv + '.email').on('click', function () { url = 'mailto:?Subject=' + title + '&Body=' + pageUrl; socialWindow(url); }); $(baseDiv + '.dropdown').hover(function () { $(this).find('.dropdown-menu').stop(true, true).delay(100).fadeIn(100); }, function () { $(this).find('.dropdown-menu').stop(true, true).delay(100).fadeOut(100); }); } /* OLD JS LIB */ //header-search /* // nav bar $('body').scrollspy({target: '#navbar-example'}); $('body').scrollspy({ target: '.dotted-scrollspy' }); */ // Sidebar toggle behavior $('#sidebarCollapse').on('click', function () { $('#sidebar, #content').toggleClass('active'); $('footer, .footer-logos').toggleClass('active'); }); $('#overlay').on('click', function () { $('#sidebar, #content').toggleClass('active'); $('footer, .footer-logos').toggleClass('active'); }); $('#helperbarCollapse').on('click', function () { $('#helperbar, #content').toggleClass('active'); $('footer, .footer-logos').toggleClass('active'); }); }); function setTooltip() { $('[data-toggle="tooltip"]').tooltip(); } function setRefreshPage() { //timer = setTimeout('refreshPage()', 10000); //timer = setTimeout('refreshPage()', 10000); //setTimeout('refreshPage()', 10000); } function setGalleryEvents() { let item_gallery = $('.item-gallery'); item_gallery.slick({ lazyLoad: 'ondemand', infinite: false, slidesToShow: 1, slidesToScroll: 1, arrows: true, fade: true, dots: true, autoplay: true, autoplaySpeed: 12000, }); item_gallery.on('click', function () { item_gallery.slick('slickPause'); }); item_gallery.find('.media.video').each(function (index) { let media = $(this); media.on('click', function (e) { let node = $(this); let src = node.data('src'); let video = $(''); node.removeClass('init'); video.attr('src', src); node.find('.embed-responsive').html(video); }); //node.removeClass('st-0').removeClass('st-1').addClass('st-' + node.find('option:selected').val()); }); } function initResponsiveDivs() { setResponsiveDivs(); $(window).resize(function () { setResponsiveDivs() }); } function setResponsiveDivs() { let width = $(window).width(); let width_993 = (width < 993); let width_769 = (width < 769); //setResponsiveGallery(width_993); setResponsiveHelperNav(width_769); } function setResponsiveGallery(mobile) { let gallery_wrapper = $('.gallery-wrapper'); let item_stats = $('#item-stats'); let item_sharer = $('#item-sharer'); if (gallery_wrapper.length) { if (mobile) { if (item_stats.length) { item_stats.after(gallery_wrapper); gallery_wrapper.data('moved', 1); } } else { if (gallery_wrapper.data('moved') == 1) { if (item_sharer.length) { item_sharer.after(gallery_wrapper); } } } } } function setResponsiveHelperNav(mobile) { let nav_language = $('.nav-language'); let nav_user = $('#navbarUserWrapper'); let helper = $('#helperbar > .inner'); if (mobile) { if (helper.length) { helper.after(nav_language); helper.after(nav_user); helper.data('moved', 1); } } else { if (helper.data('moved') == 1) { /* if (item_sharer.length) { item_sharer.after(gallery_wrapper); } */ } } } function setResponsiveGallery_OLD(mobile) { let gallery_wrapper = $('.gallery-wrapper'); if (mobile) { if (gallery_wrapper.length) { let item_description = $('.item-description'); if (item_description.length) { let body_site = $('body.site'); if (body_site.length) { let item_wrap = $('.item-wrap'); if (item_wrap.length) { item_wrap.after(gallery_wrapper); } } else { item_description.before(gallery_wrapper); } } } } else { } } //var timer = null; function refreshPage() { //window.location = 'http://domain.com/page.php'; window.location = window.location.href; } function setItemSlides() { var header_slides_wrapper = $('.item-slides-wrapper'); //return; if (header_slides_wrapper.length) { var item_slides_header = $('#item-slides-header'); if (header_slides_wrapper.length) { item_slides_header.append(header_slides_wrapper); item_slides_header.fadeIn(); } var body_slides = $('body'); //body_slides.addClass('has-slides'); var nav_main = $('body.has-slides .nav-main .wrapper'); var nav_main_h_init = nav_main.height(); var temp_h = 0; var scroll_top = 0; $(window).scroll(function () { scroll_top = $(window).scrollTop(); temp_h = nav_main_h_init - scroll_top; if (scroll_top > 0) { if (temp_h > 84) { nav_main.height(temp_h); item_slides_header.height(temp_h); body_slides.addClass('scrolling'); body_slides.removeClass('scrolled'); } else { body_slides.addClass('scrolled'); body_slides.removeClass('scrolling'); } body_slides.removeClass('scroll-init'); } else { body_slides.removeClass('scrolled'); body_slides.removeClass('scrolling'); body_slides.addClass('scroll-init'); nav_main.height(nav_main_h_init); item_slides_header.height(nav_main_h_init); } }); var item_slides = $('.item-slides'); //HEADER SLIDES item_slides.slick({ lazyLoad: 'ondemand', infinite: false, slidesToShow: 1, slidesToScroll: 1, dots: true, speed: 300, fade: true, autoplay: true, autoplaySpeed: 12000, responsive: [ { breakpoint: 768, settings: { arrows: false, } } // You can unslick at a given breakpoint now by adding: // settings: "unslick" // instead of a settings object ] }); } /* $(window).height(); // returns height of browser viewport $(document).height(); // returns height of HTML document */ } /* Navigator */ function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition, showError); //navigator.geolocation.watchPosition(showPosition, showError); } } function showPosition(position) { var user_coords = $('#user_coords').val(); var update = false; if (user_coords !== position.coords.latitude + ',' + position.coords.longitude) { update = true; } //alert(user_coords + ' - ' + update); var x = document.getElementById("demo"); x.innerHTML = "LAT: " + position.coords.latitude + " LON: " + position.coords.longitude; if (update) { $.ajax({ type: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { option: 'page', action: 'updateUserLocation', latitude: position.coords.latitude, longitude: position.coords.longitude, url: window.location.href }, beforeSend: function (xhr) { $('#app-preloader').show(); }, success: function (data) { if (data.errorCode) { alert(data.errorMessage); return; } if (data.source === 'geo-ip') { if (data.html !== '') { var node = $('.main-content'); node.removeClass(); node.html(data.html); } } $('#app-preloader').hide(); } }); } } /* function showPosition(position) { var latlon = position.coords.latitude + "," + position.coords.longitude; //var img_url = "https://maps.googleapis.com/maps/api/staticmap?center="+latlon+"&zoom=14&size=400x300&sensor=false&key=YOUR_:KEY"; var img_url = "https://maps.googleapis.com/maps/api/staticmap?center="+latlon+"&zoom=18&size=400x300&sensor=false&key=AIzaSyDEOo-Z2crJO6D6Q2w6yL3gNPlHV0piltM"; document.getElementById("mapholder").innerHTML = ""; x.innerHTML = "Latitude: " + position.coords.latitude + "
Longitude: " + position.coords.longitude; } */ /* function showPosition(position) { x.innerHTML = "Latitude: " + position.coords.latitude + "
Longitude: " + position.coords.longitude; var lat = position.coords.latitude; var lon = position.coords.longitude; var latlon = new google.maps.LatLng(lat, lon) var mapholder = document.getElementById('mapholder') mapholder.style.height = '250px'; mapholder.style.width = '500px'; var myOptions = { center:latlon,zoom:14, mapTypeId:google.maps.MapTypeId.ROADMAP, mapTypeControl:false, navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL} } var maps = new google.maps.Map(document.getElementById("mapholder"), myOptions); var marker = new google.maps.Marker({position:latlon,maps:maps,title:"You are here!"}); } */ function showError(error) { var x = document.getElementById("demo"); switch (error.code) { case error.PERMISSION_DENIED: x.innerHTML = "User denied the request for Geolocation."; break; case error.POSITION_UNAVAILABLE: x.innerHTML = "Location information is unavailable."; break; case error.TIMEOUT: x.innerHTML = "The request to get user location timed out."; break; case error.UNKNOWN_ERROR: x.innerHTML = "An unknown error occurred."; break; } } function googleTranslateElementInit() { $.when( new google.translate.TranslateElement({ pageLanguage: GR_LANG_DEFAULT, includedLanguages: GR_LANG, autoDisplay: true, layout: google.translate.TranslateElement.FloatPosition.TOP_LEFT, gaTrack: true, gaId: GR_GA_ID }, 'google_translate_element') ).done(function () { var select = document.getElementsByClassName('goog-te-combo')[0]; select.selectedIndex = 1; select.addEventListener('click', function () { select.dispatchEvent(new Event('change')); }); select.click(); select.click(); }); } function initAutocomplete() { } function setLazyJS() { $('.lazy-js').lazy({ threshold: 200, visibleOnly: true, // loads instantly loadExplorer: function (element) { loadExplorer(element); }, loadItemsNearby: function (element) { loadItemsNearby(element); }, loadItemsFeatured: function (element) { loadItemsFeatured(element); } }); /* , loadItemsRelated: function (element) { loadItemsRelated(element); } */ } function setItemsBehavior(target) { if (target.length) { target.find('.lazy').lazy({ threshold: 0, visibleOnly: true }); } else { $('.lazy').lazy({ threshold: 0, visibleOnly: true }); } /* effect: 'fadeIn', effectTime: '0', threshold: 0, visibleOnly: true */ } function showEvents() { var target = $('.item-events-wrapper'); var item = $('#item-data'); $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'id': item.data('id'), 'lang': GR_LANG, 'option': 'ajax', 'action': 'getEvents' }, beforeSend: function (xhr) { //target.html('').addClass('loading'); //validar solo item tenga }, success: function (data) { target.html(data.html).removeClass('loading'); }, error: function (data) { //target.html('ERROR').removeClass('loading'); } }); } function loadItemsSite(hash) { var ref = $('.item-site-wrapper .col-children'); var item = $('#item-data'); var client = $('#client-data'); var client_data = ''; if (client.length) { client_data = client.data('type') + '|' + client.data('id'); } //return; if (ref.length) { $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'lang': GR_LANG, 'ref': hash, 'coords': item.data('pos'), 'client': client_data, // 'user_id': $(this).data('user_id'), 'option': 'ajax', 'action': 'getItemsSite' }, success: function (data) { //if (data.errorCode) { alert(data.errorMessage); return; } //ref.hide(); ref.html(data.html); setSiteListCarousel(); setItemsBehavior(ref); }, error: function (data) { // $('.raymi-list-wrapper').html(data); // $('.item-site-wrapper').html('ERROR'); // $('body').addClass('site raymi'); } }); } } function setSiteListCarousel() { $('.items-site').slick({ infinite: false, rows: 2, slidesPerRow: 3, //slidesToShow: 8, //slidesToScroll: 8, autoplay: true, autoplaySpeed: 12000, dots: true, lazyLoad: 'ondemand', responsive: [ { breakpoint: 1024, settings: { rows: 2, slidesPerRow: 3, dots: true } }, { breakpoint: 600, settings: { rows: 3, slidesPerRow: 2, } }, { breakpoint: 480, settings: { rows: 3, slidesPerRow: 2, //slidesToShow: 4, //slidesToScroll: 4, arrows: false, } } // You can unslick at a given breakpoint now by adding: // settings: "unslick" // instead of a settings object ] }); } function loadItemsRaymi() { var ref = $('.item-raymi-wrapper > .container > .row'); var item = $('#item-data'); var client = $('#client-data'); var id = item.data('id'); var hash_parent = item.data('hash'); var hash_active = item.data('hash'); var hash_title = 0; var client_data = ''; if (client.length) { client_data = client.data('type') + '|' + client.data('id'); } if (window.location.hash) { hash_parent = window.location.hash.replace('#', ''); hash_title = 1; if (!ref.length) { $('.item-raymi-wrapper').append(getRaymiListPreview()); ref = $('.item-raymi-wrapper > .container > .row'); } } if (ref.length) { $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'hash': hash_parent, 'hash_active': hash_active, 'client': client_data, 'lang': GR_LANG, // 'user_id': $(this).data('user_id'), 'option': 'ajax', 'action': 'getItemsRaymi' }, success: function (data) { if (data.html.length > 0) { ref.hide(); ref.html(data.html); ref.fadeIn(); setRaymiListCarousel(); setItemsBehavior(ref); } else { ref.remove(); } }, error: function (data) { ref.remove(); } }); } } function getRaymiListPreview() { var html = ''; var num = 6; html += '
'; html += '
'; for (var i = 0; i < num; i++) { html += '
1
'; } html += '
'; html += '
'; return html; } function setRaymiListCarousel() { //RAYMIS var items = $('.item-raymi-wrapper .items-raymi'); items.slick({ infinite: false, rows: 1, slidesPerRow: 4, //slidesToShow: 8, //slidesToScroll: 8, autoplay: true, autoplaySpeed: 12000, dots: true, lazyLoad: 'ondemand', responsive: [ { breakpoint: 1024, settings: { rows: 2, slidesPerRow: 3, dots: true } }, { breakpoint: 600, settings: { rows: 3, slidesPerRow: 2, } }, { breakpoint: 480, settings: { rows: 1, slidesPerRow: 2, //slidesToShow: 4, //slidesToScroll: 4, arrows: false, } } ] }); //var itemActive = items.find('.items .item.active'); var pos = $('.item-raymi-wrapper .item.active .num'); if (pos.length) { console.log(parseInt(pos.text())); items.slick('slickGoTo', parseInt(pos.text()) - 1, true); } } function setMainNavLocationActive() { if ($('body').hasClass('destination')) { $('#nav-explorer .nav-item.home').addClass('active'); } } function loadItemsRelated(ref) { var item = $('#item-data'); var user = $('#user-data'); var client = $('#client-data'); //var type = $('#bodyApp').attr('class').trim(); var type = item.data('type'); //agregar validacion para establishments var action = 'getItemsRelated'; var client_data = ''; if (client.length) { client_data = client.data('type') + '|' + client.data('id'); } if (ref.length) { $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'item_id': item.data('id'), 'source': ref.data('source'), 'title': ref.data('title'), 'view_all': '', 'style': 'discover', 'coords': user.data('pos'), 'client': client_data, 'lang': GR_LANG, 'option': 'ajax', 'action': action, 'type': type, }, success: function (data) { if (!(data.html.trim() === '')) { ref.hide(); ref.html(data.html); ref.fadeIn(); setItemsBehavior(ref); } else { ref.remove(); } }, error: function (data) { ref.html(''); } }); } } ////var target = $('
'); function loadExplorer(ref) { var user = $('#user-data'); var client = $('#client-data'); var client_data = ''; if (client.length) { client_data = client.data('type') + '|' + client.data('id'); } let amp = ref.data('amp'); if (ref.length) { if (!ref.data('loaded')) { ref.data('loaded', '1'); $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'category': ref.data('category'), 'destination': ref.data('destination'), 'coords': user.data('pos'), 'page': 0, 'limit': ref.data('limit'), 'client': client_data, 'lang': GR_LANG, 'amp': amp, 'option': 'ajax', 'action': 'getExplorerCategory' }, success: function (data) { if (!(data.html.trim() === '')) { items = $('
'); //items.hide(); items.data('total', ref.data('total')); items.data('category', ref.data('category')); items.data('destination', ref.data('destination')); items.data('page', 0); items.append(data.html); ref.parent().append(items); ref.remove(); setItemsBehavior(items); } else { //ref.parent().parent().parent().remove(); } }, error: function (data) { //node.html('ERROR').removeClass('loading'); //node.append('').removeClass('loading'); } }); } } } function loadItemsNearby(ref) { var item = $('#item-data'); var client = $('#client-data'); var items; var action = 'getItemsNearby'; //var type = $('#bodyApp').attr('class').trim(); var type = item.data('type'); //agregar validacion para establishments var client_data = ''; if (client.length) { client_data = client.data('type') + '|' + client.data('id'); } if (ref.length) { if (!ref.data('loaded')) { ref.data('loaded', '1'); $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'category': ref.data('category'), 'item_id': item.data('id'), 'item_loc': item.data('pos'), 'page': 0, 'client': client_data, 'lang': GR_LANG, 'option': 'ajax', 'action': action, 'type': type, }, success: function (data) { if (!(data.html.trim() === '')) { items = $('
'); items.data('total', ref.data('total')); items.data('category', ref.data('category')); items.data('page', 0); items.append(data.html); ref.parent().append(items); ref.remove(); setItemsBehavior(items); } else { ref.parent().remove(); } }, error: function (data) { //target.html('ERROR').removeClass('loading'); } }); } } } function loadItemsNearbyMore(ref) { var item = $('#item-data'); var client = $('#client-data'); var items; var client_data = ''; if (client.length) { client_data = client.data('type') + '|' + client.data('id'); } if (ref.length) { /* if (!ref.data('loaded')) { ref.data('loaded', '1'); */ $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'category': ref.data('category'), 'item_id': item.data('id'), 'item_loc': item.data('pos'), 'page': ref.data('page'), 'client': client_data, 'lang': GR_LANG, 'option': 'ajax', 'action': 'getItemsNearby' }, success: function (data) { if (!(data.html.trim() === '')) { ref.slick('slickAdd', data.html); setItemsBehavior(ref); } else { /* if (ref.data('page') == 0) { ref.parent().remove(); } */ } }, error: function (data) { //target.html('ERROR').removeClass('loading'); } }); /* } */ } } function loadItemsFeatured(ref) { var item = $('#item-data'); var client = $('#client-data'); var items; var action = 'getItemsFeatured'; //var type = $('#bodyApp').attr('class').trim(); var type = item.data('type'); //agregar validacion para establishments var client_data = ''; if (client.length) { client_data = client.data('type') + '|' + client.data('id'); } if (ref.length) { if (!ref.data('loaded')) { ref.data('loaded', '1'); $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'destination': ref.data('destination'), 'category': ref.data('category'), 'item_id': item.data('id'), 'item_loc': item.data('pos'), 'page': 0, 'client': client_data, 'lang': GR_LANG, 'option': 'ajax', 'action': action, 'type': type }, success: function (data) { if (!(data.html.trim() === '')) { items = $('
'); items.data('total', ref.data('total')); items.data('category', ref.data('category')); items.data('page', 0); items.append(data.html); ref.parent().append(items); ref.remove(); setItemsBehavior(items); } else { ref.parent().remove(); } }, error: function (data) { //target.html('ERROR').removeClass('loading'); } }); } } } // Disable Meta Refresh function disableMR() { let node = $('meta[http-equiv="refresh"]'); if (node.length) { node.remove(); } } //isInIframe function isInIframe() { if (window.location !== window.parent.location) { $('body').addClass('in-iframe'); } } //Accessibility Tools function a11y_tools() { a11y_textSize(); a11y_reset(); } function a11y_textSize() { $('body').data('a11y-text-size', 0); a11y_textSize_process('up', 1); a11y_textSize_process('down', -1); } function a11y_textSize_process(text_size_type, value) { $('.item-a11y .a11y-text-size-' + text_size_type).off(); $('.item-a11y .a11y-text-size-' + text_size_type).on('click', function (e) { e.preventDefault(); let body = $('body'); let size = a11y_textSize_add(body.data('a11y-text-size'), value); body.removeClass(function (index, className) { return (className.match(/(^|\s)a11y-text-size-\S+/g) || []).join(' '); }); body.data('a11y-text-size', size); body.addClass('a11y-text-size-' + size); }); } function a11y_reset() { $('.item-a11y .reset').off(); $('.item-a11y .reset').on('click', function (e) { e.preventDefault(); let body = $('body'); body.removeClass(function (index, className) { return (className.match(/(^|\s)a11y-\S+/g) || []).join(' '); }); body.data('a11y-text-size', 0); }); } function a11y_textSize_add(size, value) { let result = size + value; if (result > 2) result = 2; if (result < 1) result = 0; return result; } /* IMPORT OLD JS */ /* ITEM CONTACT AUTHOR */ function itemContactAuthor() { //MENSAJE CONTACTO ITEM var itemEmail = $('#itemEmail'); if (itemEmail.length < 1) { $('.contact_form').remove(); } $('#contact_btn').click(function (e) { $('#contact_status').removeClass().addClass('loading'); $('#contact_status').html(''); if ($('#contactName').val() && $('#contactEmail').val() && $('#contactPhone').val() && $('#contactComment').val()) { e.preventDefault(); $('#contact_btn').attr('disabled', 'disabled'); $('#contact_status').removeClass().addClass('loading'); $('#contact_status').html(''); // $('#register_error').html(''); var user = {}; user.user_name = $('#contactName').val(); user.user_email = $('#contactEmail').val(); user.user_phone = $('#contactPhone').val(); user.user_msg = $('#contactComment').val(); user.item_email = $('#itemEmail').val(); e.preventDefault(); $.ajax({ type: "POST", url: GR_URL_API, data: { option: "item", action: "contactItemAuthor", user: user }, success: function (data) { if (data.errorCode) { // $('#register_error').html(data.errorMessage); $('#contact_status').removeClass().addClass('alert alert-danger'); $('#contact_status').html(data.errorMessage); $('#contact_status').removeAttr('disabled'); return; } else { // $('#register_error').html(data.register_succeed); $('#contact_status').removeClass().addClass('alert alert-success'); $('#contact_status').html(data.message); $('#contact_btn').hide(); return; } }, dataType: "json", async: true }); } else { $('#contact_status').removeClass().addClass('alert alert-warning'); $('#contact_status').html("Todos los campos son obligatorios"); } }); } /* item_readmore */ function item_readmore() { var h_limit = 360; //348 465 300 434 234 265 var node_content = $('body.site .item-wrap .item-col-1 > .wrapper'); if (node_content.length) { if (node_content.height() > (h_limit - 30)) { var node = $('.item-wrap .item-col'); var node_parent = $('.item-wrap'); var h_full = node.height(); var h_init = h_limit + 'px'; node.height(h_init); node_parent.addClass('loaded'); $('.item-wrap .item-readmore').on('click', function () { node_parent.toggleClass('opened'); node_parent.toggleClass('closed'); if (node_parent.hasClass('closed')) { node.animate({height: h_init}); node_parent.animate({height: h_init}); $('html, body').animate({ scrollTop: node_parent.offset().top - 70 }, 300) } else { node.animate({height: h_full}); node_parent.animate({height: h_full}); } }); } } } var initial_quantity = 0; function setShopCartBehaviour() { let cart_details = $("#cart-details-wrap"); let cart_table = $('#cart-details-wrap table'); let table_rows = $('#cart-details-wrap table tbody tr'); let rowCount = $('#cart-details-wrap table tbody tr').length; let data_cart = $('#cart-receipt'); let cart_cid = data_cart.data('cid'); let btn_empty_cart = $('div.cart-optional-buttons div.fa-trash input'); let btn_go_buy = $('div.cart-optional-buttons div.fa-cart-plus input'); let radio_btn_placetopay = $('#opt_payment_p2p'); let radio_btn_paypal = $('#opt_payment_paypal'); let btn_go_to_pay = $('div.cart-receipt-payment input'); let modal_advice = $('#modal-advice'); let btn_close_modal_advice = $('#modal-advice div.modal-footer button.modal-close'); checkOptionBtns(); if (rowCount) { //Si hay items en la tabla poner al final icono de borrar elemento table_rows.append("
"); table_rows.find('.editable_quantity').keyup(function () { this.value = this.value.replace(/[^0-9]/g,''); }); cart_details.delegate("span.editable_link", "click", function (e) { e.preventDefault(); activateEditableContent($(this)); }); cart_details.delegate("input.editable_quantity", "blur", function (e) { e.preventDefault(); updateSubtotal($(this)); }); cart_details.delegate("input.editable_quantity", "keyup", function (e) { var code = e.which; // recommended to use e.which, it's normalized across browsers if (code==13) e.preventDefault(); if (code==32 || code==13 || code==188 || code==186) { updateSubtotal($(this)); } // missing closing if brace }); cart_details.delegate("div.fa-trash-alt", "click", function (e) { e.preventDefault(); deleteProduct($(this)); }); btn_empty_cart.click(function(){ emptyCart(); }); radio_btn_placetopay.click(function(){ showNetworkPlacetopayPayment(cart_cid); }); radio_btn_paypal.click(function(){ showNetworkPaypalPayment(cart_cid); }); btn_go_to_pay.click(function(){ goToPay(cart_table, cart_cid); }); checkDoublePayment(); btn_close_modal_advice.click(function(){ redirectPending(); }); modal_advice.blur(function(){ redirectPending(); }); } } function redirectPending(){ var modal_advice = $('#modal-advice'); if (modal_advice.hasClass('pending')) { window.location.replace(GR_URL + 'admin/payment'); } } function showNetworkPlacetopayPayment(cid){ $('#placetopay-network').fadeIn(); $('#paypal-network').hide(); } function showNetworkPaypalPayment(cid){ $('#paypal-network').fadeIn(); $('#placetopay-network').hide(); } function checkOptionBtns(){ var rows = $('#cart-details-wrap table tbody tr').length; var div_empty_cart = $('div.cart-optional-buttons div.fa-trash'); var div_empty_cart_msg = $('#empty-cart-msg'); if (rows > 0) { if (!div_empty_cart.is(":visible")){ div_empty_cart.toggle(); togglePaymentArea(1); } } else { togglePaymentArea(0); div_empty_cart.hide(); div_empty_cart_msg.fadeIn(); } } function checkPaymentVia(){ var p2p_checked = $('#opt_payment_p2p').prop("checked"); var paypal_checked = $('#opt_payment_paypal').prop("checked"); var selected_payment_via = ""; if (p2p_checked) { return "p2p"; } else if (paypal_checked) { return "paypal"; } else { return ""; } } function checkTermsAndConditions(){ var tos_checked = $('#terms-and-conditions').prop("checked"); if (tos_checked) { return true; } else { $("#modal-advice div.modal-body div.container-fluid p").html("Para continuar debes aceptar los Términos y condiciones, asegúrate marcar la casilla que dice Términos y condiciones."); $("#modal-advice").modal(); return false; } } function readyToPaymentP2p(cid){ var lightbox_response = $('#lightbox-response'); if (!lightbox_response.is(":visible")){ lightbox_response.toggle(); } $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'option': 'shoppingcart', 'action': 'placetopayPayment', 'cid': cid }, success: function (data) { if (data.errorCode) { console.log(data.errorMessage); return; } if (data.error) { console.log("error"); //console.log(data.error_log); } else { var processUrl = data.txt; P.init(processUrl); lightbox_response.hide(); } }, error: function (data) { console.log('error'); } }); } function goToPay(cart, cid){ var selected_payment_via = ""; if (checkTermsAndConditions()){ readyToPaymentP2p(cid); } /* For placetopay and paypal validation switch (checkPaymentVia()) { case "p2p": if (checkTermsAndConditions()){ readyToPaymentP2p(cid); } break; case "paypal": if (checkTermsAndConditions()){ alert("API de Paypal"); } break; case "": $("#modal-advice div.modal-body div.container-fluid p").html("Ninguna forma de pago seleccionada. Te invitamos a seleccionar una forma de pago para continuar con el proceso de compra."); $("#modal-advice").modal(); break; } */ } function activateEditableContent(nodo){ initial_quantity = nodo.prev().val(); nodo.prev().removeAttr("disabled"); nodo.prev().focus(); nodo.prev().addClass("editable_quantity-style"); } function updateLblTotalProds(){ var total_items = $('#cart-total-items'); $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'option': 'shoppingcart', 'action': 'getTotalProdsByCart' }, success: function (data) { if (data.errorCode) { console.log(data.errorMessage); return; } if (data.error) { console.log("error"); } else { total_items.html(data.txt); } }, error: function (data) { console.log('error'); } }); } function updateLblSubtotalTotal(){ var subtotal_order = $('#cart-subtotal-order'); var shipping_cost = $('#cart-shipping-cost'); var iva_tax = $('#cart-iva-tax'); var total_payment = $('#cart-total-payment'); var sum_total_payment = 0; $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'option': 'shoppingcart', 'action': 'getSubtotalByCart' }, success: function (data) { if (data.errorCode) { console.log(data.errorMessage); return; } if (data.error) { console.log("error"); } else { subtotal_order.html(data.txt); sum_total_payment = parseFloat(subtotal_order.html()) + parseFloat(shipping_cost.html()) + parseFloat(iva_tax.html()); total_payment.html(sum_total_payment.toFixed(2)); } }, error: function (data) { console.log('error'); } }); } function updateLblShippingCost(){ var shipping_cost = $('#cart-shipping-cost'); $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'option': 'shoppingcart', 'action': 'getTotalShippingCost' }, success: function (data) { if (data.errorCode) { console.log(data.errorMessage); return; } if (data.error) { console.log("error"); } else { shipping_cost.html(data.txt); } }, error: function (data) { console.log('error'); } }); } function updateLblIvaTax(){ var iva_tax = $('#cart-iva-tax'); $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'option': 'shoppingcart', 'action': 'getIvaTax' }, success: function (data) { if (data.errorCode) { console.log(data.errorMessage); return; } if (data.error) { console.log("error"); } else { iva_tax.html(data.txt); } }, error: function (data) { console.log('error'); } }); } function updateSubtotal(nodo){ var current_row = nodo.closest('tr'); var quantity = current_row.find('td input.editable_quantity'); var subtotal = current_row.find('td div.cart-details-subtotal'); var product_type = current_row.data('prodtype'); var type = product_type.trim(); var total_items = $('#cart-total-items'); var subtotal_order = $('#cart-subtotal-order'); var shipping_cost = $('#cart-shipping-cost'); var iva_tax = $('#cart-iva-tax'); var total_payment = $('#cart-total-payment'); quantity.prop('disabled', true); quantity.removeClass("editable_quantity-style"); //Sólo si cambió el valor de input.editable_quantity se cambia el background if (quantity.val() != initial_quantity) { if (quantity.val() != 0){ var prodid = quantity.data('prodid'); var price = quantity.data('price'); $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'option': 'shoppingcart', 'action': 'updateQuantitySubtotal', 'type': type, 'prodid': prodid, 'price': price, 'quantity': quantity.val(), 'lang': GR_LANG }, success: function (data) { if (data.errorCode) { console.log(data.errorMessage); return; } if (data.error) { console.log("error"); } else { if (data.txt != 'pending') { switch (data.stock) { case 'available': subtotal.css({"background-color": "yellow"}); subtotal.html(data.txt.product_subtotal); subtotal.delay(1400).animate({opacity: "0.4"}, function(){ subtotal.css({"border-radius": "10px", "background-color": "transparent", opacity: "1"}); }); break; case 'zero': current_row.css({"background-color": "yellow"}); $("#modal-advice div.modal-body div.container-fluid p").html("Lo sentimos, al momento el stock disponible es de 0 unidades."); $("#modal-advice").modal(); current_row.delay(4000).animate({opacity: "0.4"}, function(){ current_row.css({"border-radius": "10px", "background-color": "transparent", opacity: "1"}); current_row.remove().fadeOut(); }); break; case 'incomplete': var available_stock = data.quantity; subtotal.css({"background-color": "yellow"}); subtotal.html(data.txt.product_subtotal); $("#modal-advice div.modal-body div.container-fluid p").html("Lo sentimos, al momento el stock disponible es de " + available_stock + " unidades, actualizaremos tu carrito en este momento."); $("#modal-advice").modal(); quantity.html(available_stock); quantity.val(available_stock); subtotal.delay(4700).animate({opacity: "0.4"}, function(){ subtotal.css({"border-radius": "10px", "background-color": "transparent", opacity: "1"}); }); break; } total_items.html(data.txt.total_items); subtotal_order.html(data.txt.subtotal_order); shipping_cost.html(data.txt.shipping_cost); iva_tax.html(data.txt.iva_tax); total_payment.html(data.txt.total_payment); } } }, error: function (data) { console.log('error'); } }); } else { quantity.val("1"); var prodid = quantity.data('prodid'); var price = quantity.data('price'); $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'option': 'shoppingcart', 'action': 'updateQuantitySubtotal', 'type': type, 'prodid': prodid, 'price': price, 'quantity': quantity.val(), 'lang': GR_LANG }, success: function (data) { if (data.errorCode) { console.log(data.errorMessage); return; } if (data.error) { console.log("error"); } else { if (data.txt != 'pending') { switch (data.stock) { case 'available': subtotal.css({"background-color": "yellow"}); subtotal.html(data.txt.product_subtotal); subtotal.delay(1400).animate({opacity: "0.4"}, function(){ subtotal.css({"border-radius": "10px", "background-color": "transparent", opacity: "1"}); }); break; case 'zero': current_row.css({"background-color": "yellow"}); $("#modal-advice div.modal-body div.container-fluid p").html("Lo sentimos, al momento el stock disponible es de 0 unidades."); $("#modal-advice").modal(); current_row.delay(4000).animate({opacity: "0.4"}, function(){ current_row.css({"border-radius": "10px", "background-color": "transparent", opacity: "1"}); current_row.remove().fadeOut(); }); break; case 'incomplete': var available_stock = data.quantity; subtotal.css({"background-color": "yellow"}); subtotal.html(data.txt.product_subtotal); $("#modal-advice div.modal-body div.container-fluid p").html("Lo sentimos, al momento el stock disponible es de " + available_stock + " unidades."); $("#modal-advice").modal(); quantity.html(available_stock); quantity.val(available_stock); subtotal.delay(4000).animate({opacity: "0.4"}, function(){ subtotal.css({"border-radius": "10px", "background-color": "transparent", opacity: "1"}); }); break; } total_items.html(data.txt.total_items); subtotal_order.html(data.txt.subtotal_order); shipping_cost.html(data.txt.shipping_cost); iva_tax.html(data.txt.iva_tax); total_payment.html(data.txt.total_payment); } } }, error: function (data) { console.log('error'); } }); $('div.cart-optional-buttons').prepend('
סAviso! La cantidad del artículo seleccionado debe ser al menos 1, caso contrario puede elegir eliminar el producto.
'); } } } function deleteProduct(nodo){ var total_items = $('#cart-total-items'); var subtotal_order = $('#cart-subtotal-order'); var shipping_cost = $('#cart-shipping-cost'); var iva_tax = $('#cart-iva-tax'); var total_payment = $('#cart-total-payment'); var product_to_delete = nodo.closest('tr').find('td input.editable_quantity').data('prodid'); var product_type = nodo.closest('tr').data('prodtype'); var type = product_type.trim(); var pc_id = nodo.closest('tr').find('div.tour-details').data('pc_id'); $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'option': 'shoppingcart', 'action': 'deleteProduct', 'type': type, 'prodid': product_to_delete, 'pc_id': pc_id }, success: function (data) { if (data.errorCode) { console.log(data.errorMessage); return; } if (data.error) { console.log("error"); } else { if (data.txt != 'pending'){ nodo.closest('tr').remove(); var rowCount = $('#cart-details-wrap table tbody tr').length; if (rowCount == 0){ checkOptionBtns(); } total_items.html(data.txt.total_items); subtotal_order.html(data.txt.subtotal_order); shipping_cost.html(data.txt.shipping_cost); iva_tax.html(data.txt.iva_tax); total_payment.html(data.txt.total_payment); } } }, error: function (data) { console.log(data); console.log('error'); } }); } function togglePaymentArea(stock){ var options = $('#payment-options'); var options_btns = $('#payment-options-btns'); var tos = $('#payment-terms-conditions'); var pay_btn = $('#payment-btn'); var lightbox = $('#lightbox-response'); if (stock == 0) { options.hide(); options_btns.hide(); tos.hide(); pay_btn.hide(); lightbox.hide(); } else { if (!pay_btn.is(":visible")) { options.fadeIn(); options_btns.fadeIn(); tos.fadeIn(); pay_btn.fadeIn(); lightbox.fadeIn(); } } } function emptyCart(){ var total_items = $('#cart-total-items'); var subtotal_order = $('#cart-subtotal-order'); var shipping_cost = $('#cart-shipping-cost'); var iva_tax = $('#cart-iva-tax'); var total_payment = $('#cart-total-payment'); $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'option': 'shoppingcart', 'action': 'emptyCart' }, success: function (data) { if (data.errorCode) { console.log(data.errorMessage); return; } if (data.error) { console.log("error"); } else { if (data.txt != 'pending') { $('#cart-details-wrap table tbody tr').remove(); checkOptionBtns(); total_items.html(data.txt.total_items); subtotal_order.html(data.txt.subtotal_order); shipping_cost.html(data.txt.shipping_cost); iva_tax.html(data.txt.iva_tax); total_payment.html(data.txt.total_payment); } } }, error: function (data) { console.log('error'); } }); } function checkDoublePayment(){ var pending_ref_msg = ""; $.ajax({ method: 'POST', url: GR_URL_API, dataType: 'json', async: true, data: { 'option': 'payment', 'action': 'doublePaymentP2p' }, success: function (data) { if (data.errorCode) { console.log(data.errorMessage); return; } if (data.error) { console.log("error"); } else { if (data.txt.pending) { $("#modal-advice div.modal-body div.container-fluid p").html(data.txt.msg); $("#modal-advice").modal(); $("#modal-advice").addClass("pending"); pending_ref_msg = "

Pago electrónico pendiente, referencia " + data.txt.reference + ".

"; $("#modal-advice .modal-body p").prepend(pending_ref_msg); } } }, error: function (data) { console.log('error'); } }); } function validateEmail(email) { var re = /\S+@\S+\.\S+/; return re.test(email); } function setSignupControls() { var username = $("#user_name"); var email = $("#user_email"); username.keyup(function () { this.value = this.value.replace(/[^A-Z\u00C0-\u00DC\u00f1\u00d1 a-z\u00E0-\u00FC\u00f1\u00d1]/g,''); }); email.keyup(function () { if (validateEmail(email.val())) { email.removeClass("email-validation"); } else { email.addClass("email-validation"); } }); }