1var page_loaded = 0; // index naÄtené stránky - pÅi zvolenà filtru je nutné jej vynulovat 2 3// tyto promÄnné uchovávajà hodnoty zÃskané z funkce loadEshopItems(). Hodnoty sloužà pro funkci filtrEshopItems() 4var sql_where = ''; 5var sql_limit = 0; 6var sql_order = ''; 7var sql_select = ''; 8var sql_page = ''; 9 10var scrollTop = true; // urÄuje, jestli budeme po zobrazenà produktů scrollovat viewport dolů 11 12function getTotalOrderPrice(lang) 13{ 14 $.post('/jquery/scripts/get-order-total-price.php', { }, function( data ) { 15 $('.order-total-price').html(data); 16 }); 17} 18 19// FUNKCE SPOÄÃTà CENU DOPRAVY 20function dopravaSk(id_item) 21{ 22 $.post('/jquery/scripts/doprava-sk.php', { id_item:id_item }, function( data ) { 23 $( ".dialogContent" ).html( data ); 24 $( ".dialogContent" ).dialog( "open" ); 25 }); 26} 27 28// FUNKCE ODSTRANà VÅ ECHNY ID PARAMETRÅ® S Å OUPÃTKY SE KTERÃMI HÃBEME 29function getFiltrCena(min, max, url) 30{ 31 var filter_str = '', filter_arr = []; 32 var filter = getUrlFilter(); 33 var url_to_load = url; 34 var regOd = /od-[0-9]+/; 35 var regDo = /do-[0-9]+/; 36 var foundOd = false, foundDo = false; 37 38 if (filter) 39 { 40 filter_str = filter.replace("f=", ""); 41 filter_arr = filter_str.split(","); 42 43 44 for (var i=0; i < filter_arr.length; i++){ 45 46 if (filter_arr[i].match(regOd)){ 47 filter_arr.splice(i, 1, 'od-' + min); 48 foundOd = true; 49 } 50 51 if (filter_arr[i].match(regDo)){ 52 filter_arr.splice(i, 1, 'do-' + max); 53 foundDo = true; 54 } 55 } 56 } 57 58 if (!foundOd) 59 { 60 filter_arr.push('od-' + min); 61 } 62 if (!foundDo) 63 { 64 filter_arr.push('do-' + max); 65 } 66 67 if (filter_arr.length > 0) 68 { 69 filter_arr.sort(); 70 url_to_load = url + '/f=' + filter_arr.join(","); 71 } 72 window.history.pushState("", "", url_to_load); 73 74 // SMAŽU ZOBRAZENà PRODUKTY 75 $('.asyncItemsContainer').html(''); 76 77 // ZOBRAZÃM PRODUKTY 78 var url_filter = getUrlFilter(); 79 page_loaded = 0; 80 loadEshopItems(sql_where, 0, sql_limit, sql_order, sql_select, url, sql_page, url_filter); 81} 82 83 84 85 86 87 88 89 90// FUNKCE ODSTRANà VÅ ECHNY ID PARAMETRÅ® S Å OUPÃTKY SE KTERÃMI HÃBEME 91function getValuesFromRange(range, min, max, url) 92{ 93 var i; 94 95 // NEJDÅÃVE ODSTRANÃM VÅ ECHNY PARAMETRY Z URL 96 var filter_str = '', filter_arr = []; 97 // ZJISTÃM IDÄka FILTRÅ® / PARAMETRÅ® Z URL 98 var filter = getUrlFilter(); 99 100 var url_to_load = url; 101 102 if (filter) 103 { 104 filter_str = filter.replace("f=", ""); 105 filter_arr = filter_str.split(","); 106 107 for (i = 0; i < range.length; i++) 108 { 109 // OVÄÅÃM, JESTLI JIŽ JE FILTR V URL A POPÅ. JEJ ODSTRANÃM 110 var filtr_url_index = filter_arr.indexOf(range[i]['id'].toString()); 111 if (filtr_url_index > -1) 112 { 113 filter_arr.splice(filtr_url_index,1); 114 } 115 } 116 } 117 118 if (filter_arr.length > 0) 119 { 120 filter_arr.sort(); 121 url_to_load = url + '/f=' + filter_arr.join(","); 122 } 123 124 filter_arr.sort(); 125 //window.history.pushState("", "", url_to_load); 126 127 for (i = 0; i < range.length; i++) 128 { 129 if (parseInt(min) <= parseInt(range[i]['value']) && parseInt(range[i]['value']) <= parseInt(max)) 130 { 131 // SMAŽU ZOBRAZENà PRODUKTY 132 /*$('.asyncItemsContainer').html(''); 133 console.log('RANGE VALUE ID: ' + range[i]['id']); 134 console.log('RANGE VALUE: ' + range[i]['value']); 135 filtrEshopItems(url, range[i]['id']);*/ 136 137 filter_arr.push(range[i]['id'].toString()); 138 139 } 140 } 141 142 if (filter_arr.length > 0) 143 { 144 filter_arr.sort(); 145 url_to_load = url + '/f=' + filter_arr.join(","); 146 } 147 148 window.history.pushState("", "", url_to_load); 149 150 // SMAŽU ZOBRAZENà PRODUKTY 151 $('.asyncItemsContainer').html(''); 152 153 // ZOBRAZÃM PRODUKTY 154 var url_filter = getUrlFilter(); 155 page_loaded = 0; 156 loadEshopItems(sql_where, 0, sql_limit, sql_order, sql_select, url, sql_page, url_filter); 157} 158 159// FUNKCE DEAKTIVUJE KOMBINACE FILTRÅ®, KTERà NEOBSAHUJà PRODUKTY 160function deactivateFilter() 161{ 162 // 11.6.2018 - obsah funkce je zakomentovaný - pokud jej odkomentujeme, tak pÅi každém zvolenà filtru se bude ovÄÅovat, jestli existujà nÄjaké produkty 163 /*$('.paramFilterContainer').each(function(index) { 164 165 var elem = $(this); 166 filter_orig = getUrlFilter(),
167 filter = filter_orig.replace("f=", ""), 168 id_paramvalue = elem.data("id_paramvalue"); 169 170 $.post('/jquery/scripts/has-param-items.php', { where:sql_where, filter:filter, filter_orig:filter_orig, filter_id: id_paramvalue}, function( data ) { 171 //elem.children('.cnt').html('<span class="small">['+data+']</span>'); 172 if (data*1 == 0) 173 { 174 elem.addClass("empty"); 175 elem.children('INPUT').attr("disabled", "true"); 176 } 177 else 178 { 179 elem.removeClass("empty"); 180 elem.children('INPUT').removeAttr("disabled"); 181 } 182 }); 183 });*/ 184} 185 186 187// FUNKCE SLOUŽà PRO FILTROVÃNà VELIKOSTà PRODUKTÅ® 188function filtrItemSizes(par1, param, value) 189{ 190 page_loaded = 0; 191 var h = window.history, 192 hs = h.state, 193 url = hs || window.location.pathname, 194 filtr = getUrlFilter(), 195 filtr = filtr.replace("f=", ""), 196 parts = filtr.split(','), 197 regex = new RegExp(param+'-('+'[0-9]+'+')', 'i'); 198 199 if (value > 0) 200 { 201 if (url.match(regex)) 202 { 203 parts = removeArrItem(parts, param); 204 parts.push(param+'-'+value); 205 206 } 207 else 208 { 209 parts.push(param+'-'+value); 210 } 211 } 212 else 213 { 214 parts = removeArrItem(parts, param); 215 } 216 217 //Odstranime prazdne prvky pole 218 parts = removeArrEmptyItem(parts); 219 220 //Vytvorime url adresu 221 url = '/' + par1 + '/f=' + parts.join(','); 222 223 //Vlozime do url prohlizece 224 h.pushState(null, null, url); 225 226 // SMAŽU ZOBRAZENà PRODUKTY 227 $('.asyncItemsContainer').html(''); 228 229 // ZOBRAZÃM PRODUKTY 230 var url_filter = getUrlFilter(); 231 loadEshopItems(sql_where, 0, sql_limit, sql_order, sql_select, '/'+par1, sql_page, url_filter); 232 233 // DEAKTIVUJI KOMBINACE FILTRÅ®, KTERà NEOBSAHUJà PRODUKTY 234 deactivateFilter() 235} 236 237function filtrEshopItems(url, idFiltr) 238{ 239 page_loaded = 0; 240 var filter_str = '', filter_arr = []; 241 242 // ZJISTÃM IDÄka FILTRÅ® / PARAMETRÅ® Z URL 243 var filter = getUrlFilter(); 244 245 var url_to_load = ''; 246 if (filter) 247 { 248 // OVÄÅÃM, JESTLI JIŽ JE FILTR V URL A POPÅ. JEJ ODSTRANÃM 249 filter_str = filter.replace("f=", ""); 250 filter_arr = filter_str.split(","); 251 var filtr_url_index = filter_arr.indexOf(idFiltr.toString()); 252 253 if (filtr_url_index > -1) 254 { 255 url_to_load = url; 256 filter_arr.splice(filtr_url_index,1); 257 if (filter_arr.length > 0) 258 { 259 filter_arr.sort(); 260 url_to_load = url + '/f=' + filter_arr.join(","); 261 } 262 } 263 else 264 { 265 filter_arr.push(idFiltr.toString()); 266 filter_arr.sort(); 267 url_to_load = url + '/f=' + filter_arr.join(","); 268 } 269 } 270 else 271 { 272 url_to_load = url + '/f='+idFiltr; 273 } 274 //Seradime pole 275 filter_arr.sort(); 276 277 //Vytvorime url adresu 278 //url_to_load = url + '/f=' + filter_arr.join(","); 279 280 //Vlozime adresu do historie (adresni radek) 281 window.history.pushState("", "", url_to_load); 282 283 // ULOŽà DO SESSION POSLEDNà ZOBRAZENOU KATEGORII 284 sessionUpdateLastCat(url_to_load); 285 286 // SMAŽU ZOBRAZENà PRODUKTY 287 $('.asyncItemsContainer').html(''); 288 289 // ZOBRAZÃM PRODUKTY 290 var url_filter = getUrlFilter(); 291 loadEshopItems(sql_where, 0, sql_limit, sql_order, sql_select, url, sql_page, url_filter); 292 293 // DEAKTIVUJU FILTRY 294 deactivateFilter(); 295} 296 297 298function loadEshopItems(where, limit_from, limit, order, select, url, page, url_filter, error_type, scroll=true) 299{ 300 $('#loading').show(); 301 302 var limit_origin = limit; // původnà poÄet stránkovánà 303 sql_where = where; 304 sql_limit = limit; 305 sql_order = order; 306 sql_select = select; 307 sql_page = page; 308 309 var limit_origin = limit; 310 limit_from = page_loaded; 311 312 if (page > 0) 313 { 314 limit_from = 0; 315 limit = 1*limit + (1*limit * 1*page); 316 page_loaded = 1*page; 317 } 318 319 // DO URL VLOŽÃM INDEX STRÃNKY 320 if (page_loaded > 0) 321 { 322 var url_to_load; 323 324 if (url_filter) 325 { 326 var url_filter = url_filter.replace("f=", ""); 327 url_to_load = url + '/f=' + url_filter + '/p=' + page_loaded; 328 //window.history.pushState("", "", url + '/f=' + url_filter + '/p=' + page_loaded); 329 } 330 else 331 { 332 url_to_load = url + '/p=' + page_loaded; 333 //window.history.pushState("", "", url + '/p=' + page_loaded); 334 } 335 window.history.pushState("", "", url_to_load); 336 337 // ULOŽà DO SESSION POSLEDNà ZOBRAZENOU KATEGORII 338 sessionUpdateLastCat(url_to_load) 339 } 340 341 // SKRYJEME TLAÄÃTKO PRO ZOBRAZENà DALÅ ÃCH PRODUKTÅ® 342 $('.asyncLoadItems').hide(); 343 344 // NAKONEC STRÃNKY VLOŽEM ELEMENT DO KTERÃHO NAÄTU DALÅ Ã PRODUKTY 345 if ($('.asyncItems').length > 0) 346 { 347 // ONDRA - zmena LOADING $('.asyncItems:last').addClass('loadingContainer'); 348 } 349 else 350 { 351 // ONDRA - zmena LOADING var e = $('<div class="asyncItems loadingContainer"></div>'); 352 var e = $('<div class="asyncItems"></div>'); 353 354 $('.asyncItemsContainer').append(e); 355 } 356 357 // NAÄTU IDÄka FILTRÅ® Z URL A POÅ LU JE POSTEM PRO ZPRACOVÃNà MYSQL DOTAZU 358 filter = getUrlFilter(); 359 360 //console.log('limit_from ONDRA: '+limit_from); 361 362 // NAÄTU PRODUKTY 363 $.post('/jquery/scripts/eshop-items.php', { where:where, limit_from:limit_from, limit:limit, order:order, select:select, url:url, limit_origin:limit_origin, filter:filter, error_type: error_type }, function( data ) { 364 365 if (limit_from > 0) 366 { 367 $('.itemsFrame:last').append( data ); 368 } 369 else 370 { 371 $('.asyncItems:last').append( data ); 372 } 373 374 $('.asyncItems').removeClass('loadingContainer'); 375 $('#loading').hide(); 376 377 page_loaded = page_loaded + 1; 378 379 if (scroll) { 380 var scrollToProductId = $('input[name="scrollToProduct"]').val(); 381 if (scrollToProductId > 0) { 382 scrollToId('product-id-' + scrollToProductId); 383 } else if (scrollTop) { 384 var cnt = limit - limit_origin + 1; 385 if (cnt > 1) { 386 scrollToId('item-' + cnt); 387 } 388 //scrollTop = false; 389 } 390 } 391 }); 392} 393 394 395// FUNKCE NAÄTE PARAMETRY PRODUKTU V DETAILU 396function loadItemParams(id_item, id_param, bookmark) 397{ 398 $('.paramValuesSelected').hide(); 399 $('.bookmark').removeClass('on'); 400 $('#'+bookmark).addClass('on'); 401 $('.paramValues').show(); 402 var e = $('<div class="loadingContainer"></div>'); 403 $('.paramValues').html(''); 404 $('.paramValues').append(e); 405 406 $.post('/jquery/scripts/item-params.php', { id_item:id_item, id_param:id_param }, function( data ) { 407 $('.paramValues').removeClass('loadingContainer'); 408 $('.paramValues').html( data ); 409 console.log('Params loaded...'); 410 }); 411} 412 413function loadItemSelectedParams(id_item, check_params) 414{ 415 $.post('/jquery/scripts/item-selected-params.php', { id_item:id_item, check_params:check_params }, function( data ) { 416 $('.bookmark').removeClass('on'); 417 $('.paramValues').hide(); 418 $('.paramValuesSelected').show(); 419 $('.paramValuesSelected').removeClass('loadingContainer'); 420 $('.paramValuesSelected').html( data ); 421 console.log('Selected params loaded...'); 422 }); 423} 424 425 426// FUNKCE ULOŽà ZÃZNAM O ZVOLENÃM PARAMETRU DO DB 427function pushToDb(id_item, id_paramvalue, param_value_button, param_is_selectable) 428{ 429 if ($(param_value_button).is(':checked')) 430 { 431 var param_id = $(param_value_button).data('id'); 432 var cnt = $("INPUT[name='param-cnt-" + param_id + "']").val(); 433 434 if (param_is_selectable) 435 { 436 $('.asyncSelectabelParamValue').removeClass('on'); 437 } 438 $(param_value_button).addClass('on'); 439 440 $.post('/jquery/scripts/db-push-item.php', { id_item:id_item, id_paramvalue:id_paramvalue, param_is_selectable:param_is_selectable, cnt:cnt}, function( data ) { 441 counItemPrice(id_item); 442 443 // JESTLIŽE PARAMETR is_selectable = 0 TAK ZAVÅU VÃBÄR PARAMETRÅ® PO ZVOLENà 444 /*if (param_is_selectable) 445 { 446 loadItemSelectedParams(id_item); 447 }*/ 448 });
449 } 450 else 451 { 452 if (param_is_selectable) 453 { 454 $('.asyncSelectabelParamValue').removeClass('on'); 455 } 456 else 457 { 458 $(param_value_button).removeClass('on'); 459 } 460 461 $.post('/jquery/scripts/db-remove-item.php', { id_item:id_item, id_paramvalue:id_paramvalue}, function( data ) { 462 counItemPrice(id_item); 463 }); 464 } 465} 466 467// UPRAVà POÄET KUSÅ® V KOÅ ÃKU U PARAMETRU 468function updateParamCartCnt(id_item, id_paramvalue, input_cnt) 469{ 470 var cnt = $(input_cnt).val(); 471 console.log('cnt: ' + cnt); 472 473 var param_id = $(input_cnt).data('id'); 474 var checkbox = $("INPUT[name='param-" + param_id + "']"); 475 476 if (checkbox.is(':checked')) 477 { 478 $.post('/jquery/scripts/db-update-cart-cnt.php', { id_item:id_item, id_paramvalue:id_paramvalue, cnt:cnt}, function( data ) { 479 if (data == 'DELETE') 480 { 481 checkbox.prop('checked', false); 482 } 483 counItemPrice(id_item); 484 }); 485 } 486} 487 488 489// SPOÄÃTà CENU PRODUKTU SE VÅ EMI ZVOLENÃMI PARAMETRY 490function counItemPrice(id_item) 491{ 492 $('.priceLoading').show(); 493 494 $.post('/jquery/scripts/count-item-price.php', { id_item:id_item }, function( data ) { 495 //$('#itemPriceNoVat').html(data.cena_bez_dph); 496 $('#itemPriceVat').html(data.cena); 497 $('.priceLoading').hide(); 498 499 console.log('CENA CELKEM: ' + data.cena_bez_dph); 500 console.log(data); 501 }, "json"); 502} 503 504function clearSessDopravaPlatba() 505{ 506 $.post('/jquery/scripts/clear-shipping-session.php', { }, function( data ) { 507 }); 508} 509 510// SPOÄÃTà CENU KOÅ ÃKU 511function countCart(id_cart, type, value, lang) 512{ 513 //$('.priceLoading').show(); 514 var cnt = $('.' + id_cart + '-input').val(); 515 516 $.post('/jquery/scripts/count-kosik.php', { id_cart:id_cart , cnt:cnt , type:type , value:value }, function( data ) { 517 518 if (data.cnt == 0) 519 { 520 $('.' + id_cart + '-cart-box').fadeOut('slow'); 521 } 522 if (data.cnt == 1) 523 { 524 $('.' + id_cart + '-arrow-down').hide(); 525 } 526 if (data.cnt > 1) 527 { 528 $('.' + id_cart + '-arrow-down').fadeIn('fast'); 529 } 530 531 $('.' + id_cart + '-cena-bez-dph').html(data.cart_cena_bez_dph); 532 $('.' + id_cart + '-cena').html(data.cart_cena); 533 $('.' + id_cart + '-input').val(data.cnt); 534 $('.total-cena-bez-dph').html(data.total_cena_bez_dph); 535 $('.total-cena').html(data.total_cena); 536 $('.total-cnt').html(data.total_cnt); 537 538 //DphRekap(); 539 clearSessDopravaPlatba(); 540 getDoprava(lang); 541 542 console.log(data); 543 }, "json"); 544} 545 546// VYGENERUJE NOVOU REKAPITULACI DPH 547function DphRekap() 548{ 549 $.post('/jquery/scripts/kosik-dph.php', { }, function( data ) { 550 $('.dphRekap').html(data); 551 }); 552} 553 554// ZOBRAZà ZPÅ®SOBY DOPRAVY 555function getDoprava(lang) 556{ 557 $('.doprava-container').html(''); 558 $('.doprava-container').addClass('loading'); 559 560 $.post('/jquery/scripts/get-doprava.php', { lang:lang }, function( data ) { 561 $('.doprava-container').html(data); 562 $('.doprava-container').removeClass('loading'); 563 //showAddressForm(); 564 getTotalOrderPrice(lang); 565 }); 566} 567 568// NASTAVà ZPÅ®SOB DOPRAVY 569function setDoprava(id_doprava, lang) 570{ 571 $('.platba-container').html(''); 572 $('.platba-container').addClass('loading'); 573 574 $.post('/jquery/scripts/set-doprava.php', { id_doprava:id_doprava, lang:lang }, function( data ) { 575 $('.platba-container').html(data); 576 $('.platba-container').removeClass('loading'); 577 //showAddressForm(); 578 getTotalOrderPrice(lang); 579 }); 580} 581 582// NASTAVà ZPÅ®SOB PLATBA 583function setPlatba(id_platba) 584{ 585 $.post('/jquery/scripts/set-platba.php', { id_platba:id_platba }, function( data ) { 586 //showAddressForm(); 587 getTotalOrderPrice(); 588 }); 589} 590 591// NASTAVà ZPÅ®SOB MONTÃŽE 592function setMontaz(id_montaz) 593{ 594 $.post('/jquery/scripts/set-montaz.php', { id_montaz:id_montaz }, function( data ) { 595 showAddressForm(); 596 }); 597} 598 599// ULOŽà DO SESSION POSLEDNà ZOBRAZENOU KATEGORII 600function sessionUpdateLastCat(url) 601{ 602 $.post('/jquery/scripts/session-update-last-cat.php', { url:url }, function( data ) { 603 //console.log('SESSION: ' + data); 604 }); 605} 606 607// SPOÄÃTà VZDÃLENOST A CENU DOPRAVY ZBOŽà K ZÃKAZNÃKOVI 608function getDistance() 609{ 610 var geocoder = new google.maps.Geocoder(); // creating a new geocode object 611 var ulice = document.getElementById("ulice").value; 612 var mesto = document.getElementById("mesto").value; 613 var psc = document.getElementById("psc").value; 614 615 if (mesto!='' && psc!='') 616 { 617 var address = ulice + ', ' + mesto + ' ' + psc; 618 619 // finding out the coordinates 620 if (geocoder) 621 { 622 geocoder.geocode( { 'address': address}, function(results, status) 623 { 624 if (status == google.maps.GeocoderStatus.OK) 625 { 626 $.post('/jquery/scripts/get-distance.php', { address:address }, function( data ) { 627 $('.map-container').slideDown(); 628 if (data != '') 629 { 630 $('.calcRoute').slideDown(); 631 $('.buttonContinue').slideDown(); 632 } 633 $('#shippingInfoFrame').html(data); 634 findRoute(); 635 }); 636 } 637 else 638 { 639 //alert("Geocode was not successful for the following reason: " + status); 640 if (status != "ZERO_RESULTS") 641 {
642 alert("Bohužel se nám nepodaÅilo najÃt zadanou adresu na mapÄ. ProsÃm zkontrolujte zadanou adresu."); 643 } 644 } 645 }); 646 } 647 } 648 else 649 { 650 $('.map-container').slideUp(); 651 $('.buttonContinue').slideUp(); 652 } 653} 654 655// FUNKCE POUZE ZOBRAZà FORMULÃÅ PRO ZADÃNà ADRESY U UŽIVATELE 656function showAddressForm() 657{ 658 $.post('/jquery/scripts/show-address-form.php', { }, function( data ) { 659 if (data != '') 660 { 661 $('.calcRoute').slideDown("fast", function(){ 662 getDistance(); 663 }); 664 } 665 else 666 { 667 $('.calcRoute').slideUp(); 668 } 669 }); 670} 671 672// FUNKCE POUZE ULOŽà ADRESU UŽIVATELE DO SESSION 673function setCustAddress(param, value) 674{ 675 $.post('/jquery/scripts/set-cust-address.php', { param:param , value:value }, function( data ) { 676 677 }); 678} 679 680function searchTips(search, lang) 681{ 682 console.log('search: ' + search); 683 if (search == '') 684 { 685 $('#searchTipsContainer').slideUp(); 686 } 687 else 688 { 689 console.log('lang ' + lang); 690 $.post('/jquery/scripts/search.php', { search:search, lang:lang }, function( data ) { 691 $('#searchTipsContainer').html(data); 692 $('#searchTipsContainer').slideDown(); 693 }); 694 } 695}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.