
(function( $ ){

  $.fn.tinniSlider = function(options) {

	  var settings = {
			container: "container", //Class of main container. Don't add a "." here.
			slides: "slides", //Class/id of slide container. Don't add a "." here.
			pagination: "pagination", //Class name of parent ul for numbered links. Don't add a "." here.
			containerClick: true, //Click slider to goto next slide? true/false
			autoStart: 0, //Set to positive number for true. This number will be the time between transitions.
			hoverPause: false, //Set to true to pause on hover, if autoStart is also true
			fadeOutspeed: 1000, //Speed of fade out animation, 1000 = 1second.
			fadeInspeed:600, //Speed of fade in animation, 1000 = 1second.
			displayTime:7000, //Time one slide will be on display, 1000 = 1second.
			addPagination: false //Add pagination links based on content? true/false
		};
  
    this.each(function() {

		if ( options ) { 
			$.extend( settings, options );
		}
		var count = 0;
		var timer = null;
		var $t = $(this);
		var isRunning = false;

		$("."+settings.slides,this).find("img").each(function(){
			if(jQuery.browser.msie)
				$(this).css("background" , "#fff");
			$(this).hide();	
			$(this).css({"position":"absolute","top":"0px","left":"0px"});
		});

		$(this).append('<div id="slider-nav">	' +
			'<a href="#" class="previous"><img src="https://www.purchase.edu/SiteFiles/SiteWide/images/new-images/prev-arrow.png" alt="Previous" /></a>' +
			'<ul class="'+ settings.pagination + '">' +
			'</ul>' +
			'<a href="#" class="next"><img src="https://www.purchase.edu/SiteFiles/SiteWide/images/new-images/next-arrow.png" alt="Next" /></a>' +
		'</div>');

		var slideLength = $("."+settings.slides,this).find("img").size();

		for(var c = 1; c <= slideLength; c++){
			$("."+settings.pagination).append('<li><a href="#">'+c+'</a></li>');
		}

		$("."+settings.pagination + " li").find("a").each(function(){
			$(this).bind("click.tinnislider",function(){
				goTo($(this).html());
			});
		});


		//here are the style definations:
		var paginationCssObj = {
		  'list-style' : 'none',
		  'padding' : '0',
		  'margin' : '0',
		  'position' : 'absolute',
		  'bottom' : '0px',
		  'right' : '40px',
			 // 'border' : '1px solid red',
		  'float' : 'right'
		}

		var containerCss = {"width":"951px", "height":"363px", "position":"relative", "background":"transparent",
			"font-family":"Arial, Verdana,Serif", "font-size":"14px", "font-weight":"normal"};

		var sliderNavCSS = {"position":"relative", "width":"100px", "bottom":"20px", "float":"right", "padding":"0 30px 0px 250px",
				"margin-right":"220px", "background-image": "url(https://www.purchase.edu/SiteFiles/SiteWide/images/new-images/fade-wht.png)", "height":"20px"}

		var anchorCss = { "position":"relative", "bottom":"2px", "margin":"2px 4px 15px 4px", "color":"#aaa", "text-decoration":"none", "font-size":".6em"}

		var nextCss = {"position":"absolute", "top":"5px", "text-decoration":"none", "color":"#aaa", "left":"345px"}
		var prevCss = {"position":"absolute", "top":"5px", "text-decoration":"none", "color":"#aaa", "left":"255px"}

		$("#slider-nav").css(sliderNavCSS);

		//container
		$("."+settings.container).css(containerCss);

		$("."+settings.pagination).css(paginationCssObj);

		if(jQuery.browser.msie)
			$("."+settings.pagination).css("bottom","2px");
		
		$("."+settings.pagination).find("li").css("float","left");
		$("."+settings.pagination + " li").find("a").css(anchorCss);
		$(".previous").css(prevCss);
		$(".next").css(nextCss);

		$(".previous img").css("border","none");
		$(".next img").css("border","none");

		$(".next").bind("click.tinniSlider", function(e){
			e.preventDefault();
			e.stopPropagation();
			stop();

			next();
		});

		$(".previous").bind("click.tinniSlider", function(e){
			e.preventDefault();
			e.stopPropagation();
			stop();

			prevous();
		});
		
		next();
		
		if(settings.hoverPause){
			$(this).hover(function(){
				isRunning = false;
				stop();
			},function(){
				isRunning = true;
				restart();
			});
		}

		function next() {

			if(count >= slideLength)
				count = 0;
			var prev = count - 1;
			if(prev < 0 && isRunning)
				prev = slideLength - 1;	
			
			if(jQuery.browser.msie)
				$("."+settings.slides).find("img").eq(prev).css("background" , "#fff");
			
			$("."+settings.slides).find("img").eq(prev).fadeOut(settings.fadeOutspeed,
				function(){
				try{
					$("."+settings.pagination).find(" li:nth-child("+(prev+1)+")").find("a").css("color","#aaa");
				}catch(e){}				
			});

			
			if(isRunning && jQuery.browser.msie){

				var top = $("."+settings.slides).find("img").eq(prev).position().top;
				var left = $("."+settings.slides).find("img").eq(prev).position().left;
			
				$t.find("img").eq(count).css({"position":"absolute", "top": "0px", "left" : "0px", "background" : "#fff"});
			}


			$t.find("img").eq(count).fadeIn(settings.fadeInspeed,
				function(){
					$("."+settings.pagination).find(" li:nth-child("+( count + 1)+")").find("a").css("color","#fff");
					count ++;
					if(count == slideLength)
						count = 0;
					isRunning = true;
					if(jQuery.browser.msie)
						$(this).css("background" , "transparent");
					restart();
			});
		};


		function prevous() {
			 
			count = count - 2;
			
			if(count < 0){
				count = slideLength - 1;
				prev = 0;
			}else{
				prev = count + 1;
			}
			
			if(jQuery.browser.msie){
				$("."+settings.slides).find("img").eq(prev).css("background" , "#fff");
				$t.find("img").eq(count).css({"position":"absolute", "top": "0px", "left" : "0px", "background" : "#fff"});
			}

			$("."+settings.slides).find("img").eq(prev).fadeOut(settings.fadeOutspeed,
				function(){
				$("."+settings.pagination).find(" li:nth-child("+(prev+1)+")").find("a").css("color","#aaa");				
			});

			$t.find("img").eq(count).fadeIn(settings.fadeInspeed,
				function(){
					$("."+settings.pagination).find(" li:nth-child("+( count + 1)+")").find("a").css("color","#fff");
					count ++;
					if(jQuery.browser.msie)
						$(this).css("background" , "transparent");
					isRunning = true;						
					restart();
			});
		};

		function goTo(imgNum){
			
			if(count >= slideLength)
				count = 0;
			var prev = count - 1;
			if(prev < 0 && isRunning)
				prev = slideLength - 1;		
			
			if(jQuery.browser.msie){
				$("."+settings.slides).find("img").eq(prev).css("background" , "#fff");
				$t.find("img").eq(imgNum-1).css({"position":"absolute", "top": "0px", "left" : "0px", "background" : "#fff"});
			}

			$("."+settings.slides).find("img").eq(prev).fadeOut(settings.fadeOutspeed,
				function(){
				try{
					$("."+settings.pagination).find(" li:nth-child("+(prev+1)+")").find("a").css("color","#aaa");
				}catch(e){}				
			});
			$t.find("img").eq(imgNum-1).fadeIn(settings.fadeInspeed,
				function(){
					$("."+settings.pagination).find(" li:nth-child("+( imgNum)+")").find("a").css("color","#fff");
					count = imgNum;
					if(count >= slideLength)
						count = 0;
					if(jQuery.browser.msie)
						$(this).css("background" , "transparent");
					isRunning = true;
					restart();
			});
		};
		function restart(){
			if(isRunning){
				clearInterval(timer);
			}			
			timer = setTimeout( function(){next()}, settings.displayTime);
		};

		function stop(){
			clearTimeout(timer);
		};

		function hideAll(prev){
			if(!isRunning) return;
			$t.find("img").each(function(i){
				if(i != prev){
					$(this).fadeOut();
				}
			});
		};


		return $(this);

	});

  };
})( jQuery );
