Help
RSS
API
Feed
Maltego
Contact
Domain > www.marcoaureliososa.com.ar
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2014-03-19
200.58.112.81
(
ClassC
)
2024-09-10
198.251.78.21
(
ClassC
)
Port 80
HTTP/1.1 302 FoundServer: nginxDate: Tue, 10 Sep 2024 05:42:04 GMTContent-Type: text/html; charsetiso-8859-1Content-Length: 220Connection: keep-aliveLocation: https://www.marcoaureliososa.com.ar/Cache-Control: max-age0Expires: Tue, 10 Sep 2024 05:42:04 GMTX-Powered-By: PleskLin !DOCTYPE HTML PUBLIC -//IETF//DTD HTML 2.0//EN>html>head>title>302 Found/title>/head>body>h1>Found/h1>p>The document has moved a hrefhttps://www.marcoaureliososa.com.ar/>here/a>./p>/body>/html>
Port 443
HTTP/1.1 200 OKServer: nginxDate: Tue, 10 Sep 2024 05:42:04 GMTContent-Type: text/html; charsetISO-8859-1Transfer-Encoding: chunkedConnection: keep-aliveVary: Accept-EncodingX-Powered-By: PHP/7.2.34Expires: Thu, 19 Nov 1981 08:52:00 GMTCache-Control: no-store, no-cache, must-revalidatePragma: no-cacheSet-Cookie: osCsidf35imnk1106tsu403amjgai788; path/; domainwww.marcoaureliososa.com.arVary: Accept-Encoding,User-AgentCache-Control: private, must-revalidateX-Powered-By: PleskLin !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>html xmlnshttp://www.w3.org/1999/xhtml dirLTR langes >head>meta http-equivContent-Type contenttext/html; charsetiso-8859-1 />meta nameviewport contentwidthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalable0>meta nametheme-color content>title>Marco Aurelio Sosa | Acero - Tubos - Perfiles/title>base hrefhttps://www.marcoaureliososa.com.ar/ /> meta namedescription contentMás de 65 años comercializando materiales de ACERO para TECHOS METÁLICOS, CONSTRUCCIÓN, HERRERIA y CONDUCCION DE FLUIDOS.> meta nameog:description contentMás de 65 años comercializando materiales de ACERO para TECHOS METÁLICOS, CONSTRUCCIÓN, HERRERIA y CONDUCCION DE FLUIDOS./> meta propertyog:image contenthttps://www.marcoaureliososa.com.ar/mods/html/fil/Model/Configuration/1414/64944f130b637-nuevos-logos-12-1.png.webp/> meta nameog:type contentwebsite/> meta propertyog:url contenthttps://www.marcoaureliososa.com.ar///> meta propertyog:site_name contentMarco Aurelio Sosa/> link hrefext/fonts/lato/lato.css relstylesheet>link typetext/css relstylesheet hrefext/fontawesome-5.15.1/css/all.min.css>script typetext/javascript srcext/jquery/jquery-2.2.3.min.js?t17206359301718373100>/script>script typetext/javascript srcext/jquery.touchSwipe.min.js?t17206359301718373100>/script>link relstylesheet hrefext/jquery/Gallery-2.33.0/css/blueimp-gallery.min.css?t17206359301718373100>link relstylesheet hrefext/jquery/Gallery-2.33.0/css/blueimp-gallery-video.css?t17206359301718373100>!-- scripts de instalacion react --> script srcext/react/react.production.min.js>/script> script srcext/react/react-dom.production.min.js>/script> script srcext/react/react-is.production-2.min.js>/script>!-- librerias externas-->script crossorigin srcext/react/lib/styled-components-2.min.js?t17206359301718373100>/script> script crossorigin srcext/react/lib/axios.min.js?t17206359301718373100>/script>script typetext/javascript >/script>script typetext/javascript srcext/jquery/ui/jquery-ui.min.js?t17206359301718373100>/script>script typetext/javascript srcext/bootstrap/js/bootstrap.min.js?t17206359301718373100>/script>script typetext/javascript srcincludes/general.js?t17206359301718373100>/script>script typetext/javascript srcext/jquery/jquery.blockUI.min.js?t17206359301718373100>/script>script typetext/javascript srcext/jquery/jquery.validate.min.js?t17206359301718373100>/script>script typetext/javascript srcext/jquery/jquery.form.min.js?t17206359301718373100>/script>script typetext/javascript srcext/tq/category_menu.js?t17206359301718373100>/script>script typetext/javascript srcext/owl-carousel2-2-3-4/dist/owl.carousel.min.js>/script>script typetext/javascript srcext/barcode/barcode.min.js?t17206359301718373100>/script>script typetext/javascript srcext\jquery\Gallery-2.33.0\js\blueimp-gallery.min.js?t17206359301718373100>/script>script typetext/javascript srcext\jquery\Gallery-2.33.0\js\jquery.blueimp-gallery.min.js?t17206359301718373100>/script>script typetext/javascript srcext\jquery\Gallery-2.33.0\js\blueimp-gallery-youtube.js?t17206359301718373100>/script>script typetext/javascript srcext/gtag/gtag.js?t17206359301718373100>/script>!-- Bootstrap -->link relstylesheet typetext/css hrefext/bootstrap/css/bootstrap.css?t17206359301718373100 />link relstylesheet typetext/css hrefstylesheet.min.css?t17206359301718373100 /> !-- Google Tag Manager 00--> script typetext/javascript> (function(w,d,s,l,i){wlwl||;wl.push({gtm.start: new Date().getTime(),event:gtm.js});var fd.getElementsByTagName(s)0, jd.createElement(s),dll!dataLayer?&l+l:;j.asynctrue;j.src https://www.googletagmanager.com/gtm.js?id+i+dl;f.parentNode.insertBefore(j,f); })(window,document,script,dataLayer, GTM-M42C6JX4);/script> !-- End Google Tag Manager 00--> !-- Event snippet for Global conversion page -->script> console.log(global); /script>!-- Event snippet for Home conversion page -->script> console.log(Home); /script>!-- Event snippet for Home conversion page -->script> $(document).ready(function() { console.log(Home Popup); $(#info_popup11).modal(show); });/script> link relstylesheet typetext/css hrefext/custom-css/managerQuickCustom.min.css?t17206359301718373100 />script async srchttps://www.googletagmanager.com/gtag/js?idAW-795628871>/script> script> window.dataLayer window.dataLayer || ; function gtag(){dataLayer.push(arguments);} gtag(js, new Date()); gtag(config, AW-795628871); /script> !-- Facebook Pixel Code --> script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;nf.fbqfunction(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbqn;n.pushn;n.loaded!0;n.version2.0; n.queue;tb.createElement(e);t.async!0; t.srcv;sb.getElementsByTagName(e)0; s.parentNode.insertBefore(t,s)}(window,document,script, https://connect.facebook.net/en_US/fbevents.js); fbq(init, 904065153262154); fbq(track, PageView); /script> noscript> img height1 width1 styledisplay:none srchttps://www.facebook.com/tr?id904065153262154&evPageView&noscript1/> /noscript> !-- End Facebook Pixel Code -->!-- Event snippet for conversion pageIn your html page, add the snippet and call gtag_report_conversion when someone clicks on the chosen link or button. -->script typetext/javascript> //DS 20230724 Agregamos el parametro target para que si el link era en blank la redireccion se haga en ventana nueva function gtag_report_conversion(send_to, url, target) { var callback function () { console.log( gtag_event callback -- : + send_to ); if (typeof(url) ! undefined) { //alert(send); //DS 20230724 Si target es blank entonces usamos window.open y sino usamos window.location if ( target _blank || target blank){ window.open( url , _blank ); }else{ window.location url; } } return false; }; gtag(event, conversion, { send_to: send_to, event_callback: callback }); return false; } /script>/head>body onloadfuncionInicial() class page-homepage> !-- Google Tag Manager (noscript) --> noscript>iframe srchttps://www.googletagmanager.com/ns.html?idGTM-M42C6JX4 height0 width0 styledisplay:none;visibility:hidden>/iframe>/noscript> !-- End Google Tag Manager (noscript) --> div classoverlay>/div>header idheaderSite> nav classnav-top navbar navbar-inverse idmenuHeader> div classcontainer clearfix> !-- div classlogo-front visible-xs visible-sm> a class hrefhttps://www.marcoaureliososa.com.ar/home.htm styledisplay: inline-block;> img classimg-responsive img-logo srcmods/html/fil/Model/Configuration/1415/650b40ad4ecb0-logo-mas-mobile.png.webp altMarco Aurelio Sosa stylemax-width:60px; max-height:25px; display: inline-block;> /a> /div> --> div class logo-mobile-new visible-xs align-item-header visible-sm col-xs-4 > a hrefhttps://www.marcoaureliososa.com.ar/home.htm > img srcmods/html/fil/Model/Configuration/1415/650b40ad4ecb0-logo-mas-mobile.png.webp altMarco Aurelio Sosa stylemax-width:60px; max-height:25px;> /a> /div> div classcol-xs-5 col-lg-2 col-lg-offset-0 text-center align-item-header visible-xs visible-sm header-link-phone> div classtext-center> div classbtn-header-cont> a href# classbtn-header data-togglemodal onclick data-target#modalsPhoneInfo stylefont-size: 20px; > i classfa fa-phone fa-rot-90>/i> /a> /div> /div> /div> div classcol-xs-5 text-center align-item-header visible-xs visible-sm header-link-search > div classbtn-header-cont> a classbtn-header data-togglemodal href# data-target#searchModal stylefont-size: 20px;> i classfa fa-search aria-hiddentrue>/i> /a> /div> /div> div classcol-xs-6 text-center align-item-header visible-xs visible-sm header-link-cart > div classbtn-header-cont> a classbtn-header cart-total stylepadding-top: 17px; font-size: 20px; hrefhttps://www.marcoaureliososa.com.ar/shopping_cart.php> i classfa fa-shopping-cart aria-hiddentrue>/i> (span idcantArticulos class>0/span>) /a> /div> /div> div classcol-xs-3 visible-xs visible-sm header-link-collapse pull-right text-right stylepadding: 0px;> div classnavbar-header> button idbtnMenu typebutton classnavbar-toggle data-target#bs-example-navbar-collapse-0> i classfas fa-bars>/i> /button> /div> /div> div classhidden-xs hidden-sm col-sm-6 col-lg-6 text-center> div classhidden btn-header-cont idminified-icons> nav classnav-user text-left navbar-descriptions> ul classnav-top__list pull-right> !-- CARRITO INIT --> /ul> !-- /.nav-top__list -->/nav> /div> /div> div class col-lg-18 col-sm-18 bg-xs-dropdown right-collapse visible-xs idbs-example-navbar-collapse-user-info> div class navbar-collapse> ul class nav-top__list pull-right navbar-descriptions> /ul> /div> /div> div classcol-lg-18 col-sm-18 bg-xs-dropdown right-collapse idbs-example-navbar-collapse-0> !-- bandera --> div classnavbar-collapse> ul classnav-top__list pull-right navbar-descriptions style> li classnav-top__item nav-strip-color style> a classnav-top__link link_socials phone-link-xs data-togglemodal onclickagentsTelegramCallAjax();agentsWhatsAppCallAjax() data-target#modalsPhoneInfo stylecursor: pointer; > i classfas fa-phone-alt stylemargin-right: 15px;>/i>i classfar fa-envelope >/i> /a> script typetext/javascript> $( document ).ready(function(e) { function agentsTelWhatsAjaxCall(){ agentsWhatsAppCallAjax(); agentsTelegramCallAjax(); } }); /script> span classmenu-divisor>|/span>/li> li classnav-top__item nav-strip-color> a hrefhttps://www.marcoaureliososa.com.ar/home.htm classnav-top__link> label style>i classfa fa-home>/i>/label> /a> span classmenu-divisor>|/span> /li> li classnav-redes-socials nav-strip-color style/*margin-top: 120px;*/> ul classnav-top__list pull-right navbar-descriptions clearfix hidden-xs> li classnav-top__item nav-redes> a classnav-top__link link_socials onclickfbq(track, Contact); window.open( http://www.facebook.com/Marco-Aurelio-Sosa-766112283527866, _blank);> i classfab fa-facebook-f>/i> /a> /li> li classnav-top__item nav-redes> a classnav-top__link link_socials onclickfbq(track, Contact); window.open( https://www.instagram.com/marco.aurelio.sosa/, _blank);> i classfab fa-instagram>/i> /a> /li> /ul> /li> /ul> /div>!--/.collapse-menu--> /div>!-- /.bg-xs-dropdown --> /div> /div> /nav> div classcontainer hidden-xs hidden-sm idcontainer-filter > div classrow row-flex> div classcol-sm-20 col-xs-20 logo-front style> a class hrefhttps://www.marcoaureliososa.com.ar/home.htm styledisplay: inline-block;> img classimg-responsive img-logo big-logo srcmods/html/fil/Model/Configuration/1414/64944f130b637-nuevos-logos-12-1.png.webp altMarco Aurelio Sosa> /a> /div> /div> /div> /div> !-- /.row --> nav idlower_menu_nav classnavbar navbar-default navbar-attributes navbar-descriptions> div classcontainer> !-- Collect the nav links, forms, and other content for toggling --> div classcollapse navbar-collapse> ul classnav navbar-nav col-sm-24> !-- pre>/pre> --> li classnav-top__item nav-strip-color stylepadding: 0;> a idpage_Cotiza_en_línea hrefhttps://cotizador.marcoaureliososa.com.ar/listado-productos.htm target_blank classnav-top__link styledisplay: flex; justify-content: center;background: transparent;> label style>Cotiza en línea/label> /a> /li> !-- pre>/pre> --> li classnav-top__item nav-strip-color stylepadding: 0;> a idpage_Trabaja_con_Nosotros hrefhttps://aceros-cufer.pandape.computrabajo.com/ target_blank classnav-top__link styledisplay: flex; justify-content: center;background: transparent;> label style>Trabaja con Nosotros/label> /a> /li> !-- pre>/pre> --> li classnav-top__item nav-strip-color stylepadding: 0;> a idpage_INTRANET hrefhttps://www.marcoaureliososa.com.ar/mods/html/intranetmas/ classnav-top__link styledisplay: flex; justify-content: center;background: transparent;> label style>INTRANET/label> /a> /li> /ul> /div>!-- /.navbar-collapse --> /div>!-- /.container -->/nav>/header>script typetext/javascript> var element document.getElementById(headerSite); element.style.position fixed; document.body.style.margin element.offsetHeight+px 0 0 0;/script>script typetext/javascript> if(isXs undefined){ var isXs $(#isXs).css(display) block; } // Inicio eventos del navbar $(.menu-toggle).on(click, function(event) { event.preventDefault(); event.stopPropagation(); // Busca para arriba el mas cercano dropdown (menu principal) o dropdown-submenu (submenu) var closest $(this).closest(.dropdown-submenu, .dropdown); closest.toggleClass( function() { // this es el menu / submenu if ( $(this).hasClass(open)) { // cierra todos sus hijos para cerrarse $(this).find(.open).removeClass(open); } else { // cierra todos sus hermanos para abrirse $(this).siblings(.open).removeClass(open); // DS 20240205 Busco todos los dropdown con la clase open y los cierro, esto se hace para que no se puedan abrir los // dropdown de arriba en en header a la vez //DS 20240531 esto solo aplica cuando DROPDOWN_MENU_CLICK es true y estándo solo en desktop ( en mobile esto termina rompiendo la navegación cuando se quieren usar los botones de flechas ) } return open; } ); }); // El siguiente código es el que se encarga de mostrar la columna con la imagen de la categoría principal, y le quita el activo a cualquiera que ya este activo (dentro del navbar). // $(.navbar-descriptions li.dropdown a).on(mouseenter, function (e) { $(.catprin).on(mouseenter, function (e) { $(.nav.nav-pills.nav-stacked .active).removeClass(active); $(.nav .tab-pane.active).removeClass(active); $($(this).data(target)).addClass(active); //DS 20220306: esto que funcion cumple? queda comentado ya que causa un error en los desplegables del menu inferior y no hay un error aparente al comentarlo // $(#cat_menu_md_normal_0_menCat).trigger(mouseenter); }); $(#menuHeader .dropdown, #menuHeader li, .nav-top, .nav-top li, .nav-user li).on(hover, function() { if (!(ontouchstart in document.documentElement) && !$(#btnMenu).is(:visible)) { $(this).addClass(open); } }); $(.nav-user li).on(mouseenter, function(e) { if (!(ontouchstart in document.documentElement) && !$(#btnMenu).is(:visible)) { $(this).addClass(open); } }).on(mouseleave, function(e){ if (!(ontouchstart in document.documentElement) && !$(#btnMenu).is(:visible)) { $(this).removeClass(open); } }); $(.dropdown.cat-header adata-target#menu_0).hover(function(e){ console.log(hi); $(divroletabpanel.tp-categories-menu.active:not(#menu_0)).removeClass(active); }); $(#menuHeader .dropdown).on(mouseenter, function() { if(!isXs) { $(this).addClass(open); } }).on(mouseleave, function(e) { if(!isXs) { $(this).removeClass(open); } }); $(#menuHeader .navbar-nav>.dropdown).on(mouseenter, function() { if (!(ontouchstart in document.documentElement) && !$(#btnMenu).is(:visible)) { $(body).addClass(navbar-open); } }) .on(mouseleave, function() { if (!(ontouchstart in document.documentElement) && !$(#btnMenu).is(:visible)) { $(body).removeClass(navbar-open); } }); $(header .navbar-attributes .navbar-nav .dropdown, header .navbar-descriptions .dropdown-mid) .on(mouseenter, function(ev) { $(ev.currentTarget).addClass(open); }) .on(mouseleave, function(ev) { $(ev.currentTarget).removeClass(open); }); //$( document ).ready(function(e) { // DS 20240207 Comento esta llamada porque se pasa a dentro de la funcion funcionInicial en el archivo scriptsFooter.php // fixMenuDescriptionPos(); //}); $(window).resize(function() { //si se altera su tamaño lo ajustamos fixMenuDescriptionPos(); }); function fixMenuDescriptionPos(){ $(.description-menu-data).each(function(i, obj) { //si está dentro de user-cart quiere decir que viene del menu mid por lo tanto vamos a usar el user-cart como referencia para posicionar el menu var fromMenuMid false; //DS 20230608 agregamos estas variables porque se utilizaban en distintos lugares var dropdownDiv $(obj).find(.catprin-dropdown-menu).first(); var menuDiv $(obj).find(.col-desc-categories).first(); var descriptionDiv $(obj).find(.col-desc-description).first(); var subCategoriesDiv descriptionDiv.find(.col-desc-subcategories); var imgDiv descriptionDiv.find(.category-with-image); var isRight true; if($(obj).closest(.user-cart).length 1){ var leftPos $(obj).closest(.user-cart); fromMenuMid true; var midObj leftPos; } else { var leftPos $(obj); } //DS 20230608 utilizamos aparte el offsetPos para saber la posición en relacion a la pantalla var offsetPos leftPos.offset(); //tomamos la posicion el elemento var leftPos leftPos.position(); //DS 20230608 agregamos este control para que haga este cálculo solo en el menú medio if(fromMenuMid){ var menuMidLefttPos parseInt($(.nav.navbar-nav).css(marginLeft)); //tomamos en cuenta si el menu en cuestión está entrado o tiene un width reducido //DS 20230524 se cambió acá porque estaba restando un objeto con un número y devolvía un NaN (inci: 2737) leftPos.left leftPos.left - menuMidLefttPos; } //ahora le indicamos al contenido su nueva posicion //ahora si la descripción del menu se sale de la pantalla tenemos que que hacer que la descripción se vea a la izquierda y no a la derecha var windowWidth $(window).width(); //usamos el tamaño de la pantalla como referencia // 737 es el ancho estimado de la columna de descripciones mas su primer menu con la lista de categorias de la categoría y 1310 es lo anterior mas la imágen //a eso le sumamos la pocición del boton actual con eso obtenemos el ancho completo de la descripción si es mayor tenemos que mostrar todo a la izquierda //si no tiene imagen solo contamos hasta la descripción if (imgDiv.length 0) { var menuDescPosition 737 + offsetPos.left; } else { var menuDescPosition 1310 + offsetPos.left; } //ancho total del contenedor en px const dropdownDivWidth 1310; //ancho del div contenedor de la imagen en px const imageContainerWidth 573.12; //ancho del menú en px const menuDivWidth 327.5; //ancho de las sub categorías en px const subCategoriesDivWidth 409.38; if(windowWidth menuDescPosition){ //console.log(se sale de la pantalla) //si se sobrepasa entonces posicionamos el menu mas a la izquierda para eso al leftPOs le restamos el total del ancho del menu que es 1310 (con descripciones, lista e imagen de categoría) //si viene le menu mid el criterio para posicionarlo va a ser distinto if(fromMenuMid){ // DS 20240206 Ahora usamos left o right para alinear el dropdown con respecto al button y agrego el // string px al final, ya que a veces no lo toma bien. Ademas agrego el left o right inherit para // que no tome un left o right anterior // dropdownDiv.css({margin-right:leftPos.left - dropdownDivWidth-57.5}); dropdownDiv.css({right:leftPos.left - dropdownDivWidth - 57.5 + px, left: inherit}); } else { //DS 20230608 si llevando todo a la derecha tampoco entra la imagen, no la mostramos y dejamos todo a la izquieda var infoMenuMarginLeft offsetPos.left + $(obj).width() - dropdownDivWidth; //si al poner el contenido a la derecha no se sale de la pantalla, lo ubicamos a la derecha if(infoMenuMarginLeft > 0){ //console.log(llevando todo a la derecha entra) // DS 20240206 Ahora usamos left o right para alinear el dropdown con respecto al button y agrego el // string px al final, ya que a veces no lo toma bien. Ademas agrego el left o right inherit para // que no tome un left o right anterior // dropdownDiv.css({margin-left:leftPos.left - dropdownDivWidth +$(obj).width()}); dropdownDiv.css({left:leftPos.left - dropdownDivWidth +$(obj).width() + px, right: inherit}); //le agregamos al div de la imagen una clase para poder invertir los bordes despues imgDiv.addClass(invert-borders) isRight true; }else{ //console.log(no cabe todo a la derecha) //si no cabe a la derecha tampoco con la imagen, la sacamos y consultamos si ahora caben //el menu y listado de sub categorías a la izquierda imgDiv.css(display,none) imgDiv.addClass(display-none) //calculamos de nuevo la posición al eliminar la imagen infoMenuMarginLeft offsetPos.left + menuDivWidth +subCategoriesDivWidth; //si el menú y el listado de sub categorías caben a la izquierda, lo mostramos a la izquierda, sino consultamos so si cabe a la derecha if(windowWidth > infoMenuMarginLeft){ //console.log(el menu y sub categorías entran a la izquierda) isRight false; // DS 20240206 Ahora usamos left o right para alinear el dropdown con respecto al button y agrego el // string px al final, ya que a veces no lo toma bien. Ademas agrego el left o right inherit para // que no tome un left o right anterior // dropdownDiv.css({margin-left:leftPos.left}); dropdownDiv.css({left:leftPos.left + px, right: inherit}); //asignamos el tamaño para que no se deforme el shadow-box dropdownDiv.width( menuDivWidth + subCategoriesDivWidth); //asignamos para que el menú mantenga el tamaño menuDiv.width(menuDivWidth) //hacemos esto para que no se deface el menú descriptionDiv.removeClass(col-sm-18); descriptionDiv.addClass(col-sm-12); //establecemos que mantenga el tamaño el div de sub categorías subCategoriesDiv.width(subCategoriesDivWidth) }else{ //console.log(el menu y sub categorías no entran a la izquierda) //si el menú y el listado de sub categorías caben a la izquierda, los mostramos, sino, mostramos a la derecha infoMenuMarginRigth (offsetPos.left + $(obj).width()) - (menuDivWidth + subCategoriesDivWidth)-30; var desplazamiento (leftPos.left + $(obj).width()) - (menuDivWidth + subCategoriesDivWidth )-30; if(infoMenuMarginRigth > 0){ //console.log(el menu y sub categorías entran a la derecha) isRight true; // DS 20240206 Ahora usamos left o right para alinear el dropdown con respecto al button y agrego el // string px al final, ya que a veces no lo toma bien. Ademas agrego el left o right inherit para // que no tome un left o right anterior // dropdownDiv.css({margin-left:desplazamiento}); dropdownDiv.css({left:desplazamiento + px, right: inherit}); //asignamos el tamaño para que no se deforme el shadow-box dropdownDiv.width(menuDivWidth + subCategoriesDivWidth); //asignamos para que el menú mantenga el tamaño menuDiv.width(menuDivWidth-30) //hacemos esto para que no se salte el menú descriptionDiv.removeClass(col-sm-18); descriptionDiv.addClass(col-sm-12); //establecemos que mantenga el tamaño el div de sub categorías subCategoriesDiv.width(subCategoriesDivWidth) //agregamos la clase imgDiv.addClass(display-none) console.log(subCategoriesDivWidth) }else{ //console.log(mostramos solo el menú) descriptionDiv.addClass(display-none); //asignamos para que el menú mantenga el tamaño menuDiv.width(menuDivWidth) //asignamos el tamaño para que no se deforme el shadow-box dropdownDiv.width(menuDivWidth); // DS 20240206 Ahora usamos left o right para alinear el dropdown con respecto al button y agrego el // string px al final, ya que a veces no lo toma bien. Ademas agrego el left o right inherit para // que no tome un left o right anterior // dropdownDiv.css({margin-left:leftPos.left -2}); dropdownDiv.css({left:leftPos.left - 2 + px, right: inherit}); } } //dropdownDiv.css({margin-left:leftPos.left}); } //dropdownDiv.css({margin-left:leftPos.left-1310+$(obj).width()}); } //DS 20230608 agregamos este control //si debemos poner todo a la derecha lo hacemos, sino no. if(isRight){ //ahora reposicionamos la lista de categorias y la descripción //lista menuDiv.css({float:right}); //descripción descriptionDiv.css({float:right}); subCategoriesDiv.css({float:right}); } } else { if(fromMenuMid){ // DS 20240206 Ahora usamos left o right para alinear el dropdown con respecto al button y agrego el // string px al final, ya que a veces no lo toma bien. Ademas agrego el left o right inherit para // que no tome un left o right anterior // dropdownDiv.css({margin-left:15}); dropdownDiv.css({left:15 + px, right: inherit}); } else { //DS 20230524 se saco el -9 porque desfazaba el desplegable en el menú inferior //dropdownDiv.css({margin-left:leftPos.left-9}); // DS 20240206 Ahora usamos left o right para alinear el dropdown con respecto al button y agrego el // string px al final, ya que a veces no lo toma bien. Ademas agrego el left o right inherit para // que no tome un left o right anterior // dropdownDiv.css({margin-left:leftPos.left}); dropdownDiv.css({left:leftPos.left + px, right: inherit}); } } }); // ajustamos el tamaño del menu para las pantallas más chicas // obtenemos el tamaño máximo disponible de la pantalla más lo que ocupa el height si es menos de lo que necesita el menu entonces vamos a ajustar le menu var pageHeight $(window).height(); var maxPageHeight 500 + $(#headerSite).height(); if($(window).height() maxPageHeight){ var newHeight pageHeight-$(#headerSite).height()-20; $(.navbardesc-menu).css({height:newHeight+px}); } } // $(.col-desc-description).css() $(.col-desc-categories).on(mouseleave, function(ev){ if($(.col-desc-description).hasClass(empty-value-cat)){ $(.description-menu-data).removeClass(open); } }); //DS 20230608 agregamos esto para que no quede el recuadro transparente si salimos y estaba activada la descripción del desplegable $(.catprin-dropdown-menu).on(mouseleave, function() { // Acciones a realizar cuando se deja de hacer hover var descriptionsSubCat $(.description-menu-data).find(.catprin-dropdown-menu); descriptionsSubCat.css({ boxShadow: none, }); }); $( #busquedaHome).click(function() { $( #formBusqueda ).submit(); }); $(document).ready(function() { // La siguiente funcionalidad es para poner el color alternado en el menú principal del xs var odd true; $(.right-collapse > .navbar-collapse > .nav-top__list > li:visible).each(function() { $(this).removeClass(odd even).addClass(odd?odd:even); odd!odd }); // Fin color alternado $(.navbar-descriptions .col-desc-categories a).on(mouseenter, function (e) { $(this).tab(show); }); // acomodar el top del dropdown-menu var top 0; var rows 0; var css_top 0; $(.navbar-descriptions .dropdown).each(function() { if ($(this).offset().top > top) { rows++; } top $(this).offset().top; if (rows > 1) { // css_top parseInt($(.dropdown-menu.container).css(top)); css_top 34; //Linea comentada: esto le esta agregando un espacio superior al menu de categorias, cuando este esta en el headerCentral // y se carga la pagina despues de haber hecho scroll // No hay comentario de porque se hace esto y a quien se le debe aplicar este top // $(.dropdown-menu.container, this).css(top, (css_top * rows) + px); } }); }); function setBodyPadding() { // set overlay top $(body .overlay:first-child).css(top, $(header).innerHeight() + px); $(body).css(margin, $(header).innerHeight() + px 0px 0px); $(header).css(position, fixed); } $(window).on(load resize, function() { setBodyPadding(); }); /script>div idbodyWrapper> div classloading loading-main> div classspinner-container> i classfa fa-spinner fa-spin>/i> /div> /div> div idbodyContent stylemin-height:80vh > div>div classgroup_53>div classbanner-container slider_max_height_ >div classloadingBanner opcion_2 stylewidth: 100%; background: url(mods/html/fil/Model/BannerECommerce/75/64b6875cce32c-slider-max-mas-cilindro.jpg.webp) center center / auto 545px no-repeat; margin-top: 0px; >/div> div classmain-slider-blueimp stylemargin-top: 0px > !-- inicialización del HTML --> div classblueimp-slider> div idslider_max_height53 classbanners-hidden blueimp-gallery blueimp-gallery-controls blueimp-gallery-carousel blueimp-gallery-display blueimp-gallery-playing opcion_2 styledisplay: none;> div classslides style>/div> h3 classtitle>/h3> div classslider_max_height_ blueimp-container> div classdescription>/div> /div> a classprev>‹/a> a classnext>›/a> a classplay-pause>/a> ol classindicator>/ol> /div> /div> div idlinksslider_max_height53> a hrefmods/html/fil/Model/BannerECommerce/75/64b6875cce32c-slider-max-mas-cilindro.jpg.webp data-description data-link >/a> /div> /div>/div>/div>div classgroup_62>div classcontainer fw-position>div classimg-text-banner stylemargin-top: 30px >div classimg-container>img src stylemax-width:100%; width:100%;>div classb-desc out-of-img>p styletext-align:center;font-family: Montserrat;font-weight: 800;color: #0320af;font-size: 27px;>MAS, Empresa Argentina con sede central ubicada en la provincia de Córdoba, abasteciendo Productos Siderúrgicos en las regiones Centro-Oeste y NOA, con el respaldo de GC y sus más de 65 años de trayectoria./p>/div>/div>/div>/div>/div>div classgroup_55>div classcontainer fw-position>div classimg-text-banner stylemargin-top: 30px >div classimg-container>img src stylemax-width:100%; width:100%;>div classb-desc out-of-img>!-- FIN PRINCIPALES PRODUCTOS-->!--ESTILOS PRINCIPALES PRODUCTOS-->style typetext/css>.main_products{ width: 100%; margin-bottom: 2rem; font-family: Montserrat;}.main_products h2{ width:100%; background-color: #0320af; color: #fff; text-transform:uppercase; text-align:center; border-radius: 15px; height: 100px; display:flex; align-items:center; justify-content:center; font-size: 42px; font-weight: bold;}.main_products p{ margin-bottom: 0;}.main_products .product{ display:flex; justify-content:center; align-items:center; border-radius: 15px; border: 2px solid #0320af; text-align:center; color: #0320af; font-size: 14px; user-select:none; padding: 12px 8px; font-weight: bold; cursor:pointer;}.main_products .product:hover{ background-color: #0320af; color: #fff;} .main_products_container{ display:grid; grid-template-columns: 4fr 5fr; grid-template-rows: .8fr .8fr 1fr; column-gap:10px; margin-top:40px;}.main_products_products_list{ grid-row: 2/4; height: 90%; width: 95%; /*background-color:#788CBF;*/ background-color:#0320af; color: #fff; border-radius: 50px; padding: 10px; font-size: 14px; line-height: 23px; display:flex; font-weight: 400 !important; margin: 8px auto 8px 0;}.main_products_products_list_container{ position:relative; width: 100%;}.main_products_products_list ul{ margin-left: 15px; margin-top: 15px; position: absolute; display: none; list-style: none;}.main_products_products{ grid-row: 1/3; display:grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(4, 1fr); gap: 1rem;}.main_products_cufer{ grid-row: 3/4; text-align:center;}.main_products_cufer img{ max-width: 60%; margin-top: 30px;}.main_products_image{ position:relative; display:flex; justify-content:start; margin-bottom: 10px;}.alter_image{ position: absolute; display: none; width: 95%; height: 100%;}@media(max-width: 1310px){ .main_products .product{ max-height: 65px; font-size: 11px; } .main_products_cufer img{ max-width: 65%; } .main_products_container{ grid-template-rows: .8fr 1fr 1fr; } .alter_image{ min-width: 95%; height: 100%; } .main_products_products_list{ line-height: 21px; }}/style>!-- FIN ESTILOS PRINCIPALES PRODUCTOS -->!--SCRIPT PRINCIPALES PRODUCTOS-->script typetext/javascript> window.currentImage #img_conduccion; window.currentList #list_conduccion; //var oldImage $(#img_conduccion); var oldList $(#list_conduccion); //$(.main_products_products .product).on(mouseenter, e > { //console.log(testt) //var target $(e.currentTarget); var id target.data(id); var newImage $(#img_+id); var cloneOldImage oldImage; var newList $(#list_+id); oldList.css(display, none); newList.css(display, inline-block); oldList newList; oldImage newImage; cloneOldImage.css(display,none); newImage.css(display, inline-block); //})/script>!-- FIN SCRIPT PRINCIPALES PRODUCTOS-->!-- PRINCIPALES PRODUCTOS -->div classmain_products>div>h2>Principales productos/h2>/div>div classmain_products_container>div classmain_products_image>img alt classalter_image idimg_conduccion srcmods/html/fil/ckFiles/images/pr/pr_1_canos_y_tubos_para_la_conduccion.webp styledisplay: block; /> img alt classalter_image idimg_accesorios_conduccion srcmods/html/fil/ckFiles/images/pr/pr_2._accesorios_para_la_conduccion.webp /> img alt classalter_image idimg_canos_mecanicos srcmods/html/fil/ckFiles/images/pr/pr_3_canos_y_tubos_mecanicos_y_estructurales.webp /> img alt classalter_image idimg_perforaciones srcmods/html/fil/ckFiles/images/pr/pr_11_productos_de_perforaciones_de_agua.webp /> img alt classalter_image idimg_herreria srcmods/html/fil/ckFiles/images/pr/pr_12_accesorios_de_herreria.webp /> img alt classalter_image idimg_angulos srcmods/html/fil/ckFiles/images/pr/pr_4._angulos_y_planchuelas.webp /> img alt classalter_image idimg_laminados srcmods/html/fil/ckFiles/images/pr/pr_7_perfiles_laminados.webp /> img alt classalter_image idimg_hierros srcmods/html/fil/ckFiles/images/pr/pr_6._hierros_laminados_trefilados_y_nervurados.webp /> img alt classalter_image idimg_techos srcmods/html/fil/ckFiles/images/pr/pr_9_chapas_para_techos_y_afines.webp /> img alt classalter_image idimg_mallas srcmods/html/fil/ckFiles/images/pr/pr_10_mallas_y_metales.webp /> img alt classalter_image idimg_conformados srcmods/html/fil/ckFiles/images/pr/pr_8._perfiles_conformados.webp /> img alt classalter_image idimg_industria srcmods/html/fil/ckFiles/images/pr/pr_5._chapas_para_la_industria.webp />/div>div classmain_products_products_list>div classmain_products_products_list_container>ul idlist_conduccion styledisplay: block;> li>- Caños con Costura - Tubos sin Costura/li> br /> li>- Negros Lisos - Revestidos - Galvanizados/li> br /> li>- ASTM A53 - A106 - A135 - A179 - A192/li> br /> li>- API 5L X42 - X52 - X60 - X70/li> br /> li>- IRAM 2502/li> br /> li>- Tubos Hidráulicos/li>/ul>ul classproducts_list idlist_herreria> li>- Electrodos/li> li>- Discos de Corte - Discos Flap - Discos Desbaste/li> li>- Ruedas con Soporte - Ruedas sin Soporte/li> li>- Bisagras Munición - Bisagras Reversible/li> li>- Carros Roma - Rieles Roma/li> li>- Seguridad de Muro - Seguridad de Muro Diente de León/li> li>- Cerraduras - Caja Para Cerraduras/li> li>- Pasadores Cincados/li> li>- Puntas Para Reja - Tapas de Caño/li> li>- Thinner - Agua Ras - Antióxido - Triefect De 900 Y 3.6/li>/ul>ul idlist_accesorios_conduccion> li>- Codos/li> br /> li>- Tes y Cruces/li> br /> li>- Bridas/li> br /> li>- Reducciones/li> br /> li>- Casquetes/li>/ul>ul idlist_canos_mecanicos> li>- Con Costura - Sin Costura/li> br /> li>- Redondos - Cuadrados - Rectangulares/li> br /> li>- Tubos Trefilados Apto Bruñido/li> br /> li>- Espesores Finos - Espesores Gruesos/li>/ul>ul idlist_perforaciones> li>- Caños de Acero con Aros Para Soldar Para Camisa de Pozo/li> br /> li>- Filtros Galvanizados e Inoxidables/li> br /> li>- Caños Negros y Galvanizados Roscados con Cupla para Extracción de Aguas Subterráneas/li> br /> li>- Caños Poceros de PVC/li> br /> li>- Salidas de Bomba Y Accesorios Roscados/li>/ul>ul idlist_angulos> li>- F24 - F26 - F36/li> br /> li>- SAE 1045/li> br /> li>- Planchuelas Perforadas/li>/ul>ul idlist_laminados> li>- Perfil W/li> br /> li>- UPN/li> br /> li>- IPN/li> br /> li>- HEA/li> br /> li>- HEB/li> br /> li>- U Chicos/li>/ul>ul idlist_hierros> li>- Redondos - Cuadrados/li> br /> li>- SAE 1010 - 1020 - 1040 - 1045/li> br /> li>- Hierros Lisos AL 220/li> br /> li>- Hierros Nervurados ADN 420/li> br /> li>- Pasadores de Asfalto/li>/ul>ul idlist_techos> li>- Acanaladas - Trapezoidales/li> br /> li>- Chapas Cincalum - Chapas Galvanizadas/li> br /> li>- Chapas Panel tipo Arneg/li> br /> li>- Chapas con Aislantes tipo Arneg/li> br /> li>- Tornillos/li> br /> li>- Aislantes/li>/ul>ul idlist_mallas> li>- Malla Sima Job Shop Negras - Galvanizadas/li> br /> li>- Mallas de Construcción/li> br /> li>- Metal Desplegado/li> br /> li>- Pieles Metálicas/li> br /> li>- Chapas Perforadas/li>/ul>ul idlist_conformados> li>- Perfil C Negro/li> br /> li>- Perfil C Garvanizado/li> br /> li>- Perfil Z/li> br /> li>- Steel Frame/li>/ul>ul idlist_industria> li>- LAF - LAC - Gruesas/li> br /> li>- Negras - Galvanizadas/li> br /> li>- Lisas - Antideslizantes/li> br /> li>- Calidades Comercial - F22 - F24 - F26 - F36/li> br /> li>- Espesores Finos y Gruesos (Hasta 2")/li>/ul>/div>/div>div classmain_products_products>div classproduct data-idconduccion onclickif( typeof window.currentImage undefined ){window.currentImage#img_conduccion;}if( typeof window.currentList undefined){window.currentList#list_conduccion;}$(window.currentImage).fadeOut();$(#img_+$(this).attr(data-id)).fadeIn();window.currentImage#img_+$(this).attr(data-id);$(window.currentList).fadeOut();$(#list_+$(this).attr(data-id)).fadeIn();window.currentList#list_+$(this).attr(data-id);>p>Caños y Tubos para Conducción/p>/div>div classproduct data-idaccesorios_conduccion onclickif( typeof window.currentImage undefined ){window.currentImage#img_conduccion;}if( typeof window.currentList undefined){window.currentList#list_conduccion;}$(window.currentImage).fadeOut();$(#img_+$(this).attr(data-id)).fadeIn();window.currentImage#img_+$(this).attr(data-id);$(window.currentList).fadeOut();$(#list_+$(this).attr(data-id)).fadeIn();window.currentList#list_+$(this).attr(data-id);>p>Accesorios para Conducción/p>/div>div classproduct data-idcanos_mecanicos onclickif( typeof window.currentImage undefined ){window.currentImage#img_conduccion;}if( typeof window.currentList undefined){window.currentList#list_conduccion;}$(window.currentImage).fadeOut();$(#img_+$(this).attr(data-id)).fadeIn();window.currentImage#img_+$(this).attr(data-id);$(window.currentList).fadeOut();$(#list_+$(this).attr(data-id)).fadeIn();window.currentList#list_+$(this).attr(data-id);>p>Caños y Tubos Mecánicos y Estructurales/p>/div>div classproduct data-idperforaciones onclickif( typeof window.currentImage undefined ){window.currentImage#img_conduccion;}if( typeof window.currentList undefined){window.currentList#list_conduccion;}$(window.currentImage).fadeOut();$(#img_+$(this).attr(data-id)).fadeIn();window.currentImage#img_+$(this).attr(data-id);$(window.currentList).fadeOut();$(#list_+$(this).attr(data-id)).fadeIn();window.currentList#list_+$(this).attr(data-id);>p>Productos de perforaciones de agua/p>/div>div classproduct data-idherreria onclickif( typeof window.currentImage undefined ){window.currentImage#img_conduccion;}if( typeof window.currentList undefined){window.currentList#list_conduccion;}$(window.currentImage).fadeOut();$(#img_+$(this).attr(data-id)).fadeIn();window.currentImage#img_+$(this).attr(data-id);$(window.currentList).fadeOut();$(#list_+$(this).attr(data-id)).fadeIn();window.currentList#list_+$(this).attr(data-id);>p>Accesorios de Herrería/p>/div>div classproduct data-idangulos onclickif( typeof window.currentImage undefined ){window.currentImage#img_conduccion;}if( typeof window.currentList undefined){window.currentList#list_conduccion;}$(window.currentImage).fadeOut();$(#img_+$(this).attr(data-id)).fadeIn();window.currentImage#img_+$(this).attr(data-id);$(window.currentList).fadeOut();$(#list_+$(this).attr(data-id)).fadeIn();window.currentList#list_+$(this).attr(data-id);>p>Ángulos y Planchuelas/p>/div>div classproduct data-idlaminados onclickif( typeof window.currentImage undefined ){window.currentImage#img_conduccion;}if( typeof window.currentList undefined){window.currentList#list_conduccion;}$(window.currentImage).fadeOut();$(#img_+$(this).attr(data-id)).fadeIn();window.currentImage#img_+$(this).attr(data-id);$(window.currentList).fadeOut();$(#list_+$(this).attr(data-id)).fadeIn();window.currentList#list_+$(this).attr(data-id);>p>Perfiles Laminados/p>/div>div classproduct data-idhierros onclickif( typeof window.currentImage undefined ){window.currentImage#img_conduccion;}if( typeof window.currentList undefined){window.currentList#list_conduccion;}$(window.currentImage).fadeOut();$(#img_+$(this).attr(data-id)).fadeIn();window.currentImage#img_+$(this).attr(data-id);$(window.currentList).fadeOut();$(#list_+$(this).attr(data-id)).fadeIn();window.currentList#list_+$(this).attr(data-id);>p>Hierros Laminados Trefilados y Nervurados/p>/div>div classproduct data-idtechos onclickif( typeof window.currentImage undefined ){window.currentImage#img_conduccion;}if( typeof window.currentList undefined){window.currentList#list_conduccion;}$(window.currentImage).fadeOut();$(#img_+$(this).attr(data-id)).fadeIn();window.currentImage#img_+$(this).attr(data-id);$(window.currentList).fadeOut();$(#list_+$(this).attr(data-id)).fadeIn();window.currentList#list_+$(this).attr(data-id);>p>Chapas para Techo y Afines/p>/div>div classproduct data-idmallas onclickif( typeof window.currentImage undefined ){window.currentImage#img_conduccion;}if( typeof window.currentList undefined){window.currentList#list_conduccion;}$(window.currentImage).fadeOut();$(#img_+$(this).attr(data-id)).fadeIn();window.currentImage#img_+$(this).attr(data-id);$(window.currentList).fadeOut();$(#list_+$(this).attr(data-id)).fadeIn();window.currentList#list_+$(this).attr(data-id);>p>Mallas y Metales/p>/div>div classproduct data-idconformados onclickif( typeof window.currentImage undefined ){window.currentImage#img_conduccion;}if( typeof window.currentList undefined){window.currentList#list_conduccion;}$(window.currentImage).fadeOut();$(#img_+$(this).attr(data-id)).fadeIn();window.currentImage#img_+$(this).attr(data-id);$(window.currentList).fadeOut();$(#list_+$(this).attr(data-id)).fadeIn();window.currentList#list_+$(this).attr(data-id);>p>Perfiles Conformados/p>/div>div classproduct data-idindustria onclickif( typeof window.currentImage undefined ){window.currentImage#img_conduccion;}if( typeof window.currentList undefined){window.currentList#list_conduccion;}$(window.currentImage).fadeOut();$(#img_+$(this).attr(data-id)).fadeIn();window.currentImage#img_+$(this).attr(data-id);$(window.currentList).fadeOut();$(#list_+$(this).attr(data-id)).fadeIn();window.currentList#list_+$(this).attr(data-id);>p>Chapas para la Industria/p>/div>/div>div classmain_products_cufer>img altGrupo Cufer - Mucho MAS que Aceros srcmods/html/fil/ckFiles/images/logo_grupo_cufer.webp />/div>/div>/div>/div>/div>/div>/div>/div>div classgroup_56>div classcontainer fw-position>div classimg-text-banner stylemargin-top: 0px >div classimg-container>img src stylemax-width:100%; width:100%;>div classb-desc out-of-img>!-- FIN PRINCIPALES MERCADOS ATENDIDOS -->!-- ESTILOS PRINCIPALES MERCADOS ATENDIDOS -->style typetext/css>.main_markets{ width: 100%; margin-bottom: 2rem;}.main_markets img{ width: 100%; transition: .5s transform; opacity: 0.8}.main_markets h2{ width:100%; background-color: #0320af; color: #fff; text-transform:uppercase; text-align:center; border-radius: 15px; /*padding: 2rem;*/ font-weight: bold; height: 10rem; display:flex; align-items:center; justify-content:center; font-size: 42px;font-family: Montserrat;}.main_markets img{ width: 100%:}.main_markets_products{ display:grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(3,1fr); height: 50rem;}.main_markets_products .market{ display:flex; justify-content:center; align-items:center; background-size:contain; background-position:center; background-repeat: no-repeat; color: #fff; font-size: 2.5rem;font-family: Montserrat; font-weight: bold; text-align:center; text-transform: uppercase;}.main_markets_products .market{ position: relative; text-align: center; user-select:none; text-shadow: 3px 2px 4px #000;}.main_markets_products .market p{ position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 100;}.main_markets_products .market p{ line-height: 1;}@media(max-width: 1310px){ .main_markets_products .market{ font-size: 20px; } .main_markets h2{ font-size: 40px; }}/style>!-- FIN ESTILOS PRINCIPALES MERCADOS ATENDIDOS -->!--SCRIPT PRINCIPALES MERCADOS ATENDIDOS-->script typetext/javascript>zoomProductIn function(){ console.log(in);}function zoomProductOut(){ console.log(out);}$(document).ready(function() {console.log(aaa2); $(.main_markets_products .market).on(mouseenter, e > { var target $(e.currentTarget); target.find(img).css(transform, scale(1.1)) }); $(.main_markets_products .market).on(mouseleave, e > { var target $(e.currentTarget); target.find(img).css(transform, scale(1)) });console.log(aaa);});/script>!-- FIN SCRIPT PRINCIPALES MERCADOS ATENDIDOS-->!-- PRINCIPALES MERCADOS ATENDIDOS -->div classmain_markets>div>h2>Principales mercados atendidos/h2>/div>div classmain_markets_container>div classmain_markets_products>div classmarket market_perforacion onmouseenter$(this).find(img).css(transform, scale(1.1)); onmouseleave$(this).find(img).css(transform, scale(1));>p>Perforación/p>img altMercado atendido srcmods/html/fil/ckFiles/images/mer/at_9._perforacion.webp />/div>div classmarket market_herreria onmouseenter$(this).find(img).css(transform, scale(1.1)); onmouseleave$(this).find(img).css(transform, scale(1));>p>Herrería/p>img altMercado atendido srcmods/html/fil/ckFiles/images/mer/at_10._herreria.webp />/div>div classmarket market_arquitectura onmouseenter$(this).find(img).css(transform, scale(1.1)); onmouseleave$(this).find(img).css(transform, scale(1));>p>Arquitectura urbana/p>img altMercado atendido srcmods/html/fil/ckFiles/images/mer/at_12._arquitectura.webp />/div>div classmarket market_alumbrado onmouseenter$(this).find(img).css(transform, scale(1.1)); onmouseleave$(this).find(img).css(transform, scale(1));>p>Alumbrado público y cartelería/p>img altMercado atendido srcmods/html/fil/ckFiles/images/mer/at_5._alumbrado.webp />/div>div classmarket market_montaje onmouseenter$(this).find(img).css(transform, scale(1.1)); onmouseleave$(this).find(img).css(transform, scale(1));>p>Montaje industrial/p>img altMercado atendido srcmods/html/fil/ckFiles/images/mer/at_4._montaje_industrial.webp />/div>div classmarket market_redes onmouseenter$(this).find(img).css(transform, scale(1.1)); onmouseleave$(this).find(img).css(transform, scale(1));>p>Redes de incendio/p>img altMercado atendido srcmods/html/fil/ckFiles/images/mer/at_6_redes_de_incendio.webp />/div>div classmarket market_contruccion onmouseenter$(this).find(img).css(transform, scale(1.1)); onmouseleave$(this).find(img).css(transform, scale(1));>p>Construcción/p>img altMercado atendido srcmods/html/fil/ckFiles/images/mer/at_8._construccion.webp />/div>div classmarket market_industria onmouseenter$(this).find(img).css(transform, scale(1.1)); onmouseleave$(this).find(img).css(transform, scale(1));>p>Industria metalmecánica/p>img altMercado atendido srcmods/html/fil/ckFiles/images/mer/at_3._industria_metalmecanica.webp />/div>div classmarket market_maquinaria onmouseenter$(this).find(img).css(transform, scale(1.1)); onmouseleave$(this).find(img).css(transform, scale(1));>p>Maquinaria agrícola/p>img altMercado atendido srcmods/html/fil/ckFiles/images/mer/at_1._maquinaria_agricola.webp />/div>div classmarket market_energia onmouseenter$(this).find(img).css(transform, scale(1.1)); onmouseleave$(this).find(img).css(transform, scale(1));>p>Energía/p>img altMercado atendido srcmods/html/fil/ckFiles/images/mer/at_2.energia.webp />/div>div classmarket market_remolques onmouseenter$(this).find(img).css(transform, scale(1.1)); onmouseleave$(this).find(img).css(transform, scale(1));>p>Remolques y acoplados/p>img altMercado atendido srcmods/html/fil/ckFiles/images/mer/at_7._remolques_y_acoplados.webp />/div>div classmarket market_alimenticia onmouseenter$(this).find(img).css(transform, scale(1.1)); onmouseleave$(this).find(img).css(transform, scale(1));>p>Industria alimenticia/p>img altMercado atendido srcmods/html/fil/ckFiles/images/mer/at_11._industria_alimenticia.webp />/div>/div>/div>/div>/div>/div>/div>/div>/div>/div> div id bodyContentReact>/div> /div> !-- bodyContent //-->!-- Fin banners -->div classrow style>/div>/div> !-- bodyWrapper //-->div idsection_footer> !--section_footer --> !-- Secciones -->!--Main Footer-->footer classmain-footer> !--Footer Upper--> div classfooter-upper> div classauto-container> div classclearfix> !--Two 4th column--> div classcol-md-0 hidden col-sm-12 column> div classfooter-widget about-widget> h2>Horarios/h2> div styleline-height: 2; font-size: 14px>Lunes a Viernesbr />8:00 a 12:00 y 13:30 a 17:00 br />Sábadosbr />8:00 a 12:00 /div> /div> /div> div classcol-md-6 col-sm-12 column> div classfooter-widget about-widget> h2>Contacto/h2> p>i> /i>i> /i> i> /i>i> /i>ul> li>i classfas fa-phone-alt>/i> 351-4149900/li> li>i>i>i classfab fa-whatsapp>/i> 351-i>i>2355724/i>/i>/i>/i>/li> li>i>i>i classfar fa-envelope>/i> VentasMAS@grupocufer.com/i>/i>/li> li>i>i>i classfab fa-instagram>/i> @marco.aurelio.sosa/i>/i>/li>/ul>/p> /div> /div> div classcol-md-12 col-sm-12 column> div classfooter-widget contact-widget> h2>Ubicación/h2> p> i> /i>i> /i> i> /i>i> /i>ul> li>Casa Central: a hrefhttps://goo.gl/maps/6b81qtWgY8MCm32E9 target_blank> Av. Padre Claret 5700 - Córdoba/a>/li> li>Sucursal: a hrefhttps://goo.gl/maps/9guxPKP4qbAKd9KJ8 target_blank> Av. Velez Sarsfield 4500 - Córdobai>i>/i>/i>/a>/li>/ul> /p> p> /p> /div> /div> !--Two 4th column--> div classcol-md-0 hidden col-sm-12 column> div classfooter-widget contact-widget> !-- Newsletter --> h2>Seguinos en las redes/h2> div classsocial-links-footer> a onclickfbq(track, Contact); window.open( http://www.facebook.com/Marco-Aurelio-Sosa-766112283527866, _blank); classredes-a> div classdiv-redes> i classfab fa-facebook-f>/i> /div> /a> a onclickfbq(track, Contact); window.open( https://www.instagram.com/marco.aurelio.sosa/, _blank); classredes-a> div classdiv-redes> i classfab fa-instagram>/i> /div> /a> /div> div idcontenedorNewsletter> /div> !-- FIN Newsletter --> /div> /div> /div> /div> /div> !--Footer Bottom--> !-- Preguntamos i hay que renderizar un logo a la derecha, preguntamos aca porque de eso depende la cantidad de columnas grid de los divs --> div classfooter-bottom> div classauto-container> !--Copyright--> div classcopyright clearfix text-center> div classrow> div classcol-md-18 copyright__signature> span classsub-footer-text>© 2024 Todos los derechos reservados. | /span> div classfooter-link u styletext-align: center; >a hrefhttps://www.marcoaureliososa.com.ar/politicas-de-privacidad.htm classsub-footer-link >Politicas de privacidad/a>/div>div classsub-footer-text stylewidth:26px; display: inline-block; text-align: center;>|/div>div classfooter-link u styletext-align: center; >a hrefhttps://www.marcoaureliososa.com.ar/aviso-legal.htm classsub-footer-link >Aviso legal/a>/div> /div> div classcol-md-6 copyright__made text-center> a classlogo_copyright_tq hrefhttps://www.tiendaquick.com/ target_blank > img classimg-responsive img-logo srcimages/logos/logotiendaquickw.png altMarco Aurelio Sosa > /a> /div> /div> /div> /div> /div>/footer>div classmain-modals> !-- Modal de filtros --> div classmodal fade idnewsLetterModal tabindex-1 roledialog aria-labelledbynewsLetterModalLabel> div classmodal-dialog modal-lg roledocument> div classmodal-content styleborder-radius: 0> div classmodal-header styleborder-radius: 0> button typebutton classclose stylefont-size: 13px data-dismissmodal aria-labelClose>span aria-hiddentrue>X/span>/button> /div> div classmodal-body adjust-modal row stylepadding-left: 0px;> div classcol-sm-10 image-background stylebackground-image: url();> /div> div classattributes_filters col-sm-14 style height:498px; overflow: auto;> div classtitle-modal-news> label> /label> /div> div stylepadding-top: 15px;> /div> form classfooter-subcribe idformNews actionnewsletters_subscribe.php methodpost> div classsection_page> div classhas-feedback> /div> div classhas-feedback stylemargin-bottom: 11px;> input typetext nameemailplaceholderEmail classrequired email form-control stylewidth: 100% /> /div> /div> div classform-group has-feedback capt-news-letter>table idtable_catpcha border0 cellspacing0 cellpadding0> tr> td stylewidth: 50%; vertical-align: bottom> img idcaptcha_newsletter srcdata:image/jpeg;charsetutf-8;base64, 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 altCAPTCHA Image styleborder: 1px solid; width: 100%;margin-right: 5px;/> /td> td stylewidth: 5%>/td> td stylewidth: 45%; vertical-align: bottom> span classtext_form_contacto>Ingresar captcha/span> a idimagenCaptchaReload onclickcargarNuevaImagenCaptcha(captcha_newsletter)> img srcimages/refresh.png aligntop stylemargin-left: 10px; margin-bottom: 5px; width:20px/> /a> br/> input classform-control inputFormContacto required typetext namecaptcha_newsletter maxlength6 stylewidth:130px /> /td> /tr> /table>/div> div classcheckbox checkbox-corporate stylepadding-left: 0px; margin-top: 18px;> input typecheckbox namepolitica value1 idpoliticaModal classrequired /> label forpoliticaModal classlabel_form> a classbtn-header data-togglemodal href# data-id18 data-target#pagesModal> Acepto las u>Políticas de Privacidad/u> /a> /label> /div> div classclearfix button-adjust> button typesubmit classbtn btnDisabled disabled styleposition: absolute;>Suscribirme/button> /div> input typehidden nameaction valuesend> /form> div stylemin-height: 20px; clear: both;> div idnewsLoading styledisplay: none;>/div> div iderrorNewsletter classerrorNewsletter alert alert-danger styledisplay: none>/div> /div> /div> /div> /div> /div> /div> div classmodal fade idrequestPresupuestForm tabindex-1 roledialog aria-labelledbyrequestPresupuestForm> div classmodal-dialog roledocument stylewidth: 50vw;> div classmodal-content > div classmodal-header> button typebutton classclose data-dismissmodal aria-labelClose>span aria-hiddentrue>×/span>/button> h4 classmodal-title idhomeDeliveryModalLabel>Solicitar Cotización/h4> /div> div classmodal-body adjust-modal row idrequestPresupuestFormBody stylepadding: 30px;padding-bottom: 0px;padding-top: 0px >/div> div classmodal-footer>/div> /div> /div> /div> !-- Modal de tel?onos de contacto --> div classmodal fade idmodalsPhoneInfo roledialog aria-labelledbymodalsPhoneInfoLabel tabindex-1 > div classmodal-dialog modal-sm roledocument> div classmodal-content> div classmodal-header> button typebutton classclose data-dismissmodal aria-labelClose>span aria-hiddentrue>×/span>/button> h4 classmodal-title idhomeDeliveryModalLabel>CONTÁCTENOS/h4> /div> div classmodal-body> div classrow row-modal-info> !-- email --> div classcol-sm-24 col stylemargin-bottom: 10px; margin-top:10px> a onclickfbq(track, Contact); window.open(mailto:VentasMAS@grupocufer.com, _blank) stylecursor:pointer; target_blank > div classinfo-box info-mail> div classrow> div classcol-sm-5> div classicon-container> i classfas fa-envelope>/i> /div> /div> div classcol-sm-19> div classdesc stylewidth: 100%>VentasMAS@grupocufer.com/div> /div> /div> /div> /a> /div> !-- phone --> div classcol-sm-24 col stylemargin-bottom: 10px; margin-top:10px> a onclickfbq(track, Contact); location.hreftel:4149900 stylecursor:pointer; target_blank> div classinfo-box> div classrow> div classcol-sm-5> div classicon-container> i classfas fa-phone fa-rot-90>/i> /div> /div> div classcol-sm-19> div classdesc stylewidth: 100%>4149900/div> /div> /div> /div> /a> /div> /div> /div>!-- /.modal-body --> /div> /div> /div> !-- Fin Modal de tel?onos de contacto --> !-- Modal para las páginas de información --> div classmodal fade idpagesModal tabindex-1 roledialog aria-labelledbypagesModalLabel> div classmodal-dialog modal-lg roledocument> div classmodal-content> div classmodal-header> button typebutton classclose data-dismissmodal aria-labelClose>span aria-hiddentrue>×/span>/button> h4 classmodal-title idpagesModalTitle> !-- Titulo del page info --> /h4> /div> div classmodal-body idpagesModalBody> /div> div classmodal-footer idpagesModalFooter>button classbtn btn-default onclick$(#pagesModal).modal(hide)>Cerrar/button>/div> /div> /div> /div> !-- Modal para las páginas de información --> div classmodal fade iddetails-configure-product-cart tabindex-1 roledialog aria-labelledbypagesModalLabel> div classmodal-dialog modal-lg roledocument> div classmodal-content> div classmodal-header iddetails-configure-product-cart-header> /div> div classmodal-body iddetails-configure-product-cart-body> /div> /div> /div> /div> !-- Fin modal para las páginas de información --> !-- Modal de imagen de locaciones --> div classmodal fade idlocationsImageModal tabindex-1 roledialog aria-labelledbylocationsModalLabel> div classmodal-dialog modal-lg roledocument> div classmodal-content> div classmodal-header> button typebutton classclose data-dismissmodal aria-labelClose>span aria-hiddentrue>×/span>/button> h4 classmodal-title idlocationsImageModalTitle>Envío express/h4> /div> div classmodal-content-img>/div> /div> /div> /div> !-- Fin Modal de imagen de locaciones --> /div> !-- Modal --> div classmodal fade iderrorMessageModal tabindex-1 roledialog aria-labelledbyerrorMessageModalLabel> div classmodal-dialog modal-md roledocument> div classmodal-content> div classmodal-header> button typebutton classclose data-dismissmodal aria-labelClose>span aria-hiddentrue>×/span>/button> h4 classmodal-title iderrorMessageModalTitle> !-- T?ulo del error --> /h4> /div> div classmodal-body idmodalBody> /div> div classmodal-footer idmodalFooter>button classbtn btn-default onclick$(#errorMessageModal).modal(hide) stylebackground-color: #e92026; border-color: #e92026;>Cerrar/button>/div> /div> /div> /div> !-- fin modal --> !-- Modal Refund --> div classmodal fade idrefundModal tabindex-1 roledialog aria-labelledbyrefundModalLabel> div classmodal-dialog modal-md roledocument> div classmodal-content> div classmodal-header styleheight:55px;> button typebutton classclose data-dismissmodal aria-labelClose>span aria-hiddentrue>×/span>/button> h4 classmodal-title idrefundModal>/h4> /div> div classmodal-body idmodalBody> /div> div classmodal-footer idmodalFooter>button classbtn btn-default onclick$(#refundModal).modal(hide) stylebackground-color: #e92026; border-color: #e92026;>Cerrar/button>/div> /div> /div> script typetext/javascript>/script> /div> !-- fin modal Refund --> !-- Modal para visualizar los medios de pago de Mercado Pago --> div classmodal fade idpaymentMethodsMP tabindex-1 roledialog aria-labelledbypaymentMethodsMPLabel>/div> !-- Modal Buscar en responsive --> div classmodal fade idsearchModal tabindex-1 roledialog aria-labelledbysearchModalLabel > div classmodal-dialog modal-search roledocument> div classmodal-content modal-search-reponsive stylemargin-top: 180px;> div classmodal-body> form nameformBusquedaResponsive actionhttps://www.marcoaureliososa.com.ar/resultado-busqueda.htm methodget idformBusquedaResponsive rolesearch stylemax-width:256px> div classform-group stylemargin-right: -15px; margin-left: -15px;> span classinput-group > input typetext classform-control placeholder¿Qué estás buscando? namekeywords value styleborder: 0;> span classinput-group-addon onclick$(#formBusquedaResponsive).submit() stylecursor: pointer;background-color: #efefef; border-top-right-radius: 3px;border-bottom-right-radius: 3px;> i classfa fa-search>/i> /span> /span> /div> /form> /div> /div> /div> /div> div classmodal fade idmodalForceFieldsLogin roledialog aria-labelledbymodalForceFieldsLoginLabel aria-hiddentrue> div classmodal-dialog modal-lg roledocument> div classmodal-content> div classmodal-header> button typebutton classclose data-dismissmodal aria-labelClose>span aria-hiddentrue>×/span>/button> h4 classmodal-title>Campos obligatorios./h4> /div> div classmodal-body stylepadding: 0px; > /div> /div> /div> /div> div classmodal fade idmyModal tabindex-1 roledialog aria-labelledbymyModalLabel aria-hiddentrue>/div>/div>!--Se agrega el siguiente div con todos los contenidos necesarios para el blueimg-->div idblueimp-gallery classblueimp-gallery blueimp-gallery-controls data-hide-page-scrollbarsfalse data-use-bootstrap-modalfalse> !-- The container for the modal slides --> div classslides>/div> !-- Controls for the borderless lightbox --> h3 classtitle>/h3> a classprev>span stylefont-size: 40px; position: relative; top: 5px; right: 1px;> /span>/a> a classnext>span stylefont-size: 40px; position: relative; top: 5px; left: 1px;> >/span>/a> div idcomparteAddthis classclose stylemargin-right:30px;> div idtoolboxCustom classthe-content- >/div> /div> a classclose>span stylefont-size: 40px>x/span>/a> a classplay-pause>/a> ol classindicator>/ol> !-- The modal dialog, which will be used to wrap the lightbox content --> div classmodal fade> div classmodal-dialog> div classmodal-content> div classmodal-header> button typebutton classclose aria-hiddentrue>s×/button> h4 classmodal-title>/h4> /div> div classmodal-body next>/div> div classmodal-footer> button typebutton classbtn btn-default pull-left prev> i classglyphicon glyphicon-chevron-left>/i> Previous /button> button typebutton classbtn btn-primary next> Next i classglyphicon glyphicon-chevron-right>/i> /button> /div> /div> !-- /.modal-content --> /div> !-- /.modal-dialog --> /div> !-- /.modal -->/div> !-- /#blueimp-gallery -->form idgoToProduct action_go_to_product.php methodget> input idbarcode typehidden namebarcode>/input>/form>!-- este div es para js responsive -->div classvisible-xs>/div>style typetext/css> #imagenCaptchaReload { cursor: pointer; }/style> div idcustomLayoutModalContent>/div> div classmodal fade tabindex-1 roledialog idinfo_popup11> div classmodal-dialog modal-lg roledocument> div classmodal-content> div classmodal-header> button typebutton classclose data-dismissmodal aria-labelClose>span aria-hiddentrue>×/span>/button> h4 classmodal-title>¡BIENVENIDO!/h4> /div> div classmodal-body> div>img width100% src />/div>div stylemargin-top:20px;>div classpopup-inicio-row>div classpopup-inicio-bloque popup-inicio-bloque-izq>span classpopup-inicio-descr> HERRERO, ARQUITECTO O ESTAS CONSTRUYENDObr />br />¡COTIZÁ TUS PRODUCTOS! /span> a classpopup-inicio-boton hrefhttps://cotizador.marcoaureliososa.com.ar/listado-productos.htm target_blank>INGRESÁ AQUÍ/a>/div>div classpopup-inicio-bloque popup-inicio-bloque-der>span classpopup-inicio-descr> PERFORACIÓN, INDUSTRIA AGRO, OIL & GASbr />br />¡VISITÁ NUESTRA WEB! /span> a classpopup-inicio-boton hrefjavascript:closeButtonClicked true;$(#info_popup11).modal(hide);>INGRESÁ AQUÍ/a>/div>/div>script>$( document ).ready(function() { });var closeButtonClicked false;$(#info_popup11).on(hide.bs.modal, function (e) { if (!closeButtonClicked) { e.preventDefault(); e.stopPropagation(); return false; } closeButtonClicked false;});/script>/div> /div> div classmodal-footer> button typebutton classbtn btn-default data-dismissmodal>Continuar/button> /div> /div>!-- /.modal-content --> /div>!-- /.modal-dialog --> /div>!-- /.modal --> link relstylesheet typetext/css hrefext/jquery/ui/jquery-ui.min.css /> link hrefext/jquery/jquery.alerts-1.1/jquery.alerts.min.css relstylesheet typetext/css> !-- OwlCarousel --> link relstylesheet hrefext/owl-carousel2-2-3-4/dist/assets/owl.carousel.min.css> link relstylesheet hrefext/owl-carousel2-2-3-4/dist/assets/owl.theme.default.min.css /> div idfirstAddCartModalContainer>/div>div idproductsAddCartModalContainer>/div>script typetext/javascript> // Flag to check if notice is open // Estas variables se usan para mostrar el mensaje de stock (tienen que estar definidas) //significa que en la config STOCK_ALLOW_CHECKOUT se marco la opcion true_without_message, no debemos mostrar el cartel var noShowNotify var notifyOptions { message: span style font-size: 14px;>Hay productos sin stock disponible en su carrito. Deberá quitarlos o modificar las cantidades./span> }; //DS 20230628 agregamos el mensaje nuevo var notifyOptionsBeforeCheckout { message: span style font-size: 14px;>Este producto no tiene stock disponible. Aún así puede realizar el pedido./span> } //------------------------------------------------------------------------------------ //DS 20240410 Aca se van a poner todo lo necesario para que funcione correctamente el script en cart_functions.js //DS 20240410 Creo las variables para guardar la url de _modificoCarro.php var urlModificoCarroActDiff https://www.marcoaureliososa.com.ar/_modificoCarro.php?actiondifference_product; var urlModificoCarroActUpd https://www.marcoaureliososa.com.ar/_modificoCarro.php?actionupdate_product; //DS 20240410 Creo las variables para guardar la url de _agregarCarrito.php var urlAgregarCarritoActExist https://www.marcoaureliososa.com.ar/_agregarCarrito.php?actionexistProduct; var urlAgregarCarritoActAdd https://www.marcoaureliososa.com.ar/_agregarCarrito.php?actionadd_product; var urlAgregarCarritoActRemove https://www.marcoaureliososa.com.ar/_agregarCarrito.php?actionremove_product; var urlAgregarCarritoActRemoveConf https://www.marcoaureliososa.com.ar/_agregarCarrito.php?actionremove_product_config; //DS 20240410 Si esta habilitada la config STOCK_CHECK_BEFORE_CART creo 2 funciones para añadir o sacar // la clase disabled al elemento con id tdb1 function tdb1AddDisabledFunction(){ $(#tdb1).addClass(disabled); } function tdb1RemoveDisabledFunction(){ $(#tdb1).removeClass(disabled); } //DS 20240410 Creo esta funcion para controlar el stock dentro de la funcion actualizarCantidad function checkStockFunction(element, cant, showNotice){ //DS PENDING 20231117 si estamos en alquiler no controlamos stock, esto debería ser parametrizable, pero por ahora no lo controlamos directamente //DS 20230414 agregamos control de la config que checkea el stock de producto antes del carrito //llamamos al stock desde el input hidden var stock parseFloat(element.attr(data-stock)); //que tenga en cuenta la cantidad que hay en el carro y compararlo con eso if (cant > stock) { //vamos a hacer que si el producto supera el stock setee esa cantidad y no deje aumentarla cant stock; //le mandamos el case 3 que agregamos para que aparezca nuestro div mostrando el error ejecutarFormulario(element,3); } return cant, showNotice; } //DS 20240410 Creo la variable para que se use en la funcion actualizarCantidad var enabledDiscountByQty false; // Controla el maximo de compra permitido por producto //DS 20240410 Creo esta funcion para controlar el stock dentro de la funcion actualizarCantidad function checkMaxQtyFunction(cant){ var max_qty_in_cart 99999; if (cant > max_qty_in_cart) { var res_div Math.floor(max_qty_in_cart / unidadcompra); cant unidadcompra * res_div; //DS 20230628 STOCK_ALLOW_CHECKOUT false solo vamos a bloquear la compra si la config lo permite ejecutarFormulario(element,3); } return cant; } //DS 20231122 si cambia la cantidad vamos a calcular el nuevo volumen en métros cúbicos //DS 20240410 Creo la variable para que se use en la funcion actualizarCantidad //al cambiar la cantidad del producto tambien se actualiza el peso del mismo solo si CALCULATE_PRODUCT_WEIGHT_AUTO está activo var updateWeight true; //DS 20240410 Creo las variables para que se usen en la funcion actualizarCantidad var productGrams grs; // Se usan cuando el producto se compra por gramos var productKiloGrams kg; // Se usan cuando el producto se compra por kilo gramos function updateTotalCartElement(prod){ $(idtotalCarrito).html(prod.subtotal); } //DS 20240410 Creo las variables para mostrar el iva var includeTax true; var showTax true; function fbdAddToCartFunction(context){ fbq(track, AddToCart, context); } //DS 20240410 Creo estas variables para el modal del carrito var cartProductsExistsInfo ya estaba agregado en su carrito (; var cartProductsAddMore ¿Desea agregar más cantidad o actualizar la cantidad?; function checkCartQtyFunction(resp, inputQty, qty){ //DS 20240410 Inicializo checkFail var checkFail false; //llamamos al stock desde el input hidden var stock parseFloat(inputQty.attr(data-stock)); //que tenga en cuenta la cantidad que hay en el carro y compararlo el stock con esta misma var cantCarro parseInt(resp) + parseInt(qty); if (cantCarro > stock) { //vamos a hacer que si el producto supera el stock setee esa cantidad y no deje aumentarla cantCarro stock; //le mandamos true para llamar a el modal mas abajo checkFail true; //ejecutarFormulario(inputQty,3); } return cantCarro, checkFail; } //DS 20240410 Creo estas variables para el texto de error var textNoAvailableStock No hay stock disponible para este producto; var textOutOfStockBeforeCartAlert No puede comprar más de ; var textOutOfStockBeforeCartAlert1 de este producto; //DS 20240410 Creo esta variable para armar el modal del producto var titleModalProductsAddCartModal Producto Agregado; //DS 20240410 Creo la funcion para lanzar el evento gtag_report_conversion() //DS 20240410 Creo la variable para el modal de cuando se agrega el producto al carrito var addedToShoppingCart Agregado; //DS 20240410 Creo las variables para el modalfooter de cuando se agrega el producto al carrito var textGoShoppingCart Ir al carro de compras; var textContinue o seguir comprando; var urlFilenameShoppingCart https://www.marcoaureliososa.com.ar/shopping_cart.php; //DS 20240410 Creo la variable para el modal var openModalOnPurchase true; //DS 20240410 Creo las variables para armar el contenido del modal que dirige a login var textoLogin Para realizar una compra debe ingresar con sus datos o registrarse si es su primer compra.; var textoButton Ingresar o registrar!; var urlFilenameLogin https://www.marcoaureliososa.com.ar/entrar.htm; //DS 20240410 Creo la variable para el append en el titulo de la notificacion var notificationTitleAppend Agregado!; //DS 20240411 Creo la variable de la url para la funcion cargarSideCart var urlFilenameShoppingCart https://www.marcoaureliososa.com.ar/shopping_cart.php; //DS 20240411 Creo la variable de la url para completar la cuenta con los campos requeridos var urlFilenameAccountEdit https://www.marcoaureliososa.com.ar/account_edit.php?complete_registration; //DS 20240411 Creo la variable para el texto de que no hay productos var textNoProductsInCart No tiene productos en su carrito; //DS 20240411 Creo la variable que dice si estamos en mobile o no var isMobile ; //DS 20240411 Creo la variable del texto para mi carrito var textMyCart Mi Carrito; //DS 20240411 Creo la variable que estable que tipo de modal es, si es derecho o izquierdo var rightOrLeftCart openModalOnPurchase right_cart ? right_cart : left_cart; //------------------------------------------------------------------------------------ /script> !-- ESTO QUEDA COMENTADO POR AHORA JUNTO AL JS DE ABAJO --> !-- link hrefhttps://fonts.googleapis.com/css?familyPoppins:600 relstylesheet> --> script typetext/javascript> $(#bodyContent).attr({data-rentable:false}); //DS 20221228 se comento el filtroPrecioMaximo porque ralentiza mucho la pagina //$(#bodyContent).attr({data-filtroprecio:}); //DS 20221219 se agrega el data el dato de oferta maxima en porcentaje $(#bodyContent).attr({data-filtrooferta:}); $(#bodyContent).attr({data-ishome:1}); $(#bodyContent).attr({data-rentablename: }); /script> script> function cuponResellerUp(modal, event, checkoutShipping false, hasSheller){ if(!checkoutShipping){ event.preventDefault(); $(#+modal).modal(show); }else{ inputCupon $(#cuponResellerFill).val(); urlAjax $(#gift_card_form).attr(action); if(inputCupon ! || !hasSheller){ $.ajax({ url: urlAjax, type: POST, dataType: Intelligent Guess, data: {gift_card_code: inputCupon}, }) .always(function() { $(#tdb1).removeAttr(onclick); $(#tdb1).find(.btn).click(); }); } } } $( document ).ready(function(e) { $(#modalPaymentRegister).on(show.bs.modal, function(e) { //obtenemos el botón para saber si especifica orden o no var button $(e.relatedTarget); var order button.data(order); //DS 20230320 guardamos en esta variable el customers_id var customer button.data(customer) if(customer undefined){ customer $(#payment_register_button).data(cid) } //DS 20230405 estos son los numeros de comprobantes para registrar pagos desde el menu Cobranzas var nros $(#payment_register_button).data(nros) var total $(#payment_register_button).data(total) //DS 20230720 si aparece mandamos el tipo de modal var type button.data(type) if(type undefined){ type $(#payment_register_button).data(type) } $(#modalPaymentRegister .modal-loading).removeClass(hidden); //DS 20231101 para que el alto del modal se ajuste mejor en teléfono vamos a usar el da ventana var heightModal 560px; $(#modalPaymentRegister .modal-body).css(height, heightModal)//DS 20231101 se personaliza el tamaño para desktop y mobile let iframe $(#payment-register-iframe); iframe.css(height, 100%) var params ; if(order ! undefined){ params + ?orders_id+order; } //DS 20230420 se agregaron estos estilos para que no se superponga el boton guardar con el resto de inputs $(#modalPaymentRegister .modal-body).css(height, heightModal)//DS 20231101 se personaliza el tamaño para desktop y mobile iframe.css(height, 100%) //DS 20230320 agregamos en los parametros el customers_id params + (params ! ?&customers_id:?customers_id)+customer //DS 2023030405 agregamos a los parametros los numeros de comprobantes if(nros ! undefined){ //DS 20230713 params + (params ! ? & : ?)+payment_codes+nros params+ &total+total } //DS 20230713 indicamos que tipo de registro de pago vamos a manejar if(type ! undefined){ params + (params ! ?&:?)+type+type } iframe.css(height, 100%) iframe.attr(src, https://www.marcoaureliososa.com.ar/mods/html/payment-register+params); iframe.load(function(e) { $(#modalPaymentRegister .modal-loading).addClass(hidden); }); }); //DS 20230420 se agrego esto para que cuando cierre el modal de registrar pagos, remueva estos data del boton registrar pagos que esta en el menu de Cobranzas, para que no muestre siempre el filedeq al abrir el modal $(#modalPaymentRegister).on(hide.bs.modal, function(e){ $(#payment_register_button).removeData(nros) $(#payment_register_button).removeData(total) }) }); /script> !-- link relstylesheet typetext/css hrefext/anime-master/css/anime.css /> --> link relstylesheet typetext/css hrefext/anime-master/css/anime.min.css /> script typetext/javascript srcext/anime-master/anime.min.js>/script>script typetext/javascript srcext/jquery/comboBoxAutocomplete.js>/script> !-- script srcext/jquery/comboBoxFront.js?accdfsv23s>/script> --> div idisXs classvisible-xs>/div>script>jQuery.ajaxSetup({cache: true});/script> script typetext/javascript> googleMapsJsUrlhttps://maps.googleapis.com/maps/api/js?keyAIzaSyD0X7HdspJ4rd5MlPmHjJdaxxINrbuho9o&librariesplaces,marker; var isXs $(#isXs).css(display) block; // var ctrlScroll 0; //definimos una variable global de js, para quitar el scroll segun: //si en la request viene page y la pagina actual es productos.htm //el scrol se deshabilita solo en la paginacion del listado de productos de la home var ctrlScroll ; if(ctrlScroll){ $(body).css({overflow:hidden}); } // $(window).on( scroll, function(){ // ctrlScroll $(window).scrollTop(); // }); /** * Función que se ejecuta una vez cargada toda la página * aca debemos meter todos los script que necesiten algun elemento antes cargado por ejemplo los blueimp */ function funcionInicial() { // Aqui se declaran las funcionalidades que tienen en común el slider en LG // y el slider en XS dentro del onslide: function commonScript(index, slide, element) { /* Para agregar la descripción se obtiene del data-description y su contenido se agrega en el tag * con la clase description en la incialización del HTML */ var text element.listindex.getAttribute(data-description); var btnText element.listindex.getAttribute(data-btn-text); var btnTextColor element.listindex.getAttribute(data-btn-text-color); var btnBgColor element.listindex.getAttribute(data-btn-bg-color); node element.container.find(.description); /* Para agregar link */ var link element.listindex.getAttribute(data-link); var target element.listindex.getAttribute(data-target); nodeLinkTo element.container.find(.see-more); /* Eliminar los datos, al cambiar el slider, sino se mostrarán los mismos datos, para todos los sliders */ node.empty(); nodeLinkTo.empty(); $(.slides).unbind(click).css({cursor: default}); // Se pregunta si viene la text (del data-descriton) if (text) { var description p>+text+/p>; // HTML string var div document.createElement(div); $(div).addClass(desc-container); div.innerHTML description; node0.appendChild(div); } $(element.container0).find(.blueimp-container).first().unbind(click); // Se pregunta si viene el link (del data-link) if(link && link ! ) { var decodeLink ; //Determinamos si el link es un obtjeto (solo los links con json son de tipo modal) try { var decodeLink JSON.parse(link); } catch(e) { decodeLink ; } if(typeof decodeLink object){ // Creamos un boton oculto, con los datos para mostrar el modal correcto // en el click del boton o el contenedor, haran trigger click a este boton var hiddenModalClick document.createElement(a); hiddenModalClick.setAttribute(class,hidden); hiddenModalClick.setAttribute(data-id, decodeLink.targetId); hiddenModalClick.setAttribute(data-target, decodeLink.target); hiddenModalClick.setAttribute(data-toggle, decodeLink.targetToggle); hiddenModalClick.setAttribute(href, decodeLink.link); node0.appendChild(hiddenModalClick); } /*Si el boton no tiene texto entonces no se muestra*/ if(btnText ! && jQuery.type( btnText ) ! null){ /*Aqui definimos un boton solo por cuestion visual, ya que el link que deberia de tener, lo tiene todo el contenedor por lo tanto al hacer click, sobre la imagen o sobre el boton abre el link definido*/ var tagLink $(button>/button>).addClass(btn btn-slider); if(btnText){ $(tagLink).text(btnText); } if(btnTextColor){ $(tagLink).css({color: btnTextColor}); } if(btnBgColor){ $(tagLink).css({background-color: btnBgColor}); } var linkContainer document.createElement(div); $(linkContainer).addClass(link-container); $(linkContainer).append($(tagLink)); /*Agregamos el link en el node0 este es el div con la clase .description*/ node0.appendChild(linkContainer); } /* Al hacer click sobre la imagen del slider, este va directo al enlace que se recibe por data-link data-target para ello primero debemos quitarle el evento click, ya que sino se lo estaria seteando cada ves que cambie de slider*/ $(element.container0).find(.blueimp-container).first().click(function(event) { // El solo los links con modal vienen de tipo objeto, previamente creamos un tag a con los datos para mostrar el modal // y lo ocultamos, al hacer click sobre el banner o el boton tagLink, le hacemos un trigger click al boton oculto // para mostrar el modal, de lo contrario hacemos un window.open como estaba desde un principio if(typeof decodeLink object){ hiddenModalClick.click(); }else{ window.open(link, target); } }).css({ cursor: pointer, left: 0px, width: 100vw, max-width: 100vw, height: 100%, transform: inherit, }); } else { $(element.container0).find(.blueimp-container).first().css({ cursor: default, left: 50%, transform: translateX(-50%), width: inherit, height: inherit, max-width: inherit, }); } /** * Si es un video, entonces a la descripción le agregamos la clase hidden */ if(typeof $(element.listindex).attr(data-youtube) ! undefined) { $(element.container).find(.blueimp-container).addClass(hidden); } else { $(element.container).find(.blueimp-container).removeClass(hidden); } } // problema de stack del backdrop // Cuando se quiere abrir un modal sobre otro modal, esta es la solucion para que se pueda visualizar el segundo modal // y para que se oculte el backdrop correcto $(function () { $(document).on(show.bs.modal, .modal, function (event) { var zIndex 1050 + (10 * $(.modal:visible).length); $(this).css(z-index, zIndex); setTimeout(function() { $(.modal-backdrop).not(.modal-stack).css(z-index, zIndex - 1).addClass(modal-stack); }, 0); }); }); function initOwl(){ var useCarrousel 7; if(useCarrousel > 0){ $.ajax({ url: ext/owl-carousel2-2-3-4/dist/owl.carousel.min.js, dataType: script, success: success }); } } hrefLinkAjMenuFrontMobileJshttps://www.marcoaureliososa.com.ar/_aj_menu_front_mobile.php;jsonGetPagesHeaderJs{xs:0,pages_name:Iconos de contacto,pages_name_mobile:,pages_id:101,url_amigable:iconos-de-contacto,show_in_modal:0,pages_key:FRONT_CONTACT_ICONS,has_link:1,category_id:,category_menu:0,target_category:,margin_left:0,margin_right:0,separation_left:0,separation_right:0,orientation:,icon_from_categories:0,sort_order:19,destacado_header:1,destacado_mobile:0,menu_mid:0,menu_inferior:0,hide_menu_title:0,menu_width:0,navbar_type:,display_custom_list:,submenu:0,link:,target:},{xs:0,pages_name:i class\fa fa-home\>\/i>,pages_name_mobile:,pages_id:50,url_amigable:home,show_in_modal:0,pages_key:INDEX_URL,has_link:1,category_id:0,category_menu:0,target_category:,margin_left:30,margin_right:30,separation_left:0,separation_right:0,orientation:,icon_from_categories:,sort_order:20,destacado_header:1,destacado_mobile:0,menu_mid:0,menu_inferior:0,hide_menu_title:0,menu_width:0,navbar_type:,display_custom_list:,submenu:0,link:,target:},{xs:0,pages_name:Profesional,pages_name_mobile:,pages_id:54,url_amigable:profesional,show_in_modal:0,pages_key:PROFESIONAL_PRODUCT_LISTING_URL,has_link:1,category_id:,category_menu:0,target_category:,margin_left:,margin_right:,separation_left:,separation_right:,orientation:,icon_from_categories:,sort_order:24,destacado_header:1,destacado_mobile:0,menu_mid:0,menu_inferior:0,hide_menu_title:0,menu_width:0,navbar_type:,display_custom_list:,submenu:0,link:,target:};dontHideCategoriesJs0;$(head).append(+script typetext/javascript srcext/jquery/ui/i18n/jquery.ui.datepicker-es.js?t17206359301718373100>+/script>);$(head).append(+script typetext/javascript srcext/tq/header.js?t17206359301718373100>+/script>);$(head).append(+script typetext/javascript srcext/bootstrap-slider/dist/bootstrap-slider.min.js>+/script>);$(head).append(+script typetext/javascript srcext/jquery/bootstrap-notify.min.js>+/script>);$(head).append(+script typetext/javascript srcext/tq/cart_functions.js>+/script>); var element document.querySelector(#menuHeader.nav-top); if(element){ var style window.getComputedStyle(element); var background style.getPropertyValue(background-color); $(metanametheme-color).attr(content, background); } $.datepicker.setDefaults($.datepicker.regionales); if($(body).find(#linksslider_max_height53).find(a).length > 0){ blueimp.Gallery( document.getElementById(linksslider_max_height53).getElementsByTagName(a), { container: #slider_max_height53, carousel: true, continuous: true, stretchImages: false, emulateTouchEvents: false, toggleControlsOnSlideClick: false, closeOnSlideClick: false, displayTransition: false, disableScroll: false, onslide: function (index, slide) { commonScript(index, slide, this); }, event: function (index, slide) { alert(ahora); } }); } initOwl()$( document ).ready(function() { $(#info_popup11).modal(show); }); $(#info_popup11).on(show.bs.modal, function(){ $(.modal-backdrop).addClass(modal-stack); }); $(function() { var filter new QuickFilters({ form_selector: formnamefiltros, filtered_inputs: , tec_filter: , default_redirect: https://www.marcoaureliososa.com.ar/resultado-busqueda.htm, manufacturers_filter: , keywords: }); }); $(function(){ var cc 0; var categoriesFilter $(document).find(#filter-categories).first(); if(!cc){ categoriesFilter.find(.category-menu).first().removeClass(in); categoriesFilter.find(.mainFilter i).first().addClass(fa-angle-down).removeClass(fa-angle-up); }else{ categoriesFilter.find(.category-menu).first().addClass(in); categoriesFilter.find(.mainFilter i).first().addClass(fa-angle-up).removeClass(fa-angle-down); } }); $( .telephone ).keypress(function(event) { var keyCode event.which; if ( jQuery.inArray( keyCode, 8,13,32,40,41,43,45 ) -1 && (keyCode 48 || keyCode > 57)) { return false; } }); $(.fas.fa-bars.menu-toggle.menu-toggle-style.menu-toggle-style-menu).hover(function(e){ if(!isXs) { $(divroletabpanel.tp-categories-menu.active:not(#menu_0)).removeClass(active); } });$(.dropdown-submenu).hover(function(){ if($(.hidden-xs).first().css(display) block) { $(this).find(.menu-toggle:first).trigger(click); }}); $(#pagesModal).on(stopLoading, function(e) { $(this).find(#pagesModalBody).html(); }); $(#pagesModal).on(loading, function(e) { let loading $(div>).addClass(loading-bg text-center).append( $(i>).addClass(fas fa-spinner fa-spin).css(font-size, 40px) ); $(this).find(#pagesModalBody).html().append(loading); }); $(#pagesModal).on(show.bs.modal, function(e) { let target $(e.relatedTarget); let id target.data(id); let modal $(#pagesModal); let form $(#page-corp); modal.trigger(loading); $.ajax({ url: https://www.marcoaureliososa.com.ar/_aj_page_info_modal.php, dataType: JSON, method: GET, data: {page: id} }) .done(function(response) { modal.trigger(stopLoading); if(response.code ok) { let res response.result; modal.find(#pagesModalTitle).html(res.title); modal.find(#pagesModalBody).html( res.image + res.resume + res.description ); } }); }); //luego de haber cargado los scrip, entre ellos los carousel de los sliders de la home //activamos el scroll y scrollamos a #prodLists, solo si ctrlScroll es true. if(ctrlScroll){ $(body).css({overflow:scroll}); //scrollTo(#prodLists); } $( document ).ready(function() { $(.btnDisabled).removeAttr(disabled); $(#searchModal).on(show.bs.modal, function(){ $(document).find(header).addClass(filter-blur); $(document).find(#bodyWrapper).addClass(filter-blur); $(document).find(#section_footer .main-footer).addClass(filter-blur); $(document).find(.chaport-container).addClass(filter-blur); $(document).find(#top-link-block).addClass(filter-blur); $(document).find(#main-slider-blueimp).addClass(filter-blur); }); $(#searchModal).on(hide.bs.modal, function(){ $(document).find(header).removeClass(filter-blur); $(document).find(#bodyWrapper).removeClass(filter-blur); $(document).find(#section_footer .main-footer).removeClass(filter-blur); $(document).find(.chaport-container).removeClass(filter-blur); $(document).find(#top-link-block).removeClass(filter-blur); $(document).find(#main-slider-blueimp).removeClass(filter-blur); }); }); //Event snippet for Banners FanPages conversion page --> function initConversionClicker(selector, conversion_snippet) { var el $(selector); var elAnchor $(selector).find(a); var url; if (elAnchor.length > 0) { url elAnchor.attr(href); // nos vamos a encargar del enlace dentro del codigo de conversion // por lo que no se ejecuta la redireccion en el onclick, sino en el callback del conversion elAnchor.on(click, function(e) { e.preventDefault(); }); } el.on(click, function() { conversion_snippet(); }); } $(function() { initConversionClicker(#myCarousel .item#banner_35, function() { console.log(Furey); }); initConversionClicker(#myCarousel .item#banner_36, function() { console.log(Chapoteando); }); }); //DS 20231227 se cambió el nombre de BarcodeDetector a TQBarcodeScanner ya que es un nombre muy general BarcodeDetector y se genera un conflicto con la libreria html5-qrcode-master que define la misma clase TQBarcodeScanner.init(); $(#deliveryPointModal).on(show.bs.modal, function(ev) { $.ajax({ url: https://www.marcoaureliososa.com.ar/_modalEnviosSucursal.php, type: POST, data: {param1: value1}, }) .done(function(data) { $(#deliveryPointModal).html(data); }) .fail(function() { console.log(error); }) .always(function() { console.log(complete); }); }); $(document).ready(function() { $(arelmodalOpenPage, buttonrelmodalOpenPage).click(function(event){ event.preventDefault(); globalModal abrirModal( $(this) ); }); $.extend(jQuery.validator.messages, {required: Los campos marcados con * son requeridos.}); formValidateAjaxForm( formContactoFront, contenedorDestacadoHome, errorContacto, function(data) { var url; console.log(Contact); formValidateSuccess( data, formContactoFront, $(#contenedorDestacadoHome)); }, , { email: { minlength : Su email debe contener un mínimo de 1 caracteres., required: El campo email es obligatorio}, politica: {required: Debe aceptar las políticas de privacidad.}, name: {required: El campo nombre es obligatorio}, phone: {required: Teléfono.}, location: {required: El campo localidad es obligatorio.}, client_type: {required: Debe ingresar un tipo de cliente valido.}, captcha_newsletter: {required: Debe ingresar el captcha.}, } ); formValidateAjaxForm( formNews, contenedorNewsletter, errorNewsletter, successContact, , { email: { minlength : Su email debe contener un mínimo de 1 caracteres., required: El campo email es obligatorio}, politica: {required: Debe aceptar las políticas de privacidad.}, name: {required: El campo nombre es obligatorio}, phone: {required: Teléfono.}, location: {required: El campo localidad es obligatorio.}, client_type: {required: Debe ingresar un tipo de cliente valido.}, captcha_newsletter: {required: Debe ingresar el captcha.}, }, true ); function successContact(data) { var url; console.log(Newsletter); if(data captcha_error) { $(#errorNewsletter).text( + Captcha inválido); $(#errorNewsletter).css({display : }); cargarNuevaImagenCaptcha(captcha_newsletter); loadCaptchasV3(CAPTCHA_NEWSLETTER); } else { // $(#newsLetterModal).modal(toggle); var formContacto $( #contenedorNewsletter ); $(#newsLetterModal .footer-subcribe).after(div classmsgSuccessNewsletter>+data+/div>); $(#newsLetterModal .footer-subcribe).remove() formValidateSuccess( data,formNews,formContacto); } } $(.loginUsuario).click(function() { $(this).css(text-decoration:none); }); $(data-toggletooltip).tooltip(); }); // los eventos de collapse cambian el icono de la flechita cuando se despliegan $(.category-menu, .level_1, .level_2, .level_3, .level_4, .level_5, .filterContent, .sub-filters).on(show.bs.collapse, function(e){ var icon_down_class fa-angle-down; var icon_up_class fa-angle-up; e.stopPropagation(); $(this).siblings(data-togglecollapse).first().find(i).first().removeClass(icon_down_class).addClass(icon_up_class); }); $(.category-menu, .level_1, .level_2, .level_3, .level_4, .level_5, .filterContent, .sub-filters).on(hide.bs.collapse, function(e){ var icon_down_class fa-angle-down; var icon_up_class fa-angle-up; e.stopPropagation(); $(this).siblings(data-togglecollapse).first().find(i).first().removeClass(icon_up_class).addClass(icon_down_class); }); // Only enable if the document has a long scroll bar // Note the window height + offset // llamamos a la funcion para mostrar la flecha para volver a top del sitio, // este pregunta primero por los altos de la ventas +100 debe ser menor al alto del documento // hay que tener en cuenta de que si se cambia el alto del documento (como en el caso de profesionales) // hay que transformarlo a funcion y llamar a esta cuando se hace un resize del document (ver \managerQuick\profesional_product_listing.php > showGoUpButton()) if ( ($(window).height() + 100) $(document).height() ) { $(#top-link-block).removeClass(hidden).affix({ // how far to scroll down before link slides into view offset: {top:100} }); } // Scroll on page link $(a.scrollTo).on(click, function(evt) { evt.preventDefault(); var href $(this).attr(href); if (href ! #) { if (href ) { $(html, body).animate({scrollTop: 0}, 1000); } else { $(html, body).animate({scrollTop: $(href).offset().top}, 1000); } } }); //DS 20240514 Como se superponian los captchas al momento de crearse se paso la iniciaizacion del captcha // a la funcion de php que genera el html de la imagen // cargarNuevaImagenCaptcha(captcha_contact_us); // cargarNuevaImagenCaptcha(captcha_work_us); // cargarNuevaImagenCaptcha(captcha_create_user); // cargarNuevaImagenCaptcha(captcha_login_user); // cargarNuevaImagenCaptcha(captcha_newsletter); loadCaptchasV3(); $(.datepicker).datepicker(); $( document ).ready(function(e) { if(false true){ console.log(captcha); $.ajax({ url: https://www.google.com/recaptcha/api.js?render, dataType: script, success: success }); } }); // DS 20240206 Agrego esta llamada para que se ejecute al final de todo y no se rompan los estilos fixMenuDescriptionPos(); } // FIN - Función - funcion_inicial /** * Esta función setea los captchav3 */ function loadCaptchasV3(keynull) { } /** AGREGAR o QUITAR de favoritos * //DS 20231021 Por lo visto esta funcion hace lo mismo que la que estaba antes en carro.php agregarFavorito(), pero la de este archivo se usa en listados y ficha comun. Y la otra en compra * profesional. Que ahora se esta moviendo a profesional_product_listing.php . Esto lo ideal seria que sea una sola, y ademas llaman a distintos php que hacen lo mismo, _favoritos.hp y _favorites_products.php */ function favoriteManager(element) { $.ajax({ url: https://www.marcoaureliososa.com.ar/_favorites_products.php, type: get, dataType: json, data: {prodId: $(element).data(prod-id), grouperId:$(element).data(grouper-id), action:$(element).attr(data-action)} }).done(function(response) { if(response.code ! ok) { console.log(response.message); } else { if(response.code ok && response.action add){ $(element).removeClass(add); $(element).addClass(attached); $(element).removeAttr(data-action); $(element).attr(data-action, attached); $(element).find(i).removeClass(far).addClass(fas); }else{ $(element).removeClass(attached); $(element).addClass(add); $(element).removeAttr(data-action); $(element).attr(data-action, add); $(element).find(i).removeClass(fas).addClass(far); } } }); } function isset(val) { return typeof(val) ! undefined; } function setTooltip(selector, options) { $(selector).attr(data-toggle, tooltip); if (isset(options.placement)) { $(selector).attr(data-placement, options.placement); } if (isset(options.title)) { $(selector).attr(data-original-title, options.title); } $(selector).tooltip(); } function unsetTooltip(selector) { $(selector).removeAttr(data-toggle); $(selector).removeAttr(data-original-title); } function scrollTo(href) { if (href ! # && $(href).length > 0) { var offset 101; // header height $(html, body).animate({scrollTop: $(href).offset().top - offset}, 1000); } } function cargarNuevaImagenCaptcha(idImagenGrande) { //DS 20240515 Agrego el parametro idImagenGrande en el url para que no se pisen entre si los captchas de la pagina, // antes si habian varios captchas activados se pisaban entre si los codigos de cada captcha y daban codigo invalido // hasta que se regenere el captcha que estamos usando // $(#+idImagenGrande).attr(src,https://www.marcoaureliososa.com.ar/securimage_show.php?rr + Math.random(); $(`#${idImagenGrande}`).attr(src, `https://www.marcoaureliososa.com.ar/securimage_show.php?rr${Math.random()}&id${idImagenGrande}`); return false } function setPostcode() { var shipping_method $(input:radionameshipping:checked).val(); var cargarDatosSucursal false; if (shipping_method ocaSucursal_ocaSucursal) { var el $(#sucursalOca option:selected); cargarDatosSucursal true; } else if(shipping_method andreaniSucursal_andreaniSucursal) { var el $(#sucursalAndreani option:selected); cargarDatosSucursal true; } if(cargarDatosSucursal) { var postcode el.data(codigopostal); var street_address el.data(calle) + + el.data(numero); var city el.data(localidad); var zone_name $(#zone_code option:selected).data(zone-name); $(#idSucursal).val(el.val()); $(#zone_name).val(zone_name); $(#postcodeSucursal).val(postcode); $(#street_address_sucursal).val(street_address); $(#city_sucursal).val(city); } } function abrirModal(element){ $(.modal.fade.temp).remove(); var modalFade $(div>,{ class : modal fade temp }); $( body ).append( modalFade ); modalFade.load( element.attr(href) ); modalFade.modal({ show : true, }).on(hide.bs.modal, function (){ if( typeof onModalClose function ){ onModalClose(); } }).on(hidden.bs.modal, function (){ cerrarModal($(this)); }); return modalFade;} function displayAjaxResult(content, message) { var height content.outerHeight(true); var table $(div />,{ css: { width:100%, display:table, font-weight:bold,height:height } }); var cell $(div />,{ css: { display:table-cell, vertical-align:middle, text-align:center }, html: message }); return table.append( cell ); } function formValidateSuccess( data,nombreForm,formContacto ) { fbq(track, Lead); formContacto.html( displayAjaxResult($(#+nombreForm), data) ); } var LoadingClass function() { this.selector .loading-main; // se guarda un identificador de la ultima llamada.. solo se puede detener utilizando este id this.caller ; this.start function(caller) { this.caller caller; $(this.selector).addClass(active); } this.stop function(caller) { if (caller this.caller) { $(this.selector).removeClass(active); return true; } return false; } } var __loadingObj new LoadingClass(); // Devuelve el gif de loading en el centro del contenedor( content ). function loading(content) { __loadingObj.start(content); return { remove: function() { __loadingObj.stop(content); } }; // var height content.outerHeight(); // var width content.outerWidth(); // var marginTop ( height - 25 ) / 2; // // var giff $(div classuil-ripple-css styletransform:scale(0.6);width: 100px; height: 100px;margin-left: 220px; margin-top: 30px;>div>/div>div>/div>/div>); // var giff $(div classuil-ripple-css styletransform:scale(0.6);width: 100px; height: 100px; position:absolute; right: 0; bottom: -30px;>div>/div>div>/div>/div>); // var overflow $(div />,{ // css: { text-align:center, // height:height, // width: width, // position:absolute, // left:0, // right:0, // top:0, // bottom:0, // z-index:2000, // } // }); // overflow.append(giff); // return overflow; } /** * Esta función sirve para ejecutar la validación del formulario que deseemos, mostrar los mensajes de error o ejecutar una función al ejecutarse el submit correctamente */ function formValidate(nombreForm,contenedorForm,claseContError, successFunction, rulesForm,messageForm){ var reglas $.extend({}, rulesForm); var mensajes $.extend({}, messageForm); var contenedorError $(.+claseContError); $(#+nombreForm).validate({ errorClass: has-error, validClass: has-success, errorContainer: contenedorError, // errorLabelContainer: $(.+claseContError), errorLabelContainer: contenedorError, wrapper: li, // errorPlacement: function( error, element ) { // $( .+claseContError).css(display,).html( error.text() ); // }, rules: reglas, messages: mensajes, submitHandler: function(form) { var formContacto $( #+contenedorForm ); var buttonSubmit $(#+contenedorForm + inputtypesubmit); var labelButton $(buttonSubmit).val(); $(buttonSubmit).val(Enviando...); if( typeof successFunction function ){ successFunction(form); } else{ form.submit(); } }, highlight: function(element, errorClass, validClass) { element $(element); element.parents(.form-group).addClass(errorClass).removeClass(validClass); element.next(.glyphicon.form-control-feedback).addClass(glyphicon-remove).removeClass(glyphicon-ok); }, unhighlight: function(element, errorClass, validClass) { element $(element); element.parents(.form-group).removeClass(errorClass).addClass(validClass); element.next(.glyphicon.form-control-feedback).removeClass(glyphicon-remove).addClass(glyphicon-ok); } }); } /** * Esta función sirve para ejecutar la validación del formulario, y para ejecutar el formulario mediante ajax que deseemos, mostrar los mensajes de error o ejecutar una función al ejecutarse el submit correctamente */ function formValidateAjaxForm(nombreForm, contenedorForm, claseContError, successFunction, rulesForm, messageForm, captchafalse){ var reglas $.extend({}, rulesForm); var mensajes $.extend({}, messageForm); var contenedorError $(.+claseContError); $(#+nombreForm).validate({ errorClass: has-error, validClass: has-success, errorContainer: contenedorError, // errorLabelContainer: $(.+claseContError), errorLabelContainer: contenedorError, wrapper: li, // errorPlacement: function( error, element ) { // $( .+claseContError).css(display,).html( error.text() ); // }, rules: reglas, messages: mensajes, submitHandler: function() { //Guardamos en variable el elemento contenedor del formulario var formContacto $( #+contenedorForm ); var buttonSubmit $(#+nombreForm + typesubmit); var labelButton $(buttonSubmit).html(); //Cambiamos el laber del botón por enviando $(buttonSubmit).html(Enviando...); //Obtenemos la imagen de loading con posicion absoluta sobre el formulario var giffLoading loading( formContacto ); formContacto.before( giffLoading ); //Llamamos por ajax al action del formulario $(#+nombreForm).ajaxSubmit( { type: post, //Antes de hacer el submit del formulario lo que se hace es bloquear todos los input para que no puedan modificarlos en el proceso beforeSubmit: function(arr, $form, options) { $(#+contenedorForm+ input).attr(disabled, true); }, success: function( data ) { $(buttonSubmit).html(labelButton); //Luego que se hace el submit eliminamos la imagen de loading giffLoading.remove(); //Desbloqueamos los campos del formulario $(#+contenedorForm+ input).attr(disabled, false) if( typeof successFunction function ){ successFunction(data); } else{ formValidateSuccess( data,nombreForm,formContacto); } } } ); }, highlight: function(element, errorClass, validClass){ element $(element); element.parents(.form-group).addClass(errorClass).removeClass(validClass); element.next(.glyphicon.form-control-feedback).addClass(glyphicon-remove).removeClass(glyphicon-ok); element.closest(form).find(.error-height-fixer).addClass(hidden); }, unhighlight: function(element, errorClass, validClass){ element $(element); element.parents(.form-group).removeClass(errorClass).addClass(validClass); element.next(.glyphicon.form-control-feedback).removeClass(glyphicon-remove).addClass(glyphicon-ok); } }); } function cerrarModal(element){ $(.modal-header .close).trigger(click); } function blockLogin() { $(#errorMessageModal).find(#errorMessageModalTitle).text(Error); $(#errorMessageModal).find(#modalBody).html(Por el momento estan deshabilitadas las compras desde la tienda); $(#errorMessageModal).modal(show); }$( document ).ready(function(e) { $(window).trigger(scroll); }); //DS:28/09/2021 . No se debe aplicar este cambio si estamos dentro del armador de un producto configurable//DS 20230627 se agrego la opcion true_with_menu_inf a la config ENABLE_HEADER_COLLAPSABLE, si esta seleccionada esta opcion tambien tiene que collapsar el menu inferior //DS 20231204 agregamos el evento resize para que al redimensionar la ventana del navegador tambien active este script y poder acomodar el header cuando se minimice la ventana: incidencia 3128$(window).on(scroll resize, function(e){ // Esto solo va a funcionar de sm en adelante if(!isXs) { // Distancia al top var toTop $(this).scrollTop(); // div que debe ocultarse // var filter $(#container-filter); var filter $(#container-filter); // header chiquito var header $(#menuHeader); // Div contenedor del filtro, carrito y usuario en el header chiquito var minifilter $(.c-collapse); minifilter.find(.username).addClass(hidden); minifilter.find(#totalCarrito).addClass(hidden); //DS 20231204 al minimizar la ventana, si el toTop es menor a 100, intenta desminificar el top y se rompe, asique cuando la ventana sea menor de 1100 px, vamos a activar siempre esta parte para que no rompa: incidencia: 3128 if((toTop > 100 && !filter.hasClass(minified)) || $(window).width() 1100) { // Si estamos a mas de 100px del top y no fue minificado todavÃa, lo minificamos filter.slideUp(250); minifilter.slideDown(250); filter.addClass(minified); filter.find(.nav-top__item.dropdown.open).removeClass(open); header.css(box-shadow, 0 2px 5px 0 rgba(0,0,0,0.75)); $(#headerSite).addClass(shadowed); $(#minified-icons).removeClass(hidden); } else if(toTop 100) { // Si estamos a menos de 100px del top y fue minificado, lo desminificamos filter.slideDown(250); minifilter.slideUp(250); header.css(box-shadow, none); filter.removeClass(minified); $(#minified-icons).addClass(hidden); $(#headerSite).removeClass(shadowed); } }});// function loading(option) {// if (option start) {// $(.loading-main).addClass(active);// } else if (option stop) {// $(.loading-main).removeClass(active);// }// }/* *Función que realiza el llamado de los contactos de whatsapp (o agentes) mediante ajax */function agentsWhatsAppCallAjax(modalUse whatsApp){ var agentsComplete ; var agentsCompleteModal ; var agentsJson ; //console.log(agentsJson); agentsJson $.parseJSON(agentsJson); $.each(agentsJson, function(index, response){ //declaramos las variables que vamos a utilizar var imageContact images/usuario.jpg; var id response.id; var name response.name; var description response.desc; var phone response.phone; var messageAgent response.message; var messageDefault Hola! Me contacto desde la web, queria consultar sobre ; var image response.urlImg; if(image ! null){ imageContact image; } if(messageAgent null || messageAgent ){ message messageDefault; } else { message messageAgent; } //dependiendo de si es para telefono o whatsApp se carga la url if(modalUse whatsApp){ //DS 20240315 cambiamos el href por onclick para agregar el pixel evento de facebook // var urlLinkWhatsapp hrefhttps://wa.me/+phone+?text+message+ target_blank; var urlLinkWhatsapp onclick\fbq(track, Contact); window.open(https://wa.me/+phone+?text+message+, _blank)\; } else { //DS 20240322 cambiamos el href por onclick para agregar el evento pixel de facebook // urlLinkWhatsapp hreftel:+phone+; urlLinkWhatsapp onclick\fbq(track, Contact); location.href tel:+phone+\ stylecursor:pointer;; } var agentUsed div classagents-chat>a classagents + urlLinkWhatsapp +>img src+imageContact+ classagent-image>div classagent-name>+name+/div>div classagent-pre-title>+description+/div>div classborder-wp>/div>/a>/div>; agentsComplete + agentUsed; var agentUsedModal div classagents-chat-modal>a + urlLinkWhatsapp +>img src+imageContact+ classagent-image-modal>div classagent-name-modal>+name+ - +span classagent-pre-title>+description+/span>/div>div classborder-wp-modal>/div>/a>/div>; agentsCompleteModal + agentUsedModal; }); if(modalUse whatsApp){ $(#agentsList).html(agentsComplete); $(#agentsListModal).html(agentsCompleteModal); } else{ $(#agentsListPhone).html(agentsComplete); $(#agentsListPhoneModal).html(agentsCompleteModal); }}/* Función que muestra el modal para consultar precios de un producto //DS 20230811 en el caso que la opcion de solo consulta sea formulario mail. si la opcion seleccionada es whatsapp va a redirigir al whatsapp para la consulta y no abrira ningun modal */function contactInfoProduct(data){ var titleProd data.name; if(data.model ! ){ titleProd + (+data.model+); } $.ajax({ url: _aj_consult_products.php, data: {dataProduct: data}, }) .done(function(html) { //DS 20230811 si el solo consulta es por whatsapp, tiene que dirigir al whatsapp con el nombre del producto y el codigo if(data.type whatsapp){ //DS 20240517 En lugar de open() vamos a usar location.assign() por la compatibilidad con safari // window.open(html); window.location.assign(html); }else{ $(#more-info-products).remove(); $(#bodyWrapper).append(html); $(#more-info-products).modal(show); } });}/* *Función que realiza el llamado de los contactos de telegram (o agentes) mediante ajax (copia de los agentes whatsApp) */function agentsTelegramCallAjax(){ var agentsJson ; agentsJson $.parseJSON(agentsJson); var agentsComplete ; var agentsCompleteModal ; $.each(agentsJson, function(index, response){ //declaramos las variables que vamos a utilizar var imageContact images/usuario.jpg; var id response.id; var name response.name; var description response.desc; var phone response.phone_telegram; var messageAgent response.message; var messageDefault Agentes de telegram; var image response.urlImg; //console.log(image); if(image ! null){ imageContact image; } if(messageAgent null || messageAgent ){ message messageDefault; } else { message messageAgent; } //DS 20240322 cambiamos el href por onclick para agregar el evento pixel de facebook // var urlLinkWhatsapp hrefhttps://t.me/+phone+ target_blank; var urlLinkWhatsapp onclick\fbq(track, Contact); window.open(https://t.me/+phone+, _blank)\ stylecursor:pointer;; var agentUsed div classagents-chat>a + urlLinkWhatsapp +>img src+imageContact+ classagent-image>div classagent-name>+name+/div>div classagent-pre-title>+description+/div>div classborder-wp>/div>/a>/div>; agentsComplete + agentUsed; var agentUsedModal div classagents-chat-modal>a + urlLinkWhatsapp +>img src+imageContact+ classagent-image-modal>div classagent-name-modal>+name+ - +span classagent-pre-title>+description+/span>/div>div classborder-wp-modal>/div>/a>/div>; agentsCompleteModal + agentUsedModal; }); $(#agentsListTelegram).html(agentsComplete); $(#agentsListTelegramModal).html(agentsCompleteModal);}//Esta función reemplaza el contenido de un botón por el texto de procesando mas el icono de cargando//Se tiene que recibir el id del botónfunction executeProcessingButton(id){ let button $(# + id) if(button.length){ button.empty() button.attr(disabled, true) //button.addClass(processing-button) button.html(Procesando i classfas fa-circle-notch fa-fw fa-spin aria-hiddentrue>/i>) }}$(.link-more).click(function(event) { event.preventDefault() let id $(this).data(target); //DS 20230523 Agregamos el campo shipping_retira para indicar si se esta abriendo el modal para elegir una sucursal para retiro en tienda o el listado de sucursales let data {id:id,modalLg:true,shipping_retira:$(this).data(shipping-retira)} $(#maps-pint).remove(); $.ajax({ url: _aj_modals_layout.php, type: POST, data: {data: data} }) .done(function(response) { $(body).append(div idmaps-pint>+response+/div>); switch(id){ case #deliveryPointModal: $(#deliveryPointModal).on(show.bs.modal, function(ev) { $.ajax({ url: https://www.marcoaureliososa.com.ar/_modalEnviosSucursal.php, }) .done(function(data) { $(#deliveryPointModal).html(data); $(#deliveryPointModal).attr(data-pid,); }) }) break; case #expressShippingModal: let title `Envío express`; let content `Eaque temporibus dignissimos molestiae quo saepe pariatur eveniet, vitae blanditiis facilis illo enim fugiat provident vero. Suscipit modi fugit vitae quis, eos quis voluptatibus commodi cupiditate cumque eveniet voluptas ab incidunt, a esse quis hic commodi. Dolorum vitae aperiam est fuga dolore enim qui quo doloribus autem, asperiores consequatur ipsa neque repellendus iste. Quae cumque provident exercitationem ipsam repellendus ipsa debitis accusantium quidem laborum doloribus?br />br />Dolore dicta adipisci reiciendis quia ipsa veniam quos repellendus eligendi, reprehenderit aut necessitatibus animi voluptas perspiciatis sint, dignissimos harum nobis illo rerum sit numquam repellat temporibus, laborum sequi repellendus eligendi possimus libero quidem atque non veritatis, tenetur fuga eligendi?`; $(id).find(id+Title).html(title); $(id).find(id+Body).html(content); break; case #homeDeliveryModal: let shippingHomeTitle `Envío a domicilio`; let shippingHomeContent `div stylebox-sizing: border-box; color: rgb(102, 102, 102); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-align: center;>br />Realizamos envíos a strong>todo el País/strong> por medio de a hrefhttp://www.enviosoca.com/ stylebox-sizing: border-box; background: transparent; color: inherit; text-decoration: none; outline: none; target_blank>strong>OCA/strong>/a>.br />br />Recibí tu producto donde sea que estes y en la comodidad de tu hogar./div>div stylebox-sizing: border-box; color: rgb(102, 102, 102); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);> /div>`; $(id).find(id+Title).html(shippingHomeTitle); $(id).find(id+Body).html(shippingHomeContent); break; case #expenseBuyerModal: let ShippingExpenseBuyerTitle `Envío a cargo del comprador`; let ShippingExpenseBuyerContent `Envío a todo el pais a cargo del comprador.br />br />En el campo comentario debe indicar el transporte a donde debemos despachar el/los producto/s.br />No cobramos flete por envíos hasta el transporte dentro de la ciudad de cordoba`; $(id).find(id+Title).html(ShippingExpenseBuyerTitle); $(id).find(id+Body).html(ShippingExpenseBuyerContent); break; case #freeOverModal: //obtenemos el nombre del modal let ShippingFreeOverTitle `Envío gratis a partir de $ 100.000,00 en Córdoba, Córdoba`; let ShippingFreeOverContent `Envío gratis para compras a partir de $100.000, dentro de la Ciudad de Córdoba`; $(id).find(id+Title).html(ShippingFreeOverTitle); $(id).find(id+Body).html(ShippingFreeOverContent); break; case #freeOver2Modal: //obtenemos el nombre del modal let ShippingFreeOver2Title `Envío gratis a partir de $ 100.000,00 en Córdoba, Córdoba`; let ShippingFreeOver2Content `Texto a mostrar cuando se abre el modal de Envío gratis a partir de X Monto`; $(id).find(id+Title).html(ShippingFreeOver2Title); $(id).find(id+Body).html(ShippingFreeOver2Content); break; case #locationsModal: //DS 20230515 Se agrega comentario. Este metodo se llama cuando se muestra el modal de sucursales e inicializa el mapa con las sucursales $(#locationsModal).on(show.bs.modal, function(e) { //DS 20230515 Esta variable indica si se deben mostrar todas las sucursales o solo las habilitadas para retiro y por lista de precios si esta habilitada la config //Estaria reemplazando a lo que se hizo con isHeader e isHeaderJS showAllLocationsInModal true; if ( data.shipping_retira true ){ showAllLocationsInModal false; } console.log( showAllLocationsInModal:+ showAllLocationsInModal); //DS 20230523 Enviamos el parametro para indicar si esta abriendo el modal para elegir sucursal de retiro en tienda initMap( showAllLocationsInModal, data.shipping_retira ); console.log( showAllLocationsInModal2:+ showAllLocationsInModal); //console.log(isModalLocationSelector); var isHeaderJs $(e.relatedTarget).hasClass(nav-top__link) || $(e.relatedTarget).hasClass(nav-top__link_banner); //alert( isheaderjs + isHeaderJs + --- + 1 ); //customMapResponse(0, true, true); $(inputname\google_maps_addr0\).focus(); if(`1` 1 && isHeaderJs) { //DS 20230515 Se movio dentro del initMap porque debia ejecutarse cuando termine de cargar //DS 20230515 Se agrega comentario. Mostramos la lista de sucursales que muestra todas sin importar si es retiro en tienda (se llama en el menu sucursales) //customMapResponse(0, true, true); } if(`1` ! 1 && !isHeaderJs) { //DS 20230515 Se movio dentro del initMap porque debia ejecutarse cuando termine de cargar //DS 20230515 Se agrega comentario. Mostramos la lista de sucursales habilitadas para retiro en tienda (se llama en el shipping) //customMapResponse(0, false); } }); let locationsModalTitle `Seleccionar ubicación`; let locationsModalContent `input typehidden nameid_tracking idid_tracking value0> input typehidden nameignore_routes idignore_routes valuefalse> input classform-control hidden placeholderLatitud namelat0 typetext idlat0> input classform-control hidden placeholderLongitud namelong0 typetext> div classform-group> label forgoogle_maps_addr0 classcontrol-label col-sm-5 style margin-top: 7px; >Ingrese su dirección:/label> div classinput-group col-sm-13 styledisplay: inline-block;> input typetext namegoogle_maps_addr0 classform-control no-submit addr-input search-map data-index0 placeholder> span class stylewidth: auto;>button idbutton-map-shipping-modal classbtn btn-default styleheight: 34px onclickaddressChanged(search_button_geolocation);>i classfa fa-search>/i>/button>/span>/div>div classinput-group col-sm-4 styledisplay:inline-block>button classbtn idselect_location_DEPRECATED onclickaddressChanged(gps);>Usar mi ubicación actuali classfas fa-crosshairs stylemargin-left: 10px;>/i>/button>/div>/div> div classmap hidden idmap stylewidth: 100%; height: 350px>/div> div classlocations-lit idlocations-list>/div>`; $(id).find(id+Title).html(locationsModalTitle); $(id).find(id+Body).html(locationsModalContent); //DS 20230518 Se oculto el boton buscar porque para que busque realmente debe elegir del listado de sugerencias de google y no busca cualquier cosa que ponga un cliente //Vamos a ver como funciona asi y vamos a agregar un mensaje abajo del input que indique esto $(#button-map-shipping-modal).click(function (e) { $(.locations-lit).removeClass(hidden); }); break; } $(id).modal(show); })});/script>script typetext/javascript> function updateQtyConfById(productsId) { $(.qty_update_ + productsId).on(input, function(){ var prod $(this).attr(data-prd); var step $(this).attr(data-step); var qty this.value; var price $(this).attr(data-price); updateQtyConf(prod, step, qty, price); }); } /script> div classmodal fade idmodalPaymentRegister tabindex-1 roledialog aria-labelledbymodalPaymentRegisterLabel aria-hiddentrue data-keyboardfalse data-backdropstatic> div classmodal-dialog modal-lg roledocument> div classmodal-content> div classmodal-header> button typebutton classclose data-dismissmodal aria-labelClose>span aria-hiddentrue>×/span>/button> h4 classmodal-title>Registrar pago/h4> /div> div classmodal-body stylepadding: 0px; > div classmodal-loading>i classfa fa-spinner fa-spin>/i>/div> iframe src idpayment-register-iframe frameborder0 width100% height400px>/iframe> /div> /div> /div> /div> /div> !-- section_footer --> /div> !--Aca se muestra el globo flotante de telefono en caso de que no tenga agentes --> div idtop-link-block classhidden with-wpp- style> a classbtn scrollTo href> i classfa fa-angle-up aria-hiddentrue>/i> /a>/div>script typetext/javascript> //evento del boton devolucion en el detalle de pedidos $(.btn-refund).on(click, function(event){ let orders_products_id $(this).data(opi); let refundModal $(#refundModal); refundModal.find(.modal-title).html(Devolución) let modalBody refundModal.find(#modalBody) $.ajax({ url: https://www.marcoaureliososa.com.ar//mods/html/admin/orders_products/refunds/get-modal/, data:{orders_products_id} }).done(function(response){ modalBody.html() modalBody.html($(response).find(.modal-body).html()) refundModal.modal(show) }) }); /script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]