var care =
{
    init: function() {
        care.initProductList();

        var part = $$("a.onglet");

        for (var i = 0; i < part.length; i++) {
            var leftOng = null;
            if (part[i - 1]) leftOng = part[i - 1];
            //console.info(part[i]);
            part[i].addEvent("click", care.changePart.bindWithEvent(this, part[i - 1]));
        }

        //... Check if we are in the user account page
        var isUserAccount = ($$("div.accountMenu").length > 0);

        care.partContent = $$(".part");

        if (!isUserAccount) {
            if (part.length > 0) {
                care.oldPart = part[0];
                care.oldPart.addClass("active");
            }

            care.partContent.each(function(item) {
                item.setStyle("display", "none");
            });
            if (care.partContent.length > 0) {
                care.partContent[0].setStyle("display", "block");
                care.oldCtnView = care.partContent[0];
            }
        }
        else {
            //... Determine which tab is active
            for (var i = 0; i < care.partContent.length; i++) {
                if (care.partContent[i].style.display != "none") {
                    care.oldPart = part[i];
                    care.oldCtnView = care.partContent[i];
                    break;
                }
            }

            //... If no tab is active, check if a hidden field with the name of the active tab is present
            if (!care.oldPart) {
                var activeTabName = care.getActiveTabName();
                if (activeTabName != "") care.showOnglet(activeTabName);
            }
        }

        care.stars = $$("img.star");
        var starCount = 0;
        care.stars.each(function(item) {
            item.addEvent("mouseenter", care.changeStar.bindWithEvent(this, starCount));
            starCount++;
        });

        var conseil = $$("a.conseil");
        care.recommanded = $$(".recommand");
        for (var i = 0; i < care.recommanded.length; i++) {
            if (i != 0) care.recommanded[i].setStyle("display", "none");
        }

        if (care.recommanded.length > 0) {
            care.oldRecommanded = care.recommanded[0];
        }
        var count = 0;
        conseil.each(function(item) {
            if (count != 0) item.getParent().addClass("notselected");
            item.addEvent("click", care.changeCat);
            item.getParent().setStyle("height", Math.max(oldCoords, item.getParent().getCoordinates().height));
            var oldCoords = item.getParent().getCoordinates().height;
            count++;
        });
        if (conseil.length > 0) {
            care.oldrecommand = conseil[0].getParent();
        }
    },

    getActiveTabName: function() {
        var activeTabName = "";

        var objInputActiveTab = $("hfActiveTabName");
        if (objInputActiveTab) {
            activeTabName = objInputActiveTab.value;
        }

        return activeTabName;
    },

    setActiveTabName: function(activeTabName) {
        var objInputActiveTab = $("hfActiveTabName");
        if (objInputActiveTab) {
            objInputActiveTab.value = activeTabName;
        }
    },

    initProductList: function() {
        var detail = $$("span.apercuBlock");
        detail.each(function(item) {
            item.addEvent("mouseenter", care.showApercu);
            item.addEvent("mouseleave", care.hideApercu);
        });

        var mainLayout = $$(".mainLayout")[0];
        if (!mainLayout) return;

        var img = mainLayout.getElements("img");
        var count = 0;

        img.each(function(item) {
            var classAdd = null;

            if (item.hasClass('check')) {
                classAdd = 'check';
                care.isFavCheck(item, classAdd, count);
            }

            if (item.hasClass('fav')) {
                classAdd = 'fav';
                care.isFavCheck(item, classAdd, count);
            }
            count++;
        });
    },

    changeCat: function(e) {
        var evt = new Event(e);
        evt.preventDefault();
        if (care.oldrecommand) care.oldrecommand.addClass("notselected");
        evt.target.getParent().removeClass("notselected");
        care.oldrecommand = evt.target.getParent();

        var href = evt.target.href.split("#")[1];

        if (care.oldRecommanded) care.oldRecommanded.setStyle("display", "none");

        care.recommanded.each(function(item) {
            var anchor = item.getElement("a[class=ancre]").name;
            if (href == anchor) {
                item.setStyle("display", "block");
                care.oldRecommanded = item;
            }
        });
    },

    changeStar: function(e, starCount) {
        var evt = new Event(e);
        evt.target.src = evt.target.src.split("star")[0] + "star-o.gif";
        for (var i = 0; i < care.stars.length; i++) {
            if (i < starCount) care.stars[i].src = care.stars[i].src.split("star")[0] + "star-o.gif";
            else if (i > starCount) care.stars[i].src = care.stars[i].src.split("star")[0] + "star.gif";
        }

    },

    changePart: function(e, leftOng) {
        var evt = new Event(e);
        evt.preventDefault();

        var link = evt.target.href.split("#")[1];

        //... Set the clicked tab as active
        care.setActiveTabName(link);

        care.showOnglet(link, leftOng);
    },

    showOnglet: function(nameOng, leftOng) {
        var arrOnglets = $$("a.onglet");
        var currentOng = null;

        for (var i = 0; i < arrOnglets.length; i++) {
            if (arrOnglets[i].href.split("#")[1] == nameOng) {
                currentOng = arrOnglets[i];
                if (i > 0) leftOng = arrOnglets[i - 1];

                arrOnglets[i].removeClass("active");

            }
        }

        var link = currentOng.href.split("#")[1];
        if (care.oldPart != currentOng) {
            //... Check if we are in the user account page
            var isUserAccount = ($$("div.accountMenu").length > 0);
            if (isUserAccount) {
                //... Tag the tab change
                common.tagPage(document.location + "?" + link);
            }
        }

        if (care.oldPart) care.oldPart.removeClass("active");
        currentOng.addClass("active");
        if (care.oldLeftOng) care.oldLeftOng.removeClass("noImage");
        if (leftOng) leftOng.addClass("noImage");
        care.oldLeftOng = leftOng;
        care.oldPart = currentOng;
        if (care.oldBeforePart) care.oldBeforePart.removeClass("noImage");
        if (care.oldCtnView) care.oldCtnView.setStyle("display", "none");

        care.partContent.each(function(item) {
            if (item.getElement("a[class=ancre]").name == link) {
                item.setStyle("display", "block");
                care.oldCtnView = item;
            }
        });
    },

    showApercu: function(e) {
        var evt = new Event(e);

        var objParent = evt.target;
        if (objParent.tagName == "DIV") objParent = objParent.parentNode;

        var app = common.switchToLink(objParent, "DIV").getElement("a[class=apercu]");
        care.showApp = new Fx.Style(app, "opacity", { duration: 200 }).start(0, 1);
    },

    hideApercu: function(e) {
        var evt = new Event(e);

        var objParent = evt.target;
        if (objParent.tagName == "DIV") objParent = objParent.parentNode;

        var app = common.switchToLink(objParent, "DIV").getElement("a[class=apercu]");

        if (care.showApp) care.showApp.stop();
        care.hideApp = new Fx.Style(app, "opacity", { duration: 200 }).start(1, 0);
    },

    isFavCheck: function(itm, classAdd, count) {

        var r = null;

        if (classAdd == 'check') r = 0;
        if (classAdd == 'fav') r = 28;


        var currentimg = new Element('div', {
            'class': 'attachState png',
            'styles': {
                //'top' : itm.getParent().getCoordinates().height - 60,
                'background-image': 'url(img/products/' + classAdd + '.png)',
                'margin-top': r
            }
        });

        currentimg.injectInside(itm.getParent());
    }
}

window.addEvent("domready", care.init);
window.setTimeout("care.init()", 1000);
