CINXE.COM

TSW 2025 | 22-23 stycznia

<!DOCTYPE html><html lang="pl"><head id="page_head"><!-- Google Tag Manager --><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-TN44MVM');</script><!-- End Google Tag Manager --><!-- Google tag (gtag.js) --><script async src="https://www.googletagmanager.com/gtag/js?id=G-FW7V6TQGLT"></script><script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-FW7V6TQGLT'); </script><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /><meta name="author" content="BCS Software SA" /><meta http-equiv="content-type" content="text/html; charset=utf-8" /><meta name='keywords' content='' /><meta name='description' content='' /><link id='favicon' rel='shortcut icon' href='/Handlers/FileHandler.ashx?guid=aecc22ea-9e08-4c2f-b313-e6d33f2e7030' /><style> body.loading, body > div.loading { opacity: 0; } .exs-pleasewait { display: none; position: fixed; z-index: 999999999; width: 100%; height: 100%; background: black; text-align: center; opacity: .2; } .exs-pleasewait > .fa { color: white; margin-top: 20%; font-size: 180px; } .pleasewait .exs-pleasewait { display: block; } </style><!--[if IE]><script src="https://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--><link href="/Content/font-awesome.min.css" rel="stylesheet" /><!--<link href="/Content/Assets/fontawesome/css/fontawesome.css" rel="stylesheet" />--><link href="/Content/Assets/fontawesome/css/brands.css" rel="stylesheet" /><link href="/Content/Assets/fontawesome/css/solid.css" rel="stylesheet" /><!--<link href="/Content/Assets/fontawesome/css/v4-font-face.min.css" rel="stylesheet" /><link href="/Content/Assets/fontawesome/css/v4-shims.min.css" rel="stylesheet" />--><link href="/Content/flag-icon.min.css" rel="stylesheet" /><link href="/Content/bootstrap.css" rel="stylesheet" /><link href="//cdn.exposupport.pl/Content/Assets/kendo-2015.3/styles/kendo.common.min.css" rel="stylesheet" /><link href="//cdn.exposupport.pl/Content/Assets/kendo-2015.3/styles/kendo.bootstrap.min.css" rel="stylesheet" /><link href="//cdn.exposupport.pl/Content/Assets/angular-ngDialog/css/ngDialog.min.css" rel="stylesheet" /><link href="//cdn.exposupport.pl/Content/Assets/angular-ngDialog/css/ngDialog-theme-default.css" rel="stylesheet" /><link href="//cdn.exposupport.pl/Content/Assets/angular-ngDialog/css/ngDialog-ajs.css" rel="stylesheet" /><link href="//cdn.exposupport.pl/Content/modules.css" rel="stylesheet" /><link href="//cdn.exposupport.pl/Content/ajs-form.css" rel="stylesheet" /><link href="/Content/ajs-base.css?n=2" rel="stylesheet" /><link href="//cdn.exposupport.pl/Content/Assets/codemirror-5.11/codemirror.css" rel="stylesheet" /><link href="//cdn.exposupport.pl/Content/Assets/codemirror-5.11/addon/hint/show-hint.css" rel="stylesheet" /><link href='/Handlers/CSSHandlerV2.ashx?o=1,2,3,4,5,6,9,i1723,w12406,t638682652772259209' rel='Stylesheet' type='text/css' /><title> TSW 2025 | 22-23 stycznia </title></head><body class='loading'><div class="exs-content" data-ng-controller="exs-ctrl" data-ng-class="{ 'loading': loading, 'pleasewait': pleasewait }"><div class="exs-pleasewait"><i class="fa fa-cog fa-spin fa-5x"></i></div><div id="content"><link href="https://fonts.googleapis.com/css?family=Montserrat:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet"><link rel="stylesheet" href="/content/assets/OwlCarousel2-2.3.4/css/owl.carousel.css" /><link rel="stylesheet" href="/content/assets/OwlCarousel2-2.3.4/css/owl.themedefault.css" /><header id="ctl21_TopMenu" pname="TopMenu" class="mst-topmenu"><div id="ctl21_staticPersistentPanel_MO19048_WM29679_0" class="container"><div id="ctl21_MO19048_WM29679_MK55140_KO1172_LangSwitcherV1"><div class='lang-switcher'><a class='flag ' href='/en-US/shop-2'><span class='flag-icon flag-icon-gb ' style='width: 26px; height: 20px;'></span></a><span class='lang-switcher-separator'></span><a class='flag select' href='/pl-PL/shop-2'><span class='flag-icon flag-icon-pl selected' style='width: 26px; height: 20px;'></span></a></div></div><div id="ctl21_MO19048_WM29679_MK55141_KO1167_ArticleViewV1"><div id="ctl21_MO19048_WM29679_MK55141_KO1167_ArticleViewV1_ctr_ContentDiv"><div class="social-media"><a target="blank" href="/a/lokalizacja"><img alt="" src="/FileManager/image/006782904d8c4236bdae249e33da20d4/2024/Ikony/ikona-%20pineska-white.png" /></a><a target="blank" href="https://pl.linkedin.com/company/targi-tsw?original_referer=https%3A%2F%2Ftsw.pl%2F"><img alt="" src="/FileManager/image/006782904d8c4236bdae249e33da20d4/2024/Ikony/Ikona-%20linked%20in.png" /></a><a target="blank" href="https://www.facebook.com/targi.tsw/?locale=pl_PL"><img alt="" src="/FileManager/image/006782904d8c4236bdae249e33da20d4/2024/Ikony/Ikona-%20Facebook.png" /></a><a target="blank" href="https://www.instagram.com/targitsw/"><img alt="" src="/FileManager/image/006782904d8c4236bdae249e33da20d4/2024/Ikony/Ikona-%20insta.png" /></a><a href="https://www.youtube.com/@targi-tsw" target="_blank" rel="noopener noreferrer"><img alt="" src="/FileManager/image/006782904d8c4236bdae249e33da20d4/2024/Ikony/Ikona-%20YT.png" /></a></div><div class="logowanie hide"><a style="color: white; text-decoration: none;" href="/login">Zaloguj</a></div><div style="clear: both; height: 0px;">&nbsp;</div></div></div><div id="ctl21_MO19048_WM29679_MK55325_KO1231_MenuV1"><ul class='menu'><li class='menu-item pc menu-item-selected ' data-mn-id='10373'><a href='/shop-2' target='_self' title=''><span>Kup bilet</span></a></li><li class='menu-item pc' data-mn-id='10038'><a href='/login' target='_self' title=''><span>Zaloguj</span></a></li></ul></div></div></header><header id="ctl21_Header" pname="Header" class="mst-header"><div id="ctl21_staticPersistentPanel_MO19009_WM29684_1"><div id="ctl21_MO19009_WM29684_MK55038_KO1167_ArticleViewV1"><div id="ctl21_MO19009_WM29684_MK55038_KO1167_ArticleViewV1_ctr_ContentDiv"><div class="header-tsw"><div class="logo"><a href="/"><img alt="" src="/FileManager/image/006782904d8c4236bdae249e33da20d4/2025/TSW15_logo.png" style="z-index: 20;" /></a></div><div class="main-menu"><nav class='navbar navbar base-menu'><div class='navbar-header'><button type='button' data-target='#navbarCollapse' data-toggle='collapse' class='navbar-toggle'><span class='sr-only'>Toggle navigation</span><span class='icon-bar'></span><span class='icon-bar'></span><span class='icon-bar'></span></button></div><div id='navbarCollapse' class='collapse navbar-collapse'><ul class='nav navbar-nav'><li class='dropdown'><a data-toggle='dropdown' class='dropdown-toggle' href='item.Url'>ZWIEDZAJĄCY<b class='caret'></b></a><ul class='dropdown-menu'><li><a href='/about-visitor'>O targach</a></li><li><a href='/cennik'>Kup bilet</a></li><li><a href='/wystawcy'>Lista wystawców TSW 2025</a></li><li><a href='program'>Konferencje</a></li><li><a href='/strefy'>Zakres branżowy</a></li><li><a href='/cms/galeria-filmy'>Galeria</a></li><li><a href='/dojazd'>Dojazd</a></li><li><a href='/a/baza-hotelowa'>Baza hotelowa</a></li><li><a href='/a/dofinansowanie-dojazdu-dla-grup-zorganizowanych'>Dopłaty do transportu</a></li><li><a href='/strefa-biznesu'>Strefa Biznesu – NOWOŚĆ</a></li><li><a href='/premiery-wystawcow'>Premiery wystawców</a></li><li><a href='/sadownik-roku'>Konkurs Sadownik Roku 2024</a></li></ul></li><li class='dropdown'><a data-toggle='dropdown' class='dropdown-toggle' href='item.Url'>KONFERENCJE<b class='caret'></b></a><ul class='dropdown-menu'><li><a href='/program'>Agenda</a></li><li><a href='/prelegenci'>Prelegenci</a></li></ul></li><li class='dropdown'><a data-toggle='dropdown' class='dropdown-toggle' href='item.Url'>WYSTAWCY<b class='caret'></b></a><ul class='dropdown-menu'><li><a href='/about-exhibitor'>O targach</a></li><li><a href='/etapy-rejestracji-wystawcy'>Zostań wystawcą</a></li><li><a href='/wystawcy'>Lista wystawców TSW 2025</a></li><li><a href='/konkurs-pieniazka'>Konkurs im. Prof. Pieniążka</a></li><li><a href='/dojazd'>Dojazd</a></li><li><a href='/a/informator-wystawcy'>Informator wystawcy</a></li><li><a href='/uslugireklamowe'>Usługi reklamowe</a></li><li><a href='/strefa-biznesu'>Strefa Biznes – NOWOŚĆ</a></li></ul></li><li class='dropdown'><a data-toggle='dropdown' class='dropdown-toggle' href='item.Url'>MEDIA<b class='caret'></b></a><ul class='dropdown-menu'><li><a href='/media/register'>Zarejestruj się</a></li><li><a href='/media/download'>Materiały do pobrania</a></li></ul></li><li class=''><a href='/kontakt' target='_self'>KONTAKT</a></li><li class='mob'><a href='/login' target='_self'>ZALOGUJ</a></li></ul></div></nav></div><div class="header-tsw-fruit header-tsw-apple" style="z-index: 20"></div><div class="header-tsw-fruit header-tsw-blackberry" style="z-index: 10;"></div><div class="header-tsw-fruit header-tsw-strawberry" style="z-index: 10;"></div></div></div></div></div><div id="ctl21_staticPersistentPanel_MO19009_WM29685_2"><div id="ctl21_MO19009_WM29685_MK55038_KO1167_ArticleViewV1"><div id="ctl21_MO19009_WM29685_MK55038_KO1167_ArticleViewV1_ctr_ContentDiv"></div></div></div></header><div id="ctl21_Content" pname="Content" class="mst-content" data-layout-container="true"><div id="ctl21_ctl00_Content" class="container" pname="Content"><div id="ctl21_ctl00_staticPersistentPanel_MO19362_WM30171_0" class="col-md-9 margin-top-30 margin-bottom-50"><div id="ctl21_ctl00_MO19362_WM30171_MK56192_KO1175_SelectProductV1"><div id="ctl21_ctl00_MO19362_WM30171_MK56192_KO1175_SelectProductV1_ctr_ProductsListControl" data-spid="2340" data-timeconflict="INFO" data-productsincartlimit="0" data-templateid="ctl21_ctl00_MO19362_WM30171_MK56192_KO1175_SelectProductV1_ctr_template" data-spid-card="0" class="exs-data" data-availablecurrencies="[]" data-ga4mode="GTM" data-priceunitname="zł" data-ng-controller="MO19362_WM30171_MK56192_KO1175_SelectProductV1_exs_shop_ctrl" data-priceunitid="1" data-ga4="" data-pcshe="" data-prlist="2375;2389;2390" data-shortprice="true" data-pagesize="0"><div data-ng-if="$parent.shop.preview == null"><div data-ng-if="availableCurrencies.length > 1" data-ng-class="{ 'currency-select-disabled' : $parent.shop.cart.items.length > 0 }"><div style="float: right;"><span style="margin-right: 15px;">{{ $parent.resources.waluta }}:</span><span data-ng-repeat="currency in availableCurrencies" class="label" data-ng-class="{ 'label-primary' : $parent.shop.priceUnitID == currency.id, 'label-default' : $parent.shop.priceUnitID != currency.id }" style="margin-right: 5px; cursor: pointer;" data-ng-click="setCurrency(currency.id)">{{currency.short}}</span></div></div><div data-ng-if="availableCurrencies.length > 1" style="clear: both; height: 10px;"></div><hidden data-ng-repeat="product in products" data-ng-include="product.template"></hidden><div data-ng-if="pagination.page > 0 && pagination.page < 9999 && pagination.lastPage > 1" style="clear: both; height: 40px; text-align: center;" class="pagination"><div><span data-ng-show="pagination.page > 1" data-ng-click="pagination.page = pagination.page - 1; loadProducts();">&laquo;</span><span data-ng-repeat="n in [] | range:pagination.lastPage" data-ng-class="{ 'active' : (n+1) === pagination.page }" data-ng-disabled="pagination.page === (n+1)" data-ng-click="pagination.page = (n+1); loadProducts();">{{n+1}}</span><span data-ng-show="pagination.page < pagination.lastPage" data-ng-click="pagination.page = pagination.page + 1; loadProducts();">&raquo;</span></div></div></div><div style="clear: both;"></div></div><input type='hidden' id='hfResources_sp' value='{"wndUzupelnijDaneTitle":"Uzupełnij dane","subProdRequiredEq":"Wymaga ilość: {MIN}.","subProdRequiredMin":"Minimalna ilość: {MIN}.","subProdRequiredMax":"Maksymalnie ilość: {MAX}.","wndWybierzUslugiDodatkowe":"Dodatkowe produkty","wndZapisz":"Zapisz","wndImie":"* Imię","wndNazwisko":"* Nazwisko","wndInstytucja":"Instytucja","wndKraj":"* Kraj","wndUlica":"* Ulica","wndNumerDomu":"* Numer domu","wndKodPocztowy":"* Kod pocztowy","wndMiasto":"* Miasto","wndPoleWymagane":"Pole wymagane !","wndUczestnikowWarsztatu":"Wybierz uczestników warsztatu","wndKonfliktTerminu":"Termin wykładu pokrywa się z:","wndMaxIlosc":"Wybrano już maksymalną ilość\u0026nbsp;","wndBledynyKod":"Błędny kod!","waluta":"Waluta","frmErrors":"Formularz zawiera błędy!","wndBlednyEmail":"Podany e -mail jest niepoprawny!"}' /></div><div id="ctl21_ctl00_MO19362_WM30171_MK63321_KO1182_ProductCard"><div id="ctl21_ctl00_MO19362_WM30171_MK63321_KO1182_ProductCard_ctr_ProductCardControl" data-ng-controller="exs-shop-preview-ctrl" data-spid-card="117" data-priceunitid="1" data-priceunitname="zł" class="exs-data" data-timeconflict="INFO" data-pcshe=""><div class="product-card" data-ng-if="$parent.shop.preview != null"><div class="product-card-close"><a href="#" data-ng-click="closeProductCard()" class="fa fa-times fa-2x"></a></div><hidden ng-include="$parent.shop.preview.card_template != null ? $parent.shop.preview.card_template : card_template"></hidden></div></div></div></div><div id="ctl21_ctl00_staticPersistentPanel_MO19363_WM30172_1" class="col-md-3 margin-top-30 padding-bottom-50"><div id="ctl21_ctl00_MO19363_WM30172_MK56193_KO1180_CartV1"><div id="ctl21_ctl00_MO19363_WM30172_MK56193_KO1180_CartV1_ctr_DataDiv" data-hideprices="false" class="exs-data" data-allowremovesubproducts="false" data-nextstepurl="/shop-2-add" data-fixedcard="true" data-priceunitname="zł" data-priceunitid="1" data-ifcartemptyredirectto="" data-shortprice="false" data-hidezeroitems="false"></div><div data-ng-controller="exs-shop-cart-ctrl" class="cart-content"><div class="cart-panel hidden-xs hidden-sm"><div class="cart-heading"><div id="ctl21_ctl00_MO19363_WM30172_MK56193_KO1180_CartV1_ctr_p1" class="cart-price">{{ $parent.shop.cart.summaryGross }} {{ $parent.shop.cart.priceUnit }}</div><i id="ctl21_ctl00_MO19363_WM30172_MK56193_KO1180_CartV1_ctr_p2" class="fa fa-shopping-cart fa-lg"></i></div><div class="cart-body"><div class="cart-item" data-ng-repeat="item in $parent.shop.cart.items"><div class="fa fa-trash fa-lg cart-item-remove" data-ng-if="item.productType != 'DOSTAWA'" data-ng-click="removeFormCart(item);"></div><div class="cart-item-img"><img data-ng-src="{{item.imgUrl}}" class="img-responsive" /></div><div class="cart-item-update" data-ng-if="item.needUpdate"><a href="#" class="btn btn-danger btn-sm" data-ng-click="showDialog(item);">{{ $parent.resources.btnUzupelnijDane }}</a></div><div class="cart-item-userdata" data-ng-if="!item.needUpdate">{{ item.extUserName || '' }}</div><div class="cart-item-seat" data-ng-if="!item.needUpdate && item.mieName != null">{{ item.mieName || '' }}</div><div class="cart-item-subproduct"><div class="cart-item-subproduct-item"><table style="width: 100%;"><tr><td><div class="cart-item-subproduct-item-name"><htm content="item.shortName"></htm></div></td><td nowrap style="padding-left: 10px; vertical-align: top;"><div id="ctl21_ctl00_MO19363_WM30172_MK56193_KO1180_CartV1_ctr_p3" class="cart-item-subproduct-item-price">{{ item.priceGross }} {{ item.priceUnit }}</div></td></tr></table></div><div class="cart-item-subproduct-item" data-ng-repeat="subitem in item.subProducts" data-ng-if="subitem.priceGross > 0 || hideZeroItems !== 'true'"><table style="width: 100%;"><tr><td><div class="cart-item-subproduct-item-name"> + <htm content="subitem.shortName"></htm></div></td><td nowrap style="padding-left: 10px; vertical-align: top;"><div id="ctl21_ctl00_MO19363_WM30172_MK56193_KO1180_CartV1_ctr_p4" class="cart-item-subproduct-item-price">{{ subitem.priceGross }} {{ $parent.shop.cart.priceUnit }}</div></td><td nowrap style="vertical-align: top;"><div class="cart-item-subproduct-item-trash fa fa-trash fa-sx cart-item-remove" data-ng-click="removeSubproductFormCart(subitem);" data-ng-if="allowRemoveSubproducts === 'true'"></div></td></tr></table></div></div><div style="clear: both; height: 1px;"></div></div></div></div><div class="cart-modal-mobile hidden-md hidden-lg" ng-click="mobileCardShow = false" ng-class="{'cart-modal-mobile-hidden': !mobileCardShow}"></div><div class="cart-content-mobile hidden-md hidden-lg" ng-class="{'cart-content-mobile-hidden': !mobileCardShow}"><div class="cart-item-mobile" data-ng-repeat="item in $parent.shop.cart.items"><div class="fa fa-trash fa-2x cart-item-mobile-remove" data-ng-if="item.productType != 'DOSTAWA'" data-ng-click="removeFormCart(item);"></div><div class="cart-item-mobile-img"><img data-ng-src="{{item.imgUrl}}" class="img-responsive" /></div><div class="cart-item-mobile-update" data-ng-if="item.needUpdate"><a href="#" class="btn btn-danger btn-sm" data-ng-click="showDialog(item);">{{ $parent.resources.btnUzupelnijDane }}</a></div><div class="cart-item-mobile-userdata" data-ng-if="!item.needUpdate">{{ item.extUserName || '' }}</div><div class="cart-item-mobile-subproduct"><div class="cart-item-mobile-subproduct-item"><div class="cart-item-mobile-subproduct-item-price">{{ item.priceGross }} {{ item.priceUnit }}</div><div class="cart-item-mobile-subproduct-item-name">{{ item.name }}</div></div><div class="cart-item-mobile-subproduct-item" data-ng-repeat="subitem in item.subProducts"><div data-ng-if="(subitem.priceGross.trim() !== '0,00' && subitem.priceGross.trim() !== '0.00' && subitem.priceGross.trim() !== '0') || hideZeroItems !== 'true'"><div class="cart-item-mobile-subproduct-item-price">{{ subitem.priceGross }} {{ $parent.shop.cart.priceUnit }}</div><div class="cart-item-mobile-subproduct-item-name">+ <htm content="subitem.shortName"></htm></div></div></div></div><div style="clear: both; height: 1px;"></div></div></div><div class="cart-panel-mobile hidden-md hidden-lg"><a href="{{ cartEmpty() && ifCartEmptyRedirectTo.length > 0 ? ifCartEmptyRedirectTo : nextStepUrl }}" id="ctl21_ctl00_MO19363_WM30172_MK56193_KO1180_CartV1_ctr_NextStepMobile" data-ng-click="showWaitWindow();" class="btn btn-primary btn-sm pull-right" data-ng-class="{ &#39;disabled&#39; : nextDisabled() }">{{ $parent.resources.btnDalej }} <span class="glyphicon glyphicon-chevron-right"></span></a><div ng-click="mobileCardShow = !mobileCardShow"><div class="btn btn-primary btn-sm pull-left"><i class="fa fa-shopping-cart fa-lg"></i>{{ $parent.resources.lblKoszyk }}</div><div class="cart-price-mobile">{{ $parent.shop.cart.summaryGross }} {{ $parent.shop.cart.priceUnit }}</div></div></div><a href="{{ cartEmpty() && ifCartEmptyRedirectTo.length > 0 ? ifCartEmptyRedirectTo : nextStepUrl }}" id="ctl21_ctl00_MO19363_WM30172_MK56193_KO1180_CartV1_ctr_NextStep" data-ng-click="showWaitWindow();" class="btn btn-primary pull-right" data-ng-class="{ &#39;disabled&#39; : nextDisabled() }" style="width: 100%; margin-top: 20px;">{{ $parent.resources.btnDalej }} <span class="glyphicon glyphicon-chevron-right"></span></a><div style="clear: both; height: 30px;"></div><div style="clear: both;"></div></div><input type='hidden' id='hfResources_ca' value='{"btnUzupelnijDane":"Uzupełnij dane","btnDalej":"Dalej","lblKoszyk":"Koszyk"}' /></div><div id="ctl21_ctl00_MO19363_WM30172_MK57667_KO1167_ArticleViewV1"><div id="ctl21_ctl00_MO19363_WM30172_MK57667_KO1167_ArticleViewV1_ctr_ContentDiv"><p>&nbsp;</p><p>W przypadku problem&oacute;w z zakupem biletu zadzwoń tel.: <strong>+48 510 852 263</strong></p></div></div></div></div></div><footer id="ctl21_Footer" pname="Footer" class="mst-footer"><div id="ctl21_staticPersistentPanel_MO19009_WM29686_3" class="container"><div id="ctl21_MO19009_WM29686_MK55038_KO1167_ArticleViewV1"><div id="ctl21_MO19009_WM29686_MK55038_KO1167_ArticleViewV1_ctr_ContentDiv"><section><div class="foter_v2"><div class="cont"><div class="box"><p class="fot_img"><img class="organizer_img" src="/FileManager/image/006782904d8c4236bdae249e33da20d4/Logo/TSW2025_LOGO_footer_pl_bez_magrgin.png"></p><p class="margin35">Lokalizacja: Targi Kielce</p><p>ul. Zakładowa 1, 25&nbsp;-&nbsp;672&nbsp;Kielce</p><p class="bold">e-mail: <a href="mailto:tsw@tsw.pl">tsw@tsw.pl</a></p></div><div class="box box-mob"><p class="bold"><span>ORGANIZATOR</span></p><p class="fot_img"><img class="organizer_img2" src=" https://tsw.pl/FileManager/image/006782904d8c4236bdae249e33da20d4/2024/layout_pc/OIKOS.png"></p><p class="margin35 bold"><span>Oficyna Wydawnicza Oikos sp. z o.o.</span></p><p>ul. Kaliska 1m. 7, 02&nbsp;-&nbsp;316&nbsp;Warszawa</p><p>tel. +48 22 822 03 34</p><p class="bold"><a href="https://oikos.net.pl bold">oikos.net.pl</a></p></div><div class="box"><p class="bold"><a href="https://tsw.pl/Handlers/FileHandler.ashx?guid=a47d3af9-55fa-4631-a260-a6f126273838">Polityka Prywatności</a></p><p class="bold"><a target="_blank" href="/Handlers/FileHandler.ashx?guid=02de65ae-a28d-4977-8c93-1d1e9658e612">Regulamin TSW 2025 dla Zwiedzających</a></p><img class="przelewy-img" src="/Content/images/Przelewy24_logo4.png"></div><div class="box box-mob"><p class="bold">Kontakt</p><div class="social-fot"><a href="https://pl.linkedin.com/company/targi-tsw?original_referer=https%3A%2F%2Ftsw.pl%2F"><img src="/FileManager/image/006782904d8c4236bdae249e33da20d4/2024/Ikony/Ikona-%20linked%20in.png"></a><a href="https://www.facebook.com/targi.tsw/?locale=pl_PL"><img src="/FileManager/image/006782904d8c4236bdae249e33da20d4/2024/Ikony/Ikona-%20Facebook.png"></a><a href="https://www.instagram.com/targitsw/"><img src="/FileManager/image/006782904d8c4236bdae249e33da20d4/2024/Ikony/Ikona-%20insta.png"></a><a href="https://www.youtube.com/@targi-tsw"><img src="/FileManager/image/006782904d8c4236bdae249e33da20d4/2024/Ikony/Ikona-%20YT.png"></a></div></div></div></div></section></div></div></div><div id="ctl21_staticPersistentPanel_MO21457_WM32929_4"><div id="ctl21_MO21457_WM32929_MK62616_KO1167_ArticleViewV1"><div id="ctl21_MO21457_WM32929_MK62616_KO1167_ArticleViewV1_ctr_ContentDiv"></div></div></div><div id="ctl21_staticPersistentPanel_MO22070_WM33884_5"><div id="ctl21_MO22070_WM33884_MK64081_KO1167_ArticleViewV1"><div id="ctl21_MO22070_WM33884_MK64081_KO1167_ArticleViewV1_ctr_ContentDiv"><div class="bcs-footer container"><div class='bcs-footer-wrapper'><a class="bcs-logo" href='https://bcs.com.pl/' target='_blank'><div class="logo-desc">powered by</div><div class="logo-mini"><img alt="bcs-logo-mini" class="bcs-logo-mini" src="/FileManager/image/6fd05c345d75457caa8d878e9bec462b/BCS_mini_logo_w.png" /></div></a><div class='bcs-text'><span> © 2024 BCS SOFTWARE SA </span></div><a class="exs-logo" href='https://exposupport.pl/' target='_blank'><div class="logo-desc">engine</div><div class="logo-mini"><img alt="exs-logo-mini" class="exs-logo-mini" src="/FileManager/image/45a671a54c424218a078975abd1a2fb5/biale-exs.png" /></div></a></div><div class='bcs-text-mobile'><p><a href='https://bcs.com.pl/' target='_blank'> © BCS SOFTWARE SA </a><a href="https://exposupport.pl/" target='_blank'>, ExpoSupport</a></p></div></div></div></div></div></footer></div></div><script> if (!Array.prototype.find) { Object.defineProperty(Array.prototype, "find", { value: function (predicate) { if (this === null) { throw new TypeError('Array.prototype.find called on null or undefined'); } if (typeof predicate !== 'function') { throw new TypeError('predicate must be a function'); } var list = Object(this); var length = list.length >>> 0; var thisArg = arguments[1]; var value; for (var i = 0; i < length; i++) { value = list[i]; if (predicate.call(thisArg, value, i, list)) { return value; } } return undefined; } }); } </script><script src="/Scripts/jquery-1.12.4.min.js"></script><script src="/Scripts/bootstrap.js"></script><script src="//cdn.exposupport.pl/Content/Assets/angular-1.6.1/angular.min.js"></script><script src="//cdn.exposupport.pl/Content/Assets/angular-1.6.1/angular-sanitize.min.js"></script><script src="//cdn.exposupport.pl/Content/Assets/angular-1.6.1/angular-messages.min.js"></script><script src="//cdn.exposupport.pl/Content/Assets/angular-1.6.1/angular-cookies.min.js"></script><script src="//cdn.exposupport.pl/Content/Assets/angular-ngDialog/js/ngDialog.min.js"></script><script src="//cdn.exposupport.pl/Content/Assets/codemirror-5.11/codemirror.js"></script><script src="//cdn.exposupport.pl/Content/Assets/codemirror-5.11/mode/css/css.js"></script><script src="//cdn.exposupport.pl/Content/Assets/codemirror-5.11/addon/hint/show-hint.js"></script><script src="//cdn.exposupport.pl/Content/Assets/ui-codemirror-master/ui-codemirror.js"></script><script src="//cdn.exposupport.pl/Content/Assets/kendo-2015.3/js/kendo.all.min.js"></script><script src="//cdn.exposupport.pl/Content/Assets/kendo-2015.3/js/cultures/kendo.culture.pl.min.js"></script><script src="//cdn.exposupport.pl/Scripts/helper.js?v=10"></script><script> var _controls = []; function initControls(ctrls) { _controls = ctrls; }; function isInit(element, index, array) { return element.init == true; } function setControlInit(ctrID) { $.each($.grep(_controls, function (item, idx) { return item.id == ctrID; }), function (idx, item) { item.init = true; }); if (_controls.every(isInit)) { angular.bootstrap(document, ['exs']); $('body').removeClass('loading'); } }; </script><script src="/Scripts/exs.module.js?v=1807170943"></script><script src="//cdn.exposupport.pl/Scripts/common.js?v=1807170940"></script><script src="/Content/Assets/require.js"></script><script> $(document).ready(function () { var addTop = 0; if ($("header").css("position") == "fixed") addTop = $("header").outerHeight(); $('a[href*="#"]:not([href="#"])').click(function () { var a = $("[data-anchor=" + $(this).attr('href').substring($(this).attr('href').indexOf("#") + 1, $(this).attr('href').length) + "]"); if (a.length > 0) { $('html, body').animate({ scrollTop: $(a).offset().top - addTop }, 500); } }); if (window.location.hash.substring(1) != "") { var a = $("[data-anchor=" + window.location.hash.substring(1) + "]"); if (a.length > 0) { $('html, body').animate({ scrollTop: $(a).offset().top - addTop }, 500); } } changeYouTubeLink(); }); function changeYouTubeLink() { $('a[href*="youtu.be"]:not([target=_blank])').click(function () { openYoutubeLB(this); return false; }); $('a[href*="youtube.com"]:not([target=_blank])').click(function () { openYoutubeLB(this); return false; }); } function openYoutubeLB(s) { var c = $("#youtube-lb-content"); if (c.length == 0) { var link = $(s).attr("href"); if (link.indexOf("youtube.com/watch?v=") > -1) { link = link.substr(link.indexOf("?v=") + 3, link.length); if (link.indexOf("&") > -1) link = link.substr(0, link.indexOf("&")); } else if (link.indexOf("https://youtu.be/") > -1) { link = link.replace("https://youtu.be/", ""); if (link.indexOf("?") > -1) link = link.substr(0, link.indexOf("?")) } $("body").append("<div id='youtube-lb' onclick='closeYoutubeLB();'><div id='youtube-lb-content'><iframe src='https://www.youtube.com/embed/" + link + "?autoplay=1' frameborder='0' allowfullscreen></iframe></div></div>"); setTimeout(function () { $("#youtube-lb").addClass("youtube-lb-black"); }, 100); } } function closeYoutubeLB() { $("#youtube-lb").removeClass("youtube-lb-black"); setTimeout(function () { $("#youtube-lb").remove(); }, 400); } </script><script> $(function () { $("[data-article-sp]").each(function () { var artContent = $(this); var key = $(artContent).attr("data-article-key"); var arID = parseInt($(artContent).attr("data-article-ar")); var spID = parseInt($(artContent).attr("data-article-sp")); if (key == undefined) key = null; if (arID == undefined) arID = null; $.ajax({ type: "POST", async: true, url: "/Ajax/CMSControls.aspx/GetArticle", data: JSON.stringify({ spID: spID, key: key, arID: arID }), contentType: "application/json; charset=utf-8", dataType: "json", success: function (msg) { $(artContent).html(msg.d); }, error: function (xhr, status, error) { console.error("nie można pobrać artykułu x("); console.error(xhr.responseText); } }); }); }); </script><script src="/content/assets/OwlCarousel2-2.3.4/js/owl.carousel.js"></script> <script> $(function () { $(".mst-content").css("min-height", "calc(100vh - " + ($(".mst-header").outerHeight() + $(".mst-footer").outerHeight()) + "px)"); }); </script> <script type='text/ng-template' id='StoreProductTemplate_2340'><div class="pro-item-ctn col-xs-12 col-sm-6 col-sm-4 col-md-4"><div class="pro-item center-block"><div class="pro-item-img"><a href="#"><img data-ng-src="{{product.imgUrl}}" class="img-responsive "></a></div><div class="pro-item-name"><span ng-bind-html='trustAsHtml(product.name)'></span></div><div class="col-md-12 pro-item-price cena"><span ng-if='product.discountsValue > 0'>{{product.priceGross}} {{product.priceUnit}}</span> {{product.priceGrossAfterDiscounts}} {{product.priceUnit}} <p style="color: #888"> ({{(product.priceNetAfterDiscounts | number:2).replace('.' , ';').replace(',' , ' ').replace(';' , ',') }} netto) </div><div class="col-md-12 pro-item-button"><a href="#" ng-click="addToCart(product);" class="btn btn-primary pro-item-buy" style="min-width: 75%;"><span class="fa fa-shopping-cart" style="padding-right: 10px; "></span> {{product.buttonName}} </a></div><div class="col-xs-12 col-md-12 pro-item-desc opis"><span ng-bind-html='trustAsHtml(product.descriptionShort)'></span></div></div></div></script> <script type='text/ng-template' id='personFormId'><div class="form-horizontal"><h5 style="border-bottom: 1px solid #666; padding-bottom: 5px; margin-top: 5px;">{{ $parent.resources.wndUzupelnijDaneTitle }}</h5><div class="form-group"><div class="col-sm-8" style="font-weight: bold;"> {{ dialog.product.name }} </div><div class="col-sm-4" style="text-align: right; font-weight: bold;"> {{ dialog.product.priceGrossAfterDiscounts }} {{ dialog.product.priceUnit }} </div></div><form name="form" data-ng-submit="save()" novalidate><div data-ng-show="form.$submitted" class="form-group"><div data-ng-show="form.$invalid" class="alert alert-danger" style="margin-bottom: 5px;"> {{$parent.resources.frmErrors}} </div></div><div data-ng-if="fieldIf('firstname', dialog.details.args, true)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.firstname.$touched) && !form.firstname.$valid }"><div class="col-sm-12"><input type="text" id="firstname" name="firstname" class="form-control" data-ng-model="dialog.details.firstname" required="required" placeholder="{{ $parent.resources.wndImie }}" /><div data-ng-show="form.$submitted || form.firstname.$touched" class="form-errors"><span data-ng-show="form.firstname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('lastname', dialog.details.args, true)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.firstname.$touched) && !form.lastname.$valid }"><div class="col-sm-12"><input type="text" id="lastname" name="lastname" class="form-control" data-ng-model="dialog.details.lastname" required="required" placeholder="{{ $parent.resources.wndNazwisko }}" /><div data-ng-show="form.$submitted || form.lastname.$touched" class="form-errors"><span data-ng-show="form.lastname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div class="cart-before-save-button"></div><div class="col-sm-12 col-sm-offset-0" style="margin-top: 15px;"><button class="btn btn-primary" style="width: 100%;">{{ $parent.resources.wndZapisz }}</button></div><div style="height: 20px; clear: both;"></div></form></div></script> <script type='text/ng-template' id='subscriptionContinuousFormId'><div class="form-horizontal"><h5 style="border-bottom: 1px solid #666; padding-bottom: 5px; margin-top: 5px;">{{ $parent.resources.wndUzupelnijDaneTitle }}</h5><div class="form-group"><div class="col-sm-8" style="font-weight: bold;"> {{ dialog.product.name }} </div><div class="col-sm-4" style="text-align: right; font-weight: bold;"> {{ dialog.product.priceGrossAfterDiscounts }} {{ dialog.product.priceUnit }} </div></div><form name="form" data-ng-submit="save()" novalidate><div data-ng-show="form.$submitted" class="form-group"><div data-ng-show="form.$invalid" class="alert alert-danger" style="margin-bottom: 5px;"> {{$parent.resources.frmErrors}} </div></div><div data-ng-if="fieldIf('firstname', dialog.details.args, true)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.firstname.$touched) && !form.firstname.$valid }"><div class="col-sm-12"><input type="text" id="firstname" name="firstname" class="form-control" data-ng-model="dialog.details.firstname" required="required" placeholder="{{ $parent.resources.wndImie }}" /><div data-ng-show="form.$submitted || form.firstname.$touched" class="form-errors"><span data-ng-show="form.firstname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('lastname', dialog.details.args, true)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.firstname.$touched) && !form.lastname.$valid }"><div class="col-sm-12"><input type="text" id="lastname" name="lastname" class="form-control" data-ng-model="dialog.details.lastname" required="required" placeholder="{{ $parent.resources.wndNazwisko }}" /><div data-ng-show="form.$submitted || form.lastname.$touched" class="form-errors"><span data-ng-show="form.lastname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><h5 style="padding-top: 15px; margin-left: 15px;">Dane do wysyłki</h5><div class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.companyname.$touched) && !form.companyname.$valid }"><div class="col-sm-12"><input type="text" id="companyname" name="companyname" class="form-control" data-ng-model="dialog.details.companyname" placeholder="{{ $parent.resources.wndInstytucja }}" /><div data-ng-show="form.$submitted || form.companyname.$touched" class="form-errors"><span data-ng-show="form.companyname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.country.$touched) && !form.country.$valid }"><div class="col-sm-12"><select id="country" name="country" class="form-control" ng-options="obj.text for obj in dialog.details.countries" data-ng-model="dialog.details.country" required="required" placeholder="{{ $parent.resources.wndKraj }}"></select><div data-ng-show="form.$submitted || form.country.$touched" class="form-errors"><span data-ng-show="form.country.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div class="form-group"><div class="col-sm-8" style="padding-right: 5px;"><div class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.street.$touched) && !form.street.$valid }" style="margin-bottom: 0px !important;"><div class="col-sm-12" style="padding: 0px;"><input type="text" id="street" name="street" class="form-control" data-ng-model="dialog.details.street" required="required" placeholder="{{ $parent.resources.wndUlica }}" /><div data-ng-show="form.$submitted || form.street.$touched" class="form-errors"><span data-ng-show="form.street.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div></div><div class="col-sm-4" style="padding-left: 0px;"><div class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.streetno.$touched) && !form.streetno.$valid }" style="margin-bottom: 0px !important;"><div class="col-sm-12" style="padding: 0px;"><input type="text" id="streetno" name="streetno" class="form-control" data-ng-model="dialog.details.streetno" required="required" placeholder="{{ $parent.resources.wndNumerDomu }}" /><div data-ng-show="form.$submitted || form.streetno.$touched" class="form-errors"><span data-ng-show="form.streetno.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div></div></div><div class="form-group"><div class="col-sm-3" style="padding-right: 5px;"><div class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.zipcode.$touched) && !form.zipcode.$valid }" style="margin-bottom: 0px !important;"><div class="col-sm-12" style="padding: 0px;"><input type="text" id="zipcode" name="zipcode" class="form-control" data-ng-model="dialog.details.zipcode" required="required" placeholder="{{ $parent.resources.wndKodPocztowy }}" /><div data-ng-show="form.$submitted || form.zipcode.$touched" class="form-errors"><span data-ng-show="form.zipcode.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div></div><div class="col-sm-9" style="padding-left: 0px;"><div class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.city.$touched) && !form.city.$valid }" style="margin-bottom: 0px !important;"><div class="col-sm-12" style="padding: 0px;"><input type="text" id="city" name="city" class="form-control" data-ng-model="dialog.details.city" required="required" placeholder="{{ $parent.resources.wndMiasto }}" /><div data-ng-show="form.$submitted || form.city.$touched" class="form-errors"><span data-ng-show="form.city.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div></div></div><div ng-repeat="obj in dialog.details.consent" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.consent{{$index}}.$touched) && !form.consent{{$index}}.$valid }"><div class="col-sm-12" style="margin-top: 5px;"><input type="checkbox" id="consent{{$index}}" name="consent{{$index}}" data-ng-model="obj.value" required="required" style="opacity: 0; width: 0; height: 0"></input><label for="consent{{$index}}" style="font-size: 14px; font-weight: normal;"><span class="fa-stack" style="font-size: 11px;"><i class="fa fa-square-o fa-stack-2x"></i><i class="fa fa-check fa-stack-1x v-check" style="font-size: 12px;"></i></span><span style="padding-left: 5px;"><htm content="obj.text"></htm></span></label><div data-ng-show="form.$submitted || form.consent{{$index}}.$touched" class="form-errors"><span data-ng-show="form.consent{{$index}}.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div class="cart-before-save-button"></div><div class="col-sm-12 col-sm-offset-0" style="margin-top: 15px;"><button class="btn btn-primary" style="width: 100%;">{{ $parent.resources.wndZapisz }}</button></div><div style="height: 20px; clear: both;"></div></form></div></script> <script type='text/ng-template' id='subscriptionStandardFormId'><div class="form-horizontal"><h5 style="border-bottom: 1px solid #666; padding-bottom: 5px; margin-top: 5px;">{{ $parent.resources.wndUzupelnijDaneTitle }}</h5><div class="form-group"><div class="col-sm-8" style="font-weight: bold;"> {{ dialog.product.name }} </div><div class="col-sm-4" style="text-align: right; font-weight: bold;"> {{ dialog.product.priceGrossAfterDiscounts }} {{ dialog.product.priceUnit }} </div></div><form name="form" data-ng-submit="save()" novalidate><div data-ng-show="form.$submitted" class="form-group"><div data-ng-show="form.$invalid" class="alert alert-danger" style="margin-bottom: 5px;"> {{$parent.resources.frmErrors}} </div></div><div data-ng-if="fieldIf('firstname', dialog.details.args, true)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.firstname.$touched) && !form.firstname.$valid }"><div class="col-sm-12"><input type="text" id="firstname" name="firstname" class="form-control" data-ng-model="dialog.details.firstname" required="required" placeholder="{{ $parent.resources.wndImie }}" /><div data-ng-show="form.$submitted || form.firstname.$touched" class="form-errors"><span data-ng-show="form.firstname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('lastname', dialog.details.args, true)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.firstname.$touched) && !form.lastname.$valid }"><div class="col-sm-12"><input type="text" id="lastname" name="lastname" class="form-control" data-ng-model="dialog.details.lastname" required="required" placeholder="{{ $parent.resources.wndNazwisko }}" /><div data-ng-show="form.$submitted || form.lastname.$touched" class="form-errors"><span data-ng-show="form.lastname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><h5 style="padding-top: 15px; margin-left: 15px;">Dane do wysyłki</h5><div class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.companyname.$touched) && !form.companyname.$valid }"><div class="col-sm-12"><input type="text" id="companyname" name="companyname" class="form-control" data-ng-model="dialog.details.companyname" placeholder="{{ $parent.resources.wndInstytucja }}" /><div data-ng-show="form.$submitted || form.companyname.$touched" class="form-errors"><span data-ng-show="form.companyname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.country.$touched) && !form.country.$valid }"><div class="col-sm-12"><select id="country" name="country" class="form-control" ng-options="obj.text for obj in dialog.details.countries" data-ng-model="dialog.details.country" required="required" placeholder="{{ $parent.resources.wndKraj }}"></select><div data-ng-show="form.$submitted || form.country.$touched" class="form-errors"><span data-ng-show="form.country.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div class="form-group"><div class="col-sm-8" style="padding-right: 5px;"><div class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.street.$touched) && !form.street.$valid }" style="margin-bottom: 0px !important;"><div class="col-sm-12" style="padding: 0px;"><input type="text" id="street" name="street" class="form-control" data-ng-model="dialog.details.street" required="required" placeholder="{{ $parent.resources.wndUlica }}" /><div data-ng-show="form.$submitted || form.street.$touched" class="form-errors"><span data-ng-show="form.street.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div></div><div class="col-sm-4" style="padding-left: 0px;"><div class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.streetno.$touched) && !form.streetno.$valid }" style="margin-bottom: 0px !important;"><div class="col-sm-12" style="padding: 0px;"><input type="text" id="streetno" name="streetno" class="form-control" data-ng-model="dialog.details.streetno" required="required" placeholder="{{ $parent.resources.wndNumerDomu }}" /><div data-ng-show="form.$submitted || form.streetno.$touched" class="form-errors"><span data-ng-show="form.streetno.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div></div></div><div class="form-group"><div class="col-sm-3" style="padding-right: 5px;"><div class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.zipcode.$touched) && !form.zipcode.$valid }" style="margin-bottom: 0px !important;"><div class="col-sm-12" style="padding: 0px;"><input type="text" id="zipcode" name="zipcode" class="form-control" data-ng-model="dialog.details.zipcode" required="required" placeholder="{{ $parent.resources.wndKodPocztowy }}" /><div data-ng-show="form.$submitted || form.zipcode.$touched" class="form-errors"><span data-ng-show="form.zipcode.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div></div><div class="col-sm-9" style="padding-left: 0px;"><div class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.city.$touched) && !form.city.$valid }" style="margin-bottom: 0px !important;"><div class="col-sm-12" style="padding: 0px;"><input type="text" id="city" name="city" class="form-control" data-ng-model="dialog.details.city" required="required" placeholder="{{ $parent.resources.wndMiasto }}" /><div data-ng-show="form.$submitted || form.city.$touched" class="form-errors"><span data-ng-show="form.city.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div></div></div><div class="cart-before-save-button"></div><div class="col-sm-12 col-sm-offset-0" style="margin-top: 15px;"><button class="btn btn-primary" style="width: 100%;">{{ $parent.resources.wndZapisz }}</button></div><div style="height: 20px; clear: both;"></div></form></div></script> <script type='text/ng-template' id='ticketFormId'><div class="form-horizontal"><h5 style="border-bottom: 1px solid #666; padding-bottom: 5px; margin-top: 5px;">{{ $parent.resources.wndUzupelnijDaneTitle }}</h5><div class="form-group"><div class="col-sm-8" style="font-weight: bold;" ng-bind-html="dialog.product.name"></div><div class="col-sm-4" style="text-align: right; font-weight: bold;"> {{ dialog.product.priceGrossAfterDiscounts }} {{ dialog.product.priceUnit }} </div></div><form name="form" data-ng-submit="save()" novalidate><div data-ng-show="form.$submitted" class="form-group"><div data-ng-show="form.$invalid" class="alert alert-danger" style="margin-bottom: 5px;"> {{$parent.resources.frmErrors}} </div></div><div data-ng-if="fieldIf('firstname', dialog.details.args, true)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.firstname.$touched) && !form.firstname.$valid }"><div class="col-sm-12"><input type="text" id="firstname" name="firstname" class="form-control" ng-disabled="fieldDisabled('firstname', dialog.details.args, false)" data-ng-model="dialog.details.firstname" required="required" placeholder="{{ $parent.resources.wndImie }}" /><div data-ng-show="form.$submitted || form.firstname.$touched" class="form-errors"><span data-ng-show="form.firstname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('lastname', dialog.details.args, true)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.lastname.$touched) && !form.lastname.$valid }"><div class="col-sm-12"><input type="text" id="lastname" name="lastname" class="form-control" ng-disabled="fieldDisabled('lastname', dialog.details.args, false)" data-ng-model="dialog.details.lastname" required="required" placeholder="{{ $parent.resources.wndNazwisko }}" /><div data-ng-show="form.$submitted || form.lastname.$touched" class="form-errors"><span data-ng-show="form.lastname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('position', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.position.$touched) && !form.position.$valid }"><div class="col-sm-12"><input type="text" id="position" name="position" class="form-control" ng-disabled="fieldDisabled('position', dialog.details.args, false)" data-ng-model="dialog.details.position" ng-required="fieldRequired('position', dialog.details.args, false)" placeholder="{{ fieldLabel('position', dialog.details.args, 'Stanowisko') }}" /><div data-ng-messages="form.position.$error" data-ng-show="form.$submitted || form.position.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('email', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.email.$touched) && !form.email.$valid }"><div class="col-sm-12"><input type="email" id="email" name="email" class="form-control" ng-disabled="fieldDisabled('email', dialog.details.args, false)" data-ng-model="dialog.details.email" ng-required="fieldRequired('email', dialog.details.args, false)" placeholder="{{ fieldLabel('email', dialog.details.args, 'Adres e-mail') }}" /><div data-ng-messages="form.email.$error" data-ng-show="form.$submitted || form.email.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span><span data-ng-message="email" class="info-block">{{ $parent.resources.wndBlednyEmail }}</span></div></div></div><div data-ng-if="fieldIf('phone', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.phone.$touched) && !form.phone.$valid }"><div class="col-sm-12"><input type="text" id="phone" name="phone" class="form-control" ng-disabled="fieldDisabled('phone', dialog.details.args, false)" data-ng-model="dialog.details.phone" ng-required="fieldRequired('phone', dialog.details.args, false)" placeholder="{{ fieldLabel('phone', dialog.details.args, 'Telefon') }}" /><div data-ng-messages="form.phone.$error" data-ng-show="form.$submitted || form.phone.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div class="form-group" data-ng-class="{ 'dialog-product-info' : dialog.product.info != null && dialog.product.info && dialog.product.info.length > 0 }"> {{ dialog.product.info }} </div><h5 ng-if="dialog.product.subproducts && dialog.product.subproducts.length > 0" style="border-bottom: 1px solid #666; padding-bottom: 5px; margin-top: 20px;">{{ $parent.resources.wndWybierzUslugiDodatkowe }}</h5><div class="has-error"><div ng-repeat="obj in dialog.product.subproducts" class="" data-ng-class="{ 'has-error' : (form.$submitted || form.subproduct{{$index}}.$touched) && !form.subproduct{{$index}}.$valid, 'no-availability': obj.availability <= 0 || checkGroups(dialog.product.subproducts, obj.id, obj.groups) > 0 }"><div class="form-group" style="margin-top: 5px;"><input ng-disabled="obj.availability <= 0 || checkGroups(dialog.product.subproducts, obj.id, obj.groups) > 0" type="checkbox" id="subproduct{{$index}}" name="subproduct{{$index}}" data-ng-model="obj.value" {{ obj.required ? "'required='required'" : '' }}" style="opacity: 0; width: 0; height: 0"></input><label for="subproduct{{$index}}" style="font-size: 14px; font-weight: normal; width: 100%; margin-bottom: 0px;" ng-class="{'not-availability': obj.availability <= 0 || checkGroups(dialog.product.subproducts, obj.id, obj.groups) > 0 }"><div class="col-sm-12 " style="font-weight: normal;"><div ng-if="obj.priceGross >= 0" class="col-sm-9" style="text-align: left; font-weight: bold;"><span class="fa-stack col-sm-1" style="font-size: 11px;"><i class="fa fa-square-o fa-stack-2x" style="margin-left: -3px;"></i><i class="fa fa-check fa-stack-1x v-check" style="font-size: 12px; margin-left: -3px;"></i></span><htm content="obj.name"></htm></div><div ng-if="obj.priceGross > 0" class="col-sm-3" style="text-align: right; font-weight: bold;"> {{ obj.priceGrossString }} {{ obj.currency }} </div><htm content="obj.decription"></htm></div></label><div data-ng-show="form.$submitted || form.subproduct{{$index}}.$touched" class="form-errors" style="margin-left: 18px;"><span data-ng-show="form.subproduct{{$index}}.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-show="form.$submitted || form.$error.subproductsRequired" class="form-errors" style="margin-left: 18px;"><span data-ng-show="form.$error.subproductsRequired" class="info-block">{{subproductsValidatorText(dialog.product)}}</span></div></div><div class="cart-before-save-button"></div><div class="col-sm-12 col-sm-offset-0" style="margin-top: 15px;"><button class="btn btn-primary" style="width: 100%;">{{ $parent.resources.wndZapisz }}</button></div><div style="height: 20px; clear: both;"></div></form></div></script> <script type='text/ng-template' id='workshopFormId'><div class="form-horizontal"><h5 style="border-bottom: 1px solid #666; padding-bottom: 5px; margin-top: 5px;">{{ $parent.resources.wndUzupelnijDaneTitle }}</h5><div class="form-group"><div class="col-sm-8" style="font-weight: bold;" ng-bind-html="dialog.product.name"></div><div class="col-sm-4" style="text-align: right; font-weight: bold;"> {{ dialog.product.priceGrossAfterDiscounts }} {{ dialog.product.priceUnit }} </div></div><form name="form" data-ng-submit="save()" novalidate><div data-ng-show="form.$submitted" class="form-group"><div data-ng-show="form.$invalid" class="alert alert-danger" style="margin-bottom: 5px;"> {{$parent.resources.frmErrors}} </div></div><br /><h5 ng-if="dialog.details.tickets && dialog.details.tickets.length > 0" style="border-bottom: 1px solid #666; padding-bottom: 5px; margin-top: 20px;">{{ $parent.resources.wndUczestnikowWarsztatu }}</h5><div class="has-error"><div ng-repeat="obj in dialog.details.tickets | filter: ticketsFilter" class="" data-ng-class="{ 'has-error' : form.$submitted, 'no-availability': !obj.availability }"><div class="form-group" style="margin-top: 5px;"><input ng-disabled="!obj.availability || (timeConflict === 'PREVENT' && obj.error.length > 0)" type="checkbox" id="ticket{{$index}}" name="ticket_option_group" data-ng-model="obj.value" data-ng-change="ticketChange(obj, dialog.details)" style="opacity: 0; width: 0; height: 0"></input><label for="ticket{{$index}}" class="" style="font-size: 14px; font-weight: normal; width: 100%; margin-bottom: 0px;"><div class="col-sm-9" style="font-weight: normal;"><span class="fa-stack col-sm-1" style="font-size: 11px;"><i class="fa fa-square-o fa-stack-2x" style="margin-left: -3px;"></i><i class="fa fa-check fa-stack-1x v-check" style="font-size: 12px; margin-left: -3px;"></i></span><htm content="obj.userName"></htm><div style="padding-left: 30px; color: {{ timeConflict === 'PREVENT' ? '#E94442' : '#FF8300' }};" ng-if="timeConflict !== 'NONE'"><htm content="obj.error"></htm></div></div></label><div data-ng-show="form.$submitted" class="form-errors" style="margin-left: 18px;"><span data-ng-show="form.ticket{{$index}}.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-show="form.$submitted || form.$error.ticketsRequired" class="form-errors" style="margin-left: 18px;"><span data-ng-show="form.$error.ticketssRequired" class="info-block">{{ticketsValidatorText(dialog.product)}}</span></div></div><div data-ng-if="fieldIf('ext1', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.ext1.$touched) && !form.ext1.$valid }"><div class="col-sm-12"><input type="text" id="ext1" name="ext1" class="form-control" data-ng-model="dialog.details.ext1Value" ng-required="fieldRequired('ext1', dialog.details.args, false)" placeholder="{{ fieldLabel('ext1', dialog.details.args, 'Numer') }}" /><div data-ng-messages="form.ext1.$error" data-ng-show="form.$submitted || form.ext1.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('ext2', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.ext2.$touched) && !form.ext2.$valid }"><div class="col-sm-12"><input type="text" id="ext2" name="ext2" class="form-control" data-ng-model="dialog.details.ext2Value" ng-required="fieldRequired('ext2', dialog.details.args, false)" placeholder="{{ fieldLabel('ext2', dialog.details.args, 'Numer') }}" /><div data-ng-messages="form.ext2.$error" data-ng-show="form.$submitted || form.ext2.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><br /><div class="cart-before-save-button"></div><div class="col-sm-12 col-sm-offset-0" style="margin-top: 15px;"><button ng-disabled="!validTickets(dialog.product, dialog.details)" class="btn btn-primary" style="width: 100%;">{{ $parent.resources.wndZapisz }}</button></div><div style="height: 20px; clear: both;"></div></form></div></script> <script type='text/ng-template' id='ticketExtFormId'><div class="form-horizontal"><h5 style="border-bottom: 1px solid #666; padding-bottom: 5px; margin-top: 5px;">{{ $parent.resources.wndUzupelnijDaneTitle }}</h5><div class="form-group"><div class="col-sm-8" style="font-weight: bold;" ng-bind-html="dialog.product.name"></div><div class="col-sm-4" style="text-align: right; font-weight: bold;"> {{ dialog.product.priceGrossAfterDiscounts }} {{ dialog.product.priceUnit }} </div></div><form name="form" data-ng-submit="save()" novalidate><div data-ng-show="form.$submitted" class="form-group"><div data-ng-show="form.$invalid" class="alert alert-danger" style="margin-bottom: 5px;"> {{$parent.resources.frmErrors}} </div></div><div data-ng-if="fieldIf('firstname', dialog.details.args, true)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.firstname.$touched) && !form.firstname.$valid }"><div class="col-sm-12 dynamic-label-disable"><input type="text" id="firstname" name="firstname" class="form-control" title="{{ fieldLabel('firstname', dialog.details.args, $parent.resources.wndImie) }}" data-ng-model="dialog.details.firstname" ng-required="fieldRequired('firstname', dialog.details.args, true)" placeholder="{{ fieldLabel('firstname', dialog.details.args, $parent.resources.wndImie) }}" /><div data-ng-show="form.$submitted || form.firstname.$touched" class="form-errors"><span data-ng-show="form.firstname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('lastname', dialog.details.args, true)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.lastname.$touched) && !form.lastname.$valid }"><div class="col-sm-12"><input type="text" id="lastname" name="lastname" class="form-control" title="{{ fieldLabel('lastname', dialog.details.args, $parent.resources.wndNazwisko) }}" data-ng-model="dialog.details.lastname" ng-required="fieldRequired('lastname', dialog.details.args, true)" placeholder="{{ fieldLabel('lastname', dialog.details.args, $parent.resources.wndNazwisko) }}" /><div data-ng-show="form.$submitted || form.lastname.$touched" class="form-errors"><span data-ng-show="form.lastname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('position', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.position.$touched) && !form.position.$valid }"><div class="col-sm-12"><input type="text" id="position" name="position" class="form-control" title="{{ fieldLabel('position', dialog.details.args, 'Stanowisko') }}" data-ng-model="dialog.details.position" ng-required="fieldRequired('position', dialog.details.args, false)" placeholder="{{ fieldLabel('position', dialog.details.args, 'Stanowisko') }}" /><div data-ng-messages="form.position.$error" data-ng-show="form.$submitted || form.position.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('email', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.email.$touched) && !form.email.$valid }"><div class="col-sm-12"><input type="email" id="email" name="email" class="form-control" title="{{ fieldLabel('email', dialog.details.args, 'Adres e-mail') }}" data-ng-model="dialog.details.email" ng-required="fieldRequired('email', dialog.details.args, false)" placeholder="{{ fieldLabel('email', dialog.details.args, 'Adres e-mail') }}" /><div data-ng-messages="form.email.$error" data-ng-show="form.$submitted || form.email.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span><span data-ng-message="email" class="info-block">{{ $parent.resources.wndBlednyEmail }}</span></div></div></div><div data-ng-if="fieldIf('phone', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.phone.$touched) && !form.phone.$valid }"><div class="col-sm-12"><input type="text" id="phone" name="phone" class="form-control" title="{{ fieldLabel('phone', dialog.details.args, 'Telefon') }}" data-ng-model="dialog.details.phone" ng-required="fieldRequired('phone', dialog.details.args, false)" placeholder="{{ fieldLabel('phone', dialog.details.args, 'Telefon') }}" /><div data-ng-messages="form.phone.$error" data-ng-show="form.$submitted || form.phone.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><br /><div data-ng-if="fieldIf('ext1', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.ext1.$touched) && !form.ext1.$valid }"><div class="col-sm-12"><textarea id="ext1" name="ext1" class="form-control" rows="{{ fieldRows('ext1', dialog.details.args, 1) }}" style="resize: none;" title="{{ fieldLabel('ext1', dialog.details.args, '') }}" data-ng-model="dialog.details.ext1Value" ng-required="fieldRequired('ext1', dialog.details.args, false)" placeholder="{{ fieldLabel('ext1', dialog.details.args, '') }}" /><div data-ng-messages="form.ext1.$error" data-ng-show="form.$submitted || form.ext1.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span><span data-ng-message="ext1vrcinvalid" class="info-block">{{ $parent.resources.wndBledynyKod }}</span></div></div></div><div data-ng-if="fieldIf('ext2', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.ext2.$touched) && !form.ext2.$valid }"><div class="col-sm-12"><textarea id="ext2" name="ext2" class="form-control" rows="{{ fieldRows('ext2', dialog.details.args, 1) }}" style="resize: none;" title="{{ fieldLabel('ext2', dialog.details.args, '') }}" data-ng-model="dialog.details.ext2Value" ng-required="fieldRequired('ext2', dialog.details.args, false)" placeholder="{{ fieldLabel('ext2', dialog.details.args, '') }}" /><div data-ng-messages="form.ext2.$error" data-ng-show="form.$submitted || form.ext2.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('ext3', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.ext3.$touched) && !form.ext3.$valid }"><div class="col-sm-12"><textarea id="ext3" name="ext3" class="form-control" rows="{{ fieldRows('ext3', dialog.details.args, 1) }}" style="resize: none;" title="{{ fieldLabel('ext3', dialog.details.args, '') }}" data-ng-model="dialog.details.ext3Value" ng-required="fieldRequired('ext3', dialog.details.args, false)" placeholder="{{ fieldLabel('ext3', dialog.details.args, '') }}" /><div data-ng-messages="form.ext3.$error" data-ng-show="form.$submitted || form.ext3.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('ext4', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.ext4.$touched) && !form.ext4.$valid }"><div class="col-sm-12"><textarea id="ext4" name="ext4" class="form-control" rows="{{ fieldRows('ext4', dialog.details.args, 1) }}" style="resize: none;" title="{{ fieldLabel('ext4', dialog.details.args, '') }}" data-ng-model="dialog.details.ext4Value" ng-required="fieldRequired('ext4', dialog.details.args, false)" placeholder="{{ fieldLabel('ext4', dialog.details.args, '') }}" /><div data-ng-messages="form.ext4.$error" data-ng-show="form.$submitted || form.ext4.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('ext5', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.ext5.$touched) && !form.ext5.$valid }"><div class="col-sm-12"><textarea id="ext5" name="ext5" class="form-control" rows="{{ fieldRows('ext5', dialog.details.args, 1) }}" style="resize: none;" title="{{ fieldLabel('ext5', dialog.details.args, '') }}" data-ng-model="dialog.details.ext5Value" ng-required="fieldRequired('ext5', dialog.details.args, false)" placeholder="{{ fieldLabel('ext5', dialog.details.args, '') }}" /><div data-ng-messages="form.ext5.$error" data-ng-show="form.$submitted || form.ext5.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('ext6', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.ext6.$touched) && !form.ext6.$valid }"><div class="col-sm-12"><textarea id="ext6" name="ext6" class="form-control" rows="{{ fieldRows('ext6', dialog.details.args, 1) }}" style="resize: none;" title="{{ fieldLabel('ext6', dialog.details.args, '') }}" data-ng-model="dialog.details.ext6Value" ng-required="fieldRequired('ext6', dialog.details.args, false)" placeholder="{{ fieldLabel('ext6', dialog.details.args, '') }}" /><div data-ng-messages="form.ext6.$error" data-ng-show="form.$submitted || form.ext6.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('cbo1', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.cbo1.$touched) && !form.cbo1.$valid }"><div class="col-sm-12"><select name="cbo1" id="cbo1" class="form-control" data-ng-model="dialog.details.cbo1Value" ng-required="fieldRequired('cbo1', dialog.details.args, false)"><option value="" disabled selected hidden>{{ fieldLabel('cbo1', dialog.details.args, 'wybierz') }}</option><option ng-repeat="option in fieldItems('cbo1', dialog.details.args, [])" value="{{option}}">{{option}}</option></select><div data-ng-messages="form.cbo1.$error" data-ng-show="form.$submitted || form.cbo1.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><br /><div class="form-group" data-ng-class="{ 'dialog-product-info dialog-product-info-sm' : dialog.product.info != null && dialog.product.info && dialog.product.info.length > 0 }" ng-bind-html="dialog.product.info"></div><h5 ng-if="dialog.product.subproducts && dialog.product.subproducts.length > 0" style="border-bottom: 1px solid #666; padding-bottom: 5px; margin-top: 20px;">{{ $parent.resources.wndWybierzUslugiDodatkowe }}</h5><div class="has-error"><div ng-repeat="obj in dialog.product.subproducts" class="" data-ng-class="{ 'has-error' : (form.$submitted || form.subproduct{{$index}}.$touched) && !form.subproduct{{$index}}.$valid, 'no-availability': obj.availability <= 0 || checkGroups(dialog.product.subproducts, obj.id, obj.groups) > 0 }"><div class="form-group" style="margin-top: 5px;"><input ng-disabled="obj.availability <= 0 || checkGroups(dialog.product.subproducts, obj.id, obj.groups) > 0" type="checkbox" id="subproduct{{$index}}" name="subproduct{{$index}}" data-ng-model="obj.value" {{ obj.required ? "'required='required'" : '' }}" style="opacity: 0; width: 0; height: 0"></input><label for="subproduct{{$index}}" class="" style="font-size: 14px; font-weight: normal; width: 100%; margin-bottom: 0px;"><div ng-class="{'col-sm-9 col-xs-9' : obj.priceGross > 0}" style="font-weight: normal; margin-bottom: 15px;"><span class="fa-stack col-sm-1" style="font-size: 11px; padding-left:0px;"><i class="fa fa-square-o fa-stack-2x" style="margin-left: -3px;"></i><i class="fa fa-check fa-stack-1x v-check" style="font-size: 12px; margin-left: -3px;"></i></span><htm content="obj.name"></htm></div><div ng-if="obj.priceGross > 0" class="col-sm-3 col-xs-3" style="text-align: right; font-weight: bold;"> {{ obj.priceGrossString }} {{ obj.currency }} </div><div class="col-sm-12" style="font-weight: normal;" data-ng-show="obj.description.lenght<100"><htm content="obj.description"></htm></div></label><div data-ng-show="form.$submitted || form.subproduct{{$index}}.$touched" class="form-errors" style="margin-left: 18px;"><span data-ng-show="form.subproduct{{$index}}.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-show="form.$submitted || form.$error.subproductsRequired" class="form-errors" style="margin-left: 18px;"><span data-ng-show="form.$error.subproductsRequired" class="info-block">{{subproductsValidatorText(dialog.product)}}</span></div></div><div class="cart-before-save-button"></div><div class="col-sm-12 col-sm-offset-0" style="margin-top: 15px;"><button class="btn btn-primary" style="width: 100%;">{{ $parent.resources.wndZapisz }}</button></div><div style="height: 20px; clear: both;"></div></form></div></script> <script type='text/ng-template' id='ticketSubTicketsFormId'><div class="form-horizontal"><h5 style="border-bottom: 1px solid #666; padding-bottom: 5px; margin-top: 5px;">{{ $parent.resources.wndUzupelnijDaneTitle }}</h5><div class="form-group"><div class="col-sm-8" style="font-weight: bold;" ng-bind-html="dialog.product.name"></div><div class="col-sm-4" style="text-align: right; font-weight: bold;"> {{ dialog.product.priceGrossAfterDiscounts }} {{ dialog.product.priceUnit }} </div></div><form name="form" data-ng-submit="save()" novalidate><div data-ng-show="form.$submitted" class="form-group"><div data-ng-show="form.$invalid" class="alert alert-danger" style="margin-bottom: 5px;"> {{$parent.resources.frmErrors}} </div></div><div data-ng-if="fieldIf('firstname', dialog.details.args, true)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.firstname.$touched) && !form.firstname.$valid }"><div class="col-sm-12"><input type="text" id="firstname" name="firstname" class="form-control" data-ng-model="dialog.details.firstname" required="required" placeholder="{{ $parent.resources.wndImie }}" /><div data-ng-show="form.$submitted || form.firstname.$touched" class="form-errors"><span data-ng-show="form.firstname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('lastname', dialog.details.args, true)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.lastname.$touched) && !form.lastname.$valid }"><div class="col-sm-12"><input type="text" id="lastname" name="lastname" class="form-control" data-ng-model="dialog.details.lastname" required="required" placeholder="{{ $parent.resources.wndNazwisko }}" /><div data-ng-show="form.$submitted || form.lastname.$touched" class="form-errors"><span data-ng-show="form.lastname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('position', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.position.$touched) && !form.position.$valid }"><div class="col-sm-12"><input type="text" id="position" name="position" class="form-control" data-ng-model="dialog.details.position" ng-required="fieldRequired('position', dialog.details.args, false)" placeholder="{{ fieldLabel('position', dialog.details.args, 'Stanowisko') }}" /><div data-ng-messages="form.position.$error" data-ng-show="form.$submitted || form.position.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('email', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.email.$touched) && !form.email.$valid }"><div class="col-sm-12"><input type="email" id="email" name="email" class="form-control" data-ng-model="dialog.details.email" ng-required="fieldRequired('email', dialog.details.args, false)" placeholder="{{ fieldLabel('email', dialog.details.args, 'Adres e-mail') }}" /><div data-ng-messages="form.email.$error" data-ng-show="form.$submitted || form.email.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span><span data-ng-message="email" class="info-block">{{ $parent.resources.wndBlednyEmail }}</span></div></div></div><div data-ng-if="fieldIf('phone', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.phone.$touched) && !form.phone.$valid }"><div class="col-sm-12"><input type="text" id="phone" name="phone" class="form-control" data-ng-model="dialog.details.phone" ng-required="fieldRequired('phone', dialog.details.args, false)" placeholder="{{ fieldLabel('phone', dialog.details.args, 'Telefon') }}" /><div data-ng-messages="form.phone.$error" data-ng-show="form.$submitted || form.phone.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div class="form-group" data-ng-class="{ 'dialog-product-info' : dialog.product.info != null && dialog.product.info && dialog.product.info.length > 0 }"> {{ dialog.product.info }} </div><div ng-repeat="gr in dialog.details.args.subtickets"><h5 style="border-bottom: 1px solid #666; padding-bottom: 5px; margin-top: 20px;">{{ getLabel(gr, '') }}</h5><div ng-repeat="obj in dialog.product.subproducts | groupsfilter:gr.group track by $index"><div class="form-group" style="margin-top: 5px;"><input ng-disabled="obj.availability <= 0 || checkGroups(dialog.product.subproducts, obj.id, obj.groups) > 0 || !checkLimitInGroup(dialog.product.subproducts, obj.id, gr.group, gr.min, gr.max)" type="{{isRadio(gr.min, gr.max, 'radio', 'checkbox')}}" id="subproduct_{{gr.group}}{{$index}}" name="subproduct_{{gr.group}}{{isRadio(gr.min, gr.max, '', $index)}}" data-ng-model="obj.value" data-ng-value="true" {{ getRequired(gr) }} style="opacity: 0; width: 0; height: 0"></input><label for="subproduct_{{gr.group}}{{$index}}" style="font-size: 10px; font-weight: normal; width: 100%; margin-bottom: 0px;" ng-class="{'not-availability': obj.availability <= 0 || checkGroups(dialog.product.subproducts, obj.id, obj.groups) > 0 }"><div class="col-sm-12 " style="font-weight: normal;"><div ng-if="obj.priceGross >= 0" class="col-sm-9 gr1-price-gross" style="text-align: left; font-weight: bold;"><span class="fa-stack col-sm-1" style="font-size: 11px;"><i class="fa fa-square-o fa-stack-2x" style="margin-left: -3px;"></i><i class="fa fa-check fa-stack-1x v-check" style="font-size: 12px; margin-left: -3px;"></i></span><htm class="gr1-short-name" content="obj.shortName"></htm></div><div ng-if="obj.priceGross > 0" class="col-sm-3" style="text-align: right; font-weight: bold;"> {{ obj.priceGrossString }} {{ obj.currency }} </div><htm content="obj.decription"></htm></div></label><div data-ng-show="form.$submitted || form.subproduct_{{gr.group}}{{$index}}.$touched" class="form-errors" style="margin-left: 18px;"><span data-ng-show="form.subproduct_{{gr.group}}{{$index}}.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-show="form.$submitted || form.$error['subproductsRequired' + '_' + gr.group]" class="form-errors" style="margin-left: 18px;"><span style="color: #e94442;" data-ng-show="form.$error['subproductsRequired' + '_' + gr.group]" class="info-block">{{subproductsGroupValidatorText(dialog.product, gr.group, gr.min, gr.max)}}</span></div></div><h5 ng-if="(dialog.product.subproducts | typesfilter:'BILET') && (dialog.product.subproducts | typesfilter:'BILET').length > 0" style="border-bottom: 1px solid #666; padding-bottom: 5px; margin-top: 20px;">{{ $parent.resources.wndWybierzUslugiDodatkowe }}</h5><div class="has-error"><div ng-repeat="obj in dialog.product.subproducts | typesfilter:'BILET'" class="" data-ng-class="{ 'has-error' : (form.$submitted || form.subproduct{{$index}}.$touched) && !form.subproduct{{$index}}.$valid, 'no-availability': obj.availability <= 0 || checkGroups(dialog.product.subproducts, obj.id, obj.groups) > 0 }"><div class="form-group" style="margin-top: 5px;"><input ng-disabled="obj.availability <= 0 || checkGroups(dialog.product.subproducts, obj.id, obj.groups) > 0" type="checkbox" id="subproduct{{$index}}" name="subproduct{{$index}}" data-ng-model="obj.value" {{ obj.required ? "'required='required'" : '' }} style="opacity: 0; width: 0; height: 0"></input><label for="subproduct{{$index}}" style="font-size: 14px; font-weight: normal; width: 100%; margin-bottom: 0px;" ng-class="{'not-availability': obj.availability <= 0 || checkGroups(dialog.product.subproducts, obj.id, obj.groups) > 0 }"><div class="col-sm-12 " style="font-weight: normal;"><div ng-if="obj.priceGross >= 0" class="col-sm-9 gr2-price-gross" style="text-align: left; font-weight: bold;"><span class="fa-stack col-sm-1" style="font-size: 11px;"><i class="fa fa-square-o fa-stack-2x" style="margin-left: -3px;"></i><i class="fa fa-check fa-stack-1x v-check" style="font-size: 12px; margin-left: -3px;"></i></span><htm class="gr2-short-name" content="obj.shortName"></htm></div><div ng-if="obj.priceGross > 0" class="col-sm-3" style="text-align: right; font-weight: bold;"> {{ obj.priceGrossString }} {{ obj.currency }} </div><htm content="obj.decription"></htm></div></label><div data-ng-show="form.$submitted || form.subproduct{{$index}}.$touched" class="form-errors" style="margin-left: 18px;"><span data-ng-show="form.subproduct{{$index}}.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-show="form.$submitted || form.$error.subproductsRequired" class="form-errors" style="margin-left: 18px;"><span style="color: #e94442;" data-ng-show="form.$error.subproductsRequired" class="info-block">{{subproductsValidatorText(dialog.product)}}</span></div></div><div class="cart-before-save-button"></div><div class="col-sm-12 col-sm-offset-0" style="margin-top: 15px;"><button class="btn btn-primary" style="width: 100%;">{{ $parent.resources.wndZapisz }}</button></div><div style="height: 20px; clear: both;"></div></form></div></script> <script type='text/ng-template' id='ticketSubTicketsForm2Id'><div class="form-horizontal"><h5 style="border-bottom: 1px solid #666; padding-bottom: 5px; margin-top: 5px;">{{ $parent.resources.wndUzupelnijDaneTitle }}</h5><div class="form-group"><div class="col-sm-8" style="font-weight: bold;" ng-bind-html="dialog.product.name"></div><div class="col-sm-4" style="text-align: right; font-weight: bold;"> {{ dialog.product.priceGrossAfterDiscounts }} {{ dialog.product.priceUnit }} </div></div><form name="form" data-ng-submit="save()" novalidate><div data-ng-show="form.$submitted" class="form-group"><div data-ng-show="form.$invalid" class="alert alert-danger" style="margin-bottom: 5px;"> {{$parent.resources.frmErrors}} </div></div><div data-ng-if="fieldIf('firstname', dialog.details.args, true)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.firstname.$touched) && !form.firstname.$valid }"><div class="col-sm-12"><input type="text" id="firstname" name="firstname" class="form-control" data-ng-model="dialog.details.firstname" required="required" placeholder="{{ $parent.resources.wndImie }}" /><div data-ng-show="form.$submitted || form.firstname.$touched" class="form-errors"><span data-ng-show="form.firstname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('lastname', dialog.details.args, true)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.lastname.$touched) && !form.lastname.$valid }"><div class="col-sm-12"><input type="text" id="lastname" name="lastname" class="form-control" data-ng-model="dialog.details.lastname" required="required" placeholder="{{ $parent.resources.wndNazwisko }}" /><div data-ng-show="form.$submitted || form.lastname.$touched" class="form-errors"><span data-ng-show="form.lastname.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('position', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.position.$touched) && !form.position.$valid }"><div class="col-sm-12"><input type="text" id="position" name="position" class="form-control" data-ng-model="dialog.details.position" ng-required="fieldRequired('position', dialog.details.args, false)" placeholder="{{ fieldLabel('position', dialog.details.args, 'Stanowisko') }}" /><div data-ng-messages="form.position.$error" data-ng-show="form.$submitted || form.position.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-if="fieldIf('email', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.email.$touched) && !form.email.$valid }"><div class="col-sm-12"><input type="email" id="email" name="email" class="form-control" data-ng-model="dialog.details.email" ng-required="fieldRequired('email', dialog.details.args, false)" placeholder="{{ fieldLabel('email', dialog.details.args, 'Adres e-mail') }}" /><div data-ng-messages="form.email.$error" data-ng-show="form.$submitted || form.email.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span><span data-ng-message="email" class="info-block">{{ $parent.resources.wndBlednyEmail }}</span></div></div></div><div data-ng-if="fieldIf('phone', dialog.details.args, false)" class="form-group" data-ng-class="{ 'has-error' : (form.$submitted || form.phone.$touched) && !form.phone.$valid }"><div class="col-sm-12"><input type="text" id="phone" name="phone" class="form-control" data-ng-model="dialog.details.phone" ng-required="fieldRequired('phone', dialog.details.args, false)" placeholder="{{ fieldLabel('phone', dialog.details.args, 'Telefon') }}" /><div data-ng-messages="form.phone.$error" data-ng-show="form.$submitted || form.phone.$touched" class="form-errors"><span data-ng-message="required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div class="form-group" data-ng-class="{ 'dialog-product-info' : dialog.product.info != null && dialog.product.info && dialog.product.info.length > 0 }"> {{ dialog.product.info }} </div><h5 ng-if="(dialog.product.subproducts | typesfilter:'BILET') && (dialog.product.subproducts | typesfilter:'BILET').length > 0" style="border-bottom: 1px solid #666; padding-bottom: 5px; margin-top: 20px;">{{ $parent.resources.wndWybierzUslugiDodatkowe }}</h5><div class="has-error"><div ng-repeat="obj in dialog.product.subproducts | typesfilter:'BILET'" class="" data-ng-class="{ 'has-error' : (form.$submitted || form.subproduct{{$index}}.$touched) && !form.subproduct{{$index}}.$valid, 'no-availability': obj.availability <= 0 || checkGroups(dialog.product.subproducts, obj.id, obj.groups) > 0 }"><div class="form-group" style="margin-top: 5px;"><input ng-disabled="obj.availability <= 0 || checkGroups(dialog.product.subproducts, obj.id, obj.groups) > 0" type="checkbox" id="subproduct{{$index}}" name="subproduct{{$index}}" data-ng-model="obj.value" {{ obj.required ? "'required='required'" : '' }} style="opacity: 0; width: 0; height: 0"></input><label for="subproduct{{$index}}" style="font-size: 14px; font-weight: normal; width: 100%; margin-bottom: 0px;" ng-class="{'not-availability': obj.availability <= 0 || checkGroups(dialog.product.subproducts, obj.id, obj.groups) > 0 }"><div class="col-sm-12 " style="font-weight: normal;"><div ng-if="obj.priceGross >= 0" class="col-sm-9 gr2-price-gross" style="text-align: left; font-weight: bold;"><span class='fa-stack col-sm-1' style='font-size: 11px;'><i class='fa fa-square-o fa-stack-2x' style='margin-left: -3px;'></i><i class='fa fa-check fa-stack-1x v-check' style='font-size: 12px; margin-left: -3px;'></i></span><htm class="gr2-short-name" content="obj.name"></htm></div><div ng-if="obj.priceGross > 0" class="col-sm-3" style="text-align: right; font-weight: bold;"> {{ obj.priceGrossString }} {{ obj.currency }} </div><htm content="obj.decription"></htm></div></label><div data-ng-show="form.$submitted || form.subproduct{{$index}}.$touched" class="form-errors" style="margin-left: 18px;"><span data-ng-show="form.subproduct{{$index}}.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-show="form.$submitted || form.$error.subproductsRequired" class="form-errors" style="margin-left: 18px;"><span style="color: #e94442;" data-ng-show="form.$error.subproductsRequired" class="info-block">{{subproductsValidatorText(dialog.product)}}</span></div></div><div ng-repeat="gr in dialog.details.args.subtickets"><h5 style="border-bottom: 1px solid #666; padding-bottom: 5px; margin-top: 20px;">{{ getLabel(gr, '') }}</h5><div ng-repeat="obj in dialog.product.subproducts | groupsfilter:gr.group track by $index"><div class="form-group" style="margin-top: 5px;"><input ng-disabled="obj.availability <= 0 || checkGroups(dialog.product.subproducts, obj.id, obj.groups) > 0 || !checkLimitInGroup(dialog.product.subproducts, obj.id, gr.group, gr.min, gr.max)" type="{{isRadio(gr.min, gr.max, 'radio', 'checkbox')}}" id="subproduct_{{gr.group}}{{$index}}" name="subproduct_{{gr.group}}{{isRadio(gr.min, gr.max, '', $index)}}" data-ng-model="obj.value" data-ng-value="true" {{ getRequired(gr) }} style="opacity: 0; width: 0; height: 0"></input><label for="subproduct_{{gr.group}}{{$index}}" style="font-size: 10px; font-weight: normal; width: 100%; margin-bottom: 0px;" ng-class="{'not-availability': obj.availability <= 0 || checkGroups(dialog.product.subproducts, obj.id, obj.groups) > 0 }"><div class="col-sm-12 " style="font-weight: normal;"><div ng-if="obj.priceGross >= 0" class="col-sm-9 gr1-price-gross" style="text-align: left; font-weight: bold;"><span class='fa-stack col-sm-1' style='font-size: 11px;'><i class='fa fa-square-o fa-stack-2x' style='margin-left: -3px;'></i><i class='fa fa-check fa-stack-1x v-check' style='font-size: 12px; margin-left: -3px;'></i></span><htm class="gr1-short-name" content="obj.shortName"></htm></div><div ng-if="obj.priceGross > 0" class="col-sm-3" style="text-align: right; font-weight: bold;"> {{ obj.priceGrossString }} {{ obj.currency }} </div><htm content="obj.decription"></htm></div></label><div data-ng-show="form.$submitted || form.subproduct_{{gr.group}}{{$index}}.$touched" class="form-errors" style="margin-left: 18px;"><span data-ng-show="form.subproduct_{{gr.group}}{{$index}}.$error.required" class="info-block">{{ $parent.resources.wndPoleWymagane }}</span></div></div></div><div data-ng-show="form.$submitted || form.$error['subproductsRequired' + '_' + gr.group]" class="form-errors" style="margin-left: 18px;"><span style="color: #e94442;" data-ng-show="form.$error['subproductsRequired' + '_' + gr.group]" class="info-block">{{subproductsGroupValidatorText(dialog.product, gr.group, gr.min, gr.max)}}</span></div></div><div class="cart-before-save-button"></div><div class="col-sm-12 col-sm-offset-0" style="margin-top: 15px;"><button class="btn btn-primary" style="width: 100%;">{{ $parent.resources.wndZapisz }}</button></div><div style="height: 20px; clear: both;"></div></form></div></script> <script type='text/ng-template' id='StoreProductTemplate_117'><div class="TEST"></div><div class="pro-item-ctn pro-item col-xs-12 col-md-12" style="height:auto;"><div><div class="pro-item-img col-xs-12 col-md-4"><img data-ng-src="{{::$parent.shop.preview.imgUrl}}" class="img-responsive pro-item-img"></div><div class="pro-item-name-card col-xs-12 col-md-8" style="text-align: left;">{{::$parent.shop.preview.name}} <em>#BOOK_AUTHOR#</em></div><div class="col-xs-6 col-md-4 pro-item-price-card" style="text-align: left;"> Cena: <span ng-if='$parent.shop.preview.discountsValue > 0'>{{::$parent.shop.preview.priceGross}} {{::$parent.shop.preview.priceUnit}}</span> {{::$parent.shop.preview.priceGrossAfterDiscounts}} {{::$parent.shop.preview.priceUnit}} </div><div class="col-xs-6 col-md-4"><a href="#" ng-click="addToCart($parent.shop.preview);" class="btn btn-primary btn-success pro-item-buy"><span class="fa fa-shopping-cart" style="padding-right: 10px;"></span> {{::$parent.shop.preview.buttonName}} </a></div><div class="col-xs-12 col-md-12 pro-item-desc-card"><span ng-bind-html='trustAsHtml($parent.shop.preview.description)'></span></div></div></div></script> <script> $(function () { if ($(".cart-content").length > 0) { var offFixed = function () { if ($(".cart-content").hasClass("cart-top-fixed")) { $(".cart-content").removeClass("cart-top-fixed"); $(".cart-content").css("width", ""); $(".cart-content-shadow").remove(); } }; var scrollHandler = function (e) { if ($(document).scrollTop() > parseInt($(".cart-content").attr("data-top"))) { if (!$(".cart-content").hasClass("cart-top-fixed")) { $(".cart-content").css("width", $(".cart-content").width()); if ($(".cart-content-shadow").length == 0) $(".cart-content").after("<div class='cart-content-shadow' style='height: " + $(".cart-content").height() + "px'></div>"); $(".cart-content").addClass("cart-top-fixed"); } if ($(window).height() < $(".cart-content").height()) $(window).resize(); } else { offFixed(); } }; $(".cart-content").attr("data-top", $(".cart-content").offset().top); if ($("[data-fixedcard]").attr("data-fixedcard") == "true") { $(window).resize(function () { $(window).off("scroll", scrollHandler); var sizeSymbol = findBootstrapEnvironment(); if (sizeSymbol == 'xs' || sizeSymbol == 'sm') { offFixed(); } else { if ($(window).height() > $(".cart-content").height()) $(window).scroll(scrollHandler).scroll(); else offFixed(); } }).resize(); } } }); function findBootstrapEnvironment() { var envs = ['xs', 'sm', 'md', 'lg']; var $el = $('<div>'); $el.appendTo($('body')); for (var i = envs.length - 1; i >= 0; i--) { var env = envs[i]; $el.addClass('hidden-' + env); if ($el.is(':hidden')) { $el.remove(); return env; } } } </script> <script> document.addEventListener("DOMContentLoaded", function() { const conjunctions = ["i", "a", "o", "u", "w", "z", "na", "do", "po", "and", "or", "but", "nor", "so", "for", "są", "yet", "in", "at", "by", "to", "with", "on", "from"]; const textNodesUnder = (el) => { let n, a = [], walk = document.createTreeWalker(el, NodeFilter.SHOW_TEXT, null, false); while (n = walk.nextNode()) a.push(n); return a; }; const processTextNodes = () => { const nodes = textNodesUnder(document.body); nodes.forEach(node => { let text = node.nodeValue; conjunctions.forEach(conj => { const regex = new RegExp(`\\b(${conj})\\s`, "gi"); text = text.replace(regex, '$1\u00A0'); }); node.nodeValue = text; }); }; processTextNodes(); }); </script> <script>initControls([{ id: 'MO19362_WM30171_MK56192_KO1175_SelectProductV1', init: false },{ id: 'MO19362_WM30171_MK63321_KO1182_ProductCard', init: false },{ id: 'MO19363_WM30172_MK56193_KO1180_CartV1', init: false },{ id: 'MO19363_WM30172_MK57667_KO1167_ArticleViewV1', init: false },{ id: 'MO19048_WM29679_MK55141_KO1167_ArticleViewV1', init: false },{ id: 'MO19048_WM29679_MK55325_KO1231_MenuV1', init: false },{ id: 'MO19009_WM29684_MK55038_KO1167_ArticleViewV1', init: false },{ id: 'MO19009_WM29685_MK55038_KO1167_ArticleViewV1', init: false },{ id: 'MO19009_WM29686_MK55038_KO1167_ArticleViewV1', init: false },{ id: 'MO21457_WM32929_MK62616_KO1167_ArticleViewV1', init: false },{ id: 'MO22070_WM33884_MK64081_KO1167_ArticleViewV1', init: false }]);</script> <script>requirex(['/Controls/CMS/Ajs/Store/SelectProductV1.js?t=638669633843659436'], function(mod) { mod.init('MO19362_WM30171_MK56192_KO1175_SelectProductV1'); setControlInit('MO19362_WM30171_MK56192_KO1175_SelectProductV1'); });requirex(['/Controls/CMS/Ajs/Store/ProductCardV1.js?t=638669633843659436'], function(mod) { mod.init('MO19362_WM30171_MK63321_KO1182_ProductCard'); setControlInit('MO19362_WM30171_MK63321_KO1182_ProductCard'); });requirex(['/Controls/CMS/Ajs/Store/CartV1.js?t=638669633843502928'], function(mod) { mod.init('MO19363_WM30172_MK56193_KO1180_CartV1'); setControlInit('MO19363_WM30172_MK56193_KO1180_CartV1'); });requirex(['/Controls/CMS/Ajs/Article/ArticleViewV1.js?t=638669633842877936'], function(mod) { mod.init('MO19363_WM30172_MK57667_KO1167_ArticleViewV1'); setControlInit('MO19363_WM30172_MK57667_KO1167_ArticleViewV1'); });requirex(['/Controls/CMS/Ajs/Article/ArticleViewV1.js?t=638669633842877936'], function(mod) { mod.init('MO19048_WM29679_MK55141_KO1167_ArticleViewV1'); setControlInit('MO19048_WM29679_MK55141_KO1167_ArticleViewV1'); });requirex(['/Controls/CMS/Ajs/Menu/MenuV1.js?t=638669633843502928'], function(mod) { mod.init('MO19048_WM29679_MK55325_KO1231_MenuV1'); setControlInit('MO19048_WM29679_MK55325_KO1231_MenuV1'); });requirex(['/Controls/CMS/Ajs/Article/ArticleViewV1.js?t=638669633842877936'], function(mod) { mod.init('MO19009_WM29684_MK55038_KO1167_ArticleViewV1'); setControlInit('MO19009_WM29684_MK55038_KO1167_ArticleViewV1'); });requirex(['/Controls/CMS/Ajs/Article/ArticleViewV1.js?t=638669633842877936'], function(mod) { mod.init('MO19009_WM29685_MK55038_KO1167_ArticleViewV1'); setControlInit('MO19009_WM29685_MK55038_KO1167_ArticleViewV1'); });requirex(['/Controls/CMS/Ajs/Article/ArticleViewV1.js?t=638669633842877936'], function(mod) { mod.init('MO19009_WM29686_MK55038_KO1167_ArticleViewV1'); setControlInit('MO19009_WM29686_MK55038_KO1167_ArticleViewV1'); });requirex(['/Controls/CMS/Ajs/Article/ArticleViewV1.js?t=638669633842877936'], function(mod) { mod.init('MO21457_WM32929_MK62616_KO1167_ArticleViewV1'); setControlInit('MO21457_WM32929_MK62616_KO1167_ArticleViewV1'); });requirex(['/Controls/CMS/Ajs/Article/ArticleViewV1.js?t=638669633842877936'], function(mod) { mod.init('MO22070_WM33884_MK64081_KO1167_ArticleViewV1'); setControlInit('MO22070_WM33884_MK64081_KO1167_ArticleViewV1'); });</script> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TN44MVM" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <script type='text/javascript'><!--//<![CDATA[ var ox_u = '//adv.oikos.agency/www/delivery/al.php?zoneid=131&target=_blank&charset=UTF-8&layerstyle=simple&align=center&valign=top&padding=2&charset=UTF-8&padding=2&closetime=20&shifth=0&shiftv=0&closebutton=t&nobg=t&noborder=t'; if (document.context) ox_u += '&context=' + escape(document.context); document.write("<scr" + "ipt type='text/javascript' src='" + ox_u + "'></scr" + "ipt>"); //]]>--></script> <script id="Cookiebot" src=https://consent.cookiebot.com/uc.js data-cbid="44715374-705d-4796-9dca-164d924e4ef3" data-blockingmode="auto" type="text/javascript"></script> </body></html>

Pages: 1 2 3 4 5 6 7 8 9 10