/**
 *  Client Side
 *  Main JavaScript file
 */
$(document).ready(function() {
    $(".blank").attr("target", "_blank");
    
    if( $(".lightbox-img").attr("class") ) {
        $(".lightbox-img").lightBox({
            imageLoading: rewriteFix + 'assets/js/jquery-lightbox-0.5/images/lightbox-ico-loading.gif',
	    imageBtnPrev: rewriteFix + 'assets/js/jquery-lightbox-0.5/images/lightbox-btn-prev.gif',
	    imageBtnNext: rewriteFix + 'assets/js/jquery-lightbox-0.5/images/lightbox-btn-next.gif',
	    imageBtnClose: rewriteFix + 'assets/js/jquery-lightbox-0.5/images/lightbox-btn-close.gif',
	    imageBlank:	rewriteFix + 'assets/js/jquery-lightbox-0.5/images/lightbox-blank.gif',
	    zIndex:1000
        });
    }
    
    if( $(".loupe-img").attr("class") ) {
        $(".loupe-img").loupe({width: 300, height: 300, loupe: 'loupe'});
    }
    
    $(".gallery-item-img").click(function() {
	var idGalleryItem = $(this).attr("id").split("-")[3];
	var largeFilePath = $(this).attr("alt");
	var originalFilePath = $('#gallery-orig-id-' + idGalleryItem).text();
	$(".product-main-image").attr("src", largeFilePath);
	$(".loupe img").attr("src", originalFilePath);
	$(".loupe-img").attr("href", originalFilePath).loupe({width: 300, height: 300, loupe: 'loupe'});
	$(".lightbox-img").attr("href", originalFilePath);
	return false;
    })
    
    //Cards List Drop Downs
    $("#search-price, #filter-items-per-page, #search-size").change(function() {
        location.href = $(this).val();
    })
    
    $("#hide-header-bkg").click(function() {
        var headerHeight = $("#header").height();
        var isShown = headerHeight == 220 ? 1 : 0;
        if(headerHeight == 220) {
            $(this).text("скрий хедъра").attr("title", "скрий хедъра");
            $("#header").animate({height:400});
            $("#main-menu").fadeIn();
        }
        else {
            $(this).text("покажи хедъра").attr("title", "покажи хедъра");
            $("#header").animate({height:220});
            $("#main-menu").fadeOut();
        }
        
        $.ajax({
            cache : false,
            url : rewriteFix +'remote.php?page=ajaxuser&action=headerDisplay',
            type : 'get',
            dataType : 'json',
            data : 'show=' + isShown
        })
        return false;
    })
    
    $(".header-dot").click(function() {
        var previousImgID = $(".selected-dot").attr("id").replace('-dot', '');
        var newImgID = $(this).attr("id").replace('-dot', '');
        
        $("#"+previousImgID).fadeOut();
        $(".selected-dot").removeClass("selected-dot");
        $(this).toggleClass("selected-dot");
        $("#"+newImgID).fadeIn();
        
        return false;
    })
    
    var totalDots = $(".header-bkg-img").length;
    setInterval(function() {
        var currentDotID = $("#header-dots .selected-dot").attr("id").replace('-dot', '');
        currentDotID = currentDotID.replace('himg-', '');
        currentDotID = parseInt(currentDotID, 10);
        currentDotID = currentDotID == totalDots ? 1 : currentDotID+1;
        $("#himg-" + currentDotID + "-dot").trigger("click");
    }, 5000)
    
    /*Shopping Cart Items*/
    if($(".selected-circle").attr("id")) {
        $("#product-item-color").val( $(".selected-circle").attr("href") );
        $("#product-item-id").val( $(".selected-circle").attr("id").split("-")[3] );
        $(".color-circle-link").click(function() {
	    if($(".cart-list-item").attr("class")) {
		var parentElm = $(this).parent().parent().parent().parent().parent().parent();
	    }
	    else {
		var parentElm = $(this).parent().parent().parent().parent();
	    }
            var selectedProductID = $(this).attr("id").split("-")[3];
            $("#product-item-id").val(selectedProductID);
	    
	    $.ajax({
		cache : false,
                url : rewriteFix +'remote.php?page=ajaxuser&action=getRelatedProduct',
                type : 'post',
                dataType : 'json',
                data : 'item='+ selectedProductID,
                success : function(result) {
                    if(result.status) {
			if($(".cart-list-item").attr("class")) {
			    parentElm.find(".cart-item-product-image").attr("src", rewriteFix + "content/products/" + result.data.image_small);
			    parentElm.find(".product-cart-item-description").html("<strong>Описание</strong><br/>" + result.data.description);
			    
			    var sizeSelectOptions = '<option value="">Всички</option>';
			    if(result.data.sizes) {
				for(var i in result.data.sizes) {
				    sizeSelectOptions += '<option value="'+result.data.sizes[i].product_size+'">' + result.data.sizes[i].product_size + '</option>';
				}
			    }
			    
			    parentElm.find(".edit-product-item-size").empty().html(sizeSelectOptions);
			    
			    var productPriceText = result.data.price_reduced && result.data.price_reduced > 0 ? result.data.price_reduced + ' <em  style="font-weight:normal;">' + result.data.price + "</em>" : result.data.price;
			    productPriceText += " " + result.data.price_currency;
			    parentElm.find(".product-price").empty().html(productPriceText);
			}
			else {
			    $(".loupe img").attr("src", rewriteFix + "content/products/" + result.data.image_original);
			    
			    parentElm.find(".product-main-image").attr("href", rewriteFix + "content/products/" + result.data.image_original).attr("src", rewriteFix + "content/products/" + result.data.image_large);
			    parentElm.find(".loupe-img, .lightbox-img").attr("href", rewriteFix + "content/products/" + result.data.image_original);
			    
			    parentElm.find(".product-description").html("<strong>Описание</strong><br/>" + result.data.description);
			    
			    if( $(".loupe-img").attr("class") ) {
				$(".loupe-img").loupe({width: 300, height: 300});
			    }
			    
			    var sizeSelectOptions = '<option value="">Всички</option>';
			    if(result.data.sizes) {
				for(var i in result.data.sizes) {
				    sizeSelectOptions += '<option value="'+result.data.sizes[i].product_size+'">' + result.data.sizes[i].product_size + '</option>';
				}
			    }
			    
			    var productPriceText = result.data.price_reduced && result.data.price_reduced > 0 ? result.data.price_reduced + " <em>" + result.data.price + "</em>" : result.data.price;
			    productPriceText += " " + result.data.price_currency;
			    $("#price-product-holder").empty().html(productPriceText);
			    
			    $("#product-item-size").empty().html(sizeSelectOptions);
			    
			    //build gallery list
			    var galleryHTML = '';
			    if(result.data.image_tiny) {
				galleryHTML += '<img src="' + rewriteFix +'content/products/'+ result.data.image_tiny + '" alt="' + rewriteFix +'content/products/'+result.data.image_large + '" title="' + result.data.name + '" style="border:1px solid #E6E6E6; cursor:pointer;" class="gallery-item-img" id="gallery-thumb-id-0" /><span class="orig-img-src" id="gallery-orig-id-0" style="display:none">' + rewriteFix +'content/products/'+result.data.image_original + '</span> ';
			    }
			    if(result.data.gallery.length > 0) {
				var galleryArr = result.data.gallery;
				for(var i in galleryArr) {
				    galleryHTML += '<img src="' + rewriteFix +'content/products_gallery/'+ galleryArr[i].image_small + '" alt="' + rewriteFix +'content/products_gallery/' + galleryArr[i].image_large + '" title="' + galleryArr[i].title + '" style="border:1px solid #E6E6E6; cursor:pointer;" class="gallery-item-img" id="gallery-thumb-id-' + galleryArr[i].id_image + '" /><span class="orig-img-src" id="gallery-orig-id-' + galleryArr[i].id_image + '" style="display:none">' + rewriteFix +'content/products_gallery/'+ galleryArr[i].image_original + '</span> ';
				}
			    }
			    $("#product-gallery-wrapper").html(galleryHTML);
			    
			    $(".gallery-item-img").unbind('click').click(function() {
				var largeFilePath = $(this).attr("alt");
				var idGalleryItem = $(this).attr("id").split("-")[3];
				var originalFilePath = $('#gallery-orig-id-' + idGalleryItem).text();
				
				$(".product-main-image").attr("src", largeFilePath);
				$(".loupe img").attr("src", originalFilePath);
				$(".loupe-img").attr("href", originalFilePath).loupe({width: 300, height: 300, loupe: 'loupe'});
				$(".lightbox-img").attr("href", originalFilePath);
				return false;
			    })
			}
                    }
                }
	    })
            
            $(this).parent().find(".color-circle-link").removeClass("selected-circle");
            $(this).addClass("selected-circle");
            
            //".selected-circle"
            var selectedColor = $(this).attr("href");
            
            $(this).parent().find(".product-item-color").val( selectedColor );
            if( $(this).hasClass("edit-product-cart-color") ) {
                var data = {
                    item : $(this).parent().parent().parent().find(".cart-item-product-id").text(),
                    color : selectedColor
                }
                $.ajax({
                    cache : false,
                    url : rewriteFix +'remote.php?page=ajaxuser&action=editCartItem',
                    type : 'post',
                    dataType : 'json',
                    data : 'item='+ data.item +'&color='+ data.color,
                    success : function(result) {
                        if(result.status) {
                        }
                    }
                })
            }
            return false;
        })
    }
    $(".edit-product-item-size").change(function() {
        var data = {
            item : $(this).parent().parent().parent().find(".cart-item-product-id").text(),
            size : $(this).val()
        }
        $.ajax({
            cache : false,
            url : rewriteFix +'remote.php?page=ajaxuser&action=editCartItem',
            type : 'post',
            dataType : 'json',
            data : 'item='+ data.item +'&size='+ data.size,
            success : function(result) {
                if(result.status) {
                }
            }
        })
    })
    
    $(".product-add-cart-btn").click(function() {
        var $this = $(this);
        var parentElm = $(this).parent().parent();
        var data = {
            item : parentElm.find("#product-item-id").val(),
            item_size : parentElm.find("#product-item-size").val(),
            item_color : parentElm.find(".product-item-color").val()
        }
        
        if(data.item) {
            $.ajax({
                cache : false,
                url : rewriteFix +'remote.php?page=ajaxuser&action=addCartItem',
                type : 'post',
                dataType : 'json',
                data : 'item='+ data.item +'&color='+ data.item_color +'&size='+ data.item_size,
                success : function(result) {
                    if(result.status) {
                        updateCartData(result.data);
                        $this.css({border: "1px solid #999999", backgroundColor: "#999999", paddingTop: 7, height: 17}).text("Продукта беше добавен в количката!");
                    }
                }
            })
        }
        
        return false;
    })
    
    $(".product-remove-cart-btn").click(function() {
        var $this = $(this);
        var data = {};
        data.cartItemID = parseInt($(this).attr("id").replace("cart-item-del-", ""), 10);
        
        if( !isNaN(data.cartItemID) ) {
            $.ajax({
                cache : false,
                url : rewriteFix +'remote.php?page=ajaxuser&action=deleteCartItem',
                type : 'post',
                dataType : 'json',
                data : 'item='+ data.cartItemID +'&color='+ data.item_color +'&size='+ data.item_size,
                success : function(result) {
                    if(result.status) {
                        $this.parent().parent().parent().fadeOut('fast', function() {$(this).remove()});
                        updateCartData(result.data);
                    }
                }
            })
        }
        
        return false;
    })
    
    $("#submit-order-btn").click(function() {
        //basic validation
        var submitData = {
            name : $("#input-order-name").val(),
            email : $("#input-order-email").val(),
            phone : $("#input-order-phone").val(),
            address : $("#input-order-address").val()
        }
        
        if(submitData.name.length && submitData.email.length && submitData.phone.length && submitData.address.length) {
            $("#order-form").submit();
        }
        else {
            alert("Моля попълнете всички полета, преди да направите поръчката!");
        }
        
        return false;
    })
    /*End shopping cart*/
    
    //$(".color-link-on").click(colorLinkOnHandler);
    //$(".color-link-off").click(colorLinkOffHandler);
    
    $("#search-product-input").focus(function() {
        var currentVal = $(this).val();
        if(currentVal == 'Or just type here') {
            $(this).val('');
        }
    })
    
    $("#search-product-input").blur(function() {
        var currentVal = $(this).val();
        if(currentVal == '') {
            $(this).val('Or just type here');
        }
    })
})

