var container = "#js_view";
var group_ref = '#items .nojs';
var button_class = '.navbutton';

var example_increment = 0;
var loaded = [];
var middleX = 0;
var middleY = 18;

function addCarouselLoader()
{
	if($(container).is('div'))
	{
		$(container).hide();
		if($(group_ref).size() < 2)
		{
			$(button_class).hide();
		}
		else
		{
			$(button_class).show();
		}
		$(group_ref+' img').each(
			function()
			{
				$(this).css('height', '100%');
				$(this).css('width', '100%');
				$(this).load(exampleLoaded($(this).parent().parent()))
			}
		);
	}
}

function exampleLoaded(div)
{
	loaded.push(div)
	if($(group_ref).size() == loaded.length && $(container).css('display') == 'none')
	{
		$(container).delay(500).fadeTo('slow', 1);
	}
	positionItems();
}

function positionItems()
{	
	if($(group_ref).size() == loaded.length)
	{
		$(group_ref).css('z-index', 0);
		$(group_ref).hide();
		
		var div = loaded[example_increment];
		$(div).show();
		$(div).css('top', 0);
		if(!middleX)
		{
			middleX = ($(container).width() - $(div).width())/2;
		}	
		$(div).css('left', middleX)
		$(div).css('z-index', 3);
		scale(div, 100);
		if($(group_ref).size() > 1)
		{
			var div = loaded[getAdjustedIncrement(1)];
			$(div).show();
			scale(div, 90);
			$(div).css('left', 523)
			$(div).css('top', middleY);
			if($('.site_item').size() > 2)
			{
				var div = loaded[getAdjustedIncrement(-1)];
				$(div).show();
				scale(div, 90);
				$(div).css('left', 13);
				$(div).css('top', middleY);
			}
		}
	}
}

function scale(element, percent)
{
	var currentScale = 100;
	if($(element).attr('scale'))
	{
		currentScale = $(element).attr('scale');
	}
	$(element).attr('scale', percent);
	if($(element).children())
	{
		$(element).children().each(function(){scale(this, percent)});
	}
	$(element).height(scaleValue($(element).height(), currentScale, percent));
	$(element).width(scaleValue($(element).width(), currentScale, percent));
	
}

function scaleValue(currentValue, currentScale, newScale)
{
	return (currentValue/currentScale)*newScale;
}

function getAdjustedIncrement(increment)
{
	var index = example_increment+increment;
	if(index < 0)
	{
		return loaded.length - 1;
	}
	else if(index >= loaded.length)
	{
		return 0;
	}
	return index;
}

function increment(increment)
{
	if($(group_ref).size() >= 2)
	{
		example_increment = getAdjustedIncrement(increment);
		positionItems()
	}
	return false;
}

