var animating = false;
var controlWidth = 915;
var controlHeight = 264;
var controlColumns = 5;
var controlRows = 4;
var currentPaging = 0;
	
function addyControlInit()
{
	var numAddresses = $("select.ddl_locations").children().size() - 1;
	var numPerGroup = controlColumns * controlRows;
	var numGroups = Math.ceil(numAddresses/numPerGroup);
	
	if ((numAddresses-1) < (controlColumns * controlRows))
	{
		for (var x=1; x<controlRows; x++)
		{
			if ((numAddresses-1) < (controlColumns * x))
			{
				controlHeight = (controlHeight / controlRows) * x;
				controlRows = x;
				break;
			}
		}
	}
	
	var addressArray = $("select.ddl_locations").children();
	addressArray.splice(0, 1);
	
	$(".locationreplace").append('<div class="addy_control"></div>');
	$(".addy_control").append('\n<div class="addy_paging">\n\t<a class="btn_previous" href="#">Previous</a>\n\t<span class="addy_pages"></span>\n\t<a class="btn_next" href="#">Next</a>\n</div>\n');
	$(".addy_control").append('<div class="addy_control_wrap"></div>');
	$(".addy_control_wrap").append('<div class="addy_scroll">\n<div class="addy_wrap">\n</div></div>');

	for (var i=0; i<numGroups; i++)
	{
		$(".addy_wrap").append('<div class="addy_group" id="addy_group'+(i+1)+'">\n</div>\n');
		for (var j=0; j<numPerGroup; j++)
		{
			if ( ((i)*(numPerGroup))+(j+1) <= numAddresses )
			{
				var thisLocationId = addressArray[((i)*(numPerGroup))+(j)].getAttribute('value');
				var thisRegion = addressArray[((i)*(numPerGroup))+(j)].className;
				var thisText = addressArray[((i)*(numPerGroup))+(j)].innerHTML.split(" | ");
				//$("#addy_group"+(i+1)).append('<a href="#"><strong>Address Title '+( ((i)*(numPerGroup))+(j+1) )+'</strong><br />Address Location<br />Address Location Line 2</a>\n');
				if (thisText[1] == undefined)
				{
					$("#addy_group"+(i+1)).append('<a href="?location='+thisLocationId+'&region='+thisRegion+'"><strong>'+thisText[0]+'</strong></a>\n');
				}				
				else
				{
					$("#addy_group"+(i+1)).append('<a href="?location='+thisLocationId+'&region='+thisRegion+'"><strong>'+thisText[0]+'</strong><br />'+thisText[1]+'<br />'+thisText[2]+', '+thisText[3]+'&nbsp;&nbsp;'+thisText[4]+'</a>\n');
				}
			}
			else
			{
				break;
			}
		}
	}
	
	$(".addy_control, .addy_control_wrap, .addy_paging, .addy_scroll, .addy_group").css("width", controlWidth);
	$(".addy_control, .addy_control_wrap, .addy_scroll, .addy_wrap, .addy_group").css("height", controlHeight);
	$(".addy_wrap").css("width", numGroups*controlWidth + "px");
	$(".addy_wrap a").css("padding", "7px 9px 9px 9px");
	// Adjusting for padding...
	$(".addy_wrap a").css("width", (controlWidth/controlColumns) - 18 + "px");
	$(".addy_wrap a").css("height", (controlHeight/controlRows) - 16 + "px");
	
	$("select.ddl_locations").css("display", "none");
	$(".locationreplace label").css("display", "none");	

	if (numGroups > 1)
	{
		for (var k=0; k<numGroups; k++)
		{
			$(".addy_pages").append('<a id="paging_'+(k+1)+'" href="#">'+(k+1)+'</a>');
			
			$("#paging_"+(k+1)).click(function(e){
				
				var thisPage = $(this).attr("id").split("_");
				
				$(".addy_pages").children().removeClass("current");
				$(this).addClass("current");
				
				currentPaging = parseInt(thisPage[1]);
				moveToPosition(parseInt(thisPage[1]));
				
				return false;
			});
			
			$("#paging_1").addClass("current");
			currentPaging = 1;
			
			if (k < numGroups - 1)
			{
				$(".addy_pages").append('|');
			}
		}
	}
	else
	{
		$(".addy_paging").css("display", "none");
		$(".addy_control").css("top", "10px");
		$(".addy_control").css("margin-bottom", "15px");
	}
	
	$(".addy_control a.btn_next").click(function(e){
		if (!animating)
		{
			if ($(".addy_wrap").position().left != -(numGroups*controlWidth - controlWidth) )
			{
				$(".addy_pages").children().removeClass("current");
				$("#paging_"+(currentPaging+1)).addClass("current");
				currentPaging = currentPaging+1;
				
				animating = true;
				$(".addy_wrap").animate({ left: ($(".addy_wrap").position().left - controlWidth) + "px" }, 600, "swing", endAnimation );
			}
		}
		return false;
	});
	
	$(".addy_control a.btn_previous").click(function(e){
		if (!animating)
		{
			if ($(".addy_wrap").position().left != 0)
			{
				$(".addy_pages").children().removeClass("current");
				$("#paging_"+(currentPaging-1)).addClass("current");
				currentPaging = currentPaging-1;
				
				animating = true;
				$(".addy_wrap").animate({ left: ($(".addy_wrap").position().left + controlWidth) + "px" }, 600, "swing", endAnimation );
			}
		}
		return false;
	});
		
}

function moveToPosition(position)
{
	if (!animating)
	{
		animating = true;
		$(".addy_wrap").animate({ left: ((-position+1) * controlWidth) + "px" }, 600, "swing", endAnimation );
	}
}

function endAnimation()
{
	animating = false;
}
