/*
    anythingSlider v1.2
    
    By Chris Coyier: http://css-tricks.com
    with major improvements by Doug Neiner: http://pixelgraphics.us/
    based on work by Remy Sharp: http://jqueryfordesigners.com/


	To use the navigationFormatter function, you must have a function that
	accepts two paramaters, and returns a string of HTML text.
	
	index = integer index (1 based);
	panel = jQuery wrapped LI item this tab references
	@return = Must return a string of HTML/Text
	
	navigationFormatter: function(index, panel){
		return index + " Panel"; // This would have each tab with the text 'X Panel' where X = index
	}
*/

//$("document").ready(function(){ $(".playercontainer1").hide(0); $(".playercontainer2").hide(0);});

if (randomize == undefined || randomize == false) {
	
	var randomize = false;
}

(function($){
	
    $.anythingSlider = function(el, options){
        // To avoid scope issues, use 'base' instead of 'this'
        // to reference this class from internal events and functions.
        var base = this;
        
        // Access to jQuery and DOM versions of element
        base.$el = $(el);
        base.el = el; 

		// Set up a few defaults
        base.currentPage = 1;
		base.timer = null;
		base.playing = false;
		
        // Add a reverse reference to the DOM object
        base.$el.data("AnythingSlider", base);
        
        base.init = function(){
            base.options = $.extend({},$.anythingSlider.defaults, options);
			
			// Cache existing DOM elements for later 
			base.$wrapper = base.$el.find('> div').css('overflow', 'hidden');
            base.$slider  = base.$wrapper.find('> ul');
            base.$items   = base.$slider.find('> li');
            base.$single  = base.$items.filter(':first');

			// Build the navigation if needed
			if(base.options.buildNavigation) base.buildNavigation();
        	
			//build Counter
			base.buildCounter();
			
        	// Get the details
            base.singleWidth = base.$single.outerWidth();
            base.pages = base.$items.length;

            // Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
			// This supports the "infinite" scrolling
			base.$items.filter(':first').before(base.$items.filter(':last').clone().addClass('cloned'));
            base.$items.filter(':last' ).after(base.$items.filter(':first').clone().addClass('cloned'));

			// We just added two items, time to re-cache the list
            base.$items = base.$slider.find('> li'); // reselect
            
			// Setup our forward/backward navigation
			base.buildNextBackButtons();
		
			// If autoPlay functionality is included, then initialize the settings
			if(base.options.autoPlay) {
				base.playing = !base.options.startStopped; // Sets the playing variable to false if startStopped is true
				base.buildAutoPlay();
			};
			
			// If pauseOnHover then add hover effects
			if(base.options.pauseOnHover) {
				base.$el.hover(function(){
					base.clearTimer();
				}, function(){
					base.startStop(base.playing);
				});
			}
			
			base.$items.click(function(){
				
				if(base.playing == true) base.startStop(!base.playing);
														
			});
				
					
			
			// If a hash can not be used to trigger the plugin, then go to page 1
			if((base.options.hashTags == true && !base.gotoHash()) || base.options.hashTags == false){
				base.setCurrentPage(1);
			};
			
			
			
			if(randomize == true) {
				base.setCurrentPage(Math.floor(Math.random()*base.pages));
			}
			
			
        };

		base.gotoPage = function(page, autoplay){
			// When autoplay isn't passed, we stop the timer
			if(autoplay !== true) autoplay = false;
			if(!autoplay) base.startStop(false);
			
			if(typeof(page) == "undefined" || page == null) {
				page = 1;
				base.setCurrentPage(1);
			};
			
			// Just check for bounds
			if(page > base.pages + 1) page = base.pages;
			if(page < 0 ) page = 1;

			var dir = page < base.currentPage ? -1 : 1,
                n = Math.abs(base.currentPage - page),
                left = base.singleWidth * dir * n;
				
				var element = $("a#last");
				var positionLast = element.position();
				
				if ((autoplay == true) && (positionLast.left >= navwidth)) {
				//$("#holder:not(:animated)").animate({"marginLeft": "-="+navitemwidth+"px"}, "slow");
				}
				
			base.$wrapper.filter(':not(:animated)').animate({
                scrollLeft : '+=' + left
            }, base.options.animationTime, base.options.easing, function () {
                if (page == 0) {
                    base.$wrapper.scrollLeft(base.singleWidth * base.pages);
					page = base.pages;
					var itemsinNav = navwidth / navitemwidth;
					var rounddown = Math.ceil(itemsinNav);
					var leftpositionTotal = (base.pages - rounddown) * navitemwidth;
					//$("#holder:not(:animated)").animate({"marginLeft": "-="+leftpositionTotal+"px"}, "fast");
					
                } else if (page > base.pages) {
                    base.$wrapper.scrollLeft(base.singleWidth);
                    // reset back to start position
                    page = 1;
					//$("#holder:not(:animated)").animate({"marginLeft": "0px"}, "fast");
                };
				base.setCurrentPage(page);
				
				
				
			
				
            	//if(position.left > navwidth) {
	            //   	$("#holder:not(:animated)").animate({"marginLeft": "-=33px"}, "slow");
            	//}
				
				
				
				
            });
		};
		
		base.setCurrentPage = function(page, move){
			// Set visual
			if(base.options.buildNavigation){
				base.$nav.find('.cur').removeClass('cur');
				$(base.$navLinks[page - 1]).addClass('cur');	
			};
			
			base.$countBar.find('span#current').text(page);
			
			// Only change left if move does not equal false
			if(move !== false) {
				
			//var currentSlideDivId = 'div#imageslide' + page;
			//$(currentSlideDivId).css('display', 'block');
				base.$wrapper.scrollLeft(base.singleWidth * page);
			}
			// Update local variable
			base.currentPage = page;
			//var currentSlideDivId = 'div#imageslide' + page;
			//$(currentSlideDivId).css('display', 'block');
			
			
		};
		
		base.goForward = function(autoplay){
			if(autoplay !== true) autoplay = false;
			base.gotoPage(base.currentPage + 1, autoplay);
			
			//$("a.imagelink").show(0);
			$("div.playercontainer1").hide(0);
			$("div.playercontainer2").hide(0);
			$("div.ytplayer").remove();
			
			/*if (base.options.hashTags) {
				
					if(base.currentPage == base.pages) {
						base.setHash('panel-' + (1));
						
					}
					else { base.setHash('panel-' + (base.currentPage + 1)); }
				
			}*/
			//temporarily removed hash tag setting cause it was annoying users.
			//sets the hash even if it's autoplaying
			 
		};
		
		base.goBack = function(){
			base.gotoPage(base.currentPage - 1);
			
			//$("a.imagelink").show(0);
			$("div.playercontainer1").hide(0);
			$("div.playercontainer2").hide(0);
			$("div.ytplayer").remove();
			
			/*if(base.currentPage == 1) {
						base.setHash('panel-' + base.pages);
						
					}
			else { 
			
				base.setHash('panel-' + (base.currentPage - 1)); 
				
				}
			*/
			//temporarily removed hash tag setting cause it was annoying users.
			//sets the hash when you click back
		};
		
		// This method tries to find a hash that matches panel-X
		// If found, it tries to find a matching item
		// If that is found as well, then that item starts visible
		base.gotoHash = function(){
			if(/^#?panel-\d+$/.test(window.location.hash)){
				var index = parseInt(window.location.hash.substr(7));
				//var $item = base.$items.filter(':eq(' + index + ')');
				//alert(base.$items.length);
				if(index != 0){
					base.setCurrentPage(index);
					var navPosition = (index-1) * navitemwidth;
					var itemsinNav = navwidth / navitemwidth;
					var rounddown = Math.ceil(itemsinNav);
					var screenTotal = (base.pages-rounddown) * navitemwidth;
					var positionTotal = index * navitemwidth;
					
						if (positionTotal > screenTotal) {
							var leftpositionTotal = (base.pages - rounddown) * navitemwidth;
							$("#holder:not(:animated)").animate({"marginLeft": "-="+leftpositionTotal+"px"}, "fast");
						}
						
						else { 
							$("#holder:not(:animated)").animate({"marginLeft": "-="+navPosition+"px"}, "fast");
						};
						
					//$("#holder").css({ marginLeft: "-="+navPosition+"px"});
					return true;
				};
			};
			return false; // A item wasn't found;
		};
        
		//builds the counter 
		base.buildCounter = function(){
			base.$countBar = $("<div id='countBar'></div>").appendTo(base.$el); 
			base.$length = base.$items.length;
			
			var $c = $("<span id='current'></span>");
			var $d = $("<span id='last'></span>");
			
			//if( typeof(base.options.navigationFormatter) == "function"){
					//$a.html(base.options.navigationFormatter(index, $(this)));
				//} else {
					$c.text(base.currentPage);
					$d.text(" / " + base.$length);
				//}
				
				
				
				
				base.$countBar.append($c); 
				base.$countBar.append($d); 

			
			
		};
		
		// Creates the numbered navigation links
		base.buildNavigation = function(){
			base.$nav = $("<div id='thumbNav'></div>").appendTo(base.$el);
			base.$holder = $("<div id='holder'></div>").appendTo(base.$nav); 
			base.$length = base.$items.length;
			base.$items.each(function(i,el){
			
				var index = i + 1;
				if(index == 1) {
					var $a = $("<a id='first'></a>");
				} else if(index == base.$length) {
					var $a = $("<a id='last'></a>");
				} else {
					var $a = $("<a></a>");
				}
				
				// If a formatter function is present, use it
				//if( typeof(base.options.navigationFormatter) == "function"){
				//	$a.html(base.options.navigationFormatter(index, $(this)));
				//} else {
				//	$a.text(index);
				//} - Commented out to get rid of the numbers
				
				$a.click(function(e){
                    base.gotoPage(index);
					var elementFirst = $("a#first");
					var element = $("a#last");
            		var positionFirst = elementFirst.position();
					var positionLast = element.position();					
					 
					
					//$("a.imagelink").show(0);
					//var currentSlideDivId = 'div#imageslide' + base.currentPage;
					
					$("div.playercontainer1").hide(0);
					$("div.playercontainer2").hide(0); 
					$("div.ytplayer").remove();
					
					//$(currentSlideDivId).prepend("<a class=\"imagelink\">&#160;</a>");
					
                    
                    
				});
				base.$holder.append($a); 

			});
			base.$navLinks = base.$holder.find('> a');
		};
		
		
		// Creates the Forward/Backward buttons
		base.buildNextBackButtons = function(i){
			var $forward = $('<a class="arrow forward">&gt;</a>'),
				$back    = $('<a class="arrow back">&lt;</a>');
			
			
            // Bind to the forward and back buttons
            $back.click(function(e){
                base.goBack();
				e.preventDefault();
				
				var element = $("a#first");
            	var position = element.position();
				
				//work out if the first element is past the yard arm
            	if(position.left < 0) {
            		$("#holder:not(:animated)").animate({"marginLeft": "+="+navitemwidth+"px"}, "slow");
					
            	} 
				
				 
            });

            $forward.click(function(e){
                base.goForward();
				e.preventDefault();
				
				var element = $("a#last");
            	var position = element.position();	
				//work out if the last element is past the yard elbow
            	if(position.left >= navwidth) {
	              	$("#holder:not(:animated)").animate({"marginLeft": "-="+navitemwidth+"px"}, "slow");
            	}
				$("div.hidden-content").hide();
            });

			// Append elements to page
			base.$wrapper.after($back).after($forward);
		};
		
		
		// Creates the Start/Stop button
		base.buildAutoPlay = function(){
			base.$playBox = $("<div id='playBox'></div>").appendTo(base.$el);
			base.$startStop = $("<a href='#' id='start-stop'></a>").html(base.playing ? base.options.stopText :  base.options.startText);
			base.$playBox.append(base.$startStop);            
            base.$startStop.click(function(e){
				base.startStop(!base.playing);
				e.preventDefault();
            });

			// Use the same setting, but trigger the start;
			base.startStop(base.playing);
		};
		
		// Handles stopping and playing the slideshow
		// Pass startStop(false) to stop and startStop(true) to play
		base.startStop = function(playing){
			if(playing !== true) playing = false; // Default if not supplied is false
			
			// Update variable
			base.playing = playing;
			
			// Toggle playing and text
			if(base.options.autoPlay) base.$startStop.toggleClass("playing", playing).html( playing ? base.options.stopText : base.options.startText );
			
			
			
			if(playing){
				base.clearTimer(); // Just in case this was triggered twice in a row
				
				if((base.options.firstDelay != null) && (base.currentPage == 1)) {
				
				
				base.timer = window.setInterval(function(){
					base.goForward(true);
				}, base.options.firstDelay);
				
				var t=setTimeout(base.standardTime,base.options.firstDelay);
				//this part sets up the delay on the first slide and then resets the timer to the standard time when it's done.
		
												   
				}
				
				else {
				
				base.timer = window.setInterval(function(){
					base.goForward(true);
				}, base.options.delay);
				
				
				}
			}
			
			else {
				base.clearTimer();
			};
		};
		
		base.standardTime = function() {
					
					base.startStop(base.playing, base.options.firstDelay = null);
					
					
					};
		
		
		base.clearTimer = function(){
			// Clear the timer only if it is set
			if(base.timer) window.clearInterval(base.timer);
		};
		
		// Taken from AJAXY jquery.history Plugin
		base.setHash = function ( hash ) {
			// Write hash
			if ( typeof window.location.hash !== 'undefined' ) {
				if ( window.location.hash !== hash ) {
					window.location.hash = hash;
				};
			} else if ( location.hash !== hash ) {
				location.hash = hash;
			};
			
			// Done
			return hash;
		};
		// <-- End AJAXY code


		// Trigger the initialization
        base.init();
			
    };

	
    $.anythingSlider.defaults = {
        easing: "linear",                // Anything other than "linear" or "swing" requires the easing plugin
        autoPlay: true,                 // This turns off the entire FUNCTIONALY, not just if it starts running or not
        startStopped: false,            // If autoPlay is on, this can force it to start stopped
        delay: 5000,                    // How long between slide transitions in AutoPlay mode
		firstDelay: null,
        animationTime: 800,             // How long the slide transition takes
        hashTags: true,                 // Should links change the hashtag in the URL?
        buildNavigation: true,          // If true, builds and list of anchor links to link to each slide
        pauseOnHover: true,             // If true, and autoPlay is enabled, the show will pause on hover
		startText: "Start",             // Start text
		stopText: "Stop",               // Stop text
		navigationFormatter: null,      // Details at the top of the file on this use (advanced use)
		speedplay: 5
    };
	

    $.fn.anythingSlider = function(options){
		if(typeof(options) == "object"){
		    return this.each(function(i){			
				(new $.anythingSlider(this, options));

	            // This plugin supports multiple instances, but only one can support hash-tag support
				// This disables hash-tags on all items but the first one
				options.hashTags = false;
	        });	
		} else if (typeof(options) == "number") {

			return this.each(function(i){
				var anySlide = $(this).data('AnythingSlider');
				if(anySlide){
					anySlide.gotoPage(options);
				}
			});
		}
    };

	
})(jQuery);

