var storemenu0done 			= 0;
var storemenu1done 			= 0;
var storemenu2done 			= 0;
var storemenu3done 			= 0;
var storemenu4done 			= 0;
var storemenu5done 			= 0;
var storemenu6done 			= 0;
var storemenu7done 			= 0;
var storemenu8done 			= 0;
var activeCategorySeqId = null;

selectToHideT = ["by_price","contactMechId","quantite_1"];

var ie55 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 5.5") != -1);
var ie6 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1);

var addthis_config =
{
  data_use_flash: false 
}

document.observe("dom:loaded", function() {
    //change images on mouseover:
    imgHover();

    //fix for ie6 png transparency bug:
    pngFix();

    //decorate first td of each tr of table class="data-table":
    decorateTableCells();

    //products carrousel ("silhouettes section") -- moved to CategoryViewModeCarousel module
    //silhouetteCarrousel(176, 36);

    toggleProdDesc();
    toggleShareProd();
    toggleCartOnclick();

    if($('marquee')) 
        var homeMarquee = new marquee(1);

    //clear text input value on focus :
    clearInputOnFocus();

    //horizontal scroll on "carnets de style" 
    horizontalListScroll(297);

    simpleHover($$('.drill-down div.nos-marques'));
    
});

jQuery(document).ready(function(){

    var isFirstTime = true;
    var options2 = {
        slideExpr:     null,   // expression for selecting slides (if something other than all children is required)
        timeout:       5000,  // milliseconds between slide transitions (0 to disable auto advance)
        speed:         1000,  // speed of the transition (any valid fx speed value) 
        sync:          1,     // true if in/out transitions should occur simultaneously 
        pause:         1,     // true to enable "pause on hover"
       
        before: function() {
            if(isFirstTime) {
                $$('.middle-container')[0].setStyle({background: $(this).getStyle('backgroundColor')});
                isFirstTime = false;
            }
            else
                new Effect.Morph($$('.middle-container')[0], {
                    style: 'background: ' + $(this).getStyle('backgroundColor'), 
                    duration: 1 
                });
        } 
    }; 
    jQuery('#baobaz-hompage-in').cycle(options2);

    galleryChange();

    //footer folded show/hide
    foldedFooter();

    // drill down menu
    menuNavigationBo();

});

/*---------------------------------------------------------------------------*/
function imgHover() { 

    var buttons = $$('.form-button img', '.form-button-alt img', '.checkout-types img', '#review-buttons-container input', 'img.btn-hover', '.switch-wrapper ul li a img', '.infobox h4 img', '#forgot-item img');

    for(var i=0, images=[]; i<buttons.length; i++) {
        var newSrc = buttons[i].src.replace('.png', '-on.png');

        var j;
        var check = false;
        for(j=0; j<images.length; j++) {
            if(images[j].src == newSrc) {
                check = true;
                break;
            }
        }

        if(!check) {
            images.push(new Image());
            images.last().src = newSrc;
        }
    }

    var test = "";
    for(var i=0; i<images.length; i++) {
        images[i].onload = function() {
            for(j=0; j<buttons.length; j++) {
                origSrc = this.src.replace('-on', '');

                if(buttons[j].src == origSrc) {
                    if(buttons[j].parentNode.nodeName == 'BUTTON') {
                        Element.extend(buttons[j].parentNode);
                        buttons[j].parentNode.observe('mouseover', function(){
                            childImg = this.down('img');
                            if(childImg.src.indexOf("-on.png") == -1)
                                childImg.src = childImg.src.replace('.png', '-on.png');
                        });
                        buttons[j].parentNode.observe('mouseout', function(){
                            childImg = this.down('img');
                            childImg.src = childImg.src.replace('-on', '');
                        });

                    } 
                    else {
                        buttons[j].observe('mouseover', function(){
                            if(this.src.indexOf("-on.png") == -1)
                                this.src = this.src.replace('.png', '-on.png');
                        });
                        buttons[j].observe('mouseout', function(){
                            this.src = this.src.replace('-on', '');
                        });
                    }
                }
            }
        }
        if(navigator.appName == "Microsoft Internet Explorer")
            images[i].src = images[i].src;
    }
}

