﻿/* ------------------------------------------------------------------------
s3Slider
	
Developped By: Boban KariÅ¡ik -> http://www.serie3.info/
CSS Help: MÃ©szÃ¡ros RÃ³bert -> http://www.perspectived.com/
Version: 1.0
	
Copyright: Feel free to redistribute the script/modify it, as
long as you leave my infos at the top.
------------------------------------------------------------------------- */


(function($) {
    $.fn.s3Slider = function(vars) {
        var element = this;
        var timeOut = (vars.timeOut != undefined) ? vars.timeOut : 4000;
        var current = null;
        var timeOutFn = null;
        var isFader = true;
        var isMouseOver = false;
        var showNumbers = (vars.numbers != undefined) ? vars.numbers : true;
        var showLinks = (vars.links != undefined) ? vars.links : true;

        var items = $(element).find("ul").find("li");
        var copy = $(items).find("span");

        items.each(function(i) {
            if (showNumbers) {
                copy[i].innerHTML += "<br />" + (i + 1).toString() + " of " + (copy.length).toString();

                /*
                copy[i].innerHTML += " <a href=\"#\">Next</a>";
                var links = $(copy[i]).find("a");
                links.each(function() {
                    $(this).click(function(e) {
                        isFader = false;
                        isMouseOver = false;
                        makeSlider();
                        e.preventDefault();
                    });
                });
                */
            }

            $(items[i]).mouseover(function() {
                isMouseOver = true;
            });

            $(items[i]).mouseout(function() {
                isMouseOver = false;
                fadeElement(true);
            });
        });


        var fadeElement = function(isMouseOut) {
            var thisTimeOut = (isMouseOut) ? (timeOut / 2) : timeOut;
            thisTimeOut = (isFader) ? 10 : thisTimeOut;
            if (items.length > 0) {
                timeOutFn = setTimeout(makeSlider, thisTimeOut);
            }
        }

        var makeSlider = function() {
            current = (current != null) ? current : items[0];
            var currNo = jQuery.inArray(current, items);

            var newMargin = $(element).width() * currNo;
            if (isFader == true) {
                if (!isMouseOver) {
                    $(items[currNo]).fadeIn((timeOut / 6), function() {
                        if ($(copy[currNo]).css('bottom') == 0) {
                            $(copy[currNo]).slideUp((timeOut / 6), function() {
                                isFader = false;
                                current = items[currNo];
                                if (!isMouseOver) {
                                    fadeElement(false);
                                }
                            });
                        } else {
                            $(copy[currNo]).slideDown((timeOut / 6), function() {
                                isFader = false;
                                current = items[currNo];
                                if (!isMouseOver) {
                                    fadeElement(false);
                                }
                            });
                        }
                    });
                }
            } else {
                if (!isMouseOver) {
                    if ($(copy[currNo]).css('bottom') == 0) {
                        $(copy[currNo]).slideDown((timeOut / 6), function() {
                            $(items[currNo]).fadeOut((timeOut / 6), function() {
                                isFader = true;
                                current = items[(currNo + 1)];
                                if (!isMouseOver) {
                                    fadeElement(false);
                                }
                            });
                        });
                    } else {
                        $(copy[currNo]).slideUp((timeOut / 6), function() {
                            $(items[currNo]).fadeOut((timeOut / 6), function() {
                                isFader = true;
                                current = items[(currNo + 1)];
                                if (!isMouseOver) {
                                    fadeElement(false);
                                }
                            });
                        });
                    }
                }
            }
        }

        makeSlider();

    };

})(jQuery);


$(function() {
    if ($(".slider").length > 0) {
        $('.slider').s3Slider({
            timeOut: 3000
        });
    };
});