/* Scripts Written by Ryan Sheffer
   http://stonedisc.com
   for Stevenson Design Works */

/*Customizable variables here*/
var reelImageLocation = "images/pictures/";
var reelImages = ["image1.jpg","image2.jpg","image3.jpg","image4.jpg","image5.jpg","image6.jpg","image7.jpg","image8.jpg"];

/*Front page image reel variables*/
var curReelIndex = 0;
var curReelImageName;
var loadingReel = false;
var loadingImg = null;

/*JQuary On-Load*/
$(document).ready(function()
{
	$("#reel_right").click(function()
	{
		nextReelImage();
	});
	
	$("#reel_left").click(function()
	{
		prevReelImage();
	});
	
	// Dropdown boxes from the nav bar.
	$("#navigation_bar ul li").mouseover(function()
	{
		$(this).find("ul").slideDown('fast').show();

		$(this).hover(function()
		{
		}, function()
		{
			$(this).find("ul").slideUp('fast');
		});
	});
});

/*-------------------------------------------
 Purpose: The main page loading function.
--------------------------------------------*/
function loadPage()
{
	// preload all images for now
	var objImage = new Image();
	for(var img_in = 0; img_in < reelImages.length; img_in++)
	{
		objImage.src = reelImages[img_in];
	}
	
	loadingImg = document.getElementById("reel_loading");
	
	// Set the size of the inner reel. This is hacky, but the CSS just wasn't cooperating
	$("#reel_singles_bar_inner").css('width', (reelImages.length * 14) + 'px');
	
	// Add buttons for how many images there are to load
	for(var i = 0; i < reelImages.length; i++)
	{
		// Create a container div for the button
		$("#reel_singles_bar_inner").append('<div id="reel_btn' + i + '" class="button_image_holder"></div>');
		
		// Add the image to the container div
		/*if(i === 0)
		{
			$("#reel_singles_bar_inner").find("#reel_btn" + i).append('<img class="button_image_selected" src="images/signs/slider-nav-li.png">');
		}
		else
		{*/
			$("#reel_singles_bar_inner").find("#reel_btn" + i).append('<img class="button_image" src="images/signs/slider-nav-li.png">');
		//}
			
		// Setup an OnClick event
		$("#reel_singles_bar_inner").find("#reel_btn" + i).click(function()
		{
			onReelButtonPress($(this));
		});
	}
	
	// Choose a random image per page.
	curReelIndex = Math.floor(Math.random() * (reelImages.length - 1));
	$("#reel_singles_bar_inner").find("#reel_btn" + curReelIndex).find("img").attr("class", "button_image_selected");
	
	// Setup the first image in line
	changeReelImage(reelImageLocation + reelImages[curReelIndex]);
}

/*-------------------------------------------
 Purpose: Ran when a reel button has been pressed.
 Input: The JQuary Object which is a div.
--------------------------------------------*/
function onReelButtonPress(button)
{
	if(loadingReel === true)
	{
		return;
	}
	
	// Turn off the old button
	$("#reel_singles_bar_inner").find("#reel_btn" + curReelIndex).find("img").attr("class", "button_image");
	
	// Update the new reel button
	button.find("img").attr("class", "button_image_selected");
		
	// Update the current image
	curReelIndex = parseInt(button.attr("id").substr(8));
	changeReelImage(reelImageLocation + reelImages[curReelIndex]);
}

/*-------------------------------------------
 Purpose: Sets the front page reel element to the next image.
--------------------------------------------*/
function nextReelImage()
{
	if(loadingReel === true)
	{
		return;
	}
		
	// Turn off the old reel button
	$("#reel_singles_bar_inner").find("#reel_btn" + curReelIndex).find("img").attr("class", "button_image");
		
	curReelIndex++;
	if(curReelIndex == reelImages.length)
	{
		curReelIndex = 0;
	}
	
	// Turn on the new reel button
	$("#reel_singles_bar_inner").find("#reel_btn" + curReelIndex).find("img").attr("class", "button_image_selected");
	
	changeReelImage(reelImageLocation + reelImages[curReelIndex]);
}

/*-------------------------------------------
 Purpose: Sets the front page reel element to the previous image.
--------------------------------------------*/
function prevReelImage()
{
	if(loadingReel === true)
	{
		return;
	}
		
	// Turn off the old reel button
	$("#reel_singles_bar_inner").find("#reel_btn" + curReelIndex).find("img").attr("class", "button_image");
		
	curReelIndex--;
	if(curReelIndex == -1)
	{
		curReelIndex = reelImages.length - 1;
	}
	
	// Turn on the new reel button
	$("#reel_singles_bar_inner").find("#reel_btn" + curReelIndex).find("img").attr("class", "button_image_selected");
	
	changeReelImage(reelImageLocation + reelImages[curReelIndex]);
}

/*-------------------------------------------
 Purpose: Changes the front page reel index to the next image.
--------------------------------------------*/
function changeReelImage(name)
{
	curReelImageName = name;
	loadingReel = true;
	
	loadingImg.style.visibility = "visible";
	
	var objImage = new Image();
	
	objImage.onLoad = imagesLoaded();
	objImage.src=name;
}

var imgIndex = 0;
var firstLoad = true;
var fadeTime = 0;

/*-------------------------------------------
 Purpose: A callback from the image loader when an image has finished loading.
--------------------------------------------*/
function imagesLoaded()
{
	loadingImg.style.visibility = "hidden";
	
	$("#image_reel").append('<img id = "reelimg' + imgIndex + '" class="reel_image" src="' + reelImageLocation + reelImages[curReelIndex] + '"/>');
	
	$("#image_reel").find("#reelimg" + imgIndex).fadeIn(fadeTime, function()
	{
		// Remove the previous image.
		var imgToRemove = imgIndex - 1;
		if(imgToRemove != -1)
		{
			$("#reelimg" + imgToRemove).remove();
		}
		
		// Increment for next image
		imgIndex++;
		loadingReel = false;
		
		if(firstLoad)
		{
			firstLoad = false;
			fadeTime = 400;
		}
	});
}

/*-------------------------------------------
 Purpose: Designed to check the fields of the admin area and ensure they are correct.
--------------------------------------------*/
function checkAdminData()
{
	var isValid = true;
	var msg = "";

	with (document.getElementById("post_news_form"))
	{
		if (news_title.value === "")
		{
			msg += "Requires a news title!<br/>";
			isValid = false;
		}
		
		if (news_message.value === "")
		{
			msg += "Requires a news message!<br/>";
			isValid = false;
		}
	}

	document.getElementById("admin_news_report").innerHTML = msg;
	
	return isValid;
}