/*---------------------------------------------------------------------------*/
function galleryChange() {

    var galleryLinks = jQuery('.product-img-box .more-views ul a');
    jQuery(".product-image-zoom a.jqzoom").css("z-index","-1").hide().eq(0).css("z-index","1").show();
    galleryLinks.click(function() {
    	jQuery(".product-image-zoom a.jqzoom").css("z-index","-1").hide().eq(galleryLinks.index(this)+1).css("z-index","1").show();
    	galleryLinks.removeClass('active');
    	jQuery(this).addClass('active');
        return false;
    });
}

/*---------------------------------------------------------------------------*/
function decorateTableCells() {

    var dataTable = $$('.data-table');
    if(dataTable)
        dataTable.each(function(tableElem) {
            tableElem.select('td:first-child, th:first-child').invoke('addClassName','first');
        });
}

/*---------------------------------------------------------------------------*/
function silhouetteCarrousel(bigElementWidth, smallElementWidth) {

    var carouselContainter = $('silhouettes-large-listing');
    if(carouselContainter) {
 
		var trackContainer = new Element('div',{ 'id': 'scrollh-track-container',style: 'display:none;' });	
        var scrollLeft = new Element("div", {id: "scrollh-track-left"});
		var scrollRight = new Element("div", {id: "scrollh-track-right"});
		var scrollTrack, handle;
		trackContainer.update(
			scrollTrack = new Element("div", {id: "scrollh-track"}).update(
				handle = new Element("div", {id: "scrollh-handle"})
			)
		).insert({'top': scrollLeft}).insert({'bottom': scrollRight}); 
       
        carouselContainter.insert({'bottom': trackContainer}); 
        
        var carouselContainerWidth = carouselContainter.getWidth(); 
        carouselContainter.setStyle({overflow: 'hidden'});
        var bigCarousel = carouselContainter.down('ol');
        var carouselLength = bigCarousel.childElements().length;
       
        if (carouselLength > 4) {
            trackContainer.show();   
            
            var smallCarousel = $('silhouettes-small-listing').down('ol').removeClassName('active');
            var smallCarouselActive = smallCarousel.cloneNode(true);
            var smallCarouselActiveContainer = new Element("div").addClassName('active-list').update(smallCarouselActive);
            $(smallCarousel).insert({after: smallCarouselActiveContainer}); 
            var bigCarouselWidth = carouselLength * bigElementWidth;
            var smallCarouselWidth = carouselLength * smallElementWidth;
            var smallCarouselLeft = parseInt(smallCarousel.getStyle('marginLeft').replace('px','')); 
            var handleWidth = handle.getWidth();
            var bigScrollingWidth = bigCarouselWidth - carouselContainerWidth;
            var smallScrollingWidth = smallCarouselWidth - smallElementWidth*4;
            var timer;
            
            var hSlider = new Control.Slider(handle, 'scrollh-track', {
                onSlide: function(val) {onSlideFunction(val)},
                onChange: function(val) {onSlideFunction(val)}
            });

            if(carouselLength <=3) 
                hSlider.setDisabled();
           
            onSlideFunction = function(val) {
                //if(carouselLength > 4) {
                    bigCarousel.setStyle({marginLeft: (-1)*Math.floor(val*bigScrollingWidth) + 'px'});
                    var smallCarouselActiveMove = (-1)*Math.floor(val*smallScrollingWidth);
                    var smallCarouselMove = smallCarouselActiveMove + smallCarouselLeft;
                    smallCarousel.setStyle({marginLeft: smallCarouselMove + 'px'});
                    smallCarouselActive.setStyle({marginLeft: smallCarouselActiveMove + 'px'});
                //}
            }

            stopScrolling = function() {
                clearInterval(timer);
            } 

            scrollLeft.observe('mouseup', stopScrolling);              
            scrollLeft.observe('mouseout', stopScrolling);  
            scrollRight.observe('mouseup', stopScrolling);         
            scrollRight.observe('mouseout', stopScrolling);

            scrollLeft.observe('mousedown', function(event) {
                if (Event.isLeftClick(event))
                    if(carouselLength > 4) { 
                        timer = setInterval(function() {hSlider.setValueBy(-0.025);}, 25);
                        Event.stop(event);
                    }
            });

            scrollRight.observe('mousedown', function(event) {

                if (Event.isLeftClick(event))
                    if(carouselLength > 4) { 
                        timer = setInterval(function() {hSlider.setValueBy(0.025);}, 25);
                        Event.stop(event);
                    }
            });        
        }
    }   
}

