/******************************************************************************
* ixJeremFunction.js
******************************************************************************/

jQuery(document).ready(function () {

    //menu principal
    jQuery('ul.ixJeremLevel1').superfish();
    // 
    jQuery("div.ixJeremMenuTopWrapper li.ixJeremLevelShop").hover(function () {
        jQuery(".ixJeremMenuTopLevel2").css("display", "block");
    }, function () {
        jQuery(".ixJeremMenuTopLevel2").css("display", "none");
    });
    jQuery('.ixJeremLevel1 li.niv1:last').css("background", "none");


    // uniformSelect
    //if(jQuery("#contextMenuTarget").length || jQuery("#ixJeremFilter").length) {
    if (jQuery("#ixJeremFilter").length) {
        uniformSelect();
    }

    if (jQuery("#ixJeremFilter").length) {
        jQuery("ul.selectME li a").each(function (i) {
            $(this).click(function () {
                filterRedirection($(this).attr('rel'));
            });
        });
    }

    //Magasin
    if (jQuery("#ixJeremStore #c_store").length) {
        jQuery("#ixJeremStore ul.selectME li a").each(function (i) {
            $(this).click(function () {
                objJeremShpManager.onChangeStore($(this).attr('rel'));
                if (objJeremShpManager.isChangedPurchaseVoucherSelect == true) {
                    // uniformSelect("#ixJeremVoucherAmount #c_voucherAmount");
                }
            });
        });
    }

    //Montant bon d'achat
    if (jQuery("#ixJeremVoucherAmount #c_voucherAmount").length) {
        jQuery("#ixJeremVoucherAmount ul.selectME li a").each(function (i) {
            $(this).click(function () {
                objJeremShpManager.onChangePurchaseVoucher($(this).attr('rel'));
            });
        });
    }

    //Paiement (bloc jutilise mes pts de fidélite)
    if (jQuery("#ixJeremPointsPaiement #c_voucherAmount").length) {

        jQuery("#ixJeremPointsPaiement ul.selectME li a").each(function (i) {
            $(this).click(function () {
                objJeremShpManager.onChangePurchaseVoucher($(this).attr('rel'));
            });
        });
    }

    jQuery("#gshpBasketHeading_slogan").attr("colSpan", 4);

    jQuery("#ixJeremLoyaltyPoints").css("display", "block");

    //Tabs
    $(".tab_content").hide(); //Hide all content
    $("ul.tabs li:first").addClass("active").show(); //Activate first tab
    $(".tab_content:first").show(); //Show first tab content
    $("ul.tabs li").click(function () {
        $("ul.tabs li").removeClass("active"); //Remove any "active" class
        $(this).addClass("active"); //Add "active" class to selected tab
        $(".tab_content").hide(); //Hide all tab content
        var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
        $(activeTab).fadeIn(); //Fade in the active content
        return false;
    });

    //prix dans la fiche produit
    $("div.ixJeremProductRight span.gshpSeparatorDashedDiscountedPrices").text(" au lieu de ");

    //Popoup Fancy
    if (document.getElementById("ixJeremAddToBasketBtn") != null) {
        $("a#ixJeremAddToBasketBtn").fancybox({
            'titleShow': false,
            'showNavArrows': false,
            'modal': true,
            'centerOnScroll': true
        });
    }

    if (document.getElementById("ixJeremGuideColor") != null) {
        $("a#ixJeremGuideColor").fancybox({
            'titleShow': false,
            'showNavArrows': false,
            'showCloseButton': true,
            'centerOnScroll': true
        });
    }

    if (document.getElementById("ixJeremGuideEntretien") != null) {
        $("a#ixJeremGuideEntretien").fancybox({
            'titleShow': false,
            'showNavArrows': false,
            'showCloseButton': true,
            'centerOnScroll': true
        });
    }

    //ajuster les vignettes
    adjustThumbnail();
    $('#ixJerem-link-zoom-mainPicture').click(function () {
        //alert($('#ixJerem-link-zoom-mainPicture img').attr("src"));
    });

    $("<span style=' float: left; padding-right: 5px;'>Référence produit : </span>").insertBefore('span.gshpReferenceCode');



    /* Newsletter */
    var inputValue = "Votre e-mail";
    $(".ixJerem_emailInput").focus(function () {
        if ($(this).val() == inputValue || $(this).val() == '') {
            $(this).val("");
        }
        this.select();
    }).blur(function () {
        if ($(this).val() == inputValue || $(this).val() == '') {
            $(this).val(inputValue);
        }
    });

    $(".ixJerem_newsletterForm").submit(function (e) {
        var url = $(this).attr("action");
        if (url.indexOf(".aspx") == -1) url += "index.aspx";
        var cUser = $(this).children(".ixJerem_nlcUserInput").val();
        var cEmail = $(this).children(".ixJerem_emailInput").val();
        var reg = new RegExp('^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,6}$', 'i');

        if (reg.exec(cEmail) != null) {
            $.post(url, { pageMode: "ajax", ajaxFunc: "inscritNewsLetter", currentUser: cUser, currentEmail: cEmail }, function (data) {

                switch (data) {
                    case "1":
                        $('#ixJerem_newsletterMsg').text("L'inscription a bien été effectuée.");
                        break;
                    case "2":
                        $('#ixJerem_newsletterMsg').text("L'inscription a bien été effectuée.");
                        break;
                    default:
                        $('#ixJerem_newsletterMsg').text("Une erreur lors de l'inscription, merci d'essayer de nouveau.");
                        break;
                }

            });
        } else {
            $('#ixJerem_newsletterMsg').text("Format de l'email non conforme.");
        }
        return false;
    });
});


