﻿// PHOTO SLIDER FOR HOME PAGE (USED IN VS4)
$(document).ready(function() {
    $('.ContentSlider').wrapInner('<div class="Border"></div>');
	$('.ContentSlider ul').wrap('<div class="Overflow"></div>');
	// $('<p class="PhotoCaption" />').insertAfter('.Overflow');
	$('.Overflow ul').addClass('Container');
	$('.Container li').addClass('Slide');
	$('<div class="Buttons"></div>').insertBefore('.Border');
	$('<a href="#" class="Prev"></a>').appendTo('.Buttons');
	$('<a href="#" class="Next"></a>').appendTo('.Buttons');
	$('<em class="Count"></em>').insertBefore('.Next');
});

$.fn.accessSlider = function() {
    return this.each(function(i) {
        aSlider.init(this);
    });
};

var slideWidth = 250; // equals width of image plus padding on its container <li>
var slideSpeed = "slow";
var scrollNum = 1; // number of items scrolled left
var aSlider = {
    init: function(p) {
        slideLength = $(".Slide",p).length;
        $(".Count",p).prepend("<span></span>&nbsp;" + " of " + slideLength );
        newsContainerWidth = slideLength * slideWidth;
        $(".Container",p).css("width",newsContainerWidth + "px");
        $(".Prev",p).addClass("Inactive");
        animating = false;
        $(".Next",p).bind("click",{p:p,cssClass:".Next",alternateClass:".Prev"}, Slider_ButtonClick);
        $(".Prev",p).bind("click",{p:p,cssClass:".Prev",alternateClass:".Next"}, Slider_ButtonClick);
		$(".Count span").html(1);
		
		var currentSlide = $(".Slide", p).eq(0);
		$(".PhotoCaption", p).html($("img", currentSlide).attr("alt"));
    }
};

/// This function handles the click event for all buttons (Previous and Next inside the ContentSlider)
function Slider_ButtonClick(event)
{
	//Assign Parameters from data oblject passed by jQuery, to local variables.
	var p = event.data.p;
	var cssClass = event.data.cssClass;
	var alternateClass = event.data.alternateClass;
	var isNext = cssClass == ".Next";

	// Clears the Click event so that 'Next' Click does not shoot up to the top of the screen.
	$(cssClass,p).click(function(){return false;});

            if (animating == false) {
                animating = true;
                animateLeft = parseInt($(".Container",p).css("left")) 
                if(isNext)
					animateLeft -= (slideWidth * scrollNum);
                else
					animateLeft += (slideWidth * scrollNum);
					
				var shouldContinue = isNext
										? animateLeft + parseInt($(".Container",p).css("width")) > 0
										: (animateLeft + parseInt($(".Container",p).css("width"))) <= parseInt($(".Container",p).css("width"));
				
                if (shouldContinue)
                {
                        $(alternateClass,p).removeClass("Inactive");
						$(".Container",p).animate({left: animateLeft}, slideSpeed, function()
						{
							$(this).css("left",animateLeft);
                        
			                
							//****** SETS THE Text Of the Caption on the box to reflect current Image Index ******//
							
							var current = parseInt($(".Count span", p).html());
							
							//The next two lines Copies the text from the alt of the new Img being scrolled to and then puts it in the title of the correct Image Container.
							
							//if its next you do not subtract anything because the div ids are 1 based and you will get a node in the correct slot.
							// however if the user clicked the back button, then you subtract 2, one for the one based index offset and 1 more for the back click.
							var currentSlide = $(".Slide", p).eq((isNext ? current : (current - 2)));
							if($("img", currentSlide).attr("alt") != null)
								$(".PhotoCaption", p).html($("img", currentSlide).attr("alt"));
							else
								$(".PhotoCaption", p).html("&nbsp;");
							
							var newCurrent = isNext ? current + 1: current -1;
							
							$(".Count span",p).html(newCurrent);
							//****** END SETS THE Text ... ******//
							
							var hitLimit = isNext
										? parseInt($(".Container",p).css("left")) + parseInt($(".Container",p).css("width")) <= slideWidth * scrollNum
										: parseInt($(".Container",p).css("left")) == 0;
							if (hitLimit)
							{
								$(cssClass,p).addClass("Inactive");
								$(cssClass,p).click(function(){return false;});
							}
							else
							{
								$(cssClass,p).bind("click",{p:p,alternateClass:alternateClass,cssClass:cssClass}, Slider_ButtonClick);
							}
							$(alternateClass,p).bind("click",{p:p,cssClass:alternateClass,alternateClass:cssClass}, Slider_ButtonClick);

							animating = false; 
                    });
                } else {
                    animating = false;
                }
				return false;
            }
        }
$(document).ready(function() {
    $(".ContentSlider").accessSlider();
});