/*---------------------------------------------------------------------------*/

function toggleProdDesc() {

    var listArr = $$('#prod-desc-list li:not(.size-guide-link)');
    if(listArr)
        listArr.each(function(listElem) {
            var inListArr = listElem.select('.head');
            inListArr.each(function(inListElem) {
                inListElem.observe('click',function(){
                    if(listElem.hasClassName('open')) {
                        listElem.down('.body').hide();
                        listElem.down('.head span img').src = listElem.down('.head span img').src.replace('-on.png', '.png');
                        listElem.removeClassName('open');
                    } else {
                        listArr.each(function(elem) {
                            elem.down('.body').hide();
                            elem.down('.head span img').src = elem.down('.head span img').src.replace('-on.png', '.png');
                            elem.removeClassName('open');                            
                        });
                        listElem.addClassName('open');
                        listElem.down('.body').show();
                        listElem.down('.head span img').src = listElem.down('.head span img').src.replace('.png', '-on.png');
                    }
                })   
            })
        });
}

/*---------------------------------------------------------------------------*/
function toggleShareProd() {

    var shareArr = $$('.prod-opt-links li');

    shareArr.each(function(shareLi) {
        if(shareLi.hasClassName('share'))
           shareLi.observe('click',function() {
                if(!shareLi.down('a').hasClassName('open')) {
                   shareLi.down('a').addClassName('open');
                   shareLi.down('div').show();
                } else {
                    shareLi.down('a').removeClassName('open');
                    shareLi.down('div').hide();
                }
            })
        })

}

/*---------------------------------------------------------------------------*/

function foldedFooter() {    

    var links = jQuery('#footer-folder-body span.left, #footer-folder-body span.right, #footer-folder-body ul li > h6');
    links.toggle(function() {
        jQuery("#footer-folder-body").animate({ height:"120px"},700 );
        jQuery("#footer-folder-body span.right, #footer-folder-body span.left").addClass("open");
        return false;
    }, function() {
        jQuery("#footer-folder-body").animate({ height:"11px"},400 );
        jQuery("#footer-folder-body span.right, #footer-folder-body span.left").removeClass("open");
        return false;
    });
}
/*---------------------------------------------------------------------------*/
function toggleCartOnclick() {

    $$('.header-shopping-bag .shopping-bag .head')[0].observe('click', function(){
        toggleCart();
    });
    document.observe('click', function(event) {
        if($$('.header-shopping-bag .shopping-bag .head')[0].hasClassName('cart-open'))
        toggleCart();
    });

}

function toggleCart() {
    var cartHead = $$('.header-shopping-bag .shopping-bag .head')[0];
    Effect.toggle('cart-list', 'slide', { queue: { position: 'end', scope: 'cartScope', limit: 1 }, beforeSetup: function() {cartHead.toggleClassName('cart-open');} });
}

/*---------------------------------------------------------------------------*/


/* ----------------- jQuery Drill Down Menu --------------- */
function menuNavigationBo(){

	var i=0;
	while (document.getElementById("store-menu"+i)){
		activatemenu("#store-menu"+i, "storemenu"+i+"done", "#store"+i, "#store"+i, "#store-menu"+i, "store_hover", "store-categ-"+i+"_hover");
		i++;
	}
}