function adjustThumbnail() {
    var allItems0 = $(".ixJerem_vignettes .ixJerem_vignette");
    if (allItems0 != 0) {
        for (i = 0; i < allItems0.length - 0; i++) {
            if ((i + 1) % 4 == 0) {
                $(allItems0[i]).css("margin-right", "0");
            }
        }
    }
}


//change image
function changeImage(oidProduct, widthImageProduct, idVignette) {
    var img = document.getElementById("productMainPicture");
    var elem = img.src.split('/');
    var flag = true;
    var reg1 = new RegExp(oidProduct.toString(), "g");
    if (img.src.match(reg1)) {
        flag = false;
    }

    if (flag == true) {
        $('#ixJeremVignettes a').each(function (index) {
            //$(this).css('border', '1px solid #ffffff');
        });

        //$('#ixJeremVignettes a#'+idVignette).css('border', '1px solid #7C7C7C');

        var newUrl = getImageProviderUrl() + "?private_image=" + oidProduct + '&ew=' + widthImageProduct + '&eh=0';
        var imgLoad = document.getElementById("gshpMainPicture");

        $(imgLoad).css({ background: "url(iso_icons/ixJerem-loading.gif) no-repeat scroll 50% 50% transparent" });
        $(img).css({ opacity: "0.5" });

        $(img)
			.attr('src', newUrl)
			.load(function () {
			    $(img).fadeIn(5);
			    $(img).css({ opacity: "1.0" });
			    $(imgLoad).css({ background: "none" });
			});

        var urlZoom = getImageProviderUrl() + "?private_image=" + oidProduct;
        //document.getElementById('ixJerem-link-zoom-mainPicture').href = urlZoom;
        $("#ixJerem-link-zoom-mainPicture").attr("href", urlZoom);
        $(".MagicZoomBigImageCont").attr("id", "MagicZoomBigImageCont");
        //magic zoom url image principal
        $('.MagicZoomBigImageCont img').each(function () {
            $(this).attr('src', urlZoom);
        });
        $('.MagicThumb-expanded img').each(function () {
            $(this).attr('src', urlZoom);
        });

        //alert(urlZoom);

        /* 	MagicZoomPlus.stop(); 
        $('#ixJerem-open-zoom').show();
        $('#ixJerem-close-zoom').hide(); */
    }
}


// Compter type de carctère
function countCharacter(szString, separator) {
    var myString = new String(szString);
    var ss = myString.split(separator);
    return (ss.length);
}



// Redirection filtrage des produits
function filterRedirection(value) {
    var resultCountCharacter = countCharacter(value, "|");

    table = new Array(resultCountCharacter);

    for (var i = 0; i < resultCountCharacter; i++) {
        pos = value.indexOf("|");
        table[i] = value.substring(0, pos);
        value = value.substring(pos + 1, value.length);
    }

    var url = table[0] + "?l=" + table[1] + "&cat=" + table[2];

    if (resultCountCharacter > 3) {
        for (var i = 3; i < resultCountCharacter - 1; i++) {
            if (table[i] != '')
                url = url + "&filter" + (i - 2) + "=" + table[i];
        }
    }

    document.location.href = url;
}

// 
function getImageProviderUrl() {
    var extension = document.location.pathname;
    var pos = extension.lastIndexOf(".");
    extension = extension.substr(pos + 1).toLowerCase();
    if (extension == "aspx") {
        return "imageProvider.aspx";
    }
    return "imageProvider.asp";
}


// Change Image vignette
function changeSrcImg(oid, thumbnailProductWidth) {
    var img = document.getElementById("productMainPicture");
    var imgLoad = document.getElementById("gshpMainPicture");
    $(imgLoad).css({ background: "url(iso_icons/ixJeremAjax-loader.gif) no-repeat scroll 50% 50% transparent" });
    $(img).css({ opacity: "0.5" });
    var newUrl = getImageProviderUrl() + "?private_image=" + oid + '&ew=' + thumbnailProductWidth + '&eh=0';
    $(img)
		.attr('src', newUrl)
		.load(function () {
		    $(img).fadeIn(5);
		    $(img).css({ opacity: "1.0" });
		    $(imgLoad).css({ background: "none" });
		});
}



