
// -- placeholder attributes for those without
Fat.setPlaceholders();

// -- validate forms 
Fat.validate(document.forms);
Fat.validationConfig.errors = true;
Fat.validationConfig.verboseErrors = true;

// -- product sliders 

(function(sliders){
    var doc = $(document),
    isDragging = false;
    sliders.each(function(){
        var list = this.getElementsByTagName("ul")[0],
        items = list.getElementsByTagName("li"),
        slide = $(this).find(".slideHandle"),
        handle = $(document.createElement("a")).appendTo(slide),
        offset = 0,
        slideAllowance = slide.width(),
        handleWidth = handle.width(),
        maxSlide = slideAllowance - handleWidth,
        maxListSlide = 0,
        slideRatio = 1,
        oneWidth = 115,
        totWidth = oneWidth*items.length;

        $(items).each(function(){
            var link = $(this).find(".prodTitle")[0].getElementsByTagName("a")[0],
            text = link.innerHTML,
            cropped = text.substring(0,17),
            img = this.getElementsByTagName("img")[0];
            link.innerHTML = text === cropped ? text : cropped + "...";
            if(img.clientHeight > 85) {
                img.style.top = "42px";
                img.style.marginTop = "-" + img.clientHeight/2 + "px";
            };
        });
        
        list.style.width = totWidth + "px";
        maxListSlide = (totWidth - slideAllowance);
        slideRatio = maxListSlide/(slideAllowance-handleWidth);
        maxListSlide *= -1;
        slide.mousedown(function(evt){
            offset = slide.offset().left;
            offset += evt.layerX || evt.offsetX;
            isDragging = true;
            doc.mousemove(function(e){
                var leftVal = (e.pageX - offset),
                listLeft = (leftVal*slideRatio)*-1;
                if(leftVal > 0 && leftVal <= maxSlide) {
                    handle[0].style.left = leftVal + "px";
                };
                if(listLeft < 0 && listLeft > maxListSlide) {
                    list.style.left = (leftVal*slideRatio)*-1 + "px";
                };
            });
        });
        doc.mouseup(function(){
            doc.unbind('mousemove');
            isDragging = false;
        });
    });
   document.body.ondragstart = document.body.onselectstart = function(e) {return !isDragging;}
})($(".prodSlider"));


// -- fading banner
(function (banner) {
    if (banner) {
        var $banner = $(banner),
        auto = true,
		timer,
        nextLink, prevLink;
        slides = $banner.find(".bannerContent"),
        curSlide = 0,
        links = [];
        showSlide = function (i) {
            if (i > slides.length - 1) { i = 0 }
            else if (i < 0) { i = slides.length - 1 }
            $(slides[curSlide]).stop().animate({
                "opacity": 0
            }, function () { this.style.display = "none"; });
            slides[i].style.display = "block";
            $(slides[i]).stop().animate({
                "opacity": 1
            });
            $(links[curSlide]).removeClass("on");
            $(links[i]).addClass("on");
            curSlide = i;

            if (auto) {
                timer = setTimeout(function () {
                    showSlide(curSlide + 1);
                }, 6000);
            };
        };

        prevLink = document.createElement("a");
        prevLink.setAttribute("id", "prevLink");
        prevLink.style.left = "480px";
        prevLink.onclick = function () {
			auto = false;
			clearTimeout(timer);
            showSlide(curSlide - 1);
        };
        $banner.append(prevLink);

        slides.each(function (i) {
            var slideLink = document.createElement("a"),
            targetLink = this.getElementsByTagName("a")[0] || null;
            slideLink.innerHTML = i + 1;
            slideLink.setAttribute(Fat.classAttribute, "slideLink");
            slideLink.style.left = i * 20 + 500 + "px";
            slideLink.onclick = function () {
                auto = false;
				clearTimeout(timer);
                showSlide(i);
            };
            if (typeof targetLink.href !== "undefined") {
                this.onclick = function () {
                    window.location = targetLink.href;
                };
            };

            links.push(slideLink);
            $banner.append(slideLink);
        });

        nextLink = document.createElement("a");
        nextLink.setAttribute("id", "nextLink");
        nextLink.style.left = (links.length) * 20 + 500 + "px";
        nextLink.onclick = function () {
			auto = false;
			clearTimeout(timer);
            showSlide(curSlide + 1);
        };
        $banner.append(nextLink);

        showSlide(0);
    };
})(document.getElementById("homeBanner"));