function formatText(index, panel) {
		
        return index + "";
        }
        
        $(function () {
					
			
			//Below is used so that the loading of the slides looks cleaner. They are hidden on load and this shows them.
			$('.anythingSlider ul li .slide').css('display', 'block');
		
		
        $('.anythingSlider').anythingSlider({
        easing: "linear",        // Anything other than "linear" or "swing" requires the easing plugin
        autoPlay: true,                 // This turns off the entire FUNCTIONALY, not just if it starts running or not.
        delay: speedplay,                    // How long between slide transitions in AutoPlay mode
        firstDelay: firstSlideDelay,
        startStopped: false,            // If autoPlay is on, this can force it to start stopped
        
        animationTime: 600,             // How long the slide transition takes
        hashTags: true,                 // Should  links change the hashtag in the URL?
        buildNavigation: true,          // If true, builds and list of anchor links to link to each slide
        pauseOnHover: true,             // If true, and autoPlay is enabled, the show will pause on hover
        startText: "Play",             // Start text
        stopText: "Stop",               // Stop text
        navigationFormatter: null       // Details at the top of the file on this use (advanced use)
        });
	
        
        
        $("#slide-jump").click(function(){
        $('.anythingSlider').anythingSlider(6);
        });
		
		
		$('.injectvideo1').click(function(){
      						
							   
							   //if(base.playing == true) base.startStop(!base.playing);
							   vidid = $(this).attr("id");
							   
							   //stops the auto play if you click the video injector link;
							  
							  
							   //$(this).parent().parent().parent().find("a.imagelink").hide(0);
							   //$(this).parent().parent().parent().find("a.imagelink").remove();
							   //hide the link box that takes up the whole banner space 
							   $(this).parent().parent().parent().find("div.playercontainer2").css('display', 'none');
							   //hide the second video container if this one is clicked.
							  // $(this).parent().parent().hide(0);
							   
							   $(this).parent().parent().parent().find("div.playercontainer1").css('display', 'block');
							   $(this).parent().parent().parent().find("div.playercontainer1").append("<div class=\"ytplayer\"><object style=\"height: 247px; width: 405px;\"><param name=\"movie\" value=\"" + vidid + "\" /><param name=\"allowFullScreen\" value=\"true\" /><param name=\"allowScriptAccess\" value=\"always\" /><embed type=\"application/x-shockwave-flash\" allowfullscreen=\"true\" allowScriptAccess=\"always\" width=\"405\" height=\"247\" src=\"http://www.youtube.com/v/" + vidid + "?version=3&amp;autohide=1&amp;showinfo=0&amp;autoplay=1\" /></object></div>");
							   //shows the player container so the video can load.
							   
							  
			});
			
			$('.injectvideo2').click(function(){
      						
							   
							   //if(base.playing == true) base.startStop(!base.playing);
							   vidid = $(this).attr("id");
							   
							   //stops the auto play if you click the video injector link;
							  
							  
							   //$(this).parent().parent().parent().find("a.imagelink").hide(0);
							   //hide the link box that takes up the whole banner space 
							   $(this).parent().parent().parent().find("div.playercontainer1").css('display', 'none');
							   //hide the second video container if this one is clicked.
							  // $(this).parent().parent().hide(0);
							   
							   $(this).parent().parent().parent().find("div.playercontainer2").css('display', 'block');
							   $(this).parent().parent().parent().find("div.playercontainer2").append("<div class=\"ytplayer\"><object style=\"height: 247px; width: 405px;\"><param name=\"movie\" value=\"" + vidid + "\" /><param name=\"allowFullScreen\" value=\"true\" /><param name=\"allowScriptAccess\" value=\"always\" /><embed type=\"application/x-shockwave-flash\" allowfullscreen=\"true\" allowScriptAccess=\"always\" width=\"405\" height=\"247\" src=\"http://www.youtube.com/v/" + vidid + "?version=3&amp;autoplay=1&amp;controls=0\" /></object></div>");
							   //shows the player container so the video can load.
							   
							   
							 
			});
			
			$('.exitvideo').click(function() {
										   
					  
					   //vididtwo = $(this).parent().parent().parent().find("a.imagelink").attr("id");
					  
					  
					  
					   //$(this).parent().parent().parent().find("a.imagelink").removeAttr("style");
					  
					   //$(this).parent().parent().parent().prepend("<a class=\"imagelink\">&#160;</a>");
					 
					   //$(this).parent().parent().parent().parent().find("div.imagecaption").show(0);
					   //$("div.playercontainer1").css('display', 'none');
					   //$("div.playercontainer2").css('display', 'none');
					   $("div.ytplayer").remove();
					   $(this).parent().parent().parent().find("div.playercontainer2").css('display', 'none');
					   $(this).parent().parent().parent().find("div.playercontainer1").css('display', 'none');
					   
					   //$(this).parent().parent().parent().find("a.imagelink").show();
					   //playerone = $(this).parent().parent().parent().find("div.playercontainer1").get();
					   //slidecurrent = $(this).parent().parent().parent().parent();
					   //playerone = $(this).parent().parent().parent().find("div.playercontainer1").detach();
					   //$(this).parent().parent().find("div.ytplayer").remove();
					   
					
					   //$(this).parent().parent().parent().find("div.playercontainer1").replaceWith(playerone);
					   //$(this).parent().parent().append("<div class=\"ytplayer\"><object style=\"height: 247px; width: 405px;\"><param name=\"movie\" value=\"uGkUrKmXbKI\" /><param name=\"allowFullScreen\" value=\"true\" /><param name=\"allowScriptAccess\" value=\"always\" /><embed type=\"application/x-shockwave-flash\" allowfullscreen=\"true\" allowScriptAccess=\"always\" width=\"405\" height=\"247\" src=\"http://www.youtube.com/v/uGkUrKmXbKI?version=3&amp;autoplay=1&amp;controls=0\" /></object></div>");
					   //alert(slidecurrent);
					   //$(this).parent().parent().detach();
					    //$("div.playercontainer2").remove();
			           //playerone.prependTo(slidecurrent);
					   //$(this).parent().parent().parent("div.slide").prepend(playerone);
						//$(this).parent().parent().parent().find("div.playercontainer1").prepend(playerone);
						//$("div#displaybox").prepend(playerone);
						//$(this).parent().parent().parent().find("div.playercontainer1").css('display', 'none');
										   
			});
		
			
			

        });

