
/*
 *markup example
 */
(function($) {
	$.fn.slider = function(options){// default configuration properties
		var defaults = {
          animationTime  : 2000,
          auto      : true,
          timeOut   : 9000,
          buttons:false
        };
		var options = $.extend(defaults, options);
		this.each(function() {
			var obj = $(this);
                        //insert buttons
                        if(options.buttons){
                                obj.prepend('<div class="slider-filmstripOuter"><div class="slider-filmstripCont"><div class="slider-filmstrip"></div></div><div class="clearfloat"></div></div>');
                        }
            var currentPanel, timer;
            var AUTO = options.auto;
			var panels = obj.find(".slider-panel");
            panels.hide();
            panels.first().show();
            currentPanel = panels.first();
            var strip = obj.find(".slider-filmstrip");
            panels.first().addClass("PANEL-showing");
            panels.each(function(index){
                var panel = $(this);
                var num = index + 1;
                /*var img = panel.find("img");
                var src = img.attr("src");
                var link = panel.find("a");
                var href = img.attr("href");
                panel.css("backgroundImage","url("+src+")");
                panel.click(function(){window.location = href});
                img.remove();
                link.remove();*/
                var imgDiv = $("<div>"+num+"</div>").addClass("slider-button")
                                             .click(function(){
                                               if(!strip.is(":animated")){
                                                 animate(panel);
                                                 $(".slider-button-animated").removeClass("slider-button-animated");
                                                 $(this).addClass("slider-button-animated");
                                               }
                                             }).hover(function(){
                                                 $(this).css("opacity","0.65");
                                             },function(){
                                                 $(this).css("opacity","1");
                                             });
                if(index == 0)
                    imgDiv.addClass("slider-button-animated");
                strip.append(imgDiv);
            })
            strip.append("<div class='clearfloat'></div>");

            function animate(nextPanel,noAnim){
              if(strip.is(":animated"))
                return;
              var button = $(".slider-button-animated")
              button.removeClass("slider-button-animated")
              if(button.next().is(":last-child"))
                 $(".slider-button").first().addClass("slider-button-animated");
              else
                 button.next().addClass("slider-button-animated");
              clearTimeout(timer);

              var time = options.animationTime;
              if(noAnim)
                time = 1;

              if(nextPanel == "next"){
                if(currentPanel.is(":last-child")){
                  nextPanel = panels.first();
                }
                else
                  nextPanel = currentPanel.next();
              }
              else if(nextPanel == "prev"){
                if(currentPanel.is(":first-child"))
                  nextPanel = panels.last();
                else
                  nextPanel = currentPanel.prev();
              }
              else if(nextPanel.hasClass("PANEL-showing"))
                  return;
              currentPanel.removeClass("PANEL-showing");

               panels.fadeOut(time);
               nextPanel.fadeIn(time);

               currentPanel = nextPanel;
               currentPanel.addClass("PANEL-showing");
               if(AUTO)
                 timer = setTimeout(function(){animate("next")},options.timeOut);
            }
            if(AUTO)
              timer = setTimeout(function(){animate("next")},options.timeOut);
		});

	}
})(jQuery);