function activatemenu(id, storedlocation, menu, linkmenu, linktab, classover, classtabover, contenttoload) {
	var trackerID;
	jQuery(id).mouseover(function() {				 	
		if(eval(storedlocation) == 0) {
			if (contenttoload) {
				loadcontent(contenttoload, menu)
			}
			trackerID = window.setTimeout('showMenu("' + storedlocation + '","' + menu + '","' + linkmenu + '","' + classover + '","' + linktab + '","' + classtabover + '")',350);
		} else { 
			window.clearTimeout(trackerID); }
	   });
		jQuery(id).mouseout(function() {
			window.clearTimeout(trackerID);
			trackerID = window.setTimeout('clearMenu("' + storedlocation + '","' + menu + '","' + linkmenu + '","' + classover + '","' + linktab + '","' + classtabover + '")',250);
	   }); 

		jQuery(menu).mouseover(function() {
			window.clearTimeout(trackerID);
			jQuery(menu).show("");
			jQuery(linkmenu).addClass(classover);
			if(jQuery.browser.msie) {
				jQuery("input.formhider").addClass("hideform");
                                jQuery("select.formhider").addClass("hideform");
			}
	   }); 
		jQuery(menu).mouseout(function() {
			window.clearTimeout(trackerID);
			trackerID = window.setTimeout('clearMenu("' + storedlocation + '","' + menu + '","' + linkmenu + '","' + classover + '","' + linktab + '","' + classtabover + '")',250);
	   });	

}

function showMenu(storedlocation, menu, linkmenu, classover, linktab, classtabover) {
		for(var i=0; i < selectToHideT.length ; i++){
			if(document.getElementById(selectToHideT[i])!=null && document.getElementById(selectToHideT[i])!=undefined)
				displayElement(selectToHideT[i], "none");
		}	
		eval(storedlocation+"=1;");
    	jQuery(menu).slideDown("fast"); 
		jQuery("div").remove(".errorform");
		jQuery("div").remove(".errorform2");	
		jQuery(linkmenu).addClass(classover);
		jQuery(linktab).addClass(classtabover);
		if(jQuery.browser.msie) {
                        visibleSelects = jQuery("select:visible");
                        //visibleSelects.hide();
//			$("input.formhider").addClass("hideform");$("select.formhider").addClass("hideform");
		}
}

function clearMenu(storedlocation, menu, linkmenu, classover, linktab, classtabover) {
 		for(var i=0; i < selectToHideT.length ; i++){
			if(document.getElementById(selectToHideT[i])!=null && document.getElementById(selectToHideT[i])!=undefined)
				displayElement(selectToHideT[i], "");
		}
		eval(storedlocation+"=0;");
		jQuery(menu).stop();
		jQuery(menu).hide("");
		jQuery(linkmenu).removeClass(classover);
		if("#store-menu"+activeCategorySeqId != linktab)
			jQuery(linktab).removeClass(classtabover);
		jQuery("div").remove(".errorform");
		jQuery("div").remove(".errorform2");	
		if(jQuery.browser.msie) {
                        //visibleSelects = jQuery("select:hidden");
                        //visibleSelects.show();

//			$("input.formhider").removeClass("hideform");$("select.formhider").removeClass("hideform");
		}
}

function displayElement(elmt, disp){
	document.getElementById(elmt).style.display=disp;
}

/*---------------------------------------------------------------------------*/

function pngFix() {

    if(!Prototype.BrowserFeatures.XPath && (ie55 || ie6)) {

        var toFix = $$('.pngfix');
        for (var i=0;i<toFix.length; i++) {
            var bgImg = toFix[i].getStyle('backgroundImage');
    			if(bgImg.indexOf(".png")!=-1){
    			    var iebg;
    			    if(bgImg.indexOf('url("')!=-1) 
    				    iebg = bgImg.split('url("')[1].split('")')[0];
    				else
    				    iebg = bgImg.split('url(')[1].split(')')[0];

    				toFix[i].setStyle({backgroundImage: 'none'});
    				toFix[i].runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + iebg + "',sizingMethod='scale')";
    			}
        }
    }
}

