/*
 * Round Slider
 * jQuery based content slider
 * http://www.cycledev.com
 *
 * Copyright (c) 2010 Cycledev
 * GPL licenses.
 *
 * Date: 2010-12-20
 * Revision: 1.0
 */
$(document).ready(function() {
	/**
	 * Slider variables
	 */
	 var sliderTimer       = 8000;
	 var slidingSpeed      = 700;
	 var slideStageNumber  = 0;
	 var imageReelPosition = 0;
	 var triggerId         = 0;
	 var currentSlide      = 0;
	 var newTrigerId       = 0;
	/**
	 * Display the paging and activate its first link 
	 */
	$(".zy_paging").show();
	$(".zy_paging a:first").addClass("active");
	
	
	/**
	 * Get size of the image, how many images there are, 
	 * then determin the size of the slider reel.
	 * Adjust the slider reel to its new size
	 */
	var imageWidth 		= $(".banner_container").width();
	var imageSum 		= $(".zy_image_reel img").size();
	var imageReelWidth 	= imageWidth * imageSum;
	$(".zy_image_reel").css({'width' : imageReelWidth});
	
	/**
	 * Paging  and Slider Function
	 * Get number of times to slide
	 * Determines the distance the image reel needs to slide
	 * Remove all active class
	 * Add active class 
	 * Slider Animation
	 */
	rotate = function(){
		triggerId = $active.attr("rel") - 1;
		if((triggerId == 0)||(slideStageNumber >= 1)) {
			triggerId = imageSum-1;
		}
		imageReelPosition = triggerId * imageWidth;	
		$(".zy_paging a").removeClass('active');
		$active.addClass('active');	
		$(".zy_image_reel").animate({
			left: -imageReelPosition
		}, slidingSpeed );
	}; 
	
	
	/**
	 * Paging  and Slider Function For Clicked Slider
	 * Get number of times to slide
	 * Determines the distance the image reel needs to slide
	 * Remove all active class
	 * Add active class 
	 * Slider Animation
	 */
	rotateOnClick = function(){
		newTrigerId = slideBack();
		imageReelPosition = newTrigerId * imageWidth;	
		$(".zy_paging a").removeClass('active');
		$active.addClass('active');	
		$(".zy_image_reel").animate({
			left: -imageReelPosition
		}, slidingSpeed );
		rotateSwitch();	
	}; 
	
	
	/**
	 * Rotation  and Timing Event
	 * Set timer - this will repeat itself every sliderTimer mili seconds
	 */
	rotateSwitch = function(){
		play = setInterval(function(){ 
			$active = $('.zy_paging a.active').next();
			if((slideStageNumber >= 1)) {
				$(".zy_image_reel").animate({"left": -(imageReelPosition-imageWidth)}, 0 );
				$('.zy_image_reel').append($('.znt_slider:first'));
			}
			if ( $active.length === 0) { 
				if(slideStageNumber == 0) {
					$(".zy_image_reel").animate({"left": -(imageReelPosition-imageWidth)}, 0 );
				 	$('.zy_image_reel').append($('.znt_slider:first'));
				}
				slideStageNumber = slideStageNumber + 1;
				$active = $('.zy_paging a:first'); 
			} 
			rotate(); 
		}, sliderTimer); 
	};
	
	/**
	 * Function for clicking on page numbers
	 */
	$(".zy_paging a").click(function() {
		if(slideStageNumber >=1) {
			currentSlide = $active.attr("rel");
		}
		$active = $(this); 
		clearInterval(play); 
		rotateOnClick();
		return false;
	});
	
	
	
	
	/**
	 * Paging  and Slider Function For Clicked Slider
	 * Get number of times to slide
	 * Determines the distance the image reel needs to slide
	 * Slider Animation
	 */
	slideBack = function(){
		var clickedTriggerId   = $active.attr("rel") - 1;
		if(slideStageNumber >=1) {
		    newTrigerId = appendSlide();
		} else {
			newTrigerId = clickedTriggerId ;
		}
		return newTrigerId;
	}
	
	
	
	
	
	
	
	/**
	 * Paging  and Slider Function For Append Slider
	 * Get number of times to slide
	 * Determines the distance the image reel needs to slide
	 * Slider Animation
	 */
	appendSlide = function(){
		var clickedSlideNumber = $active.attr("rel");
		var slideNumberToMove  = 0;
		if(currentSlide>clickedSlideNumber) {
			slideNumberToMove = imageSum-(currentSlide-clickedSlideNumber);
		} else {
			slideNumberToMove = (clickedSlideNumber-currentSlide);
		}
		var newImageReelPosition = imageWidth*(imageSum - 2);
		$(".zy_image_reel").animate({left: -newImageReelPosition}, 0 );
		for(var i=0;i<slideNumberToMove;i++) {
			$('.zy_image_reel').append($('.znt_slider:first'));
		}
		newTrigerId = imageSum - 1;
		return newTrigerId;
	}
	
	
	
	
	
	/**
	 * Run function on launch
	 */
	rotateSwitch(); 
});

