var ajax = new Object();
ajax.url = null;
ajax.id = null;
ajax.params = {};
ajax.scrollToId = null;
ajax.viewType = null;

SWFAddress.addEventListener(SWFAddressEvent.CHANGE, changePageHandler);

function changePageHandler(event)
{
	if (!ajax.id) return;
	
	ajax.scrollToId = null;
	ajax.viewType = null;
	
	var url = ajax.url;
	var path = event.path;
	var page = 1;
	
	// Process the path information
	path = path.split('/');
	
	// List
	if (path[1] == 'list')
	{
		ajax.viewType = path[1];
		url += '&viewType=list';
		page = path[2];
	}
	// Grid
	else if (path[1] == 'grid')
	{
		ajax.viewType = path[1];
		
		// View product
		if (path[2] == 'item')
		{
			url += '&viewType=gridItem';
			page = 1;
			url += '&componentId=' + path[3];
		}
		// View grid page
		else
		{
			url += '&viewType=grid';
			page = path[2];
		}
	}
	// Default page
	else if (path[1] > 0)
	{
		page = path[1];
		if (page < 1) page = 1;
		if (path.length == 3) ajax.scrollToId = path[2];
	}
	
	// Set the page we're viewing
	ajax.params.page = page;
	
	loadPage(url);
}

function SWFClear()
{
	SWFAddress.setValue('');
}

function loadPageSuccess(data)
{
	$('#' + ajax.id).html(data);	
	
	//updateViewType();
	
	if (ajax.scrollToId)
	{
		var targetOffset = $('#' + ajax.scrollToId).offset().top;
		$('html,body').animate({scrollTop: targetOffset}, 0);
	}
	
	// Turn images into slimbox
	slimboxScanPage();
}

function loadPageFailure(transport)
{
	//alert('Loading failed.');
}

function loadPage404()
{
	alert('File not found (loading failed).');
}

function updateViewType()
{
	$$('img.pageViewType').each(function(img) {
		var src = img.getProperty('src');
		//if (src.lastIndexOf(ajax.viewType) > -1) return;
		var type = src.substring(src.lastIndexOf('-'), src.length);
		var imgsrc = src.replace(type, '-highlighted.jpg');
		img.addEvent('mouseenter', function(){ img.setProperty('src', imgsrc); });
		img.addEvent('mouseleave', function(){ img.setProperty('src', src); });
	});
}

function loadPage(url)
{
	$.ajax({
		url: url,
		data: ajax.params,
		success: loadPageSuccess
	});
	
	// Make the request
	/*
	new Request({
		url: url,
		data: ajax.params,
		method: 'get',
		onSuccess: loadPageSuccess,
		onFailure: loadPageFailure,
		on404: loadPage404
	}).send();
	*/
}