/*---------------------------------------------------------------------------*/
function marquee(speed) {

	speed = (speed==undefined? 10 : speed);
	var mar = $('marquee');
	var marCnt;
	var seed=-999999999999;
	var elem;
	var elemWidth = 0;
	var pWidth = 0;
	var scr; 
	var msg= mar.innerHTML; 
	var ref = this;

	this._start = function(){
		scr = setInterval(this.scrollit,30);
	}

	this._pause = function(){
		clearInterval(scr);
	}

	this._init = function(){
		var tmpDiv = new Element('div');
		tmpDiv.update(msg);
		tmpDiv.setStyle({
            whiteSpace: 'nowrap',
            color: '#45454f',
            position: 'absolute',
            top: '0px',
            left: '-99999em',
            cursor: 'pointer',
            lineHeight: '19px',
            height: '19px'
        });

		mar.update().appendChild(tmpDiv);
		marCnt = tmpDiv;

		//jest obslugaJavascript wiec pokazemy element i nadamy mu style
		mar.show().setStyle({
		  overflow: 'hidden',
		  height: '19px',
		  position: 'relative'
        });

        this.movObserver   = this._pause.bindAsEventListener(this);
        this.mouObserver   = this._start.bindAsEventListener(this);

		marCnt.observe("mouseover", this.movObserver);
		marCnt.observe("mouseout", this.mouObserver);
		this._start();
	}

	this.scrollit = function(){
		pWidth = mar.offsetWidth;
		elemWidth = marCnt.offsetWidth;
		if(elemWidth + seed < 0){
			seed = pWidth;
		}

		marCnt.style.left = seed.toString() + "px";
		seed-=speed;
	}

	setTimeout(function(){ref._init();}, 2000);
}

/*---------------------------------------------------------------------------*/
function clearInputOnFocus() {
    var inputs = $$('.clear-on-focus');
    if(inputs)
    	inputs.each(function(elem){									
			var txt = elem.readAttribute('value');

			elem.observe('focus', function(e){if(e.target.value == txt) e.target.value = ''});
			elem.observe('blur', function(e){if(e.target.value.blank()) e.target.value = txt});
    	});
}

/*---------------------------------------------------------------------------*/
function horizontalListScroll(bigElementWidth) {

    var carouselContainter = $('carnets-wrapper');
    if(carouselContainter) {
		var trackContainer = new Element('div',{ 'id': 'scrollh-track-container',style: 'display:none;' });	
        var scrollLeft = new Element("div", {id: "scrollh-track-left"});
		var scrollRight = new Element("div", {id: "scrollh-track-right"});
		var scrollTrack, handle;
		trackContainer.update(
			scrollTrack = new Element("div", {id: "scrollh-track"}).update(
				handle = new Element("div", {id: "scrollh-handle"})
			)
		).insert({'top': scrollLeft}).insert({'bottom': scrollRight}); 
      
        carouselContainter.insert({'bottom': trackContainer}); 
        
        var carouselContainerWidth = carouselContainter.getWidth(); 
        carouselContainter.setStyle({overflow: 'hidden'});
        var bigCarousel = carouselContainter.down('ul');
        var carouselLength = bigCarousel.childElements().length;
        
        if (carouselLength > 3) {
            trackContainer.show();   
            
            var bigCarouselWidth = carouselLength * bigElementWidth;
            var handleWidth = handle.getWidth();
            var bigScrollingWidth = bigCarouselWidth - carouselContainerWidth;
            var timer;
           
            var hSlider = new Control.Slider(handle, 'scrollh-track', {
                onSlide: function(val) {onSlideFunction(val)},
                onChange: function(val) {onSlideFunction(val)}
            });
           
            onSlideFunction = function(val) {
                bigCarousel.setStyle({marginLeft: (-1)*Math.floor(val*bigScrollingWidth) + 'px'});
            }
            
            stopScrolling = function() {
                clearInterval(timer);
            } 

            scrollLeft.observe('mouseup', stopScrolling).observe('mouseout', stopScrolling);              
            scrollRight.observe('mouseup', stopScrolling).observe('mouseout', stopScrolling);         

            scrollLeft.observe('mousedown', function(event) {
                if (Event.isLeftClick(event))
                    if(carouselLength > 4) { 
                        timer = setInterval(function() {hSlider.setValueBy(-0.025);}, 25);
                        Event.stop(event);
                    }
            });
            scrollRight.observe('mousedown', function(event) {
                if (Event.isLeftClick(event))
                    if(carouselLength > 4) { 
                        timer = setInterval(function() {hSlider.setValueBy(0.025);}, 25);
                        Event.stop(event);
                    }
            });        
        }
    }   
}

function simpleHover(elemArr) {
    
    elemArr.each(function(item){
       item.observe("mouseover", function(){
           this.addClassName('over');
       });
       item.observe("mouseout", function(){
           this.removeClassName('over');
       });
    });
};






