$(document).ready(function() {

   //Variables to manage feature state
   var $curFeature = 0;
   var $transitioning = false;
   var $featureCount = $("#feature-controls li").length;
   var $autoticktimer = 0;
   var $focusing = false;
   var $delay = 12000;

   function transitionToNextFeature()
   {
        if ($transitioning == false)
        {
            $fID = 0;
            if ($curFeature < $featureCount - 1)
            {
                $fID = $curFeature + 1;
            }

            prepTransitionContent($fID);
        }
   }

   function transitionToPrevFeature()
   {
        if ($transitioning == false)
        {
            $fID = $featureCount - 1;
            if ($curFeature > 0)
            {
                $fID = $curFeature - 1;
            }

            prepTransitionContent($fID);
        }
   }

   function prepTransitionContent($fID)
   {
        
        //Get next feature's content
        $fisrc = $(".feature-item-"+$curFeature).html();
        $featureOffset = $("#feature-image-active").offset();

        $nfisrc = $(".feature-item-"+$fID).html();
        
        setActiveButton($fID);

        //Begin
        $transitioning = true;

        //Prep temp transition content area.
        $("#feature-image-transition").html($fisrc);
        $("#feature-image-transition").css( {"left": $featureOffset.left +"px",
                                        "top": $featureOffset.top +"px"});
        $("#feature-image-transition").show();

        $("#feature-image-active").html($nfisrc);

        $("#feature-image-transition").fadeOut(250, function(){

            //On completion, move content into main area

            $curFeature = $fID;

            $transitioning = false;
			
        });
   }
   
   function setActiveButton($fID)
   {
   	   $("li.feature-button").removeClass("active");
   	   $("li.feature-button[rel="+$fID+"]").addClass("active");
   }

   function autoTransitionToNext()
   {
       if ($autoticktimer >= $delay)
       {
           $autoticktimer = 0;
           transitionToNextFeature();
       }
       else
       {
           $autoticktimer = $autoticktimer + 400;
       }
   }

   function scrollTo($yLoc)
   {
       if ($focusing == false)
       {
           $focusing = true;
           $("html, body").animate({scrollTop: $yLoc}, 700, function(){
               $focusing = false;
           });
       }
   }

   $("li.feature-button").click(function(){
       if ($transitioning == false)
       {
       		if (!$(this).hasClass("active"))
       		{
       			//Make this the active button.
       			$("li.feature-button").removeClass("active");
       			$(this).addClass("active");
       			
       			//Start the transition to my ID.
       			$fID = parseInt($(this).attr("rel"));
       			prepTransitionContent($fID);
       			
       			$autoticktimer = 0;
       		}
       }
       return false;
   });

   interval = setInterval(autoTransitionToNext, 400);


});