function colorLinkOnHandler() {
    $(this).animate({height:8, 'margin-top':6}, 'fast', function() {
        $(this).removeClass("color-link-on").addClass("color-link-off").unbind("click").click(colorLinkOffHandler);
    });
    
    return false;
}

function colorLinkOffHandler() {
    $(this).animate({height:14, 'margin-top':0}, 'fast', function() {
        $(this).removeClass("color-link-off").addClass("color-link-on").unbind("click").click(colorLinkOnHandler);
    });
    return false;
}

function initPanels() {
    var documentWidth = $(document).width();
    var headerMainWidth = $("#header-content").width();
    var footerMainWidth = $("#footer-content").width();
    var mainPanelWidth = $("#page-content").width();
    var margin = Math.round((documentWidth - headerMainWidth)/2);
    //margin = 175*Math.floor(margin/175) + 12;
    margin = 175*Math.floor(margin/175);
    $("#page-content").css("margin-left", margin+12+"px");
    $("#header-content, #footer-content").css("margin-left", margin+"px");
}

function initFooter() {
    var browserFix = 0;
    
    if($.browser.mozilla) {
        browserFix = 0;
    }
    else if($.browser.msie) {
        browserFix = -4;
    }
    
    var wrapperHeight = $("#wrapper").height();
    var windowHeight = $(document).height();
    if(wrapperHeight < windowHeight) {
        $("#footer").css("margin-top", (windowHeight - wrapperHeight + browserFix) + "px");
    }
}

function hoverDirectorBlock(blockElm, linkElm) {
    $(".selected-director").removeClass("selected-director");
    blockElm.addClass("selected-director");
    
    $(".selected-link").removeClass("selected-link");
    linkElm.addClass("selected-link");
}

function hoverProjectBlock(blockElm, linkElm) {
    $(".selected-project").removeClass("selected-project");
    blockElm.addClass("selected-project");
    
    $(".selected-link").removeClass("selected-link");
    linkElm.addClass("selected-link");
}

function updateCartData(cartProducts) {
    $("#sch-num-products").text(cartProducts.cartItems + " Products");
    $("#sch-num-amount").text(cartProducts.cartPrice);
}
