// this file requires Categories.js to be included on the same page.

var BrowseTheAislesIsInitialized = false;

function GetCategoryGrid(categoryID)
{
	GetCategoryDisplay(categoryID, SetGrid, UpdateFailed);
}

function UpdateDepartment()
{
	GetCategorySelect(0, SetDepartment, UpdateFailed);
}

function UpdateAisles()
{
	$('UpdateProgress1').style.display = 'block';

	var categoryID = $('lstDepartments').value;
	$('lstDepartments').options[$('lstDepartments').selectedIndex].attributes.getNamedItem('exportkeyid').value;


	
	GetCategorySelect(categoryID, SetAisles, UpdateFailed);
}

function UpdateCategories()
{
	$('UpdateProgress1').style.display = 'block';

	var categoryID = $('lstAisles').value;
	
	GetCategorySelect(categoryID, SetCategory, UpdateFailed);
}

function UpdateGrid()
{
	$('UpdateProgress1').style.display = 'block';

	var categoryID = $('lstCategory').value;

	GetCategoryGrid(categoryID);
}

function SetDepartment(departmentsHTML)
{
	SetList($('lstDepartments'), departmentsHTML.responseJSON.d);
	
	$('UpdateProgress1').style.display = 'none';
	$('lstAisles').innerHTML = '';
	$('lstCategory').innerHTML = '';

	if ($('lstDepartments').length == 1)
	{
		$('lstDepartments').selectedIndex = 0;

		UpdateAisles();
	}
}

function SetAisles(departmentsHTML)
{
	SetList($('lstAisles'), departmentsHTML.responseJSON.d);

	$('UpdateProgress1').style.display = 'none';
	$('lstCategory').innerHTML = '';

	if ($('lstAisles').length == 1)
	{
		$('lstAisles').selectedIndex = 0;

		UpdateCategories();
	}

	try {
		if (BrowseTheAislesIsInitialized) refreshAdPods();
	} 
	catch (e) {}

	BrowseTheAislesIsInitialized = true;
}

function SetCategory(departmentsHTML)
{
	SetList($('lstCategory'), departmentsHTML.responseJSON.d);

	$('UpdateProgress1').style.display = 'none';

	if ($('lstCategory').length == 1)
	{
		$('lstCategory').selectedIndex = 0;

		UpdateGrid();
	}

	try {
		if (BrowseTheAislesIsInitialized) refreshAdPods();
	} 
	catch (e) {}

	BrowseTheAislesIsInitialized = true;
}

function SetGrid(gridHTML)
{
	$('LineItem').innerHTML = gridHTML.responseJSON.d;
	$('UpdateProgress1').style.display = 'none';

	try {
		if (BrowseTheAislesIsInitialized) refreshAdPods();
	} 
	catch (e) {}

	BrowseTheAislesIsInitialized = true;
}

function SetList(list, newItems)
{
	if(document.all)
	{
		// this is a work around for an ie bug with selects and innerHTML
		var firstItemEnd = newItems.indexOf('>', 0);
		var secondItemEnd = newItems.indexOf('>', firstItemEnd + 1);

		newItems = newItems.substring(0, secondItemEnd + 1) + newItems;

		list.innerHTML = newItems;

		list.outerHTML = list.outerHTML;

		if (typeof(BK_AddSelectEventHandler) == 'function') {
			BK_AddSelectEventHandler();
		}
	}
	else
	{
		list.innerHTML = newItems;
	}
}

function UpdateFailed()
{
	$('UpdateProgress1').style.display = 'none';
}

function InitializeBrowse()
{
	UpdateDepartment();
	GetCategoryGrid(0);
}

InitializeBrowse();