/**
 * HugongShop - Glavni JavaScript fajl za product stranicu
 * Verzija: 1.0.0
 * Datum: 2025-03-20
 */

document.addEventListener('DOMContentLoaded', function() {
    // Inicijalizacija svih komponenti
    const HugongApp = {
        // Referenca na DOM elemente
        elements: {},
        
        // Inicijalizacija
        init: function() {
            this.cacheElements();
            this.initMobileMenu();
            this.initBackToTop();
            
            // Inicijalizacija komponenti specifičnih za product stranu
            if (document.querySelector('.product-container')) {
                this.initProductPage();
            }
        },
        
        // Keširanje DOM elemenata
        cacheElements: function() {
            // Mobile menu elementi
            this.elements.menuToggle = document.getElementById('mobile-menu-toggle');
            this.elements.menuDrawer = document.getElementById('mobile-drawer');
            this.elements.menuOverlay = document.getElementById('mobile-menu-overlay');
            
            // Back to top dugme
            this.elements.backToTop = document.getElementById('back-to-top');
        },
        
        // Mobilni meni
        initMobileMenu: function() {
            if (!this.elements.menuToggle || !this.elements.menuDrawer || !this.elements.menuOverlay) {
                console.warn('Mobile menu elements not found');
                return;
            }
            
            // Kreiranje X dugmeta za zatvaranje ako ne postoji
            let closeButton = this.elements.menuDrawer.querySelector('.menu-close');
            if (!closeButton) {
                closeButton = document.createElement('button');
                closeButton.className = 'menu-close';
                closeButton.innerHTML = '&times;';
                closeButton.style.cssText = `
                    position: absolute;
                    top: 15px;
                    right: 15px;
                    background: none;
                    border: none;
                    font-size: 28px;
                    color: #333;
                    cursor: pointer;
                    z-index: 10;
                `;
                
                if (this.elements.menuDrawer.firstChild) {
                    this.elements.menuDrawer.insertBefore(closeButton, this.elements.menuDrawer.firstChild);
                } else {
                    this.elements.menuDrawer.appendChild(closeButton);
                }
            }
            
            // Otvaranje menija
            this.elements.menuToggle.addEventListener('click', () => {
                this.elements.menuDrawer.classList.add('active');
                this.elements.menuOverlay.classList.add('active');
                document.body.classList.add('menu-open');
            });
            
            // Zatvaranje menija klikom na X dugme
            closeButton.addEventListener('click', () => {
                this.closeMenu();
            });
            
            // Zatvaranje menija klikom na overlay
            this.elements.menuOverlay.addEventListener('click', () => {
                this.closeMenu();
            });
            
            // Zatvaranje menija na escape tipku
            document.addEventListener('keydown', (e) => {
                if (e.key === 'Escape' && this.elements.menuDrawer.classList.contains('active')) {
                    this.closeMenu();
                }
            });
        },
        
        // Funkcija za zatvaranje mobilnog menija
        closeMenu: function() {
            this.elements.menuDrawer.classList.remove('active');
            this.elements.menuOverlay.classList.remove('active');
            document.body.classList.remove('menu-open');
        },
        
        // Back to top dugme
        initBackToTop: function() {
            if (!this.elements.backToTop) return;
            
            window.addEventListener('scroll', () => {
                if (window.scrollY > 300) {
                    this.elements.backToTop.classList.add('visible');
                } else {
                    this.elements.backToTop.classList.remove('visible');
                }
            });
            
            this.elements.backToTop.addEventListener('click', () => {
                window.scrollTo({
                    top: 0,
                    behavior: 'smooth'
                });
            });
        },
        
        // Inicijalizacija stranice proizvoda
        initProductPage: function() {
            this.ProductPage.init();
        },
        
        // Komponenta stranice proizvoda
        ProductPage: {
            // Referenca na DOM elemente
            elements: {},
            
            // Inicijalizacija
            init: function() {
                this.cacheElements();
                this.initImageGallery();
                this.initTabs();
                this.initQuantityControls();
                this.initAccordions();
                this.initWarrantyAccordions(); // Posebno za garancija tab
                this.initModals();
                this.initSimilarProducts();
                this.initStickyCart();
                this.initAddToCart();
                this.initFrequentlyBoughtTogether();
                this.initReviewForm();
                this.initAskQuestionForm();
                this.handleUrlHash();
            },
            
            // Keširanje DOM elemenata
            cacheElements: function() {
                // Galerija slika
                this.elements.mainImage = document.getElementById('main-product-image');
                this.elements.thumbnails = document.querySelectorAll('.thumbnail');
                this.elements.zoomTrigger = document.querySelector('.image-zoom-trigger');
                
                // Tabovi
                this.elements.tabButtons = document.querySelectorAll('.tab-btn');
                this.elements.tabContents = document.querySelectorAll('.tab-content');
                
                // Količina
                this.elements.quantityInput = document.getElementById('quantity');
                this.elements.minusBtn = document.querySelector('.quantity-btn.minus');
                this.elements.plusBtn = document.querySelector('.quantity-btn.plus');
                
                // Dugmići za kupovinu
                this.elements.addToCartBtn = document.getElementById('add-to-cart-btn');
                this.elements.buyNowBtn = document.getElementById('buy-now-btn');
                this.elements.stickyBuyBtn = document.querySelector('.sticky-buy-btn');
                
                // "Često se kupuje zajedno"
                this.elements.fbtCheckboxes = document.querySelectorAll('.fbt-checkbox input');
                this.elements.addAllBtn = document.getElementById('add-all-to-cart');
                
                // Modali
                this.elements.modals = document.querySelectorAll('.modal');
                this.elements.modalOverlays = document.querySelectorAll('.modal-overlay');
                this.elements.modalCloseButtons = document.querySelectorAll('.modal-close, .modal-cancel');
                
                // Dodatni triggeri
                this.elements.priceMatchTrigger = document.querySelector('.price-match-trigger');
                this.elements.paymentOptionsTrigger = document.getElementById('payment-options-trigger');
                this.elements.scrollToReviews = document.querySelector('.scroll-to-reviews');
            },
            
            // Funkcija za hendlovanje hash-a u URL-u
            handleUrlHash: function() {
                if(location.hash) {
                    const tabId = location.hash.substring(1);
                    const tabBtn = document.getElementById(`tab-${tabId}-btn`);
                    if(tabBtn) setTimeout(() => tabBtn.click(), 100);
                }
            },
            
            // Inicijalizacija galerije slika
            initImageGallery: function() {
                if(!this.elements.mainImage || !this.elements.thumbnails.length) return;
                
                this.elements.thumbnails.forEach(thumb => {
                    thumb.addEventListener('click', () => {
                        // Ažuriranje glavne slike
                        this.elements.mainImage.src = thumb.getAttribute('data-image');
                        this.elements.mainImage.setAttribute('data-zoom-src', thumb.getAttribute('data-zoom-src'));
                        
                        // Ažuriranje aktivnog thumbnail-a
                        this.elements.thumbnails.forEach(t => t.classList.remove('active'));
                        thumb.classList.add('active');
                    });
                });
                
                // Zoom funkcionalnost
                if(this.elements.zoomTrigger) {
                    this.elements.zoomTrigger.addEventListener('click', () => {
                        const zoomSrc = this.elements.mainImage.getAttribute('data-zoom-src') || this.elements.mainImage.src;
                        const zoomedImage = document.getElementById('zoomed-image');
                        if(zoomedImage) {
                            zoomedImage.src = zoomSrc;
                            this.openModal('image-modal');
                        }
                    });
                }
            },
            
            // Inicijalizacija tabova
            initTabs: function() {
                if(!this.elements.tabButtons.length || !this.elements.tabContents.length) return;
                
                this.elements.tabButtons.forEach(button => {
                    button.addEventListener('click', () => {
                        const tabId = button.getAttribute('data-tab');
                        
                        // Uklanjanje aktivne klase sa svih tabova
                        this.elements.tabButtons.forEach(btn => {
                            btn.classList.remove('active');
                            btn.setAttribute('aria-selected', 'false');
                        });
                        
                        this.elements.tabContents.forEach(content => {
                            content.classList.remove('active');
                        });
                        
                        // Aktiviranje izabranog taba
                        button.classList.add('active');
                        button.setAttribute('aria-selected', 'true');
                        
                        const activeTab = document.getElementById(tabId);
                        if(activeTab) {
                            activeTab.classList.add('active');
                            
                            // Ako je aktiviran garancija tab, inicijalizuj accordione
                            if(tabId === 'tab-warranty') {
                                this.initWarrantyAccordions();
                            }
                        }
                    });
                });
            },
            
            // Inicijalizacija kontrola za količinu
            initQuantityControls: function() {
                if(!this.elements.quantityInput || !this.elements.minusBtn || !this.elements.plusBtn) return;
                
                this.elements.minusBtn.addEventListener('click', () => {
                    const currentValue = parseInt(this.elements.quantityInput.value);
                    if(currentValue > 1) {
                        this.elements.quantityInput.value = currentValue - 1;
                    }
                });
                
                this.elements.plusBtn.addEventListener('click', () => {
                    const currentValue = parseInt(this.elements.quantityInput.value);
                    const maxValue = parseInt(this.elements.quantityInput.getAttribute('max') || 999);
                    
                    if(currentValue < maxValue) {
                        this.elements.quantityInput.value = currentValue + 1;
                    }
                });
                
                // Validacija unosa
                this.elements.quantityInput.addEventListener('change', () => {
                    let value = parseInt(this.elements.quantityInput.value);
                    const min = parseInt(this.elements.quantityInput.getAttribute('min') || 1);
                    const max = parseInt(this.elements.quantityInput.getAttribute('max') || 999);
                    
                    if(isNaN(value) || value < min) {
                        this.elements.quantityInput.value = min;
                    } else if(value > max) {
                        this.elements.quantityInput.value = max;
                    }
                });
            },
            
            // Inicijalizacija accordiona za FAQ sekciju
            initAccordions: function() {
                const accordionButtons = document.querySelectorAll('.tab-content:not(#tab-warranty) .accordion-btn');
                
                accordionButtons.forEach(button => {
                    button.addEventListener('click', function() {
                        const expanded = this.getAttribute('aria-expanded') === 'true';
                        const content = this.closest('.faq-question').nextElementSibling;
                        
                        this.setAttribute('aria-expanded', !expanded);
                        content.hidden = expanded;
                        
                        // Rotacija ikonice
                        const icon = this.querySelector('.accordion-icon');
                        if(icon) {
                            icon.style.transform = expanded ? '' : 'rotate(180deg)';
                        }
                    });
                });
            },
            
            // Posebna inicijalizacija accordiona za Garancija tab
            initWarrantyAccordions: function() {
                const warrantyAccordionButtons = document.querySelectorAll('#tab-warranty .accordion-btn');
                
                warrantyAccordionButtons.forEach(button => {
                    // Ukloni prethodni event listener ako postoji
                    button.removeEventListener('click', warrantyClickHandler);
                    
                    // Dodaj novi event listener
                    button.addEventListener('click', warrantyClickHandler);
                });
                
                function warrantyClickHandler() {
                    const expanded = this.getAttribute('aria-expanded') === 'true';
                    const faqItem = this.closest('.faq-item');
                    const faqAnswer = faqItem.querySelector('.faq-answer');
                    
                    // Toggle expanded state
                    this.setAttribute('aria-expanded', !expanded);
                    
                    // Toggle display
                    if(faqAnswer) {
                        if(expanded) {
                            faqAnswer.style.display = 'none';
                            faqAnswer.hidden = true;
                        } else {
                            faqAnswer.style.display = 'block';
                            faqAnswer.hidden = false;
                        }
                    }
                    
                    // Rotacija ikonice
                    const icon = this.querySelector('.accordion-icon');
                    if(icon) {
                        icon.style.transform = expanded ? '' : 'rotate(180deg)';
                    }
                }
            },
            
            // Inicijalizacija modala
            initModals: function() {
                // Zatvaranje modala klikom na overlay
                this.elements.modalOverlays.forEach(overlay => {
                    overlay.addEventListener('click', () => {
                        const modal = overlay.closest('.modal');
                        this.closeModal(modal.id);
                    });
                });
                
                // Zatvaranje modala klikom na "X" ili dugme za odustajanje
                this.elements.modalCloseButtons.forEach(button => {
                    button.addEventListener('click', () => {
                        const modal = button.closest('.modal');
                        this.closeModal(modal.id);
                    });
                });
                
                // ESC za zatvaranje modala
                document.addEventListener('keydown', (e) => {
                    if(e.key === 'Escape') {
                        const activeModals = document.querySelectorAll('.modal.active');
                        activeModals.forEach(modal => this.closeModal(modal.id));
                    }
                });
                
                // Inicijalizacija specificnih modala
                this.initSpecificModals();
            },
            
            // Inicijalizacija specificnih modala
            initSpecificModals: function() {
                // "Našli ste jeftinije" modal
                if(this.elements.priceMatchTrigger) {
                    this.elements.priceMatchTrigger.addEventListener('click', (e) => {
                        e.preventDefault();
                        this.openModal('price-match-modal');
                    });
                    
                    // Custom file input polje
                    const fileInput = document.getElementById('proof_file');
                    const fileLabel = document.querySelector('.custom-file-label');
                    
                    if(fileInput && fileLabel) {
                        fileInput.addEventListener('change', function() {
                            const fileName = this.value.split('\\').pop();
                            fileLabel.textContent = fileName || 'Izaberite fajl';
                        });
                    }
                }
                
                // Opcije plaćanja modal
                if(this.elements.paymentOptionsTrigger) {
                    this.elements.paymentOptionsTrigger.addEventListener('click', (e) => {
                        e.preventDefault();
                        this.openModal('payment-options-modal');
                    });
                }
                
                // Scroll to recenzije
                if(this.elements.scrollToReviews) {
                    this.elements.scrollToReviews.addEventListener('click', (e) => {
                        e.preventDefault();
                        document.getElementById('tab-reviews-btn').click();
                        
                        setTimeout(() => {
                            document.getElementById('tab-reviews').scrollIntoView({
                                behavior: 'smooth'
                            });
                        }, 100);
                    });
                }
            },
            
            // Inicijalizacija forme za recenzije
            initReviewForm: function() {
                const writeReviewBtn = document.getElementById('write-review-btn');
                const reviewForm = document.getElementById('review-form-container');
                const cancelReviewBtn = document.getElementById('cancel-review');
                
                if(writeReviewBtn && reviewForm) {
                    writeReviewBtn.addEventListener('click', function() {
                        reviewForm.style.display = 'block';
                        this.style.display = 'none';
                    });
                    
                    if(cancelReviewBtn) {
                        cancelReviewBtn.addEventListener('click', function() {
                            reviewForm.style.display = 'none';
                            writeReviewBtn.style.display = 'block';
                        });
                    }
                }
                
                // Rating input handling
                const ratingInputs = document.querySelectorAll('.rating-input input');
                if(ratingInputs.length) {
                    ratingInputs.forEach(input => {
                        input.addEventListener('change', function() {
                            const value = this.value;
                            const labels = this.closest('.rating-input').querySelectorAll('label');
                            
                            labels.forEach(label => {
                                const labelValue = label.getAttribute('for').replace('star', '');
                                if(labelValue <= value) {
                                    label.classList.add('filled');
                                } else {
                                    label.classList.remove('filled');
                                }
                            });
                        });
                    });
                }
            },
            
            // Inicijalizacija forme za postavljanje pitanja
            initAskQuestionForm: function() {
                const showQuestionFormBtn = document.getElementById('show-question-form');
                const questionFormContainer = document.getElementById('question-form-container');
                const cancelQuestionBtn = document.getElementById('cancel-question');
                
                if(showQuestionFormBtn && questionFormContainer) {
                    showQuestionFormBtn.addEventListener('click', function() {
                        questionFormContainer.style.display = 'block';
                        this.style.display = 'none';
                    });
                    
                    if(cancelQuestionBtn) {
                        cancelQuestionBtn.addEventListener('click', function() {
                            questionFormContainer.style.display = 'none';
                            showQuestionFormBtn.style.display = 'block';
                        });
                    }
                }
            },
            
            // Inicijalizacija slicnih proizvoda
            initSimilarProducts: function() {
                const container = document.querySelector('.recommended-products-scroll');
                const leftBtn = document.querySelector('.scroll-hint.left');
                const rightBtn = document.querySelector('.scroll-hint.right');
                
                if(!container || !leftBtn || !rightBtn) return;
                
                // Funkcija za ažuriranje strelica
                const updateScrollButtons = function() {
                    leftBtn.classList.toggle('active', container.scrollLeft > 0);
                    rightBtn.classList.toggle('active', container.scrollLeft < container.scrollWidth - container.clientWidth - 10);
                };
                
                // Inicijalno ažuriranje
                updateScrollButtons();
                
                // Ažuriranje pri skrolovanju
                container.addEventListener('scroll', updateScrollButtons);
                
                // Klik na levo dugme
                leftBtn.addEventListener('click', function() {
                    container.scrollBy({
                        left: -300,
                        behavior: 'smooth'
                    });
                });
                
                // Klik na desno dugme
                rightBtn.addEventListener('click', function() {
                    container.scrollBy({
                        left: 300,
                        behavior: 'smooth'
                    });
                });
                
                // Quick Add funkcionalnost
                const quickAddButtons = document.querySelectorAll('.btn-quick-add');
                quickAddButtons.forEach(button => {
                    button.addEventListener('click', (e) => {
                        e.preventDefault();
                        e.stopPropagation();
                        
                        const productId = button.getAttribute('data-product-id');
                        this.addToCart(productId, 1);
                    });
                });
            },
            
            // Inicijalizacija sticky cart-a (za mobilne uređaje)
            initStickyCart: function() {
                const stickyCart = document.querySelector('.sticky-cart');
                const productInfo = document.querySelector('.product-info-section');
                
                if(!stickyCart || !productInfo) return;
                
                // Prikazivanje sticky cart-a kada se skroluje ispod informacija o proizvodu
                window.addEventListener('scroll', function() {
                    const rect = productInfo.getBoundingClientRect();
                    
                    if(rect.bottom < 0 && window.innerWidth < 768) {
                        stickyCart.classList.add('visible');
                    } else {
                        stickyCart.classList.remove('visible');
                    }
                });
                
                // Klik na sticky dugme
                if(this.elements.stickyBuyBtn) {
                    this.elements.stickyBuyBtn.addEventListener('click', () => {
                        if(this.elements.stickyBuyBtn.disabled) return;
                        
                        const productId = this.elements.stickyBuyBtn.getAttribute('data-product-id');
                        const quantity = document.getElementById('quantity').value;
                        
                        this.addToCart(productId, quantity);
                    });
                }
            },
            
            // Inicijalizacija dodavanja u korpu
            initAddToCart: function() {
                if(this.elements.addToCartBtn) {
                    this.elements.addToCartBtn.addEventListener('click', () => {
                        if(this.elements.addToCartBtn.disabled) return;
                        
                        const productId = this.elements.addToCartBtn.getAttribute('data-product-id');
                        const quantity = this.elements.quantityInput.value;
                        
                        this.addToCart(productId, quantity);
                    });
                }
                
                if(this.elements.buyNowBtn) {
                    this.elements.buyNowBtn.addEventListener('click', () => {
                        if(this.elements.buyNowBtn.disabled) return;
                        
                        const productId = this.elements.buyNowBtn.getAttribute('data-product-id');
                        const quantity = this.elements.quantityInput.value;
                        
                        this.addToCart(productId, quantity, true);
                    });
                }
            },
            
            // Inicijalizacija "Često se kupuje zajedno" sekcije
            initFrequentlyBoughtTogether: function() {
                if(!this.elements.fbtCheckboxes.length || !this.elements.addAllBtn) return;
                
                // Ažuriranje ukupne cene pri promeni izbora
                this.elements.fbtCheckboxes.forEach(checkbox => {
                    checkbox.addEventListener('change', () => this.updateFBTTotal());
                });
                
                // Dodavanje svih izabranih proizvoda u korpu
                this.elements.addAllBtn.addEventListener('click', () => {
                    const addToCartBtn = document.getElementById('add-to-cart-btn');
                    if(!addToCartBtn) return;
                    
                    const mainProduct = addToCartBtn.getAttribute('data-product-id');
                    const quantity = document.getElementById('quantity').value;
                    const selectedProducts = [];
                    
                    // Sakupljanje izabranih proizvoda
                    this.elements.fbtCheckboxes.forEach(checkbox => {
                        if(checkbox.checked) {
                            selectedProducts.push({
                                id: checkbox.value,
                                quantity: 1
                            });
                        }
                    });
                    
                    // Dodaj glavni proizvod
                    this.addToCart(mainProduct, quantity, false, true);
                    
                    // Dodaj ostale proizvode
                    if(selectedProducts.length > 0) {
                        setTimeout(() => {
                            this.addMultipleToCart(selectedProducts);
                        }, 300);
                    }
                });
                
                // Inicijalno izračunavanje
                this.updateFBTTotal();
            },
            
            // Ažuriranje ukupne cene za "Često se kupuje zajedno"
            updateFBTTotal: function() {
                const mainPriceElem = document.querySelector('.current-price');
                const mainPrice = this.getProductPrice(mainPriceElem);
                let totalPrice = mainPrice;
                
                this.elements.fbtCheckboxes.forEach(checkbox => {
                    if(checkbox.checked) {
                        const priceElem = checkbox.closest('.fbt-product').querySelector('.fbt-product-price');
                        const price = this.getProductPrice(priceElem);
                        totalPrice += price;
                    }
                });
                
                // Primena popusta za bundle (5%)
                const discountedPrice = totalPrice * 0.95;
                const savings = totalPrice - discountedPrice;
                
                // Ažuriranje prikaza
                const totalAmountElem = document.getElementById('fbt-total-amount');
                const saveAmountElem = document.getElementById('fbt-save-amount');
                
                if(totalAmountElem) totalAmountElem.textContent = this.formatPrice(discountedPrice);
                if(saveAmountElem) saveAmountElem.textContent = this.formatPrice(savings);
            },
            
            // Pomoćna funkcija za dobijanje cene iz HTML elementa
            getProductPrice: function(element) {
                if(!element) return 0;
                
                // Pokušaj dohvatiti cenu iz data atributa prvo
                if(element.hasAttribute('data-price')) {
                    return parseFloat(element.getAttribute('data-price'));
                }
                
                // Ako nema data atributa, parsiramo iz teksta
                const priceText = element.textContent.trim();
                const price = parseFloat(priceText.replace(/[^0-9]/g, ''));
                return !isNaN(price) ? price : 0;
            },
            
            // Pomoćna funkcija za formatiranje cene
            formatPrice: function(price) {
                return new Intl.NumberFormat('sr-RS').format(Math.round(price)) + ' RSD';
            },
            
            // Dodavanje proizvoda u korpu
            addToCart: function(productId, quantity, goToCheckout = false, isMultiple = false) {
                // AJAX zahtev za dodavanje u korpu
                fetch('/ajax/add-to-cart.php', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/x-www-form-urlencoded',
                    },
                    body: `product_id=${productId}&quantity=${quantity}`
                })
                .then(response => {
                    // Provera da li je odgovor OK
                    if (!response.ok) {
                        throw new Error(`HTTP error! status: ${response.status}`);
                    }
                    return response.json();
                })
                .then(data => {
                    if(data.success) {
                        this.updateCartCount(parseInt(quantity));
                        
                        if(goToCheckout) {
                            window.location.href = '/checkout';
                        } else if(!isMultiple) {
                            this.openModal('cart-success-modal');
                        }
                    } else {
                        alert(data.message || 'Došlo je do greške prilikom dodavanja proizvoda u korpu.');
                    }
                })
                .catch(error => {
                    console.error('Greška prilikom dodavanja u korpu:', error);
                    alert('Došlo je do greške prilikom komunikacije sa serverom. Molimo pokušajte ponovo.');
                });
            },
            
            // Dodavanje više proizvoda u korpu odjednom
            addMultipleToCart: function(products) {
                fetch('/ajax/add-multiple-to-cart.php', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json',
                    },
                    body: JSON.stringify({ products: products })
                })
                .then(response => {
                    if (!response.ok) {
                        throw new Error(`HTTP error! status: ${response.status}`);
                    }
                    return response.json();
                })
                .then(data => {
                    if(data.success) {
                        this.openModal('cart-success-modal');
                        
                        // Ažuriranje broja stavki u korpi
                        const totalQuantity = products.reduce((sum, product) => sum + parseInt(product.quantity), 0);
                        this.updateCartCount(totalQuantity);
                    } else {
                        alert(data.message || 'Došlo je do greške prilikom dodavanja proizvoda u korpu.');
                    }
                })
                .catch(error => {
                    console.error('Greška prilikom dodavanja više proizvoda u korpu:', error);
                    alert('Došlo je do greške prilikom komunikacije sa serverom. Molimo pokušajte ponovo.');
                });
            },
            
            // Ažuriranje broja proizvoda u korpi
            updateCartCount: function(quantity) {
                const cartCountElements = document.querySelectorAll('.cart-count');
                
                cartCountElements.forEach(element => {
                    let currentCount = parseInt(element.textContent) || 0;
                    element.textContent = currentCount + quantity;
                });
            },
            
            // Otvaranje modala
            openModal: function(modalId) {
                const modal = document.getElementById(modalId);
                if(modal) {
                    modal.classList.add('active');
                    document.body.style.overflow = 'hidden';
                }
            },
            
            // Zatvaranje modala
            closeModal: function(modalId) {
                const modal = document.getElementById(modalId);
                if(modal) {
                    modal.classList.remove('active');
                    document.body.style.overflow = '';
                }
            }
        }
    };
    
    // Inicijalizacija aplikacije
    HugongApp.init();
    
    // Izlaganje korisnih funkcija globalno
    window.HugongApp = HugongApp;
    window.openModal = HugongApp.ProductPage.openModal.bind(HugongApp.ProductPage);
    window.closeModal = HugongApp.ProductPage.closeModal.bind(HugongApp.ProductPage);
});