// Uniforme combobox
function uniformSelect(selectParam) {
    if ((selectParam == null) || (selectParam == ""))
        selectParam = "select"; // all select

    // first locate all of the select tags on the page and hide them
    $(selectParam).css('display', 'none');
    //now, for each select box, run this function
    $(selectParam).each(function () {

        var curSel = $(this);
        // get the CSS width from the original select box
        var gddWidth = $(curSel).width();
        if (gddWidth > 0) {
            var gddWidthL = gddWidth;
        } else {
            var gddWidthL = 100;
        }
        var gddWidth2 = gddWidthL - 18;
        var gddWidth3 = gddWidthL - 16;
        // build the new div structure
        var gddTop = '<div style="width:' + gddWidthL + 'px" class="selectME" tabindex="0"><div class="cornerstop"><div><div></div></div></div><div class="middle"><div><div><div>';
        //get the default selected option
        var whatSelected = $(curSel).children('option:selected').text();
        //write the default
        var gddFirst = '<div class="first"><span class="selectME gselected" style="width:' + gddWidth2 + 'px;">' + whatSelected + '</span><span id="arrowImg"></span><div class="clears"></div></div><ul class="selectME">';
        // create a new array of div options from the original's options
        var addItems = new Array();
        $(curSel).children('option').each(function () {
            var text = $(this).text();

            var selVal = $(this).attr('value');
            var before = '<li   style="width:' + gddWidthL + 'px;"><a href="#" rel="' + selVal + '" tabindex="0"  style="width:' + gddWidth3 + 'px;">';
            var after = '</a></li>';


            addItems.push(before + text + after);
        });
        //hide the default from the list of options 
        var removeFirst;
        // create the end of the div selectbox and close everything off
        var gddBottom = '</ul></div></div></div></div><div class="cornersbottom"><div><div></div></div></div></div>'
        //write everything after each selectbox
        var GDD = gddTop + gddFirst + addItems.join('') + gddBottom;

        $(curSel).after(GDD);
        //this var selects the div select box directly after each of the origials
        var nGDD = $(curSel).next('div.selectME');

        $(nGDD).find('li:first').addClass("first");

        $(nGDD).find('li:last').addClass('last');
        //handle the on click functions - push results back to old text box
        $(nGDD).click(function (e) {

            var myTarA = $(e.target).attr('rel');
            var myTarT = $(e.target).text();
            var myTar = $(e.target);
            //if closed, then open
            if ($(nGDD).find('li').css('display') == 'none') {
                //this next line closes any other selectboxes that might be open
                $('div.selectME').find('li').css('display', 'none');
                $(nGDD).find('li').css('display', 'block');

                //if user clicks off of the div select box, then shut the whole thing down
                $(document.window || 'body').click(function (f) {
                    var myTar2 = $(f.target);
                    if (myTar2 !== nGDD) { $(nGDD).find('li').css('display', 'none'); }
                });
                return false;
            }
            else {
                if (myTarA == null) {
                    $(nGDD).find('li').css('display', 'none');
                    return false;
                }
                else {
                    //set the value of the old select box
                    $(curSel).val(myTarA);
                    //set the text of the new one
                    $(nGDD).find('span.gselected').text(myTarT);
                    $(nGDD).find('li').css('display', 'none');
                    return false;
                }
            }
            //handle the tab index functions
        }).focus(function (e) {


            $(nGDD).find('li:first').addClass('currentDD');
            $(nGDD).find('li:last').addClass('lastDD');
            function checkKey(e) {
                //on keypress handle functions
                function moveDown() {
                    var current = $(nGDD).find('.currentDD:first');
                    var next = $(nGDD).find('.currentDD').next();
                    if ($(current).is('.lastDD')) {
                        return false;
                    } else {
                        $(next).addClass('currentDD');
                        $(current).removeClass('currentDD');
                    }
                }
                function moveUp() {
                    var current = $(nGDD).find('.currentDD:first');
                    var prev = $(nGDD).find('.currentDD').prev();
                    if ($(current).is('.first')) {
                        return false;
                    } else {
                        $(prev).addClass('currentDD');
                        $(current).removeClass('currentDD');
                    }
                }
                var curText = $(nGDD).find('.currentDD:first').text();
                var curVal = $(nGDD).find('.currentDD:first a').attr('rel');
                switch (e.keyCode) {
                    case 40:
                        $(curSel).val(curVal);
                        $(nGDD).find('span.gselected').text(curText);
                        moveDown();
                        return false;
                        break;
                    case 38:
                        $(curSel).val(curVal);
                        $(nGDD).find('span.gselected').text(curText);
                        moveUp();
                        return false;
                        break;
                    case 13:
                        $(nGDD).find('li').css('display', 'none');
                }
            }
            $(document).keydown(checkKey);
        }).blur(function () {
            $(document).unbind('keydown');
        });
    });
}



function nbProductManager(type) {
    var inputQuantity = YAHOO.util.Dom.getElementsByClassName('ixJeremBasketQuantityInput', 'input');
    var inputQuantityValue = Number(inputQuantity[0].value);
    switch (type) {
        case 'more':
            inputQuantityValue = inputQuantityValue + 1;
            break;
        case 'less':
            if (inputQuantityValue > 1)
                inputQuantityValue = inputQuantityValue - 1;
            break;
        default:
            break;
    }
    inputQuantity[0].value = inputQuantityValue;
}
